diff --git a/.env b/.env deleted file mode 100644 index b886499..0000000 --- a/.env +++ /dev/null @@ -1,7 +0,0 @@ -OPENROUTER_API_KEY=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 -BOT_API_SECRET=uRTv8KYdK7nGcUDgYQRfg181WPEd5Lfl -BACKEND_URL=https://api-micro.oxinos.id/api -# BACKEND_URL=http://localhost:3001/api -TRANSACTION_TYPES=SERVICE,JOB -COUNT_PER_TYPE=2 -BOT_MODE=PROD \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cae9258 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# Virtual Environments +.venv/ +venv/ +ENV/ +env/ + +# Local Environment Credentials +.env + +# Bot Persistence & Activity Log Files +bot_activity.log +used_data.txt diff --git a/.venv/bin/Activate.ps1 b/.venv/bin/Activate.ps1 deleted file mode 100644 index b49d77b..0000000 --- a/.venv/bin/Activate.ps1 +++ /dev/null @@ -1,247 +0,0 @@ -<# -.Synopsis -Activate a Python virtual environment for the current PowerShell session. - -.Description -Pushes the python executable for a virtual environment to the front of the -$Env:PATH environment variable and sets the prompt to signify that you are -in a Python virtual environment. Makes use of the command line switches as -well as the `pyvenv.cfg` file values present in the virtual environment. - -.Parameter VenvDir -Path to the directory that contains the virtual environment to activate. The -default value for this is the parent of the directory that the Activate.ps1 -script is located within. - -.Parameter Prompt -The prompt prefix to display when this virtual environment is activated. By -default, this prompt is the name of the virtual environment folder (VenvDir) -surrounded by parentheses and followed by a single space (ie. '(.venv) '). - -.Example -Activate.ps1 -Activates the Python virtual environment that contains the Activate.ps1 script. - -.Example -Activate.ps1 -Verbose -Activates the Python virtual environment that contains the Activate.ps1 script, -and shows extra information about the activation as it executes. - -.Example -Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv -Activates the Python virtual environment located in the specified location. - -.Example -Activate.ps1 -Prompt "MyPython" -Activates the Python virtual environment that contains the Activate.ps1 script, -and prefixes the current prompt with the specified string (surrounded in -parentheses) while the virtual environment is active. - -.Notes -On Windows, it may be required to enable this Activate.ps1 script by setting the -execution policy for the user. You can do this by issuing the following PowerShell -command: - -PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser - -For more information on Execution Policies: -https://go.microsoft.com/fwlink/?LinkID=135170 - -#> -Param( - [Parameter(Mandatory = $false)] - [String] - $VenvDir, - [Parameter(Mandatory = $false)] - [String] - $Prompt -) - -<# Function declarations --------------------------------------------------- #> - -<# -.Synopsis -Remove all shell session elements added by the Activate script, including the -addition of the virtual environment's Python executable from the beginning of -the PATH variable. - -.Parameter NonDestructive -If present, do not remove this function from the global namespace for the -session. - -#> -function global:deactivate ([switch]$NonDestructive) { - # Revert to original values - - # The prior prompt: - if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) { - Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt - Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT - } - - # The prior PYTHONHOME: - if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) { - Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME - Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME - } - - # The prior PATH: - if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) { - Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH - Remove-Item -Path Env:_OLD_VIRTUAL_PATH - } - - # Just remove the VIRTUAL_ENV altogether: - if (Test-Path -Path Env:VIRTUAL_ENV) { - Remove-Item -Path env:VIRTUAL_ENV - } - - # Just remove VIRTUAL_ENV_PROMPT altogether. - if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) { - Remove-Item -Path env:VIRTUAL_ENV_PROMPT - } - - # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether: - if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) { - Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force - } - - # Leave deactivate function in the global namespace if requested: - if (-not $NonDestructive) { - Remove-Item -Path function:deactivate - } -} - -<# -.Description -Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the -given folder, and returns them in a map. - -For each line in the pyvenv.cfg file, if that line can be parsed into exactly -two strings separated by `=` (with any amount of whitespace surrounding the =) -then it is considered a `key = value` line. The left hand string is the key, -the right hand is the value. - -If the value starts with a `'` or a `"` then the first and last character is -stripped from the value before being captured. - -.Parameter ConfigDir -Path to the directory that contains the `pyvenv.cfg` file. -#> -function Get-PyVenvConfig( - [String] - $ConfigDir -) { - Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg" - - # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue). - $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue - - # An empty map will be returned if no config file is found. - $pyvenvConfig = @{ } - - if ($pyvenvConfigPath) { - - Write-Verbose "File exists, parse `key = value` lines" - $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath - - $pyvenvConfigContent | ForEach-Object { - $keyval = $PSItem -split "\s*=\s*", 2 - if ($keyval[0] -and $keyval[1]) { - $val = $keyval[1] - - # Remove extraneous quotations around a string value. - if ("'""".Contains($val.Substring(0, 1))) { - $val = $val.Substring(1, $val.Length - 2) - } - - $pyvenvConfig[$keyval[0]] = $val - Write-Verbose "Adding Key: '$($keyval[0])'='$val'" - } - } - } - return $pyvenvConfig -} - - -<# Begin Activate script --------------------------------------------------- #> - -# Determine the containing directory of this script -$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition -$VenvExecDir = Get-Item -Path $VenvExecPath - -Write-Verbose "Activation script is located in path: '$VenvExecPath'" -Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)" -Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)" - -# Set values required in priority: CmdLine, ConfigFile, Default -# First, get the location of the virtual environment, it might not be -# VenvExecDir if specified on the command line. -if ($VenvDir) { - Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values" -} -else { - Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir." - $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/") - Write-Verbose "VenvDir=$VenvDir" -} - -# Next, read the `pyvenv.cfg` file to determine any required value such -# as `prompt`. -$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir - -# Next, set the prompt from the command line, or the config file, or -# just use the name of the virtual environment folder. -if ($Prompt) { - Write-Verbose "Prompt specified as argument, using '$Prompt'" -} -else { - Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value" - if ($pyvenvCfg -and $pyvenvCfg['prompt']) { - Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'" - $Prompt = $pyvenvCfg['prompt']; - } - else { - Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)" - Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'" - $Prompt = Split-Path -Path $venvDir -Leaf - } -} - -Write-Verbose "Prompt = '$Prompt'" -Write-Verbose "VenvDir='$VenvDir'" - -# Deactivate any currently active virtual environment, but leave the -# deactivate function in place. -deactivate -nondestructive - -# Now set the environment variable VIRTUAL_ENV, used by many tools to determine -# that there is an activated venv. -$env:VIRTUAL_ENV = $VenvDir - -if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) { - - Write-Verbose "Setting prompt to '$Prompt'" - - # Set the prompt to include the env name - # Make sure _OLD_VIRTUAL_PROMPT is global - function global:_OLD_VIRTUAL_PROMPT { "" } - Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT - New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt - - function global:prompt { - Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) " - _OLD_VIRTUAL_PROMPT - } - $env:VIRTUAL_ENV_PROMPT = $Prompt -} - -# Clear PYTHONHOME -if (Test-Path -Path Env:PYTHONHOME) { - Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME - Remove-Item -Path Env:PYTHONHOME -} - -# Add the venv to the PATH -Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH -$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH" diff --git a/.venv/bin/activate b/.venv/bin/activate deleted file mode 100644 index ae08244..0000000 --- a/.venv/bin/activate +++ /dev/null @@ -1,70 +0,0 @@ -# This file must be used with "source bin/activate" *from bash* -# You cannot run it directly - -deactivate () { - # reset old environment variables - if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then - PATH="${_OLD_VIRTUAL_PATH:-}" - export PATH - unset _OLD_VIRTUAL_PATH - fi - if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then - PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" - export PYTHONHOME - unset _OLD_VIRTUAL_PYTHONHOME - fi - - # Call hash to forget past commands. Without forgetting - # past commands the $PATH changes we made may not be respected - hash -r 2> /dev/null - - if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then - PS1="${_OLD_VIRTUAL_PS1:-}" - export PS1 - unset _OLD_VIRTUAL_PS1 - fi - - unset VIRTUAL_ENV - unset VIRTUAL_ENV_PROMPT - if [ ! "${1:-}" = "nondestructive" ] ; then - # Self destruct! - unset -f deactivate - fi -} - -# unset irrelevant variables -deactivate nondestructive - -# on Windows, a path can contain colons and backslashes and has to be converted: -if [ "${OSTYPE:-}" = "cygwin" ] || [ "${OSTYPE:-}" = "msys" ] ; then - # transform D:\path\to\venv to /d/path/to/venv on MSYS - # and to /cygdrive/d/path/to/venv on Cygwin - export VIRTUAL_ENV=$(cygpath /home/tothemax/Tothemax/Project/microproject/bot/.venv) -else - # use the path as-is - export VIRTUAL_ENV=/home/tothemax/Tothemax/Project/microproject/bot/.venv -fi - -_OLD_VIRTUAL_PATH="$PATH" -PATH="$VIRTUAL_ENV/"bin":$PATH" -export PATH - -# unset PYTHONHOME if set -# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) -# could use `if (set -u; : $PYTHONHOME) ;` in bash -if [ -n "${PYTHONHOME:-}" ] ; then - _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" - unset PYTHONHOME -fi - -if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then - _OLD_VIRTUAL_PS1="${PS1:-}" - PS1='(.venv) '"${PS1:-}" - export PS1 - VIRTUAL_ENV_PROMPT='(.venv) ' - export VIRTUAL_ENV_PROMPT -fi - -# Call hash to forget past commands. Without forgetting -# past commands the $PATH changes we made may not be respected -hash -r 2> /dev/null diff --git a/.venv/bin/activate.csh b/.venv/bin/activate.csh deleted file mode 100644 index 948cda3..0000000 --- a/.venv/bin/activate.csh +++ /dev/null @@ -1,27 +0,0 @@ -# This file must be used with "source bin/activate.csh" *from csh*. -# You cannot run it directly. - -# Created by Davide Di Blasi . -# Ported to Python 3.3 venv by Andrew Svetlov - -alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate' - -# Unset irrelevant variables. -deactivate nondestructive - -setenv VIRTUAL_ENV /home/tothemax/Tothemax/Project/microproject/bot/.venv - -set _OLD_VIRTUAL_PATH="$PATH" -setenv PATH "$VIRTUAL_ENV/"bin":$PATH" - - -set _OLD_VIRTUAL_PROMPT="$prompt" - -if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then - set prompt = '(.venv) '"$prompt" - setenv VIRTUAL_ENV_PROMPT '(.venv) ' -endif - -alias pydoc python -m pydoc - -rehash diff --git a/.venv/bin/activate.fish b/.venv/bin/activate.fish deleted file mode 100644 index e34baa9..0000000 --- a/.venv/bin/activate.fish +++ /dev/null @@ -1,69 +0,0 @@ -# This file must be used with "source /bin/activate.fish" *from fish* -# (https://fishshell.com/). You cannot run it directly. - -function deactivate -d "Exit virtual environment and return to normal shell environment" - # reset old environment variables - if test -n "$_OLD_VIRTUAL_PATH" - set -gx PATH $_OLD_VIRTUAL_PATH - set -e _OLD_VIRTUAL_PATH - end - if test -n "$_OLD_VIRTUAL_PYTHONHOME" - set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME - set -e _OLD_VIRTUAL_PYTHONHOME - end - - if test -n "$_OLD_FISH_PROMPT_OVERRIDE" - set -e _OLD_FISH_PROMPT_OVERRIDE - # prevents error when using nested fish instances (Issue #93858) - if functions -q _old_fish_prompt - functions -e fish_prompt - functions -c _old_fish_prompt fish_prompt - functions -e _old_fish_prompt - end - end - - set -e VIRTUAL_ENV - set -e VIRTUAL_ENV_PROMPT - if test "$argv[1]" != "nondestructive" - # Self-destruct! - functions -e deactivate - end -end - -# Unset irrelevant variables. -deactivate nondestructive - -set -gx VIRTUAL_ENV /home/tothemax/Tothemax/Project/microproject/bot/.venv - -set -gx _OLD_VIRTUAL_PATH $PATH -set -gx PATH "$VIRTUAL_ENV/"bin $PATH - -# Unset PYTHONHOME if set. -if set -q PYTHONHOME - set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME - set -e PYTHONHOME -end - -if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" - # fish uses a function instead of an env var to generate the prompt. - - # Save the current fish_prompt function as the function _old_fish_prompt. - functions -c fish_prompt _old_fish_prompt - - # With the original prompt function renamed, we can override with our own. - function fish_prompt - # Save the return status of the last command. - set -l old_status $status - - # Output the venv prompt; color taken from the blue of the Python logo. - printf "%s%s%s" (set_color 4B8BBE) '(.venv) ' (set_color normal) - - # Restore the return status of the previous command. - echo "exit $old_status" | . - # Output the original/"old" prompt. - _old_fish_prompt - end - - set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" - set -gx VIRTUAL_ENV_PROMPT '(.venv) ' -end diff --git a/.venv/bin/distro b/.venv/bin/distro deleted file mode 100755 index 11551a6..0000000 --- a/.venv/bin/distro +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/tothemax/Tothemax/Project/microproject/bot/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from distro.distro import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/dotenv b/.venv/bin/dotenv deleted file mode 100755 index 087ab83..0000000 --- a/.venv/bin/dotenv +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/tothemax/Tothemax/Project/microproject/bot/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from dotenv.__main__ import cli -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(cli()) diff --git a/.venv/bin/faker b/.venv/bin/faker deleted file mode 100755 index c06439c..0000000 --- a/.venv/bin/faker +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/tothemax/Tothemax/Project/microproject/bot/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from faker.cli import execute_from_command_line -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(execute_from_command_line()) diff --git a/.venv/bin/httpx b/.venv/bin/httpx deleted file mode 100755 index 2b18f3e..0000000 --- a/.venv/bin/httpx +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/tothemax/Tothemax/Project/microproject/bot/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from httpx import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/normalizer b/.venv/bin/normalizer deleted file mode 100755 index 7e83c72..0000000 --- a/.venv/bin/normalizer +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/tothemax/Tothemax/Project/microproject/bot/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from charset_normalizer.cli import cli_detect -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(cli_detect()) diff --git a/.venv/bin/pip b/.venv/bin/pip deleted file mode 100755 index a997d31..0000000 --- a/.venv/bin/pip +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/tothemax/Tothemax/Project/microproject/bot/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/pip3 b/.venv/bin/pip3 deleted file mode 100755 index a997d31..0000000 --- a/.venv/bin/pip3 +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/tothemax/Tothemax/Project/microproject/bot/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/pip3.12 b/.venv/bin/pip3.12 deleted file mode 100755 index a997d31..0000000 --- a/.venv/bin/pip3.12 +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/tothemax/Tothemax/Project/microproject/bot/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/python b/.venv/bin/python deleted file mode 120000 index b8a0adb..0000000 --- a/.venv/bin/python +++ /dev/null @@ -1 +0,0 @@ -python3 \ No newline at end of file diff --git a/.venv/bin/python3 b/.venv/bin/python3 deleted file mode 120000 index ae65fda..0000000 --- a/.venv/bin/python3 +++ /dev/null @@ -1 +0,0 @@ -/usr/bin/python3 \ No newline at end of file diff --git a/.venv/bin/python3.12 b/.venv/bin/python3.12 deleted file mode 120000 index b8a0adb..0000000 --- a/.venv/bin/python3.12 +++ /dev/null @@ -1 +0,0 @@ -python3 \ No newline at end of file diff --git a/.venv/bin/tqdm b/.venv/bin/tqdm deleted file mode 100755 index af27a81..0000000 --- a/.venv/bin/tqdm +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/tothemax/Tothemax/Project/microproject/bot/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from tqdm.cli import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/lib/python3.12/site-packages/81d243bd2c585b0f4821__mypyc.cpython-312-x86_64-linux-gnu.so b/.venv/lib/python3.12/site-packages/81d243bd2c585b0f4821__mypyc.cpython-312-x86_64-linux-gnu.so deleted file mode 100755 index 83590cf..0000000 Binary files a/.venv/lib/python3.12/site-packages/81d243bd2c585b0f4821__mypyc.cpython-312-x86_64-linux-gnu.so and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/__pycache__/typing_extensions.cpython-312.pyc b/.venv/lib/python3.12/site-packages/__pycache__/typing_extensions.cpython-312.pyc deleted file mode 100644 index 032e1d5..0000000 Binary files a/.venv/lib/python3.12/site-packages/__pycache__/typing_extensions.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/INSTALLER b/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/METADATA b/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/METADATA deleted file mode 100644 index 3ac05cf..0000000 --- a/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/METADATA +++ /dev/null @@ -1,295 +0,0 @@ -Metadata-Version: 2.3 -Name: annotated-types -Version: 0.7.0 -Summary: Reusable constraint types to use with typing.Annotated -Project-URL: Homepage, https://github.com/annotated-types/annotated-types -Project-URL: Source, https://github.com/annotated-types/annotated-types -Project-URL: Changelog, https://github.com/annotated-types/annotated-types/releases -Author-email: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com>, Samuel Colvin , Zac Hatfield-Dodds -License-File: LICENSE -Classifier: Development Status :: 4 - Beta -Classifier: Environment :: Console -Classifier: Environment :: MacOS X -Classifier: Intended Audience :: Developers -Classifier: Intended Audience :: Information Technology -Classifier: License :: OSI Approved :: MIT License -Classifier: Operating System :: POSIX :: Linux -Classifier: Operating System :: Unix -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Topic :: Software Development :: Libraries :: Python Modules -Classifier: Typing :: Typed -Requires-Python: >=3.8 -Requires-Dist: typing-extensions>=4.0.0; python_version < '3.9' -Description-Content-Type: text/markdown - -# annotated-types - -[![CI](https://github.com/annotated-types/annotated-types/workflows/CI/badge.svg?event=push)](https://github.com/annotated-types/annotated-types/actions?query=event%3Apush+branch%3Amain+workflow%3ACI) -[![pypi](https://img.shields.io/pypi/v/annotated-types.svg)](https://pypi.python.org/pypi/annotated-types) -[![versions](https://img.shields.io/pypi/pyversions/annotated-types.svg)](https://github.com/annotated-types/annotated-types) -[![license](https://img.shields.io/github/license/annotated-types/annotated-types.svg)](https://github.com/annotated-types/annotated-types/blob/main/LICENSE) - -[PEP-593](https://peps.python.org/pep-0593/) added `typing.Annotated` as a way of -adding context-specific metadata to existing types, and specifies that -`Annotated[T, x]` _should_ be treated as `T` by any tool or library without special -logic for `x`. - -This package provides metadata objects which can be used to represent common -constraints such as upper and lower bounds on scalar values and collection sizes, -a `Predicate` marker for runtime checks, and -descriptions of how we intend these metadata to be interpreted. In some cases, -we also note alternative representations which do not require this package. - -## Install - -```bash -pip install annotated-types -``` - -## Examples - -```python -from typing import Annotated -from annotated_types import Gt, Len, Predicate - -class MyClass: - age: Annotated[int, Gt(18)] # Valid: 19, 20, ... - # Invalid: 17, 18, "19", 19.0, ... - factors: list[Annotated[int, Predicate(is_prime)]] # Valid: 2, 3, 5, 7, 11, ... - # Invalid: 4, 8, -2, 5.0, "prime", ... - - my_list: Annotated[list[int], Len(0, 10)] # Valid: [], [10, 20, 30, 40, 50] - # Invalid: (1, 2), ["abc"], [0] * 20 -``` - -## Documentation - -_While `annotated-types` avoids runtime checks for performance, users should not -construct invalid combinations such as `MultipleOf("non-numeric")` or `Annotated[int, Len(3)]`. -Downstream implementors may choose to raise an error, emit a warning, silently ignore -a metadata item, etc., if the metadata objects described below are used with an -incompatible type - or for any other reason!_ - -### Gt, Ge, Lt, Le - -Express inclusive and/or exclusive bounds on orderable values - which may be numbers, -dates, times, strings, sets, etc. Note that the boundary value need not be of the -same type that was annotated, so long as they can be compared: `Annotated[int, Gt(1.5)]` -is fine, for example, and implies that the value is an integer x such that `x > 1.5`. - -We suggest that implementors may also interpret `functools.partial(operator.le, 1.5)` -as being equivalent to `Gt(1.5)`, for users who wish to avoid a runtime dependency on -the `annotated-types` package. - -To be explicit, these types have the following meanings: - -* `Gt(x)` - value must be "Greater Than" `x` - equivalent to exclusive minimum -* `Ge(x)` - value must be "Greater than or Equal" to `x` - equivalent to inclusive minimum -* `Lt(x)` - value must be "Less Than" `x` - equivalent to exclusive maximum -* `Le(x)` - value must be "Less than or Equal" to `x` - equivalent to inclusive maximum - -### Interval - -`Interval(gt, ge, lt, le)` allows you to specify an upper and lower bound with a single -metadata object. `None` attributes should be ignored, and non-`None` attributes -treated as per the single bounds above. - -### MultipleOf - -`MultipleOf(multiple_of=x)` might be interpreted in two ways: - -1. Python semantics, implying `value % multiple_of == 0`, or -2. [JSONschema semantics](https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.6.2.1), - where `int(value / multiple_of) == value / multiple_of`. - -We encourage users to be aware of these two common interpretations and their -distinct behaviours, especially since very large or non-integer numbers make -it easy to cause silent data corruption due to floating-point imprecision. - -We encourage libraries to carefully document which interpretation they implement. - -### MinLen, MaxLen, Len - -`Len()` implies that `min_length <= len(value) <= max_length` - lower and upper bounds are inclusive. - -As well as `Len()` which can optionally include upper and lower bounds, we also -provide `MinLen(x)` and `MaxLen(y)` which are equivalent to `Len(min_length=x)` -and `Len(max_length=y)` respectively. - -`Len`, `MinLen`, and `MaxLen` may be used with any type which supports `len(value)`. - -Examples of usage: - -* `Annotated[list, MaxLen(10)]` (or `Annotated[list, Len(max_length=10))`) - list must have a length of 10 or less -* `Annotated[str, MaxLen(10)]` - string must have a length of 10 or less -* `Annotated[list, MinLen(3))` (or `Annotated[list, Len(min_length=3))`) - list must have a length of 3 or more -* `Annotated[list, Len(4, 6)]` - list must have a length of 4, 5, or 6 -* `Annotated[list, Len(8, 8)]` - list must have a length of exactly 8 - -#### Changed in v0.4.0 - -* `min_inclusive` has been renamed to `min_length`, no change in meaning -* `max_exclusive` has been renamed to `max_length`, upper bound is now **inclusive** instead of **exclusive** -* The recommendation that slices are interpreted as `Len` has been removed due to ambiguity and different semantic - meaning of the upper bound in slices vs. `Len` - -See [issue #23](https://github.com/annotated-types/annotated-types/issues/23) for discussion. - -### Timezone - -`Timezone` can be used with a `datetime` or a `time` to express which timezones -are allowed. `Annotated[datetime, Timezone(None)]` must be a naive datetime. -`Timezone[...]` ([literal ellipsis](https://docs.python.org/3/library/constants.html#Ellipsis)) -expresses that any timezone-aware datetime is allowed. You may also pass a specific -timezone string or [`tzinfo`](https://docs.python.org/3/library/datetime.html#tzinfo-objects) -object such as `Timezone(timezone.utc)` or `Timezone("Africa/Abidjan")` to express that you only -allow a specific timezone, though we note that this is often a symptom of fragile design. - -#### Changed in v0.x.x - -* `Timezone` accepts [`tzinfo`](https://docs.python.org/3/library/datetime.html#tzinfo-objects) objects instead of - `timezone`, extending compatibility to [`zoneinfo`](https://docs.python.org/3/library/zoneinfo.html) and third party libraries. - -### Unit - -`Unit(unit: str)` expresses that the annotated numeric value is the magnitude of -a quantity with the specified unit. For example, `Annotated[float, Unit("m/s")]` -would be a float representing a velocity in meters per second. - -Please note that `annotated_types` itself makes no attempt to parse or validate -the unit string in any way. That is left entirely to downstream libraries, -such as [`pint`](https://pint.readthedocs.io) or -[`astropy.units`](https://docs.astropy.org/en/stable/units/). - -An example of how a library might use this metadata: - -```python -from annotated_types import Unit -from typing import Annotated, TypeVar, Callable, Any, get_origin, get_args - -# given a type annotated with a unit: -Meters = Annotated[float, Unit("m")] - - -# you can cast the annotation to a specific unit type with any -# callable that accepts a string and returns the desired type -T = TypeVar("T") -def cast_unit(tp: Any, unit_cls: Callable[[str], T]) -> T | None: - if get_origin(tp) is Annotated: - for arg in get_args(tp): - if isinstance(arg, Unit): - return unit_cls(arg.unit) - return None - - -# using `pint` -import pint -pint_unit = cast_unit(Meters, pint.Unit) - - -# using `astropy.units` -import astropy.units as u -astropy_unit = cast_unit(Meters, u.Unit) -``` - -### Predicate - -`Predicate(func: Callable)` expresses that `func(value)` is truthy for valid values. -Users should prefer the statically inspectable metadata above, but if you need -the full power and flexibility of arbitrary runtime predicates... here it is. - -For some common constraints, we provide generic types: - -* `IsLower = Annotated[T, Predicate(str.islower)]` -* `IsUpper = Annotated[T, Predicate(str.isupper)]` -* `IsDigit = Annotated[T, Predicate(str.isdigit)]` -* `IsFinite = Annotated[T, Predicate(math.isfinite)]` -* `IsNotFinite = Annotated[T, Predicate(Not(math.isfinite))]` -* `IsNan = Annotated[T, Predicate(math.isnan)]` -* `IsNotNan = Annotated[T, Predicate(Not(math.isnan))]` -* `IsInfinite = Annotated[T, Predicate(math.isinf)]` -* `IsNotInfinite = Annotated[T, Predicate(Not(math.isinf))]` - -so that you can write e.g. `x: IsFinite[float] = 2.0` instead of the longer -(but exactly equivalent) `x: Annotated[float, Predicate(math.isfinite)] = 2.0`. - -Some libraries might have special logic to handle known or understandable predicates, -for example by checking for `str.isdigit` and using its presence to both call custom -logic to enforce digit-only strings, and customise some generated external schema. -Users are therefore encouraged to avoid indirection like `lambda s: s.lower()`, in -favor of introspectable methods such as `str.lower` or `re.compile("pattern").search`. - -To enable basic negation of commonly used predicates like `math.isnan` without introducing introspection that makes it impossible for implementers to introspect the predicate we provide a `Not` wrapper that simply negates the predicate in an introspectable manner. Several of the predicates listed above are created in this manner. - -We do not specify what behaviour should be expected for predicates that raise -an exception. For example `Annotated[int, Predicate(str.isdigit)]` might silently -skip invalid constraints, or statically raise an error; or it might try calling it -and then propagate or discard the resulting -`TypeError: descriptor 'isdigit' for 'str' objects doesn't apply to a 'int' object` -exception. We encourage libraries to document the behaviour they choose. - -### Doc - -`doc()` can be used to add documentation information in `Annotated`, for function and method parameters, variables, class attributes, return types, and any place where `Annotated` can be used. - -It expects a value that can be statically analyzed, as the main use case is for static analysis, editors, documentation generators, and similar tools. - -It returns a `DocInfo` class with a single attribute `documentation` containing the value passed to `doc()`. - -This is the early adopter's alternative form of the [`typing-doc` proposal](https://github.com/tiangolo/fastapi/blob/typing-doc/typing_doc.md). - -### Integrating downstream types with `GroupedMetadata` - -Implementers may choose to provide a convenience wrapper that groups multiple pieces of metadata. -This can help reduce verbosity and cognitive overhead for users. -For example, an implementer like Pydantic might provide a `Field` or `Meta` type that accepts keyword arguments and transforms these into low-level metadata: - -```python -from dataclasses import dataclass -from typing import Iterator -from annotated_types import GroupedMetadata, Ge - -@dataclass -class Field(GroupedMetadata): - ge: int | None = None - description: str | None = None - - def __iter__(self) -> Iterator[object]: - # Iterating over a GroupedMetadata object should yield annotated-types - # constraint metadata objects which describe it as fully as possible, - # and may include other unknown objects too. - if self.ge is not None: - yield Ge(self.ge) - if self.description is not None: - yield Description(self.description) -``` - -Libraries consuming annotated-types constraints should check for `GroupedMetadata` and unpack it by iterating over the object and treating the results as if they had been "unpacked" in the `Annotated` type. The same logic should be applied to the [PEP 646 `Unpack` type](https://peps.python.org/pep-0646/), so that `Annotated[T, Field(...)]`, `Annotated[T, Unpack[Field(...)]]` and `Annotated[T, *Field(...)]` are all treated consistently. - -Libraries consuming annotated-types should also ignore any metadata they do not recongize that came from unpacking a `GroupedMetadata`, just like they ignore unrecognized metadata in `Annotated` itself. - -Our own `annotated_types.Interval` class is a `GroupedMetadata` which unpacks itself into `Gt`, `Lt`, etc., so this is not an abstract concern. Similarly, `annotated_types.Len` is a `GroupedMetadata` which unpacks itself into `MinLen` (optionally) and `MaxLen`. - -### Consuming metadata - -We intend to not be prescriptive as to _how_ the metadata and constraints are used, but as an example of how one might parse constraints from types annotations see our [implementation in `test_main.py`](https://github.com/annotated-types/annotated-types/blob/f59cf6d1b5255a0fe359b93896759a180bec30ae/tests/test_main.py#L94-L103). - -It is up to the implementer to determine how this metadata is used. -You could use the metadata for runtime type checking, for generating schemas or to generate example data, amongst other use cases. - -## Design & History - -This package was designed at the PyCon 2022 sprints by the maintainers of Pydantic -and Hypothesis, with the goal of making it as easy as possible for end-users to -provide more informative annotations for use by runtime libraries. - -It is deliberately minimal, and following PEP-593 allows considerable downstream -discretion in what (if anything!) they choose to support. Nonetheless, we expect -that staying simple and covering _only_ the most common use-cases will give users -and maintainers the best experience we can. If you'd like more constraints for your -types - follow our lead, by defining them and documenting them downstream! diff --git a/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/RECORD b/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/RECORD deleted file mode 100644 index a66e278..0000000 --- a/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/RECORD +++ /dev/null @@ -1,10 +0,0 @@ -annotated_types-0.7.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -annotated_types-0.7.0.dist-info/METADATA,sha256=7ltqxksJJ0wCYFGBNIQCWTlWQGeAH0hRFdnK3CB895E,15046 -annotated_types-0.7.0.dist-info/RECORD,, -annotated_types-0.7.0.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87 -annotated_types-0.7.0.dist-info/licenses/LICENSE,sha256=_hBJiEsaDZNCkB6I4H8ykl0ksxIdmXK2poBfuYJLCV0,1083 -annotated_types/__init__.py,sha256=RynLsRKUEGI0KimXydlD1fZEfEzWwDo0Uon3zOKhG1Q,13819 -annotated_types/__pycache__/__init__.cpython-312.pyc,, -annotated_types/__pycache__/test_cases.cpython-312.pyc,, -annotated_types/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -annotated_types/test_cases.py,sha256=zHFX6EpcMbGJ8FzBYDbO56bPwx_DYIVSKbZM-4B3_lg,6421 diff --git a/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/WHEEL b/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/WHEEL deleted file mode 100644 index 516596c..0000000 --- a/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/WHEEL +++ /dev/null @@ -1,4 +0,0 @@ -Wheel-Version: 1.0 -Generator: hatchling 1.24.2 -Root-Is-Purelib: true -Tag: py3-none-any diff --git a/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE b/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE deleted file mode 100644 index d99323a..0000000 --- a/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2022 the contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/.venv/lib/python3.12/site-packages/annotated_types/__init__.py b/.venv/lib/python3.12/site-packages/annotated_types/__init__.py deleted file mode 100644 index 74e0dee..0000000 --- a/.venv/lib/python3.12/site-packages/annotated_types/__init__.py +++ /dev/null @@ -1,432 +0,0 @@ -import math -import sys -import types -from dataclasses import dataclass -from datetime import tzinfo -from typing import TYPE_CHECKING, Any, Callable, Iterator, Optional, SupportsFloat, SupportsIndex, TypeVar, Union - -if sys.version_info < (3, 8): - from typing_extensions import Protocol, runtime_checkable -else: - from typing import Protocol, runtime_checkable - -if sys.version_info < (3, 9): - from typing_extensions import Annotated, Literal -else: - from typing import Annotated, Literal - -if sys.version_info < (3, 10): - EllipsisType = type(Ellipsis) - KW_ONLY = {} - SLOTS = {} -else: - from types import EllipsisType - - KW_ONLY = {"kw_only": True} - SLOTS = {"slots": True} - - -__all__ = ( - 'BaseMetadata', - 'GroupedMetadata', - 'Gt', - 'Ge', - 'Lt', - 'Le', - 'Interval', - 'MultipleOf', - 'MinLen', - 'MaxLen', - 'Len', - 'Timezone', - 'Predicate', - 'LowerCase', - 'UpperCase', - 'IsDigits', - 'IsFinite', - 'IsNotFinite', - 'IsNan', - 'IsNotNan', - 'IsInfinite', - 'IsNotInfinite', - 'doc', - 'DocInfo', - '__version__', -) - -__version__ = '0.7.0' - - -T = TypeVar('T') - - -# arguments that start with __ are considered -# positional only -# see https://peps.python.org/pep-0484/#positional-only-arguments - - -class SupportsGt(Protocol): - def __gt__(self: T, __other: T) -> bool: - ... - - -class SupportsGe(Protocol): - def __ge__(self: T, __other: T) -> bool: - ... - - -class SupportsLt(Protocol): - def __lt__(self: T, __other: T) -> bool: - ... - - -class SupportsLe(Protocol): - def __le__(self: T, __other: T) -> bool: - ... - - -class SupportsMod(Protocol): - def __mod__(self: T, __other: T) -> T: - ... - - -class SupportsDiv(Protocol): - def __div__(self: T, __other: T) -> T: - ... - - -class BaseMetadata: - """Base class for all metadata. - - This exists mainly so that implementers - can do `isinstance(..., BaseMetadata)` while traversing field annotations. - """ - - __slots__ = () - - -@dataclass(frozen=True, **SLOTS) -class Gt(BaseMetadata): - """Gt(gt=x) implies that the value must be greater than x. - - It can be used with any type that supports the ``>`` operator, - including numbers, dates and times, strings, sets, and so on. - """ - - gt: SupportsGt - - -@dataclass(frozen=True, **SLOTS) -class Ge(BaseMetadata): - """Ge(ge=x) implies that the value must be greater than or equal to x. - - It can be used with any type that supports the ``>=`` operator, - including numbers, dates and times, strings, sets, and so on. - """ - - ge: SupportsGe - - -@dataclass(frozen=True, **SLOTS) -class Lt(BaseMetadata): - """Lt(lt=x) implies that the value must be less than x. - - It can be used with any type that supports the ``<`` operator, - including numbers, dates and times, strings, sets, and so on. - """ - - lt: SupportsLt - - -@dataclass(frozen=True, **SLOTS) -class Le(BaseMetadata): - """Le(le=x) implies that the value must be less than or equal to x. - - It can be used with any type that supports the ``<=`` operator, - including numbers, dates and times, strings, sets, and so on. - """ - - le: SupportsLe - - -@runtime_checkable -class GroupedMetadata(Protocol): - """A grouping of multiple objects, like typing.Unpack. - - `GroupedMetadata` on its own is not metadata and has no meaning. - All of the constraints and metadata should be fully expressable - in terms of the `BaseMetadata`'s returned by `GroupedMetadata.__iter__()`. - - Concrete implementations should override `GroupedMetadata.__iter__()` - to add their own metadata. - For example: - - >>> @dataclass - >>> class Field(GroupedMetadata): - >>> gt: float | None = None - >>> description: str | None = None - ... - >>> def __iter__(self) -> Iterable[object]: - >>> if self.gt is not None: - >>> yield Gt(self.gt) - >>> if self.description is not None: - >>> yield Description(self.gt) - - Also see the implementation of `Interval` below for an example. - - Parsers should recognize this and unpack it so that it can be used - both with and without unpacking: - - - `Annotated[int, Field(...)]` (parser must unpack Field) - - `Annotated[int, *Field(...)]` (PEP-646) - """ # noqa: trailing-whitespace - - @property - def __is_annotated_types_grouped_metadata__(self) -> Literal[True]: - return True - - def __iter__(self) -> Iterator[object]: - ... - - if not TYPE_CHECKING: - __slots__ = () # allow subclasses to use slots - - def __init_subclass__(cls, *args: Any, **kwargs: Any) -> None: - # Basic ABC like functionality without the complexity of an ABC - super().__init_subclass__(*args, **kwargs) - if cls.__iter__ is GroupedMetadata.__iter__: - raise TypeError("Can't subclass GroupedMetadata without implementing __iter__") - - def __iter__(self) -> Iterator[object]: # noqa: F811 - raise NotImplementedError # more helpful than "None has no attribute..." type errors - - -@dataclass(frozen=True, **KW_ONLY, **SLOTS) -class Interval(GroupedMetadata): - """Interval can express inclusive or exclusive bounds with a single object. - - It accepts keyword arguments ``gt``, ``ge``, ``lt``, and/or ``le``, which - are interpreted the same way as the single-bound constraints. - """ - - gt: Union[SupportsGt, None] = None - ge: Union[SupportsGe, None] = None - lt: Union[SupportsLt, None] = None - le: Union[SupportsLe, None] = None - - def __iter__(self) -> Iterator[BaseMetadata]: - """Unpack an Interval into zero or more single-bounds.""" - if self.gt is not None: - yield Gt(self.gt) - if self.ge is not None: - yield Ge(self.ge) - if self.lt is not None: - yield Lt(self.lt) - if self.le is not None: - yield Le(self.le) - - -@dataclass(frozen=True, **SLOTS) -class MultipleOf(BaseMetadata): - """MultipleOf(multiple_of=x) might be interpreted in two ways: - - 1. Python semantics, implying ``value % multiple_of == 0``, or - 2. JSONschema semantics, where ``int(value / multiple_of) == value / multiple_of`` - - We encourage users to be aware of these two common interpretations, - and libraries to carefully document which they implement. - """ - - multiple_of: Union[SupportsDiv, SupportsMod] - - -@dataclass(frozen=True, **SLOTS) -class MinLen(BaseMetadata): - """ - MinLen() implies minimum inclusive length, - e.g. ``len(value) >= min_length``. - """ - - min_length: Annotated[int, Ge(0)] - - -@dataclass(frozen=True, **SLOTS) -class MaxLen(BaseMetadata): - """ - MaxLen() implies maximum inclusive length, - e.g. ``len(value) <= max_length``. - """ - - max_length: Annotated[int, Ge(0)] - - -@dataclass(frozen=True, **SLOTS) -class Len(GroupedMetadata): - """ - Len() implies that ``min_length <= len(value) <= max_length``. - - Upper bound may be omitted or ``None`` to indicate no upper length bound. - """ - - min_length: Annotated[int, Ge(0)] = 0 - max_length: Optional[Annotated[int, Ge(0)]] = None - - def __iter__(self) -> Iterator[BaseMetadata]: - """Unpack a Len into zone or more single-bounds.""" - if self.min_length > 0: - yield MinLen(self.min_length) - if self.max_length is not None: - yield MaxLen(self.max_length) - - -@dataclass(frozen=True, **SLOTS) -class Timezone(BaseMetadata): - """Timezone(tz=...) requires a datetime to be aware (or ``tz=None``, naive). - - ``Annotated[datetime, Timezone(None)]`` must be a naive datetime. - ``Timezone[...]`` (the ellipsis literal) expresses that the datetime must be - tz-aware but any timezone is allowed. - - You may also pass a specific timezone string or tzinfo object such as - ``Timezone(timezone.utc)`` or ``Timezone("Africa/Abidjan")`` to express that - you only allow a specific timezone, though we note that this is often - a symptom of poor design. - """ - - tz: Union[str, tzinfo, EllipsisType, None] - - -@dataclass(frozen=True, **SLOTS) -class Unit(BaseMetadata): - """Indicates that the value is a physical quantity with the specified unit. - - It is intended for usage with numeric types, where the value represents the - magnitude of the quantity. For example, ``distance: Annotated[float, Unit('m')]`` - or ``speed: Annotated[float, Unit('m/s')]``. - - Interpretation of the unit string is left to the discretion of the consumer. - It is suggested to follow conventions established by python libraries that work - with physical quantities, such as - - - ``pint`` : - - ``astropy.units``: - - For indicating a quantity with a certain dimensionality but without a specific unit - it is recommended to use square brackets, e.g. `Annotated[float, Unit('[time]')]`. - Note, however, ``annotated_types`` itself makes no use of the unit string. - """ - - unit: str - - -@dataclass(frozen=True, **SLOTS) -class Predicate(BaseMetadata): - """``Predicate(func: Callable)`` implies `func(value)` is truthy for valid values. - - Users should prefer statically inspectable metadata, but if you need the full - power and flexibility of arbitrary runtime predicates... here it is. - - We provide a few predefined predicates for common string constraints: - ``IsLower = Predicate(str.islower)``, ``IsUpper = Predicate(str.isupper)``, and - ``IsDigits = Predicate(str.isdigit)``. Users are encouraged to use methods which - can be given special handling, and avoid indirection like ``lambda s: s.lower()``. - - Some libraries might have special logic to handle certain predicates, e.g. by - checking for `str.isdigit` and using its presence to both call custom logic to - enforce digit-only strings, and customise some generated external schema. - - We do not specify what behaviour should be expected for predicates that raise - an exception. For example `Annotated[int, Predicate(str.isdigit)]` might silently - skip invalid constraints, or statically raise an error; or it might try calling it - and then propagate or discard the resulting exception. - """ - - func: Callable[[Any], bool] - - def __repr__(self) -> str: - if getattr(self.func, "__name__", "") == "": - return f"{self.__class__.__name__}({self.func!r})" - if isinstance(self.func, (types.MethodType, types.BuiltinMethodType)) and ( - namespace := getattr(self.func.__self__, "__name__", None) - ): - return f"{self.__class__.__name__}({namespace}.{self.func.__name__})" - if isinstance(self.func, type(str.isascii)): # method descriptor - return f"{self.__class__.__name__}({self.func.__qualname__})" - return f"{self.__class__.__name__}({self.func.__name__})" - - -@dataclass -class Not: - func: Callable[[Any], bool] - - def __call__(self, __v: Any) -> bool: - return not self.func(__v) - - -_StrType = TypeVar("_StrType", bound=str) - -LowerCase = Annotated[_StrType, Predicate(str.islower)] -""" -Return True if the string is a lowercase string, False otherwise. - -A string is lowercase if all cased characters in the string are lowercase and there is at least one cased character in the string. -""" # noqa: E501 -UpperCase = Annotated[_StrType, Predicate(str.isupper)] -""" -Return True if the string is an uppercase string, False otherwise. - -A string is uppercase if all cased characters in the string are uppercase and there is at least one cased character in the string. -""" # noqa: E501 -IsDigit = Annotated[_StrType, Predicate(str.isdigit)] -IsDigits = IsDigit # type: ignore # plural for backwards compatibility, see #63 -""" -Return True if the string is a digit string, False otherwise. - -A string is a digit string if all characters in the string are digits and there is at least one character in the string. -""" # noqa: E501 -IsAscii = Annotated[_StrType, Predicate(str.isascii)] -""" -Return True if all characters in the string are ASCII, False otherwise. - -ASCII characters have code points in the range U+0000-U+007F. Empty string is ASCII too. -""" - -_NumericType = TypeVar('_NumericType', bound=Union[SupportsFloat, SupportsIndex]) -IsFinite = Annotated[_NumericType, Predicate(math.isfinite)] -"""Return True if x is neither an infinity nor a NaN, and False otherwise.""" -IsNotFinite = Annotated[_NumericType, Predicate(Not(math.isfinite))] -"""Return True if x is one of infinity or NaN, and False otherwise""" -IsNan = Annotated[_NumericType, Predicate(math.isnan)] -"""Return True if x is a NaN (not a number), and False otherwise.""" -IsNotNan = Annotated[_NumericType, Predicate(Not(math.isnan))] -"""Return True if x is anything but NaN (not a number), and False otherwise.""" -IsInfinite = Annotated[_NumericType, Predicate(math.isinf)] -"""Return True if x is a positive or negative infinity, and False otherwise.""" -IsNotInfinite = Annotated[_NumericType, Predicate(Not(math.isinf))] -"""Return True if x is neither a positive or negative infinity, and False otherwise.""" - -try: - from typing_extensions import DocInfo, doc # type: ignore [attr-defined] -except ImportError: - - @dataclass(frozen=True, **SLOTS) - class DocInfo: # type: ignore [no-redef] - """ " - The return value of doc(), mainly to be used by tools that want to extract the - Annotated documentation at runtime. - """ - - documentation: str - """The documentation string passed to doc().""" - - def doc( - documentation: str, - ) -> DocInfo: - """ - Add documentation to a type annotation inside of Annotated. - - For example: - - >>> def hi(name: Annotated[int, doc("The name of the user")]) -> None: ... - """ - return DocInfo(documentation) diff --git a/.venv/lib/python3.12/site-packages/annotated_types/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/annotated_types/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5eb8367..0000000 Binary files a/.venv/lib/python3.12/site-packages/annotated_types/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/annotated_types/__pycache__/test_cases.cpython-312.pyc b/.venv/lib/python3.12/site-packages/annotated_types/__pycache__/test_cases.cpython-312.pyc deleted file mode 100644 index 6d11b9b..0000000 Binary files a/.venv/lib/python3.12/site-packages/annotated_types/__pycache__/test_cases.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/annotated_types/py.typed b/.venv/lib/python3.12/site-packages/annotated_types/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/annotated_types/test_cases.py b/.venv/lib/python3.12/site-packages/annotated_types/test_cases.py deleted file mode 100644 index d9164d6..0000000 --- a/.venv/lib/python3.12/site-packages/annotated_types/test_cases.py +++ /dev/null @@ -1,151 +0,0 @@ -import math -import sys -from datetime import date, datetime, timedelta, timezone -from decimal import Decimal -from typing import Any, Dict, Iterable, Iterator, List, NamedTuple, Set, Tuple - -if sys.version_info < (3, 9): - from typing_extensions import Annotated -else: - from typing import Annotated - -import annotated_types as at - - -class Case(NamedTuple): - """ - A test case for `annotated_types`. - """ - - annotation: Any - valid_cases: Iterable[Any] - invalid_cases: Iterable[Any] - - -def cases() -> Iterable[Case]: - # Gt, Ge, Lt, Le - yield Case(Annotated[int, at.Gt(4)], (5, 6, 1000), (4, 0, -1)) - yield Case(Annotated[float, at.Gt(0.5)], (0.6, 0.7, 0.8, 0.9), (0.5, 0.0, -0.1)) - yield Case( - Annotated[datetime, at.Gt(datetime(2000, 1, 1))], - [datetime(2000, 1, 2), datetime(2000, 1, 3)], - [datetime(2000, 1, 1), datetime(1999, 12, 31)], - ) - yield Case( - Annotated[datetime, at.Gt(date(2000, 1, 1))], - [date(2000, 1, 2), date(2000, 1, 3)], - [date(2000, 1, 1), date(1999, 12, 31)], - ) - yield Case( - Annotated[datetime, at.Gt(Decimal('1.123'))], - [Decimal('1.1231'), Decimal('123')], - [Decimal('1.123'), Decimal('0')], - ) - - yield Case(Annotated[int, at.Ge(4)], (4, 5, 6, 1000, 4), (0, -1)) - yield Case(Annotated[float, at.Ge(0.5)], (0.5, 0.6, 0.7, 0.8, 0.9), (0.4, 0.0, -0.1)) - yield Case( - Annotated[datetime, at.Ge(datetime(2000, 1, 1))], - [datetime(2000, 1, 2), datetime(2000, 1, 3)], - [datetime(1998, 1, 1), datetime(1999, 12, 31)], - ) - - yield Case(Annotated[int, at.Lt(4)], (0, -1), (4, 5, 6, 1000, 4)) - yield Case(Annotated[float, at.Lt(0.5)], (0.4, 0.0, -0.1), (0.5, 0.6, 0.7, 0.8, 0.9)) - yield Case( - Annotated[datetime, at.Lt(datetime(2000, 1, 1))], - [datetime(1999, 12, 31), datetime(1999, 12, 31)], - [datetime(2000, 1, 2), datetime(2000, 1, 3)], - ) - - yield Case(Annotated[int, at.Le(4)], (4, 0, -1), (5, 6, 1000)) - yield Case(Annotated[float, at.Le(0.5)], (0.5, 0.0, -0.1), (0.6, 0.7, 0.8, 0.9)) - yield Case( - Annotated[datetime, at.Le(datetime(2000, 1, 1))], - [datetime(2000, 1, 1), datetime(1999, 12, 31)], - [datetime(2000, 1, 2), datetime(2000, 1, 3)], - ) - - # Interval - yield Case(Annotated[int, at.Interval(gt=4)], (5, 6, 1000), (4, 0, -1)) - yield Case(Annotated[int, at.Interval(gt=4, lt=10)], (5, 6), (4, 10, 1000, 0, -1)) - yield Case(Annotated[float, at.Interval(ge=0.5, le=1)], (0.5, 0.9, 1), (0.49, 1.1)) - yield Case( - Annotated[datetime, at.Interval(gt=datetime(2000, 1, 1), le=datetime(2000, 1, 3))], - [datetime(2000, 1, 2), datetime(2000, 1, 3)], - [datetime(2000, 1, 1), datetime(2000, 1, 4)], - ) - - yield Case(Annotated[int, at.MultipleOf(multiple_of=3)], (0, 3, 9), (1, 2, 4)) - yield Case(Annotated[float, at.MultipleOf(multiple_of=0.5)], (0, 0.5, 1, 1.5), (0.4, 1.1)) - - # lengths - - yield Case(Annotated[str, at.MinLen(3)], ('123', '1234', 'x' * 10), ('', '1', '12')) - yield Case(Annotated[str, at.Len(3)], ('123', '1234', 'x' * 10), ('', '1', '12')) - yield Case(Annotated[List[int], at.MinLen(3)], ([1, 2, 3], [1, 2, 3, 4], [1] * 10), ([], [1], [1, 2])) - yield Case(Annotated[List[int], at.Len(3)], ([1, 2, 3], [1, 2, 3, 4], [1] * 10), ([], [1], [1, 2])) - - yield Case(Annotated[str, at.MaxLen(4)], ('', '1234'), ('12345', 'x' * 10)) - yield Case(Annotated[str, at.Len(0, 4)], ('', '1234'), ('12345', 'x' * 10)) - yield Case(Annotated[List[str], at.MaxLen(4)], ([], ['a', 'bcdef'], ['a', 'b', 'c']), (['a'] * 5, ['b'] * 10)) - yield Case(Annotated[List[str], at.Len(0, 4)], ([], ['a', 'bcdef'], ['a', 'b', 'c']), (['a'] * 5, ['b'] * 10)) - - yield Case(Annotated[str, at.Len(3, 5)], ('123', '12345'), ('', '1', '12', '123456', 'x' * 10)) - yield Case(Annotated[str, at.Len(3, 3)], ('123',), ('12', '1234')) - - yield Case(Annotated[Dict[int, int], at.Len(2, 3)], [{1: 1, 2: 2}], [{}, {1: 1}, {1: 1, 2: 2, 3: 3, 4: 4}]) - yield Case(Annotated[Set[int], at.Len(2, 3)], ({1, 2}, {1, 2, 3}), (set(), {1}, {1, 2, 3, 4})) - yield Case(Annotated[Tuple[int, ...], at.Len(2, 3)], ((1, 2), (1, 2, 3)), ((), (1,), (1, 2, 3, 4))) - - # Timezone - - yield Case( - Annotated[datetime, at.Timezone(None)], [datetime(2000, 1, 1)], [datetime(2000, 1, 1, tzinfo=timezone.utc)] - ) - yield Case( - Annotated[datetime, at.Timezone(...)], [datetime(2000, 1, 1, tzinfo=timezone.utc)], [datetime(2000, 1, 1)] - ) - yield Case( - Annotated[datetime, at.Timezone(timezone.utc)], - [datetime(2000, 1, 1, tzinfo=timezone.utc)], - [datetime(2000, 1, 1), datetime(2000, 1, 1, tzinfo=timezone(timedelta(hours=6)))], - ) - yield Case( - Annotated[datetime, at.Timezone('Europe/London')], - [datetime(2000, 1, 1, tzinfo=timezone(timedelta(0), name='Europe/London'))], - [datetime(2000, 1, 1), datetime(2000, 1, 1, tzinfo=timezone(timedelta(hours=6)))], - ) - - # Quantity - - yield Case(Annotated[float, at.Unit(unit='m')], (5, 4.2), ('5m', '4.2m')) - - # predicate types - - yield Case(at.LowerCase[str], ['abc', 'foobar'], ['', 'A', 'Boom']) - yield Case(at.UpperCase[str], ['ABC', 'DEFO'], ['', 'a', 'abc', 'AbC']) - yield Case(at.IsDigit[str], ['123'], ['', 'ab', 'a1b2']) - yield Case(at.IsAscii[str], ['123', 'foo bar'], ['£100', '😊', 'whatever 👀']) - - yield Case(Annotated[int, at.Predicate(lambda x: x % 2 == 0)], [0, 2, 4], [1, 3, 5]) - - yield Case(at.IsFinite[float], [1.23], [math.nan, math.inf, -math.inf]) - yield Case(at.IsNotFinite[float], [math.nan, math.inf], [1.23]) - yield Case(at.IsNan[float], [math.nan], [1.23, math.inf]) - yield Case(at.IsNotNan[float], [1.23, math.inf], [math.nan]) - yield Case(at.IsInfinite[float], [math.inf], [math.nan, 1.23]) - yield Case(at.IsNotInfinite[float], [math.nan, 1.23], [math.inf]) - - # check stacked predicates - yield Case(at.IsInfinite[Annotated[float, at.Predicate(lambda x: x > 0)]], [math.inf], [-math.inf, 1.23, math.nan]) - - # doc - yield Case(Annotated[int, at.doc("A number")], [1, 2], []) - - # custom GroupedMetadata - class MyCustomGroupedMetadata(at.GroupedMetadata): - def __iter__(self) -> Iterator[at.Predicate]: - yield at.Predicate(lambda x: float(x).is_integer()) - - yield Case(Annotated[float, MyCustomGroupedMetadata()], [0, 2.0], [0.01, 1.5]) diff --git a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/INSTALLER b/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/METADATA b/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/METADATA deleted file mode 100644 index 2de1cd5..0000000 --- a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/METADATA +++ /dev/null @@ -1,105 +0,0 @@ -Metadata-Version: 2.4 -Name: anyio -Version: 4.13.0 -Summary: High-level concurrency and networking framework on top of asyncio or Trio -Author-email: Alex Grönholm -License-Expression: MIT -Project-URL: Documentation, https://anyio.readthedocs.io/en/latest/ -Project-URL: Changelog, https://anyio.readthedocs.io/en/stable/versionhistory.html -Project-URL: Source code, https://github.com/agronholm/anyio -Project-URL: Issue tracker, https://github.com/agronholm/anyio/issues -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: Framework :: AnyIO -Classifier: Typing :: Typed -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Programming Language :: Python :: 3.13 -Classifier: Programming Language :: Python :: 3.14 -Requires-Python: >=3.10 -Description-Content-Type: text/x-rst -License-File: LICENSE -Requires-Dist: exceptiongroup>=1.0.2; python_version < "3.11" -Requires-Dist: idna>=2.8 -Requires-Dist: typing_extensions>=4.5; python_version < "3.13" -Provides-Extra: trio -Requires-Dist: trio>=0.32.0; extra == "trio" -Dynamic: license-file - -.. image:: https://github.com/agronholm/anyio/actions/workflows/test.yml/badge.svg - :target: https://github.com/agronholm/anyio/actions/workflows/test.yml - :alt: Build Status -.. image:: https://coveralls.io/repos/github/agronholm/anyio/badge.svg?branch=master - :target: https://coveralls.io/github/agronholm/anyio?branch=master - :alt: Code Coverage -.. image:: https://readthedocs.org/projects/anyio/badge/?version=latest - :target: https://anyio.readthedocs.io/en/latest/?badge=latest - :alt: Documentation -.. image:: https://badges.gitter.im/gitterHQ/gitter.svg - :target: https://gitter.im/python-trio/AnyIO - :alt: Gitter chat -.. image:: https://tidelift.com/badges/package/pypi/anyio - :target: https://tidelift.com/subscription/pkg/pypi-anyio - :alt: Tidelift - -AnyIO is an asynchronous networking and concurrency library that works on top of either asyncio_ or -Trio_. It implements Trio-like `structured concurrency`_ (SC) on top of asyncio and works in harmony -with the native SC of Trio itself. - -Applications and libraries written against AnyIO's API will run unmodified on either asyncio_ or -Trio_. AnyIO can also be adopted into a library or application incrementally – bit by bit, no full -refactoring necessary. It will blend in with the native libraries of your chosen backend. - -To find out why you might want to use AnyIO's APIs instead of asyncio's, you can read about it -`here `_. - -Documentation -------------- - -View full documentation at: https://anyio.readthedocs.io/ - -Features --------- - -AnyIO offers the following functionality: - -* Task groups (nurseries_ in trio terminology) -* High-level networking (TCP, UDP and UNIX sockets) - - * `Happy eyeballs`_ algorithm for TCP connections (more robust than that of asyncio on Python - 3.8) - * async/await style UDP sockets (unlike asyncio where you still have to use Transports and - Protocols) - -* A versatile API for byte streams and object streams -* Inter-task synchronization and communication (locks, conditions, events, semaphores, object - streams) -* Worker threads -* Subprocesses -* Subinterpreter support for code parallelization (on Python 3.13 and later) -* Asynchronous file I/O (using worker threads) -* Signal handling -* Asynchronous version of the functools_ module - -AnyIO also comes with its own pytest_ plugin which also supports asynchronous fixtures. -It even works with the popular Hypothesis_ library. - -.. _asyncio: https://docs.python.org/3/library/asyncio.html -.. _Trio: https://github.com/python-trio/trio -.. _structured concurrency: https://en.wikipedia.org/wiki/Structured_concurrency -.. _nurseries: https://trio.readthedocs.io/en/stable/reference-core.html#nurseries-and-spawning -.. _Happy eyeballs: https://en.wikipedia.org/wiki/Happy_Eyeballs -.. _pytest: https://docs.pytest.org/en/latest/ -.. _functools: https://docs.python.org/3/library/functools.html -.. _Hypothesis: https://hypothesis.works/ - -Security contact information ----------------------------- - -To report a security vulnerability, please use the `Tidelift security contact`_. -Tidelift will coordinate the fix and disclosure. - -.. _Tidelift security contact: https://tidelift.com/security diff --git a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/RECORD b/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/RECORD deleted file mode 100644 index e5f678c..0000000 --- a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/RECORD +++ /dev/null @@ -1,92 +0,0 @@ -anyio-4.13.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -anyio-4.13.0.dist-info/METADATA,sha256=F0EYfiPlmTRwmJN2JktNxJg1GNnl0wHhzOWmz7pFvjM,4513 -anyio-4.13.0.dist-info/RECORD,, -anyio-4.13.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91 -anyio-4.13.0.dist-info/entry_points.txt,sha256=_d6Yu6uiaZmNe0CydowirE9Cmg7zUL2g08tQpoS3Qvc,39 -anyio-4.13.0.dist-info/licenses/LICENSE,sha256=U2GsncWPLvX9LpsJxoKXwX8ElQkJu8gCO9uC6s8iwrA,1081 -anyio-4.13.0.dist-info/top_level.txt,sha256=QglSMiWX8_5dpoVAEIHdEYzvqFMdSYWmCj6tYw2ITkQ,6 -anyio/__init__.py,sha256=7iDVqMUprUuKNY91FuoKqayAhR-OY136YDPI6P78HHk,6170 -anyio/__pycache__/__init__.cpython-312.pyc,, -anyio/__pycache__/from_thread.cpython-312.pyc,, -anyio/__pycache__/functools.cpython-312.pyc,, -anyio/__pycache__/lowlevel.cpython-312.pyc,, -anyio/__pycache__/pytest_plugin.cpython-312.pyc,, -anyio/__pycache__/to_interpreter.cpython-312.pyc,, -anyio/__pycache__/to_process.cpython-312.pyc,, -anyio/__pycache__/to_thread.cpython-312.pyc,, -anyio/_backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -anyio/_backends/__pycache__/__init__.cpython-312.pyc,, -anyio/_backends/__pycache__/_asyncio.cpython-312.pyc,, -anyio/_backends/__pycache__/_trio.cpython-312.pyc,, -anyio/_backends/_asyncio.py,sha256=kuqlg2sBUsFdgY80xSDAw60Gx_4WNCl9iSL5XlY6lCU,99476 -anyio/_backends/_trio.py,sha256=l9U-TsKRxzmTQxSMvOhn0bNeFn_iRx3Ho30jvR5Bdu0,41366 -anyio/_core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -anyio/_core/__pycache__/__init__.cpython-312.pyc,, -anyio/_core/__pycache__/_asyncio_selector_thread.cpython-312.pyc,, -anyio/_core/__pycache__/_contextmanagers.cpython-312.pyc,, -anyio/_core/__pycache__/_eventloop.cpython-312.pyc,, -anyio/_core/__pycache__/_exceptions.cpython-312.pyc,, -anyio/_core/__pycache__/_fileio.cpython-312.pyc,, -anyio/_core/__pycache__/_resources.cpython-312.pyc,, -anyio/_core/__pycache__/_signals.cpython-312.pyc,, -anyio/_core/__pycache__/_sockets.cpython-312.pyc,, -anyio/_core/__pycache__/_streams.cpython-312.pyc,, -anyio/_core/__pycache__/_subprocesses.cpython-312.pyc,, -anyio/_core/__pycache__/_synchronization.cpython-312.pyc,, -anyio/_core/__pycache__/_tasks.cpython-312.pyc,, -anyio/_core/__pycache__/_tempfile.cpython-312.pyc,, -anyio/_core/__pycache__/_testing.cpython-312.pyc,, -anyio/_core/__pycache__/_typedattr.cpython-312.pyc,, -anyio/_core/_asyncio_selector_thread.py,sha256=2PdxFM3cs02Kp6BSppbvmRT7q7asreTW5FgBxEsflBo,5626 -anyio/_core/_contextmanagers.py,sha256=YInBCabiEeS-UaP_Jdxa1CaFC71ETPW8HZTHIM8Rsc8,7215 -anyio/_core/_eventloop.py,sha256=c2EdcBX-xnKwxPcC4Pjn3_qG9I-x4IWFO2R9RqCGjM4,6448 -anyio/_core/_exceptions.py,sha256=Y3aq-Wxd7Q2HqwSg7nZPvRsHEuGazv_qeet6gqEBdPk,4407 -anyio/_core/_fileio.py,sha256=CKi1gFNiW2G4knWeBE7He7-rptQwgYjDUWfG8DSlvLs,25665 -anyio/_core/_resources.py,sha256=NbmU5O5UX3xEyACnkmYX28Fmwdl-f-ny0tHym26e0w0,435 -anyio/_core/_signals.py,sha256=mjTBB2hTKNPRlU0IhnijeQedpWOGERDiMjSlJQsFrug,1016 -anyio/_core/_sockets.py,sha256=RBXHcUqZt5gg_-OOfgHVv8uq2FSKk1uVUzTdpjBoI1o,34977 -anyio/_core/_streams.py,sha256=FczFwIgDpnkK0bODWJXMpsUJYdvAD04kaUaGzJU8DK0,1806 -anyio/_core/_subprocesses.py,sha256=tkmkPKEkEaiMD8C9WRZBlmgjOYRDRbZdte6e-unay2E,7916 -anyio/_core/_synchronization.py,sha256=9G3fvRsPNrrWJ_Z6gD_80wXq8I8qgAyhwM8PvHQnT2c,21061 -anyio/_core/_tasks.py,sha256=pVB7K6AAulzUM8YgXAeqNZG44nSyZ1bYJjH8GznC00I,5435 -anyio/_core/_tempfile.py,sha256=jE2w59FRF3yRo4vjkjfZF2YcqsBZvc66VWRwrJGDYGk,19624 -anyio/_core/_testing.py,sha256=u7MPqGXwpTxqI7hclSdNA30z2GH1Nw258uwKvy_RfBg,2340 -anyio/_core/_typedattr.py,sha256=P4ozZikn3-DbpoYcvyghS_FOYAgbmUxeoU8-L_07pZM,2508 -anyio/abc/__init__.py,sha256=6mWhcl_pGXhrgZVHP_TCfMvIXIOp9mroEFM90fYCU_U,2869 -anyio/abc/__pycache__/__init__.cpython-312.pyc,, -anyio/abc/__pycache__/_eventloop.cpython-312.pyc,, -anyio/abc/__pycache__/_resources.cpython-312.pyc,, -anyio/abc/__pycache__/_sockets.cpython-312.pyc,, -anyio/abc/__pycache__/_streams.cpython-312.pyc,, -anyio/abc/__pycache__/_subprocesses.cpython-312.pyc,, -anyio/abc/__pycache__/_tasks.cpython-312.pyc,, -anyio/abc/__pycache__/_testing.cpython-312.pyc,, -anyio/abc/_eventloop.py,sha256=39lYnmtvoHaZw22sWBKOTA_zv7bamOnr8O49PqgDXdw,10629 -anyio/abc/_resources.py,sha256=DrYvkNN1hH6Uvv5_5uKySvDsnknGVDe8FCKfko0VtN8,783 -anyio/abc/_sockets.py,sha256=OmVDrfemVvF9c5K1tpBgQyV6fn5v0XyCExLAqBOGz9o,13124 -anyio/abc/_streams.py,sha256=HYvna1iZbWcwLROTO6IhLX79RTRLPShZMWe0sG1q54I,7481 -anyio/abc/_subprocesses.py,sha256=cumAPJTktOQtw63IqG0lDpyZqu_l1EElvQHMiwJgL08,2067 -anyio/abc/_tasks.py,sha256=KC7wrciE48AINOI-AhPutnFhe1ewfP7QnamFlDzqesQ,3721 -anyio/abc/_testing.py,sha256=tBJUzkSfOXJw23fe8qSJ03kJlShOYjjaEyFB6k6MYT8,1821 -anyio/from_thread.py,sha256=L-0w1HxJ6BSb-KuVi57k5Tkc3yzQrx3QK5tAxMPcY-0,19141 -anyio/functools.py,sha256=5AWM1iYTKkTzptvUhQDdLSh5GvbBW-vcs-SAUfIfA9A,12076 -anyio/lowlevel.py,sha256=AyKLVK3LaWSoK39LkCKxE4_GDMLKZBNqTrLUgk63y80,5158 -anyio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -anyio/pytest_plugin.py,sha256=t6h4KJstqIxfxwTZ1YO8vpUVuB99nfCLltn0NHfatHo,12775 -anyio/streams/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -anyio/streams/__pycache__/__init__.cpython-312.pyc,, -anyio/streams/__pycache__/buffered.cpython-312.pyc,, -anyio/streams/__pycache__/file.cpython-312.pyc,, -anyio/streams/__pycache__/memory.cpython-312.pyc,, -anyio/streams/__pycache__/stapled.cpython-312.pyc,, -anyio/streams/__pycache__/text.cpython-312.pyc,, -anyio/streams/__pycache__/tls.cpython-312.pyc,, -anyio/streams/buffered.py,sha256=2R3PeJhe4EXrdYqz44Y6-Eg9R6DrmlsYrP36Ir43-po,6263 -anyio/streams/file.py,sha256=msnrotVKGMQomUu_Rj2qz9MvIdUp6d3JGr7MOEO8kV4,4428 -anyio/streams/memory.py,sha256=F0zwzvFJKAhX_LRZGoKzzqDC2oMM-f-yyTBrEYEGOaU,10740 -anyio/streams/stapled.py,sha256=T8Xqwf8K6EgURPxbt1N4i7A8BAk-gScv-GRhjLXIf_o,4390 -anyio/streams/text.py,sha256=BcVAGJw1VRvtIqnv-o0Rb0pwH7p8vwlvl21xHq522ag,5765 -anyio/streams/tls.py,sha256=DQVkXUvsTEYKkBO8dlVU7j_5H8QOtLy4sGi1Wrjqevo,15303 -anyio/to_interpreter.py,sha256=_mLngrMy97TMR6VbW4Y6YzDUk9ZuPcQMPlkuyRh3C9k,7100 -anyio/to_process.py,sha256=J7gAA_YOuoHqnpDAf5fm1Qu6kOmTzdFbiDNvnV755vk,9798 -anyio/to_thread.py,sha256=f6h_k2d743GBv9FhAnhM_YpTvWgIrzBy9cOE0eJ1UJw,2693 diff --git a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/WHEEL b/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/WHEEL deleted file mode 100644 index 14a883f..0000000 --- a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: setuptools (82.0.1) -Root-Is-Purelib: true -Tag: py3-none-any - diff --git a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/entry_points.txt b/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/entry_points.txt deleted file mode 100644 index 44dd9bd..0000000 --- a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/entry_points.txt +++ /dev/null @@ -1,2 +0,0 @@ -[pytest11] -anyio = anyio.pytest_plugin diff --git a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/licenses/LICENSE b/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/licenses/LICENSE deleted file mode 100644 index 104eebf..0000000 --- a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/licenses/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2018 Alex Grönholm - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/top_level.txt b/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/top_level.txt deleted file mode 100644 index c77c069..0000000 --- a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -anyio diff --git a/.venv/lib/python3.12/site-packages/anyio/__init__.py b/.venv/lib/python3.12/site-packages/anyio/__init__.py deleted file mode 100644 index d23c5a5..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/__init__.py +++ /dev/null @@ -1,111 +0,0 @@ -from __future__ import annotations - -from ._core._contextmanagers import AsyncContextManagerMixin as AsyncContextManagerMixin -from ._core._contextmanagers import ContextManagerMixin as ContextManagerMixin -from ._core._eventloop import current_time as current_time -from ._core._eventloop import get_all_backends as get_all_backends -from ._core._eventloop import get_available_backends as get_available_backends -from ._core._eventloop import get_cancelled_exc_class as get_cancelled_exc_class -from ._core._eventloop import run as run -from ._core._eventloop import sleep as sleep -from ._core._eventloop import sleep_forever as sleep_forever -from ._core._eventloop import sleep_until as sleep_until -from ._core._exceptions import BrokenResourceError as BrokenResourceError -from ._core._exceptions import BrokenWorkerInterpreter as BrokenWorkerInterpreter -from ._core._exceptions import BrokenWorkerProcess as BrokenWorkerProcess -from ._core._exceptions import BusyResourceError as BusyResourceError -from ._core._exceptions import ClosedResourceError as ClosedResourceError -from ._core._exceptions import ConnectionFailed as ConnectionFailed -from ._core._exceptions import DelimiterNotFound as DelimiterNotFound -from ._core._exceptions import EndOfStream as EndOfStream -from ._core._exceptions import IncompleteRead as IncompleteRead -from ._core._exceptions import NoEventLoopError as NoEventLoopError -from ._core._exceptions import RunFinishedError as RunFinishedError -from ._core._exceptions import TypedAttributeLookupError as TypedAttributeLookupError -from ._core._exceptions import WouldBlock as WouldBlock -from ._core._fileio import AsyncFile as AsyncFile -from ._core._fileio import Path as Path -from ._core._fileio import open_file as open_file -from ._core._fileio import wrap_file as wrap_file -from ._core._resources import aclose_forcefully as aclose_forcefully -from ._core._signals import open_signal_receiver as open_signal_receiver -from ._core._sockets import TCPConnectable as TCPConnectable -from ._core._sockets import UNIXConnectable as UNIXConnectable -from ._core._sockets import as_connectable as as_connectable -from ._core._sockets import connect_tcp as connect_tcp -from ._core._sockets import connect_unix as connect_unix -from ._core._sockets import create_connected_udp_socket as create_connected_udp_socket -from ._core._sockets import ( - create_connected_unix_datagram_socket as create_connected_unix_datagram_socket, -) -from ._core._sockets import create_tcp_listener as create_tcp_listener -from ._core._sockets import create_udp_socket as create_udp_socket -from ._core._sockets import create_unix_datagram_socket as create_unix_datagram_socket -from ._core._sockets import create_unix_listener as create_unix_listener -from ._core._sockets import getaddrinfo as getaddrinfo -from ._core._sockets import getnameinfo as getnameinfo -from ._core._sockets import notify_closing as notify_closing -from ._core._sockets import wait_readable as wait_readable -from ._core._sockets import wait_socket_readable as wait_socket_readable -from ._core._sockets import wait_socket_writable as wait_socket_writable -from ._core._sockets import wait_writable as wait_writable -from ._core._streams import create_memory_object_stream as create_memory_object_stream -from ._core._subprocesses import open_process as open_process -from ._core._subprocesses import run_process as run_process -from ._core._synchronization import CapacityLimiter as CapacityLimiter -from ._core._synchronization import ( - CapacityLimiterStatistics as CapacityLimiterStatistics, -) -from ._core._synchronization import Condition as Condition -from ._core._synchronization import ConditionStatistics as ConditionStatistics -from ._core._synchronization import Event as Event -from ._core._synchronization import EventStatistics as EventStatistics -from ._core._synchronization import Lock as Lock -from ._core._synchronization import LockStatistics as LockStatistics -from ._core._synchronization import ResourceGuard as ResourceGuard -from ._core._synchronization import Semaphore as Semaphore -from ._core._synchronization import SemaphoreStatistics as SemaphoreStatistics -from ._core._tasks import TASK_STATUS_IGNORED as TASK_STATUS_IGNORED -from ._core._tasks import CancelScope as CancelScope -from ._core._tasks import create_task_group as create_task_group -from ._core._tasks import current_effective_deadline as current_effective_deadline -from ._core._tasks import fail_after as fail_after -from ._core._tasks import move_on_after as move_on_after -from ._core._tempfile import NamedTemporaryFile as NamedTemporaryFile -from ._core._tempfile import SpooledTemporaryFile as SpooledTemporaryFile -from ._core._tempfile import TemporaryDirectory as TemporaryDirectory -from ._core._tempfile import TemporaryFile as TemporaryFile -from ._core._tempfile import gettempdir as gettempdir -from ._core._tempfile import gettempdirb as gettempdirb -from ._core._tempfile import mkdtemp as mkdtemp -from ._core._tempfile import mkstemp as mkstemp -from ._core._testing import TaskInfo as TaskInfo -from ._core._testing import get_current_task as get_current_task -from ._core._testing import get_running_tasks as get_running_tasks -from ._core._testing import wait_all_tasks_blocked as wait_all_tasks_blocked -from ._core._typedattr import TypedAttributeProvider as TypedAttributeProvider -from ._core._typedattr import TypedAttributeSet as TypedAttributeSet -from ._core._typedattr import typed_attribute as typed_attribute - -# Re-export imports so they look like they live directly in this package -for __value in list(locals().values()): - if getattr(__value, "__module__", "").startswith("anyio."): - __value.__module__ = __name__ - - -del __value - - -def __getattr__(attr: str) -> type[BrokenWorkerInterpreter]: - """Support deprecated aliases.""" - if attr == "BrokenWorkerIntepreter": - import warnings - - warnings.warn( - "The 'BrokenWorkerIntepreter' alias is deprecated, use 'BrokenWorkerInterpreter' instead.", - DeprecationWarning, - stacklevel=2, - ) - return BrokenWorkerInterpreter - - raise AttributeError(f"module {__name__!r} has no attribute {attr!r}") diff --git a/.venv/lib/python3.12/site-packages/anyio/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 78bedc0..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/__pycache__/from_thread.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/__pycache__/from_thread.cpython-312.pyc deleted file mode 100644 index c614777..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/__pycache__/from_thread.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/__pycache__/functools.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/__pycache__/functools.cpython-312.pyc deleted file mode 100644 index bb3c5cb..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/__pycache__/functools.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/__pycache__/lowlevel.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/__pycache__/lowlevel.cpython-312.pyc deleted file mode 100644 index 1fb29c7..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/__pycache__/lowlevel.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/__pycache__/pytest_plugin.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/__pycache__/pytest_plugin.cpython-312.pyc deleted file mode 100644 index 6de8eea..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/__pycache__/pytest_plugin.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/__pycache__/to_interpreter.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/__pycache__/to_interpreter.cpython-312.pyc deleted file mode 100644 index f1e860c..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/__pycache__/to_interpreter.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/__pycache__/to_process.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/__pycache__/to_process.cpython-312.pyc deleted file mode 100644 index 83c1c24..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/__pycache__/to_process.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/__pycache__/to_thread.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/__pycache__/to_thread.cpython-312.pyc deleted file mode 100644 index 0a39d7e..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/__pycache__/to_thread.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_backends/__init__.py b/.venv/lib/python3.12/site-packages/anyio/_backends/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/anyio/_backends/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_backends/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 99a40ad..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_backends/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_backends/__pycache__/_asyncio.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_backends/__pycache__/_asyncio.cpython-312.pyc deleted file mode 100644 index 534ccee..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_backends/__pycache__/_asyncio.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_backends/__pycache__/_trio.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_backends/__pycache__/_trio.cpython-312.pyc deleted file mode 100644 index ff7eab5..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_backends/__pycache__/_trio.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py b/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py deleted file mode 100644 index 9f1ddc2..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py +++ /dev/null @@ -1,2996 +0,0 @@ -from __future__ import annotations - -import array -import asyncio -import concurrent.futures -import contextvars -import math -import os -import socket -import sys -import threading -import weakref -from asyncio import ( - AbstractEventLoop, - CancelledError, - all_tasks, - create_task, - current_task, - get_running_loop, - sleep, -) -from asyncio.base_events import _run_until_complete_cb # type: ignore[attr-defined] -from collections import OrderedDict, deque -from collections.abc import ( - AsyncGenerator, - AsyncIterator, - Awaitable, - Callable, - Collection, - Coroutine, - Iterable, - Sequence, -) -from concurrent.futures import Future -from contextlib import AbstractContextManager, suppress -from contextvars import Context, copy_context -from dataclasses import dataclass, field -from functools import partial, wraps -from inspect import ( - CORO_RUNNING, - CORO_SUSPENDED, - getcoroutinestate, - iscoroutine, -) -from io import IOBase -from os import PathLike -from queue import Queue -from signal import Signals -from socket import AddressFamily, SocketKind -from threading import Thread -from types import CodeType, TracebackType -from typing import ( - IO, - TYPE_CHECKING, - Any, - ParamSpec, - TypeVar, - cast, -) -from weakref import WeakKeyDictionary - -from .. import ( - CapacityLimiterStatistics, - EventStatistics, - LockStatistics, - TaskInfo, - abc, -) -from .._core._eventloop import ( - claim_worker_thread, - set_current_async_library, - threadlocals, -) -from .._core._exceptions import ( - BrokenResourceError, - BusyResourceError, - ClosedResourceError, - EndOfStream, - RunFinishedError, - WouldBlock, -) -from .._core._sockets import convert_ipv6_sockaddr -from .._core._streams import create_memory_object_stream -from .._core._synchronization import ( - CapacityLimiter as BaseCapacityLimiter, -) -from .._core._synchronization import Event as BaseEvent -from .._core._synchronization import Lock as BaseLock -from .._core._synchronization import ( - ResourceGuard, - SemaphoreStatistics, -) -from .._core._synchronization import Semaphore as BaseSemaphore -from .._core._tasks import CancelScope as BaseCancelScope -from ..abc import ( - AsyncBackend, - IPSockAddrType, - SocketListener, - UDPPacketType, - UNIXDatagramPacketType, -) -from ..abc._eventloop import StrOrBytesPath -from ..lowlevel import RunVar -from ..streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream - -if TYPE_CHECKING: - from _typeshed import FileDescriptorLike -else: - FileDescriptorLike = object - -if sys.version_info >= (3, 11): - from asyncio import Runner - from typing import TypeVarTuple, Unpack -else: - import contextvars - import enum - import signal - from asyncio import coroutines, events, exceptions, tasks - - from exceptiongroup import BaseExceptionGroup - from typing_extensions import TypeVarTuple, Unpack - - class _State(enum.Enum): - CREATED = "created" - INITIALIZED = "initialized" - CLOSED = "closed" - - class Runner: - # Copied from CPython 3.11 - def __init__( - self, - *, - debug: bool | None = None, - loop_factory: Callable[[], AbstractEventLoop] | None = None, - ): - self._state = _State.CREATED - self._debug = debug - self._loop_factory = loop_factory - self._loop: AbstractEventLoop | None = None - self._context = None - self._interrupt_count = 0 - self._set_event_loop = False - - def __enter__(self) -> Runner: - self._lazy_init() - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self.close() - - def close(self) -> None: - """Shutdown and close event loop.""" - loop = self._loop - if self._state is not _State.INITIALIZED or loop is None: - return - try: - _cancel_all_tasks(loop) - loop.run_until_complete(loop.shutdown_asyncgens()) - if hasattr(loop, "shutdown_default_executor"): - loop.run_until_complete(loop.shutdown_default_executor()) - else: - loop.run_until_complete(_shutdown_default_executor(loop)) - finally: - if self._set_event_loop: - events.set_event_loop(None) - loop.close() - self._loop = None - self._state = _State.CLOSED - - def get_loop(self) -> AbstractEventLoop: - """Return embedded event loop.""" - self._lazy_init() - return self._loop - - def run(self, coro: Coroutine[T_Retval], *, context=None) -> T_Retval: - """Run a coroutine inside the embedded event loop.""" - if not coroutines.iscoroutine(coro): - raise ValueError(f"a coroutine was expected, got {coro!r}") - - if events._get_running_loop() is not None: - # fail fast with short traceback - raise RuntimeError( - "Runner.run() cannot be called from a running event loop" - ) - - self._lazy_init() - - if context is None: - context = self._context - task = context.run(self._loop.create_task, coro) - - if ( - threading.current_thread() is threading.main_thread() - and signal.getsignal(signal.SIGINT) is signal.default_int_handler - ): - sigint_handler = partial(self._on_sigint, main_task=task) - try: - signal.signal(signal.SIGINT, sigint_handler) - except ValueError: - # `signal.signal` may throw if `threading.main_thread` does - # not support signals (e.g. embedded interpreter with signals - # not registered - see gh-91880) - sigint_handler = None - else: - sigint_handler = None - - self._interrupt_count = 0 - try: - return self._loop.run_until_complete(task) - except exceptions.CancelledError: - if self._interrupt_count > 0: - uncancel = getattr(task, "uncancel", None) - if uncancel is not None and uncancel() == 0: - raise KeyboardInterrupt # noqa: B904 - raise # CancelledError - finally: - if ( - sigint_handler is not None - and signal.getsignal(signal.SIGINT) is sigint_handler - ): - signal.signal(signal.SIGINT, signal.default_int_handler) - - def _lazy_init(self) -> None: - if self._state is _State.CLOSED: - raise RuntimeError("Runner is closed") - if self._state is _State.INITIALIZED: - return - if self._loop_factory is None: - self._loop = events.new_event_loop() - if not self._set_event_loop: - # Call set_event_loop only once to avoid calling - # attach_loop multiple times on child watchers - events.set_event_loop(self._loop) - self._set_event_loop = True - else: - self._loop = self._loop_factory() - if self._debug is not None: - self._loop.set_debug(self._debug) - self._context = contextvars.copy_context() - self._state = _State.INITIALIZED - - def _on_sigint(self, signum, frame, main_task: asyncio.Task) -> None: - self._interrupt_count += 1 - if self._interrupt_count == 1 and not main_task.done(): - main_task.cancel() - # wakeup loop if it is blocked by select() with long timeout - self._loop.call_soon_threadsafe(lambda: None) - return - raise KeyboardInterrupt() - - def _cancel_all_tasks(loop: AbstractEventLoop) -> None: - to_cancel = tasks.all_tasks(loop) - if not to_cancel: - return - - for task in to_cancel: - task.cancel() - - loop.run_until_complete(tasks.gather(*to_cancel, return_exceptions=True)) - - for task in to_cancel: - if task.cancelled(): - continue - if task.exception() is not None: - loop.call_exception_handler( - { - "message": "unhandled exception during asyncio.run() shutdown", - "exception": task.exception(), - "task": task, - } - ) - - async def _shutdown_default_executor(loop: AbstractEventLoop) -> None: - """Schedule the shutdown of the default executor.""" - - def _do_shutdown(future: asyncio.futures.Future) -> None: - try: - loop._default_executor.shutdown(wait=True) # type: ignore[attr-defined] - loop.call_soon_threadsafe(future.set_result, None) - except Exception as ex: - loop.call_soon_threadsafe(future.set_exception, ex) - - loop._executor_shutdown_called = True - if loop._default_executor is None: - return - future = loop.create_future() - thread = threading.Thread(target=_do_shutdown, args=(future,)) - thread.start() - try: - await future - finally: - thread.join() - - -T_Retval = TypeVar("T_Retval") -T_contra = TypeVar("T_contra", contravariant=True) -PosArgsT = TypeVarTuple("PosArgsT") -P = ParamSpec("P") - -_root_task: RunVar[asyncio.Task | None] = RunVar("_root_task") - - -def find_root_task() -> asyncio.Task: - root_task = _root_task.get(None) - if root_task is not None and not root_task.done(): - return root_task - - # Look for a task that has been started via run_until_complete() - for task in all_tasks(): - if task._callbacks and not task.done(): - callbacks = [cb for cb, context in task._callbacks] - for cb in callbacks: - if ( - cb is _run_until_complete_cb - or getattr(cb, "__module__", None) == "uvloop.loop" - ): - _root_task.set(task) - return task - - # Look up the topmost task in the AnyIO task tree, if possible - task = cast(asyncio.Task, current_task()) - state = _task_states.get(task) - if state: - cancel_scope = state.cancel_scope - while cancel_scope and cancel_scope._parent_scope is not None: - cancel_scope = cancel_scope._parent_scope - - if cancel_scope is not None: - return cast(asyncio.Task, cancel_scope._host_task) - - return task - - -def get_callable_name(func: Callable) -> str: - module = getattr(func, "__module__", None) - qualname = getattr(func, "__qualname__", None) - return ".".join([x for x in (module, qualname) if x]) - - -# -# Event loop -# - -_run_vars: WeakKeyDictionary[asyncio.AbstractEventLoop, Any] = WeakKeyDictionary() - - -def _task_started(task: asyncio.Task) -> bool: - """Return ``True`` if the task has been started and has not finished.""" - # The task coro should never be None here, as we never add finished tasks to the - # task list - coro = task.get_coro() - assert coro is not None - try: - return getcoroutinestate(coro) in (CORO_RUNNING, CORO_SUSPENDED) - except AttributeError: - # task coro is async_genenerator_asend https://bugs.python.org/issue37771 - raise Exception(f"Cannot determine if task {task} has started or not") from None - - -# -# Timeouts and cancellation -# - - -def is_anyio_cancellation(exc: CancelledError) -> bool: - # Sometimes third party frameworks catch a CancelledError and raise a new one, so as - # a workaround we have to look at the previous ones in __context__ too for a - # matching cancel message - while True: - if ( - exc.args - and isinstance(exc.args[0], str) - and exc.args[0].startswith("Cancelled via cancel scope ") - ): - return True - - if isinstance(exc.__context__, CancelledError): - exc = exc.__context__ - continue - - return False - - -class CancelScope(BaseCancelScope): - def __new__( - cls, *, deadline: float = math.inf, shield: bool = False - ) -> CancelScope: - return object.__new__(cls) - - def __init__(self, deadline: float = math.inf, shield: bool = False): - self._deadline = deadline - self._shield = shield - self._parent_scope: CancelScope | None = None - self._child_scopes: set[CancelScope] = set() - self._cancel_called = False - self._cancel_reason: str | None = None - self._cancelled_caught = False - self._active = False - self._timeout_handle: asyncio.TimerHandle | None = None - self._cancel_handle: asyncio.Handle | None = None - self._tasks: set[asyncio.Task] = set() - self._host_task: asyncio.Task | None = None - if sys.version_info >= (3, 11): - self._pending_uncancellations: int | None = 0 - else: - self._pending_uncancellations = None - - def __enter__(self) -> CancelScope: - if self._active: - raise RuntimeError( - "Each CancelScope may only be used for a single 'with' block" - ) - - self._host_task = host_task = cast(asyncio.Task, current_task()) - self._tasks.add(host_task) - try: - task_state = _task_states[host_task] - except KeyError: - task_state = TaskState(None, self) - _task_states[host_task] = task_state - else: - self._parent_scope = task_state.cancel_scope - task_state.cancel_scope = self - if self._parent_scope is not None: - # If using an eager task factory, the parent scope may not even contain - # the host task - self._parent_scope._child_scopes.add(self) - self._parent_scope._tasks.discard(host_task) - - self._timeout() - self._active = True - - # Start cancelling the host task if the scope was cancelled before entering - if self._cancel_called: - self._deliver_cancellation(self) - - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> bool: - del exc_tb - - if not self._active: - raise RuntimeError("This cancel scope is not active") - if current_task() is not self._host_task: - raise RuntimeError( - "Attempted to exit cancel scope in a different task than it was " - "entered in" - ) - - assert self._host_task is not None - host_task_state = _task_states.get(self._host_task) - if host_task_state is None or host_task_state.cancel_scope is not self: - raise RuntimeError( - "Attempted to exit a cancel scope that isn't the current tasks's " - "current cancel scope" - ) - - try: - self._active = False - if self._timeout_handle: - self._timeout_handle.cancel() - self._timeout_handle = None - - self._tasks.remove(self._host_task) - if self._parent_scope is not None: - self._parent_scope._child_scopes.remove(self) - self._parent_scope._tasks.add(self._host_task) - - host_task_state.cancel_scope = self._parent_scope - - # Restart the cancellation effort in the closest visible, cancelled parent - # scope if necessary - self._restart_cancellation_in_parent() - - # We only swallow the exception iff it was an AnyIO CancelledError, either - # directly as exc_val or inside an exception group and there are no cancelled - # parent cancel scopes visible to us here - if self._cancel_called and not self._parent_cancellation_is_visible_to_us: - # For each level-cancel() call made on the host task, call uncancel() - while self._pending_uncancellations: - self._host_task.uncancel() - self._pending_uncancellations -= 1 - - # Update cancelled_caught and check for exceptions we must not swallow - if isinstance(exc_val, BaseExceptionGroup): - cancelleds_caught, remaining = exc_val.split( - lambda exc: ( - isinstance(exc, CancelledError) - and is_anyio_cancellation(exc) - ) - ) - - if cancelleds_caught is None: - return False - - self._cancelled_caught = True - - if remaining is None: - return True - - context = remaining.__context__ - try: - # Preserve __cause__ and __suppress_context__ by avoiding `raise - # ... from ...` - raise remaining - finally: - # Preserve __context__ - remaining.__context__ = context - del context - else: - if isinstance(exc_val, CancelledError) and is_anyio_cancellation( - exc_val - ): - self._cancelled_caught = True - return True - else: - return False - else: - if self._pending_uncancellations: - assert self._parent_scope is not None - assert self._parent_scope._pending_uncancellations is not None - self._parent_scope._pending_uncancellations += ( - self._pending_uncancellations - ) - self._pending_uncancellations = 0 - - return False - finally: - self._host_task = None - del exc_val - - @property - def _effectively_cancelled(self) -> bool: - cancel_scope: CancelScope | None = self - while cancel_scope is not None: - if cancel_scope._cancel_called: - return True - - if cancel_scope.shield: - return False - - cancel_scope = cancel_scope._parent_scope - - return False - - @property - def _parent_cancellation_is_visible_to_us(self) -> bool: - return ( - self._parent_scope is not None - and not self.shield - and self._parent_scope._effectively_cancelled - ) - - def _timeout(self) -> None: - if self._deadline != math.inf: - loop = get_running_loop() - if loop.time() >= self._deadline: - self.cancel("deadline exceeded") - else: - self._timeout_handle = loop.call_at(self._deadline, self._timeout) - - def _deliver_cancellation(self, origin: CancelScope) -> bool: - """ - Deliver cancellation to directly contained tasks and nested cancel scopes. - - Schedule another run at the end if we still have tasks eligible for - cancellation. - - :param origin: the cancel scope that originated the cancellation - :return: ``True`` if the delivery needs to be retried on the next cycle - - """ - should_retry = False - current = current_task() - for task in self._tasks: - should_retry = True - if task._must_cancel: # type: ignore[attr-defined] - continue - - # The task is eligible for cancellation if it has started - if task is not current and (task is self._host_task or _task_started(task)): - waiter = task._fut_waiter # type: ignore[attr-defined] - if not isinstance(waiter, asyncio.Future) or not waiter.done(): - task.cancel(origin._cancel_reason) - if ( - task is origin._host_task - and origin._pending_uncancellations is not None - ): - origin._pending_uncancellations += 1 - - # Deliver cancellation to child scopes that aren't shielded or running their own - # cancellation callbacks - for scope in self._child_scopes: - if not scope._shield and not scope.cancel_called: - should_retry = scope._deliver_cancellation(origin) or should_retry - - # Schedule another callback if there are still tasks left - if origin is self: - if should_retry: - self._cancel_handle = get_running_loop().call_soon( - self._deliver_cancellation, origin - ) - else: - self._cancel_handle = None - - return should_retry - - def _restart_cancellation_in_parent(self) -> None: - """ - Restart the cancellation effort in the closest directly cancelled parent scope. - - """ - scope = self._parent_scope - while scope is not None: - if scope._cancel_called: - if scope._cancel_handle is None: - scope._deliver_cancellation(scope) - - break - - # No point in looking beyond any shielded scope - if scope._shield: - break - - scope = scope._parent_scope - - def cancel(self, reason: str | None = None) -> None: - if not self._cancel_called: - if self._timeout_handle: - self._timeout_handle.cancel() - self._timeout_handle = None - - self._cancel_called = True - self._cancel_reason = f"Cancelled via cancel scope {id(self):x}" - if task := current_task(): - self._cancel_reason += f" by {task}" - - if reason: - self._cancel_reason += f"; reason: {reason}" - - if self._host_task is not None: - self._deliver_cancellation(self) - - @property - def deadline(self) -> float: - return self._deadline - - @deadline.setter - def deadline(self, value: float) -> None: - self._deadline = float(value) - if self._timeout_handle is not None: - self._timeout_handle.cancel() - self._timeout_handle = None - - if self._active and not self._cancel_called: - self._timeout() - - @property - def cancel_called(self) -> bool: - return self._cancel_called - - @property - def cancelled_caught(self) -> bool: - return self._cancelled_caught - - @property - def shield(self) -> bool: - return self._shield - - @shield.setter - def shield(self, value: bool) -> None: - if self._shield != value: - self._shield = value - if not value: - self._restart_cancellation_in_parent() - - -# -# Task states -# - - -class TaskState: - """ - Encapsulates auxiliary task information that cannot be added to the Task instance - itself because there are no guarantees about its implementation. - """ - - __slots__ = "parent_id", "cancel_scope", "__weakref__" - - def __init__(self, parent_id: int | None, cancel_scope: CancelScope | None): - self.parent_id = parent_id - self.cancel_scope = cancel_scope - - -_task_states: WeakKeyDictionary[asyncio.Task, TaskState] = WeakKeyDictionary() - - -# -# Task groups -# - - -class _AsyncioTaskStatus(abc.TaskStatus): - def __init__(self, future: asyncio.Future, parent_id: int): - self._future = future - self._parent_id = parent_id - - def started(self, value: T_contra | None = None) -> None: - try: - self._future.set_result(value) - except asyncio.InvalidStateError: - if not self._future.cancelled(): - raise RuntimeError( - "called 'started' twice on the same task status" - ) from None - - task = cast(asyncio.Task, current_task()) - _task_states[task].parent_id = self._parent_id - - -if sys.version_info >= (3, 12): - _eager_task_factory_code: CodeType | None = asyncio.eager_task_factory.__code__ -else: - _eager_task_factory_code = None - - -class TaskGroup(abc.TaskGroup): - def __init__(self) -> None: - self.cancel_scope: CancelScope = CancelScope() - self._active = False - self._exceptions: list[BaseException] = [] - self._tasks: set[asyncio.Task] = set() - self._on_completed_fut: asyncio.Future[None] | None = None - - async def __aenter__(self) -> TaskGroup: - self.cancel_scope.__enter__() - self._active = True - return self - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> bool: - try: - if exc_val is not None: - self.cancel_scope.cancel() - if not isinstance(exc_val, CancelledError): - self._exceptions.append(exc_val) - - loop = get_running_loop() - try: - if self._tasks: - with CancelScope() as wait_scope: - while self._tasks: - self._on_completed_fut = loop.create_future() - - try: - await self._on_completed_fut - except CancelledError as exc: - # Shield the scope against further cancellation attempts, - # as they're not productive (#695) - wait_scope.shield = True - self.cancel_scope.cancel() - - # Set exc_val from the cancellation exception if it was - # previously unset. However, we should not replace a native - # cancellation exception with one raise by a cancel scope. - if exc_val is None or ( - isinstance(exc_val, CancelledError) - and not is_anyio_cancellation(exc) - ): - exc_val = exc - - self._on_completed_fut = None - else: - # If there are no child tasks to wait on, run at least one checkpoint - # anyway - await AsyncIOBackend.cancel_shielded_checkpoint() - - self._active = False - if self._exceptions: - # The exception that got us here should already have been - # added to self._exceptions so it's ok to break exception - # chaining and avoid adding a "During handling of above..." - # for each nesting level. - raise BaseExceptionGroup( - "unhandled errors in a TaskGroup", self._exceptions - ) from None - elif exc_val: - raise exc_val - except BaseException as exc: - if self.cancel_scope.__exit__(type(exc), exc, exc.__traceback__): - return True - - raise - - return self.cancel_scope.__exit__(exc_type, exc_val, exc_tb) - finally: - del exc_val, exc_tb, self._exceptions - - def _spawn( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[Any]], - args: tuple[Unpack[PosArgsT]], - name: object, - task_status_future: asyncio.Future | None = None, - ) -> asyncio.Task: - def task_done(_task: asyncio.Task) -> None: - if sys.version_info >= (3, 14) and self.cancel_scope._host_task is not None: - asyncio.future_discard_from_awaited_by( - _task, self.cancel_scope._host_task - ) - - task_state = _task_states[_task] - assert task_state.cancel_scope is not None - assert _task in task_state.cancel_scope._tasks - task_state.cancel_scope._tasks.remove(_task) - self._tasks.remove(task) - del _task_states[_task] - - if self._on_completed_fut is not None and not self._tasks: - try: - self._on_completed_fut.set_result(None) - except asyncio.InvalidStateError: - pass - - try: - exc = _task.exception() - except CancelledError as e: - while isinstance(e.__context__, CancelledError): - e = e.__context__ - - exc = e - - if exc is not None: - # The future can only be in the cancelled state if the host task was - # cancelled, so return immediately instead of adding one more - # CancelledError to the exceptions list - if task_status_future is not None and task_status_future.cancelled(): - return - - if task_status_future is None or task_status_future.done(): - if not isinstance(exc, CancelledError): - self._exceptions.append(exc) - - if not self.cancel_scope._effectively_cancelled: - self.cancel_scope.cancel() - else: - task_status_future.set_exception(exc) - elif task_status_future is not None and not task_status_future.done(): - task_status_future.set_exception( - RuntimeError("Child exited without calling task_status.started()") - ) - - if not self._active: - raise RuntimeError( - "This task group is not active; no new tasks can be started." - ) - - kwargs = {} - if task_status_future: - parent_id = id(current_task()) - kwargs["task_status"] = _AsyncioTaskStatus( - task_status_future, id(self.cancel_scope._host_task) - ) - else: - parent_id = id(self.cancel_scope._host_task) - - coro = func(*args, **kwargs) - if not iscoroutine(coro): - prefix = f"{func.__module__}." if hasattr(func, "__module__") else "" - raise TypeError( - f"Expected {prefix}{func.__qualname__}() to return a coroutine, but " - f"the return value ({coro!r}) is not a coroutine object" - ) - - name = get_callable_name(func) if name is None else str(name) - loop = asyncio.get_running_loop() - if ( - (factory := loop.get_task_factory()) - and getattr(factory, "__code__", None) is _eager_task_factory_code - and (closure := getattr(factory, "__closure__", None)) - ): - custom_task_constructor = closure[0].cell_contents - task = custom_task_constructor(coro, loop=loop, name=name) - else: - task = create_task(coro, name=name) - - # Make the spawned task inherit the task group's cancel scope - _task_states[task] = TaskState( - parent_id=parent_id, cancel_scope=self.cancel_scope - ) - self.cancel_scope._tasks.add(task) - self._tasks.add(task) - if sys.version_info >= (3, 14) and self.cancel_scope._host_task is not None: - asyncio.future_add_to_awaited_by(task, self.cancel_scope._host_task) - - task.add_done_callback(task_done) - return task - - def start_soon( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[Any]], - *args: Unpack[PosArgsT], - name: object = None, - ) -> None: - self._spawn(func, args, name) - - async def start( - self, func: Callable[..., Awaitable[Any]], *args: object, name: object = None - ) -> Any: - future: asyncio.Future = asyncio.Future() - task = self._spawn(func, args, name, future) - - # If the task raises an exception after sending a start value without a switch - # point between, the task group is cancelled and this method never proceeds to - # process the completed future. That's why we have to have a shielded cancel - # scope here. - try: - return await future - except CancelledError: - # Cancel the task and wait for it to exit before returning - task.cancel() - with CancelScope(shield=True), suppress(CancelledError): - await task - - raise - - -# -# Threads -# - -_Retval_Queue_Type = tuple[T_Retval | None, BaseException | None] - - -class WorkerThread(Thread): - MAX_IDLE_TIME = 10 # seconds - - def __init__( - self, - root_task: asyncio.Task, - workers: set[WorkerThread], - idle_workers: deque[WorkerThread], - ): - super().__init__(name="AnyIO worker thread") - self.root_task = root_task - self.workers = workers - self.idle_workers = idle_workers - self.loop = root_task._loop - self.queue: Queue[ - tuple[Context, Callable, tuple, asyncio.Future, CancelScope] | None - ] = Queue(2) - self.idle_since = AsyncIOBackend.current_time() - self.stopping = False - - def _report_result( - self, future: asyncio.Future, result: Any, exc: BaseException | None - ) -> None: - self.idle_since = AsyncIOBackend.current_time() - if not self.stopping: - self.idle_workers.append(self) - - if not future.cancelled(): - if exc is not None: - if isinstance(exc, StopIteration): - new_exc = RuntimeError("coroutine raised StopIteration") - new_exc.__cause__ = exc - exc = new_exc - - future.set_exception(exc) - else: - future.set_result(result) - - def run(self) -> None: - with claim_worker_thread(AsyncIOBackend, self.loop): - while True: - item = self.queue.get() - if item is None: - # Shutdown command received - return - - context, func, args, future, cancel_scope = item - if not future.cancelled(): - result = None - exception: BaseException | None = None - threadlocals.current_cancel_scope = cancel_scope - try: - result = context.run(func, *args) - except BaseException as exc: - exception = exc - finally: - del threadlocals.current_cancel_scope - - if not self.loop.is_closed(): - self.loop.call_soon_threadsafe( - self._report_result, future, result, exception - ) - - del result, exception - - self.queue.task_done() - del item, context, func, args, future, cancel_scope - - def stop(self, f: asyncio.Task | None = None) -> None: - self.stopping = True - self.queue.put_nowait(None) - self.workers.discard(self) - try: - self.idle_workers.remove(self) - except ValueError: - pass - - -_threadpool_idle_workers: RunVar[deque[WorkerThread]] = RunVar( - "_threadpool_idle_workers" -) -_threadpool_workers: RunVar[set[WorkerThread]] = RunVar("_threadpool_workers") - - -# -# Subprocesses -# - - -@dataclass(eq=False) -class StreamReaderWrapper(abc.ByteReceiveStream): - _stream: asyncio.StreamReader - - async def receive(self, max_bytes: int = 65536) -> bytes: - data = await self._stream.read(max_bytes) - if data: - return data - else: - raise EndOfStream - - async def aclose(self) -> None: - self._stream.set_exception(ClosedResourceError()) - await AsyncIOBackend.checkpoint() - - -@dataclass(eq=False) -class StreamWriterWrapper(abc.ByteSendStream): - _stream: asyncio.StreamWriter - _closed: bool = field(init=False, default=False) - - async def send(self, item: bytes) -> None: - await AsyncIOBackend.checkpoint_if_cancelled() - stream_paused = self._stream._protocol._paused # type: ignore[attr-defined] - try: - self._stream.write(item) - await self._stream.drain() - except (ConnectionResetError, BrokenPipeError, RuntimeError) as exc: - # If closed by us and/or the peer: - # * on stdlib, drain() raises ConnectionResetError or BrokenPipeError - # * on uvloop and Winloop, write() eventually starts raising RuntimeError - if self._closed: - raise ClosedResourceError from exc - elif self._stream.is_closing(): - raise BrokenResourceError from exc - - raise - - if not stream_paused: - await AsyncIOBackend.cancel_shielded_checkpoint() - - async def aclose(self) -> None: - self._closed = True - self._stream.close() - await AsyncIOBackend.checkpoint() - - -@dataclass(eq=False) -class Process(abc.Process): - _process: asyncio.subprocess.Process - _stdin: StreamWriterWrapper | None - _stdout: StreamReaderWrapper | None - _stderr: StreamReaderWrapper | None - - async def aclose(self) -> None: - with CancelScope(shield=True) as scope: - if self._stdin: - await self._stdin.aclose() - if self._stdout: - await self._stdout.aclose() - if self._stderr: - await self._stderr.aclose() - - scope.shield = False - try: - await self.wait() - except BaseException: - scope.shield = True - self.kill() - await self.wait() - raise - - async def wait(self) -> int: - return await self._process.wait() - - def terminate(self) -> None: - self._process.terminate() - - def kill(self) -> None: - self._process.kill() - - def send_signal(self, signal: int) -> None: - self._process.send_signal(signal) - - @property - def pid(self) -> int: - return self._process.pid - - @property - def returncode(self) -> int | None: - return self._process.returncode - - @property - def stdin(self) -> abc.ByteSendStream | None: - return self._stdin - - @property - def stdout(self) -> abc.ByteReceiveStream | None: - return self._stdout - - @property - def stderr(self) -> abc.ByteReceiveStream | None: - return self._stderr - - -def _forcibly_shutdown_process_pool_on_exit( - workers: set[Process], _task: object -) -> None: - """ - Forcibly shuts down worker processes belonging to this event loop.""" - child_watcher: asyncio.AbstractChildWatcher | None = None # type: ignore[name-defined] - if sys.version_info < (3, 12): - try: - child_watcher = asyncio.get_event_loop_policy().get_child_watcher() - except NotImplementedError: - pass - - # Close as much as possible (w/o async/await) to avoid warnings - for process in workers.copy(): - if process.returncode is not None: - continue - - process._stdin._stream._transport.close() # type: ignore[union-attr] - process._stdout._stream._transport.close() # type: ignore[union-attr] - process._stderr._stream._transport.close() # type: ignore[union-attr] - process.kill() - if child_watcher: - child_watcher.remove_child_handler(process.pid) - - -async def _shutdown_process_pool_on_exit(workers: set[abc.Process]) -> None: - """ - Shuts down worker processes belonging to this event loop. - - NOTE: this only works when the event loop was started using asyncio.run() or - anyio.run(). - - """ - process: abc.Process - try: - await sleep(math.inf) - except asyncio.CancelledError: - workers = workers.copy() - for process in workers: - if process.returncode is None: - process.kill() - - for process in workers: - await process.aclose() - - -# -# Sockets and networking -# - - -class StreamProtocol(asyncio.Protocol): - read_queue: deque[bytes] - read_event: asyncio.Event - write_event: asyncio.Event - exception: Exception | None = None - is_at_eof: bool = False - - def connection_made(self, transport: asyncio.BaseTransport) -> None: - self.read_queue = deque() - self.read_event = asyncio.Event() - self.write_event = asyncio.Event() - self.write_event.set() - cast(asyncio.Transport, transport).set_write_buffer_limits(0) - - def connection_lost(self, exc: Exception | None) -> None: - if exc: - self.exception = exc - - self.read_event.set() - self.write_event.set() - - def data_received(self, data: bytes) -> None: - # ProactorEventloop sometimes sends bytearray instead of bytes - self.read_queue.append(bytes(data)) - self.read_event.set() - - def eof_received(self) -> bool | None: - self.is_at_eof = True - self.read_event.set() - return True - - def pause_writing(self) -> None: - self.write_event = asyncio.Event() - - def resume_writing(self) -> None: - self.write_event.set() - - -class DatagramProtocol(asyncio.DatagramProtocol): - read_queue: deque[tuple[bytes, IPSockAddrType]] - read_event: asyncio.Event - write_event: asyncio.Event - exception: Exception | None = None - - def connection_made(self, transport: asyncio.BaseTransport) -> None: - self.read_queue = deque(maxlen=100) # arbitrary value - self.read_event = asyncio.Event() - self.write_event = asyncio.Event() - self.write_event.set() - - def connection_lost(self, exc: Exception | None) -> None: - self.read_event.set() - self.write_event.set() - - def datagram_received(self, data: bytes, addr: IPSockAddrType) -> None: - addr = convert_ipv6_sockaddr(addr) - self.read_queue.append((data, addr)) - self.read_event.set() - - def error_received(self, exc: Exception) -> None: - self.exception = exc - - def pause_writing(self) -> None: - self.write_event.clear() - - def resume_writing(self) -> None: - self.write_event.set() - - -class SocketStream(abc.SocketStream): - def __init__(self, transport: asyncio.Transport, protocol: StreamProtocol): - self._transport = transport - self._protocol = protocol - self._receive_guard = ResourceGuard("reading from") - self._send_guard = ResourceGuard("writing to") - self._closed = False - - @property - def _raw_socket(self) -> socket.socket: - return self._transport.get_extra_info("socket") - - async def receive(self, max_bytes: int = 65536) -> bytes: - with self._receive_guard: - if ( - not self._protocol.read_event.is_set() - and not self._transport.is_closing() - and not self._protocol.is_at_eof - ): - self._transport.resume_reading() - await self._protocol.read_event.wait() - self._transport.pause_reading() - else: - await AsyncIOBackend.checkpoint() - - try: - chunk = self._protocol.read_queue.popleft() - except IndexError: - if self._closed: - raise ClosedResourceError from None - elif self._protocol.exception: - raise BrokenResourceError from self._protocol.exception - else: - raise EndOfStream from None - - if len(chunk) > max_bytes: - # Split the oversized chunk - chunk, leftover = chunk[:max_bytes], chunk[max_bytes:] - self._protocol.read_queue.appendleft(leftover) - - # If the read queue is empty, clear the flag so that the next call will - # block until data is available - if not self._protocol.read_queue: - self._protocol.read_event.clear() - - return chunk - - async def send(self, item: bytes) -> None: - with self._send_guard: - await AsyncIOBackend.checkpoint() - - if self._closed: - raise ClosedResourceError - elif self._protocol.exception is not None: - raise BrokenResourceError from self._protocol.exception - - try: - self._transport.write(item) - except RuntimeError as exc: - if self._transport.is_closing(): - raise BrokenResourceError from exc - else: - raise - - await self._protocol.write_event.wait() - - async def send_eof(self) -> None: - try: - self._transport.write_eof() - except OSError: - pass - - async def aclose(self) -> None: - self._closed = True - if not self._transport.is_closing(): - try: - self._transport.write_eof() - except OSError: - pass - - self._transport.close() - await sleep(0) - self._transport.abort() - - -class _RawSocketMixin: - _receive_future: asyncio.Future | None = None - _send_future: asyncio.Future | None = None - _closing = False - - def __init__(self, raw_socket: socket.socket): - self.__raw_socket = raw_socket - self._receive_guard = ResourceGuard("reading from") - self._send_guard = ResourceGuard("writing to") - - @property - def _raw_socket(self) -> socket.socket: - return self.__raw_socket - - def _wait_until_readable(self, loop: asyncio.AbstractEventLoop) -> asyncio.Future: - def callback(f: object) -> None: - del self._receive_future - loop.remove_reader(self.__raw_socket) - - f = self._receive_future = asyncio.Future() - loop.add_reader(self.__raw_socket, f.set_result, None) - f.add_done_callback(callback) - return f - - def _wait_until_writable(self, loop: asyncio.AbstractEventLoop) -> asyncio.Future: - def callback(f: object) -> None: - del self._send_future - loop.remove_writer(self.__raw_socket) - - f = self._send_future = asyncio.Future() - loop.add_writer(self.__raw_socket, f.set_result, None) - f.add_done_callback(callback) - return f - - async def aclose(self) -> None: - if not self._closing: - self._closing = True - if self.__raw_socket.fileno() != -1: - self.__raw_socket.close() - - if self._receive_future: - self._receive_future.set_result(None) - if self._send_future: - self._send_future.set_result(None) - - -class UNIXSocketStream(_RawSocketMixin, abc.UNIXSocketStream): - async def send_eof(self) -> None: - with self._send_guard: - self._raw_socket.shutdown(socket.SHUT_WR) - - async def receive(self, max_bytes: int = 65536) -> bytes: - loop = get_running_loop() - await AsyncIOBackend.checkpoint() - with self._receive_guard: - while True: - try: - data = self._raw_socket.recv(max_bytes) - except BlockingIOError: - await self._wait_until_readable(loop) - except OSError as exc: - if self._closing: - raise ClosedResourceError from None - else: - raise BrokenResourceError from exc - else: - if not data: - raise EndOfStream - - return data - - async def send(self, item: bytes) -> None: - loop = get_running_loop() - await AsyncIOBackend.checkpoint() - with self._send_guard: - view = memoryview(item) - while view: - try: - bytes_sent = self._raw_socket.send(view) - except BlockingIOError: - await self._wait_until_writable(loop) - except OSError as exc: - if self._closing: - raise ClosedResourceError from None - else: - raise BrokenResourceError from exc - else: - view = view[bytes_sent:] - - async def receive_fds(self, msglen: int, maxfds: int) -> tuple[bytes, list[int]]: - if not isinstance(msglen, int) or msglen < 0: - raise ValueError("msglen must be a non-negative integer") - if not isinstance(maxfds, int) or maxfds < 1: - raise ValueError("maxfds must be a positive integer") - - loop = get_running_loop() - fds = array.array("i") - await AsyncIOBackend.checkpoint() - with self._receive_guard: - while True: - try: - message, ancdata, flags, addr = self._raw_socket.recvmsg( - msglen, socket.CMSG_LEN(maxfds * fds.itemsize) - ) - except BlockingIOError: - await self._wait_until_readable(loop) - except OSError as exc: - if self._closing: - raise ClosedResourceError from None - else: - raise BrokenResourceError from exc - else: - if not message and not ancdata: - raise EndOfStream - - break - - for cmsg_level, cmsg_type, cmsg_data in ancdata: - if cmsg_level != socket.SOL_SOCKET or cmsg_type != socket.SCM_RIGHTS: - raise RuntimeError( - f"Received unexpected ancillary data; message = {message!r}, " - f"cmsg_level = {cmsg_level}, cmsg_type = {cmsg_type}" - ) - - fds.frombytes(cmsg_data[: len(cmsg_data) - (len(cmsg_data) % fds.itemsize)]) - - return message, list(fds) - - async def send_fds(self, message: bytes, fds: Collection[int | IOBase]) -> None: - if not message: - raise ValueError("message must not be empty") - if not fds: - raise ValueError("fds must not be empty") - - loop = get_running_loop() - filenos: list[int] = [] - for fd in fds: - if isinstance(fd, int): - filenos.append(fd) - elif isinstance(fd, IOBase): - filenos.append(fd.fileno()) - - fdarray = array.array("i", filenos) - await AsyncIOBackend.checkpoint() - with self._send_guard: - while True: - try: - # The ignore can be removed after mypy picks up - # https://github.com/python/typeshed/pull/5545 - self._raw_socket.sendmsg( - [message], [(socket.SOL_SOCKET, socket.SCM_RIGHTS, fdarray)] - ) - break - except BlockingIOError: - await self._wait_until_writable(loop) - except OSError as exc: - if self._closing: - raise ClosedResourceError from None - else: - raise BrokenResourceError from exc - - -class TCPSocketListener(abc.SocketListener): - _accept_scope: CancelScope | None = None - _closed = False - - def __init__(self, raw_socket: socket.socket): - self.__raw_socket = raw_socket - self._loop = cast(asyncio.BaseEventLoop, get_running_loop()) - self._accept_guard = ResourceGuard("accepting connections from") - - @property - def _raw_socket(self) -> socket.socket: - return self.__raw_socket - - async def accept(self) -> abc.SocketStream: - if self._closed: - raise ClosedResourceError - - with self._accept_guard: - await AsyncIOBackend.checkpoint() - with CancelScope() as self._accept_scope: - try: - client_sock, _addr = await self._loop.sock_accept(self._raw_socket) - except asyncio.CancelledError: - # Workaround for https://bugs.python.org/issue41317 - try: - self._loop.remove_reader(self._raw_socket) - except (ValueError, NotImplementedError): - pass - - if self._closed: - raise ClosedResourceError from None - - raise - finally: - self._accept_scope = None - - client_sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) - transport, protocol = await self._loop.connect_accepted_socket( - StreamProtocol, client_sock - ) - return SocketStream(transport, protocol) - - async def aclose(self) -> None: - if self._closed: - return - - self._closed = True - if self._accept_scope: - # Workaround for https://bugs.python.org/issue41317 - try: - self._loop.remove_reader(self._raw_socket) - except (ValueError, NotImplementedError): - pass - - self._accept_scope.cancel() - await sleep(0) - - self._raw_socket.close() - - -class UNIXSocketListener(abc.SocketListener): - def __init__(self, raw_socket: socket.socket): - self.__raw_socket = raw_socket - self._loop = get_running_loop() - self._accept_guard = ResourceGuard("accepting connections from") - self._closed = False - - async def accept(self) -> abc.SocketStream: - await AsyncIOBackend.checkpoint() - with self._accept_guard: - while True: - try: - client_sock, _ = self.__raw_socket.accept() - client_sock.setblocking(False) - return UNIXSocketStream(client_sock) - except BlockingIOError: - f: asyncio.Future = asyncio.Future() - self._loop.add_reader(self.__raw_socket, f.set_result, None) - f.add_done_callback( - lambda _: self._loop.remove_reader(self.__raw_socket) - ) - await f - except OSError as exc: - if self._closed: - raise ClosedResourceError from None - else: - raise BrokenResourceError from exc - - async def aclose(self) -> None: - self._closed = True - self.__raw_socket.close() - - @property - def _raw_socket(self) -> socket.socket: - return self.__raw_socket - - -class UDPSocket(abc.UDPSocket): - def __init__( - self, transport: asyncio.DatagramTransport, protocol: DatagramProtocol - ): - self._transport = transport - self._protocol = protocol - self._receive_guard = ResourceGuard("reading from") - self._send_guard = ResourceGuard("writing to") - self._closed = False - - @property - def _raw_socket(self) -> socket.socket: - return self._transport.get_extra_info("socket") - - async def aclose(self) -> None: - self._closed = True - if not self._transport.is_closing(): - self._transport.close() - - async def receive(self) -> tuple[bytes, IPSockAddrType]: - with self._receive_guard: - await AsyncIOBackend.checkpoint() - - # If the buffer is empty, ask for more data - if not self._protocol.read_queue and not self._transport.is_closing(): - self._protocol.read_event.clear() - await self._protocol.read_event.wait() - - try: - return self._protocol.read_queue.popleft() - except IndexError: - if self._closed: - raise ClosedResourceError from None - else: - raise BrokenResourceError from None - - async def send(self, item: UDPPacketType) -> None: - with self._send_guard: - await AsyncIOBackend.checkpoint() - await self._protocol.write_event.wait() - if self._closed: - raise ClosedResourceError - elif self._transport.is_closing(): - raise BrokenResourceError - else: - self._transport.sendto(*item) - - -class ConnectedUDPSocket(abc.ConnectedUDPSocket): - def __init__( - self, transport: asyncio.DatagramTransport, protocol: DatagramProtocol - ): - self._transport = transport - self._protocol = protocol - self._receive_guard = ResourceGuard("reading from") - self._send_guard = ResourceGuard("writing to") - self._closed = False - - @property - def _raw_socket(self) -> socket.socket: - return self._transport.get_extra_info("socket") - - async def aclose(self) -> None: - self._closed = True - if not self._transport.is_closing(): - self._transport.close() - - async def receive(self) -> bytes: - with self._receive_guard: - await AsyncIOBackend.checkpoint() - - # If the buffer is empty, ask for more data - if not self._protocol.read_queue and not self._transport.is_closing(): - self._protocol.read_event.clear() - await self._protocol.read_event.wait() - - try: - packet = self._protocol.read_queue.popleft() - except IndexError: - if self._closed: - raise ClosedResourceError from None - else: - raise BrokenResourceError from None - - return packet[0] - - async def send(self, item: bytes) -> None: - with self._send_guard: - await AsyncIOBackend.checkpoint() - await self._protocol.write_event.wait() - if self._closed: - raise ClosedResourceError - elif self._transport.is_closing(): - raise BrokenResourceError - else: - self._transport.sendto(item) - - -class UNIXDatagramSocket(_RawSocketMixin, abc.UNIXDatagramSocket): - async def receive(self) -> UNIXDatagramPacketType: - loop = get_running_loop() - await AsyncIOBackend.checkpoint() - with self._receive_guard: - while True: - try: - data = self._raw_socket.recvfrom(65536) - except BlockingIOError: - await self._wait_until_readable(loop) - except OSError as exc: - if self._closing: - raise ClosedResourceError from None - else: - raise BrokenResourceError from exc - else: - return data - - async def send(self, item: UNIXDatagramPacketType) -> None: - loop = get_running_loop() - await AsyncIOBackend.checkpoint() - with self._send_guard: - while True: - try: - self._raw_socket.sendto(*item) - except BlockingIOError: - await self._wait_until_writable(loop) - except OSError as exc: - if self._closing: - raise ClosedResourceError from None - else: - raise BrokenResourceError from exc - else: - return - - -class ConnectedUNIXDatagramSocket(_RawSocketMixin, abc.ConnectedUNIXDatagramSocket): - async def receive(self) -> bytes: - loop = get_running_loop() - await AsyncIOBackend.checkpoint() - with self._receive_guard: - while True: - try: - data = self._raw_socket.recv(65536) - except BlockingIOError: - await self._wait_until_readable(loop) - except OSError as exc: - if self._closing: - raise ClosedResourceError from None - else: - raise BrokenResourceError from exc - else: - return data - - async def send(self, item: bytes) -> None: - loop = get_running_loop() - await AsyncIOBackend.checkpoint() - with self._send_guard: - while True: - try: - self._raw_socket.send(item) - except BlockingIOError: - await self._wait_until_writable(loop) - except OSError as exc: - if self._closing: - raise ClosedResourceError from None - else: - raise BrokenResourceError from exc - else: - return - - -_read_events: RunVar[dict[int, asyncio.Future[bool]]] = RunVar("read_events") -_write_events: RunVar[dict[int, asyncio.Future[bool]]] = RunVar("write_events") - - -# -# Synchronization -# - - -class Event(BaseEvent): - def __new__(cls) -> Event: - return object.__new__(cls) - - def __init__(self) -> None: - self._event = asyncio.Event() - - def set(self) -> None: - self._event.set() - - def is_set(self) -> bool: - return self._event.is_set() - - async def wait(self) -> None: - if self.is_set(): - await AsyncIOBackend.checkpoint() - else: - await self._event.wait() - - def statistics(self) -> EventStatistics: - return EventStatistics(len(self._event._waiters)) - - -class Lock(BaseLock): - def __new__(cls, *, fast_acquire: bool = False) -> Lock: - return object.__new__(cls) - - def __init__(self, *, fast_acquire: bool = False) -> None: - self._fast_acquire = fast_acquire - self._owner_task: asyncio.Task | None = None - self._waiters: deque[tuple[asyncio.Task, asyncio.Future]] = deque() - - async def acquire(self) -> None: - task = cast(asyncio.Task, current_task()) - if self._owner_task is None and not self._waiters: - await AsyncIOBackend.checkpoint_if_cancelled() - self._owner_task = task - - # Unless on the "fast path", yield control of the event loop so that other - # tasks can run too - if not self._fast_acquire: - try: - await AsyncIOBackend.cancel_shielded_checkpoint() - except CancelledError: - self.release() - raise - - return - - if self._owner_task == task: - raise RuntimeError("Attempted to acquire an already held Lock") - - fut: asyncio.Future[None] = asyncio.Future() - item = task, fut - self._waiters.append(item) - try: - await fut - except CancelledError: - self._waiters.remove(item) - if self._owner_task is task: - self.release() - - raise - - self._waiters.remove(item) - - def acquire_nowait(self) -> None: - task = cast(asyncio.Task, current_task()) - if self._owner_task is None and not self._waiters: - self._owner_task = task - return - - if self._owner_task is task: - raise RuntimeError("Attempted to acquire an already held Lock") - - raise WouldBlock - - def locked(self) -> bool: - return self._owner_task is not None - - def release(self) -> None: - if self._owner_task != current_task(): - raise RuntimeError("The current task is not holding this lock") - - for task, fut in self._waiters: - if not fut.cancelled(): - self._owner_task = task - fut.set_result(None) - return - - self._owner_task = None - - def statistics(self) -> LockStatistics: - task_info = AsyncIOTaskInfo(self._owner_task) if self._owner_task else None - return LockStatistics(self.locked(), task_info, len(self._waiters)) - - -class Semaphore(BaseSemaphore): - def __new__( - cls, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ) -> Semaphore: - return object.__new__(cls) - - def __init__( - self, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ): - super().__init__(initial_value, max_value=max_value) - self._value = initial_value - self._max_value = max_value - self._fast_acquire = fast_acquire - self._waiters: deque[asyncio.Future[None]] = deque() - - async def acquire(self) -> None: - if self._value > 0 and not self._waiters: - await AsyncIOBackend.checkpoint_if_cancelled() - self._value -= 1 - - # Unless on the "fast path", yield control of the event loop so that other - # tasks can run too - if not self._fast_acquire: - try: - await AsyncIOBackend.cancel_shielded_checkpoint() - except CancelledError: - self.release() - raise - - return - - fut: asyncio.Future[None] = asyncio.Future() - self._waiters.append(fut) - try: - await fut - except CancelledError: - try: - self._waiters.remove(fut) - except ValueError: - self.release() - - raise - - def acquire_nowait(self) -> None: - if self._value == 0: - raise WouldBlock - - self._value -= 1 - - def release(self) -> None: - if self._max_value is not None and self._value == self._max_value: - raise ValueError("semaphore released too many times") - - for fut in self._waiters: - if not fut.cancelled(): - fut.set_result(None) - self._waiters.remove(fut) - return - - self._value += 1 - - @property - def value(self) -> int: - return self._value - - @property - def max_value(self) -> int | None: - return self._max_value - - def statistics(self) -> SemaphoreStatistics: - return SemaphoreStatistics(len(self._waiters)) - - -class CapacityLimiter(BaseCapacityLimiter): - _total_tokens: float = 0 - - def __new__(cls, total_tokens: float) -> CapacityLimiter: - return object.__new__(cls) - - def __init__(self, total_tokens: float): - self._borrowers: set[Any] = set() - self._wait_queue: OrderedDict[Any, asyncio.Event] = OrderedDict() - self.total_tokens = total_tokens - - async def __aenter__(self) -> None: - await self.acquire() - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self.release() - - @property - def total_tokens(self) -> float: - return self._total_tokens - - @total_tokens.setter - def total_tokens(self, value: float) -> None: - if not isinstance(value, int) and not math.isinf(value): - raise TypeError("total_tokens must be an int or math.inf") - - if value < 0: - raise ValueError("total_tokens must be >= 0") - - waiters_to_notify = max(value - self._total_tokens, 0) - self._total_tokens = value - - # Notify waiting tasks that they have acquired the limiter - while self._wait_queue and waiters_to_notify: - event = self._wait_queue.popitem(last=False)[1] - event.set() - waiters_to_notify -= 1 - - @property - def borrowed_tokens(self) -> int: - return len(self._borrowers) - - @property - def available_tokens(self) -> float: - return self._total_tokens - len(self._borrowers) - - def _notify_next_waiter(self) -> None: - """Notify the next task in line if this limiter has free capacity now.""" - if self._wait_queue and len(self._borrowers) < self._total_tokens: - event = self._wait_queue.popitem(last=False)[1] - event.set() - - def acquire_nowait(self) -> None: - self.acquire_on_behalf_of_nowait(current_task()) - - def acquire_on_behalf_of_nowait(self, borrower: object) -> None: - if borrower in self._borrowers: - raise RuntimeError( - "this borrower is already holding one of this CapacityLimiter's tokens" - ) - - if self._wait_queue or len(self._borrowers) >= self._total_tokens: - raise WouldBlock - - self._borrowers.add(borrower) - - async def acquire(self) -> None: - return await self.acquire_on_behalf_of(current_task()) - - async def acquire_on_behalf_of(self, borrower: object) -> None: - await AsyncIOBackend.checkpoint_if_cancelled() - try: - self.acquire_on_behalf_of_nowait(borrower) - except WouldBlock: - event = asyncio.Event() - self._wait_queue[borrower] = event - try: - await event.wait() - except BaseException: - self._wait_queue.pop(borrower, None) - if event.is_set(): - self._notify_next_waiter() - - raise - - self._borrowers.add(borrower) - else: - try: - await AsyncIOBackend.cancel_shielded_checkpoint() - except BaseException: - self.release() - raise - - def release(self) -> None: - self.release_on_behalf_of(current_task()) - - def release_on_behalf_of(self, borrower: object) -> None: - try: - self._borrowers.remove(borrower) - except KeyError: - raise RuntimeError( - "this borrower isn't holding any of this CapacityLimiter's tokens" - ) from None - - self._notify_next_waiter() - - def statistics(self) -> CapacityLimiterStatistics: - return CapacityLimiterStatistics( - self.borrowed_tokens, - self.total_tokens, - tuple(self._borrowers), - len(self._wait_queue), - ) - - -_default_thread_limiter: RunVar[CapacityLimiter] = RunVar("_default_thread_limiter") - - -# -# Operating system signals -# - - -class _SignalReceiver: - def __init__(self, signals: tuple[Signals, ...]): - self._signals = signals - self._loop = get_running_loop() - self._signal_queue: deque[Signals] = deque() - self._future: asyncio.Future = asyncio.Future() - self._handled_signals: set[Signals] = set() - - def _deliver(self, signum: Signals) -> None: - self._signal_queue.append(signum) - if not self._future.done(): - self._future.set_result(None) - - def __enter__(self) -> _SignalReceiver: - for sig in set(self._signals): - self._loop.add_signal_handler(sig, self._deliver, sig) - self._handled_signals.add(sig) - - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - for sig in self._handled_signals: - self._loop.remove_signal_handler(sig) - - def __aiter__(self) -> _SignalReceiver: - return self - - async def __anext__(self) -> Signals: - await AsyncIOBackend.checkpoint() - if not self._signal_queue: - self._future = asyncio.Future() - await self._future - - return self._signal_queue.popleft() - - -# -# Testing and debugging -# - - -class AsyncIOTaskInfo(TaskInfo): - def __init__(self, task: asyncio.Task): - task_state = _task_states.get(task) - if task_state is None: - parent_id = None - else: - parent_id = task_state.parent_id - - coro = task.get_coro() - assert coro is not None, "created TaskInfo from a completed Task" - super().__init__(id(task), parent_id, task.get_name(), coro) - self._task = weakref.ref(task) - - def has_pending_cancellation(self) -> bool: - if not (task := self._task()): - # If the task isn't around anymore, it won't have a pending cancellation - return False - - if task._must_cancel: # type: ignore[attr-defined] - return True - elif ( - isinstance(task._fut_waiter, asyncio.Future) # type: ignore[attr-defined] - and task._fut_waiter.cancelled() # type: ignore[attr-defined] - ): - return True - - if task_state := _task_states.get(task): - if cancel_scope := task_state.cancel_scope: - return cancel_scope._effectively_cancelled - - return False - - -class TestRunner(abc.TestRunner): - _send_stream: MemoryObjectSendStream[tuple[Awaitable[Any], asyncio.Future[Any]]] - - def __init__( - self, - *, - debug: bool | None = None, - use_uvloop: bool = False, - loop_factory: Callable[[], AbstractEventLoop] | None = None, - ) -> None: - if use_uvloop and loop_factory is None: - if sys.platform != "win32": - import uvloop - - loop_factory = uvloop.new_event_loop - else: - import winloop - - loop_factory = winloop.new_event_loop - - self._runner = Runner(debug=debug, loop_factory=loop_factory) - self._exceptions: list[BaseException] = [] - self._runner_task: asyncio.Task | None = None - - def __enter__(self) -> TestRunner: - self._runner.__enter__() - self.get_loop().set_exception_handler(self._exception_handler) - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self._runner.__exit__(exc_type, exc_val, exc_tb) - - def get_loop(self) -> AbstractEventLoop: - return self._runner.get_loop() - - def _exception_handler( - self, loop: asyncio.AbstractEventLoop, context: dict[str, Any] - ) -> None: - if isinstance(context.get("exception"), Exception): - self._exceptions.append(context["exception"]) - else: - loop.default_exception_handler(context) - - def _raise_async_exceptions(self) -> None: - # Re-raise any exceptions raised in asynchronous callbacks - if self._exceptions: - exceptions, self._exceptions = self._exceptions, [] - if len(exceptions) == 1: - raise exceptions[0] - elif exceptions: - raise BaseExceptionGroup( - "Multiple exceptions occurred in asynchronous callbacks", exceptions - ) - - async def _run_tests_and_fixtures( - self, - receive_stream: MemoryObjectReceiveStream[ - tuple[Awaitable[T_Retval], asyncio.Future[T_Retval]] - ], - ) -> None: - from _pytest.outcomes import OutcomeException - - with receive_stream, self._send_stream: - async for coro, future in receive_stream: - try: - retval = await coro - except CancelledError as exc: - if not future.cancelled(): - future.cancel(*exc.args) - - raise - except BaseException as exc: - if not future.cancelled(): - future.set_exception(exc) - - if not isinstance(exc, (Exception, OutcomeException)): - raise - else: - if not future.cancelled(): - future.set_result(retval) - - async def _call_in_runner_task( - self, - func: Callable[P, Awaitable[T_Retval]], - /, - *args: P.args, - **kwargs: P.kwargs, - ) -> T_Retval: - if not self._runner_task: - self._send_stream, receive_stream = create_memory_object_stream[ - tuple[Awaitable[Any], asyncio.Future] - ](1) - self._runner_task = self.get_loop().create_task( - self._run_tests_and_fixtures(receive_stream) - ) - - coro = func(*args, **kwargs) - future: asyncio.Future[T_Retval] = self.get_loop().create_future() - self._send_stream.send_nowait((coro, future)) - return await future - - def run_asyncgen_fixture( - self, - fixture_func: Callable[..., AsyncGenerator[T_Retval, Any]], - kwargs: dict[str, Any], - ) -> Iterable[T_Retval]: - asyncgen = fixture_func(**kwargs) - fixturevalue: T_Retval = self.get_loop().run_until_complete( - self._call_in_runner_task(asyncgen.asend, None) - ) - self._raise_async_exceptions() - - yield fixturevalue - - try: - self.get_loop().run_until_complete( - self._call_in_runner_task(asyncgen.asend, None) - ) - except StopAsyncIteration: - self._raise_async_exceptions() - else: - self.get_loop().run_until_complete(asyncgen.aclose()) - raise RuntimeError("Async generator fixture did not stop") - - def run_fixture( - self, - fixture_func: Callable[..., Coroutine[Any, Any, T_Retval]], - kwargs: dict[str, Any], - ) -> T_Retval: - retval = self.get_loop().run_until_complete( - self._call_in_runner_task(fixture_func, **kwargs) - ) - self._raise_async_exceptions() - return retval - - def run_test( - self, test_func: Callable[..., Coroutine[Any, Any, Any]], kwargs: dict[str, Any] - ) -> None: - try: - self.get_loop().run_until_complete( - self._call_in_runner_task(test_func, **kwargs) - ) - except Exception as exc: - self._exceptions.append(exc) - - self._raise_async_exceptions() - - -class AsyncIOBackend(AsyncBackend): - @classmethod - def run( - cls, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - args: tuple[Unpack[PosArgsT]], - kwargs: dict[str, Any], - options: dict[str, Any], - ) -> T_Retval: - @wraps(func) - async def wrapper() -> T_Retval: - task = cast(asyncio.Task, current_task()) - task.set_name(get_callable_name(func)) - _task_states[task] = TaskState(None, None) - - try: - return await func(*args) - finally: - del _task_states[task] - - debug = options.get("debug", None) - loop_factory = options.get("loop_factory", None) - if loop_factory is None and options.get("use_uvloop", False): - if sys.platform != "win32": - import uvloop - - loop_factory = uvloop.new_event_loop - else: - import winloop - - loop_factory = winloop.new_event_loop - - with Runner(debug=debug, loop_factory=loop_factory) as runner: - return runner.run(wrapper()) - - @classmethod - def current_token(cls) -> object: - return get_running_loop() - - @classmethod - def current_time(cls) -> float: - return get_running_loop().time() - - @classmethod - def cancelled_exception_class(cls) -> type[BaseException]: - return CancelledError - - @classmethod - async def checkpoint(cls) -> None: - await sleep(0) - - @classmethod - async def checkpoint_if_cancelled(cls) -> None: - task = current_task() - if task is None: - return - - try: - cancel_scope = _task_states[task].cancel_scope - except KeyError: - return - - while cancel_scope: - if cancel_scope.cancel_called: - await sleep(0) - elif cancel_scope.shield: - break - else: - cancel_scope = cancel_scope._parent_scope - - @classmethod - async def cancel_shielded_checkpoint(cls) -> None: - with CancelScope(shield=True): - await sleep(0) - - @classmethod - async def sleep(cls, delay: float) -> None: - await sleep(delay) - - @classmethod - def create_cancel_scope( - cls, *, deadline: float = math.inf, shield: bool = False - ) -> CancelScope: - return CancelScope(deadline=deadline, shield=shield) - - @classmethod - def current_effective_deadline(cls) -> float: - if (task := current_task()) is None: - return math.inf - - try: - cancel_scope = _task_states[task].cancel_scope - except KeyError: - return math.inf - - deadline = math.inf - while cancel_scope: - deadline = min(deadline, cancel_scope.deadline) - if cancel_scope._cancel_called: - deadline = -math.inf - break - elif cancel_scope.shield: - break - else: - cancel_scope = cancel_scope._parent_scope - - return deadline - - @classmethod - def create_task_group(cls) -> abc.TaskGroup: - return TaskGroup() - - @classmethod - def create_event(cls) -> abc.Event: - return Event() - - @classmethod - def create_lock(cls, *, fast_acquire: bool) -> abc.Lock: - return Lock(fast_acquire=fast_acquire) - - @classmethod - def create_semaphore( - cls, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ) -> abc.Semaphore: - return Semaphore(initial_value, max_value=max_value, fast_acquire=fast_acquire) - - @classmethod - def create_capacity_limiter(cls, total_tokens: float) -> abc.CapacityLimiter: - return CapacityLimiter(total_tokens) - - @classmethod - async def run_sync_in_worker_thread( # type: ignore[return] - cls, - func: Callable[[Unpack[PosArgsT]], T_Retval], - args: tuple[Unpack[PosArgsT]], - abandon_on_cancel: bool = False, - limiter: abc.CapacityLimiter | None = None, - ) -> T_Retval: - await cls.checkpoint() - - # If this is the first run in this event loop thread, set up the necessary - # variables - try: - idle_workers = _threadpool_idle_workers.get() - workers = _threadpool_workers.get() - except LookupError: - idle_workers = deque() - workers = set() - _threadpool_idle_workers.set(idle_workers) - _threadpool_workers.set(workers) - - async with limiter or cls.current_default_thread_limiter(): - with CancelScope(shield=not abandon_on_cancel) as scope: - future = asyncio.Future[T_Retval]() - root_task = find_root_task() - if not idle_workers: - worker = WorkerThread(root_task, workers, idle_workers) - worker.start() - workers.add(worker) - root_task.add_done_callback( - worker.stop, context=contextvars.Context() - ) - else: - worker = idle_workers.pop() - - # Prune any other workers that have been idle for MAX_IDLE_TIME - # seconds or longer - now = cls.current_time() - while idle_workers: - if ( - now - idle_workers[0].idle_since - < WorkerThread.MAX_IDLE_TIME - ): - break - - expired_worker = idle_workers.popleft() - expired_worker.root_task.remove_done_callback( - expired_worker.stop - ) - expired_worker.stop() - - context = copy_context() - context.run(set_current_async_library, None) - if abandon_on_cancel or scope._parent_scope is None: - worker_scope = scope - else: - worker_scope = scope._parent_scope - - worker.queue.put_nowait((context, func, args, future, worker_scope)) - return await future - - @classmethod - def check_cancelled(cls) -> None: - scope: CancelScope | None = threadlocals.current_cancel_scope - while scope is not None: - if scope.cancel_called: - raise CancelledError(f"Cancelled by cancel scope {id(scope):x}") - - if scope.shield: - return - - scope = scope._parent_scope - - @classmethod - def run_async_from_thread( - cls, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - args: tuple[Unpack[PosArgsT]], - token: object, - ) -> T_Retval: - async def task_wrapper() -> T_Retval: - __tracebackhide__ = True - if scope is not None: - task = cast(asyncio.Task, current_task()) - _task_states[task] = TaskState(None, scope) - scope._tasks.add(task) - try: - return await func(*args) - except CancelledError as exc: - raise concurrent.futures.CancelledError(str(exc)) from None - finally: - if scope is not None: - scope._tasks.discard(task) - - loop = cast( - "AbstractEventLoop", token or threadlocals.current_token.native_token - ) - if loop.is_closed(): - raise RunFinishedError - - context = copy_context() - context.run(set_current_async_library, "asyncio") - scope = getattr(threadlocals, "current_cancel_scope", None) - f: concurrent.futures.Future[T_Retval] = context.run( - asyncio.run_coroutine_threadsafe, task_wrapper(), loop=loop - ) - return f.result() - - @classmethod - def run_sync_from_thread( - cls, - func: Callable[[Unpack[PosArgsT]], T_Retval], - args: tuple[Unpack[PosArgsT]], - token: object, - ) -> T_Retval: - @wraps(func) - def wrapper() -> None: - try: - set_current_async_library("asyncio") - f.set_result(func(*args)) - except BaseException as exc: - f.set_exception(exc) - if not isinstance(exc, Exception): - raise - - loop = cast( - "AbstractEventLoop", token or threadlocals.current_token.native_token - ) - if loop.is_closed(): - raise RunFinishedError - - f: concurrent.futures.Future[T_Retval] = Future() - loop.call_soon_threadsafe(wrapper) - return f.result() - - @classmethod - async def open_process( - cls, - command: StrOrBytesPath | Sequence[StrOrBytesPath], - *, - stdin: int | IO[Any] | None, - stdout: int | IO[Any] | None, - stderr: int | IO[Any] | None, - **kwargs: Any, - ) -> Process: - await cls.checkpoint() - if isinstance(command, PathLike): - command = os.fspath(command) - - if isinstance(command, (str, bytes)): - process = await asyncio.create_subprocess_shell( - command, - stdin=stdin, - stdout=stdout, - stderr=stderr, - **kwargs, - ) - else: - process = await asyncio.create_subprocess_exec( - *command, - stdin=stdin, - stdout=stdout, - stderr=stderr, - **kwargs, - ) - - stdin_stream = StreamWriterWrapper(process.stdin) if process.stdin else None - stdout_stream = StreamReaderWrapper(process.stdout) if process.stdout else None - stderr_stream = StreamReaderWrapper(process.stderr) if process.stderr else None - return Process(process, stdin_stream, stdout_stream, stderr_stream) - - @classmethod - def setup_process_pool_exit_at_shutdown(cls, workers: set[abc.Process]) -> None: - create_task( - _shutdown_process_pool_on_exit(workers), - name="AnyIO process pool shutdown task", - ) - find_root_task().add_done_callback( - partial(_forcibly_shutdown_process_pool_on_exit, workers) # type:ignore[arg-type] - ) - - @classmethod - async def connect_tcp( - cls, host: str, port: int, local_address: IPSockAddrType | None = None - ) -> abc.SocketStream: - transport, protocol = cast( - tuple[asyncio.Transport, StreamProtocol], - await get_running_loop().create_connection( - StreamProtocol, host, port, local_addr=local_address - ), - ) - transport.pause_reading() - return SocketStream(transport, protocol) - - @classmethod - async def connect_unix(cls, path: str | bytes) -> abc.UNIXSocketStream: - await cls.checkpoint() - loop = get_running_loop() - raw_socket = socket.socket(socket.AF_UNIX) - raw_socket.setblocking(False) - while True: - try: - raw_socket.connect(path) - except BlockingIOError: - f: asyncio.Future = asyncio.Future() - loop.add_writer(raw_socket, f.set_result, None) - f.add_done_callback(lambda _: loop.remove_writer(raw_socket)) - await f - except BaseException: - raw_socket.close() - raise - else: - return UNIXSocketStream(raw_socket) - - @classmethod - def create_tcp_listener(cls, sock: socket.socket) -> SocketListener: - return TCPSocketListener(sock) - - @classmethod - def create_unix_listener(cls, sock: socket.socket) -> SocketListener: - return UNIXSocketListener(sock) - - @classmethod - async def create_udp_socket( - cls, - family: AddressFamily, - local_address: IPSockAddrType | None, - remote_address: IPSockAddrType | None, - reuse_port: bool, - ) -> UDPSocket | ConnectedUDPSocket: - transport, protocol = await get_running_loop().create_datagram_endpoint( - DatagramProtocol, - local_addr=local_address, - remote_addr=remote_address, - family=family, - reuse_port=reuse_port, - ) - if protocol.exception: - transport.close() - raise protocol.exception - - if not remote_address: - return UDPSocket(transport, protocol) - else: - return ConnectedUDPSocket(transport, protocol) - - @classmethod - async def create_unix_datagram_socket( # type: ignore[override] - cls, raw_socket: socket.socket, remote_path: str | bytes | None - ) -> abc.UNIXDatagramSocket | abc.ConnectedUNIXDatagramSocket: - await cls.checkpoint() - loop = get_running_loop() - - if remote_path: - while True: - try: - raw_socket.connect(remote_path) - except BlockingIOError: - f: asyncio.Future = asyncio.Future() - loop.add_writer(raw_socket, f.set_result, None) - f.add_done_callback(lambda _: loop.remove_writer(raw_socket)) - await f - except BaseException: - raw_socket.close() - raise - else: - return ConnectedUNIXDatagramSocket(raw_socket) - else: - return UNIXDatagramSocket(raw_socket) - - @classmethod - async def getaddrinfo( - cls, - host: bytes | str | None, - port: str | int | None, - *, - family: int | AddressFamily = 0, - type: int | SocketKind = 0, - proto: int = 0, - flags: int = 0, - ) -> Sequence[ - tuple[ - AddressFamily, - SocketKind, - int, - str, - tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes], - ] - ]: - return await get_running_loop().getaddrinfo( - host, port, family=family, type=type, proto=proto, flags=flags - ) - - @classmethod - async def getnameinfo( - cls, sockaddr: IPSockAddrType, flags: int = 0 - ) -> tuple[str, str]: - return await get_running_loop().getnameinfo(sockaddr, flags) - - @classmethod - async def wait_readable(cls, obj: FileDescriptorLike) -> None: - try: - read_events = _read_events.get() - except LookupError: - read_events = {} - _read_events.set(read_events) - - fd = obj if isinstance(obj, int) else obj.fileno() - if read_events.get(fd): - raise BusyResourceError("reading from") - - loop = get_running_loop() - fut: asyncio.Future[bool] = loop.create_future() - - def cb() -> None: - try: - del read_events[fd] - except KeyError: - pass - else: - remove_reader(fd) - - try: - fut.set_result(True) - except asyncio.InvalidStateError: - pass - - try: - loop.add_reader(fd, cb) - except NotImplementedError: - from anyio._core._asyncio_selector_thread import get_selector - - selector = get_selector() - selector.add_reader(fd, cb) - remove_reader = selector.remove_reader - else: - remove_reader = loop.remove_reader - - read_events[fd] = fut - try: - success = await fut - finally: - try: - del read_events[fd] - except KeyError: - pass - else: - remove_reader(fd) - - if not success: - raise ClosedResourceError - - @classmethod - async def wait_writable(cls, obj: FileDescriptorLike) -> None: - try: - write_events = _write_events.get() - except LookupError: - write_events = {} - _write_events.set(write_events) - - fd = obj if isinstance(obj, int) else obj.fileno() - if write_events.get(fd): - raise BusyResourceError("writing to") - - loop = get_running_loop() - fut: asyncio.Future[bool] = loop.create_future() - - def cb() -> None: - try: - del write_events[fd] - except KeyError: - pass - else: - remove_writer(fd) - - try: - fut.set_result(True) - except asyncio.InvalidStateError: - pass - - try: - loop.add_writer(fd, cb) - except NotImplementedError: - from anyio._core._asyncio_selector_thread import get_selector - - selector = get_selector() - selector.add_writer(fd, cb) - remove_writer = selector.remove_writer - else: - remove_writer = loop.remove_writer - - write_events[fd] = fut - try: - success = await fut - finally: - try: - del write_events[fd] - except KeyError: - pass - else: - remove_writer(fd) - - if not success: - raise ClosedResourceError - - @classmethod - def notify_closing(cls, obj: FileDescriptorLike) -> None: - fd = obj if isinstance(obj, int) else obj.fileno() - loop = get_running_loop() - - try: - write_events = _write_events.get() - except LookupError: - pass - else: - try: - fut = write_events.pop(fd) - except KeyError: - pass - else: - try: - fut.set_result(False) - except asyncio.InvalidStateError: - pass - - try: - loop.remove_writer(fd) - except NotImplementedError: - from anyio._core._asyncio_selector_thread import get_selector - - get_selector().remove_writer(fd) - - try: - read_events = _read_events.get() - except LookupError: - pass - else: - try: - fut = read_events.pop(fd) - except KeyError: - pass - else: - try: - fut.set_result(False) - except asyncio.InvalidStateError: - pass - - try: - loop.remove_reader(fd) - except NotImplementedError: - from anyio._core._asyncio_selector_thread import get_selector - - get_selector().remove_reader(fd) - - @classmethod - async def wrap_listener_socket(cls, sock: socket.socket) -> SocketListener: - return TCPSocketListener(sock) - - @classmethod - async def wrap_stream_socket(cls, sock: socket.socket) -> SocketStream: - transport, protocol = await get_running_loop().create_connection( - StreamProtocol, sock=sock - ) - return SocketStream(transport, protocol) - - @classmethod - async def wrap_unix_stream_socket(cls, sock: socket.socket) -> UNIXSocketStream: - return UNIXSocketStream(sock) - - @classmethod - async def wrap_udp_socket(cls, sock: socket.socket) -> UDPSocket: - transport, protocol = await get_running_loop().create_datagram_endpoint( - DatagramProtocol, sock=sock - ) - return UDPSocket(transport, protocol) - - @classmethod - async def wrap_connected_udp_socket(cls, sock: socket.socket) -> ConnectedUDPSocket: - transport, protocol = await get_running_loop().create_datagram_endpoint( - DatagramProtocol, sock=sock - ) - return ConnectedUDPSocket(transport, protocol) - - @classmethod - async def wrap_unix_datagram_socket(cls, sock: socket.socket) -> UNIXDatagramSocket: - return UNIXDatagramSocket(sock) - - @classmethod - async def wrap_connected_unix_datagram_socket( - cls, sock: socket.socket - ) -> ConnectedUNIXDatagramSocket: - return ConnectedUNIXDatagramSocket(sock) - - @classmethod - def current_default_thread_limiter(cls) -> CapacityLimiter: - try: - return _default_thread_limiter.get() - except LookupError: - limiter = CapacityLimiter(40) - _default_thread_limiter.set(limiter) - return limiter - - @classmethod - def open_signal_receiver( - cls, *signals: Signals - ) -> AbstractContextManager[AsyncIterator[Signals]]: - return _SignalReceiver(signals) - - @classmethod - def get_current_task(cls) -> TaskInfo: - return AsyncIOTaskInfo(current_task()) # type: ignore[arg-type] - - @classmethod - def get_running_tasks(cls) -> Sequence[TaskInfo]: - return [AsyncIOTaskInfo(task) for task in all_tasks() if not task.done()] - - @classmethod - async def wait_all_tasks_blocked(cls) -> None: - await cls.checkpoint() - this_task = current_task() - while True: - for task in all_tasks(): - if task is this_task: - continue - - waiter = task._fut_waiter # type: ignore[attr-defined] - if waiter is None or waiter.done(): - await sleep(0.1) - break - else: - return - - @classmethod - def create_test_runner(cls, options: dict[str, Any]) -> TestRunner: - return TestRunner(**options) - - -backend_class = AsyncIOBackend diff --git a/.venv/lib/python3.12/site-packages/anyio/_backends/_trio.py b/.venv/lib/python3.12/site-packages/anyio/_backends/_trio.py deleted file mode 100644 index b85a10a..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_backends/_trio.py +++ /dev/null @@ -1,1343 +0,0 @@ -from __future__ import annotations - -import array -import math -import os -import socket -import sys -import types -import weakref -from collections.abc import ( - AsyncGenerator, - AsyncIterator, - Awaitable, - Callable, - Collection, - Coroutine, - Iterable, - Sequence, -) -from contextlib import AbstractContextManager -from dataclasses import dataclass -from io import IOBase -from os import PathLike -from signal import Signals -from socket import AddressFamily, SocketKind -from types import TracebackType -from typing import ( - IO, - TYPE_CHECKING, - Any, - Generic, - NoReturn, - ParamSpec, - TypeVar, - cast, - overload, -) - -import trio.from_thread -import trio.lowlevel -from outcome import Error, Outcome, Value -from trio.lowlevel import ( - current_root_task, - current_task, - notify_closing, - wait_readable, - wait_writable, -) -from trio.socket import SocketType as TrioSocketType -from trio.to_thread import run_sync - -from .. import ( - CapacityLimiterStatistics, - EventStatistics, - LockStatistics, - RunFinishedError, - TaskInfo, - WouldBlock, - abc, -) -from .._core._eventloop import claim_worker_thread -from .._core._exceptions import ( - BrokenResourceError, - BusyResourceError, - ClosedResourceError, - EndOfStream, -) -from .._core._sockets import convert_ipv6_sockaddr -from .._core._streams import create_memory_object_stream -from .._core._synchronization import ( - CapacityLimiter as BaseCapacityLimiter, -) -from .._core._synchronization import Event as BaseEvent -from .._core._synchronization import Lock as BaseLock -from .._core._synchronization import ( - ResourceGuard, - SemaphoreStatistics, -) -from .._core._synchronization import Semaphore as BaseSemaphore -from .._core._tasks import CancelScope as BaseCancelScope -from ..abc import IPSockAddrType, UDPPacketType, UNIXDatagramPacketType -from ..abc._eventloop import AsyncBackend, StrOrBytesPath -from ..streams.memory import MemoryObjectSendStream - -if TYPE_CHECKING: - from _typeshed import FileDescriptorLike - -if sys.version_info >= (3, 11): - from typing import TypeVarTuple, Unpack -else: - from exceptiongroup import BaseExceptionGroup - from typing_extensions import TypeVarTuple, Unpack - -T = TypeVar("T") -T_Retval = TypeVar("T_Retval") -T_SockAddr = TypeVar("T_SockAddr", str, IPSockAddrType) -PosArgsT = TypeVarTuple("PosArgsT") -P = ParamSpec("P") - - -# -# Event loop -# - -RunVar = trio.lowlevel.RunVar - - -# -# Timeouts and cancellation -# - - -class CancelScope(BaseCancelScope): - def __new__( - cls, original: trio.CancelScope | None = None, **kwargs: object - ) -> CancelScope: - return object.__new__(cls) - - def __init__(self, original: trio.CancelScope | None = None, **kwargs: Any) -> None: - self.__original = original or trio.CancelScope(**kwargs) - - def __enter__(self) -> CancelScope: - self.__original.__enter__() - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> bool: - return self.__original.__exit__(exc_type, exc_val, exc_tb) - - def cancel(self, reason: str | None = None) -> None: - self.__original.cancel(reason) - - @property - def deadline(self) -> float: - return self.__original.deadline - - @deadline.setter - def deadline(self, value: float) -> None: - self.__original.deadline = value - - @property - def cancel_called(self) -> bool: - return self.__original.cancel_called - - @property - def cancelled_caught(self) -> bool: - return self.__original.cancelled_caught - - @property - def shield(self) -> bool: - return self.__original.shield - - @shield.setter - def shield(self, value: bool) -> None: - self.__original.shield = value - - -# -# Task groups -# - - -class TaskGroup(abc.TaskGroup): - def __init__(self) -> None: - self._active = False - self._nursery_manager = trio.open_nursery(strict_exception_groups=True) - self.cancel_scope = None # type: ignore[assignment] - - async def __aenter__(self) -> TaskGroup: - self._active = True - self._nursery = await self._nursery_manager.__aenter__() - self.cancel_scope = CancelScope(self._nursery.cancel_scope) - return self - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> bool: - try: - # trio.Nursery.__exit__ returns bool; .open_nursery has wrong type - return await self._nursery_manager.__aexit__(exc_type, exc_val, exc_tb) # type: ignore[return-value] - except BaseExceptionGroup as exc: - if not exc.split(trio.Cancelled)[1]: - raise trio.Cancelled._create() from exc - - raise - finally: - del exc_val, exc_tb - self._active = False - - def start_soon( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[Any]], - *args: Unpack[PosArgsT], - name: object = None, - ) -> None: - if not self._active: - raise RuntimeError( - "This task group is not active; no new tasks can be started." - ) - - self._nursery.start_soon(func, *args, name=name) - - async def start( - self, func: Callable[..., Awaitable[Any]], *args: object, name: object = None - ) -> Any: - if not self._active: - raise RuntimeError( - "This task group is not active; no new tasks can be started." - ) - - return await self._nursery.start(func, *args, name=name) - - -# -# Subprocesses -# - - -@dataclass(eq=False) -class ReceiveStreamWrapper(abc.ByteReceiveStream): - _stream: trio.abc.ReceiveStream - - async def receive(self, max_bytes: int | None = None) -> bytes: - try: - data = await self._stream.receive_some(max_bytes) - except trio.ClosedResourceError as exc: - raise ClosedResourceError from exc.__cause__ - except trio.BrokenResourceError as exc: - raise BrokenResourceError from exc.__cause__ - - if data: - return bytes(data) - else: - raise EndOfStream - - async def aclose(self) -> None: - await self._stream.aclose() - - -@dataclass(eq=False) -class SendStreamWrapper(abc.ByteSendStream): - _stream: trio.abc.SendStream - - async def send(self, item: bytes) -> None: - try: - await self._stream.send_all(item) - except trio.ClosedResourceError as exc: - raise ClosedResourceError from exc.__cause__ - except trio.BrokenResourceError as exc: - raise BrokenResourceError from exc.__cause__ - - async def aclose(self) -> None: - await self._stream.aclose() - - -@dataclass(eq=False) -class Process(abc.Process): - _process: trio.Process - _stdin: abc.ByteSendStream | None - _stdout: abc.ByteReceiveStream | None - _stderr: abc.ByteReceiveStream | None - - async def aclose(self) -> None: - with CancelScope(shield=True): - if self._stdin: - await self._stdin.aclose() - if self._stdout: - await self._stdout.aclose() - if self._stderr: - await self._stderr.aclose() - - try: - await self.wait() - except BaseException: - self.kill() - with CancelScope(shield=True): - await self.wait() - raise - - async def wait(self) -> int: - return await self._process.wait() - - def terminate(self) -> None: - self._process.terminate() - - def kill(self) -> None: - self._process.kill() - - def send_signal(self, signal: Signals) -> None: - self._process.send_signal(signal) - - @property - def pid(self) -> int: - return self._process.pid - - @property - def returncode(self) -> int | None: - return self._process.returncode - - @property - def stdin(self) -> abc.ByteSendStream | None: - return self._stdin - - @property - def stdout(self) -> abc.ByteReceiveStream | None: - return self._stdout - - @property - def stderr(self) -> abc.ByteReceiveStream | None: - return self._stderr - - -class _ProcessPoolShutdownInstrument(trio.abc.Instrument): - def after_run(self) -> None: - super().after_run() - - -current_default_worker_process_limiter: trio.lowlevel.RunVar = RunVar( - "current_default_worker_process_limiter" -) - - -async def _shutdown_process_pool(workers: set[abc.Process]) -> None: - try: - await trio.sleep(math.inf) - except trio.Cancelled: - for process in workers: - if process.returncode is None: - process.kill() - - with CancelScope(shield=True): - for process in workers: - await process.aclose() - - -# -# Sockets and networking -# - - -class _TrioSocketMixin(Generic[T_SockAddr]): - def __init__(self, trio_socket: TrioSocketType) -> None: - self._trio_socket = trio_socket - self._closed = False - - def _check_closed(self) -> None: - if self._closed: - raise ClosedResourceError - if self._trio_socket.fileno() < 0: - raise BrokenResourceError - - @property - def _raw_socket(self) -> socket.socket: - return self._trio_socket._sock # type: ignore[attr-defined] - - async def aclose(self) -> None: - if self._trio_socket.fileno() >= 0: - self._closed = True - self._trio_socket.close() - - def _convert_socket_error(self, exc: BaseException) -> NoReturn: - if isinstance(exc, trio.ClosedResourceError): - raise ClosedResourceError from exc - elif self._trio_socket.fileno() < 0 and self._closed: - raise ClosedResourceError from None - elif isinstance(exc, OSError): - raise BrokenResourceError from exc - else: - raise exc - - -class SocketStream(_TrioSocketMixin, abc.SocketStream): - def __init__(self, trio_socket: TrioSocketType) -> None: - super().__init__(trio_socket) - self._receive_guard = ResourceGuard("reading from") - self._send_guard = ResourceGuard("writing to") - - async def receive(self, max_bytes: int = 65536) -> bytes: - with self._receive_guard: - try: - data = await self._trio_socket.recv(max_bytes) - except BaseException as exc: - self._convert_socket_error(exc) - - if data: - return data - else: - raise EndOfStream - - async def send(self, item: bytes) -> None: - with self._send_guard: - view = memoryview(item) - while view: - try: - bytes_sent = await self._trio_socket.send(view) - except BaseException as exc: - self._convert_socket_error(exc) - - view = view[bytes_sent:] - - async def send_eof(self) -> None: - self._trio_socket.shutdown(socket.SHUT_WR) - - -class UNIXSocketStream(SocketStream, abc.UNIXSocketStream): - async def receive_fds(self, msglen: int, maxfds: int) -> tuple[bytes, list[int]]: - if not isinstance(msglen, int) or msglen < 0: - raise ValueError("msglen must be a non-negative integer") - if not isinstance(maxfds, int) or maxfds < 1: - raise ValueError("maxfds must be a positive integer") - - fds = array.array("i") - await trio.lowlevel.checkpoint() - with self._receive_guard: - while True: - try: - message, ancdata, flags, addr = await self._trio_socket.recvmsg( - msglen, socket.CMSG_LEN(maxfds * fds.itemsize) - ) - except BaseException as exc: - self._convert_socket_error(exc) - else: - if not message and not ancdata: - raise EndOfStream - - break - - for cmsg_level, cmsg_type, cmsg_data in ancdata: - if cmsg_level != socket.SOL_SOCKET or cmsg_type != socket.SCM_RIGHTS: - raise RuntimeError( - f"Received unexpected ancillary data; message = {message!r}, " - f"cmsg_level = {cmsg_level}, cmsg_type = {cmsg_type}" - ) - - fds.frombytes(cmsg_data[: len(cmsg_data) - (len(cmsg_data) % fds.itemsize)]) - - return message, list(fds) - - async def send_fds(self, message: bytes, fds: Collection[int | IOBase]) -> None: - if not message: - raise ValueError("message must not be empty") - if not fds: - raise ValueError("fds must not be empty") - - filenos: list[int] = [] - for fd in fds: - if isinstance(fd, int): - filenos.append(fd) - elif isinstance(fd, IOBase): - filenos.append(fd.fileno()) - - fdarray = array.array("i", filenos) - await trio.lowlevel.checkpoint() - with self._send_guard: - while True: - try: - await self._trio_socket.sendmsg( - [message], - [ - ( - socket.SOL_SOCKET, - socket.SCM_RIGHTS, - fdarray, - ) - ], - ) - break - except BaseException as exc: - self._convert_socket_error(exc) - - -class TCPSocketListener(_TrioSocketMixin, abc.SocketListener): - def __init__(self, raw_socket: socket.socket): - super().__init__(trio.socket.from_stdlib_socket(raw_socket)) - self._accept_guard = ResourceGuard("accepting connections from") - - async def accept(self) -> SocketStream: - with self._accept_guard: - try: - trio_socket, _addr = await self._trio_socket.accept() - except BaseException as exc: - self._convert_socket_error(exc) - - trio_socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) - return SocketStream(trio_socket) - - -class UNIXSocketListener(_TrioSocketMixin, abc.SocketListener): - def __init__(self, raw_socket: socket.socket): - super().__init__(trio.socket.from_stdlib_socket(raw_socket)) - self._accept_guard = ResourceGuard("accepting connections from") - - async def accept(self) -> UNIXSocketStream: - with self._accept_guard: - try: - trio_socket, _addr = await self._trio_socket.accept() - except BaseException as exc: - self._convert_socket_error(exc) - - return UNIXSocketStream(trio_socket) - - -class UDPSocket(_TrioSocketMixin[IPSockAddrType], abc.UDPSocket): - def __init__(self, trio_socket: TrioSocketType) -> None: - super().__init__(trio_socket) - self._receive_guard = ResourceGuard("reading from") - self._send_guard = ResourceGuard("writing to") - - async def receive(self) -> tuple[bytes, IPSockAddrType]: - with self._receive_guard: - try: - data, addr = await self._trio_socket.recvfrom(65536) - return data, convert_ipv6_sockaddr(addr) - except BaseException as exc: - self._convert_socket_error(exc) - - async def send(self, item: UDPPacketType) -> None: - with self._send_guard: - try: - await self._trio_socket.sendto(*item) - except BaseException as exc: - self._convert_socket_error(exc) - - -class ConnectedUDPSocket(_TrioSocketMixin[IPSockAddrType], abc.ConnectedUDPSocket): - def __init__(self, trio_socket: TrioSocketType) -> None: - super().__init__(trio_socket) - self._receive_guard = ResourceGuard("reading from") - self._send_guard = ResourceGuard("writing to") - - async def receive(self) -> bytes: - with self._receive_guard: - try: - return await self._trio_socket.recv(65536) - except BaseException as exc: - self._convert_socket_error(exc) - - async def send(self, item: bytes) -> None: - with self._send_guard: - try: - await self._trio_socket.send(item) - except BaseException as exc: - self._convert_socket_error(exc) - - -class UNIXDatagramSocket(_TrioSocketMixin[str], abc.UNIXDatagramSocket): - def __init__(self, trio_socket: TrioSocketType) -> None: - super().__init__(trio_socket) - self._receive_guard = ResourceGuard("reading from") - self._send_guard = ResourceGuard("writing to") - - async def receive(self) -> UNIXDatagramPacketType: - with self._receive_guard: - try: - data, addr = await self._trio_socket.recvfrom(65536) - return data, addr - except BaseException as exc: - self._convert_socket_error(exc) - - async def send(self, item: UNIXDatagramPacketType) -> None: - with self._send_guard: - try: - await self._trio_socket.sendto(*item) - except BaseException as exc: - self._convert_socket_error(exc) - - -class ConnectedUNIXDatagramSocket( - _TrioSocketMixin[str], abc.ConnectedUNIXDatagramSocket -): - def __init__(self, trio_socket: TrioSocketType) -> None: - super().__init__(trio_socket) - self._receive_guard = ResourceGuard("reading from") - self._send_guard = ResourceGuard("writing to") - - async def receive(self) -> bytes: - with self._receive_guard: - try: - return await self._trio_socket.recv(65536) - except BaseException as exc: - self._convert_socket_error(exc) - - async def send(self, item: bytes) -> None: - with self._send_guard: - try: - await self._trio_socket.send(item) - except BaseException as exc: - self._convert_socket_error(exc) - - -# -# Synchronization -# - - -class Event(BaseEvent): - def __new__(cls) -> Event: - return object.__new__(cls) - - def __init__(self) -> None: - self.__original = trio.Event() - - def is_set(self) -> bool: - return self.__original.is_set() - - async def wait(self) -> None: - return await self.__original.wait() - - def statistics(self) -> EventStatistics: - orig_statistics = self.__original.statistics() - return EventStatistics(tasks_waiting=orig_statistics.tasks_waiting) - - def set(self) -> None: - self.__original.set() - - -class Lock(BaseLock): - def __new__(cls, *, fast_acquire: bool = False) -> Lock: - return object.__new__(cls) - - def __init__(self, *, fast_acquire: bool = False) -> None: - self._fast_acquire = fast_acquire - self.__original = trio.Lock() - - @staticmethod - def _convert_runtime_error_msg(exc: RuntimeError) -> None: - if exc.args == ("attempt to re-acquire an already held Lock",): - exc.args = ("Attempted to acquire an already held Lock",) - - async def acquire(self) -> None: - if not self._fast_acquire: - try: - await self.__original.acquire() - except RuntimeError as exc: - self._convert_runtime_error_msg(exc) - raise - - return - - # This is the "fast path" where we don't let other tasks run - await trio.lowlevel.checkpoint_if_cancelled() - try: - self.__original.acquire_nowait() - except trio.WouldBlock: - await self.__original._lot.park() - except RuntimeError as exc: - self._convert_runtime_error_msg(exc) - raise - - def acquire_nowait(self) -> None: - try: - self.__original.acquire_nowait() - except trio.WouldBlock: - raise WouldBlock from None - except RuntimeError as exc: - self._convert_runtime_error_msg(exc) - raise - - def locked(self) -> bool: - return self.__original.locked() - - def release(self) -> None: - self.__original.release() - - def statistics(self) -> LockStatistics: - orig_statistics = self.__original.statistics() - owner = TrioTaskInfo(orig_statistics.owner) if orig_statistics.owner else None - return LockStatistics( - orig_statistics.locked, owner, orig_statistics.tasks_waiting - ) - - -class Semaphore(BaseSemaphore): - def __new__( - cls, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ) -> Semaphore: - return object.__new__(cls) - - def __init__( - self, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ) -> None: - super().__init__(initial_value, max_value=max_value, fast_acquire=fast_acquire) - self.__original = trio.Semaphore(initial_value, max_value=max_value) - - async def acquire(self) -> None: - if not self._fast_acquire: - await self.__original.acquire() - return - - # This is the "fast path" where we don't let other tasks run - await trio.lowlevel.checkpoint_if_cancelled() - try: - self.__original.acquire_nowait() - except trio.WouldBlock: - await self.__original._lot.park() - - def acquire_nowait(self) -> None: - try: - self.__original.acquire_nowait() - except trio.WouldBlock: - raise WouldBlock from None - - @property - def max_value(self) -> int | None: - return self.__original.max_value - - @property - def value(self) -> int: - return self.__original.value - - def release(self) -> None: - self.__original.release() - - def statistics(self) -> SemaphoreStatistics: - orig_statistics = self.__original.statistics() - return SemaphoreStatistics(orig_statistics.tasks_waiting) - - -class CapacityLimiter(BaseCapacityLimiter): - def __new__( - cls, - total_tokens: float | None = None, - *, - original: trio.CapacityLimiter | None = None, - ) -> CapacityLimiter: - return object.__new__(cls) - - def __init__( - self, - total_tokens: float | None = None, - *, - original: trio.CapacityLimiter | None = None, - ) -> None: - if original is not None: - self.__original = original - else: - assert total_tokens is not None - self.__original = trio.CapacityLimiter(total_tokens) - - async def __aenter__(self) -> None: - return await self.__original.__aenter__() - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - await self.__original.__aexit__(exc_type, exc_val, exc_tb) - - @property - def total_tokens(self) -> float: - return self.__original.total_tokens - - @total_tokens.setter - def total_tokens(self, value: float) -> None: - self.__original.total_tokens = value - - @property - def borrowed_tokens(self) -> int: - return self.__original.borrowed_tokens - - @property - def available_tokens(self) -> float: - return self.__original.available_tokens - - def acquire_nowait(self) -> None: - self.__original.acquire_nowait() - - def acquire_on_behalf_of_nowait(self, borrower: object) -> None: - self.__original.acquire_on_behalf_of_nowait(borrower) - - async def acquire(self) -> None: - await self.__original.acquire() - - async def acquire_on_behalf_of(self, borrower: object) -> None: - await self.__original.acquire_on_behalf_of(borrower) - - def release(self) -> None: - return self.__original.release() - - def release_on_behalf_of(self, borrower: object) -> None: - return self.__original.release_on_behalf_of(borrower) - - def statistics(self) -> CapacityLimiterStatistics: - orig = self.__original.statistics() - return CapacityLimiterStatistics( - borrowed_tokens=orig.borrowed_tokens, - total_tokens=orig.total_tokens, - borrowers=tuple(orig.borrowers), - tasks_waiting=orig.tasks_waiting, - ) - - -_capacity_limiter_wrapper: trio.lowlevel.RunVar = RunVar("_capacity_limiter_wrapper") - - -# -# Signal handling -# - - -class _SignalReceiver: - _iterator: AsyncIterator[int] - - def __init__(self, signals: tuple[Signals, ...]): - self._signals = signals - - def __enter__(self) -> _SignalReceiver: - self._cm = trio.open_signal_receiver(*self._signals) - self._iterator = self._cm.__enter__() - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> bool | None: - return self._cm.__exit__(exc_type, exc_val, exc_tb) - - def __aiter__(self) -> _SignalReceiver: - return self - - async def __anext__(self) -> Signals: - signum = await self._iterator.__anext__() - return Signals(signum) - - -# -# Testing and debugging -# - - -class TestRunner(abc.TestRunner): - def __init__(self, **options: Any) -> None: - from queue import Queue - - self._call_queue: Queue[Callable[[], object]] = Queue() - self._send_stream: MemoryObjectSendStream | None = None - self._options = options - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: types.TracebackType | None, - ) -> None: - if self._send_stream: - self._send_stream.close() - while self._send_stream is not None: - self._call_queue.get()() - - async def _run_tests_and_fixtures(self) -> None: - self._send_stream, receive_stream = create_memory_object_stream(1) - with receive_stream: - async for coro, outcome_holder in receive_stream: - try: - retval = await coro - except BaseException as exc: - outcome_holder.append(Error(exc)) - else: - outcome_holder.append(Value(retval)) - - def _main_task_finished(self, outcome: object) -> None: - self._send_stream = None - - def _call_in_runner_task( - self, - func: Callable[P, Awaitable[T_Retval]], - /, - *args: P.args, - **kwargs: P.kwargs, - ) -> T_Retval: - if self._send_stream is None: - trio.lowlevel.start_guest_run( - self._run_tests_and_fixtures, - run_sync_soon_threadsafe=self._call_queue.put, - done_callback=self._main_task_finished, - **self._options, - ) - while self._send_stream is None: - self._call_queue.get()() - - outcome_holder: list[Outcome] = [] - self._send_stream.send_nowait((func(*args, **kwargs), outcome_holder)) - while not outcome_holder: - self._call_queue.get()() - - return outcome_holder[0].unwrap() - - def run_asyncgen_fixture( - self, - fixture_func: Callable[..., AsyncGenerator[T_Retval, Any]], - kwargs: dict[str, Any], - ) -> Iterable[T_Retval]: - asyncgen = fixture_func(**kwargs) - fixturevalue: T_Retval = self._call_in_runner_task(asyncgen.asend, None) - - yield fixturevalue - - try: - self._call_in_runner_task(asyncgen.asend, None) - except StopAsyncIteration: - pass - else: - self._call_in_runner_task(asyncgen.aclose) - raise RuntimeError("Async generator fixture did not stop") - - def run_fixture( - self, - fixture_func: Callable[..., Coroutine[Any, Any, T_Retval]], - kwargs: dict[str, Any], - ) -> T_Retval: - return self._call_in_runner_task(fixture_func, **kwargs) - - def run_test( - self, test_func: Callable[..., Coroutine[Any, Any, Any]], kwargs: dict[str, Any] - ) -> None: - self._call_in_runner_task(test_func, **kwargs) - - -class TrioTaskInfo(TaskInfo): - def __init__(self, task: trio.lowlevel.Task): - parent_id = None - if task.parent_nursery and task.parent_nursery.parent_task: - parent_id = id(task.parent_nursery.parent_task) - - super().__init__(id(task), parent_id, task.name, task.coro) - self._task = weakref.proxy(task) - - def has_pending_cancellation(self) -> bool: - try: - return self._task._cancel_status.effectively_cancelled - except ReferenceError: - # If the task is no longer around, it surely doesn't have a cancellation - # pending - return False - - -class TrioBackend(AsyncBackend): - @classmethod - def run( - cls, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - args: tuple[Unpack[PosArgsT]], - kwargs: dict[str, Any], - options: dict[str, Any], - ) -> T_Retval: - return trio.run(func, *args) - - @classmethod - def current_token(cls) -> object: - return trio.lowlevel.current_trio_token() - - @classmethod - def current_time(cls) -> float: - return trio.current_time() - - @classmethod - def cancelled_exception_class(cls) -> type[BaseException]: - return trio.Cancelled - - @classmethod - async def checkpoint(cls) -> None: - await trio.lowlevel.checkpoint() - - @classmethod - async def checkpoint_if_cancelled(cls) -> None: - await trio.lowlevel.checkpoint_if_cancelled() - - @classmethod - async def cancel_shielded_checkpoint(cls) -> None: - await trio.lowlevel.cancel_shielded_checkpoint() - - @classmethod - async def sleep(cls, delay: float) -> None: - await trio.sleep(delay) - - @classmethod - def create_cancel_scope( - cls, *, deadline: float = math.inf, shield: bool = False - ) -> abc.CancelScope: - return CancelScope(deadline=deadline, shield=shield) - - @classmethod - def current_effective_deadline(cls) -> float: - return trio.current_effective_deadline() - - @classmethod - def create_task_group(cls) -> abc.TaskGroup: - return TaskGroup() - - @classmethod - def create_event(cls) -> abc.Event: - return Event() - - @classmethod - def create_lock(cls, *, fast_acquire: bool) -> Lock: - return Lock(fast_acquire=fast_acquire) - - @classmethod - def create_semaphore( - cls, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ) -> abc.Semaphore: - return Semaphore(initial_value, max_value=max_value, fast_acquire=fast_acquire) - - @classmethod - def create_capacity_limiter(cls, total_tokens: float) -> CapacityLimiter: - return CapacityLimiter(total_tokens) - - @classmethod - async def run_sync_in_worker_thread( - cls, - func: Callable[[Unpack[PosArgsT]], T_Retval], - args: tuple[Unpack[PosArgsT]], - abandon_on_cancel: bool = False, - limiter: abc.CapacityLimiter | None = None, - ) -> T_Retval: - def wrapper() -> T_Retval: - with claim_worker_thread(TrioBackend, token): - return func(*args) - - token = TrioBackend.current_token() - return await run_sync( - wrapper, - abandon_on_cancel=abandon_on_cancel, - limiter=cast(trio.CapacityLimiter, limiter), - ) - - @classmethod - def check_cancelled(cls) -> None: - trio.from_thread.check_cancelled() - - @classmethod - def run_async_from_thread( - cls, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - args: tuple[Unpack[PosArgsT]], - token: object, - ) -> T_Retval: - trio_token = cast("trio.lowlevel.TrioToken | None", token) - try: - return trio.from_thread.run(func, *args, trio_token=trio_token) - except trio.RunFinishedError: - raise RunFinishedError from None - - @classmethod - def run_sync_from_thread( - cls, - func: Callable[[Unpack[PosArgsT]], T_Retval], - args: tuple[Unpack[PosArgsT]], - token: object, - ) -> T_Retval: - trio_token = cast("trio.lowlevel.TrioToken | None", token) - try: - return trio.from_thread.run_sync(func, *args, trio_token=trio_token) - except trio.RunFinishedError: - raise RunFinishedError from None - - @classmethod - async def open_process( - cls, - command: StrOrBytesPath | Sequence[StrOrBytesPath], - *, - stdin: int | IO[Any] | None, - stdout: int | IO[Any] | None, - stderr: int | IO[Any] | None, - **kwargs: Any, - ) -> Process: - def convert_item(item: StrOrBytesPath) -> str: - str_or_bytes = os.fspath(item) - if isinstance(str_or_bytes, str): - return str_or_bytes - else: - return os.fsdecode(str_or_bytes) - - if isinstance(command, (str, bytes, PathLike)): - process = await trio.lowlevel.open_process( - convert_item(command), - stdin=stdin, - stdout=stdout, - stderr=stderr, - shell=True, - **kwargs, - ) - else: - process = await trio.lowlevel.open_process( - [convert_item(item) for item in command], - stdin=stdin, - stdout=stdout, - stderr=stderr, - shell=False, - **kwargs, - ) - - stdin_stream = SendStreamWrapper(process.stdin) if process.stdin else None - stdout_stream = ReceiveStreamWrapper(process.stdout) if process.stdout else None - stderr_stream = ReceiveStreamWrapper(process.stderr) if process.stderr else None - return Process(process, stdin_stream, stdout_stream, stderr_stream) - - @classmethod - def setup_process_pool_exit_at_shutdown(cls, workers: set[abc.Process]) -> None: - trio.lowlevel.spawn_system_task(_shutdown_process_pool, workers) - - @classmethod - async def connect_tcp( - cls, host: str, port: int, local_address: IPSockAddrType | None = None - ) -> SocketStream: - family = socket.AF_INET6 if ":" in host else socket.AF_INET - trio_socket = trio.socket.socket(family) - trio_socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) - if local_address: - await trio_socket.bind(local_address) - - try: - await trio_socket.connect((host, port)) - except BaseException: - trio_socket.close() - raise - - return SocketStream(trio_socket) - - @classmethod - async def connect_unix(cls, path: str | bytes) -> abc.UNIXSocketStream: - trio_socket = trio.socket.socket(socket.AF_UNIX) - try: - await trio_socket.connect(path) - except BaseException: - trio_socket.close() - raise - - return UNIXSocketStream(trio_socket) - - @classmethod - def create_tcp_listener(cls, sock: socket.socket) -> abc.SocketListener: - return TCPSocketListener(sock) - - @classmethod - def create_unix_listener(cls, sock: socket.socket) -> abc.SocketListener: - return UNIXSocketListener(sock) - - @classmethod - async def create_udp_socket( - cls, - family: socket.AddressFamily, - local_address: IPSockAddrType | None, - remote_address: IPSockAddrType | None, - reuse_port: bool, - ) -> UDPSocket | ConnectedUDPSocket: - trio_socket = trio.socket.socket(family=family, type=socket.SOCK_DGRAM) - - if reuse_port: - trio_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1) - - if local_address: - await trio_socket.bind(local_address) - - if remote_address: - await trio_socket.connect(remote_address) - return ConnectedUDPSocket(trio_socket) - else: - return UDPSocket(trio_socket) - - @classmethod - @overload - async def create_unix_datagram_socket( - cls, raw_socket: socket.socket, remote_path: None - ) -> abc.UNIXDatagramSocket: ... - - @classmethod - @overload - async def create_unix_datagram_socket( - cls, raw_socket: socket.socket, remote_path: str | bytes - ) -> abc.ConnectedUNIXDatagramSocket: ... - - @classmethod - async def create_unix_datagram_socket( - cls, raw_socket: socket.socket, remote_path: str | bytes | None - ) -> abc.UNIXDatagramSocket | abc.ConnectedUNIXDatagramSocket: - trio_socket = trio.socket.from_stdlib_socket(raw_socket) - - if remote_path: - await trio_socket.connect(remote_path) - return ConnectedUNIXDatagramSocket(trio_socket) - else: - return UNIXDatagramSocket(trio_socket) - - @classmethod - async def getaddrinfo( - cls, - host: bytes | str | None, - port: str | int | None, - *, - family: int | AddressFamily = 0, - type: int | SocketKind = 0, - proto: int = 0, - flags: int = 0, - ) -> Sequence[ - tuple[ - AddressFamily, - SocketKind, - int, - str, - tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes], - ] - ]: - return await trio.socket.getaddrinfo(host, port, family, type, proto, flags) - - @classmethod - async def getnameinfo( - cls, sockaddr: IPSockAddrType, flags: int = 0 - ) -> tuple[str, str]: - return await trio.socket.getnameinfo(sockaddr, flags) - - @classmethod - async def wait_readable(cls, obj: FileDescriptorLike) -> None: - try: - await wait_readable(obj) - except trio.ClosedResourceError as exc: - raise ClosedResourceError().with_traceback(exc.__traceback__) from None - except trio.BusyResourceError: - raise BusyResourceError("reading from") from None - - @classmethod - async def wait_writable(cls, obj: FileDescriptorLike) -> None: - try: - await wait_writable(obj) - except trio.ClosedResourceError as exc: - raise ClosedResourceError().with_traceback(exc.__traceback__) from None - except trio.BusyResourceError: - raise BusyResourceError("writing to") from None - - @classmethod - def notify_closing(cls, obj: FileDescriptorLike) -> None: - notify_closing(obj) - - @classmethod - async def wrap_listener_socket(cls, sock: socket.socket) -> abc.SocketListener: - return TCPSocketListener(sock) - - @classmethod - async def wrap_stream_socket(cls, sock: socket.socket) -> SocketStream: - trio_sock = trio.socket.from_stdlib_socket(sock) - return SocketStream(trio_sock) - - @classmethod - async def wrap_unix_stream_socket(cls, sock: socket.socket) -> UNIXSocketStream: - trio_sock = trio.socket.from_stdlib_socket(sock) - return UNIXSocketStream(trio_sock) - - @classmethod - async def wrap_udp_socket(cls, sock: socket.socket) -> UDPSocket: - trio_sock = trio.socket.from_stdlib_socket(sock) - return UDPSocket(trio_sock) - - @classmethod - async def wrap_connected_udp_socket(cls, sock: socket.socket) -> ConnectedUDPSocket: - trio_sock = trio.socket.from_stdlib_socket(sock) - return ConnectedUDPSocket(trio_sock) - - @classmethod - async def wrap_unix_datagram_socket(cls, sock: socket.socket) -> UNIXDatagramSocket: - trio_sock = trio.socket.from_stdlib_socket(sock) - return UNIXDatagramSocket(trio_sock) - - @classmethod - async def wrap_connected_unix_datagram_socket( - cls, sock: socket.socket - ) -> ConnectedUNIXDatagramSocket: - trio_sock = trio.socket.from_stdlib_socket(sock) - return ConnectedUNIXDatagramSocket(trio_sock) - - @classmethod - def current_default_thread_limiter(cls) -> CapacityLimiter: - try: - return _capacity_limiter_wrapper.get() - except LookupError: - limiter = CapacityLimiter( - original=trio.to_thread.current_default_thread_limiter() - ) - _capacity_limiter_wrapper.set(limiter) - return limiter - - @classmethod - def open_signal_receiver( - cls, *signals: Signals - ) -> AbstractContextManager[AsyncIterator[Signals]]: - return _SignalReceiver(signals) - - @classmethod - def get_current_task(cls) -> TaskInfo: - task = current_task() - return TrioTaskInfo(task) - - @classmethod - def get_running_tasks(cls) -> Sequence[TaskInfo]: - root_task = current_root_task() - assert root_task - task_infos = [TrioTaskInfo(root_task)] - nurseries = root_task.child_nurseries - while nurseries: - new_nurseries: list[trio.Nursery] = [] - for nursery in nurseries: - for task in nursery.child_tasks: - task_infos.append(TrioTaskInfo(task)) - new_nurseries.extend(task.child_nurseries) - - nurseries = new_nurseries - - return task_infos - - @classmethod - async def wait_all_tasks_blocked(cls) -> None: - from trio.testing import wait_all_tasks_blocked - - await wait_all_tasks_blocked() - - @classmethod - def create_test_runner(cls, options: dict[str, Any]) -> TestRunner: - return TestRunner(**options) - - -backend_class = TrioBackend diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__init__.py b/.venv/lib/python3.12/site-packages/anyio/_core/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f012fef..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_asyncio_selector_thread.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_asyncio_selector_thread.cpython-312.pyc deleted file mode 100644 index 03be18e..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_asyncio_selector_thread.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_contextmanagers.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_contextmanagers.cpython-312.pyc deleted file mode 100644 index d905731..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_contextmanagers.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_eventloop.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_eventloop.cpython-312.pyc deleted file mode 100644 index 9ccd854..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_eventloop.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_exceptions.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_exceptions.cpython-312.pyc deleted file mode 100644 index c04be7b..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_exceptions.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_fileio.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_fileio.cpython-312.pyc deleted file mode 100644 index 8897eb1..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_fileio.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_resources.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_resources.cpython-312.pyc deleted file mode 100644 index 99fcace..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_resources.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_signals.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_signals.cpython-312.pyc deleted file mode 100644 index 1e4e7f4..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_signals.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_sockets.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_sockets.cpython-312.pyc deleted file mode 100644 index b4db288..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_sockets.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_streams.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_streams.cpython-312.pyc deleted file mode 100644 index 99149c7..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_streams.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_subprocesses.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_subprocesses.cpython-312.pyc deleted file mode 100644 index e5ea941..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_subprocesses.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_synchronization.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_synchronization.cpython-312.pyc deleted file mode 100644 index 04376af..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_synchronization.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_tasks.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_tasks.cpython-312.pyc deleted file mode 100644 index 2165a07..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_tasks.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_tempfile.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_tempfile.cpython-312.pyc deleted file mode 100644 index 93495e3..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_tempfile.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_testing.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_testing.cpython-312.pyc deleted file mode 100644 index 4c698ad..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_testing.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_typedattr.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_typedattr.cpython-312.pyc deleted file mode 100644 index e2fdb15..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_typedattr.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/_asyncio_selector_thread.py b/.venv/lib/python3.12/site-packages/anyio/_core/_asyncio_selector_thread.py deleted file mode 100644 index 9f35bae..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_asyncio_selector_thread.py +++ /dev/null @@ -1,167 +0,0 @@ -from __future__ import annotations - -import asyncio -import socket -import threading -from collections.abc import Callable -from selectors import EVENT_READ, EVENT_WRITE, DefaultSelector -from typing import TYPE_CHECKING, Any - -if TYPE_CHECKING: - from _typeshed import FileDescriptorLike - -_selector_lock = threading.Lock() -_selector: Selector | None = None - - -class Selector: - def __init__(self) -> None: - self._thread = threading.Thread(target=self.run, name="AnyIO socket selector") - self._selector = DefaultSelector() - self._send, self._receive = socket.socketpair() - self._send.setblocking(False) - self._receive.setblocking(False) - # This somewhat reduces the amount of memory wasted queueing up data - # for wakeups. With these settings, maximum number of 1-byte sends - # before getting BlockingIOError: - # Linux 4.8: 6 - # macOS (darwin 15.5): 1 - # Windows 10: 525347 - # Windows you're weird. (And on Windows setting SNDBUF to 0 makes send - # blocking, even on non-blocking sockets, so don't do that.) - self._receive.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 1) - self._send.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, 1) - # On Windows this is a TCP socket so this might matter. On other - # platforms this fails b/c AF_UNIX sockets aren't actually TCP. - try: - self._send.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) - except OSError: - pass - - self._selector.register(self._receive, EVENT_READ) - self._closed = False - - def start(self) -> None: - self._thread.start() - threading._register_atexit(self._stop) # type: ignore[attr-defined] - - def _stop(self) -> None: - global _selector - self._closed = True - self._notify_self() - self._send.close() - self._thread.join() - self._selector.unregister(self._receive) - self._receive.close() - self._selector.close() - _selector = None - assert not self._selector.get_map(), ( - "selector still has registered file descriptors after shutdown" - ) - - def _notify_self(self) -> None: - try: - self._send.send(b"\x00") - except BlockingIOError: - pass - - def add_reader(self, fd: FileDescriptorLike, callback: Callable[[], Any]) -> None: - loop = asyncio.get_running_loop() - try: - key = self._selector.get_key(fd) - except KeyError: - self._selector.register(fd, EVENT_READ, {EVENT_READ: (loop, callback)}) - else: - if EVENT_READ in key.data: - raise ValueError( - "this file descriptor is already registered for reading" - ) - - key.data[EVENT_READ] = loop, callback - self._selector.modify(fd, key.events | EVENT_READ, key.data) - - self._notify_self() - - def add_writer(self, fd: FileDescriptorLike, callback: Callable[[], Any]) -> None: - loop = asyncio.get_running_loop() - try: - key = self._selector.get_key(fd) - except KeyError: - self._selector.register(fd, EVENT_WRITE, {EVENT_WRITE: (loop, callback)}) - else: - if EVENT_WRITE in key.data: - raise ValueError( - "this file descriptor is already registered for writing" - ) - - key.data[EVENT_WRITE] = loop, callback - self._selector.modify(fd, key.events | EVENT_WRITE, key.data) - - self._notify_self() - - def remove_reader(self, fd: FileDescriptorLike) -> bool: - try: - key = self._selector.get_key(fd) - except KeyError: - return False - - if new_events := key.events ^ EVENT_READ: - del key.data[EVENT_READ] - self._selector.modify(fd, new_events, key.data) - else: - self._selector.unregister(fd) - - return True - - def remove_writer(self, fd: FileDescriptorLike) -> bool: - try: - key = self._selector.get_key(fd) - except KeyError: - return False - - if new_events := key.events ^ EVENT_WRITE: - del key.data[EVENT_WRITE] - self._selector.modify(fd, new_events, key.data) - else: - self._selector.unregister(fd) - - return True - - def run(self) -> None: - while not self._closed: - for key, events in self._selector.select(): - if key.fileobj is self._receive: - try: - while self._receive.recv(4096): - pass - except BlockingIOError: - pass - - continue - - if events & EVENT_READ: - loop, callback = key.data[EVENT_READ] - self.remove_reader(key.fd) - try: - loop.call_soon_threadsafe(callback) - except RuntimeError: - pass # the loop was already closed - - if events & EVENT_WRITE: - loop, callback = key.data[EVENT_WRITE] - self.remove_writer(key.fd) - try: - loop.call_soon_threadsafe(callback) - except RuntimeError: - pass # the loop was already closed - - -def get_selector() -> Selector: - global _selector - - with _selector_lock: - if _selector is None: - _selector = Selector() - _selector.start() - - return _selector diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/_contextmanagers.py b/.venv/lib/python3.12/site-packages/anyio/_core/_contextmanagers.py deleted file mode 100644 index 302f32b..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_contextmanagers.py +++ /dev/null @@ -1,200 +0,0 @@ -from __future__ import annotations - -from abc import abstractmethod -from contextlib import AbstractAsyncContextManager, AbstractContextManager -from inspect import isasyncgen, iscoroutine, isgenerator -from types import TracebackType -from typing import Protocol, TypeVar, cast, final - -_T_co = TypeVar("_T_co", covariant=True) -_ExitT_co = TypeVar("_ExitT_co", covariant=True, bound="bool | None") - - -class _SupportsCtxMgr(Protocol[_T_co, _ExitT_co]): - def __contextmanager__(self) -> AbstractContextManager[_T_co, _ExitT_co]: ... - - -class _SupportsAsyncCtxMgr(Protocol[_T_co, _ExitT_co]): - def __asynccontextmanager__( - self, - ) -> AbstractAsyncContextManager[_T_co, _ExitT_co]: ... - - -class ContextManagerMixin: - """ - Mixin class providing context manager functionality via a generator-based - implementation. - - This class allows you to implement a context manager via :meth:`__contextmanager__` - which should return a generator. The mechanics are meant to mirror those of - :func:`@contextmanager `. - - .. note:: Classes using this mix-in are not reentrant as context managers, meaning - that once you enter it, you can't re-enter before first exiting it. - - .. seealso:: :doc:`contextmanagers` - """ - - __cm: AbstractContextManager[object, bool | None] | None = None - - @final - def __enter__(self: _SupportsCtxMgr[_T_co, bool | None]) -> _T_co: - # Needed for mypy to assume self still has the __cm member - assert isinstance(self, ContextManagerMixin) - if self.__cm is not None: - raise RuntimeError( - f"this {self.__class__.__qualname__} has already been entered" - ) - - cm = self.__contextmanager__() - if not isinstance(cm, AbstractContextManager): - if isgenerator(cm): - raise TypeError( - "__contextmanager__() returned a generator object instead of " - "a context manager. Did you forget to add the @contextmanager " - "decorator?" - ) - - raise TypeError( - f"__contextmanager__() did not return a context manager object, " - f"but {cm.__class__!r}" - ) - - if cm is self: - raise TypeError( - f"{self.__class__.__qualname__}.__contextmanager__() returned " - f"self. Did you forget to add the @contextmanager decorator and a " - f"'yield' statement?" - ) - - value = cm.__enter__() - self.__cm = cm - return value - - @final - def __exit__( - self: _SupportsCtxMgr[object, _ExitT_co], - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> _ExitT_co: - # Needed for mypy to assume self still has the __cm member - assert isinstance(self, ContextManagerMixin) - if self.__cm is None: - raise RuntimeError( - f"this {self.__class__.__qualname__} has not been entered yet" - ) - - # Prevent circular references - cm = self.__cm - del self.__cm - - return cast(_ExitT_co, cm.__exit__(exc_type, exc_val, exc_tb)) - - @abstractmethod - def __contextmanager__(self) -> AbstractContextManager[object, bool | None]: - """ - Implement your context manager logic here. - - This method **must** be decorated with - :func:`@contextmanager `. - - .. note:: Remember that the ``yield`` will raise any exception raised in the - enclosed context block, so use a ``finally:`` block to clean up resources! - - :return: a context manager object - """ - - -class AsyncContextManagerMixin: - """ - Mixin class providing async context manager functionality via a generator-based - implementation. - - This class allows you to implement a context manager via - :meth:`__asynccontextmanager__`. The mechanics are meant to mirror those of - :func:`@asynccontextmanager `. - - .. note:: Classes using this mix-in are not reentrant as context managers, meaning - that once you enter it, you can't re-enter before first exiting it. - - .. seealso:: :doc:`contextmanagers` - """ - - __cm: AbstractAsyncContextManager[object, bool | None] | None = None - - @final - async def __aenter__(self: _SupportsAsyncCtxMgr[_T_co, bool | None]) -> _T_co: - # Needed for mypy to assume self still has the __cm member - assert isinstance(self, AsyncContextManagerMixin) - if self.__cm is not None: - raise RuntimeError( - f"this {self.__class__.__qualname__} has already been entered" - ) - - cm = self.__asynccontextmanager__() - if not isinstance(cm, AbstractAsyncContextManager): - if isasyncgen(cm): - raise TypeError( - "__asynccontextmanager__() returned an async generator instead of " - "an async context manager. Did you forget to add the " - "@asynccontextmanager decorator?" - ) - elif iscoroutine(cm): - cm.close() - raise TypeError( - "__asynccontextmanager__() returned a coroutine object instead of " - "an async context manager. Did you forget to add the " - "@asynccontextmanager decorator and a 'yield' statement?" - ) - - raise TypeError( - f"__asynccontextmanager__() did not return an async context manager, " - f"but {cm.__class__!r}" - ) - - if cm is self: - raise TypeError( - f"{self.__class__.__qualname__}.__asynccontextmanager__() returned " - f"self. Did you forget to add the @asynccontextmanager decorator and a " - f"'yield' statement?" - ) - - value = await cm.__aenter__() - self.__cm = cm - return value - - @final - async def __aexit__( - self: _SupportsAsyncCtxMgr[object, _ExitT_co], - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> _ExitT_co: - assert isinstance(self, AsyncContextManagerMixin) - if self.__cm is None: - raise RuntimeError( - f"this {self.__class__.__qualname__} has not been entered yet" - ) - - # Prevent circular references - cm = self.__cm - del self.__cm - - return cast(_ExitT_co, await cm.__aexit__(exc_type, exc_val, exc_tb)) - - @abstractmethod - def __asynccontextmanager__( - self, - ) -> AbstractAsyncContextManager[object, bool | None]: - """ - Implement your async context manager logic here. - - This method **must** be decorated with - :func:`@asynccontextmanager `. - - .. note:: Remember that the ``yield`` will raise any exception raised in the - enclosed context block, so use a ``finally:`` block to clean up resources! - - :return: an async context manager object - """ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/_eventloop.py b/.venv/lib/python3.12/site-packages/anyio/_core/_eventloop.py deleted file mode 100644 index 59a69cc..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_eventloop.py +++ /dev/null @@ -1,234 +0,0 @@ -from __future__ import annotations - -import math -import sys -import threading -from collections.abc import Awaitable, Callable, Generator -from contextlib import contextmanager -from contextvars import Token -from importlib import import_module -from typing import TYPE_CHECKING, Any, TypeVar - -from ._exceptions import NoEventLoopError - -if sys.version_info >= (3, 11): - from typing import TypeVarTuple, Unpack -else: - from typing_extensions import TypeVarTuple, Unpack - -sniffio: Any -try: - import sniffio -except ModuleNotFoundError: - sniffio = None - -if TYPE_CHECKING: - from ..abc import AsyncBackend - -# This must be updated when new backends are introduced -BACKENDS = "asyncio", "trio" - -T_Retval = TypeVar("T_Retval") -PosArgsT = TypeVarTuple("PosArgsT") - -threadlocals = threading.local() -loaded_backends: dict[str, type[AsyncBackend]] = {} - - -def run( - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - *args: Unpack[PosArgsT], - backend: str = "asyncio", - backend_options: dict[str, Any] | None = None, -) -> T_Retval: - """ - Run the given coroutine function in an asynchronous event loop. - - The current thread must not be already running an event loop. - - :param func: a coroutine function - :param args: positional arguments to ``func`` - :param backend: name of the asynchronous event loop implementation – currently - either ``asyncio`` or ``trio`` - :param backend_options: keyword arguments to call the backend ``run()`` - implementation with (documented :ref:`here `) - :return: the return value of the coroutine function - :raises RuntimeError: if an asynchronous event loop is already running in this - thread - :raises LookupError: if the named backend is not found - - """ - if asynclib_name := current_async_library(): - raise RuntimeError(f"Already running {asynclib_name} in this thread") - - try: - async_backend = get_async_backend(backend) - except ImportError as exc: - raise LookupError(f"No such backend: {backend}") from exc - - token = None - if asynclib_name is None: - # Since we're in control of the event loop, we can cache the name of the async - # library - token = set_current_async_library(backend) - - try: - backend_options = backend_options or {} - return async_backend.run(func, args, {}, backend_options) - finally: - reset_current_async_library(token) - - -async def sleep(delay: float) -> None: - """ - Pause the current task for the specified duration. - - :param delay: the duration, in seconds - - """ - return await get_async_backend().sleep(delay) - - -async def sleep_forever() -> None: - """ - Pause the current task until it's cancelled. - - This is a shortcut for ``sleep(math.inf)``. - - .. versionadded:: 3.1 - - """ - await sleep(math.inf) - - -async def sleep_until(deadline: float) -> None: - """ - Pause the current task until the given time. - - :param deadline: the absolute time to wake up at (according to the internal - monotonic clock of the event loop) - - .. versionadded:: 3.1 - - """ - now = current_time() - await sleep(max(deadline - now, 0)) - - -def current_time() -> float: - """ - Return the current value of the event loop's internal clock. - - :return: the clock value (seconds) - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return get_async_backend().current_time() - - -def get_all_backends() -> tuple[str, ...]: - """Return a tuple of the names of all built-in backends.""" - return BACKENDS - - -def get_available_backends() -> tuple[str, ...]: - """ - Test for the availability of built-in backends. - - :return a tuple of the built-in backend names that were successfully imported - - .. versionadded:: 4.12 - - """ - available_backends: list[str] = [] - for backend_name in get_all_backends(): - try: - get_async_backend(backend_name) - except ImportError: - continue - - available_backends.append(backend_name) - - return tuple(available_backends) - - -def get_cancelled_exc_class() -> type[BaseException]: - """ - Return the current async library's cancellation exception class. - - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return get_async_backend().cancelled_exception_class() - - -# -# Private API -# - - -@contextmanager -def claim_worker_thread( - backend_class: type[AsyncBackend], token: object -) -> Generator[Any, None, None]: - from ..lowlevel import EventLoopToken - - threadlocals.current_token = EventLoopToken(backend_class, token) - try: - yield - finally: - del threadlocals.current_token - - -def get_async_backend(asynclib_name: str | None = None) -> type[AsyncBackend]: - if asynclib_name is None: - asynclib_name = current_async_library() - if not asynclib_name: - raise NoEventLoopError( - f"Not currently running on any asynchronous event loop. " - f"Available async backends: {', '.join(get_all_backends())}" - ) - - # We use our own dict instead of sys.modules to get the already imported back-end - # class because the appropriate modules in sys.modules could potentially be only - # partially initialized - try: - return loaded_backends[asynclib_name] - except KeyError: - module = import_module(f"anyio._backends._{asynclib_name}") - loaded_backends[asynclib_name] = module.backend_class - return module.backend_class - - -def current_async_library() -> str | None: - if sniffio is None: - # If sniffio is not installed, we assume we're either running asyncio or nothing - import asyncio - - try: - asyncio.get_running_loop() - return "asyncio" - except RuntimeError: - pass - else: - try: - return sniffio.current_async_library() - except sniffio.AsyncLibraryNotFoundError: - pass - - return None - - -def set_current_async_library(asynclib_name: str | None) -> Token | None: - # no-op if sniffio is not installed - if sniffio is None: - return None - - return sniffio.current_async_library_cvar.set(asynclib_name) - - -def reset_current_async_library(token: Token | None) -> None: - if token is not None: - sniffio.current_async_library_cvar.reset(token) diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/_exceptions.py b/.venv/lib/python3.12/site-packages/anyio/_core/_exceptions.py deleted file mode 100644 index 3776bed..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_exceptions.py +++ /dev/null @@ -1,156 +0,0 @@ -from __future__ import annotations - -import sys -from collections.abc import Generator -from textwrap import dedent -from typing import Any - -if sys.version_info < (3, 11): - from exceptiongroup import BaseExceptionGroup - - -class BrokenResourceError(Exception): - """ - Raised when trying to use a resource that has been rendered unusable due to external - causes (e.g. a send stream whose peer has disconnected). - """ - - -class BrokenWorkerProcess(Exception): - """ - Raised by :meth:`~anyio.to_process.run_sync` if the worker process terminates abruptly or - otherwise misbehaves. - """ - - -class BrokenWorkerInterpreter(Exception): - """ - Raised by :meth:`~anyio.to_interpreter.run_sync` if an unexpected exception is - raised in the subinterpreter. - """ - - def __init__(self, excinfo: Any): - # This was adapted from concurrent.futures.interpreter.ExecutionFailed - msg = excinfo.formatted - if not msg: - if excinfo.type and excinfo.msg: - msg = f"{excinfo.type.__name__}: {excinfo.msg}" - else: - msg = excinfo.type.__name__ or excinfo.msg - - super().__init__(msg) - self.excinfo = excinfo - - def __str__(self) -> str: - try: - formatted = self.excinfo.errdisplay - except Exception: - return super().__str__() - else: - return dedent( - f""" - {super().__str__()} - - Uncaught in the interpreter: - - {formatted} - """.strip() - ) - - -class BusyResourceError(Exception): - """ - Raised when two tasks are trying to read from or write to the same resource - concurrently. - """ - - def __init__(self, action: str): - super().__init__(f"Another task is already {action} this resource") - - -class ClosedResourceError(Exception): - """Raised when trying to use a resource that has been closed.""" - - -class ConnectionFailed(OSError): - """ - Raised when a connection attempt fails. - - .. note:: This class inherits from :exc:`OSError` for backwards compatibility. - """ - - -def iterate_exceptions( - exception: BaseException, -) -> Generator[BaseException, None, None]: - if isinstance(exception, BaseExceptionGroup): - for exc in exception.exceptions: - yield from iterate_exceptions(exc) - else: - yield exception - - -class DelimiterNotFound(Exception): - """ - Raised during - :meth:`~anyio.streams.buffered.BufferedByteReceiveStream.receive_until` if the - maximum number of bytes has been read without the delimiter being found. - """ - - def __init__(self, max_bytes: int) -> None: - super().__init__( - f"The delimiter was not found among the first {max_bytes} bytes" - ) - - -class EndOfStream(Exception): - """ - Raised when trying to read from a stream that has been closed from the other end. - """ - - -class IncompleteRead(Exception): - """ - Raised during - :meth:`~anyio.streams.buffered.BufferedByteReceiveStream.receive_exactly` or - :meth:`~anyio.streams.buffered.BufferedByteReceiveStream.receive_until` if the - connection is closed before the requested amount of bytes has been read. - """ - - def __init__(self) -> None: - super().__init__( - "The stream was closed before the read operation could be completed" - ) - - -class TypedAttributeLookupError(LookupError): - """ - Raised by :meth:`~anyio.TypedAttributeProvider.extra` when the given typed attribute - is not found and no default value has been given. - """ - - -class WouldBlock(Exception): - """Raised by ``X_nowait`` functions if ``X()`` would block.""" - - -class NoEventLoopError(RuntimeError): - """ - Raised by several functions that require an event loop to be running in the current - thread when there is no running event loop. - - This is also raised by :func:`.from_thread.run` and :func:`.from_thread.run_sync` - if not calling from an AnyIO worker thread, and no ``token`` was passed. - """ - - -class RunFinishedError(RuntimeError): - """ - Raised by :func:`.from_thread.run` and :func:`.from_thread.run_sync` if the event - loop associated with the explicitly passed token has already finished. - """ - - def __init__(self) -> None: - super().__init__( - "The event loop associated with the given token has already finished" - ) diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/_fileio.py b/.venv/lib/python3.12/site-packages/anyio/_core/_fileio.py deleted file mode 100644 index 3bb8c84..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_fileio.py +++ /dev/null @@ -1,799 +0,0 @@ -from __future__ import annotations - -import os -import pathlib -import sys -from collections.abc import ( - AsyncIterator, - Callable, - Iterable, - Iterator, - Sequence, -) -from dataclasses import dataclass -from functools import partial -from os import PathLike -from typing import ( - IO, - TYPE_CHECKING, - Any, - AnyStr, - ClassVar, - Final, - Generic, - overload, -) - -from .. import to_thread -from ..abc import AsyncResource - -if TYPE_CHECKING: - from types import ModuleType - - from _typeshed import OpenBinaryMode, OpenTextMode, ReadableBuffer, WriteableBuffer -else: - ReadableBuffer = OpenBinaryMode = OpenTextMode = WriteableBuffer = object - - -class AsyncFile(AsyncResource, Generic[AnyStr]): - """ - An asynchronous file object. - - This class wraps a standard file object and provides async friendly versions of the - following blocking methods (where available on the original file object): - - * read - * read1 - * readline - * readlines - * readinto - * readinto1 - * write - * writelines - * truncate - * seek - * tell - * flush - - All other methods are directly passed through. - - This class supports the asynchronous context manager protocol which closes the - underlying file at the end of the context block. - - This class also supports asynchronous iteration:: - - async with await open_file(...) as f: - async for line in f: - print(line) - """ - - def __init__(self, fp: IO[AnyStr]) -> None: - self._fp: Any = fp - - def __getattr__(self, name: str) -> object: - return getattr(self._fp, name) - - @property - def wrapped(self) -> IO[AnyStr]: - """The wrapped file object.""" - return self._fp - - async def __aiter__(self) -> AsyncIterator[AnyStr]: - while True: - line = await self.readline() - if line: - yield line - else: - break - - async def aclose(self) -> None: - return await to_thread.run_sync(self._fp.close) - - async def read(self, size: int = -1) -> AnyStr: - return await to_thread.run_sync(self._fp.read, size) - - async def read1(self: AsyncFile[bytes], size: int = -1) -> bytes: - return await to_thread.run_sync(self._fp.read1, size) - - async def readline(self) -> AnyStr: - return await to_thread.run_sync(self._fp.readline) - - async def readlines(self) -> list[AnyStr]: - return await to_thread.run_sync(self._fp.readlines) - - async def readinto(self: AsyncFile[bytes], b: WriteableBuffer) -> int: - return await to_thread.run_sync(self._fp.readinto, b) - - async def readinto1(self: AsyncFile[bytes], b: WriteableBuffer) -> int: - return await to_thread.run_sync(self._fp.readinto1, b) - - @overload - async def write(self: AsyncFile[bytes], b: ReadableBuffer) -> int: ... - - @overload - async def write(self: AsyncFile[str], b: str) -> int: ... - - async def write(self, b: ReadableBuffer | str) -> int: - return await to_thread.run_sync(self._fp.write, b) - - @overload - async def writelines( - self: AsyncFile[bytes], lines: Iterable[ReadableBuffer] - ) -> None: ... - - @overload - async def writelines(self: AsyncFile[str], lines: Iterable[str]) -> None: ... - - async def writelines(self, lines: Iterable[ReadableBuffer] | Iterable[str]) -> None: - return await to_thread.run_sync(self._fp.writelines, lines) - - async def truncate(self, size: int | None = None) -> int: - return await to_thread.run_sync(self._fp.truncate, size) - - async def seek(self, offset: int, whence: int | None = os.SEEK_SET) -> int: - return await to_thread.run_sync(self._fp.seek, offset, whence) - - async def tell(self) -> int: - return await to_thread.run_sync(self._fp.tell) - - async def flush(self) -> None: - return await to_thread.run_sync(self._fp.flush) - - -@overload -async def open_file( - file: str | PathLike[str] | int, - mode: OpenBinaryMode, - buffering: int = ..., - encoding: str | None = ..., - errors: str | None = ..., - newline: str | None = ..., - closefd: bool = ..., - opener: Callable[[str, int], int] | None = ..., -) -> AsyncFile[bytes]: ... - - -@overload -async def open_file( - file: str | PathLike[str] | int, - mode: OpenTextMode = ..., - buffering: int = ..., - encoding: str | None = ..., - errors: str | None = ..., - newline: str | None = ..., - closefd: bool = ..., - opener: Callable[[str, int], int] | None = ..., -) -> AsyncFile[str]: ... - - -async def open_file( - file: str | PathLike[str] | int, - mode: str = "r", - buffering: int = -1, - encoding: str | None = None, - errors: str | None = None, - newline: str | None = None, - closefd: bool = True, - opener: Callable[[str, int], int] | None = None, -) -> AsyncFile[Any]: - """ - Open a file asynchronously. - - The arguments are exactly the same as for the builtin :func:`open`. - - :return: an asynchronous file object - - """ - fp = await to_thread.run_sync( - open, file, mode, buffering, encoding, errors, newline, closefd, opener - ) - return AsyncFile(fp) - - -def wrap_file(file: IO[AnyStr]) -> AsyncFile[AnyStr]: - """ - Wrap an existing file as an asynchronous file. - - :param file: an existing file-like object - :return: an asynchronous file object - - """ - return AsyncFile(file) - - -@dataclass(eq=False) -class _PathIterator(AsyncIterator["Path"]): - iterator: Iterator[PathLike[str]] - - async def __anext__(self) -> Path: - nextval = await to_thread.run_sync( - next, self.iterator, None, abandon_on_cancel=True - ) - if nextval is None: - raise StopAsyncIteration from None - - return Path(nextval) - - -class Path: - """ - An asynchronous version of :class:`pathlib.Path`. - - This class cannot be substituted for :class:`pathlib.Path` or - :class:`pathlib.PurePath`, but it is compatible with the :class:`os.PathLike` - interface. - - It implements the Python 3.10 version of :class:`pathlib.Path` interface, except for - the deprecated :meth:`~pathlib.Path.link_to` method. - - Some methods may be unavailable or have limited functionality, based on the Python - version: - - * :meth:`~pathlib.Path.copy` (available on Python 3.14 or later) - * :meth:`~pathlib.Path.copy_into` (available on Python 3.14 or later) - * :meth:`~pathlib.Path.from_uri` (available on Python 3.13 or later) - * :meth:`~pathlib.PurePath.full_match` (available on Python 3.13 or later) - * :attr:`~pathlib.Path.info` (available on Python 3.14 or later) - * :meth:`~pathlib.Path.is_junction` (available on Python 3.12 or later) - * :meth:`~pathlib.PurePath.match` (the ``case_sensitive`` parameter is only - available on Python 3.13 or later) - * :meth:`~pathlib.Path.move` (available on Python 3.14 or later) - * :meth:`~pathlib.Path.move_into` (available on Python 3.14 or later) - * :meth:`~pathlib.PurePath.relative_to` (the ``walk_up`` parameter is only available - on Python 3.12 or later) - * :meth:`~pathlib.Path.walk` (available on Python 3.12 or later) - - Any methods that do disk I/O need to be awaited on. These methods are: - - * :meth:`~pathlib.Path.absolute` - * :meth:`~pathlib.Path.chmod` - * :meth:`~pathlib.Path.cwd` - * :meth:`~pathlib.Path.exists` - * :meth:`~pathlib.Path.expanduser` - * :meth:`~pathlib.Path.group` - * :meth:`~pathlib.Path.hardlink_to` - * :meth:`~pathlib.Path.home` - * :meth:`~pathlib.Path.is_block_device` - * :meth:`~pathlib.Path.is_char_device` - * :meth:`~pathlib.Path.is_dir` - * :meth:`~pathlib.Path.is_fifo` - * :meth:`~pathlib.Path.is_file` - * :meth:`~pathlib.Path.is_junction` - * :meth:`~pathlib.Path.is_mount` - * :meth:`~pathlib.Path.is_socket` - * :meth:`~pathlib.Path.is_symlink` - * :meth:`~pathlib.Path.lchmod` - * :meth:`~pathlib.Path.lstat` - * :meth:`~pathlib.Path.mkdir` - * :meth:`~pathlib.Path.open` - * :meth:`~pathlib.Path.owner` - * :meth:`~pathlib.Path.read_bytes` - * :meth:`~pathlib.Path.read_text` - * :meth:`~pathlib.Path.readlink` - * :meth:`~pathlib.Path.rename` - * :meth:`~pathlib.Path.replace` - * :meth:`~pathlib.Path.resolve` - * :meth:`~pathlib.Path.rmdir` - * :meth:`~pathlib.Path.samefile` - * :meth:`~pathlib.Path.stat` - * :meth:`~pathlib.Path.symlink_to` - * :meth:`~pathlib.Path.touch` - * :meth:`~pathlib.Path.unlink` - * :meth:`~pathlib.Path.walk` - * :meth:`~pathlib.Path.write_bytes` - * :meth:`~pathlib.Path.write_text` - - Additionally, the following methods return an async iterator yielding - :class:`~.Path` objects: - - * :meth:`~pathlib.Path.glob` - * :meth:`~pathlib.Path.iterdir` - * :meth:`~pathlib.Path.rglob` - """ - - __slots__ = "_path", "__weakref__" - - __weakref__: Any - - def __init__(self, *args: str | PathLike[str]) -> None: - self._path: Final[pathlib.Path] = pathlib.Path(*args) - - def __fspath__(self) -> str: - return self._path.__fspath__() - - if sys.version_info >= (3, 15): - - def __vfspath__(self) -> str: - return self._path.__vfspath__() - - def __str__(self) -> str: - return self._path.__str__() - - def __repr__(self) -> str: - return f"{self.__class__.__name__}({self.as_posix()!r})" - - def __bytes__(self) -> bytes: - return self._path.__bytes__() - - def __hash__(self) -> int: - return self._path.__hash__() - - def __eq__(self, other: object) -> bool: - target = other._path if isinstance(other, Path) else other - return self._path.__eq__(target) - - def __lt__(self, other: pathlib.PurePath | Path) -> bool: - target = other._path if isinstance(other, Path) else other - return self._path.__lt__(target) - - def __le__(self, other: pathlib.PurePath | Path) -> bool: - target = other._path if isinstance(other, Path) else other - return self._path.__le__(target) - - def __gt__(self, other: pathlib.PurePath | Path) -> bool: - target = other._path if isinstance(other, Path) else other - return self._path.__gt__(target) - - def __ge__(self, other: pathlib.PurePath | Path) -> bool: - target = other._path if isinstance(other, Path) else other - return self._path.__ge__(target) - - def __truediv__(self, other: str | PathLike[str]) -> Path: - return Path(self._path / other) - - def __rtruediv__(self, other: str | PathLike[str]) -> Path: - return Path(other) / self - - @property - def parts(self) -> tuple[str, ...]: - return self._path.parts - - @property - def drive(self) -> str: - return self._path.drive - - @property - def root(self) -> str: - return self._path.root - - @property - def anchor(self) -> str: - return self._path.anchor - - @property - def parents(self) -> Sequence[Path]: - return tuple(Path(p) for p in self._path.parents) - - @property - def parent(self) -> Path: - return Path(self._path.parent) - - @property - def name(self) -> str: - return self._path.name - - @property - def suffix(self) -> str: - return self._path.suffix - - @property - def suffixes(self) -> list[str]: - return self._path.suffixes - - @property - def stem(self) -> str: - return self._path.stem - - async def absolute(self) -> Path: - path = await to_thread.run_sync(self._path.absolute) - return Path(path) - - def as_posix(self) -> str: - return self._path.as_posix() - - def as_uri(self) -> str: - return self._path.as_uri() - - if sys.version_info >= (3, 13): - parser: ClassVar[ModuleType] = pathlib.Path.parser - - @classmethod - def from_uri(cls, uri: str) -> Path: - return Path(pathlib.Path.from_uri(uri)) - - def full_match( - self, path_pattern: str, *, case_sensitive: bool | None = None - ) -> bool: - return self._path.full_match(path_pattern, case_sensitive=case_sensitive) - - def match( - self, path_pattern: str, *, case_sensitive: bool | None = None - ) -> bool: - return self._path.match(path_pattern, case_sensitive=case_sensitive) - else: - - def match(self, path_pattern: str) -> bool: - return self._path.match(path_pattern) - - if sys.version_info >= (3, 14): - - @property - def info(self) -> Any: # TODO: add return type annotation when Typeshed gets it - return self._path.info - - async def copy( - self, - target: str | os.PathLike[str], - *, - follow_symlinks: bool = True, - preserve_metadata: bool = False, - ) -> Path: - func = partial( - self._path.copy, - follow_symlinks=follow_symlinks, - preserve_metadata=preserve_metadata, - ) - return Path(await to_thread.run_sync(func, pathlib.Path(target))) - - async def copy_into( - self, - target_dir: str | os.PathLike[str], - *, - follow_symlinks: bool = True, - preserve_metadata: bool = False, - ) -> Path: - func = partial( - self._path.copy_into, - follow_symlinks=follow_symlinks, - preserve_metadata=preserve_metadata, - ) - return Path(await to_thread.run_sync(func, pathlib.Path(target_dir))) - - async def move(self, target: str | os.PathLike[str]) -> Path: - # Upstream does not handle anyio.Path properly as a PathLike - target = pathlib.Path(target) - return Path(await to_thread.run_sync(self._path.move, target)) - - async def move_into( - self, - target_dir: str | os.PathLike[str], - ) -> Path: - return Path(await to_thread.run_sync(self._path.move_into, target_dir)) - - def is_relative_to(self, other: str | PathLike[str]) -> bool: - try: - self.relative_to(other) - return True - except ValueError: - return False - - async def chmod(self, mode: int, *, follow_symlinks: bool = True) -> None: - func = partial(os.chmod, follow_symlinks=follow_symlinks) - return await to_thread.run_sync(func, self._path, mode) - - @classmethod - async def cwd(cls) -> Path: - path = await to_thread.run_sync(pathlib.Path.cwd) - return cls(path) - - async def exists(self) -> bool: - return await to_thread.run_sync(self._path.exists, abandon_on_cancel=True) - - async def expanduser(self) -> Path: - return Path( - await to_thread.run_sync(self._path.expanduser, abandon_on_cancel=True) - ) - - if sys.version_info < (3, 12): - # Python 3.11 and earlier - def glob(self, pattern: str) -> AsyncIterator[Path]: - gen = self._path.glob(pattern) - return _PathIterator(gen) - elif (3, 12) <= sys.version_info < (3, 13): - # changed in Python 3.12: - # - The case_sensitive parameter was added. - def glob( - self, - pattern: str, - *, - case_sensitive: bool | None = None, - ) -> AsyncIterator[Path]: - gen = self._path.glob(pattern, case_sensitive=case_sensitive) - return _PathIterator(gen) - elif sys.version_info >= (3, 13): - # Changed in Python 3.13: - # - The recurse_symlinks parameter was added. - # - The pattern parameter accepts a path-like object. - def glob( # type: ignore[misc] # mypy doesn't allow for differing signatures in a conditional block - self, - pattern: str | PathLike[str], - *, - case_sensitive: bool | None = None, - recurse_symlinks: bool = False, - ) -> AsyncIterator[Path]: - gen = self._path.glob( - pattern, # type: ignore[arg-type] - case_sensitive=case_sensitive, - recurse_symlinks=recurse_symlinks, - ) - return _PathIterator(gen) - - async def group(self) -> str: - return await to_thread.run_sync(self._path.group, abandon_on_cancel=True) - - async def hardlink_to( - self, target: str | bytes | PathLike[str] | PathLike[bytes] - ) -> None: - if isinstance(target, Path): - target = target._path - - await to_thread.run_sync(os.link, target, self) - - @classmethod - async def home(cls) -> Path: - home_path = await to_thread.run_sync(pathlib.Path.home) - return cls(home_path) - - def is_absolute(self) -> bool: - return self._path.is_absolute() - - async def is_block_device(self) -> bool: - return await to_thread.run_sync( - self._path.is_block_device, abandon_on_cancel=True - ) - - async def is_char_device(self) -> bool: - return await to_thread.run_sync( - self._path.is_char_device, abandon_on_cancel=True - ) - - async def is_dir(self) -> bool: - return await to_thread.run_sync(self._path.is_dir, abandon_on_cancel=True) - - async def is_fifo(self) -> bool: - return await to_thread.run_sync(self._path.is_fifo, abandon_on_cancel=True) - - async def is_file(self) -> bool: - return await to_thread.run_sync(self._path.is_file, abandon_on_cancel=True) - - if sys.version_info >= (3, 12): - - async def is_junction(self) -> bool: - return await to_thread.run_sync(self._path.is_junction) - - async def is_mount(self) -> bool: - return await to_thread.run_sync( - os.path.ismount, self._path, abandon_on_cancel=True - ) - - if sys.version_info < (3, 15): - - def is_reserved(self) -> bool: - return self._path.is_reserved() - - async def is_socket(self) -> bool: - return await to_thread.run_sync(self._path.is_socket, abandon_on_cancel=True) - - async def is_symlink(self) -> bool: - return await to_thread.run_sync(self._path.is_symlink, abandon_on_cancel=True) - - async def iterdir(self) -> AsyncIterator[Path]: - gen = ( - self._path.iterdir() - if sys.version_info < (3, 13) - else await to_thread.run_sync(self._path.iterdir, abandon_on_cancel=True) - ) - async for path in _PathIterator(gen): - yield path - - def joinpath(self, *args: str | PathLike[str]) -> Path: - return Path(self._path.joinpath(*args)) - - async def lchmod(self, mode: int) -> None: - await to_thread.run_sync(self._path.lchmod, mode) - - async def lstat(self) -> os.stat_result: - return await to_thread.run_sync(self._path.lstat, abandon_on_cancel=True) - - async def mkdir( - self, mode: int = 0o777, parents: bool = False, exist_ok: bool = False - ) -> None: - await to_thread.run_sync(self._path.mkdir, mode, parents, exist_ok) - - @overload - async def open( - self, - mode: OpenBinaryMode, - buffering: int = ..., - encoding: str | None = ..., - errors: str | None = ..., - newline: str | None = ..., - ) -> AsyncFile[bytes]: ... - - @overload - async def open( - self, - mode: OpenTextMode = ..., - buffering: int = ..., - encoding: str | None = ..., - errors: str | None = ..., - newline: str | None = ..., - ) -> AsyncFile[str]: ... - - async def open( - self, - mode: str = "r", - buffering: int = -1, - encoding: str | None = None, - errors: str | None = None, - newline: str | None = None, - ) -> AsyncFile[Any]: - fp = await to_thread.run_sync( - self._path.open, mode, buffering, encoding, errors, newline - ) - return AsyncFile(fp) - - async def owner(self) -> str: - return await to_thread.run_sync(self._path.owner, abandon_on_cancel=True) - - async def read_bytes(self) -> bytes: - return await to_thread.run_sync(self._path.read_bytes) - - async def read_text( - self, encoding: str | None = None, errors: str | None = None - ) -> str: - return await to_thread.run_sync(self._path.read_text, encoding, errors) - - if sys.version_info >= (3, 12): - - def relative_to( - self, *other: str | PathLike[str], walk_up: bool = False - ) -> Path: - # relative_to() should work with any PathLike but it doesn't - others = [pathlib.Path(other) for other in other] - return Path(self._path.relative_to(*others, walk_up=walk_up)) - - else: - - def relative_to(self, *other: str | PathLike[str]) -> Path: - return Path(self._path.relative_to(*other)) - - async def readlink(self) -> Path: - target = await to_thread.run_sync(os.readlink, self._path) - return Path(target) - - async def rename(self, target: str | pathlib.PurePath | Path) -> Path: - if isinstance(target, Path): - target = target._path - - await to_thread.run_sync(self._path.rename, target) - return Path(target) - - async def replace(self, target: str | pathlib.PurePath | Path) -> Path: - if isinstance(target, Path): - target = target._path - - await to_thread.run_sync(self._path.replace, target) - return Path(target) - - async def resolve(self, strict: bool = False) -> Path: - func = partial(self._path.resolve, strict=strict) - return Path(await to_thread.run_sync(func, abandon_on_cancel=True)) - - if sys.version_info < (3, 12): - # Pre Python 3.12 - def rglob(self, pattern: str) -> AsyncIterator[Path]: - gen = self._path.rglob(pattern) - return _PathIterator(gen) - elif (3, 12) <= sys.version_info < (3, 13): - # Changed in Python 3.12: - # - The case_sensitive parameter was added. - def rglob( - self, pattern: str, *, case_sensitive: bool | None = None - ) -> AsyncIterator[Path]: - gen = self._path.rglob(pattern, case_sensitive=case_sensitive) - return _PathIterator(gen) - elif sys.version_info >= (3, 13): - # Changed in Python 3.13: - # - The recurse_symlinks parameter was added. - # - The pattern parameter accepts a path-like object. - def rglob( # type: ignore[misc] # mypy doesn't allow for differing signatures in a conditional block - self, - pattern: str | PathLike[str], - *, - case_sensitive: bool | None = None, - recurse_symlinks: bool = False, - ) -> AsyncIterator[Path]: - gen = self._path.rglob( - pattern, # type: ignore[arg-type] - case_sensitive=case_sensitive, - recurse_symlinks=recurse_symlinks, - ) - return _PathIterator(gen) - - async def rmdir(self) -> None: - await to_thread.run_sync(self._path.rmdir) - - async def samefile(self, other_path: str | PathLike[str]) -> bool: - if isinstance(other_path, Path): - other_path = other_path._path - - return await to_thread.run_sync( - self._path.samefile, other_path, abandon_on_cancel=True - ) - - async def stat(self, *, follow_symlinks: bool = True) -> os.stat_result: - func = partial(os.stat, follow_symlinks=follow_symlinks) - return await to_thread.run_sync(func, self._path, abandon_on_cancel=True) - - async def symlink_to( - self, - target: str | bytes | PathLike[str] | PathLike[bytes], - target_is_directory: bool = False, - ) -> None: - if isinstance(target, Path): - target = target._path - - await to_thread.run_sync(self._path.symlink_to, target, target_is_directory) - - async def touch(self, mode: int = 0o666, exist_ok: bool = True) -> None: - await to_thread.run_sync(self._path.touch, mode, exist_ok) - - async def unlink(self, missing_ok: bool = False) -> None: - try: - await to_thread.run_sync(self._path.unlink) - except FileNotFoundError: - if not missing_ok: - raise - - if sys.version_info >= (3, 12): - - async def walk( - self, - top_down: bool = True, - on_error: Callable[[OSError], object] | None = None, - follow_symlinks: bool = False, - ) -> AsyncIterator[tuple[Path, list[str], list[str]]]: - def get_next_value() -> tuple[pathlib.Path, list[str], list[str]] | None: - try: - return next(gen) - except StopIteration: - return None - - gen = self._path.walk(top_down, on_error, follow_symlinks) - while True: - value = await to_thread.run_sync(get_next_value) - if value is None: - return - - root, dirs, paths = value - yield Path(root), dirs, paths - - def with_name(self, name: str) -> Path: - return Path(self._path.with_name(name)) - - def with_stem(self, stem: str) -> Path: - return Path(self._path.with_name(stem + self._path.suffix)) - - def with_suffix(self, suffix: str) -> Path: - return Path(self._path.with_suffix(suffix)) - - def with_segments(self, *pathsegments: str | PathLike[str]) -> Path: - return Path(*pathsegments) - - async def write_bytes(self, data: bytes) -> int: - return await to_thread.run_sync(self._path.write_bytes, data) - - async def write_text( - self, - data: str, - encoding: str | None = None, - errors: str | None = None, - newline: str | None = None, - ) -> int: - return await to_thread.run_sync( - self._path.write_text, data, encoding, errors, newline - ) - - -PathLike.register(Path) diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/_resources.py b/.venv/lib/python3.12/site-packages/anyio/_core/_resources.py deleted file mode 100644 index b9a5344..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_resources.py +++ /dev/null @@ -1,18 +0,0 @@ -from __future__ import annotations - -from ..abc import AsyncResource -from ._tasks import CancelScope - - -async def aclose_forcefully(resource: AsyncResource) -> None: - """ - Close an asynchronous resource in a cancelled scope. - - Doing this closes the resource without waiting on anything. - - :param resource: the resource to close - - """ - with CancelScope() as scope: - scope.cancel() - await resource.aclose() diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/_signals.py b/.venv/lib/python3.12/site-packages/anyio/_core/_signals.py deleted file mode 100644 index e24c79e..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_signals.py +++ /dev/null @@ -1,29 +0,0 @@ -from __future__ import annotations - -from collections.abc import AsyncIterator -from contextlib import AbstractContextManager -from signal import Signals - -from ._eventloop import get_async_backend - - -def open_signal_receiver( - *signals: Signals, -) -> AbstractContextManager[AsyncIterator[Signals]]: - """ - Start receiving operating system signals. - - :param signals: signals to receive (e.g. ``signal.SIGINT``) - :return: an asynchronous context manager for an asynchronous iterator which yields - signal numbers - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - .. warning:: Windows does not support signals natively so it is best to avoid - relying on this in cross-platform applications. - - .. warning:: On asyncio, this permanently replaces any previous signal handler for - the given signals, as set via :meth:`~asyncio.loop.add_signal_handler`. - - """ - return get_async_backend().open_signal_receiver(*signals) diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/_sockets.py b/.venv/lib/python3.12/site-packages/anyio/_core/_sockets.py deleted file mode 100644 index 6c99b3a..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_sockets.py +++ /dev/null @@ -1,1003 +0,0 @@ -from __future__ import annotations - -import errno -import os -import socket -import ssl -import stat -import sys -from collections.abc import Awaitable -from dataclasses import dataclass -from ipaddress import IPv4Address, IPv6Address, ip_address -from os import PathLike, chmod -from socket import AddressFamily, SocketKind -from typing import TYPE_CHECKING, Any, Literal, cast, overload - -from .. import ConnectionFailed, to_thread -from ..abc import ( - ByteStreamConnectable, - ConnectedUDPSocket, - ConnectedUNIXDatagramSocket, - IPAddressType, - IPSockAddrType, - SocketListener, - SocketStream, - UDPSocket, - UNIXDatagramSocket, - UNIXSocketStream, -) -from ..streams.stapled import MultiListener -from ..streams.tls import TLSConnectable, TLSStream -from ._eventloop import get_async_backend -from ._resources import aclose_forcefully -from ._synchronization import Event -from ._tasks import create_task_group, move_on_after - -if TYPE_CHECKING: - from _typeshed import FileDescriptorLike -else: - FileDescriptorLike = object - -if sys.version_info < (3, 11): - from exceptiongroup import ExceptionGroup - -if sys.version_info >= (3, 12): - from typing import override -else: - from typing_extensions import override - -if sys.version_info < (3, 13): - from typing_extensions import deprecated -else: - from warnings import deprecated - -IPPROTO_IPV6 = getattr(socket, "IPPROTO_IPV6", 41) # https://bugs.python.org/issue29515 - -AnyIPAddressFamily = Literal[ - AddressFamily.AF_UNSPEC, AddressFamily.AF_INET, AddressFamily.AF_INET6 -] -IPAddressFamily = Literal[AddressFamily.AF_INET, AddressFamily.AF_INET6] - - -# tls_hostname given -@overload -async def connect_tcp( - remote_host: IPAddressType, - remote_port: int, - *, - local_host: IPAddressType | None = ..., - ssl_context: ssl.SSLContext | None = ..., - tls_standard_compatible: bool = ..., - tls_hostname: str, - happy_eyeballs_delay: float = ..., -) -> TLSStream: ... - - -# ssl_context given -@overload -async def connect_tcp( - remote_host: IPAddressType, - remote_port: int, - *, - local_host: IPAddressType | None = ..., - ssl_context: ssl.SSLContext, - tls_standard_compatible: bool = ..., - tls_hostname: str | None = ..., - happy_eyeballs_delay: float = ..., -) -> TLSStream: ... - - -# tls=True -@overload -async def connect_tcp( - remote_host: IPAddressType, - remote_port: int, - *, - local_host: IPAddressType | None = ..., - tls: Literal[True], - ssl_context: ssl.SSLContext | None = ..., - tls_standard_compatible: bool = ..., - tls_hostname: str | None = ..., - happy_eyeballs_delay: float = ..., -) -> TLSStream: ... - - -# tls=False -@overload -async def connect_tcp( - remote_host: IPAddressType, - remote_port: int, - *, - local_host: IPAddressType | None = ..., - tls: Literal[False], - ssl_context: ssl.SSLContext | None = ..., - tls_standard_compatible: bool = ..., - tls_hostname: str | None = ..., - happy_eyeballs_delay: float = ..., -) -> SocketStream: ... - - -# No TLS arguments -@overload -async def connect_tcp( - remote_host: IPAddressType, - remote_port: int, - *, - local_host: IPAddressType | None = ..., - happy_eyeballs_delay: float = ..., -) -> SocketStream: ... - - -async def connect_tcp( - remote_host: IPAddressType, - remote_port: int, - *, - local_host: IPAddressType | None = None, - tls: bool = False, - ssl_context: ssl.SSLContext | None = None, - tls_standard_compatible: bool = True, - tls_hostname: str | None = None, - happy_eyeballs_delay: float = 0.25, -) -> SocketStream | TLSStream: - """ - Connect to a host using the TCP protocol. - - This function implements the stateless version of the Happy Eyeballs algorithm (RFC - 6555). If ``remote_host`` is a host name that resolves to multiple IP addresses, - each one is tried until one connection attempt succeeds. If the first attempt does - not connected within 250 milliseconds, a second attempt is started using the next - address in the list, and so on. On IPv6 enabled systems, an IPv6 address (if - available) is tried first. - - When the connection has been established, a TLS handshake will be done if either - ``ssl_context`` or ``tls_hostname`` is not ``None``, or if ``tls`` is ``True``. - - :param remote_host: the IP address or host name to connect to - :param remote_port: port on the target host to connect to - :param local_host: the interface address or name to bind the socket to before - connecting - :param tls: ``True`` to do a TLS handshake with the connected stream and return a - :class:`~anyio.streams.tls.TLSStream` instead - :param ssl_context: the SSL context object to use (if omitted, a default context is - created) - :param tls_standard_compatible: If ``True``, performs the TLS shutdown handshake - before closing the stream and requires that the server does this as well. - Otherwise, :exc:`~ssl.SSLEOFError` may be raised during reads from the stream. - Some protocols, such as HTTP, require this option to be ``False``. - See :meth:`~ssl.SSLContext.wrap_socket` for details. - :param tls_hostname: host name to check the server certificate against (defaults to - the value of ``remote_host``) - :param happy_eyeballs_delay: delay (in seconds) before starting the next connection - attempt - :return: a socket stream object if no TLS handshake was done, otherwise a TLS stream - :raises ConnectionFailed: if the connection fails - - """ - # Placed here due to https://github.com/python/mypy/issues/7057 - connected_stream: SocketStream | None = None - - async def try_connect(remote_host: str, event: Event) -> None: - nonlocal connected_stream - try: - stream = await asynclib.connect_tcp(remote_host, remote_port, local_address) - except OSError as exc: - oserrors.append(exc) - return - else: - if connected_stream is None: - connected_stream = stream - tg.cancel_scope.cancel() - else: - await stream.aclose() - finally: - event.set() - - asynclib = get_async_backend() - local_address: IPSockAddrType | None = None - family = socket.AF_UNSPEC - if local_host: - gai_res = await getaddrinfo(str(local_host), None) - family, *_, local_address = gai_res[0] - - target_host = str(remote_host) - try: - addr_obj = ip_address(remote_host) - except ValueError: - addr_obj = None - - if addr_obj is not None: - if isinstance(addr_obj, IPv6Address): - target_addrs = [(socket.AF_INET6, addr_obj.compressed)] - else: - target_addrs = [(socket.AF_INET, addr_obj.compressed)] - else: - # getaddrinfo() will raise an exception if name resolution fails - gai_res = await getaddrinfo( - target_host, remote_port, family=family, type=socket.SOCK_STREAM - ) - - # Organize the list so that the first address is an IPv6 address (if available) - # and the second one is an IPv4 addresses. The rest can be in whatever order. - v6_found = v4_found = False - target_addrs = [] - for af, *_, sa in gai_res: - if af == socket.AF_INET6 and not v6_found: - v6_found = True - target_addrs.insert(0, (af, sa[0])) - elif af == socket.AF_INET and not v4_found and v6_found: - v4_found = True - target_addrs.insert(1, (af, sa[0])) - else: - target_addrs.append((af, sa[0])) - - oserrors: list[OSError] = [] - try: - async with create_task_group() as tg: - for _af, addr in target_addrs: - event = Event() - tg.start_soon(try_connect, addr, event) - with move_on_after(happy_eyeballs_delay): - await event.wait() - - if connected_stream is None: - cause = ( - oserrors[0] - if len(oserrors) == 1 - else ExceptionGroup("multiple connection attempts failed", oserrors) - ) - raise OSError("All connection attempts failed") from cause - finally: - oserrors.clear() - - if tls or tls_hostname or ssl_context: - try: - return await TLSStream.wrap( - connected_stream, - server_side=False, - hostname=tls_hostname or str(remote_host), - ssl_context=ssl_context, - standard_compatible=tls_standard_compatible, - ) - except BaseException: - await aclose_forcefully(connected_stream) - raise - - return connected_stream - - -async def connect_unix(path: str | bytes | PathLike[Any]) -> UNIXSocketStream: - """ - Connect to the given UNIX socket. - - Not available on Windows. - - :param path: path to the socket - :return: a socket stream object - :raises ConnectionFailed: if the connection fails - - """ - path = os.fspath(path) - return await get_async_backend().connect_unix(path) - - -async def create_tcp_listener( - *, - local_host: IPAddressType | None = None, - local_port: int = 0, - family: AnyIPAddressFamily = socket.AddressFamily.AF_UNSPEC, - backlog: int = 65536, - reuse_port: bool = False, -) -> MultiListener[SocketStream]: - """ - Create a TCP socket listener. - - :param local_port: port number to listen on - :param local_host: IP address of the interface to listen on. If omitted, listen on - all IPv4 and IPv6 interfaces. To listen on all interfaces on a specific address - family, use ``0.0.0.0`` for IPv4 or ``::`` for IPv6. - :param family: address family (used if ``local_host`` was omitted) - :param backlog: maximum number of queued incoming connections (up to a maximum of - 2**16, or 65536) - :param reuse_port: ``True`` to allow multiple sockets to bind to the same - address/port (not supported on Windows) - :return: a multi-listener object containing one or more socket listeners - :raises OSError: if there's an error creating a socket, or binding to one or more - interfaces failed - - """ - asynclib = get_async_backend() - backlog = min(backlog, 65536) - local_host = str(local_host) if local_host is not None else None - - def setup_raw_socket( - fam: AddressFamily, - bind_addr: tuple[str, int] | tuple[str, int, int, int], - *, - v6only: bool = True, - ) -> socket.socket: - sock = socket.socket(fam) - try: - sock.setblocking(False) - - if fam == AddressFamily.AF_INET6: - sock.setsockopt(IPPROTO_IPV6, socket.IPV6_V6ONLY, v6only) - - # For Windows, enable exclusive address use. For others, enable address - # reuse. - if sys.platform == "win32": - sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) - else: - sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - - if reuse_port: - sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1) - - # Workaround for #554 - if fam == socket.AF_INET6 and "%" in bind_addr[0]: - addr, scope_id = bind_addr[0].split("%", 1) - bind_addr = (addr, bind_addr[1], 0, int(scope_id)) - - sock.bind(bind_addr) - sock.listen(backlog) - except BaseException: - sock.close() - raise - - return sock - - # We passing type=0 on non-Windows platforms as a workaround for a uvloop bug - # where we don't get the correct scope ID for IPv6 link-local addresses when passing - # type=socket.SOCK_STREAM to getaddrinfo(): - # https://github.com/MagicStack/uvloop/issues/539 - gai_res = await getaddrinfo( - local_host, - local_port, - family=family, - type=socket.SOCK_STREAM if sys.platform == "win32" else 0, - flags=socket.AI_PASSIVE | socket.AI_ADDRCONFIG, - ) - - # The set comprehension is here to work around a glibc bug: - # https://sourceware.org/bugzilla/show_bug.cgi?id=14969 - sockaddrs = sorted({res for res in gai_res if res[1] == SocketKind.SOCK_STREAM}) - - # Special case for dual-stack binding on the "any" interface - if ( - local_host is None - and family == AddressFamily.AF_UNSPEC - and socket.has_dualstack_ipv6() - and any(fam == AddressFamily.AF_INET6 for fam, *_ in gai_res) - ): - raw_socket = setup_raw_socket( - AddressFamily.AF_INET6, ("::", local_port), v6only=False - ) - listener = asynclib.create_tcp_listener(raw_socket) - return MultiListener([listener]) - - errors: list[OSError] = [] - try: - for _ in range(len(sockaddrs)): - listeners: list[SocketListener] = [] - bound_ephemeral_port = local_port - try: - for fam, *_, sockaddr in sockaddrs: - sockaddr = sockaddr[0], bound_ephemeral_port, *sockaddr[2:] - raw_socket = setup_raw_socket(fam, sockaddr) - - # Store the assigned port if an ephemeral port was requested, so - # we'll bind to the same port on all interfaces - if local_port == 0 and len(gai_res) > 1: - bound_ephemeral_port = raw_socket.getsockname()[1] - - listeners.append(asynclib.create_tcp_listener(raw_socket)) - except BaseException as exc: - for listener in listeners: - await listener.aclose() - - # If an ephemeral port was requested but binding the assigned port - # failed for another interface, rotate the address list and try again - if ( - isinstance(exc, OSError) - and exc.errno == errno.EADDRINUSE - and local_port == 0 - and bound_ephemeral_port - ): - errors.append(exc) - sockaddrs.append(sockaddrs.pop(0)) - continue - - raise - - return MultiListener(listeners) - - raise OSError( - f"Could not create {len(sockaddrs)} listeners with a consistent port" - ) from ExceptionGroup("Several bind attempts failed", errors) - finally: - del errors # Prevent reference cycles - - -async def create_unix_listener( - path: str | bytes | PathLike[Any], - *, - mode: int | None = None, - backlog: int = 65536, -) -> SocketListener: - """ - Create a UNIX socket listener. - - Not available on Windows. - - :param path: path of the socket - :param mode: permissions to set on the socket - :param backlog: maximum number of queued incoming connections (up to a maximum of - 2**16, or 65536) - :return: a listener object - - .. versionchanged:: 3.0 - If a socket already exists on the file system in the given path, it will be - removed first. - - """ - backlog = min(backlog, 65536) - raw_socket = await setup_unix_local_socket(path, mode, socket.SOCK_STREAM) - try: - raw_socket.listen(backlog) - return get_async_backend().create_unix_listener(raw_socket) - except BaseException: - raw_socket.close() - raise - - -async def create_udp_socket( - family: AnyIPAddressFamily = AddressFamily.AF_UNSPEC, - *, - local_host: IPAddressType | None = None, - local_port: int = 0, - reuse_port: bool = False, -) -> UDPSocket: - """ - Create a UDP socket. - - If ``port`` has been given, the socket will be bound to this port on the local - machine, making this socket suitable for providing UDP based services. - - :param family: address family (``AF_INET`` or ``AF_INET6``) – automatically - determined from ``local_host`` if omitted - :param local_host: IP address or host name of the local interface to bind to - :param local_port: local port to bind to - :param reuse_port: ``True`` to allow multiple sockets to bind to the same - address/port (not supported on Windows) - :return: a UDP socket - - """ - if family is AddressFamily.AF_UNSPEC and not local_host: - raise ValueError('Either "family" or "local_host" must be given') - - if local_host: - gai_res = await getaddrinfo( - str(local_host), - local_port, - family=family, - type=socket.SOCK_DGRAM, - flags=socket.AI_PASSIVE | socket.AI_ADDRCONFIG, - ) - family = cast(AnyIPAddressFamily, gai_res[0][0]) - local_address = gai_res[0][-1] - elif family is AddressFamily.AF_INET6: - local_address = ("::", 0) - else: - local_address = ("0.0.0.0", 0) - - sock = await get_async_backend().create_udp_socket( - family, local_address, None, reuse_port - ) - return cast(UDPSocket, sock) - - -async def create_connected_udp_socket( - remote_host: IPAddressType, - remote_port: int, - *, - family: AnyIPAddressFamily = AddressFamily.AF_UNSPEC, - local_host: IPAddressType | None = None, - local_port: int = 0, - reuse_port: bool = False, -) -> ConnectedUDPSocket: - """ - Create a connected UDP socket. - - Connected UDP sockets can only communicate with the specified remote host/port, an - any packets sent from other sources are dropped. - - :param remote_host: remote host to set as the default target - :param remote_port: port on the remote host to set as the default target - :param family: address family (``AF_INET`` or ``AF_INET6``) – automatically - determined from ``local_host`` or ``remote_host`` if omitted - :param local_host: IP address or host name of the local interface to bind to - :param local_port: local port to bind to - :param reuse_port: ``True`` to allow multiple sockets to bind to the same - address/port (not supported on Windows) - :return: a connected UDP socket - - """ - local_address = None - if local_host: - gai_res = await getaddrinfo( - str(local_host), - local_port, - family=family, - type=socket.SOCK_DGRAM, - flags=socket.AI_PASSIVE | socket.AI_ADDRCONFIG, - ) - family = cast(AnyIPAddressFamily, gai_res[0][0]) - local_address = gai_res[0][-1] - - gai_res = await getaddrinfo( - str(remote_host), remote_port, family=family, type=socket.SOCK_DGRAM - ) - family = cast(AnyIPAddressFamily, gai_res[0][0]) - remote_address = gai_res[0][-1] - - sock = await get_async_backend().create_udp_socket( - family, local_address, remote_address, reuse_port - ) - return cast(ConnectedUDPSocket, sock) - - -async def create_unix_datagram_socket( - *, - local_path: None | str | bytes | PathLike[Any] = None, - local_mode: int | None = None, -) -> UNIXDatagramSocket: - """ - Create a UNIX datagram socket. - - Not available on Windows. - - If ``local_path`` has been given, the socket will be bound to this path, making this - socket suitable for receiving datagrams from other processes. Other processes can - send datagrams to this socket only if ``local_path`` is set. - - If a socket already exists on the file system in the ``local_path``, it will be - removed first. - - :param local_path: the path on which to bind to - :param local_mode: permissions to set on the local socket - :return: a UNIX datagram socket - - """ - raw_socket = await setup_unix_local_socket( - local_path, local_mode, socket.SOCK_DGRAM - ) - return await get_async_backend().create_unix_datagram_socket(raw_socket, None) - - -async def create_connected_unix_datagram_socket( - remote_path: str | bytes | PathLike[Any], - *, - local_path: None | str | bytes | PathLike[Any] = None, - local_mode: int | None = None, -) -> ConnectedUNIXDatagramSocket: - """ - Create a connected UNIX datagram socket. - - Connected datagram sockets can only communicate with the specified remote path. - - If ``local_path`` has been given, the socket will be bound to this path, making - this socket suitable for receiving datagrams from other processes. Other processes - can send datagrams to this socket only if ``local_path`` is set. - - If a socket already exists on the file system in the ``local_path``, it will be - removed first. - - :param remote_path: the path to set as the default target - :param local_path: the path on which to bind to - :param local_mode: permissions to set on the local socket - :return: a connected UNIX datagram socket - - """ - remote_path = os.fspath(remote_path) - raw_socket = await setup_unix_local_socket( - local_path, local_mode, socket.SOCK_DGRAM - ) - return await get_async_backend().create_unix_datagram_socket( - raw_socket, remote_path - ) - - -async def getaddrinfo( - host: bytes | str | None, - port: str | int | None, - *, - family: int | AddressFamily = 0, - type: int | SocketKind = 0, - proto: int = 0, - flags: int = 0, -) -> list[tuple[AddressFamily, SocketKind, int, str, tuple[str, int]]]: - """ - Look up a numeric IP address given a host name. - - Internationalized domain names are translated according to the (non-transitional) - IDNA 2008 standard. - - .. note:: 4-tuple IPv6 socket addresses are automatically converted to 2-tuples of - (host, port), unlike what :func:`socket.getaddrinfo` does. - - :param host: host name - :param port: port number - :param family: socket family (`'AF_INET``, ...) - :param type: socket type (``SOCK_STREAM``, ...) - :param proto: protocol number - :param flags: flags to pass to upstream ``getaddrinfo()`` - :return: list of tuples containing (family, type, proto, canonname, sockaddr) - - .. seealso:: :func:`socket.getaddrinfo` - - """ - # Handle unicode hostnames - if isinstance(host, str): - try: - encoded_host: bytes | None = host.encode("ascii") - except UnicodeEncodeError: - import idna - - encoded_host = idna.encode(host, uts46=True) - else: - encoded_host = host - - gai_res = await get_async_backend().getaddrinfo( - encoded_host, port, family=family, type=type, proto=proto, flags=flags - ) - return [ - (family, type, proto, canonname, convert_ipv6_sockaddr(sockaddr)) - for family, type, proto, canonname, sockaddr in gai_res - # filter out IPv6 results when IPv6 is disabled - if not isinstance(sockaddr[0], int) - ] - - -def getnameinfo(sockaddr: IPSockAddrType, flags: int = 0) -> Awaitable[tuple[str, str]]: - """ - Look up the host name of an IP address. - - :param sockaddr: socket address (e.g. (ipaddress, port) for IPv4) - :param flags: flags to pass to upstream ``getnameinfo()`` - :return: a tuple of (host name, service name) - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - .. seealso:: :func:`socket.getnameinfo` - - """ - return get_async_backend().getnameinfo(sockaddr, flags) - - -@deprecated("This function is deprecated; use `wait_readable` instead") -def wait_socket_readable(sock: socket.socket) -> Awaitable[None]: - """ - .. deprecated:: 4.7.0 - Use :func:`wait_readable` instead. - - Wait until the given socket has data to be read. - - .. warning:: Only use this on raw sockets that have not been wrapped by any higher - level constructs like socket streams! - - :param sock: a socket object - :raises ~anyio.ClosedResourceError: if the socket was closed while waiting for the - socket to become readable - :raises ~anyio.BusyResourceError: if another task is already waiting for the socket - to become readable - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return get_async_backend().wait_readable(sock.fileno()) - - -@deprecated("This function is deprecated; use `wait_writable` instead") -def wait_socket_writable(sock: socket.socket) -> Awaitable[None]: - """ - .. deprecated:: 4.7.0 - Use :func:`wait_writable` instead. - - Wait until the given socket can be written to. - - This does **NOT** work on Windows when using the asyncio backend with a proactor - event loop (default on py3.8+). - - .. warning:: Only use this on raw sockets that have not been wrapped by any higher - level constructs like socket streams! - - :param sock: a socket object - :raises ~anyio.ClosedResourceError: if the socket was closed while waiting for the - socket to become writable - :raises ~anyio.BusyResourceError: if another task is already waiting for the socket - to become writable - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return get_async_backend().wait_writable(sock.fileno()) - - -def wait_readable(obj: FileDescriptorLike) -> Awaitable[None]: - """ - Wait until the given object has data to be read. - - On Unix systems, ``obj`` must either be an integer file descriptor, or else an - object with a ``.fileno()`` method which returns an integer file descriptor. Any - kind of file descriptor can be passed, though the exact semantics will depend on - your kernel. For example, this probably won't do anything useful for on-disk files. - - On Windows systems, ``obj`` must either be an integer ``SOCKET`` handle, or else an - object with a ``.fileno()`` method which returns an integer ``SOCKET`` handle. File - descriptors aren't supported, and neither are handles that refer to anything besides - a ``SOCKET``. - - On backends where this functionality is not natively provided (asyncio - ``ProactorEventLoop`` on Windows), it is provided using a separate selector thread - which is set to shut down when the interpreter shuts down. - - .. warning:: Don't use this on raw sockets that have been wrapped by any higher - level constructs like socket streams! - - :param obj: an object with a ``.fileno()`` method or an integer handle - :raises ~anyio.ClosedResourceError: if the object was closed while waiting for the - object to become readable - :raises ~anyio.BusyResourceError: if another task is already waiting for the object - to become readable - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return get_async_backend().wait_readable(obj) - - -def wait_writable(obj: FileDescriptorLike) -> Awaitable[None]: - """ - Wait until the given object can be written to. - - :param obj: an object with a ``.fileno()`` method or an integer handle - :raises ~anyio.ClosedResourceError: if the object was closed while waiting for the - object to become writable - :raises ~anyio.BusyResourceError: if another task is already waiting for the object - to become writable - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - .. seealso:: See the documentation of :func:`wait_readable` for the definition of - ``obj`` and notes on backend compatibility. - - .. warning:: Don't use this on raw sockets that have been wrapped by any higher - level constructs like socket streams! - - """ - return get_async_backend().wait_writable(obj) - - -def notify_closing(obj: FileDescriptorLike) -> None: - """ - Call this before closing a file descriptor (on Unix) or socket (on - Windows). This will cause any `wait_readable` or `wait_writable` - calls on the given object to immediately wake up and raise - `~anyio.ClosedResourceError`. - - This doesn't actually close the object – you still have to do that - yourself afterwards. Also, you want to be careful to make sure no - new tasks start waiting on the object in between when you call this - and when it's actually closed. So to close something properly, you - usually want to do these steps in order: - - 1. Explicitly mark the object as closed, so that any new attempts - to use it will abort before they start. - 2. Call `notify_closing` to wake up any already-existing users. - 3. Actually close the object. - - It's also possible to do them in a different order if that's more - convenient, *but only if* you make sure not to have any checkpoints in - between the steps. This way they all happen in a single atomic - step, so other tasks won't be able to tell what order they happened - in anyway. - - :param obj: an object with a ``.fileno()`` method or an integer handle - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - get_async_backend().notify_closing(obj) - - -# -# Private API -# - - -def convert_ipv6_sockaddr( - sockaddr: tuple[str, int, int, int] | tuple[str, int], -) -> tuple[str, int]: - """ - Convert a 4-tuple IPv6 socket address to a 2-tuple (address, port) format. - - If the scope ID is nonzero, it is added to the address, separated with ``%``. - Otherwise the flow id and scope id are simply cut off from the tuple. - Any other kinds of socket addresses are returned as-is. - - :param sockaddr: the result of :meth:`~socket.socket.getsockname` - :return: the converted socket address - - """ - # This is more complicated than it should be because of MyPy - if isinstance(sockaddr, tuple) and len(sockaddr) == 4: - host, port, flowinfo, scope_id = sockaddr - if scope_id: - # PyPy (as of v7.3.11) leaves the interface name in the result, so - # we discard it and only get the scope ID from the end - # (https://foss.heptapod.net/pypy/pypy/-/issues/3938) - host = host.split("%")[0] - - # Add scope_id to the address - return f"{host}%{scope_id}", port - else: - return host, port - else: - return sockaddr - - -async def setup_unix_local_socket( - path: None | str | bytes | PathLike[Any], - mode: int | None, - socktype: int, -) -> socket.socket: - """ - Create a UNIX local socket object, deleting the socket at the given path if it - exists. - - Not available on Windows. - - :param path: path of the socket - :param mode: permissions to set on the socket - :param socktype: socket.SOCK_STREAM or socket.SOCK_DGRAM - - """ - path_str: str | None - if path is not None: - path_str = os.fsdecode(path) - - # Linux abstract namespace sockets aren't backed by a concrete file so skip stat call - if not path_str.startswith("\0"): - # Copied from pathlib... - try: - stat_result = os.stat(path) - except OSError as e: - if e.errno not in ( - errno.ENOENT, - errno.ENOTDIR, - errno.EBADF, - errno.ELOOP, - ): - raise - else: - if stat.S_ISSOCK(stat_result.st_mode): - os.unlink(path) - else: - path_str = None - - raw_socket = socket.socket(socket.AF_UNIX, socktype) - raw_socket.setblocking(False) - - if path_str is not None: - try: - await to_thread.run_sync(raw_socket.bind, path_str, abandon_on_cancel=True) - if mode is not None: - await to_thread.run_sync(chmod, path_str, mode, abandon_on_cancel=True) - except BaseException: - raw_socket.close() - raise - - return raw_socket - - -@dataclass -class TCPConnectable(ByteStreamConnectable): - """ - Connects to a TCP server at the given host and port. - - :param host: host name or IP address of the server - :param port: TCP port number of the server - """ - - host: str | IPv4Address | IPv6Address - port: int - - def __post_init__(self) -> None: - if self.port < 1 or self.port > 65535: - raise ValueError("TCP port number out of range") - - @override - async def connect(self) -> SocketStream: - try: - return await connect_tcp(self.host, self.port) - except OSError as exc: - raise ConnectionFailed( - f"error connecting to {self.host}:{self.port}: {exc}" - ) from exc - - -@dataclass -class UNIXConnectable(ByteStreamConnectable): - """ - Connects to a UNIX domain socket at the given path. - - :param path: the file system path of the socket - """ - - path: str | bytes | PathLike[str] | PathLike[bytes] - - @override - async def connect(self) -> UNIXSocketStream: - try: - return await connect_unix(self.path) - except OSError as exc: - raise ConnectionFailed(f"error connecting to {self.path!r}: {exc}") from exc - - -def as_connectable( - remote: ByteStreamConnectable - | tuple[str | IPv4Address | IPv6Address, int] - | str - | bytes - | PathLike[str], - /, - *, - tls: bool = False, - ssl_context: ssl.SSLContext | None = None, - tls_hostname: str | None = None, - tls_standard_compatible: bool = True, -) -> ByteStreamConnectable: - """ - Return a byte stream connectable from the given object. - - If a bytestream connectable is given, it is returned unchanged. - If a tuple of (host, port) is given, a TCP connectable is returned. - If a string or bytes path is given, a UNIX connectable is returned. - - If ``tls=True``, the connectable will be wrapped in a - :class:`~.streams.tls.TLSConnectable`. - - :param remote: a connectable, a tuple of (host, port) or a path to a UNIX socket - :param tls: if ``True``, wrap the plaintext connectable in a - :class:`~.streams.tls.TLSConnectable`, using the provided TLS settings) - :param ssl_context: if ``tls=True``, the SSLContext object to use (if not provided, - a secure default will be created) - :param tls_hostname: if ``tls=True``, host name of the server to use for checking - the server certificate (defaults to the host portion of the address for TCP - connectables) - :param tls_standard_compatible: if ``False`` and ``tls=True``, makes the TLS stream - skip the closing handshake when closing the connection, so it won't raise an - exception if the server does the same - - """ - connectable: TCPConnectable | UNIXConnectable | TLSConnectable - if isinstance(remote, ByteStreamConnectable): - return remote - elif isinstance(remote, tuple) and len(remote) == 2: - connectable = TCPConnectable(*remote) - elif isinstance(remote, (str, bytes, PathLike)): - connectable = UNIXConnectable(remote) - else: - raise TypeError(f"cannot convert {remote!r} to a connectable") - - if tls: - if not tls_hostname and isinstance(connectable, TCPConnectable): - tls_hostname = str(connectable.host) - - connectable = TLSConnectable( - connectable, - ssl_context=ssl_context, - hostname=tls_hostname, - standard_compatible=tls_standard_compatible, - ) - - return connectable diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/_streams.py b/.venv/lib/python3.12/site-packages/anyio/_core/_streams.py deleted file mode 100644 index 2b9c7df..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_streams.py +++ /dev/null @@ -1,52 +0,0 @@ -from __future__ import annotations - -import math -from typing import TypeVar -from warnings import warn - -from ..streams.memory import ( - MemoryObjectReceiveStream, - MemoryObjectSendStream, - _MemoryObjectStreamState, -) - -T_Item = TypeVar("T_Item") - - -class create_memory_object_stream( - tuple[MemoryObjectSendStream[T_Item], MemoryObjectReceiveStream[T_Item]], -): - """ - Create a memory object stream. - - The stream's item type can be annotated like - :func:`create_memory_object_stream[T_Item]`. - - :param max_buffer_size: number of items held in the buffer until ``send()`` starts - blocking - :param item_type: old way of marking the streams with the right generic type for - static typing (does nothing on AnyIO 4) - - .. deprecated:: 4.0 - Use ``create_memory_object_stream[YourItemType](...)`` instead. - :return: a tuple of (send stream, receive stream) - - """ - - def __new__( # type: ignore[misc] - cls, max_buffer_size: float = 0, item_type: object = None - ) -> tuple[MemoryObjectSendStream[T_Item], MemoryObjectReceiveStream[T_Item]]: - if max_buffer_size != math.inf and not isinstance(max_buffer_size, int): - raise ValueError("max_buffer_size must be either an integer or math.inf") - if max_buffer_size < 0: - raise ValueError("max_buffer_size cannot be negative") - if item_type is not None: - warn( - "The item_type argument has been deprecated in AnyIO 4.0. " - "Use create_memory_object_stream[YourItemType](...) instead.", - DeprecationWarning, - stacklevel=2, - ) - - state = _MemoryObjectStreamState[T_Item](max_buffer_size) - return (MemoryObjectSendStream(state), MemoryObjectReceiveStream(state)) diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/_subprocesses.py b/.venv/lib/python3.12/site-packages/anyio/_core/_subprocesses.py deleted file mode 100644 index 9796f8b..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_subprocesses.py +++ /dev/null @@ -1,196 +0,0 @@ -from __future__ import annotations - -from collections.abc import AsyncIterable, Iterable, Mapping, Sequence -from io import BytesIO -from os import PathLike -from subprocess import PIPE, CalledProcessError, CompletedProcess -from typing import IO, Any, TypeAlias, cast - -from ..abc import Process -from ._eventloop import get_async_backend -from ._tasks import create_task_group - -StrOrBytesPath: TypeAlias = str | bytes | PathLike[str] | PathLike[bytes] - - -async def run_process( - command: StrOrBytesPath | Sequence[StrOrBytesPath], - *, - input: bytes | None = None, - stdin: int | IO[Any] | None = None, - stdout: int | IO[Any] | None = PIPE, - stderr: int | IO[Any] | None = PIPE, - check: bool = True, - cwd: StrOrBytesPath | None = None, - env: Mapping[str, str] | None = None, - startupinfo: Any = None, - creationflags: int = 0, - start_new_session: bool = False, - pass_fds: Sequence[int] = (), - user: str | int | None = None, - group: str | int | None = None, - extra_groups: Iterable[str | int] | None = None, - umask: int = -1, -) -> CompletedProcess[bytes]: - """ - Run an external command in a subprocess and wait until it completes. - - .. seealso:: :func:`subprocess.run` - - :param command: either a string to pass to the shell, or an iterable of strings - containing the executable name or path and its arguments - :param input: bytes passed to the standard input of the subprocess - :param stdin: one of :data:`subprocess.PIPE`, :data:`subprocess.DEVNULL`, - a file-like object, or `None`; ``input`` overrides this - :param stdout: one of :data:`subprocess.PIPE`, :data:`subprocess.DEVNULL`, - a file-like object, or `None` - :param stderr: one of :data:`subprocess.PIPE`, :data:`subprocess.DEVNULL`, - :data:`subprocess.STDOUT`, a file-like object, or `None` - :param check: if ``True``, raise :exc:`~subprocess.CalledProcessError` if the - process terminates with a return code other than 0 - :param cwd: If not ``None``, change the working directory to this before running the - command - :param env: if not ``None``, this mapping replaces the inherited environment - variables from the parent process - :param startupinfo: an instance of :class:`subprocess.STARTUPINFO` that can be used - to specify process startup parameters (Windows only) - :param creationflags: flags that can be used to control the creation of the - subprocess (see :class:`subprocess.Popen` for the specifics) - :param start_new_session: if ``true`` the setsid() system call will be made in the - child process prior to the execution of the subprocess. (POSIX only) - :param pass_fds: sequence of file descriptors to keep open between the parent and - child processes. (POSIX only) - :param user: effective user to run the process as (Python >= 3.9, POSIX only) - :param group: effective group to run the process as (Python >= 3.9, POSIX only) - :param extra_groups: supplementary groups to set in the subprocess (Python >= 3.9, - POSIX only) - :param umask: if not negative, this umask is applied in the child process before - running the given command (Python >= 3.9, POSIX only) - :return: an object representing the completed process - :raises ~subprocess.CalledProcessError: if ``check`` is ``True`` and the process - exits with a nonzero return code - - """ - - async def drain_stream(stream: AsyncIterable[bytes], index: int) -> None: - buffer = BytesIO() - async for chunk in stream: - buffer.write(chunk) - - stream_contents[index] = buffer.getvalue() - - if stdin is not None and input is not None: - raise ValueError("only one of stdin and input is allowed") - - async with await open_process( - command, - stdin=PIPE if input else stdin, - stdout=stdout, - stderr=stderr, - cwd=cwd, - env=env, - startupinfo=startupinfo, - creationflags=creationflags, - start_new_session=start_new_session, - pass_fds=pass_fds, - user=user, - group=group, - extra_groups=extra_groups, - umask=umask, - ) as process: - stream_contents: list[bytes | None] = [None, None] - async with create_task_group() as tg: - if process.stdout: - tg.start_soon(drain_stream, process.stdout, 0) - - if process.stderr: - tg.start_soon(drain_stream, process.stderr, 1) - - if process.stdin and input: - await process.stdin.send(input) - await process.stdin.aclose() - - await process.wait() - - output, errors = stream_contents - if check and process.returncode != 0: - raise CalledProcessError(cast(int, process.returncode), command, output, errors) - - return CompletedProcess(command, cast(int, process.returncode), output, errors) - - -async def open_process( - command: StrOrBytesPath | Sequence[StrOrBytesPath], - *, - stdin: int | IO[Any] | None = PIPE, - stdout: int | IO[Any] | None = PIPE, - stderr: int | IO[Any] | None = PIPE, - cwd: StrOrBytesPath | None = None, - env: Mapping[str, str] | None = None, - startupinfo: Any = None, - creationflags: int = 0, - start_new_session: bool = False, - pass_fds: Sequence[int] = (), - user: str | int | None = None, - group: str | int | None = None, - extra_groups: Iterable[str | int] | None = None, - umask: int = -1, -) -> Process: - """ - Start an external command in a subprocess. - - .. seealso:: :class:`subprocess.Popen` - - :param command: either a string to pass to the shell, or an iterable of strings - containing the executable name or path and its arguments - :param stdin: one of :data:`subprocess.PIPE`, :data:`subprocess.DEVNULL`, a - file-like object, or ``None`` - :param stdout: one of :data:`subprocess.PIPE`, :data:`subprocess.DEVNULL`, - a file-like object, or ``None`` - :param stderr: one of :data:`subprocess.PIPE`, :data:`subprocess.DEVNULL`, - :data:`subprocess.STDOUT`, a file-like object, or ``None`` - :param cwd: If not ``None``, the working directory is changed before executing - :param env: If env is not ``None``, it must be a mapping that defines the - environment variables for the new process - :param creationflags: flags that can be used to control the creation of the - subprocess (see :class:`subprocess.Popen` for the specifics) - :param startupinfo: an instance of :class:`subprocess.STARTUPINFO` that can be used - to specify process startup parameters (Windows only) - :param start_new_session: if ``true`` the setsid() system call will be made in the - child process prior to the execution of the subprocess. (POSIX only) - :param pass_fds: sequence of file descriptors to keep open between the parent and - child processes. (POSIX only) - :param user: effective user to run the process as (POSIX only) - :param group: effective group to run the process as (POSIX only) - :param extra_groups: supplementary groups to set in the subprocess (POSIX only) - :param umask: if not negative, this umask is applied in the child process before - running the given command (POSIX only) - :return: an asynchronous process object - - """ - kwargs: dict[str, Any] = {} - if user is not None: - kwargs["user"] = user - - if group is not None: - kwargs["group"] = group - - if extra_groups is not None: - kwargs["extra_groups"] = group - - if umask >= 0: - kwargs["umask"] = umask - - return await get_async_backend().open_process( - command, - stdin=stdin, - stdout=stdout, - stderr=stderr, - cwd=cwd, - env=env, - startupinfo=startupinfo, - creationflags=creationflags, - start_new_session=start_new_session, - pass_fds=pass_fds, - **kwargs, - ) diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/_synchronization.py b/.venv/lib/python3.12/site-packages/anyio/_core/_synchronization.py deleted file mode 100644 index 9c6f9a0..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_synchronization.py +++ /dev/null @@ -1,757 +0,0 @@ -from __future__ import annotations - -import math -from collections import deque -from collections.abc import Callable -from dataclasses import dataclass -from types import TracebackType -from typing import TypeVar - -from ..lowlevel import checkpoint_if_cancelled -from ._eventloop import get_async_backend -from ._exceptions import BusyResourceError, NoEventLoopError -from ._tasks import CancelScope -from ._testing import TaskInfo, get_current_task - -T = TypeVar("T") - - -@dataclass(frozen=True) -class EventStatistics: - """ - :ivar int tasks_waiting: number of tasks waiting on :meth:`~.Event.wait` - """ - - tasks_waiting: int - - -@dataclass(frozen=True) -class CapacityLimiterStatistics: - """ - :ivar int borrowed_tokens: number of tokens currently borrowed by tasks - :ivar float total_tokens: total number of available tokens - :ivar tuple borrowers: tasks or other objects currently holding tokens borrowed from - this limiter - :ivar int tasks_waiting: number of tasks waiting on - :meth:`~.CapacityLimiter.acquire` or - :meth:`~.CapacityLimiter.acquire_on_behalf_of` - """ - - borrowed_tokens: int - total_tokens: float - borrowers: tuple[object, ...] - tasks_waiting: int - - -@dataclass(frozen=True) -class LockStatistics: - """ - :ivar bool locked: flag indicating if this lock is locked or not - :ivar ~anyio.TaskInfo owner: task currently holding the lock (or ``None`` if the - lock is not held by any task) - :ivar int tasks_waiting: number of tasks waiting on :meth:`~.Lock.acquire` - """ - - locked: bool - owner: TaskInfo | None - tasks_waiting: int - - -@dataclass(frozen=True) -class ConditionStatistics: - """ - :ivar int tasks_waiting: number of tasks blocked on :meth:`~.Condition.wait` - :ivar ~anyio.LockStatistics lock_statistics: statistics of the underlying - :class:`~.Lock` - """ - - tasks_waiting: int - lock_statistics: LockStatistics - - -@dataclass(frozen=True) -class SemaphoreStatistics: - """ - :ivar int tasks_waiting: number of tasks waiting on :meth:`~.Semaphore.acquire` - - """ - - tasks_waiting: int - - -class Event: - def __new__(cls) -> Event: - try: - return get_async_backend().create_event() - except NoEventLoopError: - return EventAdapter() - - def set(self) -> None: - """Set the flag, notifying all listeners.""" - raise NotImplementedError - - def is_set(self) -> bool: - """Return ``True`` if the flag is set, ``False`` if not.""" - raise NotImplementedError - - async def wait(self) -> None: - """ - Wait until the flag has been set. - - If the flag has already been set when this method is called, it returns - immediately. - - """ - raise NotImplementedError - - def statistics(self) -> EventStatistics: - """Return statistics about the current state of this event.""" - raise NotImplementedError - - -class EventAdapter(Event): - _internal_event: Event | None = None - _is_set: bool = False - - def __new__(cls) -> EventAdapter: - return object.__new__(cls) - - @property - def _event(self) -> Event: - if self._internal_event is None: - self._internal_event = get_async_backend().create_event() - if self._is_set: - self._internal_event.set() - - return self._internal_event - - def set(self) -> None: - if self._internal_event is None: - self._is_set = True - else: - self._event.set() - - def is_set(self) -> bool: - if self._internal_event is None: - return self._is_set - - return self._internal_event.is_set() - - async def wait(self) -> None: - await self._event.wait() - - def statistics(self) -> EventStatistics: - if self._internal_event is None: - return EventStatistics(tasks_waiting=0) - - return self._internal_event.statistics() - - -class Lock: - def __new__(cls, *, fast_acquire: bool = False) -> Lock: - try: - return get_async_backend().create_lock(fast_acquire=fast_acquire) - except NoEventLoopError: - return LockAdapter(fast_acquire=fast_acquire) - - async def __aenter__(self) -> None: - await self.acquire() - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self.release() - - async def acquire(self) -> None: - """Acquire the lock.""" - raise NotImplementedError - - def acquire_nowait(self) -> None: - """ - Acquire the lock, without blocking. - - :raises ~anyio.WouldBlock: if the operation would block - - """ - raise NotImplementedError - - def release(self) -> None: - """Release the lock.""" - raise NotImplementedError - - def locked(self) -> bool: - """Return True if the lock is currently held.""" - raise NotImplementedError - - def statistics(self) -> LockStatistics: - """ - Return statistics about the current state of this lock. - - .. versionadded:: 3.0 - """ - raise NotImplementedError - - -class LockAdapter(Lock): - _internal_lock: Lock | None = None - - def __new__(cls, *, fast_acquire: bool = False) -> LockAdapter: - return object.__new__(cls) - - def __init__(self, *, fast_acquire: bool = False): - self._fast_acquire = fast_acquire - - @property - def _lock(self) -> Lock: - if self._internal_lock is None: - self._internal_lock = get_async_backend().create_lock( - fast_acquire=self._fast_acquire - ) - - return self._internal_lock - - async def __aenter__(self) -> None: - await self._lock.acquire() - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - if self._internal_lock is not None: - self._internal_lock.release() - - async def acquire(self) -> None: - """Acquire the lock.""" - await self._lock.acquire() - - def acquire_nowait(self) -> None: - """ - Acquire the lock, without blocking. - - :raises ~anyio.WouldBlock: if the operation would block - - """ - self._lock.acquire_nowait() - - def release(self) -> None: - """Release the lock.""" - self._lock.release() - - def locked(self) -> bool: - """Return True if the lock is currently held.""" - return self._lock.locked() - - def statistics(self) -> LockStatistics: - """ - Return statistics about the current state of this lock. - - .. versionadded:: 3.0 - - """ - if self._internal_lock is None: - return LockStatistics(False, None, 0) - - return self._internal_lock.statistics() - - -class Condition: - _owner_task: TaskInfo | None = None - - def __init__(self, lock: Lock | None = None): - self._lock = lock or Lock() - self._waiters: deque[Event] = deque() - - async def __aenter__(self) -> None: - await self.acquire() - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self.release() - - def _check_acquired(self) -> None: - if self._owner_task != get_current_task(): - raise RuntimeError("The current task is not holding the underlying lock") - - async def acquire(self) -> None: - """Acquire the underlying lock.""" - await self._lock.acquire() - self._owner_task = get_current_task() - - def acquire_nowait(self) -> None: - """ - Acquire the underlying lock, without blocking. - - :raises ~anyio.WouldBlock: if the operation would block - - """ - self._lock.acquire_nowait() - self._owner_task = get_current_task() - - def release(self) -> None: - """Release the underlying lock.""" - self._lock.release() - - def locked(self) -> bool: - """Return True if the lock is set.""" - return self._lock.locked() - - def notify(self, n: int = 1) -> None: - """Notify exactly n listeners.""" - self._check_acquired() - for _ in range(n): - try: - event = self._waiters.popleft() - except IndexError: - break - - event.set() - - def notify_all(self) -> None: - """Notify all the listeners.""" - self._check_acquired() - for event in self._waiters: - event.set() - - self._waiters.clear() - - async def wait(self) -> None: - """Wait for a notification.""" - await checkpoint_if_cancelled() - self._check_acquired() - event = Event() - self._waiters.append(event) - self.release() - try: - await event.wait() - except BaseException: - if not event.is_set(): - self._waiters.remove(event) - elif self._waiters: - # This task was notified by could not act on it, so pass - # it on to the next task - self._waiters.popleft().set() - - raise - finally: - with CancelScope(shield=True): - await self.acquire() - - async def wait_for(self, predicate: Callable[[], T]) -> T: - """ - Wait until a predicate becomes true. - - :param predicate: a callable that returns a truthy value when the condition is - met - :return: the result of the predicate - - .. versionadded:: 4.11.0 - - """ - while not (result := predicate()): - await self.wait() - - return result - - def statistics(self) -> ConditionStatistics: - """ - Return statistics about the current state of this condition. - - .. versionadded:: 3.0 - """ - return ConditionStatistics(len(self._waiters), self._lock.statistics()) - - -class Semaphore: - def __new__( - cls, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ) -> Semaphore: - try: - return get_async_backend().create_semaphore( - initial_value, max_value=max_value, fast_acquire=fast_acquire - ) - except NoEventLoopError: - return SemaphoreAdapter(initial_value, max_value=max_value) - - def __init__( - self, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ): - if not isinstance(initial_value, int): - raise TypeError("initial_value must be an integer") - if initial_value < 0: - raise ValueError("initial_value must be >= 0") - if max_value is not None: - if not isinstance(max_value, int): - raise TypeError("max_value must be an integer or None") - if max_value < initial_value: - raise ValueError( - "max_value must be equal to or higher than initial_value" - ) - - self._fast_acquire = fast_acquire - - async def __aenter__(self) -> Semaphore: - await self.acquire() - return self - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self.release() - - async def acquire(self) -> None: - """Decrement the semaphore value, blocking if necessary.""" - raise NotImplementedError - - def acquire_nowait(self) -> None: - """ - Acquire the underlying lock, without blocking. - - :raises ~anyio.WouldBlock: if the operation would block - - """ - raise NotImplementedError - - def release(self) -> None: - """Increment the semaphore value.""" - raise NotImplementedError - - @property - def value(self) -> int: - """The current value of the semaphore.""" - raise NotImplementedError - - @property - def max_value(self) -> int | None: - """The maximum value of the semaphore.""" - raise NotImplementedError - - def statistics(self) -> SemaphoreStatistics: - """ - Return statistics about the current state of this semaphore. - - .. versionadded:: 3.0 - """ - raise NotImplementedError - - -class SemaphoreAdapter(Semaphore): - _internal_semaphore: Semaphore | None = None - - def __new__( - cls, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ) -> SemaphoreAdapter: - return object.__new__(cls) - - def __init__( - self, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ) -> None: - super().__init__(initial_value, max_value=max_value, fast_acquire=fast_acquire) - self._initial_value = initial_value - self._max_value = max_value - - @property - def _semaphore(self) -> Semaphore: - if self._internal_semaphore is None: - self._internal_semaphore = get_async_backend().create_semaphore( - self._initial_value, max_value=self._max_value - ) - - return self._internal_semaphore - - async def acquire(self) -> None: - await self._semaphore.acquire() - - def acquire_nowait(self) -> None: - self._semaphore.acquire_nowait() - - def release(self) -> None: - self._semaphore.release() - - @property - def value(self) -> int: - if self._internal_semaphore is None: - return self._initial_value - - return self._semaphore.value - - @property - def max_value(self) -> int | None: - return self._max_value - - def statistics(self) -> SemaphoreStatistics: - if self._internal_semaphore is None: - return SemaphoreStatistics(tasks_waiting=0) - - return self._semaphore.statistics() - - -class CapacityLimiter: - def __new__(cls, total_tokens: float) -> CapacityLimiter: - try: - return get_async_backend().create_capacity_limiter(total_tokens) - except NoEventLoopError: - return CapacityLimiterAdapter(total_tokens) - - async def __aenter__(self) -> None: - raise NotImplementedError - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - raise NotImplementedError - - @property - def total_tokens(self) -> float: - """ - The total number of tokens available for borrowing. - - This is a read-write property. If the total number of tokens is increased, the - proportionate number of tasks waiting on this limiter will be granted their - tokens. - - .. versionchanged:: 3.0 - The property is now writable. - .. versionchanged:: 4.12 - The value can now be set to 0. - - """ - raise NotImplementedError - - @total_tokens.setter - def total_tokens(self, value: float) -> None: - raise NotImplementedError - - @property - def borrowed_tokens(self) -> int: - """The number of tokens that have currently been borrowed.""" - raise NotImplementedError - - @property - def available_tokens(self) -> float: - """The number of tokens currently available to be borrowed""" - raise NotImplementedError - - def acquire_nowait(self) -> None: - """ - Acquire a token for the current task without waiting for one to become - available. - - :raises ~anyio.WouldBlock: if there are no tokens available for borrowing - - """ - raise NotImplementedError - - def acquire_on_behalf_of_nowait(self, borrower: object) -> None: - """ - Acquire a token without waiting for one to become available. - - :param borrower: the entity borrowing a token - :raises ~anyio.WouldBlock: if there are no tokens available for borrowing - - """ - raise NotImplementedError - - async def acquire(self) -> None: - """ - Acquire a token for the current task, waiting if necessary for one to become - available. - - """ - raise NotImplementedError - - async def acquire_on_behalf_of(self, borrower: object) -> None: - """ - Acquire a token, waiting if necessary for one to become available. - - :param borrower: the entity borrowing a token - - """ - raise NotImplementedError - - def release(self) -> None: - """ - Release the token held by the current task. - - :raises RuntimeError: if the current task has not borrowed a token from this - limiter. - - """ - raise NotImplementedError - - def release_on_behalf_of(self, borrower: object) -> None: - """ - Release the token held by the given borrower. - - :raises RuntimeError: if the borrower has not borrowed a token from this - limiter. - - """ - raise NotImplementedError - - def statistics(self) -> CapacityLimiterStatistics: - """ - Return statistics about the current state of this limiter. - - .. versionadded:: 3.0 - - """ - raise NotImplementedError - - -class CapacityLimiterAdapter(CapacityLimiter): - _internal_limiter: CapacityLimiter | None = None - - def __new__(cls, total_tokens: float) -> CapacityLimiterAdapter: - return object.__new__(cls) - - def __init__(self, total_tokens: float) -> None: - self.total_tokens = total_tokens - - @property - def _limiter(self) -> CapacityLimiter: - if self._internal_limiter is None: - self._internal_limiter = get_async_backend().create_capacity_limiter( - self._total_tokens - ) - - return self._internal_limiter - - async def __aenter__(self) -> None: - await self._limiter.__aenter__() - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - return await self._limiter.__aexit__(exc_type, exc_val, exc_tb) - - @property - def total_tokens(self) -> float: - if self._internal_limiter is None: - return self._total_tokens - - return self._internal_limiter.total_tokens - - @total_tokens.setter - def total_tokens(self, value: float) -> None: - if not isinstance(value, int) and value is not math.inf: - raise TypeError("total_tokens must be an int or math.inf") - elif value < 1: - raise ValueError("total_tokens must be >= 1") - - if self._internal_limiter is None: - self._total_tokens = value - return - - self._limiter.total_tokens = value - - @property - def borrowed_tokens(self) -> int: - if self._internal_limiter is None: - return 0 - - return self._internal_limiter.borrowed_tokens - - @property - def available_tokens(self) -> float: - if self._internal_limiter is None: - return self._total_tokens - - return self._internal_limiter.available_tokens - - def acquire_nowait(self) -> None: - self._limiter.acquire_nowait() - - def acquire_on_behalf_of_nowait(self, borrower: object) -> None: - self._limiter.acquire_on_behalf_of_nowait(borrower) - - async def acquire(self) -> None: - await self._limiter.acquire() - - async def acquire_on_behalf_of(self, borrower: object) -> None: - await self._limiter.acquire_on_behalf_of(borrower) - - def release(self) -> None: - self._limiter.release() - - def release_on_behalf_of(self, borrower: object) -> None: - self._limiter.release_on_behalf_of(borrower) - - def statistics(self) -> CapacityLimiterStatistics: - if self._internal_limiter is None: - return CapacityLimiterStatistics( - borrowed_tokens=0, - total_tokens=self.total_tokens, - borrowers=(), - tasks_waiting=0, - ) - - return self._internal_limiter.statistics() - - -class ResourceGuard: - """ - A context manager for ensuring that a resource is only used by a single task at a - time. - - Entering this context manager while the previous has not exited it yet will trigger - :exc:`BusyResourceError`. - - :param action: the action to guard against (visible in the :exc:`BusyResourceError` - when triggered, e.g. "Another task is already {action} this resource") - - .. versionadded:: 4.1 - """ - - __slots__ = "action", "_guarded" - - def __init__(self, action: str = "using"): - self.action: str = action - self._guarded = False - - def __enter__(self) -> None: - if self._guarded: - raise BusyResourceError(self.action) - - self._guarded = True - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self._guarded = False diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/_tasks.py b/.venv/lib/python3.12/site-packages/anyio/_core/_tasks.py deleted file mode 100644 index 0688bfe..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_tasks.py +++ /dev/null @@ -1,173 +0,0 @@ -from __future__ import annotations - -import math -from collections.abc import Generator -from contextlib import contextmanager -from types import TracebackType - -from ..abc._tasks import TaskGroup, TaskStatus -from ._eventloop import get_async_backend - - -class _IgnoredTaskStatus(TaskStatus[object]): - def started(self, value: object = None) -> None: - pass - - -TASK_STATUS_IGNORED = _IgnoredTaskStatus() - - -class CancelScope: - """ - Wraps a unit of work that can be made separately cancellable. - - :param deadline: The time (clock value) when this scope is cancelled automatically - :param shield: ``True`` to shield the cancel scope from external cancellation - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - """ - - def __new__( - cls, *, deadline: float = math.inf, shield: bool = False - ) -> CancelScope: - return get_async_backend().create_cancel_scope(shield=shield, deadline=deadline) - - def cancel(self, reason: str | None = None) -> None: - """ - Cancel this scope immediately. - - :param reason: a message describing the reason for the cancellation - - """ - raise NotImplementedError - - @property - def deadline(self) -> float: - """ - The time (clock value) when this scope is cancelled automatically. - - Will be ``float('inf')`` if no timeout has been set. - - """ - raise NotImplementedError - - @deadline.setter - def deadline(self, value: float) -> None: - raise NotImplementedError - - @property - def cancel_called(self) -> bool: - """``True`` if :meth:`cancel` has been called.""" - raise NotImplementedError - - @property - def cancelled_caught(self) -> bool: - """ - ``True`` if this scope suppressed a cancellation exception it itself raised. - - This is typically used to check if any work was interrupted, or to see if the - scope was cancelled due to its deadline being reached. The value will, however, - only be ``True`` if the cancellation was triggered by the scope itself (and not - an outer scope). - - """ - raise NotImplementedError - - @property - def shield(self) -> bool: - """ - ``True`` if this scope is shielded from external cancellation. - - While a scope is shielded, it will not receive cancellations from outside. - - """ - raise NotImplementedError - - @shield.setter - def shield(self, value: bool) -> None: - raise NotImplementedError - - def __enter__(self) -> CancelScope: - raise NotImplementedError - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> bool: - raise NotImplementedError - - -@contextmanager -def fail_after( - delay: float | None, shield: bool = False -) -> Generator[CancelScope, None, None]: - """ - Create a context manager which raises a :class:`TimeoutError` if does not finish in - time. - - :param delay: maximum allowed time (in seconds) before raising the exception, or - ``None`` to disable the timeout - :param shield: ``True`` to shield the cancel scope from external cancellation - :return: a context manager that yields a cancel scope - :rtype: :class:`~typing.ContextManager`\\[:class:`~anyio.CancelScope`\\] - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - current_time = get_async_backend().current_time - deadline = (current_time() + delay) if delay is not None else math.inf - with get_async_backend().create_cancel_scope( - deadline=deadline, shield=shield - ) as cancel_scope: - yield cancel_scope - - if cancel_scope.cancelled_caught and current_time() >= cancel_scope.deadline: - raise TimeoutError - - -def move_on_after(delay: float | None, shield: bool = False) -> CancelScope: - """ - Create a cancel scope with a deadline that expires after the given delay. - - :param delay: maximum allowed time (in seconds) before exiting the context block, or - ``None`` to disable the timeout - :param shield: ``True`` to shield the cancel scope from external cancellation - :return: a cancel scope - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - deadline = ( - (get_async_backend().current_time() + delay) if delay is not None else math.inf - ) - return get_async_backend().create_cancel_scope(deadline=deadline, shield=shield) - - -def current_effective_deadline() -> float: - """ - Return the nearest deadline among all the cancel scopes effective for the current - task. - - :return: a clock value from the event loop's internal clock (or ``float('inf')`` if - there is no deadline in effect, or ``float('-inf')`` if the current scope has - been cancelled) - :rtype: float - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return get_async_backend().current_effective_deadline() - - -def create_task_group() -> TaskGroup: - """ - Create a task group. - - :return: a task group - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return get_async_backend().create_task_group() diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/_tempfile.py b/.venv/lib/python3.12/site-packages/anyio/_core/_tempfile.py deleted file mode 100644 index 75a09f7..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_tempfile.py +++ /dev/null @@ -1,613 +0,0 @@ -from __future__ import annotations - -import os -import sys -import tempfile -from collections.abc import Iterable -from io import BytesIO, TextIOWrapper -from types import TracebackType -from typing import ( - TYPE_CHECKING, - Any, - AnyStr, - Generic, - overload, -) - -from .. import to_thread -from .._core._fileio import AsyncFile -from ..lowlevel import checkpoint_if_cancelled - -if TYPE_CHECKING: - from _typeshed import OpenBinaryMode, OpenTextMode, ReadableBuffer, WriteableBuffer - - -class TemporaryFile(Generic[AnyStr]): - """ - An asynchronous temporary file that is automatically created and cleaned up. - - This class provides an asynchronous context manager interface to a temporary file. - The file is created using Python's standard `tempfile.TemporaryFile` function in a - background thread, and is wrapped as an asynchronous file using `AsyncFile`. - - :param mode: The mode in which the file is opened. Defaults to "w+b". - :param buffering: The buffering policy (-1 means the default buffering). - :param encoding: The encoding used to decode or encode the file. Only applicable in - text mode. - :param newline: Controls how universal newlines mode works (only applicable in text - mode). - :param suffix: The suffix for the temporary file name. - :param prefix: The prefix for the temporary file name. - :param dir: The directory in which the temporary file is created. - :param errors: The error handling scheme used for encoding/decoding errors. - """ - - _async_file: AsyncFile[AnyStr] - - @overload - def __init__( - self: TemporaryFile[bytes], - mode: OpenBinaryMode = ..., - buffering: int = ..., - encoding: str | None = ..., - newline: str | None = ..., - suffix: str | None = ..., - prefix: str | None = ..., - dir: str | None = ..., - *, - errors: str | None = ..., - ): ... - @overload - def __init__( - self: TemporaryFile[str], - mode: OpenTextMode, - buffering: int = ..., - encoding: str | None = ..., - newline: str | None = ..., - suffix: str | None = ..., - prefix: str | None = ..., - dir: str | None = ..., - *, - errors: str | None = ..., - ): ... - - def __init__( - self, - mode: OpenTextMode | OpenBinaryMode = "w+b", - buffering: int = -1, - encoding: str | None = None, - newline: str | None = None, - suffix: str | None = None, - prefix: str | None = None, - dir: str | None = None, - *, - errors: str | None = None, - ) -> None: - self.mode = mode - self.buffering = buffering - self.encoding = encoding - self.newline = newline - self.suffix: str | None = suffix - self.prefix: str | None = prefix - self.dir: str | None = dir - self.errors = errors - - async def __aenter__(self) -> AsyncFile[AnyStr]: - fp = await to_thread.run_sync( - lambda: tempfile.TemporaryFile( - self.mode, - self.buffering, - self.encoding, - self.newline, - self.suffix, - self.prefix, - self.dir, - errors=self.errors, - ) - ) - self._async_file = AsyncFile(fp) - return self._async_file - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_value: BaseException | None, - traceback: TracebackType | None, - ) -> None: - await self._async_file.aclose() - - -class NamedTemporaryFile(Generic[AnyStr]): - """ - An asynchronous named temporary file that is automatically created and cleaned up. - - This class provides an asynchronous context manager for a temporary file with a - visible name in the file system. It uses Python's standard - :func:`~tempfile.NamedTemporaryFile` function and wraps the file object with - :class:`AsyncFile` for asynchronous operations. - - :param mode: The mode in which the file is opened. Defaults to "w+b". - :param buffering: The buffering policy (-1 means the default buffering). - :param encoding: The encoding used to decode or encode the file. Only applicable in - text mode. - :param newline: Controls how universal newlines mode works (only applicable in text - mode). - :param suffix: The suffix for the temporary file name. - :param prefix: The prefix for the temporary file name. - :param dir: The directory in which the temporary file is created. - :param delete: Whether to delete the file when it is closed. - :param errors: The error handling scheme used for encoding/decoding errors. - :param delete_on_close: (Python 3.12+) Whether to delete the file on close. - """ - - _async_file: AsyncFile[AnyStr] - - @overload - def __init__( - self: NamedTemporaryFile[bytes], - mode: OpenBinaryMode = ..., - buffering: int = ..., - encoding: str | None = ..., - newline: str | None = ..., - suffix: str | None = ..., - prefix: str | None = ..., - dir: str | None = ..., - delete: bool = ..., - *, - errors: str | None = ..., - delete_on_close: bool = ..., - ): ... - @overload - def __init__( - self: NamedTemporaryFile[str], - mode: OpenTextMode, - buffering: int = ..., - encoding: str | None = ..., - newline: str | None = ..., - suffix: str | None = ..., - prefix: str | None = ..., - dir: str | None = ..., - delete: bool = ..., - *, - errors: str | None = ..., - delete_on_close: bool = ..., - ): ... - - def __init__( - self, - mode: OpenBinaryMode | OpenTextMode = "w+b", - buffering: int = -1, - encoding: str | None = None, - newline: str | None = None, - suffix: str | None = None, - prefix: str | None = None, - dir: str | None = None, - delete: bool = True, - *, - errors: str | None = None, - delete_on_close: bool = True, - ) -> None: - self._params: dict[str, Any] = { - "mode": mode, - "buffering": buffering, - "encoding": encoding, - "newline": newline, - "suffix": suffix, - "prefix": prefix, - "dir": dir, - "delete": delete, - "errors": errors, - } - if sys.version_info >= (3, 12): - self._params["delete_on_close"] = delete_on_close - - async def __aenter__(self) -> AsyncFile[AnyStr]: - fp = await to_thread.run_sync( - lambda: tempfile.NamedTemporaryFile(**self._params) - ) - self._async_file = AsyncFile(fp) - return self._async_file - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_value: BaseException | None, - traceback: TracebackType | None, - ) -> None: - await self._async_file.aclose() - - -class SpooledTemporaryFile(AsyncFile[AnyStr]): - """ - An asynchronous spooled temporary file that starts in memory and is spooled to disk. - - This class provides an asynchronous interface to a spooled temporary file, much like - Python's standard :class:`~tempfile.SpooledTemporaryFile`. It supports asynchronous - write operations and provides a method to force a rollover to disk. - - :param max_size: Maximum size in bytes before the file is rolled over to disk. - :param mode: The mode in which the file is opened. Defaults to "w+b". - :param buffering: The buffering policy (-1 means the default buffering). - :param encoding: The encoding used to decode or encode the file (text mode only). - :param newline: Controls how universal newlines mode works (text mode only). - :param suffix: The suffix for the temporary file name. - :param prefix: The prefix for the temporary file name. - :param dir: The directory in which the temporary file is created. - :param errors: The error handling scheme used for encoding/decoding errors. - """ - - _rolled: bool = False - - @overload - def __init__( - self: SpooledTemporaryFile[bytes], - max_size: int = ..., - mode: OpenBinaryMode = ..., - buffering: int = ..., - encoding: str | None = ..., - newline: str | None = ..., - suffix: str | None = ..., - prefix: str | None = ..., - dir: str | None = ..., - *, - errors: str | None = ..., - ): ... - @overload - def __init__( - self: SpooledTemporaryFile[str], - max_size: int = ..., - mode: OpenTextMode = ..., - buffering: int = ..., - encoding: str | None = ..., - newline: str | None = ..., - suffix: str | None = ..., - prefix: str | None = ..., - dir: str | None = ..., - *, - errors: str | None = ..., - ): ... - - def __init__( - self, - max_size: int = 0, - mode: OpenBinaryMode | OpenTextMode = "w+b", - buffering: int = -1, - encoding: str | None = None, - newline: str | None = None, - suffix: str | None = None, - prefix: str | None = None, - dir: str | None = None, - *, - errors: str | None = None, - ) -> None: - self._tempfile_params: dict[str, Any] = { - "mode": mode, - "buffering": buffering, - "encoding": encoding, - "newline": newline, - "suffix": suffix, - "prefix": prefix, - "dir": dir, - "errors": errors, - } - self._max_size = max_size - if "b" in mode: - super().__init__(BytesIO()) # type: ignore[arg-type] - else: - super().__init__( - TextIOWrapper( # type: ignore[arg-type] - BytesIO(), - encoding=encoding, - errors=errors, - newline=newline, - write_through=True, - ) - ) - - async def aclose(self) -> None: - if not self._rolled: - self._fp.close() - return - - await super().aclose() - - async def _check(self) -> None: - if self._rolled or self._fp.tell() <= self._max_size: - return - - await self.rollover() - - async def rollover(self) -> None: - if self._rolled: - return - - self._rolled = True - buffer = self._fp - buffer.seek(0) - self._fp = await to_thread.run_sync( - lambda: tempfile.TemporaryFile(**self._tempfile_params) - ) - await self.write(buffer.read()) - buffer.close() - - @property - def closed(self) -> bool: - return self._fp.closed - - async def read(self, size: int = -1) -> AnyStr: - if not self._rolled: - await checkpoint_if_cancelled() - return self._fp.read(size) - - return await super().read(size) # type: ignore[return-value] - - async def read1(self: SpooledTemporaryFile[bytes], size: int = -1) -> bytes: - if not self._rolled: - await checkpoint_if_cancelled() - return self._fp.read1(size) - - return await super().read1(size) - - async def readline(self) -> AnyStr: - if not self._rolled: - await checkpoint_if_cancelled() - return self._fp.readline() - - return await super().readline() # type: ignore[return-value] - - async def readlines(self) -> list[AnyStr]: - if not self._rolled: - await checkpoint_if_cancelled() - return self._fp.readlines() - - return await super().readlines() # type: ignore[return-value] - - async def readinto(self: SpooledTemporaryFile[bytes], b: WriteableBuffer) -> int: - if not self._rolled: - await checkpoint_if_cancelled() - self._fp.readinto(b) - - return await super().readinto(b) - - async def readinto1(self: SpooledTemporaryFile[bytes], b: WriteableBuffer) -> int: - if not self._rolled: - await checkpoint_if_cancelled() - self._fp.readinto(b) - - return await super().readinto1(b) - - async def seek(self, offset: int, whence: int | None = os.SEEK_SET) -> int: - if not self._rolled: - await checkpoint_if_cancelled() - return self._fp.seek(offset, whence) - - return await super().seek(offset, whence) - - async def tell(self) -> int: - if not self._rolled: - await checkpoint_if_cancelled() - return self._fp.tell() - - return await super().tell() - - async def truncate(self, size: int | None = None) -> int: - if not self._rolled: - await checkpoint_if_cancelled() - return self._fp.truncate(size) - - return await super().truncate(size) - - @overload - async def write(self: SpooledTemporaryFile[bytes], b: ReadableBuffer) -> int: ... - @overload - async def write(self: SpooledTemporaryFile[str], b: str) -> int: ... - - async def write(self, b: ReadableBuffer | str) -> int: - """ - Asynchronously write data to the spooled temporary file. - - If the file has not yet been rolled over, the data is written synchronously, - and a rollover is triggered if the size exceeds the maximum size. - - :param s: The data to write. - :return: The number of bytes written. - :raises RuntimeError: If the underlying file is not initialized. - - """ - if not self._rolled: - await checkpoint_if_cancelled() - result = self._fp.write(b) - await self._check() - return result - - return await super().write(b) # type: ignore[misc] - - @overload - async def writelines( - self: SpooledTemporaryFile[bytes], lines: Iterable[ReadableBuffer] - ) -> None: ... - @overload - async def writelines( - self: SpooledTemporaryFile[str], lines: Iterable[str] - ) -> None: ... - - async def writelines(self, lines: Iterable[str] | Iterable[ReadableBuffer]) -> None: - """ - Asynchronously write a list of lines to the spooled temporary file. - - If the file has not yet been rolled over, the lines are written synchronously, - and a rollover is triggered if the size exceeds the maximum size. - - :param lines: An iterable of lines to write. - :raises RuntimeError: If the underlying file is not initialized. - - """ - if not self._rolled: - await checkpoint_if_cancelled() - result = self._fp.writelines(lines) - await self._check() - return result - - return await super().writelines(lines) # type: ignore[misc] - - -class TemporaryDirectory(Generic[AnyStr]): - """ - An asynchronous temporary directory that is created and cleaned up automatically. - - This class provides an asynchronous context manager for creating a temporary - directory. It wraps Python's standard :class:`~tempfile.TemporaryDirectory` to - perform directory creation and cleanup operations in a background thread. - - :param suffix: Suffix to be added to the temporary directory name. - :param prefix: Prefix to be added to the temporary directory name. - :param dir: The parent directory where the temporary directory is created. - :param ignore_cleanup_errors: Whether to ignore errors during cleanup - :param delete: Whether to delete the directory upon closing (Python 3.12+). - """ - - def __init__( - self, - suffix: AnyStr | None = None, - prefix: AnyStr | None = None, - dir: AnyStr | None = None, - *, - ignore_cleanup_errors: bool = False, - delete: bool = True, - ) -> None: - self.suffix: AnyStr | None = suffix - self.prefix: AnyStr | None = prefix - self.dir: AnyStr | None = dir - self.ignore_cleanup_errors = ignore_cleanup_errors - self.delete = delete - - self._tempdir: tempfile.TemporaryDirectory | None = None - - async def __aenter__(self) -> str: - params: dict[str, Any] = { - "suffix": self.suffix, - "prefix": self.prefix, - "dir": self.dir, - "ignore_cleanup_errors": self.ignore_cleanup_errors, - } - if sys.version_info >= (3, 12): - params["delete"] = self.delete - - self._tempdir = await to_thread.run_sync( - lambda: tempfile.TemporaryDirectory(**params) - ) - return await to_thread.run_sync(self._tempdir.__enter__) - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_value: BaseException | None, - traceback: TracebackType | None, - ) -> None: - if self._tempdir is not None: - await to_thread.run_sync( - self._tempdir.__exit__, exc_type, exc_value, traceback - ) - - async def cleanup(self) -> None: - if self._tempdir is not None: - await to_thread.run_sync(self._tempdir.cleanup) - - -@overload -async def mkstemp( - suffix: str | None = None, - prefix: str | None = None, - dir: str | None = None, - text: bool = False, -) -> tuple[int, str]: ... - - -@overload -async def mkstemp( - suffix: bytes | None = None, - prefix: bytes | None = None, - dir: bytes | None = None, - text: bool = False, -) -> tuple[int, bytes]: ... - - -async def mkstemp( - suffix: AnyStr | None = None, - prefix: AnyStr | None = None, - dir: AnyStr | None = None, - text: bool = False, -) -> tuple[int, str | bytes]: - """ - Asynchronously create a temporary file and return an OS-level handle and the file - name. - - This function wraps `tempfile.mkstemp` and executes it in a background thread. - - :param suffix: Suffix to be added to the file name. - :param prefix: Prefix to be added to the file name. - :param dir: Directory in which the temporary file is created. - :param text: Whether the file is opened in text mode. - :return: A tuple containing the file descriptor and the file name. - - """ - return await to_thread.run_sync(tempfile.mkstemp, suffix, prefix, dir, text) - - -@overload -async def mkdtemp( - suffix: str | None = None, - prefix: str | None = None, - dir: str | None = None, -) -> str: ... - - -@overload -async def mkdtemp( - suffix: bytes | None = None, - prefix: bytes | None = None, - dir: bytes | None = None, -) -> bytes: ... - - -async def mkdtemp( - suffix: AnyStr | None = None, - prefix: AnyStr | None = None, - dir: AnyStr | None = None, -) -> str | bytes: - """ - Asynchronously create a temporary directory and return its path. - - This function wraps `tempfile.mkdtemp` and executes it in a background thread. - - :param suffix: Suffix to be added to the directory name. - :param prefix: Prefix to be added to the directory name. - :param dir: Parent directory where the temporary directory is created. - :return: The path of the created temporary directory. - - """ - return await to_thread.run_sync(tempfile.mkdtemp, suffix, prefix, dir) - - -async def gettempdir() -> str: - """ - Asynchronously return the name of the directory used for temporary files. - - This function wraps `tempfile.gettempdir` and executes it in a background thread. - - :return: The path of the temporary directory as a string. - - """ - return await to_thread.run_sync(tempfile.gettempdir) - - -async def gettempdirb() -> bytes: - """ - Asynchronously return the name of the directory used for temporary files in bytes. - - This function wraps `tempfile.gettempdirb` and executes it in a background thread. - - :return: The path of the temporary directory as bytes. - - """ - return await to_thread.run_sync(tempfile.gettempdirb) diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/_testing.py b/.venv/lib/python3.12/site-packages/anyio/_core/_testing.py deleted file mode 100644 index 369e65c..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_testing.py +++ /dev/null @@ -1,82 +0,0 @@ -from __future__ import annotations - -from collections.abc import Awaitable, Generator -from typing import Any, cast - -from ._eventloop import get_async_backend - - -class TaskInfo: - """ - Represents an asynchronous task. - - :ivar int id: the unique identifier of the task - :ivar parent_id: the identifier of the parent task, if any - :vartype parent_id: Optional[int] - :ivar str name: the description of the task (if any) - :ivar ~collections.abc.Coroutine coro: the coroutine object of the task - """ - - __slots__ = "_name", "id", "parent_id", "name", "coro" - - def __init__( - self, - id: int, - parent_id: int | None, - name: str | None, - coro: Generator[Any, Any, Any] | Awaitable[Any], - ): - func = get_current_task - self._name = f"{func.__module__}.{func.__qualname__}" - self.id: int = id - self.parent_id: int | None = parent_id - self.name: str | None = name - self.coro: Generator[Any, Any, Any] | Awaitable[Any] = coro - - def __eq__(self, other: object) -> bool: - if isinstance(other, TaskInfo): - return self.id == other.id - - return NotImplemented - - def __hash__(self) -> int: - return hash(self.id) - - def __repr__(self) -> str: - return f"{self.__class__.__name__}(id={self.id!r}, name={self.name!r})" - - def has_pending_cancellation(self) -> bool: - """ - Return ``True`` if the task has a cancellation pending, ``False`` otherwise. - - """ - return False - - -def get_current_task() -> TaskInfo: - """ - Return the current task. - - :return: a representation of the current task - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return get_async_backend().get_current_task() - - -def get_running_tasks() -> list[TaskInfo]: - """ - Return a list of running tasks in the current event loop. - - :return: a list of task info objects - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return cast("list[TaskInfo]", get_async_backend().get_running_tasks()) - - -async def wait_all_tasks_blocked() -> None: - """Wait until all other tasks are waiting for something.""" - await get_async_backend().wait_all_tasks_blocked() diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/_typedattr.py b/.venv/lib/python3.12/site-packages/anyio/_core/_typedattr.py deleted file mode 100644 index f358a44..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_typedattr.py +++ /dev/null @@ -1,81 +0,0 @@ -from __future__ import annotations - -from collections.abc import Callable, Mapping -from typing import Any, TypeVar, final, overload - -from ._exceptions import TypedAttributeLookupError - -T_Attr = TypeVar("T_Attr") -T_Default = TypeVar("T_Default") -undefined = object() - - -def typed_attribute() -> Any: - """Return a unique object, used to mark typed attributes.""" - return object() - - -class TypedAttributeSet: - """ - Superclass for typed attribute collections. - - Checks that every public attribute of every subclass has a type annotation. - """ - - def __init_subclass__(cls) -> None: - annotations: dict[str, Any] = getattr(cls, "__annotations__", {}) - for attrname in dir(cls): - if not attrname.startswith("_") and attrname not in annotations: - raise TypeError( - f"Attribute {attrname!r} is missing its type annotation" - ) - - super().__init_subclass__() - - -class TypedAttributeProvider: - """Base class for classes that wish to provide typed extra attributes.""" - - @property - def extra_attributes(self) -> Mapping[T_Attr, Callable[[], T_Attr]]: - """ - A mapping of the extra attributes to callables that return the corresponding - values. - - If the provider wraps another provider, the attributes from that wrapper should - also be included in the returned mapping (but the wrapper may override the - callables from the wrapped instance). - - """ - return {} - - @overload - def extra(self, attribute: T_Attr) -> T_Attr: ... - - @overload - def extra(self, attribute: T_Attr, default: T_Default) -> T_Attr | T_Default: ... - - @final - def extra(self, attribute: Any, default: object = undefined) -> object: - """ - extra(attribute, default=undefined) - - Return the value of the given typed extra attribute. - - :param attribute: the attribute (member of a :class:`~TypedAttributeSet`) to - look for - :param default: the value that should be returned if no value is found for the - attribute - :raises ~anyio.TypedAttributeLookupError: if the search failed and no default - value was given - - """ - try: - getter = self.extra_attributes[attribute] - except KeyError: - if default is undefined: - raise TypedAttributeLookupError("Attribute not found") from None - else: - return default - - return getter() diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/__init__.py b/.venv/lib/python3.12/site-packages/anyio/abc/__init__.py deleted file mode 100644 index d560ce3..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/abc/__init__.py +++ /dev/null @@ -1,58 +0,0 @@ -from __future__ import annotations - -from ._eventloop import AsyncBackend as AsyncBackend -from ._resources import AsyncResource as AsyncResource -from ._sockets import ConnectedUDPSocket as ConnectedUDPSocket -from ._sockets import ConnectedUNIXDatagramSocket as ConnectedUNIXDatagramSocket -from ._sockets import IPAddressType as IPAddressType -from ._sockets import IPSockAddrType as IPSockAddrType -from ._sockets import SocketAttribute as SocketAttribute -from ._sockets import SocketListener as SocketListener -from ._sockets import SocketStream as SocketStream -from ._sockets import UDPPacketType as UDPPacketType -from ._sockets import UDPSocket as UDPSocket -from ._sockets import UNIXDatagramPacketType as UNIXDatagramPacketType -from ._sockets import UNIXDatagramSocket as UNIXDatagramSocket -from ._sockets import UNIXSocketStream as UNIXSocketStream -from ._streams import AnyByteReceiveStream as AnyByteReceiveStream -from ._streams import AnyByteSendStream as AnyByteSendStream -from ._streams import AnyByteStream as AnyByteStream -from ._streams import AnyByteStreamConnectable as AnyByteStreamConnectable -from ._streams import AnyUnreliableByteReceiveStream as AnyUnreliableByteReceiveStream -from ._streams import AnyUnreliableByteSendStream as AnyUnreliableByteSendStream -from ._streams import AnyUnreliableByteStream as AnyUnreliableByteStream -from ._streams import ByteReceiveStream as ByteReceiveStream -from ._streams import ByteSendStream as ByteSendStream -from ._streams import ByteStream as ByteStream -from ._streams import ByteStreamConnectable as ByteStreamConnectable -from ._streams import Listener as Listener -from ._streams import ObjectReceiveStream as ObjectReceiveStream -from ._streams import ObjectSendStream as ObjectSendStream -from ._streams import ObjectStream as ObjectStream -from ._streams import ObjectStreamConnectable as ObjectStreamConnectable -from ._streams import UnreliableObjectReceiveStream as UnreliableObjectReceiveStream -from ._streams import UnreliableObjectSendStream as UnreliableObjectSendStream -from ._streams import UnreliableObjectStream as UnreliableObjectStream -from ._subprocesses import Process as Process -from ._tasks import TaskGroup as TaskGroup -from ._tasks import TaskStatus as TaskStatus -from ._testing import TestRunner as TestRunner - -# Re-exported here, for backwards compatibility -# isort: off -from .._core._synchronization import ( - CapacityLimiter as CapacityLimiter, - Condition as Condition, - Event as Event, - Lock as Lock, - Semaphore as Semaphore, -) -from .._core._tasks import CancelScope as CancelScope -from ..from_thread import BlockingPortal as BlockingPortal - -# Re-export imports so they look like they live directly in this package -for __value in list(locals().values()): - if getattr(__value, "__module__", "").startswith("anyio.abc."): - __value.__module__ = __name__ - -del __value diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7ad3811..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_eventloop.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_eventloop.cpython-312.pyc deleted file mode 100644 index bed8728..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_eventloop.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_resources.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_resources.cpython-312.pyc deleted file mode 100644 index 1a4247b..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_resources.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_sockets.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_sockets.cpython-312.pyc deleted file mode 100644 index 0bcab76..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_sockets.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_streams.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_streams.cpython-312.pyc deleted file mode 100644 index 263d95e..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_streams.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_subprocesses.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_subprocesses.cpython-312.pyc deleted file mode 100644 index f8a3f8f..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_subprocesses.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_tasks.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_tasks.cpython-312.pyc deleted file mode 100644 index be8b0d6..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_tasks.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_testing.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_testing.cpython-312.pyc deleted file mode 100644 index ab2699f..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_testing.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/_eventloop.py b/.venv/lib/python3.12/site-packages/anyio/abc/_eventloop.py deleted file mode 100644 index ae06288..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/abc/_eventloop.py +++ /dev/null @@ -1,409 +0,0 @@ -from __future__ import annotations - -import math -import sys -from abc import ABCMeta, abstractmethod -from collections.abc import AsyncIterator, Awaitable, Callable, Sequence -from contextlib import AbstractContextManager -from os import PathLike -from signal import Signals -from socket import AddressFamily, SocketKind, socket -from typing import ( - IO, - TYPE_CHECKING, - Any, - TypeAlias, - TypeVar, - overload, -) - -if sys.version_info >= (3, 11): - from typing import TypeVarTuple, Unpack -else: - from typing_extensions import TypeVarTuple, Unpack - -if TYPE_CHECKING: - from _typeshed import FileDescriptorLike - - from .._core._synchronization import CapacityLimiter, Event, Lock, Semaphore - from .._core._tasks import CancelScope - from .._core._testing import TaskInfo - from ._sockets import ( - ConnectedUDPSocket, - ConnectedUNIXDatagramSocket, - IPSockAddrType, - SocketListener, - SocketStream, - UDPSocket, - UNIXDatagramSocket, - UNIXSocketStream, - ) - from ._subprocesses import Process - from ._tasks import TaskGroup - from ._testing import TestRunner - -T_Retval = TypeVar("T_Retval") -PosArgsT = TypeVarTuple("PosArgsT") -StrOrBytesPath: TypeAlias = str | bytes | PathLike[str] | PathLike[bytes] - - -class AsyncBackend(metaclass=ABCMeta): - @classmethod - @abstractmethod - def run( - cls, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - args: tuple[Unpack[PosArgsT]], - kwargs: dict[str, Any], - options: dict[str, Any], - ) -> T_Retval: - """ - Run the given coroutine function in an asynchronous event loop. - - The current thread must not be already running an event loop. - - :param func: a coroutine function - :param args: positional arguments to ``func`` - :param kwargs: positional arguments to ``func`` - :param options: keyword arguments to call the backend ``run()`` implementation - with - :return: the return value of the coroutine function - """ - - @classmethod - @abstractmethod - def current_token(cls) -> object: - """ - Return an object that allows other threads to run code inside the event loop. - - :return: a token object, specific to the event loop running in the current - thread - """ - - @classmethod - @abstractmethod - def current_time(cls) -> float: - """ - Return the current value of the event loop's internal clock. - - :return: the clock value (seconds) - """ - - @classmethod - @abstractmethod - def cancelled_exception_class(cls) -> type[BaseException]: - """Return the exception class that is raised in a task if it's cancelled.""" - - @classmethod - @abstractmethod - async def checkpoint(cls) -> None: - """ - Check if the task has been cancelled, and allow rescheduling of other tasks. - - This is effectively the same as running :meth:`checkpoint_if_cancelled` and then - :meth:`cancel_shielded_checkpoint`. - """ - - @classmethod - async def checkpoint_if_cancelled(cls) -> None: - """ - Check if the current task group has been cancelled. - - This will check if the task has been cancelled, but will not allow other tasks - to be scheduled if not. - - """ - if cls.current_effective_deadline() == -math.inf: - await cls.checkpoint() - - @classmethod - async def cancel_shielded_checkpoint(cls) -> None: - """ - Allow the rescheduling of other tasks. - - This will give other tasks the opportunity to run, but without checking if the - current task group has been cancelled, unlike with :meth:`checkpoint`. - - """ - with cls.create_cancel_scope(shield=True): - await cls.sleep(0) - - @classmethod - @abstractmethod - async def sleep(cls, delay: float) -> None: - """ - Pause the current task for the specified duration. - - :param delay: the duration, in seconds - """ - - @classmethod - @abstractmethod - def create_cancel_scope( - cls, *, deadline: float = math.inf, shield: bool = False - ) -> CancelScope: - pass - - @classmethod - @abstractmethod - def current_effective_deadline(cls) -> float: - """ - Return the nearest deadline among all the cancel scopes effective for the - current task. - - :return: - - a clock value from the event loop's internal clock - - ``inf`` if there is no deadline in effect - - ``-inf`` if the current scope has been cancelled - :rtype: float - """ - - @classmethod - @abstractmethod - def create_task_group(cls) -> TaskGroup: - pass - - @classmethod - @abstractmethod - def create_event(cls) -> Event: - pass - - @classmethod - @abstractmethod - def create_lock(cls, *, fast_acquire: bool) -> Lock: - pass - - @classmethod - @abstractmethod - def create_semaphore( - cls, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ) -> Semaphore: - pass - - @classmethod - @abstractmethod - def create_capacity_limiter(cls, total_tokens: float) -> CapacityLimiter: - pass - - @classmethod - @abstractmethod - async def run_sync_in_worker_thread( - cls, - func: Callable[[Unpack[PosArgsT]], T_Retval], - args: tuple[Unpack[PosArgsT]], - abandon_on_cancel: bool = False, - limiter: CapacityLimiter | None = None, - ) -> T_Retval: - pass - - @classmethod - @abstractmethod - def check_cancelled(cls) -> None: - pass - - @classmethod - @abstractmethod - def run_async_from_thread( - cls, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - args: tuple[Unpack[PosArgsT]], - token: object, - ) -> T_Retval: - pass - - @classmethod - @abstractmethod - def run_sync_from_thread( - cls, - func: Callable[[Unpack[PosArgsT]], T_Retval], - args: tuple[Unpack[PosArgsT]], - token: object, - ) -> T_Retval: - pass - - @classmethod - @abstractmethod - async def open_process( - cls, - command: StrOrBytesPath | Sequence[StrOrBytesPath], - *, - stdin: int | IO[Any] | None, - stdout: int | IO[Any] | None, - stderr: int | IO[Any] | None, - **kwargs: Any, - ) -> Process: - pass - - @classmethod - @abstractmethod - def setup_process_pool_exit_at_shutdown(cls, workers: set[Process]) -> None: - pass - - @classmethod - @abstractmethod - async def connect_tcp( - cls, host: str, port: int, local_address: IPSockAddrType | None = None - ) -> SocketStream: - pass - - @classmethod - @abstractmethod - async def connect_unix(cls, path: str | bytes) -> UNIXSocketStream: - pass - - @classmethod - @abstractmethod - def create_tcp_listener(cls, sock: socket) -> SocketListener: - pass - - @classmethod - @abstractmethod - def create_unix_listener(cls, sock: socket) -> SocketListener: - pass - - @classmethod - @abstractmethod - async def create_udp_socket( - cls, - family: AddressFamily, - local_address: IPSockAddrType | None, - remote_address: IPSockAddrType | None, - reuse_port: bool, - ) -> UDPSocket | ConnectedUDPSocket: - pass - - @classmethod - @overload - async def create_unix_datagram_socket( - cls, raw_socket: socket, remote_path: None - ) -> UNIXDatagramSocket: ... - - @classmethod - @overload - async def create_unix_datagram_socket( - cls, raw_socket: socket, remote_path: str | bytes - ) -> ConnectedUNIXDatagramSocket: ... - - @classmethod - @abstractmethod - async def create_unix_datagram_socket( - cls, raw_socket: socket, remote_path: str | bytes | None - ) -> UNIXDatagramSocket | ConnectedUNIXDatagramSocket: - pass - - @classmethod - @abstractmethod - async def getaddrinfo( - cls, - host: bytes | str | None, - port: str | int | None, - *, - family: int | AddressFamily = 0, - type: int | SocketKind = 0, - proto: int = 0, - flags: int = 0, - ) -> Sequence[ - tuple[ - AddressFamily, - SocketKind, - int, - str, - tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes], - ] - ]: - pass - - @classmethod - @abstractmethod - async def getnameinfo( - cls, sockaddr: IPSockAddrType, flags: int = 0 - ) -> tuple[str, str]: - pass - - @classmethod - @abstractmethod - async def wait_readable(cls, obj: FileDescriptorLike) -> None: - pass - - @classmethod - @abstractmethod - async def wait_writable(cls, obj: FileDescriptorLike) -> None: - pass - - @classmethod - @abstractmethod - def notify_closing(cls, obj: FileDescriptorLike) -> None: - pass - - @classmethod - @abstractmethod - async def wrap_listener_socket(cls, sock: socket) -> SocketListener: - pass - - @classmethod - @abstractmethod - async def wrap_stream_socket(cls, sock: socket) -> SocketStream: - pass - - @classmethod - @abstractmethod - async def wrap_unix_stream_socket(cls, sock: socket) -> UNIXSocketStream: - pass - - @classmethod - @abstractmethod - async def wrap_udp_socket(cls, sock: socket) -> UDPSocket: - pass - - @classmethod - @abstractmethod - async def wrap_connected_udp_socket(cls, sock: socket) -> ConnectedUDPSocket: - pass - - @classmethod - @abstractmethod - async def wrap_unix_datagram_socket(cls, sock: socket) -> UNIXDatagramSocket: - pass - - @classmethod - @abstractmethod - async def wrap_connected_unix_datagram_socket( - cls, sock: socket - ) -> ConnectedUNIXDatagramSocket: - pass - - @classmethod - @abstractmethod - def current_default_thread_limiter(cls) -> CapacityLimiter: - pass - - @classmethod - @abstractmethod - def open_signal_receiver( - cls, *signals: Signals - ) -> AbstractContextManager[AsyncIterator[Signals]]: - pass - - @classmethod - @abstractmethod - def get_current_task(cls) -> TaskInfo: - pass - - @classmethod - @abstractmethod - def get_running_tasks(cls) -> Sequence[TaskInfo]: - pass - - @classmethod - @abstractmethod - async def wait_all_tasks_blocked(cls) -> None: - pass - - @classmethod - @abstractmethod - def create_test_runner(cls, options: dict[str, Any]) -> TestRunner: - pass diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/_resources.py b/.venv/lib/python3.12/site-packages/anyio/abc/_resources.py deleted file mode 100644 index 10df115..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/abc/_resources.py +++ /dev/null @@ -1,33 +0,0 @@ -from __future__ import annotations - -from abc import ABCMeta, abstractmethod -from types import TracebackType -from typing import TypeVar - -T = TypeVar("T") - - -class AsyncResource(metaclass=ABCMeta): - """ - Abstract base class for all closeable asynchronous resources. - - Works as an asynchronous context manager which returns the instance itself on enter, - and calls :meth:`aclose` on exit. - """ - - __slots__ = () - - async def __aenter__(self: T) -> T: - return self - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - await self.aclose() - - @abstractmethod - async def aclose(self) -> None: - """Close the resource.""" diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/_sockets.py b/.venv/lib/python3.12/site-packages/anyio/abc/_sockets.py deleted file mode 100644 index feb26bd..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/abc/_sockets.py +++ /dev/null @@ -1,399 +0,0 @@ -from __future__ import annotations - -import errno -import socket -from abc import abstractmethod -from collections.abc import Callable, Collection, Mapping -from contextlib import AsyncExitStack -from io import IOBase -from ipaddress import IPv4Address, IPv6Address -from socket import AddressFamily -from typing import Any, TypeAlias, TypeVar - -from .._core._eventloop import get_async_backend -from .._core._typedattr import ( - TypedAttributeProvider, - TypedAttributeSet, - typed_attribute, -) -from ._streams import ByteStream, Listener, UnreliableObjectStream -from ._tasks import TaskGroup - -IPAddressType: TypeAlias = str | IPv4Address | IPv6Address -IPSockAddrType: TypeAlias = tuple[str, int] -SockAddrType: TypeAlias = IPSockAddrType | str -UDPPacketType: TypeAlias = tuple[bytes, IPSockAddrType] -UNIXDatagramPacketType: TypeAlias = tuple[bytes, str] -T_Retval = TypeVar("T_Retval") - - -def _validate_socket( - sock_or_fd: socket.socket | int, - sock_type: socket.SocketKind, - addr_family: socket.AddressFamily = socket.AF_UNSPEC, - *, - require_connected: bool = False, - require_bound: bool = False, -) -> socket.socket: - if isinstance(sock_or_fd, int): - try: - sock = socket.socket(fileno=sock_or_fd) - except OSError as exc: - if exc.errno == errno.ENOTSOCK: - raise ValueError( - "the file descriptor does not refer to a socket" - ) from exc - elif require_connected: - raise ValueError("the socket must be connected") from exc - elif require_bound: - raise ValueError("the socket must be bound to a local address") from exc - else: - raise - elif isinstance(sock_or_fd, socket.socket): - sock = sock_or_fd - else: - raise TypeError( - f"expected an int or socket, got {type(sock_or_fd).__qualname__} instead" - ) - - try: - if require_connected: - try: - sock.getpeername() - except OSError as exc: - raise ValueError("the socket must be connected") from exc - - if require_bound: - try: - if sock.family in (socket.AF_INET, socket.AF_INET6): - bound_addr = sock.getsockname()[1] - else: - bound_addr = sock.getsockname() - except OSError: - bound_addr = None - - if not bound_addr: - raise ValueError("the socket must be bound to a local address") - - if addr_family != socket.AF_UNSPEC and sock.family != addr_family: - raise ValueError( - f"address family mismatch: expected {addr_family.name}, got " - f"{sock.family.name}" - ) - - if sock.type != sock_type: - raise ValueError( - f"socket type mismatch: expected {sock_type.name}, got {sock.type.name}" - ) - except BaseException: - # Avoid ResourceWarning from the locally constructed socket object - if isinstance(sock_or_fd, int): - sock.detach() - - raise - - sock.setblocking(False) - return sock - - -class SocketAttribute(TypedAttributeSet): - """ - .. attribute:: family - :type: socket.AddressFamily - - the address family of the underlying socket - - .. attribute:: local_address - :type: tuple[str, int] | str - - the local address the underlying socket is connected to - - .. attribute:: local_port - :type: int - - for IP based sockets, the local port the underlying socket is bound to - - .. attribute:: raw_socket - :type: socket.socket - - the underlying stdlib socket object - - .. attribute:: remote_address - :type: tuple[str, int] | str - - the remote address the underlying socket is connected to - - .. attribute:: remote_port - :type: int - - for IP based sockets, the remote port the underlying socket is connected to - """ - - family: AddressFamily = typed_attribute() - local_address: SockAddrType = typed_attribute() - local_port: int = typed_attribute() - raw_socket: socket.socket = typed_attribute() - remote_address: SockAddrType = typed_attribute() - remote_port: int = typed_attribute() - - -class _SocketProvider(TypedAttributeProvider): - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - from .._core._sockets import convert_ipv6_sockaddr as convert - - attributes: dict[Any, Callable[[], Any]] = { - SocketAttribute.family: lambda: self._raw_socket.family, - SocketAttribute.local_address: lambda: convert( - self._raw_socket.getsockname() - ), - SocketAttribute.raw_socket: lambda: self._raw_socket, - } - try: - peername: tuple[str, int] | None = convert(self._raw_socket.getpeername()) - except OSError: - peername = None - - # Provide the remote address for connected sockets - if peername is not None: - attributes[SocketAttribute.remote_address] = lambda: peername - - # Provide local and remote ports for IP based sockets - if self._raw_socket.family in (AddressFamily.AF_INET, AddressFamily.AF_INET6): - attributes[SocketAttribute.local_port] = lambda: ( - self._raw_socket.getsockname()[1] - ) - if peername is not None: - remote_port = peername[1] - attributes[SocketAttribute.remote_port] = lambda: remote_port - - return attributes - - @property - @abstractmethod - def _raw_socket(self) -> socket.socket: - pass - - -class SocketStream(ByteStream, _SocketProvider): - """ - Transports bytes over a socket. - - Supports all relevant extra attributes from :class:`~SocketAttribute`. - """ - - @classmethod - async def from_socket(cls, sock_or_fd: socket.socket | int) -> SocketStream: - """ - Wrap an existing socket object or file descriptor as a socket stream. - - The newly created socket wrapper takes ownership of the socket being passed in. - The existing socket must already be connected. - - :param sock_or_fd: a socket object or file descriptor - :return: a socket stream - - """ - sock = _validate_socket(sock_or_fd, socket.SOCK_STREAM, require_connected=True) - return await get_async_backend().wrap_stream_socket(sock) - - -class UNIXSocketStream(SocketStream): - @classmethod - async def from_socket(cls, sock_or_fd: socket.socket | int) -> UNIXSocketStream: - """ - Wrap an existing socket object or file descriptor as a UNIX socket stream. - - The newly created socket wrapper takes ownership of the socket being passed in. - The existing socket must already be connected. - - :param sock_or_fd: a socket object or file descriptor - :return: a UNIX socket stream - - """ - sock = _validate_socket( - sock_or_fd, socket.SOCK_STREAM, socket.AF_UNIX, require_connected=True - ) - return await get_async_backend().wrap_unix_stream_socket(sock) - - @abstractmethod - async def send_fds(self, message: bytes, fds: Collection[int | IOBase]) -> None: - """ - Send file descriptors along with a message to the peer. - - :param message: a non-empty bytestring - :param fds: a collection of files (either numeric file descriptors or open file - or socket objects) - """ - - @abstractmethod - async def receive_fds(self, msglen: int, maxfds: int) -> tuple[bytes, list[int]]: - """ - Receive file descriptors along with a message from the peer. - - :param msglen: length of the message to expect from the peer - :param maxfds: maximum number of file descriptors to expect from the peer - :return: a tuple of (message, file descriptors) - """ - - -class SocketListener(Listener[SocketStream], _SocketProvider): - """ - Listens to incoming socket connections. - - Supports all relevant extra attributes from :class:`~SocketAttribute`. - """ - - @classmethod - async def from_socket( - cls, - sock_or_fd: socket.socket | int, - ) -> SocketListener: - """ - Wrap an existing socket object or file descriptor as a socket listener. - - The newly created listener takes ownership of the socket being passed in. - - :param sock_or_fd: a socket object or file descriptor - :return: a socket listener - - """ - sock = _validate_socket(sock_or_fd, socket.SOCK_STREAM, require_bound=True) - return await get_async_backend().wrap_listener_socket(sock) - - @abstractmethod - async def accept(self) -> SocketStream: - """Accept an incoming connection.""" - - async def serve( - self, - handler: Callable[[SocketStream], Any], - task_group: TaskGroup | None = None, - ) -> None: - from .. import create_task_group - - async with AsyncExitStack() as stack: - if task_group is None: - task_group = await stack.enter_async_context(create_task_group()) - - while True: - stream = await self.accept() - task_group.start_soon(handler, stream) - - -class UDPSocket(UnreliableObjectStream[UDPPacketType], _SocketProvider): - """ - Represents an unconnected UDP socket. - - Supports all relevant extra attributes from :class:`~SocketAttribute`. - """ - - @classmethod - async def from_socket(cls, sock_or_fd: socket.socket | int) -> UDPSocket: - """ - Wrap an existing socket object or file descriptor as a UDP socket. - - The newly created socket wrapper takes ownership of the socket being passed in. - The existing socket must be bound to a local address. - - :param sock_or_fd: a socket object or file descriptor - :return: a UDP socket - - """ - sock = _validate_socket(sock_or_fd, socket.SOCK_DGRAM, require_bound=True) - return await get_async_backend().wrap_udp_socket(sock) - - async def sendto(self, data: bytes, host: str, port: int) -> None: - """ - Alias for :meth:`~.UnreliableObjectSendStream.send` ((data, (host, port))). - - """ - return await self.send((data, (host, port))) - - -class ConnectedUDPSocket(UnreliableObjectStream[bytes], _SocketProvider): - """ - Represents an connected UDP socket. - - Supports all relevant extra attributes from :class:`~SocketAttribute`. - """ - - @classmethod - async def from_socket(cls, sock_or_fd: socket.socket | int) -> ConnectedUDPSocket: - """ - Wrap an existing socket object or file descriptor as a connected UDP socket. - - The newly created socket wrapper takes ownership of the socket being passed in. - The existing socket must already be connected. - - :param sock_or_fd: a socket object or file descriptor - :return: a connected UDP socket - - """ - sock = _validate_socket( - sock_or_fd, - socket.SOCK_DGRAM, - require_connected=True, - ) - return await get_async_backend().wrap_connected_udp_socket(sock) - - -class UNIXDatagramSocket( - UnreliableObjectStream[UNIXDatagramPacketType], _SocketProvider -): - """ - Represents an unconnected Unix datagram socket. - - Supports all relevant extra attributes from :class:`~SocketAttribute`. - """ - - @classmethod - async def from_socket( - cls, - sock_or_fd: socket.socket | int, - ) -> UNIXDatagramSocket: - """ - Wrap an existing socket object or file descriptor as a UNIX datagram - socket. - - The newly created socket wrapper takes ownership of the socket being passed in. - - :param sock_or_fd: a socket object or file descriptor - :return: a UNIX datagram socket - - """ - sock = _validate_socket(sock_or_fd, socket.SOCK_DGRAM, socket.AF_UNIX) - return await get_async_backend().wrap_unix_datagram_socket(sock) - - async def sendto(self, data: bytes, path: str) -> None: - """Alias for :meth:`~.UnreliableObjectSendStream.send` ((data, path)).""" - return await self.send((data, path)) - - -class ConnectedUNIXDatagramSocket(UnreliableObjectStream[bytes], _SocketProvider): - """ - Represents a connected Unix datagram socket. - - Supports all relevant extra attributes from :class:`~SocketAttribute`. - """ - - @classmethod - async def from_socket( - cls, - sock_or_fd: socket.socket | int, - ) -> ConnectedUNIXDatagramSocket: - """ - Wrap an existing socket object or file descriptor as a connected UNIX datagram - socket. - - The newly created socket wrapper takes ownership of the socket being passed in. - The existing socket must already be connected. - - :param sock_or_fd: a socket object or file descriptor - :return: a connected UNIX datagram socket - - """ - sock = _validate_socket( - sock_or_fd, socket.SOCK_DGRAM, socket.AF_UNIX, require_connected=True - ) - return await get_async_backend().wrap_connected_unix_datagram_socket(sock) diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/_streams.py b/.venv/lib/python3.12/site-packages/anyio/abc/_streams.py deleted file mode 100644 index 186e3f5..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/abc/_streams.py +++ /dev/null @@ -1,233 +0,0 @@ -from __future__ import annotations - -from abc import ABCMeta, abstractmethod -from collections.abc import Callable -from typing import Any, Generic, TypeAlias, TypeVar - -from .._core._exceptions import EndOfStream -from .._core._typedattr import TypedAttributeProvider -from ._resources import AsyncResource -from ._tasks import TaskGroup - -T_Item = TypeVar("T_Item") -T_co = TypeVar("T_co", covariant=True) -T_contra = TypeVar("T_contra", contravariant=True) - - -class UnreliableObjectReceiveStream( - Generic[T_co], AsyncResource, TypedAttributeProvider -): - """ - An interface for receiving objects. - - This interface makes no guarantees that the received messages arrive in the order in - which they were sent, or that no messages are missed. - - Asynchronously iterating over objects of this type will yield objects matching the - given type parameter. - """ - - def __aiter__(self) -> UnreliableObjectReceiveStream[T_co]: - return self - - async def __anext__(self) -> T_co: - try: - return await self.receive() - except EndOfStream: - raise StopAsyncIteration from None - - @abstractmethod - async def receive(self) -> T_co: - """ - Receive the next item. - - :raises ~anyio.ClosedResourceError: if the receive stream has been explicitly - closed - :raises ~anyio.EndOfStream: if this stream has been closed from the other end - :raises ~anyio.BrokenResourceError: if this stream has been rendered unusable - due to external causes - """ - - -class UnreliableObjectSendStream( - Generic[T_contra], AsyncResource, TypedAttributeProvider -): - """ - An interface for sending objects. - - This interface makes no guarantees that the messages sent will reach the - recipient(s) in the same order in which they were sent, or at all. - """ - - @abstractmethod - async def send(self, item: T_contra) -> None: - """ - Send an item to the peer(s). - - :param item: the item to send - :raises ~anyio.ClosedResourceError: if the send stream has been explicitly - closed - :raises ~anyio.BrokenResourceError: if this stream has been rendered unusable - due to external causes - """ - - -class UnreliableObjectStream( - UnreliableObjectReceiveStream[T_Item], UnreliableObjectSendStream[T_Item] -): - """ - A bidirectional message stream which does not guarantee the order or reliability of - message delivery. - """ - - -class ObjectReceiveStream(UnreliableObjectReceiveStream[T_co]): - """ - A receive message stream which guarantees that messages are received in the same - order in which they were sent, and that no messages are missed. - """ - - -class ObjectSendStream(UnreliableObjectSendStream[T_contra]): - """ - A send message stream which guarantees that messages are delivered in the same order - in which they were sent, without missing any messages in the middle. - """ - - -class ObjectStream( - ObjectReceiveStream[T_Item], - ObjectSendStream[T_Item], - UnreliableObjectStream[T_Item], -): - """ - A bidirectional message stream which guarantees the order and reliability of message - delivery. - """ - - @abstractmethod - async def send_eof(self) -> None: - """ - Send an end-of-file indication to the peer. - - You should not try to send any further data to this stream after calling this - method. This method is idempotent (does nothing on successive calls). - """ - - -class ByteReceiveStream(AsyncResource, TypedAttributeProvider): - """ - An interface for receiving bytes from a single peer. - - Iterating this byte stream will yield a byte string of arbitrary length, but no more - than 65536 bytes. - """ - - def __aiter__(self) -> ByteReceiveStream: - return self - - async def __anext__(self) -> bytes: - try: - return await self.receive() - except EndOfStream: - raise StopAsyncIteration from None - - @abstractmethod - async def receive(self, max_bytes: int = 65536) -> bytes: - """ - Receive at most ``max_bytes`` bytes from the peer. - - .. note:: Implementers of this interface should not return an empty - :class:`bytes` object, and users should ignore them. - - :param max_bytes: maximum number of bytes to receive - :return: the received bytes - :raises ~anyio.EndOfStream: if this stream has been closed from the other end - """ - - -class ByteSendStream(AsyncResource, TypedAttributeProvider): - """An interface for sending bytes to a single peer.""" - - @abstractmethod - async def send(self, item: bytes) -> None: - """ - Send the given bytes to the peer. - - :param item: the bytes to send - """ - - -class ByteStream(ByteReceiveStream, ByteSendStream): - """A bidirectional byte stream.""" - - @abstractmethod - async def send_eof(self) -> None: - """ - Send an end-of-file indication to the peer. - - You should not try to send any further data to this stream after calling this - method. This method is idempotent (does nothing on successive calls). - """ - - -#: Type alias for all unreliable bytes-oriented receive streams. -AnyUnreliableByteReceiveStream: TypeAlias = ( - UnreliableObjectReceiveStream[bytes] | ByteReceiveStream -) -#: Type alias for all unreliable bytes-oriented send streams. -AnyUnreliableByteSendStream: TypeAlias = ( - UnreliableObjectSendStream[bytes] | ByteSendStream -) -#: Type alias for all unreliable bytes-oriented streams. -AnyUnreliableByteStream: TypeAlias = UnreliableObjectStream[bytes] | ByteStream -#: Type alias for all bytes-oriented receive streams. -AnyByteReceiveStream: TypeAlias = ObjectReceiveStream[bytes] | ByteReceiveStream -#: Type alias for all bytes-oriented send streams. -AnyByteSendStream: TypeAlias = ObjectSendStream[bytes] | ByteSendStream -#: Type alias for all bytes-oriented streams. -AnyByteStream: TypeAlias = ObjectStream[bytes] | ByteStream - - -class Listener(Generic[T_co], AsyncResource, TypedAttributeProvider): - """An interface for objects that let you accept incoming connections.""" - - @abstractmethod - async def serve( - self, handler: Callable[[T_co], Any], task_group: TaskGroup | None = None - ) -> None: - """ - Accept incoming connections as they come in and start tasks to handle them. - - :param handler: a callable that will be used to handle each accepted connection - :param task_group: the task group that will be used to start tasks for handling - each accepted connection (if omitted, an ad-hoc task group will be created) - """ - - -class ObjectStreamConnectable(Generic[T_co], metaclass=ABCMeta): - @abstractmethod - async def connect(self) -> ObjectStream[T_co]: - """ - Connect to the remote endpoint. - - :return: an object stream connected to the remote end - :raises ConnectionFailed: if the connection fails - """ - - -class ByteStreamConnectable(metaclass=ABCMeta): - @abstractmethod - async def connect(self) -> ByteStream: - """ - Connect to the remote endpoint. - - :return: a bytestream connected to the remote end - :raises ConnectionFailed: if the connection fails - """ - - -#: Type alias for all connectables returning bytestreams or bytes-oriented object streams -AnyByteStreamConnectable: TypeAlias = ( - ObjectStreamConnectable[bytes] | ByteStreamConnectable -) diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/_subprocesses.py b/.venv/lib/python3.12/site-packages/anyio/abc/_subprocesses.py deleted file mode 100644 index ce0564c..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/abc/_subprocesses.py +++ /dev/null @@ -1,79 +0,0 @@ -from __future__ import annotations - -from abc import abstractmethod -from signal import Signals - -from ._resources import AsyncResource -from ._streams import ByteReceiveStream, ByteSendStream - - -class Process(AsyncResource): - """An asynchronous version of :class:`subprocess.Popen`.""" - - @abstractmethod - async def wait(self) -> int: - """ - Wait until the process exits. - - :return: the exit code of the process - """ - - @abstractmethod - def terminate(self) -> None: - """ - Terminates the process, gracefully if possible. - - On Windows, this calls ``TerminateProcess()``. - On POSIX systems, this sends ``SIGTERM`` to the process. - - .. seealso:: :meth:`subprocess.Popen.terminate` - """ - - @abstractmethod - def kill(self) -> None: - """ - Kills the process. - - On Windows, this calls ``TerminateProcess()``. - On POSIX systems, this sends ``SIGKILL`` to the process. - - .. seealso:: :meth:`subprocess.Popen.kill` - """ - - @abstractmethod - def send_signal(self, signal: Signals) -> None: - """ - Send a signal to the subprocess. - - .. seealso:: :meth:`subprocess.Popen.send_signal` - - :param signal: the signal number (e.g. :data:`signal.SIGHUP`) - """ - - @property - @abstractmethod - def pid(self) -> int: - """The process ID of the process.""" - - @property - @abstractmethod - def returncode(self) -> int | None: - """ - The return code of the process. If the process has not yet terminated, this will - be ``None``. - """ - - @property - @abstractmethod - def stdin(self) -> ByteSendStream | None: - """The stream for the standard input of the process.""" - - @property - @abstractmethod - def stdout(self) -> ByteReceiveStream | None: - """The stream for the standard output of the process.""" - - @property - @abstractmethod - def stderr(self) -> ByteReceiveStream | None: - """The stream for the standard error output of the process.""" diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/_tasks.py b/.venv/lib/python3.12/site-packages/anyio/abc/_tasks.py deleted file mode 100644 index 516b3ec..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/abc/_tasks.py +++ /dev/null @@ -1,117 +0,0 @@ -from __future__ import annotations - -import sys -from abc import ABCMeta, abstractmethod -from collections.abc import Awaitable, Callable -from types import TracebackType -from typing import TYPE_CHECKING, Any, Protocol, overload - -if sys.version_info >= (3, 13): - from typing import TypeVar -else: - from typing_extensions import TypeVar - -if sys.version_info >= (3, 11): - from typing import TypeVarTuple, Unpack -else: - from typing_extensions import TypeVarTuple, Unpack - -if TYPE_CHECKING: - from .._core._tasks import CancelScope - -T_Retval = TypeVar("T_Retval") -T_contra = TypeVar("T_contra", contravariant=True, default=None) -PosArgsT = TypeVarTuple("PosArgsT") - - -class TaskStatus(Protocol[T_contra]): - @overload - def started(self: TaskStatus[None]) -> None: ... - - @overload - def started(self, value: T_contra) -> None: ... - - def started(self, value: T_contra | None = None) -> None: - """ - Signal that the task has started. - - :param value: object passed back to the starter of the task - """ - - -class TaskGroup(metaclass=ABCMeta): - """ - Groups several asynchronous tasks together. - - :ivar cancel_scope: the cancel scope inherited by all child tasks - :vartype cancel_scope: CancelScope - - .. note:: On asyncio, support for eager task factories is considered to be - **experimental**. In particular, they don't follow the usual semantics of new - tasks being scheduled on the next iteration of the event loop, and may thus - cause unexpected behavior in code that wasn't written with such semantics in - mind. - """ - - cancel_scope: CancelScope - - @abstractmethod - def start_soon( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[Any]], - *args: Unpack[PosArgsT], - name: object = None, - ) -> None: - """ - Start a new task in this task group. - - :param func: a coroutine function - :param args: positional arguments to call the function with - :param name: name of the task, for the purposes of introspection and debugging - - .. versionadded:: 3.0 - """ - - @abstractmethod - async def start( - self, - func: Callable[..., Awaitable[Any]], - *args: object, - name: object = None, - ) -> Any: - """ - Start a new task and wait until it signals for readiness. - - The target callable must accept a keyword argument ``task_status`` (of type - :class:`TaskStatus`). Awaiting on this method will return whatever was passed to - ``task_status.started()`` (``None`` by default). - - .. note:: The :class:`TaskStatus` class is generic, and the type argument should - indicate the type of the value that will be passed to - ``task_status.started()``. - - :param func: a coroutine function that accepts the ``task_status`` keyword - argument - :param args: positional arguments to call the function with - :param name: an optional name for the task, for introspection and debugging - :return: the value passed to ``task_status.started()`` - :raises RuntimeError: if the task finishes without calling - ``task_status.started()`` - - .. seealso:: :ref:`start_initialize` - - .. versionadded:: 3.0 - """ - - @abstractmethod - async def __aenter__(self) -> TaskGroup: - """Enter the task group context and allow starting new tasks.""" - - @abstractmethod - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> bool: - """Exit the task group context waiting for all tasks to finish.""" diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/_testing.py b/.venv/lib/python3.12/site-packages/anyio/abc/_testing.py deleted file mode 100644 index 7c50ed7..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/abc/_testing.py +++ /dev/null @@ -1,65 +0,0 @@ -from __future__ import annotations - -import types -from abc import ABCMeta, abstractmethod -from collections.abc import AsyncGenerator, Callable, Coroutine, Iterable -from typing import Any, TypeVar - -_T = TypeVar("_T") - - -class TestRunner(metaclass=ABCMeta): - """ - Encapsulates a running event loop. Every call made through this object will use the - same event loop. - """ - - def __enter__(self) -> TestRunner: - return self - - @abstractmethod - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: types.TracebackType | None, - ) -> bool | None: ... - - @abstractmethod - def run_asyncgen_fixture( - self, - fixture_func: Callable[..., AsyncGenerator[_T, Any]], - kwargs: dict[str, Any], - ) -> Iterable[_T]: - """ - Run an async generator fixture. - - :param fixture_func: the fixture function - :param kwargs: keyword arguments to call the fixture function with - :return: an iterator yielding the value yielded from the async generator - """ - - @abstractmethod - def run_fixture( - self, - fixture_func: Callable[..., Coroutine[Any, Any, _T]], - kwargs: dict[str, Any], - ) -> _T: - """ - Run an async fixture. - - :param fixture_func: the fixture function - :param kwargs: keyword arguments to call the fixture function with - :return: the return value of the fixture function - """ - - @abstractmethod - def run_test( - self, test_func: Callable[..., Coroutine[Any, Any, Any]], kwargs: dict[str, Any] - ) -> None: - """ - Run an async test function. - - :param test_func: the test function - :param kwargs: keyword arguments to call the test function with - """ diff --git a/.venv/lib/python3.12/site-packages/anyio/from_thread.py b/.venv/lib/python3.12/site-packages/anyio/from_thread.py deleted file mode 100644 index 837de5e..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/from_thread.py +++ /dev/null @@ -1,578 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "BlockingPortal", - "BlockingPortalProvider", - "check_cancelled", - "run", - "run_sync", - "start_blocking_portal", -) - -import sys -from collections.abc import Awaitable, Callable, Generator -from concurrent.futures import Future -from contextlib import ( - AbstractAsyncContextManager, - AbstractContextManager, - contextmanager, -) -from dataclasses import dataclass, field -from functools import partial -from inspect import isawaitable -from threading import Lock, Thread, current_thread, get_ident -from types import TracebackType -from typing import ( - Any, - Generic, - TypeVar, - cast, - overload, -) - -from ._core._eventloop import ( - get_cancelled_exc_class, - threadlocals, -) -from ._core._eventloop import run as run_eventloop -from ._core._exceptions import NoEventLoopError -from ._core._synchronization import Event -from ._core._tasks import CancelScope, create_task_group -from .abc._tasks import TaskStatus -from .lowlevel import EventLoopToken, current_token - -if sys.version_info >= (3, 11): - from typing import TypeVarTuple, Unpack -else: - from typing_extensions import TypeVarTuple, Unpack - -T_Retval = TypeVar("T_Retval") -T_co = TypeVar("T_co", covariant=True) -PosArgsT = TypeVarTuple("PosArgsT") - - -def _token_or_error(token: EventLoopToken | None) -> EventLoopToken: - if token is not None: - return token - - try: - return threadlocals.current_token - except AttributeError: - raise NoEventLoopError( - "Not running inside an AnyIO worker thread, and no event loop token was " - "provided" - ) from None - - -def run( - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - *args: Unpack[PosArgsT], - token: EventLoopToken | None = None, -) -> T_Retval: - """ - Call a coroutine function from a worker thread. - - :param func: a coroutine function - :param args: positional arguments for the callable - :param token: an event loop token to use to get back to the event loop thread - (required if calling this function from outside an AnyIO worker thread) - :return: the return value of the coroutine function - :raises MissingTokenError: if no token was provided and called from outside an - AnyIO worker thread - :raises RunFinishedError: if the event loop tied to ``token`` is no longer running - - .. versionchanged:: 4.11.0 - Added the ``token`` parameter. - - """ - explicit_token = token is not None - token = _token_or_error(token) - return token.backend_class.run_async_from_thread( - func, args, token=token.native_token if explicit_token else None - ) - - -def run_sync( - func: Callable[[Unpack[PosArgsT]], T_Retval], - *args: Unpack[PosArgsT], - token: EventLoopToken | None = None, -) -> T_Retval: - """ - Call a function in the event loop thread from a worker thread. - - :param func: a callable - :param args: positional arguments for the callable - :param token: an event loop token to use to get back to the event loop thread - (required if calling this function from outside an AnyIO worker thread) - :return: the return value of the callable - :raises MissingTokenError: if no token was provided and called from outside an - AnyIO worker thread - :raises RunFinishedError: if the event loop tied to ``token`` is no longer running - - .. versionchanged:: 4.11.0 - Added the ``token`` parameter. - - """ - explicit_token = token is not None - token = _token_or_error(token) - return token.backend_class.run_sync_from_thread( - func, args, token=token.native_token if explicit_token else None - ) - - -class _BlockingAsyncContextManager(Generic[T_co], AbstractContextManager): - _enter_future: Future[T_co] - _exit_future: Future[bool | None] - _exit_event: Event - _exit_exc_info: tuple[ - type[BaseException] | None, BaseException | None, TracebackType | None - ] = (None, None, None) - - def __init__( - self, async_cm: AbstractAsyncContextManager[T_co], portal: BlockingPortal - ): - self._async_cm = async_cm - self._portal = portal - - async def run_async_cm(self) -> bool | None: - try: - self._exit_event = Event() - value = await self._async_cm.__aenter__() - except BaseException as exc: - self._enter_future.set_exception(exc) - raise - else: - self._enter_future.set_result(value) - - try: - # Wait for the sync context manager to exit. - # This next statement can raise `get_cancelled_exc_class()` if - # something went wrong in a task group in this async context - # manager. - await self._exit_event.wait() - finally: - # In case of cancellation, it could be that we end up here before - # `_BlockingAsyncContextManager.__exit__` is called, and an - # `_exit_exc_info` has been set. - result = await self._async_cm.__aexit__(*self._exit_exc_info) - - return result - - def __enter__(self) -> T_co: - self._enter_future = Future() - self._exit_future = self._portal.start_task_soon(self.run_async_cm) - return self._enter_future.result() - - def __exit__( - self, - __exc_type: type[BaseException] | None, - __exc_value: BaseException | None, - __traceback: TracebackType | None, - ) -> bool | None: - self._exit_exc_info = __exc_type, __exc_value, __traceback - self._portal.call(self._exit_event.set) - return self._exit_future.result() - - -class _BlockingPortalTaskStatus(TaskStatus): - def __init__(self, future: Future): - self._future = future - - def started(self, value: object = None) -> None: - self._future.set_result(value) - - -class BlockingPortal: - """ - An object that lets external threads run code in an asynchronous event loop. - - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - """ - - def __init__(self) -> None: - self._token = current_token() - self._event_loop_thread_id: int | None = get_ident() - self._stop_event = Event() - self._task_group = create_task_group() - - async def __aenter__(self) -> BlockingPortal: - await self._task_group.__aenter__() - return self - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> bool: - await self.stop() - return await self._task_group.__aexit__(exc_type, exc_val, exc_tb) - - def _check_running(self) -> None: - if self._event_loop_thread_id is None: - raise RuntimeError("This portal is not running") - if self._event_loop_thread_id == get_ident(): - raise RuntimeError( - "This method cannot be called from the event loop thread" - ) - - async def sleep_until_stopped(self) -> None: - """Sleep until :meth:`stop` is called.""" - await self._stop_event.wait() - - async def stop(self, cancel_remaining: bool = False) -> None: - """ - Signal the portal to shut down. - - This marks the portal as no longer accepting new calls and exits from - :meth:`sleep_until_stopped`. - - :param cancel_remaining: ``True`` to cancel all the remaining tasks, ``False`` - to let them finish before returning - - """ - self._event_loop_thread_id = None - self._stop_event.set() - if cancel_remaining: - self._task_group.cancel_scope.cancel("the blocking portal is shutting down") - - async def _call_func( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval] | T_Retval], - args: tuple[Unpack[PosArgsT]], - kwargs: dict[str, Any], - future: Future[T_Retval], - ) -> None: - def callback(f: Future[T_Retval]) -> None: - if f.cancelled(): - if self._event_loop_thread_id == get_ident(): - scope.cancel("the future was cancelled") - elif self._event_loop_thread_id is not None: - self.call(scope.cancel, "the future was cancelled") - - try: - retval_or_awaitable = func(*args, **kwargs) - if isawaitable(retval_or_awaitable): - with CancelScope() as scope: - future.add_done_callback(callback) - retval = await retval_or_awaitable - else: - retval = retval_or_awaitable - except get_cancelled_exc_class(): - future.cancel() - future.set_running_or_notify_cancel() - except BaseException as exc: - if not future.cancelled(): - future.set_exception(exc) - - # Let base exceptions fall through - if not isinstance(exc, Exception): - raise - else: - if not future.cancelled(): - future.set_result(retval) - finally: - scope = None # type: ignore[assignment] - - def _spawn_task_from_thread( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval] | T_Retval], - args: tuple[Unpack[PosArgsT]], - kwargs: dict[str, Any], - name: object, - future: Future[T_Retval], - ) -> None: - """ - Spawn a new task using the given callable. - - :param func: a callable - :param args: positional arguments to be passed to the callable - :param kwargs: keyword arguments to be passed to the callable - :param name: name of the task (will be coerced to a string if not ``None``) - :param future: a future that will resolve to the return value of the callable, - or the exception raised during its execution - - """ - run_sync( - partial(self._task_group.start_soon, name=name), - self._call_func, - func, - args, - kwargs, - future, - token=self._token, - ) - - @overload - def call( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - *args: Unpack[PosArgsT], - ) -> T_Retval: ... - - @overload - def call( - self, func: Callable[[Unpack[PosArgsT]], T_Retval], *args: Unpack[PosArgsT] - ) -> T_Retval: ... - - def call( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval] | T_Retval], - *args: Unpack[PosArgsT], - ) -> T_Retval: - """ - Call the given function in the event loop thread. - - If the callable returns a coroutine object, it is awaited on. - - :param func: any callable - :raises RuntimeError: if the portal is not running or if this method is called - from within the event loop thread - - """ - return cast(T_Retval, self.start_task_soon(func, *args).result()) - - @overload - def start_task_soon( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - *args: Unpack[PosArgsT], - name: object = None, - ) -> Future[T_Retval]: ... - - @overload - def start_task_soon( - self, - func: Callable[[Unpack[PosArgsT]], T_Retval], - *args: Unpack[PosArgsT], - name: object = None, - ) -> Future[T_Retval]: ... - - def start_task_soon( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval] | T_Retval], - *args: Unpack[PosArgsT], - name: object = None, - ) -> Future[T_Retval]: - """ - Start a task in the portal's task group. - - The task will be run inside a cancel scope which can be cancelled by cancelling - the returned future. - - :param func: the target function - :param args: positional arguments passed to ``func`` - :param name: name of the task (will be coerced to a string if not ``None``) - :return: a future that resolves with the return value of the callable if the - task completes successfully, or with the exception raised in the task - :raises RuntimeError: if the portal is not running or if this method is called - from within the event loop thread - :rtype: concurrent.futures.Future[T_Retval] - - .. versionadded:: 3.0 - - """ - self._check_running() - f: Future[T_Retval] = Future() - self._spawn_task_from_thread(func, args, {}, name, f) - return f - - def start_task( - self, - func: Callable[..., Awaitable[T_Retval]], - *args: object, - name: object = None, - ) -> tuple[Future[T_Retval], Any]: - """ - Start a task in the portal's task group and wait until it signals for readiness. - - This method works the same way as :meth:`.abc.TaskGroup.start`. - - :param func: the target function - :param args: positional arguments passed to ``func`` - :param name: name of the task (will be coerced to a string if not ``None``) - :return: a tuple of (future, task_status_value) where the ``task_status_value`` - is the value passed to ``task_status.started()`` from within the target - function - :rtype: tuple[concurrent.futures.Future[T_Retval], Any] - - .. versionadded:: 3.0 - - """ - - def task_done(future: Future[T_Retval]) -> None: - if not task_status_future.done(): - if future.cancelled(): - task_status_future.cancel() - elif future.exception(): - task_status_future.set_exception(future.exception()) - else: - exc = RuntimeError( - "Task exited without calling task_status.started()" - ) - task_status_future.set_exception(exc) - - self._check_running() - task_status_future: Future = Future() - task_status = _BlockingPortalTaskStatus(task_status_future) - f: Future = Future() - f.add_done_callback(task_done) - self._spawn_task_from_thread(func, args, {"task_status": task_status}, name, f) - return f, task_status_future.result() - - def wrap_async_context_manager( - self, cm: AbstractAsyncContextManager[T_co] - ) -> AbstractContextManager[T_co]: - """ - Wrap an async context manager as a synchronous context manager via this portal. - - Spawns a task that will call both ``__aenter__()`` and ``__aexit__()``, stopping - in the middle until the synchronous context manager exits. - - :param cm: an asynchronous context manager - :return: a synchronous context manager - - .. versionadded:: 2.1 - - """ - return _BlockingAsyncContextManager(cm, self) - - -@dataclass -class BlockingPortalProvider: - """ - A manager for a blocking portal. Used as a context manager. The first thread to - enter this context manager causes a blocking portal to be started with the specific - parameters, and the last thread to exit causes the portal to be shut down. Thus, - there will be exactly one blocking portal running in this context as long as at - least one thread has entered this context manager. - - The parameters are the same as for :func:`~anyio.run`. - - :param backend: name of the backend - :param backend_options: backend options - - .. versionadded:: 4.4 - """ - - backend: str = "asyncio" - backend_options: dict[str, Any] | None = None - _lock: Lock = field(init=False, default_factory=Lock) - _leases: int = field(init=False, default=0) - _portal: BlockingPortal = field(init=False) - _portal_cm: AbstractContextManager[BlockingPortal] | None = field( - init=False, default=None - ) - - def __enter__(self) -> BlockingPortal: - with self._lock: - if self._portal_cm is None: - self._portal_cm = start_blocking_portal( - self.backend, self.backend_options - ) - self._portal = self._portal_cm.__enter__() - - self._leases += 1 - return self._portal - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - portal_cm: AbstractContextManager[BlockingPortal] | None = None - with self._lock: - assert self._portal_cm - assert self._leases > 0 - self._leases -= 1 - if not self._leases: - portal_cm = self._portal_cm - self._portal_cm = None - del self._portal - - if portal_cm: - portal_cm.__exit__(None, None, None) - - -@contextmanager -def start_blocking_portal( - backend: str = "asyncio", - backend_options: dict[str, Any] | None = None, - *, - name: str | None = None, -) -> Generator[BlockingPortal, Any, None]: - """ - Start a new event loop in a new thread and run a blocking portal in its main task. - - The parameters are the same as for :func:`~anyio.run`. - - :param backend: name of the backend - :param backend_options: backend options - :param name: name of the thread - :return: a context manager that yields a blocking portal - - .. versionchanged:: 3.0 - Usage as a context manager is now required. - - """ - - async def run_portal() -> None: - async with BlockingPortal() as portal_: - if name is None: - current_thread().name = f"{backend}-portal-{id(portal_):x}" - - future.set_result(portal_) - await portal_.sleep_until_stopped() - - def run_blocking_portal() -> None: - if future.set_running_or_notify_cancel(): - try: - run_eventloop( - run_portal, backend=backend, backend_options=backend_options - ) - except BaseException as exc: - if not future.done(): - future.set_exception(exc) - - future: Future[BlockingPortal] = Future() - thread = Thread(target=run_blocking_portal, daemon=True, name=name) - thread.start() - try: - cancel_remaining_tasks = False - portal = future.result() - try: - yield portal - except BaseException: - cancel_remaining_tasks = True - raise - finally: - try: - portal.call(portal.stop, cancel_remaining_tasks) - except RuntimeError: - pass - finally: - thread.join() - - -def check_cancelled() -> None: - """ - Check if the cancel scope of the host task's running the current worker thread has - been cancelled. - - If the host task's current cancel scope has indeed been cancelled, the - backend-specific cancellation exception will be raised. - - :raises RuntimeError: if the current thread was not spawned by - :func:`.to_thread.run_sync` - - """ - try: - token: EventLoopToken = threadlocals.current_token - except AttributeError: - raise NoEventLoopError( - "This function can only be called inside an AnyIO worker thread" - ) from None - - token.backend_class.check_cancelled() diff --git a/.venv/lib/python3.12/site-packages/anyio/functools.py b/.venv/lib/python3.12/site-packages/anyio/functools.py deleted file mode 100644 index f1d6c7c..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/functools.py +++ /dev/null @@ -1,409 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "AsyncCacheInfo", - "AsyncCacheParameters", - "AsyncLRUCacheWrapper", - "cache", - "lru_cache", - "reduce", -) - -import functools -import sys -from collections import OrderedDict -from collections.abc import ( - AsyncIterable, - Awaitable, - Callable, - Coroutine, - Hashable, - Iterable, -) -from functools import update_wrapper -from inspect import iscoroutinefunction -from typing import ( - Any, - Generic, - NamedTuple, - TypedDict, - TypeVar, - cast, - final, - overload, -) -from weakref import WeakKeyDictionary - -from ._core._eventloop import current_time -from ._core._synchronization import Lock -from .lowlevel import RunVar, checkpoint - -if sys.version_info >= (3, 11): - from typing import ParamSpec -else: - from typing_extensions import ParamSpec - -T = TypeVar("T") -S = TypeVar("S") -P = ParamSpec("P") -lru_cache_items: RunVar[ - WeakKeyDictionary[ - AsyncLRUCacheWrapper[Any, Any], - OrderedDict[ - Hashable, - tuple[_InitialMissingType, Lock, float | None] - | tuple[Any, None, float | None], - ], - ] -] = RunVar("lru_cache_items") - - -class _InitialMissingType: - pass - - -initial_missing: _InitialMissingType = _InitialMissingType() - - -class AsyncCacheInfo(NamedTuple): - hits: int - misses: int - maxsize: int | None - currsize: int - ttl: int | None - - -class AsyncCacheParameters(TypedDict): - maxsize: int | None - typed: bool - always_checkpoint: bool - ttl: int | None - - -class _LRUMethodWrapper(Generic[T]): - def __init__(self, wrapper: AsyncLRUCacheWrapper[..., T], instance: object): - self.__wrapper = wrapper - self.__instance = instance - - def cache_info(self) -> AsyncCacheInfo: - return self.__wrapper.cache_info() - - def cache_parameters(self) -> AsyncCacheParameters: - return self.__wrapper.cache_parameters() - - def cache_clear(self) -> None: - self.__wrapper.cache_clear() - - async def __call__(self, *args: Any, **kwargs: Any) -> T: - if self.__instance is None: - return await self.__wrapper(*args, **kwargs) - - return await self.__wrapper(self.__instance, *args, **kwargs) - - -@final -class AsyncLRUCacheWrapper(Generic[P, T]): - def __init__( - self, - func: Callable[P, Awaitable[T]], - maxsize: int | None, - typed: bool, - always_checkpoint: bool, - ttl: int | None, - ): - self.__wrapped__ = func - self._hits: int = 0 - self._misses: int = 0 - self._maxsize = max(maxsize, 0) if maxsize is not None else None - self._currsize: int = 0 - self._typed = typed - self._always_checkpoint = always_checkpoint - self._ttl = ttl - update_wrapper(self, func) - - def cache_info(self) -> AsyncCacheInfo: - return AsyncCacheInfo( - self._hits, self._misses, self._maxsize, self._currsize, self._ttl - ) - - def cache_parameters(self) -> AsyncCacheParameters: - return { - "maxsize": self._maxsize, - "typed": self._typed, - "always_checkpoint": self._always_checkpoint, - "ttl": self._ttl, - } - - def cache_clear(self) -> None: - if cache := lru_cache_items.get(None): - cache.pop(self, None) - self._hits = self._misses = self._currsize = 0 - - async def __call__(self, *args: P.args, **kwargs: P.kwargs) -> T: - # Easy case first: if maxsize == 0, no caching is done - if self._maxsize == 0: - value = await self.__wrapped__(*args, **kwargs) - self._misses += 1 - return value - - # The key is constructed as a flat tuple to avoid memory overhead - key: tuple[Any, ...] = args - if kwargs: - # initial_missing is used as a separator - key += (initial_missing,) + sum(kwargs.items(), ()) - - if self._typed: - key += tuple(type(arg) for arg in args) - if kwargs: - key += (initial_missing,) + tuple(type(val) for val in kwargs.values()) - - try: - cache = lru_cache_items.get() - except LookupError: - cache = WeakKeyDictionary() - lru_cache_items.set(cache) - - try: - cache_entry = cache[self] - except KeyError: - cache_entry = cache[self] = OrderedDict() - - cached_value: T | _InitialMissingType - try: - cached_value, lock, expires_at = cache_entry[key] - except KeyError: - # We're the first task to call this function - cached_value, lock, expires_at = ( - initial_missing, - Lock(fast_acquire=not self._always_checkpoint), - None, - ) - cache_entry[key] = cached_value, lock, expires_at - - if lock is None: - if expires_at is not None and current_time() >= expires_at: - self._currsize -= 1 - cached_value, lock, expires_at = ( - initial_missing, - Lock(fast_acquire=not self._always_checkpoint), - None, - ) - cache_entry[key] = cached_value, lock, expires_at - else: - # The value was already cached - self._hits += 1 - cache_entry.move_to_end(key) - if self._always_checkpoint: - await checkpoint() - - return cast(T, cached_value) - - async with lock: - # Check if another task filled the cache while we acquired the lock - if (cached_value := cache_entry[key][0]) is initial_missing: - self._misses += 1 - if self._maxsize is not None and self._currsize >= self._maxsize: - cache_entry.popitem(last=False) - else: - self._currsize += 1 - - value = await self.__wrapped__(*args, **kwargs) - expires_at = ( - current_time() + self._ttl if self._ttl is not None else None - ) - cache_entry[key] = value, None, expires_at - else: - # Another task filled the cache while we were waiting for the lock - self._hits += 1 - cache_entry.move_to_end(key) - value = cast(T, cached_value) - - return value - - def __get__( - self, instance: object, owner: type | None = None - ) -> _LRUMethodWrapper[T]: - wrapper = _LRUMethodWrapper(self, instance) - update_wrapper(wrapper, self.__wrapped__) - return wrapper - - -class _LRUCacheWrapper(Generic[T]): - def __init__( - self, maxsize: int | None, typed: bool, always_checkpoint: bool, ttl: int | None - ): - self._maxsize = maxsize - self._typed = typed - self._always_checkpoint = always_checkpoint - self._ttl = ttl - - @overload - def __call__( # type: ignore[overload-overlap] - self, func: Callable[P, Coroutine[Any, Any, T]], / - ) -> AsyncLRUCacheWrapper[P, T]: ... - - @overload - def __call__( - self, func: Callable[..., T], / - ) -> functools._lru_cache_wrapper[T]: ... - - def __call__( - self, f: Callable[P, Coroutine[Any, Any, T]] | Callable[..., T], / - ) -> AsyncLRUCacheWrapper[P, T] | functools._lru_cache_wrapper[T]: - if iscoroutinefunction(f): - return AsyncLRUCacheWrapper( - f, self._maxsize, self._typed, self._always_checkpoint, self._ttl - ) - - return functools.lru_cache(maxsize=self._maxsize, typed=self._typed)(f) # type: ignore[arg-type] - - -@overload -def cache( # type: ignore[overload-overlap] - func: Callable[P, Coroutine[Any, Any, T]], / -) -> AsyncLRUCacheWrapper[P, T]: ... - - -@overload -def cache(func: Callable[..., T], /) -> functools._lru_cache_wrapper[T]: ... - - -def cache( - func: Callable[..., T] | Callable[P, Coroutine[Any, Any, T]], / -) -> AsyncLRUCacheWrapper[P, T] | functools._lru_cache_wrapper[T]: - """ - A convenient shortcut for :func:`lru_cache` with ``maxsize=None``. - - This is the asynchronous equivalent to :func:`functools.cache`. - - """ - return lru_cache(maxsize=None)(func) - - -@overload -def lru_cache( - *, - maxsize: int | None = ..., - typed: bool = ..., - always_checkpoint: bool = ..., - ttl: int | None = ..., -) -> _LRUCacheWrapper[Any]: ... - - -@overload -def lru_cache( # type: ignore[overload-overlap] - func: Callable[P, Coroutine[Any, Any, T]], / -) -> AsyncLRUCacheWrapper[P, T]: ... - - -@overload -def lru_cache(func: Callable[..., T], /) -> functools._lru_cache_wrapper[T]: ... - - -def lru_cache( - func: Callable[P, Coroutine[Any, Any, T]] | Callable[..., T] | None = None, - /, - *, - maxsize: int | None = 128, - typed: bool = False, - always_checkpoint: bool = False, - ttl: int | None = None, -) -> ( - AsyncLRUCacheWrapper[P, T] | functools._lru_cache_wrapper[T] | _LRUCacheWrapper[Any] -): - """ - An asynchronous version of :func:`functools.lru_cache`. - - If a synchronous function is passed, the standard library - :func:`functools.lru_cache` is applied instead. - - :param always_checkpoint: if ``True``, every call to the cached function will be - guaranteed to yield control to the event loop at least once - :param ttl: time in seconds after which to invalidate cache entries - - .. note:: Caches and locks are managed on a per-event loop basis. - - """ - if func is None: - return _LRUCacheWrapper[Any](maxsize, typed, always_checkpoint, ttl) - - if not callable(func): - raise TypeError("the first argument must be callable") - - return _LRUCacheWrapper[T](maxsize, typed, always_checkpoint, ttl)(func) - - -@overload -async def reduce( - function: Callable[[T, S], Awaitable[T]], - iterable: Iterable[S] | AsyncIterable[S], - /, - initial: T, -) -> T: ... - - -@overload -async def reduce( - function: Callable[[T, T], Awaitable[T]], - iterable: Iterable[T] | AsyncIterable[T], - /, -) -> T: ... - - -async def reduce( # type: ignore[misc] - function: Callable[[T, T], Awaitable[T]] | Callable[[T, S], Awaitable[T]], - iterable: Iterable[T] | Iterable[S] | AsyncIterable[T] | AsyncIterable[S], - /, - initial: T | _InitialMissingType = initial_missing, -) -> T: - """ - Asynchronous version of :func:`functools.reduce`. - - :param function: a coroutine function that takes two arguments: the accumulated - value and the next element from the iterable - :param iterable: an iterable or async iterable - :param initial: the initial value (if missing, the first element of the iterable is - used as the initial value) - - """ - element: Any - function_called = False - if isinstance(iterable, AsyncIterable): - async_it = iterable.__aiter__() - if initial is initial_missing: - try: - value = cast(T, await async_it.__anext__()) - except StopAsyncIteration: - raise TypeError( - "reduce() of empty sequence with no initial value" - ) from None - else: - value = cast(T, initial) - - async for element in async_it: - value = await function(value, element) - function_called = True - elif isinstance(iterable, Iterable): - it = iter(iterable) - if initial is initial_missing: - try: - value = cast(T, next(it)) - except StopIteration: - raise TypeError( - "reduce() of empty sequence with no initial value" - ) from None - else: - value = cast(T, initial) - - for element in it: - value = await function(value, element) - function_called = True - else: - raise TypeError("reduce() argument 2 must be an iterable or async iterable") - - # Make sure there is at least one checkpoint, even if an empty iterable and an - # initial value were given - if not function_called: - await checkpoint() - - return value diff --git a/.venv/lib/python3.12/site-packages/anyio/lowlevel.py b/.venv/lib/python3.12/site-packages/anyio/lowlevel.py deleted file mode 100644 index ffbb75a..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/lowlevel.py +++ /dev/null @@ -1,196 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "EventLoopToken", - "RunvarToken", - "RunVar", - "checkpoint", - "checkpoint_if_cancelled", - "cancel_shielded_checkpoint", - "current_token", -) - -import enum -from dataclasses import dataclass -from types import TracebackType -from typing import Any, Generic, Literal, TypeVar, final, overload -from weakref import WeakKeyDictionary - -from ._core._eventloop import get_async_backend -from .abc import AsyncBackend - -T = TypeVar("T") -D = TypeVar("D") - - -async def checkpoint() -> None: - """ - Check for cancellation and allow the scheduler to switch to another task. - - Equivalent to (but more efficient than):: - - await checkpoint_if_cancelled() - await cancel_shielded_checkpoint() - - .. versionadded:: 3.0 - - """ - await get_async_backend().checkpoint() - - -async def checkpoint_if_cancelled() -> None: - """ - Enter a checkpoint if the enclosing cancel scope has been cancelled. - - This does not allow the scheduler to switch to a different task. - - .. versionadded:: 3.0 - - """ - await get_async_backend().checkpoint_if_cancelled() - - -async def cancel_shielded_checkpoint() -> None: - """ - Allow the scheduler to switch to another task but without checking for cancellation. - - Equivalent to (but potentially more efficient than):: - - with CancelScope(shield=True): - await checkpoint() - - .. versionadded:: 3.0 - - """ - await get_async_backend().cancel_shielded_checkpoint() - - -@final -@dataclass(frozen=True, repr=False) -class EventLoopToken: - """ - An opaque object that holds a reference to an event loop. - - .. versionadded:: 4.11.0 - """ - - backend_class: type[AsyncBackend] - native_token: object - - -def current_token() -> EventLoopToken: - """ - Return a token object that can be used to call code in the current event loop from - another thread. - - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - .. versionadded:: 4.11.0 - - """ - backend_class = get_async_backend() - raw_token = backend_class.current_token() - return EventLoopToken(backend_class, raw_token) - - -_run_vars: WeakKeyDictionary[object, dict[RunVar[Any], Any]] = WeakKeyDictionary() - - -class _NoValueSet(enum.Enum): - NO_VALUE_SET = enum.auto() - - -class RunvarToken(Generic[T]): - __slots__ = "_var", "_value", "_redeemed" - - def __init__(self, var: RunVar[T], value: T | Literal[_NoValueSet.NO_VALUE_SET]): - self._var = var - self._value: T | Literal[_NoValueSet.NO_VALUE_SET] = value - self._redeemed = False - - def __enter__(self) -> RunvarToken[T]: - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self._var.reset(self) - - -class RunVar(Generic[T]): - """ - Like a :class:`~contextvars.ContextVar`, except scoped to the running event loop. - - Can be used as a context manager, Just like :class:`~contextvars.ContextVar`, that - will reset the variable to its previous value when the context block is exited. - """ - - __slots__ = "_name", "_default" - - NO_VALUE_SET: Literal[_NoValueSet.NO_VALUE_SET] = _NoValueSet.NO_VALUE_SET - - def __init__( - self, name: str, default: T | Literal[_NoValueSet.NO_VALUE_SET] = NO_VALUE_SET - ): - self._name = name - self._default = default - - @property - def _current_vars(self) -> dict[RunVar[T], T]: - native_token = current_token().native_token - try: - return _run_vars[native_token] - except KeyError: - run_vars = _run_vars[native_token] = {} - return run_vars - - @overload - def get(self, default: D) -> T | D: ... - - @overload - def get(self) -> T: ... - - def get( - self, default: D | Literal[_NoValueSet.NO_VALUE_SET] = NO_VALUE_SET - ) -> T | D: - try: - return self._current_vars[self] - except KeyError: - if default is not RunVar.NO_VALUE_SET: - return default - elif self._default is not RunVar.NO_VALUE_SET: - return self._default - - raise LookupError( - f'Run variable "{self._name}" has no value and no default set' - ) - - def set(self, value: T) -> RunvarToken[T]: - current_vars = self._current_vars - token = RunvarToken(self, current_vars.get(self, RunVar.NO_VALUE_SET)) - current_vars[self] = value - return token - - def reset(self, token: RunvarToken[T]) -> None: - if token._var is not self: - raise ValueError("This token does not belong to this RunVar") - - if token._redeemed: - raise ValueError("This token has already been used") - - if token._value is _NoValueSet.NO_VALUE_SET: - try: - del self._current_vars[self] - except KeyError: - pass - else: - self._current_vars[self] = token._value - - token._redeemed = True - - def __repr__(self) -> str: - return f"" diff --git a/.venv/lib/python3.12/site-packages/anyio/py.typed b/.venv/lib/python3.12/site-packages/anyio/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/anyio/pytest_plugin.py b/.venv/lib/python3.12/site-packages/anyio/pytest_plugin.py deleted file mode 100644 index a5183f0..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/pytest_plugin.py +++ /dev/null @@ -1,363 +0,0 @@ -from __future__ import annotations - -import dataclasses -import socket -import sys -from collections.abc import Callable, Generator, Iterator -from contextlib import ExitStack, contextmanager -from inspect import isasyncgenfunction, iscoroutinefunction, ismethod -from typing import Any, cast - -import pytest -from _pytest.fixtures import FuncFixtureInfo, SubRequest -from _pytest.outcomes import Exit -from _pytest.python import CallSpec2 -from _pytest.scope import Scope - -from . import get_available_backends -from ._core._eventloop import ( - current_async_library, - get_async_backend, - reset_current_async_library, - set_current_async_library, -) -from ._core._exceptions import iterate_exceptions -from .abc import TestRunner - -if sys.version_info < (3, 11): - from exceptiongroup import ExceptionGroup - -_current_runner: TestRunner | None = None -_runner_stack: ExitStack | None = None -_runner_leases = 0 - - -def extract_backend_and_options(backend: object) -> tuple[str, dict[str, Any]]: - if isinstance(backend, str): - return backend, {} - elif isinstance(backend, tuple) and len(backend) == 2: - if isinstance(backend[0], str) and isinstance(backend[1], dict): - return cast(tuple[str, dict[str, Any]], backend) - - raise TypeError("anyio_backend must be either a string or tuple of (string, dict)") - - -@contextmanager -def get_runner( - backend_name: str, backend_options: dict[str, Any] -) -> Iterator[TestRunner]: - global _current_runner, _runner_leases, _runner_stack - if _current_runner is None: - asynclib = get_async_backend(backend_name) - _runner_stack = ExitStack() - if current_async_library() is None: - # Since we're in control of the event loop, we can cache the name of the - # async library - token = set_current_async_library(backend_name) - _runner_stack.callback(reset_current_async_library, token) - - backend_options = backend_options or {} - _current_runner = _runner_stack.enter_context( - asynclib.create_test_runner(backend_options) - ) - - _runner_leases += 1 - try: - yield _current_runner - finally: - _runner_leases -= 1 - if not _runner_leases: - assert _runner_stack is not None - _runner_stack.close() - _runner_stack = _current_runner = None - - -def pytest_addoption(parser: pytest.Parser) -> None: - parser.addini( - "anyio_mode", - default="strict", - help='AnyIO plugin mode (either "strict" or "auto")', - ) - - -def pytest_configure(config: pytest.Config) -> None: - config.addinivalue_line( - "markers", - "anyio: mark the (coroutine function) test to be run asynchronously via anyio.", - ) - if ( - config.getini("anyio_mode") == "auto" - and config.pluginmanager.has_plugin("asyncio") - and config.getini("asyncio_mode") == "auto" - ): - config.issue_config_time_warning( - pytest.PytestConfigWarning( - "AnyIO auto mode has been enabled together with pytest-asyncio auto " - "mode. This may cause unexpected behavior." - ), - 1, - ) - - -@pytest.hookimpl(hookwrapper=True) -def pytest_fixture_setup(fixturedef: Any, request: Any) -> Generator[Any]: - def wrapper(anyio_backend: Any, request: SubRequest, **kwargs: Any) -> Any: - # Rebind any fixture methods to the request instance - if ( - request.instance - and ismethod(func) - and type(func.__self__) is type(request.instance) - ): - local_func = func.__func__.__get__(request.instance) - else: - local_func = func - - backend_name, backend_options = extract_backend_and_options(anyio_backend) - if has_backend_arg: - kwargs["anyio_backend"] = anyio_backend - - if has_request_arg: - kwargs["request"] = request - - with get_runner(backend_name, backend_options) as runner: - if isasyncgenfunction(local_func): - yield from runner.run_asyncgen_fixture(local_func, kwargs) - else: - yield runner.run_fixture(local_func, kwargs) - - # Only apply this to coroutine functions and async generator functions in requests - # that involve the anyio_backend fixture - func = fixturedef.func - if isasyncgenfunction(func) or iscoroutinefunction(func): - if "anyio_backend" in request.fixturenames: - fixturedef.func = wrapper - original_argname = fixturedef.argnames - - if not (has_backend_arg := "anyio_backend" in fixturedef.argnames): - fixturedef.argnames += ("anyio_backend",) - - if not (has_request_arg := "request" in fixturedef.argnames): - fixturedef.argnames += ("request",) - - try: - return (yield) - finally: - fixturedef.func = func - fixturedef.argnames = original_argname - - return (yield) - - -@pytest.hookimpl(tryfirst=True) -def pytest_pycollect_makeitem( - collector: pytest.Module | pytest.Class, name: str, obj: object -) -> None: - if collector.istestfunction(obj, name): - inner_func = obj.hypothesis.inner_test if hasattr(obj, "hypothesis") else obj - if iscoroutinefunction(inner_func): - anyio_auto_mode = collector.config.getini("anyio_mode") == "auto" - marker = collector.get_closest_marker("anyio") - own_markers = getattr(obj, "pytestmark", ()) - if ( - anyio_auto_mode - or marker - or any(marker.name == "anyio" for marker in own_markers) - ): - pytest.mark.usefixtures("anyio_backend")(obj) - - -def pytest_collection_finish(session: pytest.Session) -> None: - for i, item in reversed(list(enumerate(session.items))): - if ( - isinstance(item, pytest.Function) - and iscoroutinefunction(item.function) - and item.get_closest_marker("anyio") is not None - and "anyio_backend" not in item.fixturenames - ): - new_items = [] - try: - cs_fields = {f.name for f in dataclasses.fields(CallSpec2)} - except TypeError: - cs_fields = set() - - for param_index, backend in enumerate(get_available_backends()): - if "_arg2scope" in cs_fields: # pytest >= 8 - callspec = CallSpec2( - params={"anyio_backend": backend}, - indices={"anyio_backend": param_index}, - _arg2scope={"anyio_backend": Scope.Module}, - _idlist=[backend], - marks=[], - ) - else: # pytest 7.x - callspec = CallSpec2( # type: ignore[call-arg] - funcargs={}, - params={"anyio_backend": backend}, - indices={"anyio_backend": param_index}, - arg2scope={"anyio_backend": Scope.Module}, - idlist=[backend], - marks=[], - ) - - fi = item._fixtureinfo - new_names_closure = list(fi.names_closure) - if "anyio_backend" not in new_names_closure: - new_names_closure.append("anyio_backend") - - new_fixtureinfo = FuncFixtureInfo( - argnames=fi.argnames, - initialnames=fi.initialnames, - names_closure=new_names_closure, - name2fixturedefs=fi.name2fixturedefs, - ) - new_item = pytest.Function.from_parent( - item.parent, - name=f"{item.originalname}[{backend}]", - callspec=callspec, - callobj=item.obj, - fixtureinfo=new_fixtureinfo, - keywords=item.keywords, - originalname=item.originalname, - ) - new_items.append(new_item) - - session.items[i : i + 1] = new_items - - -@pytest.hookimpl(tryfirst=True) -def pytest_pyfunc_call(pyfuncitem: Any) -> bool | None: - def run_with_hypothesis(**kwargs: Any) -> None: - with get_runner(backend_name, backend_options) as runner: - runner.run_test(original_func, kwargs) - - backend = pyfuncitem.funcargs.get("anyio_backend") - if backend: - backend_name, backend_options = extract_backend_and_options(backend) - - if hasattr(pyfuncitem.obj, "hypothesis"): - # Wrap the inner test function unless it's already wrapped - original_func = pyfuncitem.obj.hypothesis.inner_test - if original_func.__qualname__ != run_with_hypothesis.__qualname__: - if iscoroutinefunction(original_func): - pyfuncitem.obj.hypothesis.inner_test = run_with_hypothesis - - return None - - if iscoroutinefunction(pyfuncitem.obj): - funcargs = pyfuncitem.funcargs - testargs = {arg: funcargs[arg] for arg in pyfuncitem._fixtureinfo.argnames} - with get_runner(backend_name, backend_options) as runner: - try: - runner.run_test(pyfuncitem.obj, testargs) - except ExceptionGroup as excgrp: - for exc in iterate_exceptions(excgrp): - if isinstance(exc, (Exit, KeyboardInterrupt, SystemExit)): - raise exc from excgrp - - raise - - return True - - return None - - -@pytest.fixture(scope="module", params=get_available_backends()) -def anyio_backend(request: Any) -> Any: - return request.param - - -@pytest.fixture -def anyio_backend_name(anyio_backend: Any) -> str: - if isinstance(anyio_backend, str): - return anyio_backend - else: - return anyio_backend[0] - - -@pytest.fixture -def anyio_backend_options(anyio_backend: Any) -> dict[str, Any]: - if isinstance(anyio_backend, str): - return {} - else: - return anyio_backend[1] - - -class FreePortFactory: - """ - Manages port generation based on specified socket kind, ensuring no duplicate - ports are generated. - - This class provides functionality for generating available free ports on the - system. It is initialized with a specific socket kind and can generate ports - for given address families while avoiding reuse of previously generated ports. - - Users should not instantiate this class directly, but use the - ``free_tcp_port_factory`` and ``free_udp_port_factory`` fixtures instead. For simple - uses cases, ``free_tcp_port`` and ``free_udp_port`` can be used instead. - """ - - def __init__(self, kind: socket.SocketKind) -> None: - self._kind = kind - self._generated = set[int]() - - @property - def kind(self) -> socket.SocketKind: - """ - The type of socket connection (e.g., :data:`~socket.SOCK_STREAM` or - :data:`~socket.SOCK_DGRAM`) used to bind for checking port availability - - """ - return self._kind - - def __call__(self, family: socket.AddressFamily | None = None) -> int: - """ - Return an unbound port for the given address family. - - :param family: if omitted, both IPv4 and IPv6 addresses will be tried - :return: a port number - - """ - if family is not None: - families = [family] - else: - families = [socket.AF_INET] - if socket.has_ipv6: - families.append(socket.AF_INET6) - - while True: - port = 0 - with ExitStack() as stack: - for family in families: - sock = stack.enter_context(socket.socket(family, self._kind)) - addr = "::1" if family == socket.AF_INET6 else "127.0.0.1" - try: - sock.bind((addr, port)) - except OSError: - break - - if not port: - port = sock.getsockname()[1] - else: - if port not in self._generated: - self._generated.add(port) - return port - - -@pytest.fixture(scope="session") -def free_tcp_port_factory() -> FreePortFactory: - return FreePortFactory(socket.SOCK_STREAM) - - -@pytest.fixture(scope="session") -def free_udp_port_factory() -> FreePortFactory: - return FreePortFactory(socket.SOCK_DGRAM) - - -@pytest.fixture -def free_tcp_port(free_tcp_port_factory: Callable[[], int]) -> int: - return free_tcp_port_factory() - - -@pytest.fixture -def free_udp_port(free_udp_port_factory: Callable[[], int]) -> int: - return free_udp_port_factory() diff --git a/.venv/lib/python3.12/site-packages/anyio/streams/__init__.py b/.venv/lib/python3.12/site-packages/anyio/streams/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b12ee5a..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/buffered.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/buffered.cpython-312.pyc deleted file mode 100644 index 66ffc9e..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/buffered.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/file.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/file.cpython-312.pyc deleted file mode 100644 index 60a646a..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/file.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/memory.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/memory.cpython-312.pyc deleted file mode 100644 index 9fd5c76..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/memory.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/stapled.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/stapled.cpython-312.pyc deleted file mode 100644 index e6da255..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/stapled.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/text.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/text.cpython-312.pyc deleted file mode 100644 index dbd0abc..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/text.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/tls.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/tls.cpython-312.pyc deleted file mode 100644 index d6482d5..0000000 Binary files a/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/tls.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/anyio/streams/buffered.py b/.venv/lib/python3.12/site-packages/anyio/streams/buffered.py deleted file mode 100644 index 57c7cd7..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/streams/buffered.py +++ /dev/null @@ -1,188 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "BufferedByteReceiveStream", - "BufferedByteStream", - "BufferedConnectable", -) - -import sys -from collections.abc import Callable, Iterable, Mapping -from dataclasses import dataclass, field -from typing import Any, SupportsIndex - -from .. import ClosedResourceError, DelimiterNotFound, EndOfStream, IncompleteRead -from ..abc import ( - AnyByteReceiveStream, - AnyByteStream, - AnyByteStreamConnectable, - ByteReceiveStream, - ByteStream, - ByteStreamConnectable, -) - -if sys.version_info >= (3, 12): - from typing import override -else: - from typing_extensions import override - - -@dataclass(eq=False) -class BufferedByteReceiveStream(ByteReceiveStream): - """ - Wraps any bytes-based receive stream and uses a buffer to provide sophisticated - receiving capabilities in the form of a byte stream. - """ - - receive_stream: AnyByteReceiveStream - _buffer: bytearray = field(init=False, default_factory=bytearray) - _closed: bool = field(init=False, default=False) - - async def aclose(self) -> None: - await self.receive_stream.aclose() - self._closed = True - - @property - def buffer(self) -> bytes: - """The bytes currently in the buffer.""" - return bytes(self._buffer) - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - return self.receive_stream.extra_attributes - - def feed_data(self, data: Iterable[SupportsIndex], /) -> None: - """ - Append data directly into the buffer. - - Any data in the buffer will be consumed by receive operations before receiving - anything from the wrapped stream. - - :param data: the data to append to the buffer (can be bytes or anything else - that supports ``__index__()``) - - """ - self._buffer.extend(data) - - async def receive(self, max_bytes: int = 65536) -> bytes: - if self._closed: - raise ClosedResourceError - - if self._buffer: - chunk = bytes(self._buffer[:max_bytes]) - del self._buffer[:max_bytes] - return chunk - elif isinstance(self.receive_stream, ByteReceiveStream): - return await self.receive_stream.receive(max_bytes) - else: - # With a bytes-oriented object stream, we need to handle any surplus bytes - # we get from the receive() call - chunk = await self.receive_stream.receive() - if len(chunk) > max_bytes: - # Save the surplus bytes in the buffer - self._buffer.extend(chunk[max_bytes:]) - return chunk[:max_bytes] - else: - return chunk - - async def receive_exactly(self, nbytes: int) -> bytes: - """ - Read exactly the given amount of bytes from the stream. - - :param nbytes: the number of bytes to read - :return: the bytes read - :raises ~anyio.IncompleteRead: if the stream was closed before the requested - amount of bytes could be read from the stream - - """ - while True: - remaining = nbytes - len(self._buffer) - if remaining <= 0: - retval = self._buffer[:nbytes] - del self._buffer[:nbytes] - return bytes(retval) - - try: - if isinstance(self.receive_stream, ByteReceiveStream): - chunk = await self.receive_stream.receive(remaining) - else: - chunk = await self.receive_stream.receive() - except EndOfStream as exc: - raise IncompleteRead from exc - - self._buffer.extend(chunk) - - async def receive_until(self, delimiter: bytes, max_bytes: int) -> bytes: - """ - Read from the stream until the delimiter is found or max_bytes have been read. - - :param delimiter: the marker to look for in the stream - :param max_bytes: maximum number of bytes that will be read before raising - :exc:`~anyio.DelimiterNotFound` - :return: the bytes read (not including the delimiter) - :raises ~anyio.IncompleteRead: if the stream was closed before the delimiter - was found - :raises ~anyio.DelimiterNotFound: if the delimiter is not found within the - bytes read up to the maximum allowed - - """ - delimiter_size = len(delimiter) - offset = 0 - while True: - # Check if the delimiter can be found in the current buffer - index = self._buffer.find(delimiter, offset) - if index >= 0: - found = self._buffer[:index] - del self._buffer[: index + len(delimiter) :] - return bytes(found) - - # Check if the buffer is already at or over the limit - if len(self._buffer) >= max_bytes: - raise DelimiterNotFound(max_bytes) - - # Read more data into the buffer from the socket - try: - data = await self.receive_stream.receive() - except EndOfStream as exc: - raise IncompleteRead from exc - - # Move the offset forward and add the new data to the buffer - offset = max(len(self._buffer) - delimiter_size + 1, 0) - self._buffer.extend(data) - - -class BufferedByteStream(BufferedByteReceiveStream, ByteStream): - """ - A full-duplex variant of :class:`BufferedByteReceiveStream`. All writes are passed - through to the wrapped stream as-is. - """ - - def __init__(self, stream: AnyByteStream): - """ - :param stream: the stream to be wrapped - - """ - super().__init__(stream) - self._stream = stream - - @override - async def send_eof(self) -> None: - await self._stream.send_eof() - - @override - async def send(self, item: bytes) -> None: - await self._stream.send(item) - - -class BufferedConnectable(ByteStreamConnectable): - def __init__(self, connectable: AnyByteStreamConnectable): - """ - :param connectable: the connectable to wrap - - """ - self.connectable = connectable - - @override - async def connect(self) -> BufferedByteStream: - stream = await self.connectable.connect() - return BufferedByteStream(stream) diff --git a/.venv/lib/python3.12/site-packages/anyio/streams/file.py b/.venv/lib/python3.12/site-packages/anyio/streams/file.py deleted file mode 100644 index 79c3d50..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/streams/file.py +++ /dev/null @@ -1,154 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "FileReadStream", - "FileStreamAttribute", - "FileWriteStream", -) - -from collections.abc import Callable, Mapping -from io import SEEK_SET, UnsupportedOperation -from os import PathLike -from pathlib import Path -from typing import IO, Any - -from .. import ( - BrokenResourceError, - ClosedResourceError, - EndOfStream, - TypedAttributeSet, - to_thread, - typed_attribute, -) -from ..abc import ByteReceiveStream, ByteSendStream - - -class FileStreamAttribute(TypedAttributeSet): - #: the open file descriptor - file: IO[bytes] = typed_attribute() - #: the path of the file on the file system, if available (file must be a real file) - path: Path = typed_attribute() - #: the file number, if available (file must be a real file or a TTY) - fileno: int = typed_attribute() - - -class _BaseFileStream: - def __init__(self, file: IO[bytes]): - self._file = file - - async def aclose(self) -> None: - await to_thread.run_sync(self._file.close) - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - attributes: dict[Any, Callable[[], Any]] = { - FileStreamAttribute.file: lambda: self._file, - } - - if hasattr(self._file, "name"): - attributes[FileStreamAttribute.path] = lambda: Path(self._file.name) - - try: - self._file.fileno() - except UnsupportedOperation: - pass - else: - attributes[FileStreamAttribute.fileno] = lambda: self._file.fileno() - - return attributes - - -class FileReadStream(_BaseFileStream, ByteReceiveStream): - """ - A byte stream that reads from a file in the file system. - - :param file: a file that has been opened for reading in binary mode - - .. versionadded:: 3.0 - """ - - @classmethod - async def from_path(cls, path: str | PathLike[str]) -> FileReadStream: - """ - Create a file read stream by opening the given file. - - :param path: path of the file to read from - - """ - file = await to_thread.run_sync(Path(path).open, "rb") - return cls(file) - - async def receive(self, max_bytes: int = 65536) -> bytes: - try: - data = await to_thread.run_sync(self._file.read, max_bytes) - except ValueError: - raise ClosedResourceError from None - except OSError as exc: - raise BrokenResourceError from exc - - if data: - return data - else: - raise EndOfStream - - async def seek(self, position: int, whence: int = SEEK_SET) -> int: - """ - Seek the file to the given position. - - .. seealso:: :meth:`io.IOBase.seek` - - .. note:: Not all file descriptors are seekable. - - :param position: position to seek the file to - :param whence: controls how ``position`` is interpreted - :return: the new absolute position - :raises OSError: if the file is not seekable - - """ - return await to_thread.run_sync(self._file.seek, position, whence) - - async def tell(self) -> int: - """ - Return the current stream position. - - .. note:: Not all file descriptors are seekable. - - :return: the current absolute position - :raises OSError: if the file is not seekable - - """ - return await to_thread.run_sync(self._file.tell) - - -class FileWriteStream(_BaseFileStream, ByteSendStream): - """ - A byte stream that writes to a file in the file system. - - :param file: a file that has been opened for writing in binary mode - - .. versionadded:: 3.0 - """ - - @classmethod - async def from_path( - cls, path: str | PathLike[str], append: bool = False - ) -> FileWriteStream: - """ - Create a file write stream by opening the given file for writing. - - :param path: path of the file to write to - :param append: if ``True``, open the file for appending; if ``False``, any - existing file at the given path will be truncated - - """ - mode = "ab" if append else "wb" - file = await to_thread.run_sync(Path(path).open, mode) - return cls(file) - - async def send(self, item: bytes) -> None: - try: - await to_thread.run_sync(self._file.write, item) - except ValueError: - raise ClosedResourceError from None - except OSError as exc: - raise BrokenResourceError from exc diff --git a/.venv/lib/python3.12/site-packages/anyio/streams/memory.py b/.venv/lib/python3.12/site-packages/anyio/streams/memory.py deleted file mode 100644 index a3fa0c3..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/streams/memory.py +++ /dev/null @@ -1,325 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "MemoryObjectReceiveStream", - "MemoryObjectSendStream", - "MemoryObjectStreamStatistics", -) - -import warnings -from collections import OrderedDict, deque -from dataclasses import dataclass, field -from types import TracebackType -from typing import Generic, NamedTuple, TypeVar - -from .. import ( - BrokenResourceError, - ClosedResourceError, - EndOfStream, - WouldBlock, -) -from .._core._testing import TaskInfo, get_current_task -from ..abc import Event, ObjectReceiveStream, ObjectSendStream -from ..lowlevel import checkpoint - -T_Item = TypeVar("T_Item") -T_co = TypeVar("T_co", covariant=True) -T_contra = TypeVar("T_contra", contravariant=True) - - -class MemoryObjectStreamStatistics(NamedTuple): - current_buffer_used: int #: number of items stored in the buffer - #: maximum number of items that can be stored on this stream (or :data:`math.inf`) - max_buffer_size: float - open_send_streams: int #: number of unclosed clones of the send stream - open_receive_streams: int #: number of unclosed clones of the receive stream - #: number of tasks blocked on :meth:`MemoryObjectSendStream.send` - tasks_waiting_send: int - #: number of tasks blocked on :meth:`MemoryObjectReceiveStream.receive` - tasks_waiting_receive: int - - -@dataclass(eq=False) -class _MemoryObjectItemReceiver(Generic[T_Item]): - task_info: TaskInfo = field(init=False, default_factory=get_current_task) - item: T_Item = field(init=False) - - def __repr__(self) -> str: - # When item is not defined, we get following error with default __repr__: - # AttributeError: 'MemoryObjectItemReceiver' object has no attribute 'item' - item = getattr(self, "item", None) - return f"{self.__class__.__name__}(task_info={self.task_info}, item={item!r})" - - -@dataclass(eq=False) -class _MemoryObjectStreamState(Generic[T_Item]): - max_buffer_size: float = field() - buffer: deque[T_Item] = field(init=False, default_factory=deque) - open_send_channels: int = field(init=False, default=0) - open_receive_channels: int = field(init=False, default=0) - waiting_receivers: OrderedDict[Event, _MemoryObjectItemReceiver[T_Item]] = field( - init=False, default_factory=OrderedDict - ) - waiting_senders: OrderedDict[Event, T_Item] = field( - init=False, default_factory=OrderedDict - ) - - def statistics(self) -> MemoryObjectStreamStatistics: - return MemoryObjectStreamStatistics( - len(self.buffer), - self.max_buffer_size, - self.open_send_channels, - self.open_receive_channels, - len(self.waiting_senders), - len(self.waiting_receivers), - ) - - -@dataclass(eq=False) -class MemoryObjectReceiveStream(Generic[T_co], ObjectReceiveStream[T_co]): - _state: _MemoryObjectStreamState[T_co] - _closed: bool = field(init=False, default=False) - - def __post_init__(self) -> None: - self._state.open_receive_channels += 1 - - def receive_nowait(self) -> T_co: - """ - Receive the next item if it can be done without waiting. - - :return: the received item - :raises ~anyio.ClosedResourceError: if this send stream has been closed - :raises ~anyio.EndOfStream: if the buffer is empty and this stream has been - closed from the sending end - :raises ~anyio.WouldBlock: if there are no items in the buffer and no tasks - waiting to send - - """ - if self._closed: - raise ClosedResourceError - - if self._state.waiting_senders: - # Get the item from the next sender - send_event, item = self._state.waiting_senders.popitem(last=False) - self._state.buffer.append(item) - send_event.set() - - if self._state.buffer: - return self._state.buffer.popleft() - elif not self._state.open_send_channels: - raise EndOfStream - - raise WouldBlock - - async def receive(self) -> T_co: - await checkpoint() - try: - return self.receive_nowait() - except WouldBlock: - # Add ourselves in the queue - receive_event = Event() - receiver = _MemoryObjectItemReceiver[T_co]() - self._state.waiting_receivers[receive_event] = receiver - - try: - await receive_event.wait() - finally: - self._state.waiting_receivers.pop(receive_event, None) - - try: - return receiver.item - except AttributeError: - raise EndOfStream from None - - def clone(self) -> MemoryObjectReceiveStream[T_co]: - """ - Create a clone of this receive stream. - - Each clone can be closed separately. Only when all clones have been closed will - the receiving end of the memory stream be considered closed by the sending ends. - - :return: the cloned stream - - """ - if self._closed: - raise ClosedResourceError - - return MemoryObjectReceiveStream(_state=self._state) - - def close(self) -> None: - """ - Close the stream. - - This works the exact same way as :meth:`aclose`, but is provided as a special - case for the benefit of synchronous callbacks. - - """ - if not self._closed: - self._closed = True - self._state.open_receive_channels -= 1 - if self._state.open_receive_channels == 0: - send_events = list(self._state.waiting_senders.keys()) - for event in send_events: - event.set() - - async def aclose(self) -> None: - self.close() - - def statistics(self) -> MemoryObjectStreamStatistics: - """ - Return statistics about the current state of this stream. - - .. versionadded:: 3.0 - """ - return self._state.statistics() - - def __enter__(self) -> MemoryObjectReceiveStream[T_co]: - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self.close() - - def __del__(self) -> None: - if not self._closed: - warnings.warn( - f"Unclosed <{self.__class__.__name__} at {id(self):x}>", - ResourceWarning, - stacklevel=1, - source=self, - ) - - -@dataclass(eq=False) -class MemoryObjectSendStream(Generic[T_contra], ObjectSendStream[T_contra]): - _state: _MemoryObjectStreamState[T_contra] - _closed: bool = field(init=False, default=False) - - def __post_init__(self) -> None: - self._state.open_send_channels += 1 - - def send_nowait(self, item: T_contra) -> None: - """ - Send an item immediately if it can be done without waiting. - - :param item: the item to send - :raises ~anyio.ClosedResourceError: if this send stream has been closed - :raises ~anyio.BrokenResourceError: if the stream has been closed from the - receiving end - :raises ~anyio.WouldBlock: if the buffer is full and there are no tasks waiting - to receive - - """ - if self._closed: - raise ClosedResourceError - if not self._state.open_receive_channels: - raise BrokenResourceError - - while self._state.waiting_receivers: - receive_event, receiver = self._state.waiting_receivers.popitem(last=False) - if not receiver.task_info.has_pending_cancellation(): - receiver.item = item - receive_event.set() - return - - if len(self._state.buffer) < self._state.max_buffer_size: - self._state.buffer.append(item) - else: - raise WouldBlock - - async def send(self, item: T_contra) -> None: - """ - Send an item to the stream. - - If the buffer is full, this method blocks until there is again room in the - buffer or the item can be sent directly to a receiver. - - :param item: the item to send - :raises ~anyio.ClosedResourceError: if this send stream has been closed - :raises ~anyio.BrokenResourceError: if the stream has been closed from the - receiving end - - """ - await checkpoint() - try: - self.send_nowait(item) - except WouldBlock: - # Wait until there's someone on the receiving end - send_event = Event() - self._state.waiting_senders[send_event] = item - try: - await send_event.wait() - except BaseException: - self._state.waiting_senders.pop(send_event, None) - raise - - if send_event in self._state.waiting_senders: - del self._state.waiting_senders[send_event] - raise BrokenResourceError from None - - def clone(self) -> MemoryObjectSendStream[T_contra]: - """ - Create a clone of this send stream. - - Each clone can be closed separately. Only when all clones have been closed will - the sending end of the memory stream be considered closed by the receiving ends. - - :return: the cloned stream - - """ - if self._closed: - raise ClosedResourceError - - return MemoryObjectSendStream(_state=self._state) - - def close(self) -> None: - """ - Close the stream. - - This works the exact same way as :meth:`aclose`, but is provided as a special - case for the benefit of synchronous callbacks. - - """ - if not self._closed: - self._closed = True - self._state.open_send_channels -= 1 - if self._state.open_send_channels == 0: - receive_events = list(self._state.waiting_receivers.keys()) - self._state.waiting_receivers.clear() - for event in receive_events: - event.set() - - async def aclose(self) -> None: - self.close() - - def statistics(self) -> MemoryObjectStreamStatistics: - """ - Return statistics about the current state of this stream. - - .. versionadded:: 3.0 - """ - return self._state.statistics() - - def __enter__(self) -> MemoryObjectSendStream[T_contra]: - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self.close() - - def __del__(self) -> None: - if not self._closed: - warnings.warn( - f"Unclosed <{self.__class__.__name__} at {id(self):x}>", - ResourceWarning, - stacklevel=1, - source=self, - ) diff --git a/.venv/lib/python3.12/site-packages/anyio/streams/stapled.py b/.venv/lib/python3.12/site-packages/anyio/streams/stapled.py deleted file mode 100644 index 9248b68..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/streams/stapled.py +++ /dev/null @@ -1,147 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "MultiListener", - "StapledByteStream", - "StapledObjectStream", -) - -from collections.abc import Callable, Mapping, Sequence -from dataclasses import dataclass -from typing import Any, Generic, TypeVar - -from ..abc import ( - ByteReceiveStream, - ByteSendStream, - ByteStream, - Listener, - ObjectReceiveStream, - ObjectSendStream, - ObjectStream, - TaskGroup, -) - -T_Item = TypeVar("T_Item") -T_Stream = TypeVar("T_Stream") - - -@dataclass(eq=False) -class StapledByteStream(ByteStream): - """ - Combines two byte streams into a single, bidirectional byte stream. - - Extra attributes will be provided from both streams, with the receive stream - providing the values in case of a conflict. - - :param ByteSendStream send_stream: the sending byte stream - :param ByteReceiveStream receive_stream: the receiving byte stream - """ - - send_stream: ByteSendStream - receive_stream: ByteReceiveStream - - async def receive(self, max_bytes: int = 65536) -> bytes: - return await self.receive_stream.receive(max_bytes) - - async def send(self, item: bytes) -> None: - await self.send_stream.send(item) - - async def send_eof(self) -> None: - await self.send_stream.aclose() - - async def aclose(self) -> None: - await self.send_stream.aclose() - await self.receive_stream.aclose() - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - return { - **self.send_stream.extra_attributes, - **self.receive_stream.extra_attributes, - } - - -@dataclass(eq=False) -class StapledObjectStream(Generic[T_Item], ObjectStream[T_Item]): - """ - Combines two object streams into a single, bidirectional object stream. - - Extra attributes will be provided from both streams, with the receive stream - providing the values in case of a conflict. - - :param ObjectSendStream send_stream: the sending object stream - :param ObjectReceiveStream receive_stream: the receiving object stream - """ - - send_stream: ObjectSendStream[T_Item] - receive_stream: ObjectReceiveStream[T_Item] - - async def receive(self) -> T_Item: - return await self.receive_stream.receive() - - async def send(self, item: T_Item) -> None: - await self.send_stream.send(item) - - async def send_eof(self) -> None: - await self.send_stream.aclose() - - async def aclose(self) -> None: - await self.send_stream.aclose() - await self.receive_stream.aclose() - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - return { - **self.send_stream.extra_attributes, - **self.receive_stream.extra_attributes, - } - - -@dataclass(eq=False) -class MultiListener(Generic[T_Stream], Listener[T_Stream]): - """ - Combines multiple listeners into one, serving connections from all of them at once. - - Any MultiListeners in the given collection of listeners will have their listeners - moved into this one. - - Extra attributes are provided from each listener, with each successive listener - overriding any conflicting attributes from the previous one. - - :param listeners: listeners to serve - :type listeners: Sequence[Listener[T_Stream]] - """ - - listeners: Sequence[Listener[T_Stream]] - - def __post_init__(self) -> None: - listeners: list[Listener[T_Stream]] = [] - for listener in self.listeners: - if isinstance(listener, MultiListener): - listeners.extend(listener.listeners) - del listener.listeners[:] # type: ignore[attr-defined] - else: - listeners.append(listener) - - self.listeners = listeners - - async def serve( - self, handler: Callable[[T_Stream], Any], task_group: TaskGroup | None = None - ) -> None: - from .. import create_task_group - - async with create_task_group() as tg: - for listener in self.listeners: - tg.start_soon(listener.serve, handler, task_group) - - async def aclose(self) -> None: - for listener in self.listeners: - await listener.aclose() - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - attributes: dict = {} - for listener in self.listeners: - attributes.update(listener.extra_attributes) - - return attributes diff --git a/.venv/lib/python3.12/site-packages/anyio/streams/text.py b/.venv/lib/python3.12/site-packages/anyio/streams/text.py deleted file mode 100644 index 296cd25..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/streams/text.py +++ /dev/null @@ -1,176 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "TextConnectable", - "TextReceiveStream", - "TextSendStream", - "TextStream", -) - -import codecs -import sys -from collections.abc import Callable, Mapping -from dataclasses import InitVar, dataclass, field -from typing import Any - -from ..abc import ( - AnyByteReceiveStream, - AnyByteSendStream, - AnyByteStream, - AnyByteStreamConnectable, - ObjectReceiveStream, - ObjectSendStream, - ObjectStream, - ObjectStreamConnectable, -) - -if sys.version_info >= (3, 12): - from typing import override -else: - from typing_extensions import override - - -@dataclass(eq=False) -class TextReceiveStream(ObjectReceiveStream[str]): - """ - Stream wrapper that decodes bytes to strings using the given encoding. - - Decoding is done using :class:`~codecs.IncrementalDecoder` which returns any - completely received unicode characters as soon as they come in. - - :param transport_stream: any bytes-based receive stream - :param encoding: character encoding to use for decoding bytes to strings (defaults - to ``utf-8``) - :param errors: handling scheme for decoding errors (defaults to ``strict``; see the - `codecs module documentation`_ for a comprehensive list of options) - - .. _codecs module documentation: - https://docs.python.org/3/library/codecs.html#codec-objects - """ - - transport_stream: AnyByteReceiveStream - encoding: InitVar[str] = "utf-8" - errors: InitVar[str] = "strict" - _decoder: codecs.IncrementalDecoder = field(init=False) - - def __post_init__(self, encoding: str, errors: str) -> None: - decoder_class = codecs.getincrementaldecoder(encoding) - self._decoder = decoder_class(errors=errors) - - async def receive(self) -> str: - while True: - chunk = await self.transport_stream.receive() - decoded = self._decoder.decode(chunk) - if decoded: - return decoded - - async def aclose(self) -> None: - await self.transport_stream.aclose() - self._decoder.reset() - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - return self.transport_stream.extra_attributes - - -@dataclass(eq=False) -class TextSendStream(ObjectSendStream[str]): - """ - Sends strings to the wrapped stream as bytes using the given encoding. - - :param AnyByteSendStream transport_stream: any bytes-based send stream - :param str encoding: character encoding to use for encoding strings to bytes - (defaults to ``utf-8``) - :param str errors: handling scheme for encoding errors (defaults to ``strict``; see - the `codecs module documentation`_ for a comprehensive list of options) - - .. _codecs module documentation: - https://docs.python.org/3/library/codecs.html#codec-objects - """ - - transport_stream: AnyByteSendStream - encoding: InitVar[str] = "utf-8" - errors: str = "strict" - _encoder: Callable[..., tuple[bytes, int]] = field(init=False) - - def __post_init__(self, encoding: str) -> None: - self._encoder = codecs.getencoder(encoding) - - async def send(self, item: str) -> None: - encoded = self._encoder(item, self.errors)[0] - await self.transport_stream.send(encoded) - - async def aclose(self) -> None: - await self.transport_stream.aclose() - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - return self.transport_stream.extra_attributes - - -@dataclass(eq=False) -class TextStream(ObjectStream[str]): - """ - A bidirectional stream that decodes bytes to strings on receive and encodes strings - to bytes on send. - - Extra attributes will be provided from both streams, with the receive stream - providing the values in case of a conflict. - - :param AnyByteStream transport_stream: any bytes-based stream - :param str encoding: character encoding to use for encoding/decoding strings to/from - bytes (defaults to ``utf-8``) - :param str errors: handling scheme for encoding errors (defaults to ``strict``; see - the `codecs module documentation`_ for a comprehensive list of options) - - .. _codecs module documentation: - https://docs.python.org/3/library/codecs.html#codec-objects - """ - - transport_stream: AnyByteStream - encoding: InitVar[str] = "utf-8" - errors: InitVar[str] = "strict" - _receive_stream: TextReceiveStream = field(init=False) - _send_stream: TextSendStream = field(init=False) - - def __post_init__(self, encoding: str, errors: str) -> None: - self._receive_stream = TextReceiveStream( - self.transport_stream, encoding=encoding, errors=errors - ) - self._send_stream = TextSendStream( - self.transport_stream, encoding=encoding, errors=errors - ) - - async def receive(self) -> str: - return await self._receive_stream.receive() - - async def send(self, item: str) -> None: - await self._send_stream.send(item) - - async def send_eof(self) -> None: - await self.transport_stream.send_eof() - - async def aclose(self) -> None: - await self._send_stream.aclose() - await self._receive_stream.aclose() - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - return { - **self._send_stream.extra_attributes, - **self._receive_stream.extra_attributes, - } - - -class TextConnectable(ObjectStreamConnectable[str]): - def __init__(self, connectable: AnyByteStreamConnectable): - """ - :param connectable: the bytestream endpoint to wrap - - """ - self.connectable = connectable - - @override - async def connect(self) -> TextStream: - stream = await self.connectable.connect() - return TextStream(stream) diff --git a/.venv/lib/python3.12/site-packages/anyio/streams/tls.py b/.venv/lib/python3.12/site-packages/anyio/streams/tls.py deleted file mode 100644 index e2a7ca5..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/streams/tls.py +++ /dev/null @@ -1,421 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "TLSAttribute", - "TLSConnectable", - "TLSListener", - "TLSStream", -) - -import logging -import re -import ssl -import sys -from collections.abc import Callable, Mapping -from dataclasses import dataclass -from functools import wraps -from ssl import SSLContext -from typing import Any, TypeAlias, TypeVar - -from .. import ( - BrokenResourceError, - EndOfStream, - aclose_forcefully, - get_cancelled_exc_class, - to_thread, -) -from .._core._typedattr import TypedAttributeSet, typed_attribute -from ..abc import ( - AnyByteStream, - AnyByteStreamConnectable, - ByteStream, - ByteStreamConnectable, - Listener, - TaskGroup, -) - -if sys.version_info >= (3, 11): - from typing import TypeVarTuple, Unpack -else: - from typing_extensions import TypeVarTuple, Unpack - -if sys.version_info >= (3, 12): - from typing import override -else: - from typing_extensions import override - -T_Retval = TypeVar("T_Retval") -PosArgsT = TypeVarTuple("PosArgsT") -_PCTRTT: TypeAlias = tuple[tuple[str, str], ...] -_PCTRTTT: TypeAlias = tuple[_PCTRTT, ...] - - -class TLSAttribute(TypedAttributeSet): - """Contains Transport Layer Security related attributes.""" - - #: the selected ALPN protocol - alpn_protocol: str | None = typed_attribute() - #: the channel binding for type ``tls-unique`` - channel_binding_tls_unique: bytes = typed_attribute() - #: the selected cipher - cipher: tuple[str, str, int] = typed_attribute() - #: the peer certificate in dictionary form (see :meth:`ssl.SSLSocket.getpeercert` - # for more information) - peer_certificate: None | (dict[str, str | _PCTRTTT | _PCTRTT]) = typed_attribute() - #: the peer certificate in binary form - peer_certificate_binary: bytes | None = typed_attribute() - #: ``True`` if this is the server side of the connection - server_side: bool = typed_attribute() - #: ciphers shared by the client during the TLS handshake (``None`` if this is the - #: client side) - shared_ciphers: list[tuple[str, str, int]] | None = typed_attribute() - #: the :class:`~ssl.SSLObject` used for encryption - ssl_object: ssl.SSLObject = typed_attribute() - #: ``True`` if this stream does (and expects) a closing TLS handshake when the - #: stream is being closed - standard_compatible: bool = typed_attribute() - #: the TLS protocol version (e.g. ``TLSv1.2``) - tls_version: str = typed_attribute() - - -@dataclass(eq=False) -class TLSStream(ByteStream): - """ - A stream wrapper that encrypts all sent data and decrypts received data. - - This class has no public initializer; use :meth:`wrap` instead. - All extra attributes from :class:`~TLSAttribute` are supported. - - :var AnyByteStream transport_stream: the wrapped stream - - """ - - transport_stream: AnyByteStream - standard_compatible: bool - _ssl_object: ssl.SSLObject - _read_bio: ssl.MemoryBIO - _write_bio: ssl.MemoryBIO - - @classmethod - async def wrap( - cls, - transport_stream: AnyByteStream, - *, - server_side: bool | None = None, - hostname: str | None = None, - ssl_context: ssl.SSLContext | None = None, - standard_compatible: bool = True, - ) -> TLSStream: - """ - Wrap an existing stream with Transport Layer Security. - - This performs a TLS handshake with the peer. - - :param transport_stream: a bytes-transporting stream to wrap - :param server_side: ``True`` if this is the server side of the connection, - ``False`` if this is the client side (if omitted, will be set to ``False`` - if ``hostname`` has been provided, ``False`` otherwise). Used only to create - a default context when an explicit context has not been provided. - :param hostname: host name of the peer (if host name checking is desired) - :param ssl_context: the SSLContext object to use (if not provided, a secure - default will be created) - :param standard_compatible: if ``False``, skip the closing handshake when - closing the connection, and don't raise an exception if the peer does the - same - :raises ~ssl.SSLError: if the TLS handshake fails - - """ - if server_side is None: - server_side = not hostname - - if not ssl_context: - purpose = ( - ssl.Purpose.CLIENT_AUTH if server_side else ssl.Purpose.SERVER_AUTH - ) - ssl_context = ssl.create_default_context(purpose) - - # Re-enable detection of unexpected EOFs if it was disabled by Python - if hasattr(ssl, "OP_IGNORE_UNEXPECTED_EOF"): - ssl_context.options &= ~ssl.OP_IGNORE_UNEXPECTED_EOF - - bio_in = ssl.MemoryBIO() - bio_out = ssl.MemoryBIO() - - # External SSLContext implementations may do blocking I/O in wrap_bio(), - # but the standard library implementation won't - if type(ssl_context) is ssl.SSLContext: - ssl_object = ssl_context.wrap_bio( - bio_in, bio_out, server_side=server_side, server_hostname=hostname - ) - else: - ssl_object = await to_thread.run_sync( - ssl_context.wrap_bio, - bio_in, - bio_out, - server_side, - hostname, - None, - ) - - wrapper = cls( - transport_stream=transport_stream, - standard_compatible=standard_compatible, - _ssl_object=ssl_object, - _read_bio=bio_in, - _write_bio=bio_out, - ) - await wrapper._call_sslobject_method(ssl_object.do_handshake) - return wrapper - - async def _call_sslobject_method( - self, func: Callable[[Unpack[PosArgsT]], T_Retval], *args: Unpack[PosArgsT] - ) -> T_Retval: - while True: - try: - result = func(*args) - except ssl.SSLWantReadError: - try: - # Flush any pending writes first - if self._write_bio.pending: - await self.transport_stream.send(self._write_bio.read()) - - data = await self.transport_stream.receive() - except EndOfStream: - self._read_bio.write_eof() - except OSError as exc: - self._read_bio.write_eof() - self._write_bio.write_eof() - raise BrokenResourceError from exc - else: - self._read_bio.write(data) - except ssl.SSLWantWriteError: - await self.transport_stream.send(self._write_bio.read()) - except ssl.SSLSyscallError as exc: - self._read_bio.write_eof() - self._write_bio.write_eof() - raise BrokenResourceError from exc - except ssl.SSLError as exc: - self._read_bio.write_eof() - self._write_bio.write_eof() - if isinstance(exc, ssl.SSLEOFError) or ( - exc.strerror and "UNEXPECTED_EOF_WHILE_READING" in exc.strerror - ): - if self.standard_compatible: - raise BrokenResourceError from exc - else: - raise EndOfStream from None - - raise - else: - # Flush any pending writes first - if self._write_bio.pending: - await self.transport_stream.send(self._write_bio.read()) - - return result - - async def unwrap(self) -> tuple[AnyByteStream, bytes]: - """ - Does the TLS closing handshake. - - :return: a tuple of (wrapped byte stream, bytes left in the read buffer) - - """ - await self._call_sslobject_method(self._ssl_object.unwrap) - self._read_bio.write_eof() - self._write_bio.write_eof() - return self.transport_stream, self._read_bio.read() - - async def aclose(self) -> None: - if self.standard_compatible: - try: - await self.unwrap() - except BaseException: - await aclose_forcefully(self.transport_stream) - raise - - await self.transport_stream.aclose() - - async def receive(self, max_bytes: int = 65536) -> bytes: - data = await self._call_sslobject_method(self._ssl_object.read, max_bytes) - if not data: - raise EndOfStream - - return data - - async def send(self, item: bytes) -> None: - await self._call_sslobject_method(self._ssl_object.write, item) - - async def send_eof(self) -> None: - tls_version = self.extra(TLSAttribute.tls_version) - match = re.match(r"TLSv(\d+)(?:\.(\d+))?", tls_version) - if match: - major, minor = int(match.group(1)), int(match.group(2) or 0) - if (major, minor) < (1, 3): - raise NotImplementedError( - f"send_eof() requires at least TLSv1.3; current " - f"session uses {tls_version}" - ) - - raise NotImplementedError( - "send_eof() has not yet been implemented for TLS streams" - ) - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - return { - **self.transport_stream.extra_attributes, - TLSAttribute.alpn_protocol: self._ssl_object.selected_alpn_protocol, - TLSAttribute.channel_binding_tls_unique: ( - self._ssl_object.get_channel_binding - ), - TLSAttribute.cipher: self._ssl_object.cipher, - TLSAttribute.peer_certificate: lambda: self._ssl_object.getpeercert(False), - TLSAttribute.peer_certificate_binary: lambda: self._ssl_object.getpeercert( - True - ), - TLSAttribute.server_side: lambda: self._ssl_object.server_side, - TLSAttribute.shared_ciphers: lambda: ( - self._ssl_object.shared_ciphers() - if self._ssl_object.server_side - else None - ), - TLSAttribute.standard_compatible: lambda: self.standard_compatible, - TLSAttribute.ssl_object: lambda: self._ssl_object, - TLSAttribute.tls_version: self._ssl_object.version, - } - - -@dataclass(eq=False) -class TLSListener(Listener[TLSStream]): - """ - A convenience listener that wraps another listener and auto-negotiates a TLS session - on every accepted connection. - - If the TLS handshake times out or raises an exception, - :meth:`handle_handshake_error` is called to do whatever post-mortem processing is - deemed necessary. - - Supports only the :attr:`~TLSAttribute.standard_compatible` extra attribute. - - :param Listener listener: the listener to wrap - :param ssl_context: the SSL context object - :param standard_compatible: a flag passed through to :meth:`TLSStream.wrap` - :param handshake_timeout: time limit for the TLS handshake - (passed to :func:`~anyio.fail_after`) - """ - - listener: Listener[Any] - ssl_context: ssl.SSLContext - standard_compatible: bool = True - handshake_timeout: float = 30 - - @staticmethod - async def handle_handshake_error(exc: BaseException, stream: AnyByteStream) -> None: - """ - Handle an exception raised during the TLS handshake. - - This method does 3 things: - - #. Forcefully closes the original stream - #. Logs the exception (unless it was a cancellation exception) using the - ``anyio.streams.tls`` logger - #. Reraises the exception if it was a base exception or a cancellation exception - - :param exc: the exception - :param stream: the original stream - - """ - await aclose_forcefully(stream) - - # Log all except cancellation exceptions - if not isinstance(exc, get_cancelled_exc_class()): - # CPython (as of 3.11.5) returns incorrect `sys.exc_info()` here when using - # any asyncio implementation, so we explicitly pass the exception to log - # (https://github.com/python/cpython/issues/108668). Trio does not have this - # issue because it works around the CPython bug. - logging.getLogger(__name__).exception( - "Error during TLS handshake", exc_info=exc - ) - - # Only reraise base exceptions and cancellation exceptions - if not isinstance(exc, Exception) or isinstance(exc, get_cancelled_exc_class()): - raise - - async def serve( - self, - handler: Callable[[TLSStream], Any], - task_group: TaskGroup | None = None, - ) -> None: - @wraps(handler) - async def handler_wrapper(stream: AnyByteStream) -> None: - from .. import fail_after - - try: - with fail_after(self.handshake_timeout): - wrapped_stream = await TLSStream.wrap( - stream, - ssl_context=self.ssl_context, - standard_compatible=self.standard_compatible, - ) - except BaseException as exc: - await self.handle_handshake_error(exc, stream) - else: - await handler(wrapped_stream) - - await self.listener.serve(handler_wrapper, task_group) - - async def aclose(self) -> None: - await self.listener.aclose() - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - return { - TLSAttribute.standard_compatible: lambda: self.standard_compatible, - } - - -class TLSConnectable(ByteStreamConnectable): - """ - Wraps another connectable and does TLS negotiation after a successful connection. - - :param connectable: the connectable to wrap - :param hostname: host name of the server (if host name checking is desired) - :param ssl_context: the SSLContext object to use (if not provided, a secure default - will be created) - :param standard_compatible: if ``False``, skip the closing handshake when closing - the connection, and don't raise an exception if the server does the same - """ - - def __init__( - self, - connectable: AnyByteStreamConnectable, - *, - hostname: str | None = None, - ssl_context: ssl.SSLContext | None = None, - standard_compatible: bool = True, - ) -> None: - self.connectable = connectable - self.ssl_context: SSLContext = ssl_context or ssl.create_default_context( - ssl.Purpose.SERVER_AUTH - ) - if not isinstance(self.ssl_context, ssl.SSLContext): - raise TypeError( - "ssl_context must be an instance of ssl.SSLContext, not " - f"{type(self.ssl_context).__name__}" - ) - self.hostname = hostname - self.standard_compatible = standard_compatible - - @override - async def connect(self) -> TLSStream: - stream = await self.connectable.connect() - try: - return await TLSStream.wrap( - stream, - hostname=self.hostname, - ssl_context=self.ssl_context, - standard_compatible=self.standard_compatible, - ) - except BaseException: - await aclose_forcefully(stream) - raise diff --git a/.venv/lib/python3.12/site-packages/anyio/to_interpreter.py b/.venv/lib/python3.12/site-packages/anyio/to_interpreter.py deleted file mode 100644 index 694dbe7..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/to_interpreter.py +++ /dev/null @@ -1,246 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "run_sync", - "current_default_interpreter_limiter", -) - -import atexit -import os -import sys -from collections import deque -from collections.abc import Callable -from typing import Any, Final, TypeVar - -from . import current_time, to_thread -from ._core._exceptions import BrokenWorkerInterpreter -from ._core._synchronization import CapacityLimiter -from .lowlevel import RunVar - -if sys.version_info >= (3, 11): - from typing import TypeVarTuple, Unpack -else: - from typing_extensions import TypeVarTuple, Unpack - -if sys.version_info >= (3, 14): - from concurrent.interpreters import ExecutionFailed, create - - def _interp_call( - func: Callable[..., Any], args: tuple[Any, ...] - ) -> tuple[Any, bool]: - try: - retval = func(*args) - except BaseException as exc: - return exc, True - else: - return retval, False - - class _Worker: - last_used: float = 0 - - def __init__(self) -> None: - self._interpreter = create() - - def destroy(self) -> None: - self._interpreter.close() - - def call( - self, - func: Callable[..., T_Retval], - args: tuple[Any, ...], - ) -> T_Retval: - try: - res, is_exception = self._interpreter.call(_interp_call, func, args) - except ExecutionFailed as exc: - raise BrokenWorkerInterpreter(exc.excinfo) from exc - - if is_exception: - raise res - - return res -elif sys.version_info >= (3, 13): - import _interpqueues - import _interpreters - - UNBOUND: Final = 2 # I have no clue how this works, but it was used in the stdlib - FMT_UNPICKLED: Final = 0 - FMT_PICKLED: Final = 1 - QUEUE_PICKLE_ARGS: Final = (FMT_PICKLED, UNBOUND) - QUEUE_UNPICKLE_ARGS: Final = (FMT_UNPICKLED, UNBOUND) - - _run_func = compile( - """ -import _interpqueues -from _interpreters import NotShareableError -from pickle import loads, dumps, HIGHEST_PROTOCOL - -QUEUE_PICKLE_ARGS = (1, 2) -QUEUE_UNPICKLE_ARGS = (0, 2) - -item = _interpqueues.get(queue_id)[0] -try: - func, args = loads(item) - retval = func(*args) -except BaseException as exc: - is_exception = True - retval = exc -else: - is_exception = False - -try: - _interpqueues.put(queue_id, (retval, is_exception), *QUEUE_UNPICKLE_ARGS) -except NotShareableError: - retval = dumps(retval, HIGHEST_PROTOCOL) - _interpqueues.put(queue_id, (retval, is_exception), *QUEUE_PICKLE_ARGS) - """, - "", - "exec", - ) - - class _Worker: - last_used: float = 0 - - def __init__(self) -> None: - self._interpreter_id = _interpreters.create() - self._queue_id = _interpqueues.create(1, *QUEUE_UNPICKLE_ARGS) - _interpreters.set___main___attrs( - self._interpreter_id, {"queue_id": self._queue_id} - ) - - def destroy(self) -> None: - _interpqueues.destroy(self._queue_id) - _interpreters.destroy(self._interpreter_id) - - def call( - self, - func: Callable[..., T_Retval], - args: tuple[Any, ...], - ) -> T_Retval: - import pickle - - item = pickle.dumps((func, args), pickle.HIGHEST_PROTOCOL) - _interpqueues.put(self._queue_id, item, *QUEUE_PICKLE_ARGS) - exc_info = _interpreters.exec(self._interpreter_id, _run_func) - if exc_info: - raise BrokenWorkerInterpreter(exc_info) - - res = _interpqueues.get(self._queue_id) - (res, is_exception), fmt = res[:2] - if fmt == FMT_PICKLED: - res = pickle.loads(res) - - if is_exception: - raise res - - return res -else: - - class _Worker: - last_used: float = 0 - - def __init__(self) -> None: - raise RuntimeError("subinterpreters require at least Python 3.13") - - def call( - self, - func: Callable[..., T_Retval], - args: tuple[Any, ...], - ) -> T_Retval: - raise NotImplementedError - - def destroy(self) -> None: - pass - - -DEFAULT_CPU_COUNT: Final = 8 # this is just an arbitrarily selected value -MAX_WORKER_IDLE_TIME = ( - 30 # seconds a subinterpreter can be idle before becoming eligible for pruning -) - -T_Retval = TypeVar("T_Retval") -PosArgsT = TypeVarTuple("PosArgsT") - -_idle_workers = RunVar[deque[_Worker]]("_available_workers") -_default_interpreter_limiter = RunVar[CapacityLimiter]("_default_interpreter_limiter") - - -def _stop_workers(workers: deque[_Worker]) -> None: - for worker in workers: - worker.destroy() - - workers.clear() - - -async def run_sync( - func: Callable[[Unpack[PosArgsT]], T_Retval], - *args: Unpack[PosArgsT], - limiter: CapacityLimiter | None = None, -) -> T_Retval: - """ - Call the given function with the given arguments in a subinterpreter. - - .. warning:: On Python 3.13, the :mod:`concurrent.interpreters` module was not yet - available, so the code path for that Python version relies on an undocumented, - private API. As such, it is recommended to not rely on this function for anything - mission-critical on Python 3.13. - - :param func: a callable - :param args: the positional arguments for the callable - :param limiter: capacity limiter to use to limit the total number of subinterpreters - running (if omitted, the default limiter is used) - :return: the result of the call - :raises BrokenWorkerInterpreter: if there's an internal error in a subinterpreter - - """ - if limiter is None: - limiter = current_default_interpreter_limiter() - - try: - idle_workers = _idle_workers.get() - except LookupError: - idle_workers = deque() - _idle_workers.set(idle_workers) - atexit.register(_stop_workers, idle_workers) - - async with limiter: - try: - worker = idle_workers.pop() - except IndexError: - worker = _Worker() - - try: - return await to_thread.run_sync( - worker.call, - func, - args, - limiter=limiter, - ) - finally: - # Prune workers that have been idle for too long - now = current_time() - while idle_workers: - if now - idle_workers[0].last_used <= MAX_WORKER_IDLE_TIME: - break - - await to_thread.run_sync(idle_workers.popleft().destroy, limiter=limiter) - - worker.last_used = current_time() - idle_workers.append(worker) - - -def current_default_interpreter_limiter() -> CapacityLimiter: - """ - Return the capacity limiter used by default to limit the number of concurrently - running subinterpreters. - - Defaults to the number of CPU cores. - - :return: a capacity limiter object - - """ - try: - return _default_interpreter_limiter.get() - except LookupError: - limiter = CapacityLimiter(os.cpu_count() or DEFAULT_CPU_COUNT) - _default_interpreter_limiter.set(limiter) - return limiter diff --git a/.venv/lib/python3.12/site-packages/anyio/to_process.py b/.venv/lib/python3.12/site-packages/anyio/to_process.py deleted file mode 100644 index b289234..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/to_process.py +++ /dev/null @@ -1,266 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "current_default_process_limiter", - "process_worker", - "run_sync", -) - -import os -import pickle -import subprocess -import sys -from collections import deque -from collections.abc import Callable -from importlib.util import module_from_spec, spec_from_file_location -from typing import TypeVar, cast - -from ._core._eventloop import current_time, get_async_backend, get_cancelled_exc_class -from ._core._exceptions import BrokenWorkerProcess -from ._core._subprocesses import open_process -from ._core._synchronization import CapacityLimiter -from ._core._tasks import CancelScope, fail_after -from .abc import ByteReceiveStream, ByteSendStream, Process -from .lowlevel import RunVar, checkpoint_if_cancelled -from .streams.buffered import BufferedByteReceiveStream - -if sys.version_info >= (3, 11): - from typing import TypeVarTuple, Unpack -else: - from typing_extensions import TypeVarTuple, Unpack - -WORKER_MAX_IDLE_TIME = 300 # 5 minutes - -T_Retval = TypeVar("T_Retval") -PosArgsT = TypeVarTuple("PosArgsT") - -_process_pool_workers: RunVar[set[Process]] = RunVar("_process_pool_workers") -_process_pool_idle_workers: RunVar[deque[tuple[Process, float]]] = RunVar( - "_process_pool_idle_workers" -) -_default_process_limiter: RunVar[CapacityLimiter] = RunVar("_default_process_limiter") - - -async def run_sync( # type: ignore[return] - func: Callable[[Unpack[PosArgsT]], T_Retval], - *args: Unpack[PosArgsT], - cancellable: bool = False, - limiter: CapacityLimiter | None = None, -) -> T_Retval: - """ - Call the given function with the given arguments in a worker process. - - If the ``cancellable`` option is enabled and the task waiting for its completion is - cancelled, the worker process running it will be abruptly terminated using SIGKILL - (or ``terminateProcess()`` on Windows). - - :param func: a callable - :param args: positional arguments for the callable - :param cancellable: ``True`` to allow cancellation of the operation while it's - running - :param limiter: capacity limiter to use to limit the total amount of processes - running (if omitted, the default limiter is used) - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - :return: an awaitable that yields the return value of the function. - - """ - - async def send_raw_command(pickled_cmd: bytes) -> object: - try: - await stdin.send(pickled_cmd) - response = await buffered.receive_until(b"\n", 50) - status, length = response.split(b" ") - if status not in (b"RETURN", b"EXCEPTION"): - raise RuntimeError( - f"Worker process returned unexpected response: {response!r}" - ) - - pickled_response = await buffered.receive_exactly(int(length)) - except BaseException as exc: - workers.discard(process) - try: - process.kill() - with CancelScope(shield=True): - await process.aclose() - except ProcessLookupError: - pass - - if isinstance(exc, get_cancelled_exc_class()): - raise - else: - raise BrokenWorkerProcess from exc - - retval = pickle.loads(pickled_response) - if status == b"EXCEPTION": - assert isinstance(retval, BaseException) - raise retval - else: - return retval - - # First pickle the request before trying to reserve a worker process - await checkpoint_if_cancelled() - request = pickle.dumps(("run", func, args), protocol=pickle.HIGHEST_PROTOCOL) - - # If this is the first run in this event loop thread, set up the necessary variables - try: - workers = _process_pool_workers.get() - idle_workers = _process_pool_idle_workers.get() - except LookupError: - workers = set() - idle_workers = deque() - _process_pool_workers.set(workers) - _process_pool_idle_workers.set(idle_workers) - get_async_backend().setup_process_pool_exit_at_shutdown(workers) - - async with limiter or current_default_process_limiter(): - # Pop processes from the pool (starting from the most recently used) until we - # find one that hasn't exited yet - process: Process - while idle_workers: - process, idle_since = idle_workers.pop() - if process.returncode is None: - stdin = cast(ByteSendStream, process.stdin) - buffered = BufferedByteReceiveStream( - cast(ByteReceiveStream, process.stdout) - ) - - # Prune any other workers that have been idle for WORKER_MAX_IDLE_TIME - # seconds or longer - now = current_time() - killed_processes: list[Process] = [] - while idle_workers: - if now - idle_workers[0][1] < WORKER_MAX_IDLE_TIME: - break - - process_to_kill, idle_since = idle_workers.popleft() - process_to_kill.kill() - workers.remove(process_to_kill) - killed_processes.append(process_to_kill) - - with CancelScope(shield=True): - for killed_process in killed_processes: - await killed_process.aclose() - - break - - workers.remove(process) - else: - command = [sys.executable, "-u", "-m", __name__] - process = await open_process( - command, stdin=subprocess.PIPE, stdout=subprocess.PIPE - ) - try: - stdin = cast(ByteSendStream, process.stdin) - buffered = BufferedByteReceiveStream( - cast(ByteReceiveStream, process.stdout) - ) - with fail_after(20): - message = await buffered.receive(6) - - if message != b"READY\n": - raise BrokenWorkerProcess( - f"Worker process returned unexpected response: {message!r}" - ) - - main_module_path = getattr(sys.modules["__main__"], "__file__", None) - pickled = pickle.dumps( - ("init", sys.path, main_module_path), - protocol=pickle.HIGHEST_PROTOCOL, - ) - await send_raw_command(pickled) - except (BrokenWorkerProcess, get_cancelled_exc_class()): - raise - except BaseException as exc: - process.kill() - raise BrokenWorkerProcess( - "Error during worker process initialization" - ) from exc - - workers.add(process) - - with CancelScope(shield=not cancellable): - try: - return cast(T_Retval, await send_raw_command(request)) - finally: - if process in workers: - idle_workers.append((process, current_time())) - - -def current_default_process_limiter() -> CapacityLimiter: - """ - Return the capacity limiter that is used by default to limit the number of worker - processes. - - :return: a capacity limiter object - - """ - try: - return _default_process_limiter.get() - except LookupError: - limiter = CapacityLimiter(os.cpu_count() or 2) - _default_process_limiter.set(limiter) - return limiter - - -def process_worker() -> None: - # Redirect standard streams to os.devnull so that user code won't interfere with the - # parent-worker communication - stdin = sys.stdin - stdout = sys.stdout - sys.stdin = open(os.devnull) - sys.stdout = open(os.devnull, "w") - - stdout.buffer.write(b"READY\n") - while True: - retval = exception = None - try: - command, *args = pickle.load(stdin.buffer) - except EOFError: - return - except BaseException as exc: - exception = exc - else: - if command == "run": - func, args = args - try: - retval = func(*args) - except BaseException as exc: - exception = exc - elif command == "init": - main_module_path: str | None - sys.path, main_module_path = args - del sys.modules["__main__"] - if main_module_path and os.path.isfile(main_module_path): - # Load the parent's main module but as __mp_main__ instead of - # __main__ (like multiprocessing does) to avoid infinite recursion - try: - spec = spec_from_file_location("__mp_main__", main_module_path) - if spec and spec.loader: - main = module_from_spec(spec) - spec.loader.exec_module(main) - sys.modules["__main__"] = main - except BaseException as exc: - exception = exc - try: - if exception is not None: - status = b"EXCEPTION" - pickled = pickle.dumps(exception, pickle.HIGHEST_PROTOCOL) - else: - status = b"RETURN" - pickled = pickle.dumps(retval, pickle.HIGHEST_PROTOCOL) - except BaseException as exc: - exception = exc - status = b"EXCEPTION" - pickled = pickle.dumps(exc, pickle.HIGHEST_PROTOCOL) - - stdout.buffer.write(b"%s %d\n" % (status, len(pickled))) - stdout.buffer.write(pickled) - - # Respect SIGTERM - if isinstance(exception, SystemExit): - raise exception - - -if __name__ == "__main__": - process_worker() diff --git a/.venv/lib/python3.12/site-packages/anyio/to_thread.py b/.venv/lib/python3.12/site-packages/anyio/to_thread.py deleted file mode 100644 index 83c79d1..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/to_thread.py +++ /dev/null @@ -1,78 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "run_sync", - "current_default_thread_limiter", -) - -import sys -from collections.abc import Callable -from typing import TypeVar -from warnings import warn - -from ._core._eventloop import get_async_backend -from .abc import CapacityLimiter - -if sys.version_info >= (3, 11): - from typing import TypeVarTuple, Unpack -else: - from typing_extensions import TypeVarTuple, Unpack - -T_Retval = TypeVar("T_Retval") -PosArgsT = TypeVarTuple("PosArgsT") - - -async def run_sync( - func: Callable[[Unpack[PosArgsT]], T_Retval], - *args: Unpack[PosArgsT], - abandon_on_cancel: bool = False, - cancellable: bool | None = None, - limiter: CapacityLimiter | None = None, -) -> T_Retval: - """ - Call the given function with the given arguments in a worker thread. - - If the ``abandon_on_cancel`` option is enabled and the task waiting for its - completion is cancelled, the thread will still run its course but its - return value (or any raised exception) will be ignored. - - :param func: a callable - :param args: positional arguments for the callable - :param abandon_on_cancel: ``True`` to abandon the thread (leaving it to run - unchecked on own) if the host task is cancelled, ``False`` to ignore - cancellations in the host task until the operation has completed in the worker - thread - :param cancellable: deprecated alias of ``abandon_on_cancel``; will override - ``abandon_on_cancel`` if both parameters are passed - :param limiter: capacity limiter to use to limit the total amount of threads running - (if omitted, the default limiter is used) - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - :return: an awaitable that yields the return value of the function. - - """ - if cancellable is not None: - abandon_on_cancel = cancellable - warn( - "The `cancellable=` keyword argument to `anyio.to_thread.run_sync` is " - "deprecated since AnyIO 4.1.0; use `abandon_on_cancel=` instead", - DeprecationWarning, - stacklevel=2, - ) - - return await get_async_backend().run_sync_in_worker_thread( - func, args, abandon_on_cancel=abandon_on_cancel, limiter=limiter - ) - - -def current_default_thread_limiter() -> CapacityLimiter: - """ - Return the capacity limiter that is used by default to limit the number of - concurrent threads. - - :return: a capacity limiter object - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return get_async_backend().current_default_thread_limiter() diff --git a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/INSTALLER b/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/METADATA b/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/METADATA deleted file mode 100644 index 3816cc9..0000000 --- a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/METADATA +++ /dev/null @@ -1,78 +0,0 @@ -Metadata-Version: 2.4 -Name: certifi -Version: 2026.4.22 -Summary: Python package for providing Mozilla's CA Bundle. -Home-page: https://github.com/certifi/python-certifi -Author: Kenneth Reitz -Author-email: me@kennethreitz.com -License: MPL-2.0 -Project-URL: Source, https://github.com/certifi/python-certifi -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0) -Classifier: Natural Language :: English -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Programming Language :: Python :: 3.13 -Classifier: Programming Language :: Python :: 3.14 -Requires-Python: >=3.7 -License-File: LICENSE -Dynamic: author -Dynamic: author-email -Dynamic: classifier -Dynamic: description -Dynamic: home-page -Dynamic: license -Dynamic: license-file -Dynamic: project-url -Dynamic: requires-python -Dynamic: summary - -Certifi: Python SSL Certificates -================================ - -Certifi provides Mozilla's carefully curated collection of Root Certificates for -validating the trustworthiness of SSL certificates while verifying the identity -of TLS hosts. It has been extracted from the `Requests`_ project. - -Installation ------------- - -``certifi`` is available on PyPI. Simply install it with ``pip``:: - - $ pip install certifi - -Usage ------ - -To reference the installed certificate authority (CA) bundle, you can use the -built-in function:: - - >>> import certifi - - >>> certifi.where() - '/usr/local/lib/python3.7/site-packages/certifi/cacert.pem' - -Or from the command line:: - - $ python -m certifi - /usr/local/lib/python3.7/site-packages/certifi/cacert.pem - -Enjoy! - -.. _`Requests`: https://requests.readthedocs.io/en/master/ - -Addition/Removal of Certificates --------------------------------- - -Certifi does not support any addition/removal or other modification of the -CA trust store content. This project is intended to provide a reliable and -highly portable root of trust to python deployments. Look to upstream projects -for methods to use alternate trust. diff --git a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/RECORD b/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/RECORD deleted file mode 100644 index c8874c3..0000000 --- a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/RECORD +++ /dev/null @@ -1,14 +0,0 @@ -certifi-2026.4.22.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -certifi-2026.4.22.dist-info/METADATA,sha256=Ttb_6cy-0FBGq3v_ICTNPKcXKVs2i-0f4gpz42W8QVo,2474 -certifi-2026.4.22.dist-info/RECORD,, -certifi-2026.4.22.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91 -certifi-2026.4.22.dist-info/licenses/LICENSE,sha256=6TcW2mucDVpKHfYP5pWzcPBpVgPSH2-D8FPkLPwQyvc,989 -certifi-2026.4.22.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8 -certifi/__init__.py,sha256=iBJYWtxRGHMaO1S73pWYpFn962WQ4ldof2GkfMSREJM,94 -certifi/__main__.py,sha256=xBBoj905TUWBLRGANOcf7oi6e-3dMP4cEoG9OyMs11g,243 -certifi/__pycache__/__init__.cpython-312.pyc,, -certifi/__pycache__/__main__.cpython-312.pyc,, -certifi/__pycache__/core.cpython-312.pyc,, -certifi/cacert.pem,sha256=Fr4_b-sVQIGV3P46oade-dty9ka5brvv3Gj1YlX3mfg,238641 -certifi/core.py,sha256=XFXycndG5pf37ayeF8N32HUuDafsyhkVMbO4BAPWHa0,3394 -certifi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/WHEEL b/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/WHEEL deleted file mode 100644 index 14a883f..0000000 --- a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: setuptools (82.0.1) -Root-Is-Purelib: true -Tag: py3-none-any - diff --git a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/licenses/LICENSE b/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/licenses/LICENSE deleted file mode 100644 index 62b076c..0000000 --- a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/licenses/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -This package contains a modified version of ca-bundle.crt: - -ca-bundle.crt -- Bundle of CA Root Certificates - -This is a bundle of X.509 certificates of public Certificate Authorities -(CA). These were automatically extracted from Mozilla's root certificates -file (certdata.txt). This file can be found in the mozilla source tree: -https://hg.mozilla.org/mozilla-central/file/tip/security/nss/lib/ckfw/builtins/certdata.txt -It contains the certificates in PEM format and therefore -can be directly used with curl / libcurl / php_curl, or with -an Apache+mod_ssl webserver for SSL client authentication. -Just configure this file as the SSLCACertificateFile.# - -***** BEGIN LICENSE BLOCK ***** -This Source Code Form is subject to the terms of the Mozilla Public License, -v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain -one at http://mozilla.org/MPL/2.0/. - -***** END LICENSE BLOCK ***** -@(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $ diff --git a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/top_level.txt b/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/top_level.txt deleted file mode 100644 index 963eac5..0000000 --- a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -certifi diff --git a/.venv/lib/python3.12/site-packages/certifi/__init__.py b/.venv/lib/python3.12/site-packages/certifi/__init__.py deleted file mode 100644 index 9d711f4..0000000 --- a/.venv/lib/python3.12/site-packages/certifi/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -from .core import contents, where - -__all__ = ["contents", "where"] -__version__ = "2026.04.22" diff --git a/.venv/lib/python3.12/site-packages/certifi/__main__.py b/.venv/lib/python3.12/site-packages/certifi/__main__.py deleted file mode 100644 index 8945b5d..0000000 --- a/.venv/lib/python3.12/site-packages/certifi/__main__.py +++ /dev/null @@ -1,12 +0,0 @@ -import argparse - -from certifi import contents, where - -parser = argparse.ArgumentParser() -parser.add_argument("-c", "--contents", action="store_true") -args = parser.parse_args() - -if args.contents: - print(contents()) -else: - print(where()) diff --git a/.venv/lib/python3.12/site-packages/certifi/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/certifi/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ea31ba8..0000000 Binary files a/.venv/lib/python3.12/site-packages/certifi/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/certifi/__pycache__/__main__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/certifi/__pycache__/__main__.cpython-312.pyc deleted file mode 100644 index 3c36dc2..0000000 Binary files a/.venv/lib/python3.12/site-packages/certifi/__pycache__/__main__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/certifi/__pycache__/core.cpython-312.pyc b/.venv/lib/python3.12/site-packages/certifi/__pycache__/core.cpython-312.pyc deleted file mode 100644 index 0d3098f..0000000 Binary files a/.venv/lib/python3.12/site-packages/certifi/__pycache__/core.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/certifi/cacert.pem b/.venv/lib/python3.12/site-packages/certifi/cacert.pem deleted file mode 100644 index 27132f5..0000000 --- a/.venv/lib/python3.12/site-packages/certifi/cacert.pem +++ /dev/null @@ -1,3933 +0,0 @@ - -# Issuer: CN=COMODO ECC Certification Authority O=COMODO CA Limited -# Subject: CN=COMODO ECC Certification Authority O=COMODO CA Limited -# Label: "COMODO ECC Certification Authority" -# Serial: 41578283867086692638256921589707938090 -# MD5 Fingerprint: 7c:62:ff:74:9d:31:53:5e:68:4a:d5:78:aa:1e:bf:23 -# SHA1 Fingerprint: 9f:74:4e:9f:2b:4d:ba:ec:0f:31:2c:50:b6:56:3b:8e:2d:93:c3:11 -# SHA256 Fingerprint: 17:93:92:7a:06:14:54:97:89:ad:ce:2f:8f:34:f7:f0:b6:6d:0f:3a:e3:a3:b8:4d:21:ec:15:db:ba:4f:ad:c7 ------BEGIN CERTIFICATE----- -MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL -MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE -BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT -IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw -MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy -ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N -T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR -FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J -cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW -BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ -BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm -fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv -GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= ------END CERTIFICATE----- - -# Issuer: O=Chunghwa Telecom Co., Ltd. OU=ePKI Root Certification Authority -# Subject: O=Chunghwa Telecom Co., Ltd. OU=ePKI Root Certification Authority -# Label: "ePKI Root Certification Authority" -# Serial: 28956088682735189655030529057352760477 -# MD5 Fingerprint: 1b:2e:00:ca:26:06:90:3d:ad:fe:6f:15:68:d3:6b:b3 -# SHA1 Fingerprint: 67:65:0d:f1:7e:8e:7e:5b:82:40:a4:f4:56:4b:cf:e2:3d:69:c6:f0 -# SHA256 Fingerprint: c0:a6:f4:dc:63:a2:4b:fd:cf:54:ef:2a:6a:08:2a:0a:72:de:35:80:3e:2f:f5:ff:52:7a:e5:d8:72:06:df:d5 ------BEGIN CERTIFICATE----- -MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe -MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0 -ZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe -Fw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw -IQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL -SSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF -AAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH -SyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh -ijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X -DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1 -TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ -fzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA -sgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU -WH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS -nT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH -dmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip -NiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC -AwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF -MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH -ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB -uvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl -PwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP -JXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/ -gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2 -j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6 -5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB -o2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS -/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z -Gp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE -W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D -hNQ+IIX3Sj0rnP0qCglN6oH4EZw= ------END CERTIFICATE----- - -# Issuer: CN=NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny O=NetLock Kft. OU=Tan\xfas\xedtv\xe1nykiad\xf3k (Certification Services) -# Subject: CN=NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny O=NetLock Kft. OU=Tan\xfas\xedtv\xe1nykiad\xf3k (Certification Services) -# Label: "NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny" -# Serial: 80544274841616 -# MD5 Fingerprint: c5:a1:b7:ff:73:dd:d6:d7:34:32:18:df:fc:3c:ad:88 -# SHA1 Fingerprint: 06:08:3f:59:3f:15:a1:04:a0:69:a4:6b:a9:03:d0:06:b7:97:09:91 -# SHA256 Fingerprint: 6c:61:da:c3:a2:de:f0:31:50:6b:e0:36:d2:a6:fe:40:19:94:fb:d1:3d:f9:c8:d4:66:59:92:74:c4:46:ec:98 ------BEGIN CERTIFICATE----- -MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG -EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3 -MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl -cnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR -dGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB -pzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM -b2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm -aWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz -IEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT -lF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz -AZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5 -VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG -ILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2 -BJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG -AQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M -U9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh -bvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C -+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC -bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F -uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2 -XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= ------END CERTIFICATE----- - -# Issuer: CN=Microsec e-Szigno Root CA 2009 O=Microsec Ltd. -# Subject: CN=Microsec e-Szigno Root CA 2009 O=Microsec Ltd. -# Label: "Microsec e-Szigno Root CA 2009" -# Serial: 14014712776195784473 -# MD5 Fingerprint: f8:49:f4:03:bc:44:2d:83:be:48:69:7d:29:64:fc:b1 -# SHA1 Fingerprint: 89:df:74:fe:5c:f4:0f:4a:80:f9:e3:37:7d:54:da:91:e1:01:31:8e -# SHA256 Fingerprint: 3c:5f:81:fe:a5:fa:b8:2c:64:bf:a2:ea:ec:af:cd:e8:e0:77:fc:86:20:a7:ca:e5:37:16:3d:f3:6e:db:f3:78 ------BEGIN CERTIFICATE----- -MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD -VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0 -ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G -CSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y -OTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx -FjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp -Z25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o -dTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP -kd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc -cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U -fIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7 -N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC -xkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1 -+rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G -A1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM -Pcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG -SIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h -mLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk -ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 -tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c -2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t -HMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW ------END CERTIFICATE----- - -# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3 -# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3 -# Label: "GlobalSign Root CA - R3" -# Serial: 4835703278459759426209954 -# MD5 Fingerprint: c5:df:b8:49:ca:05:13:55:ee:2d:ba:1a:c3:3e:b0:28 -# SHA1 Fingerprint: d6:9b:56:11:48:f0:1c:77:c5:45:78:c1:09:26:df:5b:85:69:76:ad -# SHA256 Fingerprint: cb:b5:22:d7:b7:f1:27:ad:6a:01:13:86:5b:df:1c:d4:10:2e:7d:07:59:af:63:5a:7c:f4:72:0d:c9:63:c5:3b ------BEGIN CERTIFICATE----- -MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G -A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp -Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4 -MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG -A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8 -RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT -gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm -KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd -QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ -XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw -DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o -LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU -RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp -jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK -6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX -mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs -Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH -WD9f ------END CERTIFICATE----- - -# Issuer: CN=Izenpe.com O=IZENPE S.A. -# Subject: CN=Izenpe.com O=IZENPE S.A. -# Label: "Izenpe.com" -# Serial: 917563065490389241595536686991402621 -# MD5 Fingerprint: a6:b0:cd:85:80:da:5c:50:34:a3:39:90:2f:55:67:73 -# SHA1 Fingerprint: 2f:78:3d:25:52:18:a7:4a:65:39:71:b5:2c:a2:9c:45:15:6f:e9:19 -# SHA256 Fingerprint: 25:30:cc:8e:98:32:15:02:ba:d9:6f:9b:1f:ba:1b:09:9e:2d:29:9e:0f:45:48:bb:91:4f:36:3b:c0:d4:53:1f ------BEGIN CERTIFICATE----- -MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4 -MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6 -ZW5wZS5jb20wHhcNMDcxMjEzMTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYD -VQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5j -b20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ03rKDx6sp4boFmVq -scIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAKClaO -xdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6H -LmYRY2xU+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFX -uaOKmMPsOzTFlUFpfnXCPCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQD -yCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxTOTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+ -JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbKF7jJeodWLBoBHmy+E60Q -rLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK0GqfvEyN -BjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8L -hij+0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIB -QFqNeb+Lz0vPqhbBleStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+ -HMh3/1uaD7euBUbl8agW7EekFwIDAQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2lu -Zm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+SVpFTlBFIFMuQS4gLSBDSUYg -QTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBGNjIgUzgxQzBB -BgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx -MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwHQYDVR0OBBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUA -A4ICAQB4pgwWSp9MiDrAyw6lFn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWb -laQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbgakEyrkgPH7UIBzg/YsfqikuFgba56 -awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8qhT/AQKM6WfxZSzwo -JNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Csg1lw -LDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCT -VyvehQP5aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGk -LhObNA5me0mrZJfQRsN5nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJb -UjWumDqtujWTI6cfSN01RpiyEGjkpTHCClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/ -QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZoQ0iy2+tzJOeRf1SktoA+ -naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1ZWrOZyGls -QyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== ------END CERTIFICATE----- - -# Issuer: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc. -# Subject: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc. -# Label: "Go Daddy Root Certificate Authority - G2" -# Serial: 0 -# MD5 Fingerprint: 80:3a:bc:22:c1:e6:fb:8d:9b:3b:27:4a:32:1b:9a:01 -# SHA1 Fingerprint: 47:be:ab:c9:22:ea:e8:0e:78:78:34:62:a7:9f:45:c2:54:fd:e6:8b -# SHA256 Fingerprint: 45:14:0b:32:47:eb:9c:c8:c5:b4:f0:d7:b5:30:91:f7:32:92:08:9e:6e:5a:63:e2:74:9d:d3:ac:a9:19:8e:da ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx -EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT -EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp -ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz -NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH -EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE -AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD -E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH -/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy -DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh -GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR -tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA -AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE -FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX -WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu -9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr -gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo -2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO -LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI -4uJEvlz36hz1 ------END CERTIFICATE----- - -# Issuer: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc. -# Subject: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc. -# Label: "Starfield Root Certificate Authority - G2" -# Serial: 0 -# MD5 Fingerprint: d6:39:81:c6:52:7e:96:69:fc:fc:ca:66:ed:05:f2:96 -# SHA1 Fingerprint: b5:1c:06:7c:ee:2b:0c:3d:f8:55:ab:2d:92:f4:fe:39:d4:e7:0f:0e -# SHA256 Fingerprint: 2c:e1:cb:0b:f9:d2:f9:e1:02:99:3f:be:21:51:52:c3:b2:dd:0c:ab:de:1c:68:e5:31:9b:83:91:54:db:b7:f5 ------BEGIN CERTIFICATE----- -MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx -EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT -HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs -ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw -MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 -b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj -aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp -Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg -nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1 -HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N -Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN -dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0 -HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO -BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G -CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU -sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3 -4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg -8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K -pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1 -mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 ------END CERTIFICATE----- - -# Issuer: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc. -# Subject: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc. -# Label: "Starfield Services Root Certificate Authority - G2" -# Serial: 0 -# MD5 Fingerprint: 17:35:74:af:7b:61:1c:eb:f4:f9:3c:e2:ee:40:f9:a2 -# SHA1 Fingerprint: 92:5a:8f:8d:2c:6d:04:e0:66:5f:59:6a:ff:22:d8:63:e8:25:6f:3f -# SHA256 Fingerprint: 56:8d:69:05:a2:c8:87:08:a4:b3:02:51:90:ed:cf:ed:b1:97:4a:60:6a:13:c6:e5:29:0f:cb:2a:e6:3e:da:b5 ------BEGIN CERTIFICATE----- -MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx -EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT -HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs -ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 -MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD -VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy -ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy -dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p -OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2 -8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K -Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe -hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk -6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw -DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q -AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI -bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB -ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z -qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd -iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn -0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN -sSi6 ------END CERTIFICATE----- - -# Issuer: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority -# Subject: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority -# Label: "Certum Trusted Network CA" -# Serial: 279744 -# MD5 Fingerprint: d5:e9:81:40:c5:18:69:fc:46:2c:89:75:62:0f:aa:78 -# SHA1 Fingerprint: 07:e0:32:e0:20:b7:2c:3f:19:2f:06:28:a2:59:3a:19:a7:0f:06:9e -# SHA256 Fingerprint: 5c:58:46:8d:55:f5:8e:49:7e:74:39:82:d2:b5:00:10:b6:d1:65:37:4a:cf:83:a7:d4:a3:2d:b7:68:c4:40:8e ------BEGIN CERTIFICATE----- -MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM -MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D -ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU -cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3 -WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg -Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw -IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH -UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM -TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU -BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM -kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x -AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV -HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y -sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL -I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8 -J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY -VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI -03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= ------END CERTIFICATE----- - -# Issuer: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA -# Subject: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA -# Label: "TWCA Root Certification Authority" -# Serial: 1 -# MD5 Fingerprint: aa:08:8f:f6:f9:7b:b7:f2:b1:a7:1e:9b:ea:ea:bd:79 -# SHA1 Fingerprint: cf:9e:87:6d:d3:eb:fc:42:26:97:a3:b5:a3:7a:a0:76:a9:06:23:48 -# SHA256 Fingerprint: bf:d8:8f:e1:10:1c:41:ae:3e:80:1b:f8:be:56:35:0e:e9:ba:d1:a6:b9:bd:51:5e:dc:5c:6d:5b:87:11:ac:44 ------BEGIN CERTIFICATE----- -MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES -MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU -V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz -WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO -LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm -aWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE -AcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH -K3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX -RfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z -rX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx -3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq -hkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC -MErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls -XebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D -lhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn -aspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ -YiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== ------END CERTIFICATE----- - -# Issuer: O=SECOM Trust Systems CO.,LTD. OU=Security Communication RootCA2 -# Subject: O=SECOM Trust Systems CO.,LTD. OU=Security Communication RootCA2 -# Label: "Security Communication RootCA2" -# Serial: 0 -# MD5 Fingerprint: 6c:39:7d:a4:0e:55:59:b2:3f:d6:41:b1:12:50:de:43 -# SHA1 Fingerprint: 5f:3b:8c:f2:f8:10:b3:7d:78:b4:ce:ec:19:19:c3:73:34:b9:c7:74 -# SHA256 Fingerprint: 51:3b:2c:ec:b8:10:d4:cd:e5:dd:85:39:1a:df:c6:c2:dd:60:d8:7b:b7:36:d2:b5:21:48:4a:a4:7a:0e:be:f6 ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDEl -MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMe -U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoX -DTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRy -dXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmlj -YXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAV -OVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGr -zbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVM -VAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ -hNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWO -ojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSw -awNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5cs -OPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpF -coJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXc -okgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8 -t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy -1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/ -SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 ------END CERTIFICATE----- - -# Issuer: CN=Actalis Authentication Root CA O=Actalis S.p.A./03358520967 -# Subject: CN=Actalis Authentication Root CA O=Actalis S.p.A./03358520967 -# Label: "Actalis Authentication Root CA" -# Serial: 6271844772424770508 -# MD5 Fingerprint: 69:c1:0d:4f:07:a3:1b:c3:fe:56:3d:04:bc:11:f6:a6 -# SHA1 Fingerprint: f3:73:b3:87:06:5a:28:84:8a:f2:f3:4a:ce:19:2b:dd:c7:8e:9c:ac -# SHA256 Fingerprint: 55:92:60:84:ec:96:3a:64:b9:6e:2a:be:01:ce:0b:a8:6a:64:fb:fe:bc:c7:aa:b5:af:c1:55:b3:7f:d7:60:66 ------BEGIN CERTIFICATE----- -MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE -BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w -MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 -IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC -SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1 -ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB -MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv -UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX -4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9 -KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/ -gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb -rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ -51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F -be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe -KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F -v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn -fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7 -jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz -ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt -ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL -e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70 -jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz -WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V -SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j -pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX -X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok -fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R -K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU -ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU -LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT -LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== ------END CERTIFICATE----- - -# Issuer: CN=Buypass Class 2 Root CA O=Buypass AS-983163327 -# Subject: CN=Buypass Class 2 Root CA O=Buypass AS-983163327 -# Label: "Buypass Class 2 Root CA" -# Serial: 2 -# MD5 Fingerprint: 46:a7:d2:fe:45:fb:64:5a:a8:59:90:9b:78:44:9b:29 -# SHA1 Fingerprint: 49:0a:75:74:de:87:0a:47:fe:58:ee:f6:c7:6b:eb:c6:0b:12:40:99 -# SHA256 Fingerprint: 9a:11:40:25:19:7c:5b:b9:5d:94:e6:3d:55:cd:43:79:08:47:b6:46:b2:3c:df:11:ad:a4:a0:0e:ff:15:fb:48 ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd -MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg -Q2xhc3MgMiBSb290IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1ow -TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw -HgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB -BQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1g1Lr -6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPV -L4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC91 -1K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx -MlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZ -QmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkB -arcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clr -Us3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLi -FRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRS -P/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN -9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxP -AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+BikoL1Rpzz -uvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h -9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s -A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3t -OluwlN5E40EIosHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo -+fsicdl9sz1Gv7SEr5AcD48Saq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7 -KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYdDnkM/crqJIByw5c/8nerQyIKx+u2 -DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWDLfJ6v9r9jv6ly0Us -H8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0oyLQ -I+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK7 -5t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h -3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPz -Y11aWOIv4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA= ------END CERTIFICATE----- - -# Issuer: CN=Buypass Class 3 Root CA O=Buypass AS-983163327 -# Subject: CN=Buypass Class 3 Root CA O=Buypass AS-983163327 -# Label: "Buypass Class 3 Root CA" -# Serial: 2 -# MD5 Fingerprint: 3d:3b:18:9e:2c:64:5a:e8:d5:88:ce:0e:f9:37:c2:ec -# SHA1 Fingerprint: da:fa:f7:fa:66:84:ec:06:8f:14:50:bd:c7:c2:81:a5:bc:a9:64:57 -# SHA256 Fingerprint: ed:f7:eb:bc:a2:7a:2a:38:4d:38:7b:7d:40:10:c6:66:e2:ed:b4:84:3e:4c:29:b4:ae:1d:5b:93:32:e6:b2:4d ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd -MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg -Q2xhc3MgMyBSb290IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFow -TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw -HgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB -BQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRHsJ8Y -ZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3E -N3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9 -tznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX -0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c -/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8X -KhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTY -zIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvS -O1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D -34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgP -K9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3 -AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/lb+74suwv -Tg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj -QTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV -cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXS -IGrs/CIBKM+GuIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2 -HJLw5QY33KbmkJs4j1xrG0aGQ0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsa -O5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8ZORK15FTAaggiG6cX0S5y2CBNOxv -033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2KSb12tjE8nVhz36u -dmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz6MkE -kbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg41 -3OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD -u79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq -4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc= ------END CERTIFICATE----- - -# Issuer: CN=T-TeleSec GlobalRoot Class 3 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center -# Subject: CN=T-TeleSec GlobalRoot Class 3 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center -# Label: "T-TeleSec GlobalRoot Class 3" -# Serial: 1 -# MD5 Fingerprint: ca:fb:40:a8:4e:39:92:8a:1d:fe:8e:2f:c4:27:ea:ef -# SHA1 Fingerprint: 55:a6:72:3e:cb:f2:ec:cd:c3:23:74:70:19:9d:2a:be:11:e3:81:d1 -# SHA256 Fingerprint: fd:73:da:d3:1c:64:4f:f1:b4:3b:ef:0c:cd:da:96:71:0b:9c:d9:87:5e:ca:7e:31:70:7a:f3:e9:6d:52:2b:bd ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx -KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd -BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl -YyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgxMDAxMTAyOTU2WhcNMzMxMDAxMjM1 -OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy -aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50 -ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN -8ELg63iIVl6bmlQdTQyK9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/ -RLyTPWGrTs0NvvAgJ1gORH8EGoel15YUNpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4 -hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZFiP0Zf3WHHx+xGwpzJFu5 -ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W0eDrXltM -EnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGj -QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1 -A/d2O2GCahKqGFPrAyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOy -WL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ -1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/vBa3wW30 -6gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT -91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml -e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4p -TpPDpFQUWw== ------END CERTIFICATE----- - -# Issuer: CN=D-TRUST Root Class 3 CA 2 2009 O=D-Trust GmbH -# Subject: CN=D-TRUST Root Class 3 CA 2 2009 O=D-Trust GmbH -# Label: "D-TRUST Root Class 3 CA 2 2009" -# Serial: 623603 -# MD5 Fingerprint: cd:e0:25:69:8d:47:ac:9c:89:35:90:f7:fd:51:3d:2f -# SHA1 Fingerprint: 58:e8:ab:b0:36:15:33:fb:80:f7:9b:1b:6d:29:d3:ff:8d:5f:00:f0 -# SHA256 Fingerprint: 49:e7:a4:42:ac:f0:ea:62:87:05:00:54:b5:25:64:b6:50:e4:f4:9e:42:e3:48:d6:aa:38:e0:39:e9:57:b1:c1 ------BEGIN CERTIFICATE----- -MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRF -MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBD -bGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NTha -ME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMM -HkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIwDQYJKoZIhvcNAQEB -BQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOADER03 -UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42 -tSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9R -ySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM -lFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp -/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8G -A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4G -A1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVj -dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUy -MENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRl -cmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3Js -L2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZIhvcNAQEL -BQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni -acfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 -o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4K -zCUqNQT4YJEVdT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8 -PIWmawomDeCTmGCufsYkl4phX5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3Y -Johw1+qRzT65ysCQblrGXnRl11z+o+I= ------END CERTIFICATE----- - -# Issuer: CN=D-TRUST Root Class 3 CA 2 EV 2009 O=D-Trust GmbH -# Subject: CN=D-TRUST Root Class 3 CA 2 EV 2009 O=D-Trust GmbH -# Label: "D-TRUST Root Class 3 CA 2 EV 2009" -# Serial: 623604 -# MD5 Fingerprint: aa:c6:43:2c:5e:2d:cd:c4:34:c0:50:4f:11:02:4f:b6 -# SHA1 Fingerprint: 96:c9:1b:0b:95:b4:10:98:42:fa:d0:d8:22:79:fe:60:fa:b9:16:83 -# SHA256 Fingerprint: ee:c5:49:6b:98:8c:e9:86:25:b9:34:09:2e:ec:29:08:be:d0:b0:f3:16:c2:d4:73:0c:84:ea:f1:f3:d3:48:81 ------BEGIN CERTIFICATE----- -MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRF -MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBD -bGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUw -NDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNV -BAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfSegpn -ljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM0 -3TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6Z -qQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR -p75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8 -HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQw -ggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9Ntea -HNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFw -Oi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xh -c3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1E -RT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBodHRwOi8vd3d3LmQt -dHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2XzIwMDku -Y3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp -3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 -nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNF -CSuGdXzfX2lXANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7na -xpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX -KVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1 ------END CERTIFICATE----- - -# Issuer: CN=CA Disig Root R2 O=Disig a.s. -# Subject: CN=CA Disig Root R2 O=Disig a.s. -# Label: "CA Disig Root R2" -# Serial: 10572350602393338211 -# MD5 Fingerprint: 26:01:fb:d8:27:a7:17:9a:45:54:38:1a:43:01:3b:03 -# SHA1 Fingerprint: b5:61:eb:ea:a4:de:e4:25:4b:69:1a:98:a5:57:47:c2:34:c7:d9:71 -# SHA256 Fingerprint: e2:3d:4a:03:6d:7b:70:e9:f5:95:b1:42:20:79:d2:b9:1e:df:bb:1f:b6:51:a0:63:3e:aa:8a:9d:c5:f8:07:03 ------BEGIN CERTIFICATE----- -MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV -BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu -MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQy -MDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx -EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIw -ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbCw3Oe -NcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNH -PWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3I -x2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe -QTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfR -yyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrO -QG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912 -H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJ -QfYEkoopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUD -i/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORs -nLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1 -rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud -DwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI -hvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM -tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqf -GopTpti72TVVsRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkb -lvdhuDvEK7Z4bLQjb/D907JedR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka -+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W81k/BfDxujRNt+3vrMNDcTa/F1bal -TFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjxmHHEt38OFdAlab0i -nSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01utI3 -gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18Dr -G5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os -zMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x -L4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL ------END CERTIFICATE----- - -# Issuer: CN=ACCVRAIZ1 O=ACCV OU=PKIACCV -# Subject: CN=ACCVRAIZ1 O=ACCV OU=PKIACCV -# Label: "ACCVRAIZ1" -# Serial: 6828503384748696800 -# MD5 Fingerprint: d0:a0:5a:ee:05:b6:09:94:21:a1:7d:f1:b2:29:82:02 -# SHA1 Fingerprint: 93:05:7a:88:15:c6:4f:ce:88:2f:fa:91:16:52:28:78:bc:53:64:17 -# SHA256 Fingerprint: 9a:6e:c0:12:e1:a7:da:9d:be:34:19:4d:47:8a:d7:c0:db:18:22:fb:07:1d:f1:29:81:49:6e:d1:04:38:41:13 ------BEGIN CERTIFICATE----- -MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE -AwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw -CQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ -BgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND -VjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb -qau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY -HtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo -G2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA -lHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr -IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/ -0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH -k6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47 -4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO -m3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa -cXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl -uUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI -KwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls -ZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG -AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 -VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT -VfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG -CCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA -cgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA -QwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA -7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA -cgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA -QwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA -czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu -aHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt -aW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud -DwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF -BQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp -D70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU -JyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m -AM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD -vV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms -tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH -7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h -I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA -h1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF -d3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H -pPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7 ------END CERTIFICATE----- - -# Issuer: CN=TWCA Global Root CA O=TAIWAN-CA OU=Root CA -# Subject: CN=TWCA Global Root CA O=TAIWAN-CA OU=Root CA -# Label: "TWCA Global Root CA" -# Serial: 3262 -# MD5 Fingerprint: f9:03:7e:cf:e6:9e:3c:73:7a:2a:90:07:69:ff:2b:96 -# SHA1 Fingerprint: 9c:bb:48:53:f6:a4:f6:d3:52:a4:e8:32:52:55:60:13:f5:ad:af:65 -# SHA256 Fingerprint: 59:76:90:07:f7:68:5d:0f:cd:50:87:2f:9f:95:d5:75:5a:5b:2b:45:7d:81:f3:69:2b:61:0a:98:67:2f:0e:1b ------BEGIN CERTIFICATE----- -MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx -EjAQBgNVBAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMT -VFdDQSBHbG9iYWwgUm9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5 -NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsT -B1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2CnJfF -10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz -0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfCh -MBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH -zIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc -46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2 -yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCi -laLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYP -oA/pyJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQA -BDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcE -qYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm -4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB -/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL -1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn -LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WF -H6vPNOw/KP4M8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNo -RI2T9GRwoD2dKAXDOXC4Ynsg/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+ -nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlglPx4mI88k1HtQJAH32RjJMtOcQWh -15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryPA9gK8kxkRr05YuWW -6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3mi4TW -nsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5j -wa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz -aGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmy -KwbQBM0= ------END CERTIFICATE----- - -# Issuer: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center -# Subject: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center -# Label: "T-TeleSec GlobalRoot Class 2" -# Serial: 1 -# MD5 Fingerprint: 2b:9b:9e:e4:7b:6c:1f:00:72:1a:cc:c1:77:79:df:6a -# SHA1 Fingerprint: 59:0d:2d:7d:88:4f:40:2e:61:7e:a5:62:32:17:65:cf:17:d8:94:e9 -# SHA256 Fingerprint: 91:e2:f5:78:8d:58:10:eb:a7:ba:58:73:7d:e1:54:8a:8e:ca:cd:01:45:98:bc:0b:14:3e:04:1b:17:05:25:52 ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx -KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd -BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl -YyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgxMDAxMTA0MDE0WhcNMzMxMDAxMjM1 -OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy -aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50 -ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUd -AqSzm1nzHoqvNK38DcLZSBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiC -FoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/FvudocP05l03Sx5iRUKrERLMjfTlH6VJi -1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx9702cu+fjOlbpSD8DT6Iavq -jnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGVWOHAD3bZ -wI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGj -QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/ -WSA2AHmgoCJrjNXyYdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhy -NsZt+U2e+iKo4YFWz827n+qrkRk4r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPAC -uvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNfvNoBYimipidx5joifsFvHZVw -IEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR3p1m0IvVVGb6 -g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN -9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlP -BSeOE6Fuwg== ------END CERTIFICATE----- - -# Issuer: CN=Atos TrustedRoot 2011 O=Atos -# Subject: CN=Atos TrustedRoot 2011 O=Atos -# Label: "Atos TrustedRoot 2011" -# Serial: 6643877497813316402 -# MD5 Fingerprint: ae:b9:c4:32:4b:ac:7f:5d:66:cc:77:94:bb:2a:77:56 -# SHA1 Fingerprint: 2b:b1:f5:3e:55:0c:1d:c5:f1:d4:e6:b7:6a:46:4b:55:06:02:ac:21 -# SHA256 Fingerprint: f3:56:be:a2:44:b7:a9:1e:b3:5d:53:ca:9a:d7:86:4a:ce:01:8e:2d:35:d5:f8:f9:6d:df:68:a6:f4:1a:a4:74 ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE -AwwVQXRvcyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQG -EwJERTAeFw0xMTA3MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMM -FUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMC -REUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVhTuXbyo7LjvPpvMp -Nb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr54rM -VD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+ -SZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ -4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L -cp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQi -eowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNV -HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgG -A1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3 -DQEBCwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8j -vZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kP -DpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pc -maHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D -lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv -KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed ------END CERTIFICATE----- - -# Issuer: CN=QuoVadis Root CA 1 G3 O=QuoVadis Limited -# Subject: CN=QuoVadis Root CA 1 G3 O=QuoVadis Limited -# Label: "QuoVadis Root CA 1 G3" -# Serial: 687049649626669250736271037606554624078720034195 -# MD5 Fingerprint: a4:bc:5b:3f:fe:37:9a:fa:64:f0:e2:fa:05:3d:0b:ab -# SHA1 Fingerprint: 1b:8e:ea:57:96:29:1a:c9:39:ea:b8:0a:81:1a:73:73:c0:93:79:67 -# SHA256 Fingerprint: 8a:86:6f:d1:b2:76:b5:7e:57:8e:92:1c:65:82:8a:2b:ed:58:e9:f2:f2:88:05:41:34:b7:f1:f4:bf:c9:cc:74 ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL -BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc -BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00 -MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEgRzMwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakEPBtV -wedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWe -rNrwU8lmPNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF341 -68Xfuw6cwI2H44g4hWf6Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh -4Pw5qlPafX7PGglTvF0FBM+hSo+LdoINofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXp -UhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/lg6AnhF4EwfWQvTA9xO+o -abw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV7qJZjqlc -3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/G -KubX9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSt -hfbZxbGL0eUQMk1fiyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KO -Tk0k+17kBL5yG6YnLUlamXrXXAkgt3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOt -zCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -BjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZIhvcNAQELBQAD -ggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC -MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2 -cDMT/uFPpiN3GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUN -qXsCHKnQO18LwIE6PWThv6ctTr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5 -YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP+V04ikkwj+3x6xn0dxoxGE1nVGwv -b2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh3jRJjehZrJ3ydlo2 -8hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fawx/k -NSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNj -ZgKAvQU6O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhp -q1467HxpvMc7hU6eFbm0FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFt -nh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOVhMJKzRwuJIczYOXD ------END CERTIFICATE----- - -# Issuer: CN=QuoVadis Root CA 2 G3 O=QuoVadis Limited -# Subject: CN=QuoVadis Root CA 2 G3 O=QuoVadis Limited -# Label: "QuoVadis Root CA 2 G3" -# Serial: 390156079458959257446133169266079962026824725800 -# MD5 Fingerprint: af:0c:86:6e:bf:40:2d:7f:0b:3e:12:50:ba:12:3d:06 -# SHA1 Fingerprint: 09:3c:61:f3:8b:8b:dc:7d:55:df:75:38:02:05:00:e1:25:f5:c8:36 -# SHA256 Fingerprint: 8f:e4:fb:0a:f9:3a:4d:0d:67:db:0b:eb:b2:3e:37:c7:1b:f3:25:dc:bc:dd:24:0e:a0:4d:af:58:b4:7e:18:40 ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQEL -BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc -BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00 -MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIgRzMwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFhZiFf -qq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMW -n4rjyduYNM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ym -c5GQYaYDFCDy54ejiK2toIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+ -O7q414AB+6XrW7PFXmAqMaCvN+ggOp+oMiwMzAkd056OXbxMmO7FGmh77FOm6RQ1 -o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+lV0POKa2Mq1W/xPtbAd0j -IaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZoL1NesNKq -IcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz -8eQQsSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43eh -vNURG3YBZwjgQQvD6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l -7ZizlWNof/k19N+IxWA1ksB8aRxhlRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALG -cC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -BjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZIhvcNAQELBQAD -ggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 -AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RC -roijQ1h5fq7KpVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0Ga -W/ZZGYjeVYg3UQt4XAoeo0L9x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4n -lv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgzdWqTHBLmYF5vHX/JHyPLhGGfHoJE -+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6XU/IyAgkwo1jwDQHV -csaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+NwmNtd -dbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNg -KCLjsZWDzYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeM -HVOyToV7BjjHLPj4sHKNJeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4 -WSr2Rz0ZiC3oheGe7IUIarFsNMkd7EgrO3jtZsSOeWmD3n+M ------END CERTIFICATE----- - -# Issuer: CN=QuoVadis Root CA 3 G3 O=QuoVadis Limited -# Subject: CN=QuoVadis Root CA 3 G3 O=QuoVadis Limited -# Label: "QuoVadis Root CA 3 G3" -# Serial: 268090761170461462463995952157327242137089239581 -# MD5 Fingerprint: df:7d:b9:ad:54:6f:68:a1:df:89:57:03:97:43:b0:d7 -# SHA1 Fingerprint: 48:12:bd:92:3c:a8:c4:39:06:e7:30:6d:27:96:e6:a4:cf:22:2e:7d -# SHA256 Fingerprint: 88:ef:81:de:20:2e:b0:18:45:2e:43:f8:64:72:5c:ea:5f:bd:1f:c2:d9:d2:05:73:07:09:c5:d8:b8:69:0f:46 ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQEL -BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc -BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00 -MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMgRzMwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286IxSR -/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNu -FoM7pmRLMon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXR -U7Ox7sWTaYI+FrUoRqHe6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+c -ra1AdHkrAj80//ogaX3T7mH1urPnMNA3I4ZyYUUpSFlob3emLoG+B01vr87ERROR -FHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3UVDmrJqMz6nWB2i3ND0/k -A9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f75li59wzw -eyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634Ryl -sSqiMd5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBp -VzgeAVuNVejH38DMdyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0Q -A4XN8f+MFrXBsj6IbGB/kE+V9/YtrQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ -ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -BjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZIhvcNAQELBQAD -ggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px -KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnI -FUBhynLWcKzSt/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5Wvv -oxXqA/4Ti2Tk08HS6IT7SdEQTXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFg -u/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9DuDcpmvJRPpq3t/O5jrFc/ZSXPsoaP -0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGibIh6BJpsQBJFxwAYf -3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmDhPbl -8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+ -DhcI00iX0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HN -PlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ -ywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0 ------END CERTIFICATE----- - -# Issuer: CN=DigiCert Assured ID Root G2 O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Assured ID Root G2 O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Assured ID Root G2" -# Serial: 15385348160840213938643033620894905419 -# MD5 Fingerprint: 92:38:b9:f8:63:24:82:65:2c:57:33:e6:fe:81:8f:9d -# SHA1 Fingerprint: a1:4b:48:d9:43:ee:0a:0e:40:90:4f:3c:e0:a4:c0:91:93:51:5d:3f -# SHA256 Fingerprint: 7d:05:eb:b6:82:33:9f:8c:94:51:ee:09:4e:eb:fe:fa:79:53:a1:14:ed:b2:f4:49:49:45:2f:ab:7d:2f:c1:85 ------BEGIN CERTIFICATE----- -MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv -b3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl -cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA -n61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc -biJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp -EgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA -bx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu -YjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB -AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW -BBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI -QW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I -0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni -lmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9 -B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv -ON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo -IhNzbM8m9Yop5w== ------END CERTIFICATE----- - -# Issuer: CN=DigiCert Assured ID Root G3 O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Assured ID Root G3 O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Assured ID Root G3" -# Serial: 15459312981008553731928384953135426796 -# MD5 Fingerprint: 7c:7f:65:31:0c:81:df:8d:ba:3e:99:e2:5c:ad:6e:fb -# SHA1 Fingerprint: f5:17:a2:4f:9a:48:c6:c9:f8:a2:00:26:9f:dc:0f:48:2c:ab:30:89 -# SHA256 Fingerprint: 7e:37:cb:8b:4c:47:09:0c:ab:36:55:1b:a6:f4:5d:b8:40:68:0f:ba:16:6a:95:2d:b1:00:71:7f:43:05:3f:c2 ------BEGIN CERTIFICATE----- -MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw -CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu -ZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg -RzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV -UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu -Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq -hkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf -Zn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q -RSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ -BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD -AwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY -JjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv -6pZjamVFkpUBtA== ------END CERTIFICATE----- - -# Issuer: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Global Root G2" -# Serial: 4293743540046975378534879503202253541 -# MD5 Fingerprint: e4:a6:8a:c8:54:ac:52:42:46:0a:fd:72:48:1b:2a:44 -# SHA1 Fingerprint: df:3c:24:f9:bf:d6:66:76:1b:26:80:73:fe:06:d1:cc:8d:4f:82:a4 -# SHA256 Fingerprint: cb:3c:cb:b7:60:31:e5:e0:13:8f:8d:d3:9a:23:f9:de:47:ff:c3:5e:43:c1:14:4c:ea:27:d4:6a:5a:b1:cb:5f ------BEGIN CERTIFICATE----- -MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH -MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT -MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j -b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI -2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx -1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ -q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz -tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ -vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP -BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV -5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY -1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4 -NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG -Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91 -8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe -pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl -MrY= ------END CERTIFICATE----- - -# Issuer: CN=DigiCert Global Root G3 O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Global Root G3 O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Global Root G3" -# Serial: 7089244469030293291760083333884364146 -# MD5 Fingerprint: f5:5d:a4:50:a5:fb:28:7e:1e:0f:0d:cc:96:57:56:ca -# SHA1 Fingerprint: 7e:04:de:89:6a:3e:66:6d:00:e6:87:d3:3f:fa:d9:3b:e8:3d:34:9e -# SHA256 Fingerprint: 31:ad:66:48:f8:10:41:38:c7:38:f3:9e:a4:32:01:33:39:3e:3a:18:cc:02:29:6e:f9:7c:2a:c9:ef:67:31:d0 ------BEGIN CERTIFICATE----- -MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw -CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu -ZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe -Fw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw -EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x -IDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF -K4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG -fp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO -Z9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd -BgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx -AK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/ -oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8 -sycX ------END CERTIFICATE----- - -# Issuer: CN=DigiCert Trusted Root G4 O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Trusted Root G4 O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Trusted Root G4" -# Serial: 7451500558977370777930084869016614236 -# MD5 Fingerprint: 78:f2:fc:aa:60:1f:2f:b4:eb:c9:37:ba:53:2e:75:49 -# SHA1 Fingerprint: dd:fb:16:cd:49:31:c9:73:a2:03:7d:3f:c8:3a:4d:7d:77:5d:05:e4 -# SHA256 Fingerprint: 55:2f:7b:dc:f1:a7:af:9e:6c:e6:72:01:7f:4f:12:ab:f7:72:40:c7:8e:76:1a:c2:03:d1:d9:d2:0a:c8:99:88 ------BEGIN CERTIFICATE----- -MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg -RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV -UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu -Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y -ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If -xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV -ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO -DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ -jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/ -CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi -EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM -fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY -uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK -chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t -9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD -ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2 -SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd -+SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc -fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa -sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N -cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N -0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie -4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI -r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1 -/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm -gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+ ------END CERTIFICATE----- - -# Issuer: CN=COMODO RSA Certification Authority O=COMODO CA Limited -# Subject: CN=COMODO RSA Certification Authority O=COMODO CA Limited -# Label: "COMODO RSA Certification Authority" -# Serial: 101909084537582093308941363524873193117 -# MD5 Fingerprint: 1b:31:b0:71:40:36:cc:14:36:91:ad:c4:3e:fd:ec:18 -# SHA1 Fingerprint: af:e5:d2:44:a8:d1:19:42:30:ff:47:9f:e2:f8:97:bb:cd:7a:8c:b4 -# SHA256 Fingerprint: 52:f0:e1:c4:e5:8e:c6:29:29:1b:60:31:7f:07:46:71:b8:5d:7e:a8:0d:5b:07:27:34:63:53:4b:32:b4:02:34 ------BEGIN CERTIFICATE----- -MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB -hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G -A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV -BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5 -MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT -EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR -Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR -6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X -pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC -9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV -/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf -Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z -+pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w -qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah -SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC -u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf -Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq -crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E -FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB -/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl -wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM -4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV -2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna -FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ -CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK -boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke -jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL -S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb -QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl -0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB -NVOFBkpdn627G190 ------END CERTIFICATE----- - -# Issuer: CN=USERTrust RSA Certification Authority O=The USERTRUST Network -# Subject: CN=USERTrust RSA Certification Authority O=The USERTRUST Network -# Label: "USERTrust RSA Certification Authority" -# Serial: 2645093764781058787591871645665788717 -# MD5 Fingerprint: 1b:fe:69:d1:91:b7:19:33:a3:72:a8:0f:e1:55:e5:b5 -# SHA1 Fingerprint: 2b:8f:1b:57:33:0d:bb:a2:d0:7a:6c:51:f7:0e:e9:0d:da:b9:ad:8e -# SHA256 Fingerprint: e7:93:c9:b0:2f:d8:aa:13:e2:1c:31:22:8a:cc:b0:81:19:64:3b:74:9c:89:89:64:b1:74:6d:46:c3:d4:cb:d2 ------BEGIN CERTIFICATE----- -MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB -iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl -cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV -BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw -MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV -BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU -aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy -dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK -AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B -3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY -tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/ -Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2 -VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT -79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6 -c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT -Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l -c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee -UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE -Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd -BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G -A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF -Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO -VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3 -ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs -8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR -iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze -Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ -XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/ -qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB -VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB -L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG -jjxDah2nGN59PRbxYvnKkKj9 ------END CERTIFICATE----- - -# Issuer: CN=USERTrust ECC Certification Authority O=The USERTRUST Network -# Subject: CN=USERTrust ECC Certification Authority O=The USERTRUST Network -# Label: "USERTrust ECC Certification Authority" -# Serial: 123013823720199481456569720443997572134 -# MD5 Fingerprint: fa:68:bc:d9:b5:7f:ad:fd:c9:1d:06:83:28:cc:24:c1 -# SHA1 Fingerprint: d1:cb:ca:5d:b2:d5:2a:7f:69:3b:67:4d:e5:f0:5a:1d:0c:95:7d:f0 -# SHA256 Fingerprint: 4f:f4:60:d5:4b:9c:86:da:bf:bc:fc:57:12:e0:40:0d:2b:ed:3f:bc:4d:4f:bd:aa:86:e0:6a:dc:d2:a9:ad:7a ------BEGIN CERTIFICATE----- -MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl -eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT -JVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx -MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -Ck5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg -VVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm -aWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo -I+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng -o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G -A1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB -zzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW -RNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= ------END CERTIFICATE----- - -# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R5 -# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R5 -# Label: "GlobalSign ECC Root CA - R5" -# Serial: 32785792099990507226680698011560947931244 -# MD5 Fingerprint: 9f:ad:3b:1c:02:1e:8a:ba:17:74:38:81:0c:a2:bc:08 -# SHA1 Fingerprint: 1f:24:c6:30:cd:a4:18:ef:20:69:ff:ad:4f:dd:5f:46:3a:1b:69:aa -# SHA256 Fingerprint: 17:9f:bc:14:8a:3d:d0:0f:d2:4e:a1:34:58:cc:43:bf:a7:f5:9c:81:82:d7:83:a5:13:f6:eb:ec:10:0c:89:24 ------BEGIN CERTIFICATE----- -MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEk -MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpH -bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX -DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD -QSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu -MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6SFkc -8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8ke -hOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI -KoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg -515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnO -xwy8p2Fp8fc74SrL+SvzZpA3 ------END CERTIFICATE----- - -# Issuer: CN=IdenTrust Commercial Root CA 1 O=IdenTrust -# Subject: CN=IdenTrust Commercial Root CA 1 O=IdenTrust -# Label: "IdenTrust Commercial Root CA 1" -# Serial: 13298821034946342390520003877796839426 -# MD5 Fingerprint: b3:3e:77:73:75:ee:a0:d3:e3:7e:49:63:49:59:bb:c7 -# SHA1 Fingerprint: df:71:7e:aa:4a:d9:4e:c9:55:84:99:60:2d:48:de:5f:bc:f0:3a:25 -# SHA256 Fingerprint: 5d:56:49:9b:e4:d2:e0:8b:cf:ca:d0:8a:3e:38:72:3d:50:50:3b:de:70:69:48:e4:2f:55:60:30:19:e5:28:ae ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBK -MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVu -VHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQw -MTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScw -JQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT -3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU -+ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gp -S0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1 -bVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORi -T0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCL -vYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjK -Vsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZK -dHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHT -c+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hv -l7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5N -iGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB -/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD -ggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH -6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwt -LRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93 -nAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3 -+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRK -W2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pT -AwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLq -l1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG -4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ -mUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A -7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H ------END CERTIFICATE----- - -# Issuer: CN=IdenTrust Public Sector Root CA 1 O=IdenTrust -# Subject: CN=IdenTrust Public Sector Root CA 1 O=IdenTrust -# Label: "IdenTrust Public Sector Root CA 1" -# Serial: 13298821034946342390521976156843933698 -# MD5 Fingerprint: 37:06:a5:b0:fc:89:9d:ba:f4:6b:8c:1a:64:cd:d5:ba -# SHA1 Fingerprint: ba:29:41:60:77:98:3f:f4:f3:ef:f2:31:05:3b:2e:ea:6d:4d:45:fd -# SHA256 Fingerprint: 30:d0:89:5a:9a:44:8a:26:20:91:63:55:22:d1:f5:20:10:b5:86:7a:ca:e1:2c:78:ef:95:8f:d4:f4:38:9f:2f ------BEGIN CERTIFICATE----- -MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBN -MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVu -VHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcN -MzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0 -MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTyP4o7 -ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGy -RBb06tD6Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlS -bdsHyo+1W/CD80/HLaXIrcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF -/YTLNiCBWS2ab21ISGHKTN9T0a9SvESfqy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R -3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoSmJxZZoY+rfGwyj4GD3vw -EUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFnol57plzy -9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9V -GxyhLrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ -2fjXctscvG29ZV/viDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsV -WaFHVCkugyhfHMKiq3IXAAaOReyL4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gD -W/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMwDQYJKoZIhvcN -AQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj -t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHV -DRDtfULAj+7AmgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9 -TaDKQGXSc3z1i9kKlT/YPyNtGtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8G -lwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFtm6/n6J91eEyrRjuazr8FGF1NFTwW -mhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMxNRF4eKLg6TCMf4Df -WN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4Mhn5 -+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJ -tshquDDIajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhA -GaQdp/lLQzfcaFpPz+vCZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv -8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ3Wl9af0AVqW3rLatt8o+Ae+c ------END CERTIFICATE----- - -# Issuer: CN=CFCA EV ROOT O=China Financial Certification Authority -# Subject: CN=CFCA EV ROOT O=China Financial Certification Authority -# Label: "CFCA EV ROOT" -# Serial: 407555286 -# MD5 Fingerprint: 74:e1:b6:ed:26:7a:7a:44:30:33:94:ab:7b:27:81:30 -# SHA1 Fingerprint: e2:b8:29:4b:55:84:ab:6b:58:c2:90:46:6c:ac:3f:b8:39:8f:84:83 -# SHA256 Fingerprint: 5c:c3:d7:8e:4e:1d:5e:45:54:7a:04:e6:87:3e:64:f9:0c:f9:53:6d:1c:cc:2e:f8:00:f3:55:c4:c5:fd:70:fd ------BEGIN CERTIFICATE----- -MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD -TjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y -aXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkx -MjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5j -aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJP -T1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03 -sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpL -TIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5 -/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp -7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRz -EpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgt -hxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvP -a931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqot -aK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNg -TnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfV -PKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hv -cWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNAL -tbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd -BgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB -ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObT -ej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdL -jOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBS -ESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qy -P5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19 -xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9d -Ci77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN -5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe -/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+Z -AAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ -5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su ------END CERTIFICATE----- - -# Issuer: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed -# Subject: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed -# Label: "OISTE WISeKey Global Root GB CA" -# Serial: 157768595616588414422159278966750757568 -# MD5 Fingerprint: a4:eb:b9:61:28:2e:b7:2f:98:b0:35:26:90:99:51:1d -# SHA1 Fingerprint: 0f:f9:40:76:18:d3:d7:6a:4b:98:f0:a8:35:9e:0c:fd:27:ac:cc:ed -# SHA256 Fingerprint: 6b:9c:08:e8:6e:b0:f7:67:cf:ad:65:cd:98:b6:21:49:e5:49:4a:67:f5:84:5e:7b:d1:ed:01:9f:27:b8:6b:d6 ------BEGIN CERTIFICATE----- -MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt -MQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUg -Rm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9i -YWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0x -CzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBG -b3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh -bCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3 -HEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGx -WuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX -1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNk -u7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P -99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9r -M2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUB -BAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrgh -cViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5 -gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3ZwLWoo4rO -ZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf -aPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic -Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= ------END CERTIFICATE----- - -# Issuer: CN=SZAFIR ROOT CA2 O=Krajowa Izba Rozliczeniowa S.A. -# Subject: CN=SZAFIR ROOT CA2 O=Krajowa Izba Rozliczeniowa S.A. -# Label: "SZAFIR ROOT CA2" -# Serial: 357043034767186914217277344587386743377558296292 -# MD5 Fingerprint: 11:64:c1:89:b0:24:b1:8c:b1:07:7e:89:9e:51:9e:99 -# SHA1 Fingerprint: e2:52:fa:95:3f:ed:db:24:60:bd:6e:28:f3:9c:cc:cf:5e:b3:3f:de -# SHA256 Fingerprint: a1:33:9d:33:28:1a:0b:56:e5:57:d3:d3:2b:1c:e7:f9:36:7e:b0:94:bd:5f:a7:2a:7e:50:04:c8:de:d7:ca:fe ------BEGIN CERTIFICATE----- -MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQEL -BQAwUTELMAkGA1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6 -ZW5pb3dhIFMuQS4xGDAWBgNVBAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkw -NzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9L -cmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYDVQQDDA9TWkFGSVIg -Uk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5QqEvN -QLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT -3PSQ1hNKDJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw -3gAeqDRHu5rr/gsUvTaE2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr6 -3fE9biCloBK0TXC5ztdyO4mTp4CEHCdJckm1/zuVnsHMyAHs6A6KCpbns6aH5db5 -BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwiieDhZNRnvDF5YTy7ykHN -XGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD -AgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsF -AAOCAQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw -8PRBEew/R40/cof5O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOG -nXkZ7/e7DDWQw4rtTw/1zBLZpD67oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCP -oky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul4+vJhaAlIDf7js4MNIThPIGy -d05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6+/NNIxuZMzSg -LvWpCz/UXeHPhJ/iGcJfitYgHuNztw== ------END CERTIFICATE----- - -# Issuer: CN=Certum Trusted Network CA 2 O=Unizeto Technologies S.A. OU=Certum Certification Authority -# Subject: CN=Certum Trusted Network CA 2 O=Unizeto Technologies S.A. OU=Certum Certification Authority -# Label: "Certum Trusted Network CA 2" -# Serial: 44979900017204383099463764357512596969 -# MD5 Fingerprint: 6d:46:9e:d9:25:6d:08:23:5b:5e:74:7d:1e:27:db:f2 -# SHA1 Fingerprint: d3:dd:48:3e:2b:bf:4c:05:e8:af:10:f5:fa:76:26:cf:d3:dc:30:92 -# SHA256 Fingerprint: b6:76:f2:ed:da:e8:77:5c:d3:6c:b0:f6:3c:d1:d4:60:39:61:f4:9e:62:65:ba:01:3a:2f:03:07:b6:d0:b8:04 ------BEGIN CERTIFICATE----- -MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCB -gDELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu -QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIG -A1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQSAyMCIYDzIwMTExMDA2MDgz -OTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQTDEiMCAGA1UEChMZ -VW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3 -b3JrIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWA -DGSdhhuWZGc/IjoedQF97/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn -0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+oCgCXhVqqndwpyeI1B+twTUrWwbNWuKFB -OJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40bRr5HMNUuctHFY9rnY3lE -fktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2puTRZCr+E -Sv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1m -o130GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02i -sx7QBlrd9pPPV3WZ9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOW -OZV7bIBaTxNyxtd9KXpEulKkKtVBRgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgez -Tv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pyehizKV/Ma5ciSixqClnrDvFAS -adgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vMBhBgu4M1t15n -3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMC -AQYwDQYJKoZIhvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQ -F/xlhMcQSZDe28cmk4gmb3DWAl45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTf -CVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuAL55MYIR4PSFk1vtBHxgP58l1cb29 -XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMoclm2q8KMZiYcdywm -djWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tMpkT/ -WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jb -AoJnwTnbw3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksq -P/ujmv5zMnHCnsZy4YpoJ/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Ko -b7a6bINDd82Kkhehnlt4Fj1F4jNy3eFmypnTycUm/Q1oBEauttmbjL4ZvrHG8hnj -XALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLXis7VmFxWlgPF7ncGNf/P -5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7zAYspsbi -DrW5viSP ------END CERTIFICATE----- - -# Issuer: CN=Hellenic Academic and Research Institutions RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority -# Subject: CN=Hellenic Academic and Research Institutions RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority -# Label: "Hellenic Academic and Research Institutions RootCA 2015" -# Serial: 0 -# MD5 Fingerprint: ca:ff:e2:db:03:d9:cb:4b:e9:0f:ad:84:fd:7b:18:ce -# SHA1 Fingerprint: 01:0c:06:95:a6:98:19:14:ff:bf:5f:c6:b0:b6:95:ea:29:e9:12:a6 -# SHA256 Fingerprint: a0:40:92:9a:02:ce:53:b4:ac:f4:f2:ff:c6:98:1c:e4:49:6f:75:5e:6d:45:fe:0b:2a:69:2b:cd:52:52:3f:36 ------BEGIN CERTIFICATE----- -MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1Ix -DzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5k -IFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMT -N0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9v -dENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAxMTIxWjCBpjELMAkG -A1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNh -ZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkx -QDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1 -dGlvbnMgUm9vdENBIDIwMTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -AQDC+Kk/G4n8PDwEXT2QNrCROnk8ZlrvbTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA -4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+ehiGsxr/CL0BgzuNtFajT0 -AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+6PAQZe10 -4S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06C -ojXdFPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV -9Cz82XBST3i4vTwri5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrD -gfgXy5I2XdGj2HUb4Ysn6npIQf1FGQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6 -Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2fu/Z8VFRfS0myGlZYeCsargq -NhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9muiNX6hME6wGko -LfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc -Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNV -HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVd -ctA4GGqd83EkVAswDQYJKoZIhvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0I -XtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+D1hYc2Ryx+hFjtyp8iY/xnmMsVMI -M4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrMd/K4kPFox/la/vot -9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+yd+2V -Z5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/ea -j8GsGsVn82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnh -X9izjFk0WaSrT2y7HxjbdavYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQ -l033DlZdwJVqwjbDG2jJ9SrcR5q+ss7FJej6A7na+RZukYT1HCjI/CbM1xyQVqdf -bzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVtJ94Cj8rDtSvK6evIIVM4 -pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGaJI7ZjnHK -e7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0 -vm9qp/UsQu0yrbYhnr68 ------END CERTIFICATE----- - -# Issuer: CN=Hellenic Academic and Research Institutions ECC RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority -# Subject: CN=Hellenic Academic and Research Institutions ECC RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority -# Label: "Hellenic Academic and Research Institutions ECC RootCA 2015" -# Serial: 0 -# MD5 Fingerprint: 81:e5:b4:17:eb:c2:f5:e1:4b:0d:41:7b:49:92:fe:ef -# SHA1 Fingerprint: 9f:f1:71:8d:92:d5:9a:f3:7d:74:97:b4:bc:6f:84:68:0b:ba:b6:66 -# SHA256 Fingerprint: 44:b5:45:aa:8a:25:e6:5a:73:ca:15:dc:27:fc:36:d2:4c:1c:b9:95:3a:06:65:39:b1:15:82:dc:48:7b:48:33 ------BEGIN CERTIFICATE----- -MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzAN -BgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl -c2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hl -bGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgRUNDIFJv -b3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEwMzcxMlowgaoxCzAJ -BgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmljIEFj -YWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5 -MUQwQgYDVQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0 -dXRpb25zIEVDQyBSb290Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKg -QehLgoRc4vgxEZmGZE4JJS+dQS8KrjVPdJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJa -jq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoKVlp8aQuqgAkkbH7BRqNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLQi -C4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaep -lSTAGiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7Sof -TUwJCA3sS61kFyjndc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR ------END CERTIFICATE----- - -# Issuer: CN=ISRG Root X1 O=Internet Security Research Group -# Subject: CN=ISRG Root X1 O=Internet Security Research Group -# Label: "ISRG Root X1" -# Serial: 172886928669790476064670243504169061120 -# MD5 Fingerprint: 0c:d2:f9:e0:da:17:73:e9:ed:86:4d:a5:e3:70:e7:4e -# SHA1 Fingerprint: ca:bd:2a:79:a1:07:6a:31:f2:1d:25:36:35:cb:03:9d:43:29:a5:e8 -# SHA256 Fingerprint: 96:bc:ec:06:26:49:76:f3:74:60:77:9a:cf:28:c5:a7:cf:e8:a3:c0:aa:e1:1a:8f:fc:ee:05:c0:bd:df:08:c6 ------BEGIN CERTIFICATE----- -MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw -TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh -cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4 -WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu -ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY -MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc -h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+ -0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U -A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW -T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH -B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC -B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv -KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn -OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn -jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw -qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI -rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq -hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL -ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ -3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK -NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5 -ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur -TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC -jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc -oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq -4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA -mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d -emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc= ------END CERTIFICATE----- - -# Issuer: O=FNMT-RCM OU=AC RAIZ FNMT-RCM -# Subject: O=FNMT-RCM OU=AC RAIZ FNMT-RCM -# Label: "AC RAIZ FNMT-RCM" -# Serial: 485876308206448804701554682760554759 -# MD5 Fingerprint: e2:09:04:b4:d3:bd:d1:a0:14:fd:1a:d2:47:c4:57:1d -# SHA1 Fingerprint: ec:50:35:07:b2:15:c4:95:62:19:e2:a8:9a:5b:42:99:2c:4c:2c:20 -# SHA256 Fingerprint: eb:c5:57:0c:29:01:8c:4d:67:b1:aa:12:7b:af:12:f7:03:b4:61:1e:bc:17:b7:da:b5:57:38:94:17:9b:93:fa ------BEGIN CERTIFICATE----- -MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsx -CzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJ -WiBGTk1ULVJDTTAeFw0wODEwMjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJ -BgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBG -Tk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALpxgHpMhm5/ -yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcfqQgf -BBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAz -WHFctPVrbtQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxF -tBDXaEAUwED653cXeuYLj2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z -374jNUUeAlz+taibmSXaXvMiwzn15Cou08YfxGyqxRxqAQVKL9LFwag0Jl1mpdIC -IfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mwWsXmo8RZZUc1g16p6DUL -mbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnTtOmlcYF7 -wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peS -MKGJ47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2 -ZSysV4999AeU14ECll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMet -UqIJ5G+GR4of6ygnXYMgrwTJbFaai0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPd9xf3E6Jobd2Sn9R2gzL+H -YJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3 -LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD -nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1 -RXxlDPiyN8+sD8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYM -LVN0V2Ue1bLdI4E7pWYjJ2cJj+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf -77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrTQfv6MooqtyuGC2mDOL7Nii4LcK2N -JpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW+YJF1DngoABd15jm -fZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7Ixjp -6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp -1txyM/1d8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B -9kiABdcPUXmsEKvU7ANm5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wok -RqEIr9baRRmW1FMdW4R58MD3R++Lj8UGrp1MYp3/RgT408m2ECVAdf4WqslKYIYv -uu8wd+RU4riEmViAqhOLUTpPSPaLtrM= ------END CERTIFICATE----- - -# Issuer: CN=Amazon Root CA 1 O=Amazon -# Subject: CN=Amazon Root CA 1 O=Amazon -# Label: "Amazon Root CA 1" -# Serial: 143266978916655856878034712317230054538369994 -# MD5 Fingerprint: 43:c6:bf:ae:ec:fe:ad:2f:18:c6:88:68:30:fc:c8:e6 -# SHA1 Fingerprint: 8d:a7:f9:65:ec:5e:fc:37:91:0f:1c:6e:59:fd:c1:cc:6a:6e:de:16 -# SHA256 Fingerprint: 8e:cd:e6:88:4f:3d:87:b1:12:5b:a3:1a:c3:fc:b1:3d:70:16:de:7f:57:cc:90:4f:e1:cb:97:c6:ae:98:19:6e ------BEGIN CERTIFICATE----- -MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF -ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6 -b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL -MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv -b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj -ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM -9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw -IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6 -VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L -93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm -jgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA -A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI -U5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs -N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv -o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU -5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy -rqXRfboQnoZsG4q5WTP468SQvvG5 ------END CERTIFICATE----- - -# Issuer: CN=Amazon Root CA 2 O=Amazon -# Subject: CN=Amazon Root CA 2 O=Amazon -# Label: "Amazon Root CA 2" -# Serial: 143266982885963551818349160658925006970653239 -# MD5 Fingerprint: c8:e5:8d:ce:a8:42:e2:7a:c0:2a:5c:7c:9e:26:bf:66 -# SHA1 Fingerprint: 5a:8c:ef:45:d7:a6:98:59:76:7a:8c:8b:44:96:b5:78:cf:47:4b:1a -# SHA256 Fingerprint: 1b:a5:b2:aa:8c:65:40:1a:82:96:01:18:f8:0b:ec:4f:62:30:4d:83:ce:c4:71:3a:19:c3:9c:01:1e:a4:6d:b4 ------BEGIN CERTIFICATE----- -MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwF -ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6 -b24gUm9vdCBDQSAyMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTEL -MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv -b3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK2Wny2cSkxK -gXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4kHbZ -W0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg -1dKmSYXpN+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K -8nu+NQWpEjTj82R0Yiw9AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r -2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvdfLC6HM783k81ds8P+HgfajZRRidhW+me -z/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAExkv8LV/SasrlX6avvDXbR -8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSSbtqDT6Zj -mUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz -7Mt0Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6 -+XUyo05f7O0oYtlNc/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI -0u1ufm8/0i2BWSlmy5A5lREedCf+3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMB -Af8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSwDPBMMPQFWAJI/TPlUq9LhONm -UjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oAA7CXDpO8Wqj2 -LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY -+gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kS -k5Nrp+gvU5LEYFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl -7uxMMne0nxrpS10gxdr9HIcWxkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygm -btmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQgj9sAq+uEjonljYE1x2igGOpm/Hl -urR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbWaQbLU8uz/mtBzUF+ -fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoVYh63 -n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE -76KlXIx3KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H -9jVlpNMKVv/1F2Rs76giJUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT -4PsJYGw= ------END CERTIFICATE----- - -# Issuer: CN=Amazon Root CA 3 O=Amazon -# Subject: CN=Amazon Root CA 3 O=Amazon -# Label: "Amazon Root CA 3" -# Serial: 143266986699090766294700635381230934788665930 -# MD5 Fingerprint: a0:d4:ef:0b:f7:b5:d8:49:95:2a:ec:f5:c4:fc:81:87 -# SHA1 Fingerprint: 0d:44:dd:8c:3c:8c:1a:1a:58:75:64:81:e9:0f:2e:2a:ff:b3:d2:6e -# SHA256 Fingerprint: 18:ce:6c:fe:7b:f1:4e:60:b2:e3:47:b8:df:e8:68:cb:31:d0:2e:bb:3a:da:27:15:69:f5:03:43:b4:6d:b3:a4 ------BEGIN CERTIFICATE----- -MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5 -MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g -Um9vdCBDQSAzMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG -A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg -Q0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKl -ui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjrZt6j -QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSr -ttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkr -BqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM -YyRIHN8wfdVoOw== ------END CERTIFICATE----- - -# Issuer: CN=Amazon Root CA 4 O=Amazon -# Subject: CN=Amazon Root CA 4 O=Amazon -# Label: "Amazon Root CA 4" -# Serial: 143266989758080763974105200630763877849284878 -# MD5 Fingerprint: 89:bc:27:d5:eb:17:8d:06:6a:69:d5:fd:89:47:b4:cd -# SHA1 Fingerprint: f6:10:84:07:d6:f8:bb:67:98:0c:c2:e2:44:c2:eb:ae:1c:ef:63:be -# SHA256 Fingerprint: e3:5d:28:41:9e:d0:20:25:cf:a6:90:38:cd:62:39:62:45:8d:a5:c6:95:fb:de:a3:c2:2b:0b:fb:25:89:70:92 ------BEGIN CERTIFICATE----- -MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5 -MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g -Um9vdCBDQSA0MB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG -A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg -Q0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN/sGKe0uoe0ZLY7Bi -9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri83Bk -M6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB -/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WB -MAoGCCqGSM49BAMDA2gAMGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlw -CkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW -1KyLa2tJElMzrdfkviT8tQp21KW8EA== ------END CERTIFICATE----- - -# Issuer: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK OU=Kamu Sertifikasyon Merkezi - Kamu SM -# Subject: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK OU=Kamu Sertifikasyon Merkezi - Kamu SM -# Label: "TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1" -# Serial: 1 -# MD5 Fingerprint: dc:00:81:dc:69:2f:3e:2f:b0:3b:f6:3d:5a:91:8e:49 -# SHA1 Fingerprint: 31:43:64:9b:ec:ce:27:ec:ed:3a:3f:0b:8f:0d:e4:e8:91:dd:ee:ca -# SHA256 Fingerprint: 46:ed:c3:68:90:46:d5:3a:45:3f:b3:10:4a:b8:0d:ca:ec:65:8b:26:60:ea:16:29:dd:7e:86:79:90:64:87:16 ------BEGIN CERTIFICATE----- -MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIx -GDAWBgNVBAcTD0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxp -bXNlbCB2ZSBUZWtub2xvamlrIEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0w -KwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24gTWVya2V6aSAtIEthbXUgU00xNjA0 -BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRpZmlrYXNpIC0gU3Vy -dW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYDVQQG -EwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXll -IEJpbGltc2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklU -QUsxLTArBgNVBAsTJEthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBT -TTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11IFNNIFNTTCBLb2sgU2VydGlmaWthc2kg -LSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr3UwM6q7 -a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y86Ij5iySr -LqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INr -N3wcwv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2X -YacQuFWQfw4tJzh03+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/ -iSIzL+aFCr2lqBs23tPcLG07xxO9WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4f -AJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQUZT/HiobGPN08VFw1+DrtUgxH -V8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL -BQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh -AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPf -IPP54+M638yclNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4 -lzwDGrpDxpa5RXI4s6ehlj2Re37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c -8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0jq5Rm+K37DwhuJi1/FwcJsoz7UMCf -lo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= ------END CERTIFICATE----- - -# Issuer: CN=GDCA TrustAUTH R5 ROOT O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD. -# Subject: CN=GDCA TrustAUTH R5 ROOT O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD. -# Label: "GDCA TrustAUTH R5 ROOT" -# Serial: 9009899650740120186 -# MD5 Fingerprint: 63:cc:d9:3d:34:35:5c:6f:53:a3:e2:08:70:48:1f:b4 -# SHA1 Fingerprint: 0f:36:38:5b:81:1a:25:c3:9b:31:4e:83:ca:e9:34:66:70:cc:74:b4 -# SHA256 Fingerprint: bf:ff:8f:d0:44:33:48:7d:6a:8a:a6:0c:1a:29:76:7a:9f:c2:bb:b0:5e:42:0f:71:3a:13:b9:92:89:1d:38:93 ------BEGIN CERTIFICATE----- -MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UE -BhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ -IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0 -MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVowYjELMAkGA1UEBhMCQ04xMjAwBgNV -BAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8w -HQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0BAQEF -AAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJj -Dp6L3TQsAlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBj -TnnEt1u9ol2x8kECK62pOqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+u -KU49tm7srsHwJ5uu4/Ts765/94Y9cnrrpftZTqfrlYwiOXnhLQiPzLyRuEH3FMEj -qcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ9Cy5WmYqsBebnh52nUpm -MUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQxXABZG12 -ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloP -zgsMR6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3Gk -L30SgLdTMEZeS1SZD2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeC -jGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4oR24qoAATILnsn8JuLwwoC8N9VKejveSswoA -HQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx9hoh49pwBiFYFIeFd3mqgnkC -AwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlRMA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg -p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZm -DRd9FBUb1Ov9H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5 -COmSdI31R9KrO9b7eGZONn356ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ry -L3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd+PwyvzeG5LuOmCd+uh8W4XAR8gPf -JWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQHtZa37dG/OaG+svg -IHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBDF8Io -2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV -09tL7ECQ8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQ -XR4EzzffHqhmsYzmIGrv/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrq -T8p+ck0LcIymSLumoRT2+1hEmRSuqguTaaApJUqlyyvdimYHFngVV3Eb7PVHhPOe -MTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== ------END CERTIFICATE----- - -# Issuer: CN=SSL.com Root Certification Authority RSA O=SSL Corporation -# Subject: CN=SSL.com Root Certification Authority RSA O=SSL Corporation -# Label: "SSL.com Root Certification Authority RSA" -# Serial: 8875640296558310041 -# MD5 Fingerprint: 86:69:12:c0:70:f1:ec:ac:ac:c2:d5:bc:a5:5b:a1:29 -# SHA1 Fingerprint: b7:ab:33:08:d1:ea:44:77:ba:14:80:12:5a:6f:bd:a9:36:49:0c:bb -# SHA256 Fingerprint: 85:66:6a:56:2e:e0:be:5c:e9:25:c1:d8:89:0a:6f:76:a8:7e:c1:6d:4d:7d:5f:29:ea:74:19:cf:20:12:3b:69 ------BEGIN CERTIFICATE----- -MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UE -BhMCVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQK -DA9TU0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYwMjEyMTczOTM5WhcNNDEwMjEyMTcz -OTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv -dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv -bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcN -AQEBBQADggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2R -xFdHaxh3a3by/ZPkPQ/CFp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aX -qhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcC -C52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/geoeOy3ZExqysdBP+lSgQ3 -6YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkpk8zruFvh -/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrF -YD3ZfBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93E -JNyAKoFBbZQ+yODJgUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVc -US4cK38acijnALXRdMbX5J+tB5O2UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8 -ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi81xtZPCvM8hnIk2snYxnP/Okm -+Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4sbE6x/c+cCbqi -M+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV -HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4G -A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGV -cpNxJK1ok1iOMq8bs3AD/CUrdIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBc -Hadm47GUBwwyOabqG7B52B2ccETjit3E+ZUfijhDPwGFpUenPUayvOUiaPd7nNgs -PgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAslu1OJD7OAUN5F7kR/ -q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjqerQ0 -cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jr -a6x+3uxjMxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90I -H37hVZkLId6Tngr75qNJvTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/Y -K9f1JmzJBjSWFupwWRoyeXkLtoh/D1JIPb9s2KJELtFOt3JY04kTlf5Eq/jXixtu -nLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406ywKBjYZC6VWg3dGq2ktuf -oYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NIWuuA8ShY -Ic2wBlX7Jz9TkHCpBB5XJ7k= ------END CERTIFICATE----- - -# Issuer: CN=SSL.com Root Certification Authority ECC O=SSL Corporation -# Subject: CN=SSL.com Root Certification Authority ECC O=SSL Corporation -# Label: "SSL.com Root Certification Authority ECC" -# Serial: 8495723813297216424 -# MD5 Fingerprint: 2e:da:e4:39:7f:9c:8f:37:d1:70:9f:26:17:51:3a:8e -# SHA1 Fingerprint: c3:19:7c:39:24:e6:54:af:1b:c4:ab:20:95:7a:e2:c3:0e:13:02:6a -# SHA256 Fingerprint: 34:17:bb:06:cc:60:07:da:1b:96:1c:92:0b:8a:b4:ce:3f:ad:82:0e:4a:a3:0b:9a:cb:c4:a7:4e:bd:ce:bc:65 ------BEGIN CERTIFICATE----- -MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMC -VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T -U0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0 -aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNDAzWhcNNDEwMjEyMTgxNDAz -WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0 -b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNvbSBS -b290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB -BAAiA2IABEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI -7Z4INcgn64mMU1jrYor+8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPg -CemB+vNH06NjMGEwHQYDVR0OBBYEFILRhXMw5zUE044CkvvlpNHEIejNMA8GA1Ud -EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTTjgKS++Wk0cQh6M0wDgYD -VR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCWe+0F+S8T -kdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+ -gA0z5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl ------END CERTIFICATE----- - -# Issuer: CN=SSL.com EV Root Certification Authority RSA R2 O=SSL Corporation -# Subject: CN=SSL.com EV Root Certification Authority RSA R2 O=SSL Corporation -# Label: "SSL.com EV Root Certification Authority RSA R2" -# Serial: 6248227494352943350 -# MD5 Fingerprint: e1:1e:31:58:1a:ae:54:53:02:f6:17:6a:11:7b:4d:95 -# SHA1 Fingerprint: 74:3a:f0:52:9b:d0:32:a0:f4:4a:83:cd:d4:ba:a9:7b:7c:2e:c4:9a -# SHA256 Fingerprint: 2e:7b:f1:6c:c2:24:85:a7:bb:e2:aa:86:96:75:07:61:b0:ae:39:be:3b:2f:e9:d0:cc:6d:4e:f7:34:91:42:5c ------BEGIN CERTIFICATE----- -MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNV -BAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UE -CgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2Vy -dGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMB4XDTE3MDUzMTE4MTQzN1oXDTQy -MDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4G -A1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQD -DC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy -MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvq -M0fNTPl9fb69LT3w23jhhqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssuf -OePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7wcXHswxzpY6IXFJ3vG2fThVUCAtZJycxa -4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTOZw+oz12WGQvE43LrrdF9 -HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+B6KjBSYR -aZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcA -b9ZhCBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQ -Gp8hLH94t2S42Oim9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQV -PWKchjgGAGYS5Fl2WlPAApiiECtoRHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMO -pgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+SlmJuwgUHfbSguPvuUCYHBBXtSu -UDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48+qvWBkofZ6aY -MBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV -HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa4 -9QaAJadz20ZpqJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBW -s47LCp1Jjr+kxJG7ZhcFUZh1++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5 -Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nxY/hoLVUE0fKNsKTPvDxeH3jnpaAg -cLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2GguDKBAdRUNf/ktUM -79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDzOFSz -/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXt -ll9ldDz7CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEm -Kf7GUmG6sXP/wwyc5WxqlD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKK -QbNmC1r7fSOl8hqw/96bg5Qu0T/fkreRrwU7ZcegbLHNYhLDkBvjJc40vG93drEQ -w/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1hlMYegouCRw2n5H9gooi -S9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX9hwJ1C07 -mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w== ------END CERTIFICATE----- - -# Issuer: CN=SSL.com EV Root Certification Authority ECC O=SSL Corporation -# Subject: CN=SSL.com EV Root Certification Authority ECC O=SSL Corporation -# Label: "SSL.com EV Root Certification Authority ECC" -# Serial: 3182246526754555285 -# MD5 Fingerprint: 59:53:22:65:83:42:01:54:c0:ce:42:b9:5a:7c:f2:90 -# SHA1 Fingerprint: 4c:dd:51:a3:d1:f5:20:32:14:b0:c6:c5:32:23:03:91:c7:46:42:6d -# SHA256 Fingerprint: 22:a2:c1:f7:bd:ed:70:4c:c1:e7:01:b5:f4:08:c3:10:88:0f:e9:56:b5:de:2a:4a:44:f9:9c:87:3a:25:a7:c8 ------BEGIN CERTIFICATE----- -MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMC -VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T -U0wgQ29ycG9yYXRpb24xNDAyBgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNTIzWhcNNDEwMjEyMTgx -NTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv -dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NMLmNv -bSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49 -AgEGBSuBBAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMA -VIbc/R/fALhBYlzccBYy3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1Kthku -WnBaBu2+8KGwytAJKaNjMGEwHQYDVR0OBBYEFFvKXuXe0oGqzagtZFG22XKbl+ZP -MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe5d7SgarNqC1kUbbZcpuX -5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJN+vp1RPZ -ytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZg -h5Mmm7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg== ------END CERTIFICATE----- - -# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R6 -# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R6 -# Label: "GlobalSign Root CA - R6" -# Serial: 1417766617973444989252670301619537 -# MD5 Fingerprint: 4f:dd:07:e4:d4:22:64:39:1e:0c:37:42:ea:d1:c6:ae -# SHA1 Fingerprint: 80:94:64:0e:b5:a7:a1:ca:11:9c:1f:dd:d5:9f:81:02:63:a7:fb:d1 -# SHA256 Fingerprint: 2c:ab:ea:fe:37:d0:6c:a2:2a:ba:73:91:c0:03:3d:25:98:29:52:c4:53:64:73:49:76:3a:3a:b5:ad:6c:cf:69 ------BEGIN CERTIFICATE----- -MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEg -MB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2Jh -bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQx -MjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSNjET -MBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCAiIwDQYJ -KoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQssgrRI -xutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1k -ZguSgMpE3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxD -aNc9PIrFsmbVkJq3MQbFvuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJw -LnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqMPKq0pPbzlUoSB239jLKJz9CgYXfIWHSw -1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+azayOeSsJDa38O+2HBNX -k7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05OWgtH8wY2 -SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/h -bguyCLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4n -WUx2OVvq+aWh2IMP0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpY -rZxCRXluDocZXFSxZba/jJvcE+kNb7gu3GduyYsRtYQUigAZcIN5kZeR1Bonvzce -MgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTAD -AQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNVHSMEGDAWgBSu -bAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN -nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGt -Ixg93eFyRJa0lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr61 -55wsTLxDKZmOMNOsIeDjHfrYBzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLj -vUYAGm0CuiVdjaExUd1URhxN25mW7xocBFymFe944Hn+Xds+qkxV/ZoVqW/hpvvf -cDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr3TsTjxKM4kEaSHpz -oHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB10jZp -nOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfs -pA9MRf/TuTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+v -JJUEeKgDu+6B5dpffItKoZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R -8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+tJDfLRVpOoERIyNiwmcUVhAn21klJwGW4 -5hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA= ------END CERTIFICATE----- - -# Issuer: CN=OISTE WISeKey Global Root GC CA O=WISeKey OU=OISTE Foundation Endorsed -# Subject: CN=OISTE WISeKey Global Root GC CA O=WISeKey OU=OISTE Foundation Endorsed -# Label: "OISTE WISeKey Global Root GC CA" -# Serial: 44084345621038548146064804565436152554 -# MD5 Fingerprint: a9:d6:b9:2d:2f:93:64:f8:a5:69:ca:91:e9:68:07:23 -# SHA1 Fingerprint: e0:11:84:5e:34:de:be:88:81:b9:9c:f6:16:26:d1:96:1f:c3:b9:31 -# SHA256 Fingerprint: 85:60:f9:1c:36:24:da:ba:95:70:b5:fe:a0:db:e3:6f:f1:1a:83:23:be:94:86:85:4f:b3:f3:4a:55:71:19:8d ------BEGIN CERTIFICATE----- -MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQsw -CQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91 -bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwg -Um9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRaFw00MjA1MDkwOTU4MzNaMG0xCzAJ -BgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBGb3Vu -ZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2JhbCBS -b290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4ni -eUqjFqdrVCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4W -p2OQ0jnUsYd4XxiWD1AbNTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7T -rYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0EAwMDaAAwZQIwJsdpW9zV -57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtkAjEA2zQg -Mgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 ------END CERTIFICATE----- - -# Issuer: CN=UCA Global G2 Root O=UniTrust -# Subject: CN=UCA Global G2 Root O=UniTrust -# Label: "UCA Global G2 Root" -# Serial: 124779693093741543919145257850076631279 -# MD5 Fingerprint: 80:fe:f0:c4:4a:f0:5c:62:32:9f:1c:ba:78:a9:50:f8 -# SHA1 Fingerprint: 28:f9:78:16:19:7a:ff:18:25:18:aa:44:fe:c1:a0:ce:5c:b6:4c:8a -# SHA256 Fingerprint: 9b:ea:11:c9:76:fe:01:47:64:c1:be:56:a6:f9:14:b5:a5:60:31:7a:bd:99:88:39:33:82:e5:16:1a:a0:49:3c ------BEGIN CERTIFICATE----- -MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9 -MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBH -bG9iYWwgRzIgUm9vdDAeFw0xNjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0x -CzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDEbMBkGA1UEAwwSVUNBIEds -b2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxeYr -b3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmToni9 -kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzm -VHqUwCoV8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/R -VogvGjqNO7uCEeBHANBSh6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDc -C/Vkw85DvG1xudLeJ1uK6NjGruFZfc8oLTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIj -tm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/R+zvWr9LesGtOxdQXGLY -D0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBeKW4bHAyv -j5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6Dl -NaBa4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6 -iIis7nCs+dwp4wwcOxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznP -O6Q0ibd5Ei9Hxeepl2n8pndntd978XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/ -BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIHEjMz15DD/pQwIX4wV -ZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo5sOASD0Ee/oj -L3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5 -1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl -1qnN3e92mI0ADs0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oU -b3n09tDh05S60FdRvScFDcH9yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LV -PtateJLbXDzz2K36uGt/xDYotgIVilQsnLAXc47QN6MUPJiVAAwpBVueSUmxX8fj -y88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHojhJi6IjMtX9Gl8Cb -EGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZkbxqg -DMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI -+Vg7RE+xygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGy -YiGqhkCyLmTTX8jjfhFnRR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bX -UB+K+wb1whnw0A== ------END CERTIFICATE----- - -# Issuer: CN=UCA Extended Validation Root O=UniTrust -# Subject: CN=UCA Extended Validation Root O=UniTrust -# Label: "UCA Extended Validation Root" -# Serial: 106100277556486529736699587978573607008 -# MD5 Fingerprint: a1:f3:5f:43:c6:34:9b:da:bf:8c:7e:05:53:ad:96:e2 -# SHA1 Fingerprint: a3:a1:b0:6f:24:61:23:4a:e3:36:a5:c2:37:fc:a6:ff:dd:f0:d7:3a -# SHA256 Fingerprint: d4:3a:f9:b3:54:73:75:5c:96:84:fc:06:d7:d8:cb:70:ee:5c:28:e7:73:fb:29:4e:b4:1e:e7:17:22:92:4d:24 ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBH -MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBF -eHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMx -MDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNV -BAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrsiWog -D4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvS -sPGP2KxFRv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aop -O2z6+I9tTcg1367r3CTueUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dk -sHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR59mzLC52LqGj3n5qiAno8geK+LLNEOfi -c0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH0mK1lTnj8/FtDw5lhIpj -VMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KRel7sFsLz -KuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/ -TuDvB0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41G -sx2VYVdWf6/wFlthWG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs -1+lvK9JKBZP8nm9rZ/+I8U6laUpSNwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQD -fwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS3H5aBZ8eNJr34RQwDwYDVR0T -AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBADaN -l8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR -ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQ -VBcZEhrxH9cMaVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5 -c6sq1WnIeJEmMX3ixzDx/BR4dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp -4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb+7lsq+KePRXBOy5nAliRn+/4Qh8s -t2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOWF3sGPjLtx7dCvHaj -2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwiGpWO -vpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2C -xR9GUeOcGMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmx -cmtpzyKEC2IPrNkZAJSidjzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbM -fjKaiJUINlK73nZfdklJrX+9ZSCyycErdhh2n1ax ------END CERTIFICATE----- - -# Issuer: CN=Certigna Root CA O=Dhimyotis OU=0002 48146308100036 -# Subject: CN=Certigna Root CA O=Dhimyotis OU=0002 48146308100036 -# Label: "Certigna Root CA" -# Serial: 269714418870597844693661054334862075617 -# MD5 Fingerprint: 0e:5c:30:62:27:eb:5b:bc:d7:ae:62:ba:e9:d5:df:77 -# SHA1 Fingerprint: 2d:0d:52:14:ff:9e:ad:99:24:01:74:20:47:6e:6c:85:27:27:f5:43 -# SHA256 Fingerprint: d4:8d:3d:23:ee:db:50:a4:59:e5:51:97:60:1c:27:77:4b:9d:7b:18:c9:4d:5a:05:95:11:a1:02:50:b9:31:68 ------BEGIN CERTIFICATE----- -MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAw -WjELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAw -MiA0ODE0NjMwODEwMDAzNjEZMBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0x -MzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjdaMFoxCzAJBgNVBAYTAkZSMRIwEAYD -VQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYzMDgxMDAwMzYxGTAX -BgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw -ggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sO -ty3tRQgXstmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9M -CiBtnyN6tMbaLOQdLNyzKNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPu -I9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8JXrJhFwLrN1CTivngqIkicuQstDuI7pm -TLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16XdG+RCYyKfHx9WzMfgIh -C59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq4NYKpkDf -ePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3Yz -IoejwpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWT -Co/1VTp2lc5ZmIoJlXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1k -JWumIWmbat10TWuXekG9qxf5kBdIjzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5 -hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp//TBt2dzhauH8XwIDAQABo4IB -GjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE -FBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of -1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczov -L3d3d3cuY2VydGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilo -dHRwOi8vY3JsLmNlcnRpZ25hLmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYr -aHR0cDovL2NybC5kaGlteW90aXMuY29tL2NlcnRpZ25hcm9vdGNhLmNybDANBgkq -hkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOItOoldaDgvUSILSo3L -6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxPTGRG -HVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH6 -0BGM+RFq7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncB -lA2c5uk5jR+mUYyZDDl34bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdi -o2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1 -gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS6Cvu5zHbugRqh5jnxV/v -faci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaYtlu3zM63 -Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayh -jWZSaX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw -3kAP+HwV96LOPNdeE4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0= ------END CERTIFICATE----- - -# Issuer: CN=emSign Root CA - G1 O=eMudhra Technologies Limited OU=emSign PKI -# Subject: CN=emSign Root CA - G1 O=eMudhra Technologies Limited OU=emSign PKI -# Label: "emSign Root CA - G1" -# Serial: 235931866688319308814040 -# MD5 Fingerprint: 9c:42:84:57:dd:cb:0b:a7:2e:95:ad:b6:f3:da:bc:ac -# SHA1 Fingerprint: 8a:c7:ad:8f:73:ac:4e:c1:b5:75:4d:a5:40:f4:fc:cf:7c:b5:8e:8c -# SHA256 Fingerprint: 40:f6:af:03:46:a9:9a:a1:cd:1d:55:5a:4e:9c:ce:62:c7:f9:63:46:03:ee:40:66:15:83:3d:c8:c8:d0:03:67 ------BEGIN CERTIFICATE----- -MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYD -VQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBU -ZWNobm9sb2dpZXMgTGltaXRlZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBH -MTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgxODMwMDBaMGcxCzAJBgNVBAYTAklO -MRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVkaHJhIFRlY2hub2xv -Z2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQz -f2N4aLTNLnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO -8oG0x5ZOrRkVUkr+PHB1cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aq -d7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHWDV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhM -tTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ6DqS0hdW5TUaQBw+jSzt -Od9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrHhQIDAQAB -o0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQD -AgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31x -PaOfG1vR2vjTnGs2vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjM -wiI/aTvFthUvozXGaCocV685743QNcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6d -GNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q+Mri/Tm3R7nrft8EI6/6nAYH -6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeihU80Bv2noWgby -RQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx -iN66zB+Afko= ------END CERTIFICATE----- - -# Issuer: CN=emSign ECC Root CA - G3 O=eMudhra Technologies Limited OU=emSign PKI -# Subject: CN=emSign ECC Root CA - G3 O=eMudhra Technologies Limited OU=emSign PKI -# Label: "emSign ECC Root CA - G3" -# Serial: 287880440101571086945156 -# MD5 Fingerprint: ce:0b:72:d1:9f:88:8e:d0:50:03:e8:e3:b8:8b:67:40 -# SHA1 Fingerprint: 30:43:fa:4f:f2:57:dc:a0:c3:80:ee:2e:58:ea:78:b2:3f:e6:bb:c1 -# SHA256 Fingerprint: 86:a1:ec:ba:08:9c:4a:8d:3b:be:27:34:c6:12:ba:34:1d:81:3e:04:3c:f9:e8:a8:62:cd:5c:57:a3:6b:be:6b ------BEGIN CERTIFICATE----- -MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQG -EwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNo -bm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g -RzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4MTgzMDAwWjBrMQswCQYDVQQGEwJJ -TjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9s -b2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMw -djAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0 -WXTsuwYc58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xyS -fvalY8L1X44uT6EYGQIrMgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuB -zhccLikenEhjQjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggq -hkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+DCBeQyh+KTOgNG3qxrdWB -CUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7jHvrZQnD -+JbNR6iC8hZVdyR+EhCVBCyj ------END CERTIFICATE----- - -# Issuer: CN=emSign Root CA - C1 O=eMudhra Inc OU=emSign PKI -# Subject: CN=emSign Root CA - C1 O=eMudhra Inc OU=emSign PKI -# Label: "emSign Root CA - C1" -# Serial: 825510296613316004955058 -# MD5 Fingerprint: d8:e3:5d:01:21:fa:78:5a:b0:df:ba:d2:ee:2a:5f:68 -# SHA1 Fingerprint: e7:2e:f1:df:fc:b2:09:28:cf:5d:d4:d5:67:37:b1:51:cb:86:4f:01 -# SHA256 Fingerprint: 12:56:09:aa:30:1d:a0:a2:49:b9:7a:82:39:cb:6a:34:21:6f:44:dc:ac:9f:39:54:b1:42:92:f2:e8:c8:60:8f ------BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkG -A1UEBhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEg -SW5jMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAw -MFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln -biBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNpZ24gUm9v -dCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+upufGZ -BczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZ -HdPIWoU/Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH -3DspVpNqs8FqOp099cGXOFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvH -GPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4VI5b2P/AgNBbeCsbEBEV5f6f9vtKppa+c -xSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleoomslMuoaJuvimUnzYnu3Yy1 -aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+XJGFehiq -TbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL -BQADggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87 -/kOXSTKZEhVb3xEp/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4 -kqNPEjE2NuLe/gDEo2APJ62gsIq1NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrG -YQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9wC68AivTxEDkigcxHpvOJpkT -+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQBmIMMMAVSKeo -WXzhriKi4gp6D/piq1JM4fHfyr6DDUI= ------END CERTIFICATE----- - -# Issuer: CN=emSign ECC Root CA - C3 O=eMudhra Inc OU=emSign PKI -# Subject: CN=emSign ECC Root CA - C3 O=eMudhra Inc OU=emSign PKI -# Label: "emSign ECC Root CA - C3" -# Serial: 582948710642506000014504 -# MD5 Fingerprint: 3e:53:b3:a3:81:ee:d7:10:f8:d3:b0:1d:17:92:f5:d5 -# SHA1 Fingerprint: b6:af:43:c2:9b:81:53:7d:f6:ef:6b:c3:1f:1f:60:15:0c:ee:48:66 -# SHA256 Fingerprint: bc:4d:80:9b:15:18:9d:78:db:3e:1d:8c:f4:f9:72:6a:79:5d:a1:64:3c:a5:f1:35:8e:1d:db:0e:dc:0d:7e:b3 ------BEGIN CERTIFICATE----- -MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQG -EwJVUzETMBEGA1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMx -IDAeBgNVBAMTF2VtU2lnbiBFQ0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAw -MFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln -biBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQDExdlbVNpZ24gRUND -IFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd6bci -MK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4Ojavti -sIGJAnB9SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0O -BBYEFPtaSNCAIEDyqOkAB2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB -Af8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQC02C8Cif22TGK6Q04ThHK1rt0c -3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwUZOR8loMRnLDRWmFLpg9J -0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== ------END CERTIFICATE----- - -# Issuer: CN=Hongkong Post Root CA 3 O=Hongkong Post -# Subject: CN=Hongkong Post Root CA 3 O=Hongkong Post -# Label: "Hongkong Post Root CA 3" -# Serial: 46170865288971385588281144162979347873371282084 -# MD5 Fingerprint: 11:fc:9f:bd:73:30:02:8a:fd:3f:f3:58:b9:cb:20:f0 -# SHA1 Fingerprint: 58:a2:d0:ec:20:52:81:5b:c1:f3:f8:64:02:24:4e:c2:8e:02:4b:02 -# SHA256 Fingerprint: 5a:2f:c0:3f:0c:83:b0:90:bb:fa:40:60:4b:09:88:44:6c:76:36:18:3d:f9:84:6e:17:10:1a:44:7f:b8:ef:d6 ------BEGIN CERTIFICATE----- -MIIFzzCCA7egAwIBAgIUCBZfikyl7ADJk0DfxMauI7gcWqQwDQYJKoZIhvcNAQEL -BQAwbzELMAkGA1UEBhMCSEsxEjAQBgNVBAgTCUhvbmcgS29uZzESMBAGA1UEBxMJ -SG9uZyBLb25nMRYwFAYDVQQKEw1Ib25na29uZyBQb3N0MSAwHgYDVQQDExdIb25n -a29uZyBQb3N0IFJvb3QgQ0EgMzAeFw0xNzA2MDMwMjI5NDZaFw00MjA2MDMwMjI5 -NDZaMG8xCzAJBgNVBAYTAkhLMRIwEAYDVQQIEwlIb25nIEtvbmcxEjAQBgNVBAcT -CUhvbmcgS29uZzEWMBQGA1UEChMNSG9uZ2tvbmcgUG9zdDEgMB4GA1UEAxMXSG9u -Z2tvbmcgUG9zdCBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK -AoICAQCziNfqzg8gTr7m1gNt7ln8wlffKWihgw4+aMdoWJwcYEuJQwy51BWy7sFO -dem1p+/l6TWZ5Mwc50tfjTMwIDNT2aa71T4Tjukfh0mtUC1Qyhi+AViiE3CWu4mI -VoBc+L0sPOFMV4i707mV78vH9toxdCim5lSJ9UExyuUmGs2C4HDaOym71QP1mbpV -9WTRYA6ziUm4ii8F0oRFKHyPaFASePwLtVPLwpgchKOesL4jpNrcyCse2m5FHomY -2vkALgbpDDtw1VAliJnLzXNg99X/NWfFobxeq81KuEXryGgeDQ0URhLj0mRiikKY -vLTGCAj4/ahMZJx2Ab0vqWwzD9g/KLg8aQFChn5pwckGyuV6RmXpwtZQQS4/t+Tt -bNe/JgERohYpSms0BpDsE9K2+2p20jzt8NYt3eEV7KObLyzJPivkaTv/ciWxNoZb -x39ri1UbSsUgYT2uy1DhCDq+sI9jQVMwCFk8mB13umOResoQUGC/8Ne8lYePl8X+ -l2oBlKN8W4UdKjk60FSh0Tlxnf0h+bV78OLgAo9uliQlLKAeLKjEiafv7ZkGL7YK -TE/bosw3Gq9HhS2KX8Q0NEwA/RiTZxPRN+ZItIsGxVd7GYYKecsAyVKvQv83j+Gj -Hno9UKtjBucVtT+2RTeUN7F+8kjDf8V1/peNRY8apxpyKBpADwIDAQABo2MwYTAP -BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQXnc0e -i9Y5K3DTXNSguB+wAPzFYTAdBgNVHQ4EFgQUF53NHovWOStw01zUoLgfsAD8xWEw -DQYJKoZIhvcNAQELBQADggIBAFbVe27mIgHSQpsY1Q7XZiNc4/6gx5LS6ZStS6LG -7BJ8dNVI0lkUmcDrudHr9EgwW62nV3OZqdPlt9EuWSRY3GguLmLYauRwCy0gUCCk -MpXRAJi70/33MvJJrsZ64Ee+bs7Lo3I6LWldy8joRTnU+kLBEUx3XZL7av9YROXr -gZ6voJmtvqkBZss4HTzfQx/0TW60uhdG/H39h4F5ag0zD/ov+BS5gLNdTaqX4fnk -GMX41TiMJjz98iji7lpJiCzfeT2OnpA8vUFKOt1b9pq0zj8lMH8yfaIDlNDceqFS -3m6TjRgm/VWsvY+b0s+v54Ysyx8Jb6NvqYTUc79NoXQbTiNg8swOqn+knEwlqLJm -Ozj/2ZQw9nKEvmhVEA/GcywWaZMH/rFF7buiVWqw2rVKAiUnhde3t4ZEFolsgCs+ -l6mc1X5VTMbeRRAc6uk7nwNT7u56AQIWeNTowr5GdogTPyK7SBIdUgC0An4hGh6c -JfTzPV4e0hz5sy229zdcxsshTrD3mUcYhcErulWuBurQB7Lcq9CClnXO0lD+mefP -L5/ndtFhKvshuzHQqp9HpLIiyhY6UFfEW0NnxWViA0kB60PZ2Pierc+xYw5F9KBa -LJstxabArahH9CdMOA0uG0k7UvToiIMrVCjU8jVStDKDYmlkDJGcn5fqdBb9HxEG -mpv0 ------END CERTIFICATE----- - -# Issuer: CN=Microsoft ECC Root Certificate Authority 2017 O=Microsoft Corporation -# Subject: CN=Microsoft ECC Root Certificate Authority 2017 O=Microsoft Corporation -# Label: "Microsoft ECC Root Certificate Authority 2017" -# Serial: 136839042543790627607696632466672567020 -# MD5 Fingerprint: dd:a1:03:e6:4a:93:10:d1:bf:f0:19:42:cb:fe:ed:67 -# SHA1 Fingerprint: 99:9a:64:c3:7f:f4:7d:9f:ab:95:f1:47:69:89:14:60:ee:c4:c3:c5 -# SHA256 Fingerprint: 35:8d:f3:9d:76:4a:f9:e1:b7:66:e9:c9:72:df:35:2e:e1:5c:fa:c2:27:af:6a:d1:d7:0e:8e:4a:6e:dc:ba:02 ------BEGIN CERTIFICATE----- -MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQsw -CQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYD -VQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw -MTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4MjMxNjA0WjBlMQswCQYDVQQGEwJV -UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNy -b3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQBgcq -hkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZR -ogPZnZH6thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYb -hGBKia/teQ87zvH2RPUBeMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8E -BTADAQH/MB0GA1UdDgQWBBTIy5lycFIM+Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3 -FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlfXu5gKcs68tvWMoQZP3zV -L8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaReNtUjGUB -iudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= ------END CERTIFICATE----- - -# Issuer: CN=Microsoft RSA Root Certificate Authority 2017 O=Microsoft Corporation -# Subject: CN=Microsoft RSA Root Certificate Authority 2017 O=Microsoft Corporation -# Label: "Microsoft RSA Root Certificate Authority 2017" -# Serial: 40975477897264996090493496164228220339 -# MD5 Fingerprint: 10:ff:00:ff:cf:c9:f8:c7:7a:c0:ee:35:8e:c9:0f:47 -# SHA1 Fingerprint: 73:a5:e6:4a:3b:ff:83:16:ff:0e:dc:cc:61:8a:90:6e:4e:ae:4d:74 -# SHA256 Fingerprint: c7:41:f7:0f:4b:2a:8d:88:bf:2e:71:c1:41:22:ef:53:ef:10:eb:a0:cf:a5:e6:4c:fa:20:f4:18:85:30:73:e0 ------BEGIN CERTIFICATE----- -MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBl -MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw -NAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIwNzE4MjMwMDIzWjBlMQswCQYDVQQG -EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1N -aWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZ -Nt9GkMml7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0 -ZdDMbRnMlfl7rEqUrQ7eS0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1 -HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw71VdyvD/IybLeS2v4I2wDwAW9lcfNcztm -gGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+dkC0zVJhUXAoP8XFWvLJ -jEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49FyGcohJUc -aDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaG -YaRSMLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6 -W6IYZVcSn2i51BVrlMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4K -UGsTuqwPN1q3ErWQgR5WrlcihtnJ0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH -+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJClTUFLkqqNfs+avNJVgyeY+Q -W5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC -NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZC -LgLNFgVZJ8og6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OC -gMNPOsduET/m4xaRhPtthH80dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6 -tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk+ONVFT24bcMKpBLBaYVu32TxU5nh -SnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex/2kskZGT4d9Mozd2 -TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDyAmH3 -pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGR -xpl/j8nWZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiApp -GWSZI1b7rCoucL5mxAyE7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9 -dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKTc0QWbej09+CVgI+WXTik9KveCjCHk9hN -AHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D5KbvtwEwXlGjefVwaaZB -RA+GsCyRxj3qrg+E ------END CERTIFICATE----- - -# Issuer: CN=e-Szigno Root CA 2017 O=Microsec Ltd. -# Subject: CN=e-Szigno Root CA 2017 O=Microsec Ltd. -# Label: "e-Szigno Root CA 2017" -# Serial: 411379200276854331539784714 -# MD5 Fingerprint: de:1f:f6:9e:84:ae:a7:b4:21:ce:1e:58:7d:d1:84:98 -# SHA1 Fingerprint: 89:d4:83:03:4f:9e:9a:48:80:5f:72:37:d4:a9:a6:ef:cb:7c:1f:d1 -# SHA256 Fingerprint: be:b0:0b:30:83:9b:9b:c3:2c:32:e4:44:79:05:95:06:41:f2:64:21:b1:5e:d0:89:19:8b:51:8a:e2:ea:1b:99 ------BEGIN CERTIFICATE----- -MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNV -BAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRk -LjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJv -b3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZaFw00MjA4MjIxMjA3MDZaMHExCzAJ -BgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMg -THRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25v -IFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtv -xie+RJCxs1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+H -Wyx7xf58etqjYzBhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G -A1UdDgQWBBSHERUI0arBeAyxr87GyZDvvzAEwDAfBgNVHSMEGDAWgBSHERUI0arB -eAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEAtVfd14pVCzbhhkT61Nlo -jbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxOsvxyqltZ -+efcMQ== ------END CERTIFICATE----- - -# Issuer: O=CERTSIGN SA OU=certSIGN ROOT CA G2 -# Subject: O=CERTSIGN SA OU=certSIGN ROOT CA G2 -# Label: "certSIGN Root CA G2" -# Serial: 313609486401300475190 -# MD5 Fingerprint: 8c:f1:75:8a:c6:19:cf:94:b7:f7:65:20:87:c3:97:c7 -# SHA1 Fingerprint: 26:f9:93:b4:ed:3d:28:27:b0:b9:4b:a7:e9:15:1d:a3:8d:92:e5:32 -# SHA256 Fingerprint: 65:7c:fe:2f:a7:3f:aa:38:46:25:71:f3:32:a2:36:3a:46:fc:e7:02:09:51:71:07:02:cd:fb:b6:ee:da:33:05 ------BEGIN CERTIFICATE----- -MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNV -BAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04g -Uk9PVCBDQSBHMjAeFw0xNzAyMDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJ -BgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJ -R04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDF -dRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05N0Iw -vlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZ -uIt4ImfkabBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhp -n+Sc8CnTXPnGFiWeI8MgwT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKs -cpc/I1mbySKEwQdPzH/iV8oScLumZfNpdWO9lfsbl83kqK/20U6o2YpxJM02PbyW -xPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91QqhngLjYl/rNUssuHLoPj1P -rCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732jcZZroiF -DsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fx -DTvf95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgy -LcsUDFDYg2WD7rlcz8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6C -eWRgKRM+o/1Pcmqr4tTluCRVLERLiohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSCIS1mxteg4BXrzkwJ -d8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOBywaK8SJJ6ejq -kX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC -b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQl -qiCA2ClV9+BB/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0 -OJD7uNGzcgbJceaBxXntC6Z58hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+c -NywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5BiKDUyUM/FHE5r7iOZULJK2v0ZXk -ltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklWatKcsWMy5WHgUyIO -pwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tUSxfj -03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZk -PuXaTH4MNMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE -1LlSVHJ7liXMvGnjSG4N0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MX -QRBdJ3NghVdJIgc= ------END CERTIFICATE----- - -# Issuer: CN=NAVER Global Root Certification Authority O=NAVER BUSINESS PLATFORM Corp. -# Subject: CN=NAVER Global Root Certification Authority O=NAVER BUSINESS PLATFORM Corp. -# Label: "NAVER Global Root Certification Authority" -# Serial: 9013692873798656336226253319739695165984492813 -# MD5 Fingerprint: c8:7e:41:f6:25:3b:f5:09:b3:17:e8:46:3d:bf:d0:9b -# SHA1 Fingerprint: 8f:6b:f2:a9:27:4a:da:14:a0:c4:f4:8e:61:27:f9:c0:1e:78:5d:d1 -# SHA256 Fingerprint: 88:f4:38:dc:f8:ff:d1:fa:8f:42:91:15:ff:e5:f8:2a:e1:e0:6e:0c:70:c3:75:fa:ad:71:7b:34:a4:9e:72:65 ------BEGIN CERTIFICATE----- -MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEM -BQAwaTELMAkGA1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRG -T1JNIENvcnAuMTIwMAYDVQQDDClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0 -aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4NDJaFw0zNzA4MTgyMzU5NTlaMGkx -CzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVTUyBQTEFURk9STSBD -b3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVA -iQqrDZBbUGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH -38dq6SZeWYp34+hInDEW+j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lE -HoSTGEq0n+USZGnQJoViAbbJAh2+g1G7XNr4rRVqmfeSVPc0W+m/6imBEtRTkZaz -kVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2aacp+yPOiNgSnABIqKYP -szuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4Yb8Obtoq -vC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHf -nZ3zVHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaG -YQ5fG8Ir4ozVu53BA0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo -0es+nPxdGoMuK8u180SdOqcXYZaicdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3a -CJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejyYhbLgGvtPe31HzClrkvJE+2K -AQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNVHQ4EFgQU0p+I -36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB -Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoN -qo0hV4/GPnrK21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatj -cu3cvuzHV+YwIHHW1xDBE1UBjCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm -+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bxhYTeodoS76TiEJd6eN4MUZeoIUCL -hr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTgE34h5prCy8VCZLQe -lHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTHD8z7 -p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8 -piKCk5XQA76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLR -LBT/DShycpWbXgnbiUSYqqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX -5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oGI/hGoiLtk/bdmuYqh7GYVPEi92tF4+KO -dh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmgkpzNNIaRkPpkUZ3+/uul -9XXeifdy ------END CERTIFICATE----- - -# Issuer: CN=AC RAIZ FNMT-RCM SERVIDORES SEGUROS O=FNMT-RCM OU=Ceres -# Subject: CN=AC RAIZ FNMT-RCM SERVIDORES SEGUROS O=FNMT-RCM OU=Ceres -# Label: "AC RAIZ FNMT-RCM SERVIDORES SEGUROS" -# Serial: 131542671362353147877283741781055151509 -# MD5 Fingerprint: 19:36:9c:52:03:2f:d2:d1:bb:23:cc:dd:1e:12:55:bb -# SHA1 Fingerprint: 62:ff:d9:9e:c0:65:0d:03:ce:75:93:d2:ed:3f:2d:32:c9:e3:e5:4a -# SHA256 Fingerprint: 55:41:53:b1:3d:2c:f9:dd:b7:53:bf:be:1a:4e:0a:e0:8d:0a:a4:18:70:58:fe:60:a2:b8:62:b2:e4:b8:7b:cb ------BEGIN CERTIFICATE----- -MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQsw -CQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgw -FgYDVQRhDA9WQVRFUy1RMjgyNjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1S -Q00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4MTIyMDA5MzczM1oXDTQzMTIyMDA5 -MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQtUkNNMQ4wDAYDVQQL -DAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNBQyBS -QUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuB -BAAiA2IABPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LH -sbI6GA60XYyzZl2hNPk2LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oK -Um8BA06Oi6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD -VR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqGSM49BAMDA2kAMGYCMQCu -SuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoDzBOQn5IC -MQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJy -v+c= ------END CERTIFICATE----- - -# Issuer: CN=GlobalSign Root R46 O=GlobalSign nv-sa -# Subject: CN=GlobalSign Root R46 O=GlobalSign nv-sa -# Label: "GlobalSign Root R46" -# Serial: 1552617688466950547958867513931858518042577 -# MD5 Fingerprint: c4:14:30:e4:fa:66:43:94:2a:6a:1b:24:5f:19:d0:ef -# SHA1 Fingerprint: 53:a2:b0:4b:ca:6b:d6:45:e6:39:8a:8e:c4:0d:d2:bf:77:c3:a2:90 -# SHA256 Fingerprint: 4f:a3:12:6d:8d:3a:11:d1:c4:85:5a:4f:80:7c:ba:d6:cf:91:9d:3a:5a:88:b0:3b:ea:2c:63:72:d9:3c:40:c9 ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUA -MEYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYD -VQQDExNHbG9iYWxTaWduIFJvb3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMy -MDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYt -c2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08EsCVeJ -OaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQG -vGIFAha/r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud -316HCkD7rRlr+/fKYIje2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo -0q3v84RLHIf8E6M6cqJaESvWJ3En7YEtbWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSE -y132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvjK8Cd+RTyG/FWaha/LIWF -zXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD412lPFzYE -+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCN -I/onccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzs -x2sZy/N78CsHpdlseVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqa -ByFrgY/bxFn63iLABJzjqls2k+g9vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC -4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV -HQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEMBQADggIBAHx4 -7PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg -JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti -2kM3S+LGteWygxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIk -pnnpHs6i58FZFZ8d4kuaPp92CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRF -FRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZmOUdkLG5NrmJ7v2B0GbhWrJKsFjLt -rWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qqJZ4d16GLuc1CLgSk -ZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwyeqiv5 -u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP -4vkYxboznxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6 -N3ec592kD3ZDZopD8p/7DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3 -vouXsXgxT7PntgMTzlSdriVZzH81Xwj3QEUxeCp6 ------END CERTIFICATE----- - -# Issuer: CN=GlobalSign Root E46 O=GlobalSign nv-sa -# Subject: CN=GlobalSign Root E46 O=GlobalSign nv-sa -# Label: "GlobalSign Root E46" -# Serial: 1552617690338932563915843282459653771421763 -# MD5 Fingerprint: b5:b8:66:ed:de:08:83:e3:c9:e2:01:34:06:ac:51:6f -# SHA1 Fingerprint: 39:b4:6c:d5:fe:80:06:eb:e2:2f:4a:bb:08:33:a0:af:db:b9:dd:84 -# SHA256 Fingerprint: cb:b9:c4:4d:84:b8:04:3e:10:50:ea:31:a6:9f:51:49:55:d7:bf:d2:e2:c6:b4:93:01:01:9a:d6:1d:9f:50:58 ------BEGIN CERTIFICATE----- -MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYx -CzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQD -ExNHbG9iYWxTaWduIFJvb3QgRTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAw -MDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2Ex -HDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA -IgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkBjtjq -R+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGdd -yXqBPCCjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud -DgQWBBQxCpCPtsad0kRLgLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ -7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZkvLtoURMMA/cVi4RguYv/Uo7njLwcAjA8 -+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+CAezNIm8BZ/3Hobui3A= ------END CERTIFICATE----- - -# Issuer: CN=ANF Secure Server Root CA O=ANF Autoridad de Certificacion OU=ANF CA Raiz -# Subject: CN=ANF Secure Server Root CA O=ANF Autoridad de Certificacion OU=ANF CA Raiz -# Label: "ANF Secure Server Root CA" -# Serial: 996390341000653745 -# MD5 Fingerprint: 26:a6:44:5a:d9:af:4e:2f:b2:1d:b6:65:b0:4e:e8:96 -# SHA1 Fingerprint: 5b:6e:68:d0:cc:15:b6:a0:5f:1e:c1:5f:ae:02:fc:6b:2f:5d:6f:74 -# SHA256 Fingerprint: fb:8f:ec:75:91:69:b9:10:6b:1e:51:16:44:c6:18:c5:13:04:37:3f:6c:06:43:08:8d:8b:ef:fd:1b:99:75:99 ------BEGIN CERTIFICATE----- -MIIF7zCCA9egAwIBAgIIDdPjvGz5a7EwDQYJKoZIhvcNAQELBQAwgYQxEjAQBgNV -BAUTCUc2MzI4NzUxMDELMAkGA1UEBhMCRVMxJzAlBgNVBAoTHkFORiBBdXRvcmlk -YWQgZGUgQ2VydGlmaWNhY2lvbjEUMBIGA1UECxMLQU5GIENBIFJhaXoxIjAgBgNV -BAMTGUFORiBTZWN1cmUgU2VydmVyIFJvb3QgQ0EwHhcNMTkwOTA0MTAwMDM4WhcN -MzkwODMwMTAwMDM4WjCBhDESMBAGA1UEBRMJRzYzMjg3NTEwMQswCQYDVQQGEwJF -UzEnMCUGA1UEChMeQU5GIEF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uMRQwEgYD -VQQLEwtBTkYgQ0EgUmFpejEiMCAGA1UEAxMZQU5GIFNlY3VyZSBTZXJ2ZXIgUm9v -dCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANvrayvmZFSVgpCj -cqQZAZ2cC4Ffc0m6p6zzBE57lgvsEeBbphzOG9INgxwruJ4dfkUyYA8H6XdYfp9q -yGFOtibBTI3/TO80sh9l2Ll49a2pcbnvT1gdpd50IJeh7WhM3pIXS7yr/2WanvtH -2Vdy8wmhrnZEE26cLUQ5vPnHO6RYPUG9tMJJo8gN0pcvB2VSAKduyK9o7PQUlrZX -H1bDOZ8rbeTzPvY1ZNoMHKGESy9LS+IsJJ1tk0DrtSOOMspvRdOoiXsezx76W0OL -zc2oD2rKDF65nkeP8Nm2CgtYZRczuSPkdxl9y0oukntPLxB3sY0vaJxizOBQ+OyR -p1RMVwnVdmPF6GUe7m1qzwmd+nxPrWAI/VaZDxUse6mAq4xhj0oHdkLePfTdsiQz -W7i1o0TJrH93PB0j7IKppuLIBkwC/qxcmZkLLxCKpvR/1Yd0DVlJRfbwcVw5Kda/ -SiOL9V8BY9KHcyi1Swr1+KuCLH5zJTIdC2MKF4EA/7Z2Xue0sUDKIbvVgFHlSFJn -LNJhiQcND85Cd8BEc5xEUKDbEAotlRyBr+Qc5RQe8TZBAQIvfXOn3kLMTOmJDVb3 -n5HUA8ZsyY/b2BzgQJhdZpmYgG4t/wHFzstGH6wCxkPmrqKEPMVOHj1tyRRM4y5B -u8o5vzY8KhmqQYdOpc5LMnndkEl/AgMBAAGjYzBhMB8GA1UdIwQYMBaAFJxf0Gxj -o1+TypOYCK2Mh6UsXME3MB0GA1UdDgQWBBScX9BsY6Nfk8qTmAitjIelLFzBNzAO -BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC -AgEATh65isagmD9uw2nAalxJUqzLK114OMHVVISfk/CHGT0sZonrDUL8zPB1hT+L -9IBdeeUXZ701guLyPI59WzbLWoAAKfLOKyzxj6ptBZNscsdW699QIyjlRRA96Gej -rw5VD5AJYu9LWaL2U/HANeQvwSS9eS9OICI7/RogsKQOLHDtdD+4E5UGUcjohybK -pFtqFiGS3XNgnhAY3jyB6ugYw3yJ8otQPr0R4hUDqDZ9MwFsSBXXiJCZBMXM5gf0 -vPSQ7RPi6ovDj6MzD8EpTBNO2hVWcXNyglD2mjN8orGoGjR0ZVzO0eurU+AagNjq -OknkJjCb5RyKqKkVMoaZkgoQI1YS4PbOTOK7vtuNknMBZi9iPrJyJ0U27U1W45eZ -/zo1PqVUSlJZS2Db7v54EX9K3BR5YLZrZAPbFYPhor72I5dQ8AkzNqdxliXzuUJ9 -2zg/LFis6ELhDtjTO0wugumDLmsx2d1Hhk9tl5EuT+IocTUW0fJz/iUrB0ckYyfI -+PbZa/wSMVYIwFNCr5zQM378BvAxRAMU8Vjq8moNqRGyg77FGr8H6lnco4g175x2 -MjxNBiLOFeXdntiP2t7SxDnlF4HPOEfrf4htWRvfn0IUrn7PqLBmZdo3r5+qPeoo -tt7VMVgWglvquxl1AnMaykgaIZOQCo6ThKd9OyMYkomgjaw= ------END CERTIFICATE----- - -# Issuer: CN=Certum EC-384 CA O=Asseco Data Systems S.A. OU=Certum Certification Authority -# Subject: CN=Certum EC-384 CA O=Asseco Data Systems S.A. OU=Certum Certification Authority -# Label: "Certum EC-384 CA" -# Serial: 160250656287871593594747141429395092468 -# MD5 Fingerprint: b6:65:b3:96:60:97:12:a1:ec:4e:e1:3d:a3:c6:c9:f1 -# SHA1 Fingerprint: f3:3e:78:3c:ac:df:f4:a2:cc:ac:67:55:69:56:d7:e5:16:3c:e1:ed -# SHA256 Fingerprint: 6b:32:80:85:62:53:18:aa:50:d1:73:c9:8d:8b:da:09:d5:7e:27:41:3d:11:4c:f7:87:a0:f5:d0:6c:03:0c:f6 ------BEGIN CERTIFICATE----- -MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQsw -CQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScw -JQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMT -EENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2MDcyNDU0WhcNNDMwMzI2MDcyNDU0 -WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBT -LkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAX -BgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATE -KI6rGFtqvm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7Tm -Fy8as10CW4kjPMIRBSqniBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68Kj -QjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI0GZnQkdjrzife81r1HfS+8 -EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjADVS2m5hjEfO/J -UG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0QoSZ/6vn -nvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= ------END CERTIFICATE----- - -# Issuer: CN=Certum Trusted Root CA O=Asseco Data Systems S.A. OU=Certum Certification Authority -# Subject: CN=Certum Trusted Root CA O=Asseco Data Systems S.A. OU=Certum Certification Authority -# Label: "Certum Trusted Root CA" -# Serial: 40870380103424195783807378461123655149 -# MD5 Fingerprint: 51:e1:c2:e7:fe:4c:84:af:59:0e:2f:f4:54:6f:ea:29 -# SHA1 Fingerprint: c8:83:44:c0:18:ae:9f:cc:f1:87:b7:8f:22:d1:c5:d7:45:84:ba:e5 -# SHA256 Fingerprint: fe:76:96:57:38:55:77:3e:37:a9:5e:7a:d4:d9:cc:96:c3:01:57:c1:5d:31:76:5b:a9:b1:57:04:e1:ae:78:fd ------BEGIN CERTIFICATE----- -MIIFwDCCA6igAwIBAgIQHr9ZULjJgDdMBvfrVU+17TANBgkqhkiG9w0BAQ0FADB6 -MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEu -MScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHzAdBgNV -BAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwHhcNMTgwMzE2MTIxMDEzWhcNNDMw -MzE2MTIxMDEzWjB6MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEg -U3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRo -b3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQDRLY67tzbqbTeRn06TpwXkKQMlzhyC93yZ -n0EGze2jusDbCSzBfN8pfktlL5On1AFrAygYo9idBcEq2EXxkd7fO9CAAozPOA/q -p1x4EaTByIVcJdPTsuclzxFUl6s1wB52HO8AU5853BSlLCIls3Jy/I2z5T4IHhQq -NwuIPMqw9MjCoa68wb4pZ1Xi/K1ZXP69VyywkI3C7Te2fJmItdUDmj0VDT06qKhF -8JVOJVkdzZhpu9PMMsmN74H+rX2Ju7pgE8pllWeg8xn2A1bUatMn4qGtg/BKEiJ3 -HAVz4hlxQsDsdUaakFjgao4rpUYwBI4Zshfjvqm6f1bxJAPXsiEodg42MEx51UGa -mqi4NboMOvJEGyCI98Ul1z3G4z5D3Yf+xOr1Uz5MZf87Sst4WmsXXw3Hw09Omiqi -7VdNIuJGmj8PkTQkfVXjjJU30xrwCSss0smNtA0Aq2cpKNgB9RkEth2+dv5yXMSF -ytKAQd8FqKPVhJBPC/PgP5sZ0jeJP/J7UhyM9uH3PAeXjA6iWYEMspA90+NZRu0P -qafegGtaqge2Gcu8V/OXIXoMsSt0Puvap2ctTMSYnjYJdmZm/Bo/6khUHL4wvYBQ -v3y1zgD2DGHZ5yQD4OMBgQ692IU0iL2yNqh7XAjlRICMb/gv1SHKHRzQ+8S1h9E6 -Tsd2tTVItQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSM+xx1 -vALTn04uSNn5YFSqxLNP+jAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQAD -ggIBAEii1QALLtA/vBzVtVRJHlpr9OTy4EA34MwUe7nJ+jW1dReTagVphZzNTxl4 -WxmB82M+w85bj/UvXgF2Ez8sALnNllI5SW0ETsXpD4YN4fqzX4IS8TrOZgYkNCvo -zMrnadyHncI013nR03e4qllY/p0m+jiGPp2Kh2RX5Rc64vmNueMzeMGQ2Ljdt4NR -5MTMI9UGfOZR0800McD2RrsLrfw9EAUqO0qRJe6M1ISHgCq8CYyqOhNf6DR5UMEQ -GfnTKB7U0VEwKbOukGfWHwpjscWpxkIxYxeU72nLL/qMFH3EQxiJ2fAyQOaA4kZf -5ePBAFmo+eggvIksDkc0C+pXwlM2/KfUrzHN/gLldfq5Jwn58/U7yn2fqSLLiMmq -0Uc9NneoWWRrJ8/vJ8HjJLWG965+Mk2weWjROeiQWMODvA8s1pfrzgzhIMfatz7D -P78v3DSk+yshzWePS/Tj6tQ/50+6uaWTRRxmHyH6ZF5v4HaUMst19W7l9o/HuKTM -qJZ9ZPskWkoDbGs4xugDQ5r3V7mzKWmTOPQD8rv7gmsHINFSH5pkAnuYZttcTVoP -0ISVoDwUQwbKytu4QTbaakRnh6+v40URFWkIsr4WOZckbxJF0WddCajJFdr60qZf -E2Efv4WstK2tBZQIgx51F9NxO5NQI1mg7TyRVJ12AMXDuDjb ------END CERTIFICATE----- - -# Issuer: CN=TunTrust Root CA O=Agence Nationale de Certification Electronique -# Subject: CN=TunTrust Root CA O=Agence Nationale de Certification Electronique -# Label: "TunTrust Root CA" -# Serial: 108534058042236574382096126452369648152337120275 -# MD5 Fingerprint: 85:13:b9:90:5b:36:5c:b6:5e:b8:5a:f8:e0:31:57:b4 -# SHA1 Fingerprint: cf:e9:70:84:0f:e0:73:0f:9d:f6:0c:7f:2c:4b:ee:20:46:34:9c:bb -# SHA256 Fingerprint: 2e:44:10:2a:b5:8c:b8:54:19:45:1c:8e:19:d9:ac:f3:66:2c:af:bc:61:4b:6a:53:96:0a:30:f7:d0:e2:eb:41 ------BEGIN CERTIFICATE----- -MIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQEL -BQAwYTELMAkGA1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUg -Q2VydGlmaWNhdGlvbiBFbGVjdHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJv -b3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQwNDI2MDg1NzU2WjBhMQswCQYDVQQG -EwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBDZXJ0aWZpY2F0aW9u -IEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIwDQYJ -KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZ -n56eY+hz2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd -2JQDoOw05TDENX37Jk0bbjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgF -VwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZ -GoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAdgjH8KcwAWJeRTIAAHDOF -li/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViWVSHbhlnU -r8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2 -eY8fTpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIb -MlEsPvLfe/ZdeikZjuXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISg -jwBUFfyRbVinljvrS5YnzWuioYasDXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB -7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwSVXAkPcvCFDVDXSdOvsC9qnyW -5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI04Y+oXNZtPdE -ITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0 -90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+z -xiD2BkewhpMl0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYu -QEkHDVneixCwSQXi/5E/S7fdAo74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4 -FstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRYYdZ2vyJ/0Adqp2RT8JeNnYA/u8EH -22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJpadbGNjHh/PqAulxP -xOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65xxBzn -dFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5 -Xc0yGYuPjCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7b -nV2UqL1g52KAdoGDDIzMMEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQ -CvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9zZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZH -u/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3rAZ3r2OvEhJn7wAzMMujj -d9qDRIueVSjAi1jTkD5OGwDxFa2DK5o= ------END CERTIFICATE----- - -# Issuer: CN=HARICA TLS RSA Root CA 2021 O=Hellenic Academic and Research Institutions CA -# Subject: CN=HARICA TLS RSA Root CA 2021 O=Hellenic Academic and Research Institutions CA -# Label: "HARICA TLS RSA Root CA 2021" -# Serial: 76817823531813593706434026085292783742 -# MD5 Fingerprint: 65:47:9b:58:86:dd:2c:f0:fc:a2:84:1f:1e:96:c4:91 -# SHA1 Fingerprint: 02:2d:05:82:fa:88:ce:14:0c:06:79:de:7f:14:10:e9:45:d7:a5:6d -# SHA256 Fingerprint: d9:5d:0e:8e:da:79:52:5b:f9:be:b1:1b:14:d2:10:0d:32:94:98:5f:0c:62:d9:fa:bd:9c:d9:99:ec:cb:7b:1d ------BEGIN CERTIFICATE----- -MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBs -MQswCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl -c2VhcmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0Eg -Um9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUzOFoXDTQ1MDIxMzEwNTUzN1owbDEL -MAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl -YXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNBIFJv -b3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569l -mwVnlskNJLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE -4VGC/6zStGndLuwRo0Xua2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uv -a9of08WRiFukiZLRgeaMOVig1mlDqa2YUlhu2wr7a89o+uOkXjpFc5gH6l8Cct4M -pbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K5FrZx40d/JiZ+yykgmvw -Kh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEvdmn8kN3b -LW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcY -AuUR0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqB -AGMUuTNe3QvboEUHGjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYq -E613TBoYm5EPWNgGVMWX+Ko/IIqmhaZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHr -W2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQCPxrvrNQKlr9qEgYRtaQQJKQ -CoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8GA1UdEwEB/wQF -MAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE -AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAU -X15QvWiWkKQUEapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3 -f5Z2EMVGpdAgS1D0NTsY9FVqQRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxaja -H6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxDQpSbIPDRzbLrLFPCU3hKTwSUQZqP -JzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcRj88YxeMn/ibvBZ3P -zzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5vZSt -jBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0 -/L5H9MG0qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pT -BGIBnfHAT+7hOtSLIBD6Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79 -aPib8qXPMThcFarmlwDB31qlpzmq6YR/PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YW -xw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnnkf3/W9b3raYvAwtt41dU -63ZTGI0RmLo= ------END CERTIFICATE----- - -# Issuer: CN=HARICA TLS ECC Root CA 2021 O=Hellenic Academic and Research Institutions CA -# Subject: CN=HARICA TLS ECC Root CA 2021 O=Hellenic Academic and Research Institutions CA -# Label: "HARICA TLS ECC Root CA 2021" -# Serial: 137515985548005187474074462014555733966 -# MD5 Fingerprint: ae:f7:4c:e5:66:35:d1:b7:9b:8c:22:93:74:d3:4b:b0 -# SHA1 Fingerprint: bc:b0:c1:9d:e9:98:92:70:19:38:57:e9:8d:a7:b4:5d:6e:ee:01:48 -# SHA256 Fingerprint: 3f:99:cc:47:4a:cf:ce:4d:fe:d5:87:94:66:5e:47:8d:15:47:73:9f:2e:78:0f:1b:b4:ca:9b:13:30:97:d4:01 ------BEGIN CERTIFICATE----- -MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQsw -CQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2Vh -cmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9v -dCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoXDTQ1MDIxMzExMDEwOVowbDELMAkG -A1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj -aCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJvb3Qg -Q0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7 -KKrxcm1lAEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9Y -STHMmE5gEYd103KUkE+bECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQD -AgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAircJRQO9gcS3ujwLEXQNw -SaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/QwCZ61IygN -nxS2PFOiTAZpffpskcYqSUXm7LcT4Tps ------END CERTIFICATE----- - -# Issuer: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068 -# Subject: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068 -# Label: "Autoridad de Certificacion Firmaprofesional CIF A62634068" -# Serial: 1977337328857672817 -# MD5 Fingerprint: 4e:6e:9b:54:4c:ca:b7:fa:48:e4:90:b1:15:4b:1c:a3 -# SHA1 Fingerprint: 0b:be:c2:27:22:49:cb:39:aa:db:35:5c:53:e3:8c:ae:78:ff:b6:fe -# SHA256 Fingerprint: 57:de:05:83:ef:d2:b2:6e:03:61:da:99:da:9d:f4:64:8d:ef:7e:e8:44:1c:3b:72:8a:fa:9b:cd:e0:f9:b2:6a ------BEGIN CERTIFICATE----- -MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UE -BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h -cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1 -MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg -Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9 -thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM -cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG -L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i -NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h -X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b -m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy -Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja -EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T -KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF -6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh -OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMB0GA1UdDgQWBBRlzeurNR4APn7VdMAc -tHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4wgZswgZgGBFUd -IAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j -b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABC -AG8AbgBhAG4AbwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAw -ADEANzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9m -iWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL4QjbEwj4KKE1soCzC1HA01aajTNF -Sa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDbLIpgD7dvlAceHabJ -hfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1ilI45P -Vf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZE -EAEeiGaPcjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV -1aUsIC+nmCjuRfzxuIgALI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2t -CsvMo2ebKHTEm9caPARYpoKdrcd7b/+Alun4jWq9GJAd/0kakFI3ky88Al2CdgtR -5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH9IBk9W6VULgRfhVwOEqw -f9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpfNIbnYrX9 -ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNK -GbqEZycPvEJdvSRUDewdcAZfpLz6IHxV ------END CERTIFICATE----- - -# Issuer: CN=vTrus ECC Root CA O=iTrusChina Co.,Ltd. -# Subject: CN=vTrus ECC Root CA O=iTrusChina Co.,Ltd. -# Label: "vTrus ECC Root CA" -# Serial: 630369271402956006249506845124680065938238527194 -# MD5 Fingerprint: de:4b:c1:f5:52:8c:9b:43:e1:3e:8f:55:54:17:8d:85 -# SHA1 Fingerprint: f6:9c:db:b0:fc:f6:02:13:b6:52:32:a6:a3:91:3f:16:70:da:c3:e1 -# SHA256 Fingerprint: 30:fb:ba:2c:32:23:8e:2a:98:54:7a:f9:79:31:e5:50:42:8b:9b:3f:1c:8e:eb:66:33:dc:fa:86:c5:b2:7d:d3 ------BEGIN CERTIFICATE----- -MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMw -RzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAY -BgNVBAMTEXZUcnVzIEVDQyBSb290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDcz -MTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28u -LEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYwEAYHKoZIzj0CAQYF -K4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+cToL0 -v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUd -e4BdS49nTPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYD -VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIw -V53dVvHH4+m4SVBrm2nDb+zDfSXkV5UTQJtS0zvzQBm8JsctBp61ezaf9SXUY2sA -AjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQLYgmRWAD5Tfs0aNoJrSEG -GJTO ------END CERTIFICATE----- - -# Issuer: CN=vTrus Root CA O=iTrusChina Co.,Ltd. -# Subject: CN=vTrus Root CA O=iTrusChina Co.,Ltd. -# Label: "vTrus Root CA" -# Serial: 387574501246983434957692974888460947164905180485 -# MD5 Fingerprint: b8:c9:37:df:fa:6b:31:84:64:c5:ea:11:6a:1b:75:fc -# SHA1 Fingerprint: 84:1a:69:fb:f5:cd:1a:25:34:13:3d:e3:f8:fc:b8:99:d0:c9:14:b7 -# SHA256 Fingerprint: 8a:71:de:65:59:33:6f:42:6c:26:e5:38:80:d0:0d:88:a1:8d:a4:c6:a9:1f:0d:cb:61:94:e2:06:c5:c9:63:87 ------BEGIN CERTIFICATE----- -MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQEL -BQAwQzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4x -FjAUBgNVBAMTDXZUcnVzIFJvb3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMx -MDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoGA1UEChMTaVRydXNDaGluYSBDby4s -THRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZotsSKYc -IrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykU -AyyNJJrIZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+ -GrPSbcKvdmaVayqwlHeFXgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z9 -8Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KAYPxMvDVTAWqXcoKv8R1w6Jz1717CbMdH -flqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70kLJrxLT5ZOrpGgrIDajt -J8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2AXPKBlim -0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZN -pGvu/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQ -UqqzApVg+QxMaPnu1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHW -OXSuTEGC2/KmSNGzm/MzqvOmwMVO9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMB -AAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYgscasGrz2iTAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAKbqSSaet -8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd -nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1j -bhd47F18iMjrjld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvM -Kar5CKXiNxTKsbhm7xqC5PD48acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIiv -TDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJnxDHO2zTlJQNgJXtxmOTAGytfdELS -S8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554WgicEFOwE30z9J4nfr -I8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4sEb9 -b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNB -UvupLnKWnyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1P -Ti07NEPhmg4NpGaXutIcSkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929ven -sBxXVsFy6K2ir40zSbofitzmdHxghm+Hl3s= ------END CERTIFICATE----- - -# Issuer: CN=ISRG Root X2 O=Internet Security Research Group -# Subject: CN=ISRG Root X2 O=Internet Security Research Group -# Label: "ISRG Root X2" -# Serial: 87493402998870891108772069816698636114 -# MD5 Fingerprint: d3:9e:c4:1e:23:3c:a6:df:cf:a3:7e:6d:e0:14:e6:e5 -# SHA1 Fingerprint: bd:b1:b9:3c:d5:97:8d:45:c6:26:14:55:f8:db:95:c7:5a:d1:53:af -# SHA256 Fingerprint: 69:72:9b:8e:15:a8:6e:fc:17:7a:57:af:b7:17:1d:fc:64:ad:d2:8c:2f:ca:8c:f1:50:7e:34:45:3c:cb:14:70 ------BEGIN CERTIFICATE----- -MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQsw -CQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg -R3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00 -MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5ldCBT -ZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgyMHYw -EAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0HttwW -+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9 -ItgKbppbd9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T -AQH/BAUwAwEB/zAdBgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZI -zj0EAwMDaAAwZQIwe3lORlCEwkSHRhtFcP9Ymd70/aTSVaYgLXTWNLxBo1BfASdW -tL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5U6VR5CmD1/iQMVtCnwr1 -/q4AaOeMSQ+2b1tbFfLn ------END CERTIFICATE----- - -# Issuer: CN=HiPKI Root CA - G1 O=Chunghwa Telecom Co., Ltd. -# Subject: CN=HiPKI Root CA - G1 O=Chunghwa Telecom Co., Ltd. -# Label: "HiPKI Root CA - G1" -# Serial: 60966262342023497858655262305426234976 -# MD5 Fingerprint: 69:45:df:16:65:4b:e8:68:9a:8f:76:5f:ff:80:9e:d3 -# SHA1 Fingerprint: 6a:92:e4:a8:ee:1b:ec:96:45:37:e3:29:57:49:cd:96:e3:e5:d2:60 -# SHA256 Fingerprint: f0:15:ce:3c:c2:39:bf:ef:06:4b:e9:f1:d2:c4:17:e1:a0:26:4a:0a:94:be:1f:0c:8d:12:18:64:eb:69:49:cc ------BEGIN CERTIFICATE----- -MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBP -MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0 -ZC4xGzAZBgNVBAMMEkhpUEtJIFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRa -Fw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3 -YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kgUm9vdCBDQSAtIEcx -MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0o9Qw -qNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twv -Vcg3Px+kwJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6 -lZgRZq2XNdZ1AYDgr/SEYYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnz -Qs7ZngyzsHeXZJzA9KMuH5UHsBffMNsAGJZMoYFL3QRtU6M9/Aes1MU3guvklQgZ -KILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfdhSi8MEyr48KxRURHH+CK -FgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj1jOXTyFj -HluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDr -y+K49a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ -/W3c1pzAtH2lsN0/Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgM -a/aOEmem8rJY5AIJEzypuxC00jBF8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6 -fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNV -HQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQDAgGGMA0GCSqG -SIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi -7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqc -SE5XCV0vrPSltJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6Fza -ZsT0pPBWGTMpWmWSBUdGSquEwx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9Tc -XzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07QJNBAsNB1CI69aO4I1258EHBGG3zg -iLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv5wiZqAxeJoBF1Pho -L5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+GpzjLrF -Ne85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wr -kkVbbiVghUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+ -vhV4nYWBSipX3tUZQ9rbyltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQU -YDksswBVLuT1sw5XxJFBAJw/6KXf6vb/yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== ------END CERTIFICATE----- - -# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4 -# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4 -# Label: "GlobalSign ECC Root CA - R4" -# Serial: 159662223612894884239637590694 -# MD5 Fingerprint: 26:29:f8:6d:e1:88:bf:a2:65:7f:aa:c4:cd:0f:7f:fc -# SHA1 Fingerprint: 6b:a0:b0:98:e1:71:ef:5a:ad:fe:48:15:80:77:10:f4:bd:6f:0b:28 -# SHA256 Fingerprint: b0:85:d7:0b:96:4f:19:1a:73:e4:af:0d:54:ae:7a:0e:07:aa:fd:af:9b:71:dd:08:62:13:8a:b7:32:5a:24:a2 ------BEGIN CERTIFICATE----- -MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYD -VQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2Jh -bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgw -MTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0g -UjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wWTAT -BgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkWymOx -uYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNV -HQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/ -+wpu+74zyTyjhNUwCgYIKoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147 -bmF0774BxL4YSFlhgjICICadVGNA3jdgUM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm ------END CERTIFICATE----- - -# Issuer: CN=GTS Root R1 O=Google Trust Services LLC -# Subject: CN=GTS Root R1 O=Google Trust Services LLC -# Label: "GTS Root R1" -# Serial: 159662320309726417404178440727 -# MD5 Fingerprint: 05:fe:d0:bf:71:a8:a3:76:63:da:01:e0:d8:52:dc:40 -# SHA1 Fingerprint: e5:8c:1c:c4:91:3b:38:63:4b:e9:10:6e:e3:ad:8e:6b:9d:d9:81:4a -# SHA256 Fingerprint: d9:47:43:2a:bd:e7:b7:fa:90:fc:2e:6b:59:10:1b:12:80:e0:e1:c7:e4:e4:0f:a3:c6:88:7f:ff:57:a7:f4:cf ------BEGIN CERTIFICATE----- -MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQsw -CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU -MBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw -MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp -Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUA -A4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaMf/vo -27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7w -Cl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjw -TcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0Pfybl -qAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaH -szVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4Zor8 -Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUspzBmk -MiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92 -wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70p -aDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrN -VjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQID -AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E -FgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBAJ+qQibb -C5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe -QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuy -h6f88/qBVRRiClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM4 -7HLwEXWdyzRSjeZ2axfG34arJ45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8J -ZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYciNuaCp+0KueIHoI17eko8cdLiA6Ef -MgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5meLMFrUKTX5hgUvYU/ -Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJFfbdT -6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ -0E6yove+7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm -2tIMPNuzjsmhDYAPexZ3FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bb -bP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3gm3c ------END CERTIFICATE----- - -# Issuer: CN=GTS Root R3 O=Google Trust Services LLC -# Subject: CN=GTS Root R3 O=Google Trust Services LLC -# Label: "GTS Root R3" -# Serial: 159662495401136852707857743206 -# MD5 Fingerprint: 3e:e7:9d:58:02:94:46:51:94:e5:e0:22:4a:8b:e7:73 -# SHA1 Fingerprint: ed:e5:71:80:2b:c8:92:b9:5b:83:3c:d2:32:68:3f:09:cd:a0:1e:46 -# SHA256 Fingerprint: 34:d8:a7:3e:e2:08:d9:bc:db:0d:95:65:20:93:4b:4e:40:e6:94:82:59:6e:8b:6f:73:c8:42:6b:01:0a:6f:48 ------BEGIN CERTIFICATE----- -MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYD -VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG -A1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw -WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz -IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNi -AAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout736G -jOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL2 -4CejQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW -BBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7 -VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azTL818+FsuVbu/3ZL3pAzcMeGiAjEA/Jdm -ZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV11RZt+cRLInUue4X ------END CERTIFICATE----- - -# Issuer: CN=GTS Root R4 O=Google Trust Services LLC -# Subject: CN=GTS Root R4 O=Google Trust Services LLC -# Label: "GTS Root R4" -# Serial: 159662532700760215368942768210 -# MD5 Fingerprint: 43:96:83:77:19:4d:76:b3:9d:65:52:e4:1d:22:a5:e8 -# SHA1 Fingerprint: 77:d3:03:67:b5:e0:0c:15:f6:0c:38:61:df:7c:e1:3b:92:46:4d:47 -# SHA256 Fingerprint: 34:9d:fa:40:58:c5:e2:63:12:3b:39:8a:e7:95:57:3c:4e:13:13:c8:3f:e6:8f:93:55:6c:d5:e8:03:1b:3c:7d ------BEGIN CERTIFICATE----- -MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYD -VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG -A1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw -WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz -IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi -AATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzuhXyi -QHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvR -HYqjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW -BBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D -9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/Cr8deVl5c1RxYIigL9zC2L7F8AjEA8GE8 -p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh4rsUecrNIdSUtUlD ------END CERTIFICATE----- - -# Issuer: CN=Telia Root CA v2 O=Telia Finland Oyj -# Subject: CN=Telia Root CA v2 O=Telia Finland Oyj -# Label: "Telia Root CA v2" -# Serial: 7288924052977061235122729490515358 -# MD5 Fingerprint: 0e:8f:ac:aa:82:df:85:b1:f4:dc:10:1c:fc:99:d9:48 -# SHA1 Fingerprint: b9:99:cd:d1:73:50:8a:c4:47:05:08:9c:8c:88:fb:be:a0:2b:40:cd -# SHA256 Fingerprint: 24:2b:69:74:2f:cb:1e:5b:2a:bf:98:89:8b:94:57:21:87:54:4e:5b:4d:99:11:78:65:73:62:1f:6a:74:b8:2c ------BEGIN CERTIFICATE----- -MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQx -CzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UE -AwwQVGVsaWEgUm9vdCBDQSB2MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1 -NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZ -MBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ76zBq -AMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9 -vVYiQJ3q9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9 -lRdU2HhE8Qx3FZLgmEKnpNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTOD -n3WhUidhOPFZPY5Q4L15POdslv5e2QJltI5c0BE0312/UqeBAMN/mUWZFdUXyApT -7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW5olWK8jjfN7j/4nlNW4o -6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNrRBH0pUPC -TEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6 -WT0EBXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63R -DolUK5X6wK0dmBR4M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZI -pEYslOqodmJHixBTB0hXbOKSTbauBcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGj -YzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7Wxy+G2CQ5MB0GA1UdDgQWBBRy -rOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw -AwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ -8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi -0f6X+J8wfBj5tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMM -A8iZGok1GTzTyVR8qPAs5m4HeW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBS -SRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+Cy748fdHif64W1lZYudogsYMVoe+K -TTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygCQMez2P2ccGrGKMOF -6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15h2Er -3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMt -Ty3EHD70sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pT -VmBds9hCG1xLEooc6+t9xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAW -ysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQraVplI/owd8k+BsHMYeB2F326CjYSlKA -rBPuUBQemMc= ------END CERTIFICATE----- - -# Issuer: CN=D-TRUST BR Root CA 1 2020 O=D-Trust GmbH -# Subject: CN=D-TRUST BR Root CA 1 2020 O=D-Trust GmbH -# Label: "D-TRUST BR Root CA 1 2020" -# Serial: 165870826978392376648679885835942448534 -# MD5 Fingerprint: b5:aa:4b:d5:ed:f7:e3:55:2e:8f:72:0a:f3:75:b8:ed -# SHA1 Fingerprint: 1f:5b:98:f0:e3:b5:f7:74:3c:ed:e6:b0:36:7d:32:cd:f4:09:41:67 -# SHA256 Fingerprint: e5:9a:aa:81:60:09:c2:2b:ff:5b:25:ba:d3:7d:f3:06:f0:49:79:7c:1f:81:d8:5a:b0:89:e6:57:bd:8f:00:44 ------BEGIN CERTIFICATE----- -MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQsw -CQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS -VVNUIEJSIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5 -NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG -A1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB -BAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7dPYS -zuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0 -QVK5buXuQqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/ -VbNafAkl1bK6CKBrqx9tMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g -PKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2JyX3Jvb3Rf -Y2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l -dC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1 -c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO -PQQDAwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFW -wKrY7RjEsK70PvomAjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHV -dWNbFJWcHwHP2NVypw87 ------END CERTIFICATE----- - -# Issuer: CN=D-TRUST EV Root CA 1 2020 O=D-Trust GmbH -# Subject: CN=D-TRUST EV Root CA 1 2020 O=D-Trust GmbH -# Label: "D-TRUST EV Root CA 1 2020" -# Serial: 126288379621884218666039612629459926992 -# MD5 Fingerprint: 8c:2d:9d:70:9f:48:99:11:06:11:fb:e9:cb:30:c0:6e -# SHA1 Fingerprint: 61:db:8c:21:59:69:03:90:d8:7c:9c:12:86:54:cf:9d:3d:f4:dd:07 -# SHA256 Fingerprint: 08:17:0d:1a:a3:64:53:90:1a:2f:95:92:45:e3:47:db:0c:8d:37:ab:aa:bc:56:b8:1a:a1:00:dc:95:89:70:db ------BEGIN CERTIFICATE----- -MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQsw -CQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS -VVNUIEVWIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5 -NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG -A1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB -BAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8ZRCC -/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rD -wpdhQntJraOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3 -OqQo5FD4pPfsazK2/umLMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g -PKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2V2X3Jvb3Rf -Y2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l -dC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1 -c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO -PQQDAwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CA -y/m0sRtW9XLS/BnRAjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJb -gfM0agPnIjhQW+0ZT0MW ------END CERTIFICATE----- - -# Issuer: CN=DigiCert TLS ECC P384 Root G5 O=DigiCert, Inc. -# Subject: CN=DigiCert TLS ECC P384 Root G5 O=DigiCert, Inc. -# Label: "DigiCert TLS ECC P384 Root G5" -# Serial: 13129116028163249804115411775095713523 -# MD5 Fingerprint: d3:71:04:6a:43:1c:db:a6:59:e1:a8:a3:aa:c5:71:ed -# SHA1 Fingerprint: 17:f3:de:5e:9f:0f:19:e9:8e:f6:1f:32:26:6e:20:c4:07:ae:30:ee -# SHA256 Fingerprint: 01:8e:13:f0:77:25:32:cf:80:9b:d1:b1:72:81:86:72:83:fc:48:c6:e1:3b:e9:c6:98:12:85:4a:49:0c:1b:05 ------BEGIN CERTIFICATE----- -MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp -Z2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2 -MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ -bmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG -ByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS -7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp -0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS -B4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49 -BAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ -LgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4 -DXZDjC5Ty3zfDBeWUA== ------END CERTIFICATE----- - -# Issuer: CN=DigiCert TLS RSA4096 Root G5 O=DigiCert, Inc. -# Subject: CN=DigiCert TLS RSA4096 Root G5 O=DigiCert, Inc. -# Label: "DigiCert TLS RSA4096 Root G5" -# Serial: 11930366277458970227240571539258396554 -# MD5 Fingerprint: ac:fe:f7:34:96:a9:f2:b3:b4:12:4b:e4:27:41:6f:e1 -# SHA1 Fingerprint: a7:88:49:dc:5d:7c:75:8c:8c:de:39:98:56:b3:aa:d0:b2:a5:71:35 -# SHA256 Fingerprint: 37:1a:00:dc:05:33:b3:72:1a:7e:eb:40:e8:41:9e:70:79:9d:2b:0a:0f:2c:1d:80:69:31:65:f7:ce:c4:ad:75 ------BEGIN CERTIFICATE----- -MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBN -MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMT -HERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcN -NDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQs -IEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS87IE+ -ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG0 -2C+JFvuUAT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgp -wgscONyfMXdcvyej/Cestyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZM -pG2T6T867jp8nVid9E6P/DsjyG244gXazOvswzH016cpVIDPRFtMbzCe88zdH5RD -nU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnVDdXifBBiqmvwPXbzP6Po -sMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9qTXeXAaDx -Zre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cd -Lvvyz6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvX -KyY//SovcfXWJL5/MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNe -XoVPzthwiHvOAbWWl9fNff2C+MIkwcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPL -tgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4EFgQUUTMc7TZArxfTJc1paPKv -TiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcN -AQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw -GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7H -PNtQOa27PShNlnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLF -O4uJ+DQtpBflF+aZfTCIITfNMBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQ -REtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/u4cnYiWB39yhL/btp/96j1EuMPik -AdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9GOUrYU9DzLjtxpdRv -/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh47a+ -p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilw -MUc/dNAUFvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WF -qUITVuwhd4GTWgzqltlJyqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCK -ovfepEWFJqgejF0pW8hL2JpqA15w8oVPbEtoL8pU9ozaMv7Da4M/OMZ+ ------END CERTIFICATE----- - -# Issuer: CN=Certainly Root R1 O=Certainly -# Subject: CN=Certainly Root R1 O=Certainly -# Label: "Certainly Root R1" -# Serial: 188833316161142517227353805653483829216 -# MD5 Fingerprint: 07:70:d4:3e:82:87:a0:fa:33:36:13:f4:fa:33:e7:12 -# SHA1 Fingerprint: a0:50:ee:0f:28:71:f4:27:b2:12:6d:6f:50:96:25:ba:cc:86:42:af -# SHA256 Fingerprint: 77:b8:2c:d8:64:4c:43:05:f7:ac:c5:cb:15:6b:45:67:50:04:03:3d:51:c6:0c:62:02:a8:e0:c3:34:67:d3:a0 ------BEGIN CERTIFICATE----- -MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAw -PTELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2Vy -dGFpbmx5IFJvb3QgUjEwHhcNMjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9 -MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0 -YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANA2 -1B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O5MQT -vqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbed -aFySpvXl8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b0 -1C7jcvk2xusVtyWMOvwlDbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5 -r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGIXsXwClTNSaa/ApzSRKft43jvRl5tcdF5 -cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkNKPl6I7ENPT2a/Z2B7yyQ -wHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQAjeZjOVJ -6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA -2CnbrlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyH -Wyf5QBGenDPBt+U1VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMR -eiFPCyEQtkA6qyI6BJyLm4SGcprSp6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB -/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTgqj8ljZ9EXME66C6u -d0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAszHQNTVfSVcOQr -PbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d -8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi -1wrykXprOQ4vMMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrd -rRT90+7iIgXr0PK3aBLXWopBGsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9di -taY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+gjwN/KUD+nsa2UUeYNrEjvn8K8l7 -lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgHJBu6haEaBQmAupVj -yTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7fpYn -Kx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLy -yCwzk5Iwx06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5n -wXARPbv0+Em34yaXOp/SX3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6 -OV+KmalBWQewLK8= ------END CERTIFICATE----- - -# Issuer: CN=Certainly Root E1 O=Certainly -# Subject: CN=Certainly Root E1 O=Certainly -# Label: "Certainly Root E1" -# Serial: 8168531406727139161245376702891150584 -# MD5 Fingerprint: 0a:9e:ca:cd:3e:52:50:c6:36:f3:4b:a3:ed:a7:53:e9 -# SHA1 Fingerprint: f9:e1:6d:dc:01:89:cf:d5:82:45:63:3e:c5:37:7d:c2:eb:93:6f:2b -# SHA256 Fingerprint: b4:58:5f:22:e4:ac:75:6a:4e:86:12:a1:36:1c:5d:9d:03:1a:93:fd:84:fe:bb:77:8f:a3:06:8b:0f:c4:2d:c2 ------BEGIN CERTIFICATE----- -MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQsw -CQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlu -bHkgUm9vdCBFMTAeFw0yMTA0MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJ -BgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlubHkxGjAYBgNVBAMTEUNlcnRhaW5s -eSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4fxzf7flHh4axpMCK -+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9YBk2 -QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4 -hevIIgcwCgYIKoZIzj0EAwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozm -ut6Dacpps6kFtZaSF4fC0urQe87YQVt8rgIwRt7qy12a7DLCZRawTDBcMPPaTnOG -BtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR ------END CERTIFICATE----- - -# Issuer: CN=Security Communication ECC RootCA1 O=SECOM Trust Systems CO.,LTD. -# Subject: CN=Security Communication ECC RootCA1 O=SECOM Trust Systems CO.,LTD. -# Label: "Security Communication ECC RootCA1" -# Serial: 15446673492073852651 -# MD5 Fingerprint: 7e:43:b0:92:68:ec:05:43:4c:98:ab:5d:35:2e:7e:86 -# SHA1 Fingerprint: b8:0e:26:a9:bf:d2:b2:3b:c0:ef:46:c9:ba:c7:bb:f6:1d:0d:41:41 -# SHA256 Fingerprint: e7:4f:bd:a5:5b:d5:64:c4:73:a3:6b:44:1a:a7:99:c8:a6:8e:07:74:40:e8:28:8b:9f:a1:e5:0e:4b:ba:ca:11 ------BEGIN CERTIFICATE----- -MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYT -AkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYD -VQQDEyJTZWN1cml0eSBDb21tdW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYx -NjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTELMAkGA1UEBhMCSlAxJTAjBgNVBAoT -HFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNVBAMTIlNlY3VyaXR5 -IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQAIgNi -AASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+Cnnfdl -dB9sELLo5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpK -ULGjQjBAMB0GA1UdDgQWBBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu -9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3LsnNdo4gIxwwCMQDAqy0O -be0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70eN9k= ------END CERTIFICATE----- - -# Issuer: CN=BJCA Global Root CA1 O=BEIJING CERTIFICATE AUTHORITY -# Subject: CN=BJCA Global Root CA1 O=BEIJING CERTIFICATE AUTHORITY -# Label: "BJCA Global Root CA1" -# Serial: 113562791157148395269083148143378328608 -# MD5 Fingerprint: 42:32:99:76:43:33:36:24:35:07:82:9b:28:f9:d0:90 -# SHA1 Fingerprint: d5:ec:8d:7b:4c:ba:79:f4:e7:e8:cb:9d:6b:ae:77:83:10:03:21:6a -# SHA256 Fingerprint: f3:89:6f:88:fe:7c:0a:88:27:66:a7:fa:6a:d2:74:9f:b5:7a:7f:3e:98:fb:76:9c:1f:a7:b0:9c:2c:44:d5:ae ------BEGIN CERTIFICATE----- -MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBU -MQswCQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRI -T1JJVFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAz -MTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJF -SUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2Jh -bCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFmCL3Z -xRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZ -spDyRhySsTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O5 -58dnJCNPYwpj9mZ9S1WnP3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgR -at7GGPZHOiJBhyL8xIkoVNiMpTAK+BcWyqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll -5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRjeulumijWML3mG90Vr4Tq -nMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNnMoH1V6XK -V0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/ -pj+bOT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZO -z2nxbkRs1CTqjSShGL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXn -jSXWgXSHRtQpdaJCbPdzied9v3pKH9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+ -WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMBAAGjQjBAMB0GA1UdDgQWBBTF -7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE -AwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 -YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3Kli -awLwQ8hOnThJdMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u -+2D2/VnGKhs/I0qUJDAnyIm860Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88 -X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuhTaRjAv04l5U/BXCga99igUOLtFkN -SoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW4AB+dAb/OMRyHdOo -P2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmpGQrI -+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRz -znfSxqxx4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9 -eVzYH6Eze9mCUAyTF6ps3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2 -YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4SSPfSKcOYKMryMguTjClPPGAyzQWWYezy -r/6zcCwupvI= ------END CERTIFICATE----- - -# Issuer: CN=BJCA Global Root CA2 O=BEIJING CERTIFICATE AUTHORITY -# Subject: CN=BJCA Global Root CA2 O=BEIJING CERTIFICATE AUTHORITY -# Label: "BJCA Global Root CA2" -# Serial: 58605626836079930195615843123109055211 -# MD5 Fingerprint: 5e:0a:f6:47:5f:a6:14:e8:11:01:95:3f:4d:01:eb:3c -# SHA1 Fingerprint: f4:27:86:eb:6e:b8:6d:88:31:67:02:fb:ba:66:a4:53:00:aa:7a:a6 -# SHA256 Fingerprint: 57:4d:f6:93:1e:27:80:39:66:7b:72:0a:fd:c1:60:0f:c2:7e:b6:6d:d3:09:29:79:fb:73:85:64:87:21:28:82 ------BEGIN CERTIFICATE----- -MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQsw -CQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJ -VFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgy -MVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJ -TkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2JhbCBS -b290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jlSR9B -IgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK+ -+kpRuDCK/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJK -sVF/BvDRgh9Obl+rg/xI1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD -AgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA -94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8gUXOQwKhbYdDFUDn9hf7B -43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== ------END CERTIFICATE----- - -# Issuer: CN=Sectigo Public Server Authentication Root E46 O=Sectigo Limited -# Subject: CN=Sectigo Public Server Authentication Root E46 O=Sectigo Limited -# Label: "Sectigo Public Server Authentication Root E46" -# Serial: 88989738453351742415770396670917916916 -# MD5 Fingerprint: 28:23:f8:b2:98:5c:37:16:3b:3e:46:13:4e:b0:b3:01 -# SHA1 Fingerprint: ec:8a:39:6c:40:f0:2e:bc:42:75:d4:9f:ab:1c:1a:5b:67:be:d2:9a -# SHA256 Fingerprint: c9:0f:26:f0:fb:1b:40:18:b2:22:27:51:9b:5c:a2:b5:3e:2c:a5:b3:be:5c:f1:8e:fe:1b:ef:47:38:0c:53:83 ------BEGIN CERTIFICATE----- -MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQsw -CQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T -ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcN -MjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYG -A1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT -ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA -IgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccC -WvkEN/U0NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+ -6xnOQ6OjQjBAMB0GA1UdDgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8B -Af8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNnADBkAjAn7qRa -qCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RHlAFWovgzJQxC36oCMB3q -4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21USAGKcw== ------END CERTIFICATE----- - -# Issuer: CN=Sectigo Public Server Authentication Root R46 O=Sectigo Limited -# Subject: CN=Sectigo Public Server Authentication Root R46 O=Sectigo Limited -# Label: "Sectigo Public Server Authentication Root R46" -# Serial: 156256931880233212765902055439220583700 -# MD5 Fingerprint: 32:10:09:52:00:d5:7e:6c:43:df:15:c0:b1:16:93:e5 -# SHA1 Fingerprint: ad:98:f9:f3:e4:7d:75:3b:65:d4:82:b3:a4:52:17:bb:6e:f5:e4:38 -# SHA256 Fingerprint: 7b:b6:47:a6:2a:ee:ac:88:bf:25:7a:a5:22:d0:1f:fe:a3:95:e0:ab:45:c7:3f:93:f6:56:54:ec:38:f2:5a:06 ------BEGIN CERTIFICATE----- -MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBf -MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQD -Ey1TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYw -HhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEY -MBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1Ymxp -YyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDa -ef0rty2k1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnz -SDBh+oF8HqcIStw+KxwfGExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xf -iOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMPFF1bFOdLvt30yNoDN9HWOaEhUTCDsG3X -ME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vuZDCQOc2TZYEhMbUjUDM3 -IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5QazYw6A3OAS -VYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgE -SJ/AwSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu -+Zd4KKTIRJLpfSYFplhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt -8uaZFURww3y8nDnAtOFr94MlI1fZEoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+L -HaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW6aWWrL3DkJiy4Pmi1KZHQ3xt -zwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWIIUkwDgYDVR0P -AQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c -mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQ -YKlJfp/imTYpE0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52 -gDY9hAaLMyZlbcp+nv4fjFg4exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZA -Fv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M0ejf5lG5Nkc/kLnHvALcWxxPDkjB -JYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI84HxZmduTILA7rpX -DhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9mpFui -TdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5 -dHn5HrwdVw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65 -LvKRRFHQV80MNNVIIb/bE/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp -0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmmJ1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAY -QqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL ------END CERTIFICATE----- - -# Issuer: CN=SSL.com TLS RSA Root CA 2022 O=SSL Corporation -# Subject: CN=SSL.com TLS RSA Root CA 2022 O=SSL Corporation -# Label: "SSL.com TLS RSA Root CA 2022" -# Serial: 148535279242832292258835760425842727825 -# MD5 Fingerprint: d8:4e:c6:59:30:d8:fe:a0:d6:7a:5a:2c:2c:69:78:da -# SHA1 Fingerprint: ec:2c:83:40:72:af:26:95:10:ff:0e:f2:03:ee:31:70:f6:78:9d:ca -# SHA256 Fingerprint: 8f:af:7d:2e:2c:b4:70:9b:b8:e0:b3:36:66:bf:75:a5:dd:45:b5:de:48:0f:8e:a8:d4:bf:e6:be:bc:17:f2:ed ------BEGIN CERTIFICATE----- -MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBO -MQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQD -DBxTU0wuY29tIFRMUyBSU0EgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloX -DTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jw -b3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJvb3QgQ0EgMjAyMjCC -AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u9nTP -L3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OY -t6/wNr/y7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0ins -S657Lb85/bRi3pZ7QcacoOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3 -PnxEX4MN8/HdIGkWCVDi1FW24IBydm5MR7d1VVm0U3TZlMZBrViKMWYPHqIbKUBO -L9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDGD6C1vBdOSHtRwvzpXGk3 -R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEWTO6Af77w -dr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS -+YCk8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYS -d66UNHsef8JmAOSqg+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoG -AtUjHBPW6dvbxrB6y3snm/vg1UYk7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2f -gTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j -BBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsuN+7jhHonLs0Z -NbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt -hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsM -QtfhWsSWTVTNj8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvf -R4iyrT7gJ4eLSYwfqUdYe5byiB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJ -DPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjUo3KUQyxi4U5cMj29TH0ZR6LDSeeW -P4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqoENjwuSfr98t67wVy -lrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7EgkaibMOlq -bLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2w -AgDHbICivRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3q -r5nsLFR+jM4uElZI7xc7P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sji -Mho6/4UIyYOf8kpIEFR3N+2ivEC+5BB09+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU -98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= ------END CERTIFICATE----- - -# Issuer: CN=SSL.com TLS ECC Root CA 2022 O=SSL Corporation -# Subject: CN=SSL.com TLS ECC Root CA 2022 O=SSL Corporation -# Label: "SSL.com TLS ECC Root CA 2022" -# Serial: 26605119622390491762507526719404364228 -# MD5 Fingerprint: 99:d7:5c:f1:51:36:cc:e9:ce:d9:19:2e:77:71:56:c5 -# SHA1 Fingerprint: 9f:5f:d9:1a:54:6d:f5:0c:71:f0:ee:7a:bd:17:49:98:84:73:e2:39 -# SHA256 Fingerprint: c3:2f:fd:9f:46:f9:36:d1:6c:36:73:99:09:59:43:4b:9a:d6:0a:af:bb:9e:7c:f3:36:54:f1:44:cc:1b:a1:43 ------BEGIN CERTIFICATE----- -MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQsw -CQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxT -U0wuY29tIFRMUyBFQ0MgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2 -MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3Jh -dGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3QgQ0EgMjAyMjB2MBAG -ByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWyJGYm -acCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFN -SeR7T5v15wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME -GDAWgBSJjy+j6CugFFR781a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NW -uCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp -15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w7deedWo1dlJF4AIxAMeN -b0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5Zn6g6g== ------END CERTIFICATE----- - -# Issuer: CN=Atos TrustedRoot Root CA ECC TLS 2021 O=Atos -# Subject: CN=Atos TrustedRoot Root CA ECC TLS 2021 O=Atos -# Label: "Atos TrustedRoot Root CA ECC TLS 2021" -# Serial: 81873346711060652204712539181482831616 -# MD5 Fingerprint: 16:9f:ad:f1:70:ad:79:d6:ed:29:b4:d1:c5:79:70:a8 -# SHA1 Fingerprint: 9e:bc:75:10:42:b3:02:f3:81:f4:f7:30:62:d4:8f:c3:a7:51:b2:dd -# SHA256 Fingerprint: b2:fa:e5:3e:14:cc:d7:ab:92:12:06:47:01:ae:27:9c:1d:89:88:fa:cb:77:5f:a8:a0:08:91:4e:66:39:88:a8 ------BEGIN CERTIFICATE----- -MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4w -LAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0w -CwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0 -MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBF -Q0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMHYwEAYHKoZI -zj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6KDP/X -tXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4 -AjJn8ZQSb+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2 -KCXWfeBmmnoJsmo7jjPXNtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMD -aAAwZQIwW5kp85wxtolrbNa9d+F851F+uDrNozZffPc8dz7kUK2o59JZDCaOMDtu -CCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGYa3cpetskz2VAv9LcjBHo -9H1/IISpQuQo ------END CERTIFICATE----- - -# Issuer: CN=Atos TrustedRoot Root CA RSA TLS 2021 O=Atos -# Subject: CN=Atos TrustedRoot Root CA RSA TLS 2021 O=Atos -# Label: "Atos TrustedRoot Root CA RSA TLS 2021" -# Serial: 111436099570196163832749341232207667876 -# MD5 Fingerprint: d4:d3:46:b8:9a:c0:9c:76:5d:9e:3a:c3:b9:99:31:d2 -# SHA1 Fingerprint: 18:52:3b:0d:06:37:e4:d6:3a:df:23:e4:98:fb:5b:16:fb:86:74:48 -# SHA256 Fingerprint: 81:a9:08:8e:a5:9f:b3:64:c5:48:a6:f8:55:59:09:9b:6f:04:05:ef:bf:18:e5:32:4e:c9:f4:57:ba:00:11:2f ------BEGIN CERTIFICATE----- -MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBM -MS4wLAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIx -MQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00 -MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBD -QSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMIICIjAN -BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BBl01Z -4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYv -Ye+W/CBGvevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZ -kmGbzSoXfduP9LVq6hdKZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDs -GY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt0xU6kGpn8bRrZtkh68rZYnxGEFzedUln -nkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVKPNe0OwANwI8f4UDErmwh -3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMYsluMWuPD -0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzy -geBYBr3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8 -ANSbhqRAvNncTFd+rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezB -c6eUWsuSZIKmAMFwoW4sKeFYV+xafJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lI -pw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU -dEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB -DAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS -4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPs -o0UvFJ/1TCplQ3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJ -qM7F78PRreBrAwA0JrRUITWXAdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuyw -xfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9GslA9hGCZcbUztVdF5kJHdWoOsAgM -rr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2VktafcxBPTy+av5EzH4 -AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9qTFsR -0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuY -o7Ey7Nmj1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5 -dDTedk+SKlOxJTnbPP/lPqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcE -oji2jbDwN/zIIX8/syQbPYtuzE2wFg2WHYMfRsCbvUOZ58SWLs5fyQ== ------END CERTIFICATE----- - -# Issuer: CN=TrustAsia Global Root CA G3 O=TrustAsia Technologies, Inc. -# Subject: CN=TrustAsia Global Root CA G3 O=TrustAsia Technologies, Inc. -# Label: "TrustAsia Global Root CA G3" -# Serial: 576386314500428537169965010905813481816650257167 -# MD5 Fingerprint: 30:42:1b:b7:bb:81:75:35:e4:16:4f:53:d2:94:de:04 -# SHA1 Fingerprint: 63:cf:b6:c1:27:2b:56:e4:88:8e:1c:23:9a:b6:2e:81:47:24:c3:c7 -# SHA256 Fingerprint: e0:d3:22:6a:eb:11:63:c2:e4:8f:f9:be:3b:50:b4:c6:43:1b:e7:bb:1e:ac:c5:c3:6b:5d:5e:c5:09:03:9a:08 ------BEGIN CERTIFICATE----- -MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEM -BQAwWjELMAkGA1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dp -ZXMsIEluYy4xJDAiBgNVBAMMG1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAe -Fw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEwMTlaMFoxCzAJBgNVBAYTAkNOMSUw -IwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQwIgYDVQQDDBtU -cnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNS -T1QY4SxzlZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqK -AtCWHwDNBSHvBm3dIZwZQ0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1 -nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/VP68czH5GX6zfZBCK70bwkPAPLfSIC7Ep -qq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1AgdB4SQXMeJNnKziyhWTXA -yB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm9WAPzJMs -hH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gX -zhqcD0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAv -kV34PmVACxmZySYgWmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msT -f9FkPz2ccEblooV7WIQn3MSAPmeamseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jA -uPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCFTIcQcf+eQxuulXUtgQIDAQAB -o2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj7zjKsK5Xf/Ih -MBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E -BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4 -wM8zAQLpw6o1D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2 -XFNFV1pF1AWZLy4jVe5jaN/TG3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1 -JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNjduMNhXJEIlU/HHzp/LgV6FL6qj6j -ITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstlcHboCoWASzY9M/eV -VHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys+TIx -xHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1on -AX1daBli2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d -7XB4tmBZrOFdRWOPyN9yaFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2Ntjj -gKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsASZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV -+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFRJQJ6+N1rZdVtTTDIZbpo -FGWsJwt0ivKH ------END CERTIFICATE----- - -# Issuer: CN=TrustAsia Global Root CA G4 O=TrustAsia Technologies, Inc. -# Subject: CN=TrustAsia Global Root CA G4 O=TrustAsia Technologies, Inc. -# Label: "TrustAsia Global Root CA G4" -# Serial: 451799571007117016466790293371524403291602933463 -# MD5 Fingerprint: 54:dd:b2:d7:5f:d8:3e:ed:7c:e0:0b:2e:cc:ed:eb:eb -# SHA1 Fingerprint: 57:73:a5:61:5d:80:b2:e6:ac:38:82:fc:68:07:31:ac:9f:b5:92:5a -# SHA256 Fingerprint: be:4b:56:cb:50:56:c0:13:6a:52:6d:f4:44:50:8d:aa:36:a0:b5:4f:42:e4:ac:38:f7:2a:f4:70:e4:79:65:4c ------BEGIN CERTIFICATE----- -MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMw -WjELMAkGA1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMs -IEluYy4xJDAiBgNVBAMMG1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0y -MTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJaMFoxCzAJBgNVBAYTAkNOMSUwIwYD -VQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQwIgYDVQQDDBtUcnVz -dEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATx -s8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbw -LxYI+hW8m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJij -YzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mD -pm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/pDHel4NZg6ZvccveMA4GA1UdDwEB/wQE -AwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AAbbd+NvBNEU/zy4k6LHiR -UKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xkdUfFVZDj -/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA== ------END CERTIFICATE----- - -# Issuer: CN=Telekom Security TLS ECC Root 2020 O=Deutsche Telekom Security GmbH -# Subject: CN=Telekom Security TLS ECC Root 2020 O=Deutsche Telekom Security GmbH -# Label: "Telekom Security TLS ECC Root 2020" -# Serial: 72082518505882327255703894282316633856 -# MD5 Fingerprint: c1:ab:fe:6a:10:2c:03:8d:bc:1c:22:32:c0:85:a7:fd -# SHA1 Fingerprint: c0:f8:96:c5:a9:3b:01:06:21:07:da:18:42:48:bc:e9:9d:88:d5:ec -# SHA256 Fingerprint: 57:8a:f4:de:d0:85:3f:4e:59:98:db:4a:ea:f9:cb:ea:8d:94:5f:60:b6:20:a3:8d:1a:3c:13:b2:bc:7b:a8:e1 ------BEGIN CERTIFICATE----- -MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQsw -CQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBH -bWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIw -MB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIzNTk1OVowYzELMAkGA1UEBhMCREUx -JzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkgR21iSDErMCkGA1UE -AwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqGSM49 -AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/O -tdKPD/M12kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDP -f8iAC8GXs7s1J8nCG6NCMEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6f -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cA -MGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZMo7k+5Dck2TOrbRBR2Di -z6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdUga/sf+Rn -27iQ7t0l ------END CERTIFICATE----- - -# Issuer: CN=Telekom Security TLS RSA Root 2023 O=Deutsche Telekom Security GmbH -# Subject: CN=Telekom Security TLS RSA Root 2023 O=Deutsche Telekom Security GmbH -# Label: "Telekom Security TLS RSA Root 2023" -# Serial: 44676229530606711399881795178081572759 -# MD5 Fingerprint: bf:5b:eb:54:40:cd:48:71:c4:20:8d:7d:de:0a:42:f2 -# SHA1 Fingerprint: 54:d3:ac:b3:bd:57:56:f6:85:9d:ce:e5:c3:21:e2:d4:ad:83:d0:93 -# SHA256 Fingerprint: ef:c6:5c:ad:bb:59:ad:b6:ef:e8:4d:a2:23:11:b3:56:24:b7:1b:3b:1e:a0:da:8b:66:55:17:4e:c8:97:86:46 ------BEGIN CERTIFICATE----- -MIIFszCCA5ugAwIBAgIQIZxULej27HF3+k7ow3BXlzANBgkqhkiG9w0BAQwFADBj -MQswCQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0 -eSBHbWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBSU0EgUm9vdCAy -MDIzMB4XDTIzMDMyODEyMTY0NVoXDTQ4MDMyNzIzNTk1OVowYzELMAkGA1UEBhMC -REUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkgR21iSDErMCkG -A1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgUlNBIFJvb3QgMjAyMzCCAiIwDQYJ -KoZIhvcNAQEBBQADggIPADCCAgoCggIBAO01oYGA88tKaVvC+1GDrib94W7zgRJ9 -cUD/h3VCKSHtgVIs3xLBGYSJwb3FKNXVS2xE1kzbB5ZKVXrKNoIENqil/Cf2SfHV -cp6R+SPWcHu79ZvB7JPPGeplfohwoHP89v+1VmLhc2o0mD6CuKyVU/QBoCcHcqMA -U6DksquDOFczJZSfvkgdmOGjup5czQRxUX11eKvzWarE4GC+j4NSuHUaQTXtvPM6 -Y+mpFEXX5lLRbtLevOP1Czvm4MS9Q2QTps70mDdsipWol8hHD/BeEIvnHRz+sTug -BTNoBUGCwQMrAcjnj02r6LX2zWtEtefdi+zqJbQAIldNsLGyMcEWzv/9FIS3R/qy -8XDe24tsNlikfLMR0cN3f1+2JeANxdKz+bi4d9s3cXFH42AYTyS2dTd4uaNir73J -co4vzLuu2+QVUhkHM/tqty1LkCiCc/4YizWN26cEar7qwU02OxY2kTLvtkCJkUPg -8qKrBC7m8kwOFjQgrIfBLX7JZkcXFBGk8/ehJImr2BrIoVyxo/eMbcgByU/J7MT8 -rFEz0ciD0cmfHdRHNCk+y7AO+oMLKFjlKdw/fKifybYKu6boRhYPluV75Gp6SG12 -mAWl3G0eQh5C2hrgUve1g8Aae3g1LDj1H/1Joy7SWWO/gLCMk3PLNaaZlSJhZQNg -+y+TS/qanIA7AgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtqeX -gj10hZv3PJ+TmpV5dVKMbUcwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS2 -p5eCPXSFm/c8n5OalXl1UoxtRzANBgkqhkiG9w0BAQwFAAOCAgEAqMxhpr51nhVQ -pGv7qHBFfLp+sVr8WyP6Cnf4mHGCDG3gXkaqk/QeoMPhk9tLrbKmXauw1GLLXrtm -9S3ul0A8Yute1hTWjOKWi0FpkzXmuZlrYrShF2Y0pmtjxrlO8iLpWA1WQdH6DErw -M807u20hOq6OcrXDSvvpfeWxm4bu4uB9tPcy/SKE8YXJN3nptT+/XOR0so8RYgDd -GGah2XsjX/GO1WfoVNpbOms2b/mBsTNHM3dA+VKq3dSDz4V4mZqTuXNnQkYRIer+ -CqkbGmVps4+uFrb2S1ayLfmlyOw7YqPta9BO1UAJpB+Y1zqlklkg5LB9zVtzaL1t -xKITDmcZuI1CfmwMmm6gJC3VRRvcxAIU/oVbZZfKTpBQCHpCNfnqwmbU+AGuHrS+ -w6jv/naaoqYfRvaE7fzbzsQCzndILIyy7MMAo+wsVRjBfhnu4S/yrYObnqsZ38aK -L4x35bcF7DvB7L6Gs4a8wPfc5+pbrrLMtTWGS9DiP7bY+A4A7l3j941Y/8+LN+lj -X273CXE2whJdV/LItM3z7gLfEdxquVeEHVlNjM7IDiPCtyaaEBRx/pOyiriA8A4Q -ntOoUAw3gi/q4Iqd4Sw5/7W0cwDk90imc6y/st53BIe0o82bNSQ3+pCTE4FCxpgm -dTdmQRCsu/WU48IxK63nI1bMNSWSs1A= ------END CERTIFICATE----- - -# Issuer: CN=TWCA CYBER Root CA O=TAIWAN-CA OU=Root CA -# Subject: CN=TWCA CYBER Root CA O=TAIWAN-CA OU=Root CA -# Label: "TWCA CYBER Root CA" -# Serial: 85076849864375384482682434040119489222 -# MD5 Fingerprint: 0b:33:a0:97:52:95:d4:a9:fd:bb:db:6e:a3:55:5b:51 -# SHA1 Fingerprint: f6:b1:1c:1a:83:38:e9:7b:db:b3:a8:c8:33:24:e0:2d:9c:7f:26:66 -# SHA256 Fingerprint: 3f:63:bb:28:14:be:17:4e:c8:b6:43:9c:f0:8d:6d:56:f0:b7:c4:05:88:3a:56:48:a3:34:42:4d:6b:3e:c5:58 ------BEGIN CERTIFICATE----- -MIIFjTCCA3WgAwIBAgIQQAE0jMIAAAAAAAAAATzyxjANBgkqhkiG9w0BAQwFADBQ -MQswCQYDVQQGEwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290 -IENBMRswGQYDVQQDExJUV0NBIENZQkVSIFJvb3QgQ0EwHhcNMjIxMTIyMDY1NDI5 -WhcNNDcxMTIyMTU1OTU5WjBQMQswCQYDVQQGEwJUVzESMBAGA1UEChMJVEFJV0FO -LUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NBIENZQkVSIFJvb3Qg -Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG+Moe2Qkgfh1sTs6P -40czRJzHyWmqOlt47nDSkvgEs1JSHWdyKKHfi12VCv7qze33Kc7wb3+szT3vsxxF -avcokPFhV8UMxKNQXd7UtcsZyoC5dc4pztKFIuwCY8xEMCDa6pFbVuYdHNWdZsc/ -34bKS1PE2Y2yHer43CdTo0fhYcx9tbD47nORxc5zb87uEB8aBs/pJ2DFTxnk684i -JkXXYJndzk834H/nY62wuFm40AZoNWDTNq5xQwTxaWV4fPMf88oon1oglWa0zbfu -j3ikRRjpJi+NmykosaS3Om251Bw4ckVYsV7r8Cibt4LK/c/WMw+f+5eesRycnupf -Xtuq3VTpMCEobY5583WSjCb+3MX2w7DfRFlDo7YDKPYIMKoNM+HvnKkHIuNZW0CP -2oi3aQiotyMuRAlZN1vH4xfyIutuOVLF3lSnmMlLIJXcRolftBL5hSmO68gnFSDA -S9TMfAxsNAwmmyYxpjyn9tnQS6Jk/zuZQXLB4HCX8SS7K8R0IrGsayIyJNN4KsDA -oS/xUgXJP+92ZuJF2A09rZXIx4kmyA+upwMu+8Ff+iDhcK2wZSA3M2Cw1a/XDBzC -kHDXShi8fgGwsOsVHkQGzaRP6AzRwyAQ4VRlnrZR0Bp2a0JaWHY06rc3Ga4udfmW -5cFZ95RXKSWNOkyrTZpB0F8mAwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSdhWEUfMFib5do5E83QOGt4A1WNzAd -BgNVHQ4EFgQUnYVhFHzBYm+XaORPN0DhreANVjcwDQYJKoZIhvcNAQEMBQADggIB -AGSPesRiDrWIzLjHhg6hShbNcAu3p4ULs3a2D6f/CIsLJc+o1IN1KriWiLb73y0t -tGlTITVX1olNc79pj3CjYcya2x6a4CD4bLubIp1dhDGaLIrdaqHXKGnK/nZVekZn -68xDiBaiA9a5F/gZbG0jAn/xX9AKKSM70aoK7akXJlQKTcKlTfjF/biBzysseKNn -TKkHmvPfXvt89YnNdJdhEGoHK4Fa0o635yDRIG4kqIQnoVesqlVYL9zZyvpoBJ7t -RCT5dEA7IzOrg1oYJkK2bVS1FmAwbLGg+LhBoF1JSdJlBTrq/p1hvIbZv97Tujqx -f36SNI7JAG7cmL3c7IAFrQI932XtCwP39xaEBDG6k5TY8hL4iuO/Qq+n1M0RFxbI -Qh0UqEL20kCGoE8jypZFVmAGzbdVAaYBlGX+bgUJurSkquLvWL69J1bY73NxW0Qz -8ppy6rBePm6pUlvscG21h483XjyMnM7k8M4MZ0HMzvaAq07MTFb1wWFZk7Q+ptq4 -NxKfKjLji7gh7MMrZQzvIt6IKTtM1/r+t+FHvpw+PoP7UV31aPcuIYXcv/Fa4nzX -xeSDwWrruoBa3lwtcHb4yOWHh8qgnaHlIhInD0Q9HWzq1MKLL295q39QpsQZp6F6 -t5b5wR9iWqJDB0BeJsas7a5wFsWqynKKTbDPAYsDP27X ------END CERTIFICATE----- - -# Issuer: CN=SecureSign Root CA12 O=Cybertrust Japan Co., Ltd. -# Subject: CN=SecureSign Root CA12 O=Cybertrust Japan Co., Ltd. -# Label: "SecureSign Root CA12" -# Serial: 587887345431707215246142177076162061960426065942 -# MD5 Fingerprint: c6:89:ca:64:42:9b:62:08:49:0b:1e:7f:e9:07:3d:e8 -# SHA1 Fingerprint: 7a:22:1e:3d:de:1b:06:ac:9e:c8:47:70:16:8e:3c:e5:f7:6b:06:f4 -# SHA256 Fingerprint: 3f:03:4b:b5:70:4d:44:b2:d0:85:45:a0:20:57:de:93:eb:f3:90:5f:ce:72:1a:cb:c7:30:c0:6d:da:ee:90:4e ------BEGIN CERTIFICATE----- -MIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQEL -BQAwUTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28u -LCBMdGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgw -NTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpD -eWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBS -b290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3emhF -KxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mt -p7JIKwccJ/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zd -J1M3s6oYwlkm7Fsf0uZlfO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gur -FzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBFEaCeVESE99g2zvVQR9wsMJvuwPWW0v4J -hscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1UefNzFJM3IFTQy2VYzxV4+K -h9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD -AgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsF -AAOCAQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6Ld -mmQOmFxv3Y67ilQiLUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJ -mBClnW8Zt7vPemVV2zfrPIpyMpcemik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA -8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPSvWKErI4cqc1avTc7bgoitPQV -55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhgaaaI5gdka9at/ -yOPiZwud9AzqVN/Ssq+xIvEg37xEHA== ------END CERTIFICATE----- - -# Issuer: CN=SecureSign Root CA14 O=Cybertrust Japan Co., Ltd. -# Subject: CN=SecureSign Root CA14 O=Cybertrust Japan Co., Ltd. -# Label: "SecureSign Root CA14" -# Serial: 575790784512929437950770173562378038616896959179 -# MD5 Fingerprint: 71:0d:72:fa:92:19:65:5e:89:04:ac:16:33:f0:bc:d5 -# SHA1 Fingerprint: dd:50:c0:f7:79:b3:64:2e:74:a2:b8:9d:9f:d3:40:dd:bb:f0:f2:4f -# SHA256 Fingerprint: 4b:00:9c:10:34:49:4f:9a:b5:6b:ba:3b:a1:d6:27:31:fc:4d:20:d8:95:5a:dc:ec:10:a9:25:60:72:61:e3:38 ------BEGIN CERTIFICATE----- -MIIFcjCCA1qgAwIBAgIUZNtaDCBO6Ncpd8hQJ6JaJ90t8sswDQYJKoZIhvcNAQEM -BQAwUTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28u -LCBMdGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExNDAeFw0yMDA0MDgw -NzA2MTlaFw00NTA0MDgwNzA2MTlaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpD -eWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBS -b290IENBMTQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF0nqh1oq/ -FjHQmNE6lPxauG4iwWL3pwon71D2LrGeaBLwbCRjOfHw3xDG3rdSINVSW0KZnvOg -vlIfX8xnbacuUKLBl422+JX1sLrcneC+y9/3OPJH9aaakpUqYllQC6KxNedlsmGy -6pJxaeQp8E+BgQQ8sqVb1MWoWWd7VRxJq3qdwudzTe/NCcLEVxLbAQ4jeQkHO6Lo -/IrPj8BGJJw4J+CDnRugv3gVEOuGTgpa/d/aLIJ+7sr2KeH6caH3iGicnPCNvg9J -kdjqOvn90Ghx2+m1K06Ckm9mH+Dw3EzsytHqunQG+bOEkJTRX45zGRBdAuVwpcAQ -0BB8b8VYSbSwbprafZX1zNoCr7gsfXmPvkPx+SgojQlD+Ajda8iLLCSxjVIHvXib -y8posqTdDEx5YMaZ0ZPxMBoH064iwurO8YQJzOAUbn8/ftKChazcqRZOhaBgy/ac -18izju3Gm5h1DVXoX+WViwKkrkMpKBGk5hIwAUt1ax5mnXkvpXYvHUC0bcl9eQjs -0Wq2XSqypWa9a4X0dFbD9ed1Uigspf9mR6XU/v6eVL9lfgHWMI+lNpyiUBzuOIAB -SMbHdPTGrMNASRZhdCyvjG817XsYAFs2PJxQDcqSMxDxJklt33UkN4Ii1+iW/RVL -ApY+B3KVfqs9TC7XyvDf4Fg/LS8EmjijAQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBpOjCl4oaTeqYR3r6/wtbyPk -86AwDQYJKoZIhvcNAQEMBQADggIBAJaAcgkGfpzMkwQWu6A6jZJOtxEaCnFxEM0E -rX+lRVAQZk5KQaID2RFPeje5S+LGjzJmdSX7684/AykmjbgWHfYfM25I5uj4V7Ib -ed87hwriZLoAymzvftAj63iP/2SbNDefNWWipAA9EiOWWF3KY4fGoweITedpdopT -zfFP7ELyk+OZpDc8h7hi2/DsHzc/N19DzFGdtfCXwreFamgLRB7lUe6TzktuhsHS -DCRZNhqfLJGP4xjblJUK7ZGqDpncllPjYYPGFrojutzdfhrGe0K22VoF3Jpf1d+4 -2kd92jjbrDnVHmtsKheMYc2xbXIBw8MgAGJoFjHVdqqGuw6qnsb58Nn4DSEC5MUo -FlkRudlpcyqSeLiSV5sI8jrlL5WwWLdrIBRtFO8KvH7YVdiI2i/6GaX7i+B/OfVy -K4XELKzvGUWSTLNhB9xNH27SgRNcmvMSZ4PPmz+Ln52kuaiWA3rF7iDeM9ovnhp6 -dB7h7sxaOgTdsxoEqBRjrLdHEoOabPXm6RUVkRqEGQ6UROcSjiVbgGcZ3GOTEAtl -Lor6CZpO2oYofaphNdgOpygau1LgePhsumywbrmHXumZNTfxPWQrqaA0k89jL9WB -365jJ6UeTo3cKXhZ+PmhIIynJkBugnLNeLLIjzwec+fBH7/PzqUqm9tEZDKgu39c -JRNItX+S ------END CERTIFICATE----- - -# Issuer: CN=SecureSign Root CA15 O=Cybertrust Japan Co., Ltd. -# Subject: CN=SecureSign Root CA15 O=Cybertrust Japan Co., Ltd. -# Label: "SecureSign Root CA15" -# Serial: 126083514594751269499665114766174399806381178503 -# MD5 Fingerprint: 13:30:fc:c4:62:a6:a9:de:b5:c1:68:af:b5:d2:31:47 -# SHA1 Fingerprint: cb:ba:83:c8:c1:5a:5d:f1:f9:73:6f:ca:d7:ef:28:13:06:4a:07:7d -# SHA256 Fingerprint: e7:78:f0:f0:95:fe:84:37:29:cd:1a:00:82:17:9e:53:14:a9:c2:91:44:28:05:e1:fb:1d:8f:b6:b8:88:6c:3a ------BEGIN CERTIFICATE----- -MIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMw -UTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBM -dGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMy -NTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpDeWJl -cnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBSb290 -IENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5GdCx4 -wCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSR -ZHX+AezB2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMB -Af8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT -9DAKBggqhkjOPQQDAwNoADBlAjEA2S6Jfl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp -4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJSwdLZrWeqrqgHkHZAXQ6 -bkU6iYAZezKYVWOr62Nuk22rGwlgMU4= ------END CERTIFICATE----- - -# Issuer: CN=D-TRUST BR Root CA 2 2023 O=D-Trust GmbH -# Subject: CN=D-TRUST BR Root CA 2 2023 O=D-Trust GmbH -# Label: "D-TRUST BR Root CA 2 2023" -# Serial: 153168538924886464690566649552453098598 -# MD5 Fingerprint: e1:09:ed:d3:60:d4:56:1b:47:1f:b7:0c:5f:1b:5f:85 -# SHA1 Fingerprint: 2d:b0:70:ee:71:94:af:69:68:17:db:79:ce:58:9f:a0:6b:96:f7:87 -# SHA256 Fingerprint: 05:52:e6:f8:3f:df:65:e8:fa:96:70:e6:66:df:28:a4:e2:13:40:b5:10:cb:e5:25:66:f9:7c:4f:b9:4b:2b:d1 ------BEGIN CERTIFICATE----- -MIIFqTCCA5GgAwIBAgIQczswBEhb2U14LnNLyaHcZjANBgkqhkiG9w0BAQ0FADBI -MQswCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlE -LVRSVVNUIEJSIFJvb3QgQ0EgMiAyMDIzMB4XDTIzMDUwOTA4NTYzMVoXDTM4MDUw -OTA4NTYzMFowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEi -MCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDIgMjAyMzCCAiIwDQYJKoZIhvcN -AQEBBQADggIPADCCAgoCggIBAK7/CVmRgApKaOYkP7in5Mg6CjoWzckjYaCTcfKr -i3OPoGdlYNJUa2NRb0kz4HIHE304zQaSBylSa053bATTlfrdTIzZXcFhfUvnKLNE -gXtRr90zsWh81k5M/itoucpmacTsXld/9w3HnDY25QdgrMBM6ghs7wZ8T1soegj8 -k12b9py0i4a6Ibn08OhZWiihNIQaJZG2tY/vsvmA+vk9PBFy2OMvhnbFeSzBqZCT -Rphny4NqoFAjpzv2gTng7fC5v2Xx2Mt6++9zA84A9H3X4F07ZrjcjrqDy4d2A/wl -2ecjbwb9Z/Pg/4S8R7+1FhhGaRTMBffb00msa8yr5LULQyReS2tNZ9/WtT5PeB+U -cSTq3nD88ZP+npNa5JRal1QMNXtfbO4AHyTsA7oC9Xb0n9Sa7YUsOCIvx9gvdhFP -/Wxc6PWOJ4d/GUohR5AdeY0cW/jPSoXk7bNbjb7EZChdQcRurDhaTyN0dKkSw/bS -uREVMweR2Ds3OmMwBtHFIjYoYiMQ4EbMl6zWK11kJNXuHA7e+whadSr2Y23OC0K+ -0bpwHJwh5Q8xaRfX/Aq03u2AnMuStIv13lmiWAmlY0cL4UEyNEHZmrHZqLAbWt4N -DfTisl01gLmB1IRpkQLLddCNxbU9CZEJjxShFHR5PtbJFR2kWVki3PaKRT08EtY+ -XTIvAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUZ5Dw1t61 -GNVGKX5cq/ieCLxklRAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRCMEAwPqA8oDqG -OGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfYnJfcm9vdF9jYV8y -XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA097N3U9swFrktpSHxQCF16+tI -FoE9c+CeJyrrd6kTpGoKWloUMz1oH4Guaf2Mn2VsNELZLdB/eBaxOqwjMa1ef67n -riv6uvw8l5VAk1/DLQOj7aRvU9f6QA4w9QAgLABMjDu0ox+2v5Eyq6+SmNMW5tTR -VFxDWy6u71cqqLRvpO8NVhTaIasgdp4D/Ca4nj8+AybmTNudX0KEPUUDAxxZiMrc -LmEkWqTqJwtzEr5SswrPMhfiHocaFpVIbVrg0M8JkiZmkdijYQ6qgYF/6FKC0ULn -4B0Y+qSFNueG4A3rvNTJ1jxD8V1Jbn6Bm2m1iWKPiFLY1/4nwSPFyysCu7Ff/vtD -hQNGvl3GyiEm/9cCnnRK3PgTFbGBVzbLZVzRHTF36SXDw7IyN9XxmAnkbWOACKsG -koHU6XCPpz+y7YaMgmo1yEJagtFSGkUPFaUA8JR7ZSdXOUPPfH/mvTWze/EZTN46 -ls/pdu4D58JDUjxqgejBWoC9EV2Ta/vH5mQ/u2kc6d0li690yVRAysuTEwrt+2aS -Ecr1wPrYg1UDfNPFIkZ1cGt5SAYqgpq/5usWDiJFAbzdNpQ0qTUmiteXue4Icr80 -knCDgKs4qllo3UCkGJCy89UDyibK79XH4I9TjvAA46jtn/mtd+ArY0+ew+43u3gJ -hJ65bvspmZDogNOfJA== ------END CERTIFICATE----- - -# Issuer: CN=TrustAsia TLS ECC Root CA O=TrustAsia Technologies, Inc. -# Subject: CN=TrustAsia TLS ECC Root CA O=TrustAsia Technologies, Inc. -# Label: "TrustAsia TLS ECC Root CA" -# Serial: 310892014698942880364840003424242768478804666567 -# MD5 Fingerprint: 09:48:04:77:d2:fc:65:93:71:66:b1:11:95:4f:06:8c -# SHA1 Fingerprint: b5:ec:39:f3:a1:66:37:ae:c3:05:94:57:e2:be:11:be:b7:a1:7f:36 -# SHA256 Fingerprint: c0:07:6b:9e:f0:53:1f:b1:a6:56:d6:7c:4e:be:97:cd:5d:ba:a4:1e:f4:45:98:ac:c2:48:98:78:c9:2d:87:11 ------BEGIN CERTIFICATE----- -MIICMTCCAbegAwIBAgIUNnThTXxlE8msg1UloD5Sfi9QaMcwCgYIKoZIzj0EAwMw -WDELMAkGA1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dpZXMs -IEluYy4xIjAgBgNVBAMTGVRydXN0QXNpYSBUTFMgRUNDIFJvb3QgQ0EwHhcNMjQw -NTE1MDU0MTU2WhcNNDQwNTE1MDU0MTU1WjBYMQswCQYDVQQGEwJDTjElMCMGA1UE -ChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywgSW5jLjEiMCAGA1UEAxMZVHJ1c3RB -c2lhIFRMUyBFQ0MgUm9vdCBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABLh/pVs/ -AT598IhtrimY4ZtcU5nb9wj/1WrgjstEpvDBjL1P1M7UiFPoXlfXTr4sP/MSpwDp -guMqWzJ8S5sUKZ74LYO1644xST0mYekdcouJtgq7nDM1D9rs3qlKH8kzsaNCMEAw -DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQULIVTu7FDzTLqnqOH/qKYqKaT6RAw -DgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMFRH18MtYYZI9HlaVQ01 -L18N9mdsd0AaRuf4aFtOJx24mH1/k78ITcTaRTChD15KeAIxAKORh/IRM4PDwYqR -OkwrULG9IpRdNYlzg8WbGf60oenUoWa2AaU2+dhoYSi3dOGiMQ== ------END CERTIFICATE----- - -# Issuer: CN=TrustAsia TLS RSA Root CA O=TrustAsia Technologies, Inc. -# Subject: CN=TrustAsia TLS RSA Root CA O=TrustAsia Technologies, Inc. -# Label: "TrustAsia TLS RSA Root CA" -# Serial: 160405846464868906657516898462547310235378010780 -# MD5 Fingerprint: 3b:9e:c3:86:0f:34:3c:6b:c5:46:c4:8e:1d:e7:19:12 -# SHA1 Fingerprint: a5:46:50:c5:62:ea:95:9a:1a:a7:04:6f:17:58:c7:29:53:3d:03:fa -# SHA256 Fingerprint: 06:c0:8d:7d:af:d8:76:97:1e:b1:12:4f:e6:7f:84:7e:c0:c7:a1:58:d3:ea:53:cb:e9:40:e2:ea:97:91:f4:c3 ------BEGIN CERTIFICATE----- -MIIFgDCCA2igAwIBAgIUHBjYz+VTPyI1RlNUJDxsR9FcSpwwDQYJKoZIhvcNAQEM -BQAwWDELMAkGA1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dp -ZXMsIEluYy4xIjAgBgNVBAMTGVRydXN0QXNpYSBUTFMgUlNBIFJvb3QgQ0EwHhcN -MjQwNTE1MDU0MTU3WhcNNDQwNTE1MDU0MTU2WjBYMQswCQYDVQQGEwJDTjElMCMG -A1UEChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywgSW5jLjEiMCAGA1UEAxMZVHJ1 -c3RBc2lhIFRMUyBSU0EgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC -AgoCggIBAMMWuBtqpERz5dZO9LnPWwvB0ZqB9WOwj0PBuwhaGnrhB3YmH49pVr7+ -NmDQDIPNlOrnxS1cLwUWAp4KqC/lYCZUlviYQB2srp10Zy9U+5RjmOMmSoPGlbYJ -Q1DNDX3eRA5gEk9bNb2/mThtfWza4mhzH/kxpRkQcwUqwzIZheo0qt1CHjCNP561 -HmHVb70AcnKtEj+qpklz8oYVlQwQX1Fkzv93uMltrOXVmPGZLmzjyUT5tUMnCE32 -ft5EebuyjBza00tsLtbDeLdM1aTk2tyKjg7/D8OmYCYozza/+lcK7Fs/6TAWe8Tb -xNRkoDD75f0dcZLdKY9BWN4ArTr9PXwaqLEX8E40eFgl1oUh63kd0Nyrz2I8sMeX -i9bQn9P+PN7F4/w6g3CEIR0JwqH8uyghZVNgepBtljhb//HXeltt08lwSUq6HTrQ -UNoyIBnkiz/r1RYmNzz7dZ6wB3C4FGB33PYPXFIKvF1tjVEK2sUYyJtt3LCDs3+j -TnhMmCWr8n4uIF6CFabW2I+s5c0yhsj55NqJ4js+k8UTav/H9xj8Z7XvGCxUq0DT -bE3txci3OE9kxJRMT6DNrqXGJyV1J23G2pyOsAWZ1SgRxSHUuPzHlqtKZFlhaxP8 -S8ySpg+kUb8OWJDZgoM5pl+z+m6Ss80zDoWo8SnTq1mt1tve1CuBAgMBAAGjQjBA -MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFLgHkXlcBvRG/XtZylomkadFK/hT -MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQwFAAOCAgEAIZtqBSBdGBanEqT3 -Rz/NyjuujsCCztxIJXgXbODgcMTWltnZ9r96nBO7U5WS/8+S4PPFJzVXqDuiGev4 -iqME3mmL5Dw8veWv0BIb5Ylrc5tvJQJLkIKvQMKtuppgJFqBTQUYo+IzeXoLH5Pt -7DlK9RME7I10nYEKqG/odv6LTytpEoYKNDbdgptvT+Bz3Ul/KD7JO6NXBNiT2Twp -2xIQaOHEibgGIOcberyxk2GaGUARtWqFVwHxtlotJnMnlvm5P1vQiJ3koP26TpUJ -g3933FEFlJ0gcXax7PqJtZwuhfG5WyRasQmr2soaB82G39tp27RIGAAtvKLEiUUj -pQ7hRGU+isFqMB3iYPg6qocJQrmBktwliJiJ8Xw18WLK7nn4GS/+X/jbh87qqA8M -pugLoDzga5SYnH+tBuYc6kIQX+ImFTw3OffXvO645e8D7r0i+yiGNFjEWn9hongP -XvPKnbwbPKfILfanIhHKA9jnZwqKDss1jjQ52MjqjZ9k4DewbNfFj8GQYSbbJIwe -SsCI3zWQzj8C9GRh3sfIB5XeMhg6j6JCQCTl1jNdfK7vsU1P1FeQNWrcrgSXSYk0 -ly4wBOeY99sLAZDBHwo/+ML+TvrbmnNzFrwFuHnYWa8G5z9nODmxfKuU4CkUpijy -323imttUQ/hHWKNddBWcwauwxzQ= ------END CERTIFICATE----- - -# Issuer: CN=D-TRUST EV Root CA 2 2023 O=D-Trust GmbH -# Subject: CN=D-TRUST EV Root CA 2 2023 O=D-Trust GmbH -# Label: "D-TRUST EV Root CA 2 2023" -# Serial: 139766439402180512324132425437959641711 -# MD5 Fingerprint: 96:b4:78:09:f0:09:cb:77:eb:bb:1b:4d:6f:36:bc:b6 -# SHA1 Fingerprint: a5:5b:d8:47:6c:8f:19:f7:4c:f4:6d:6b:b6:c2:79:82:22:df:54:8b -# SHA256 Fingerprint: 8e:82:21:b2:e7:d4:00:78:36:a1:67:2f:0d:cc:29:9c:33:bc:07:d3:16:f1:32:fa:1a:20:6d:58:71:50:f1:ce ------BEGIN CERTIFICATE----- -MIIFqTCCA5GgAwIBAgIQaSYJfoBLTKCnjHhiU19abzANBgkqhkiG9w0BAQ0FADBI -MQswCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlE -LVRSVVNUIEVWIFJvb3QgQ0EgMiAyMDIzMB4XDTIzMDUwOTA5MTAzM1oXDTM4MDUw -OTA5MTAzMlowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEi -MCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDIgMjAyMzCCAiIwDQYJKoZIhvcN -AQEBBQADggIPADCCAgoCggIBANiOo4mAC7JXUtypU0w3uX9jFxPvp1sjW2l1sJkK -F8GLxNuo4MwxusLyzV3pt/gdr2rElYfXR8mV2IIEUD2BCP/kPbOx1sWy/YgJ25yE -7CUXFId/MHibaljJtnMoPDT3mfd/06b4HEV8rSyMlD/YZxBTfiLNTiVR8CUkNRFe -EMbsh2aJgWi6zCudR3Mfvc2RpHJqnKIbGKBv7FD0fUDCqDDPvXPIEysQEx6Lmqg6 -lHPTGGkKSv/BAQP/eX+1SH977ugpbzZMlWGG2Pmic4ruri+W7mjNPU0oQvlFKzIb -RlUWaqZLKfm7lVa/Rh3sHZMdwGWyH6FDrlaeoLGPaxK3YG14C8qKXO0elg6DpkiV -jTujIcSuWMYAsoS0I6SWhjW42J7YrDRJmGOVxcttSEfi8i4YHtAxq9107PncjLgc -jmgjutDzUNzPZY9zOjLHfP7KgiJPvo5iR2blzYfi6NUPGJ/lBHJLRjwQ8kTCZFZx -TnXonMkmdMV9WdEKWw9t/p51HBjGGjp82A0EzM23RWV6sY+4roRIPrN6TagD4uJ+ -ARZZaBhDM7DS3LAaQzXupdqpRlyuhoFBAUp0JuyfBr/CBTdkdXgpaP3F9ev+R/nk -hbDhezGdpn9yo7nELC7MmVcOIQxFAZRl62UJxmMiCzNJkkg8/M3OsD6Onov4/knF -NXJHAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUqvyREBuH -kV8Wub9PS5FeAByxMoAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRCMEAwPqA8oDqG -OGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfcm9vdF9jYV8y -XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQCTy6UfmRHsmg1fLBWTxj++EI14 -QvBukEdHjqOSMo1wj/Zbjb6JzkcBahsgIIlbyIIQbODnmaprxiqgYzWRaoUlrRc4 -pZt+UPJ26oUFKidBK7GB0aL2QHWpDsvxVUjY7NHss+jOFKE17MJeNRqrphYBBo7q -3C+jisosketSjl8MmxfPy3MHGcRqwnNU73xDUmPBEcrCRbH0O1P1aa4846XerOhU -t7KR/aypH/KH5BfGSah82ApB9PI+53c0BFLd6IHyTS9URZ0V4U/M5d40VxDJI3IX -cI1QcB9WbMy5/zpaT2N6w25lBx2Eof+pDGOJbbJAiDnXH3dotfyc1dZnaVuodNv8 -ifYbMvekJKZ2t0dT741Jj6m2g1qllpBFYfXeA08mD6iL8AOWsKwV0HFaanuU5nCT -2vFp4LJiTZ6P/4mdm13NRemUAiKN4DV/6PEEeXFsVIP4M7kFMhtYVRFP0OUnR3Hs -7dpn1mKmS00PaaLJvOwiS5THaJQXfuKOKD62xur1NGyfN4gHONuGcfrNlUhDbqNP -gofXNJhuS5N5YHVpD/Aa1VP6IQzCP+k/HxiMkl14p3ZnGbuy6n/pcAlWVqOwDAst -Nl7F6cTVg8uGF5csbBNvh1qvSaYd2804BC5f4ko1Di1L+KIkBI3Y4WNeApI02phh -XBxvWHZks/wCuPWdCg== ------END CERTIFICATE----- - -# Issuer: CN=SwissSign RSA TLS Root CA 2022 - 1 O=SwissSign AG -# Subject: CN=SwissSign RSA TLS Root CA 2022 - 1 O=SwissSign AG -# Label: "SwissSign RSA TLS Root CA 2022 - 1" -# Serial: 388078645722908516278762308316089881486363258315 -# MD5 Fingerprint: 16:2e:e4:19:76:81:85:ba:8e:91:58:f1:15:ef:72:39 -# SHA1 Fingerprint: 81:34:0a:be:4c:cd:ce:cc:e7:7d:cc:8a:d4:57:e2:45:a0:77:5d:ce -# SHA256 Fingerprint: 19:31:44:f4:31:e0:fd:db:74:07:17:d4:de:92:6a:57:11:33:88:4b:43:60:d3:0e:27:29:13:cb:e6:60:ce:41 ------BEGIN CERTIFICATE----- -MIIFkzCCA3ugAwIBAgIUQ/oMX04bgBhE79G0TzUfRPSA7cswDQYJKoZIhvcNAQEL -BQAwUTELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzErMCkGA1UE -AxMiU3dpc3NTaWduIFJTQSBUTFMgUm9vdCBDQSAyMDIyIC0gMTAeFw0yMjA2MDgx -MTA4MjJaFw00NzA2MDgxMTA4MjJaMFExCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxT -d2lzc1NpZ24gQUcxKzApBgNVBAMTIlN3aXNzU2lnbiBSU0EgVExTIFJvb3QgQ0Eg -MjAyMiAtIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDLKmjiC8NX -vDVjvHClO/OMPE5Xlm7DTjak9gLKHqquuN6orx122ro10JFwB9+zBvKK8i5VUXu7 -LCTLf5ImgKO0lPaCoaTo+nUdWfMHamFk4saMla+ju45vVs9xzF6BYQ1t8qsCLqSX -5XH8irCRIFucdFJtrhUnWXjyCcplDn/L9Ovn3KlMd/YrFgSVrpxxpT8q2kFC5zyE -EPThPYxr4iuRR1VPuFa+Rd4iUU1OKNlfGUEGjw5NBuBwQCMBauTLE5tzrE0USJIt -/m2n+IdreXXhvhCxqohAWVTXz8TQm0SzOGlkjIHRI36qOTw7D59Ke4LKa2/KIj4x -0LDQKhySio/YGZxH5D4MucLNvkEM+KRHBdvBFzA4OmnczcNpI/2aDwLOEGrOyvi5 -KaM2iYauC8BPY7kGWUleDsFpswrzd34unYyzJ5jSmY0lpx+Gs6ZUcDj8fV3oT4MM -0ZPlEuRU2j7yrTrePjxF8CgPBrnh25d7mUWe3f6VWQQvdT/TromZhqwUtKiE+shd -OxtYk8EXlFXIC+OCeYSf8wCENO7cMdWP8vpPlkwGqnj73mSiI80fPsWMvDdUDrta -clXvyFu1cvh43zcgTFeRc5JzrBh3Q4IgaezprClG5QtO+DdziZaKHG29777YtvTK -wP1H8K4LWCDFyB02rpeNUIMmJCn3nTsPBQIDAQABo2MwYTAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBRvjmKLk0Ow4UD2p8P98Q+4 -DxU4pTAdBgNVHQ4EFgQUb45ii5NDsOFA9qfD/fEPuA8VOKUwDQYJKoZIhvcNAQEL -BQADggIBAKwsKUF9+lz1GpUYvyypiqkkVHX1uECry6gkUSsYP2OprphWKwVDIqO3 -10aewCoSPY6WlkDfDDOLazeROpW7OSltwAJsipQLBwJNGD77+3v1dj2b9l4wBlgz -Hqp41eZUBDqyggmNzhYzWUUo8aWjlw5DI/0LIICQ/+Mmz7hkkeUFjxOgdg3XNwwQ -iJb0Pr6VvfHDffCjw3lHC1ySFWPtUnWK50Zpy1FVCypM9fJkT6lc/2cyjlUtMoIc -gC9qkfjLvH4YoiaoLqNTKIftV+Vlek4ASltOU8liNr3CjlvrzG4ngRhZi0Rjn9UM -ZfQpZX+RLOV/fuiJz48gy20HQhFRJjKKLjpHE7iNvUcNCfAWpO2Whi4Z2L6MOuhF -LhG6rlrnub+xzI/goP+4s9GFe3lmozm1O2bYQL7Pt2eLSMkZJVX8vY3PXtpOpvJp -zv1/THfQwUY1mFwjmwJFQ5Ra3bxHrSL+ul4vkSkphnsh3m5kt8sNjzdbowhq6/Td -Ao9QAwKxuDdollDruF/UKIqlIgyKhPBZLtU30WHlQnNYKoH3dtvi4k0NX/a3vgW0 -rk4N3hY9A4GzJl5LuEsAz/+MF7psYC0nhzck5npgL7XTgwSqT0N1osGDsieYK7EO -gLrAhV5Cud+xYJHT6xh+cHiudoO+cVrQkOPKwRYlZ0rwtnu64ZzZ ------END CERTIFICATE----- - -# Issuer: CN=OISTE Server Root ECC G1 O=OISTE Foundation -# Subject: CN=OISTE Server Root ECC G1 O=OISTE Foundation -# Label: "OISTE Server Root ECC G1" -# Serial: 47819833811561661340092227008453318557 -# MD5 Fingerprint: 42:a7:d2:35:ae:02:92:db:19:76:08:de:2f:05:b4:d4 -# SHA1 Fingerprint: 3b:f6:8b:09:ae:2a:92:7b:ba:e3:8d:3f:11:95:d9:e6:44:0c:45:e2 -# SHA256 Fingerprint: ee:c9:97:c0:c3:0f:21:6f:7e:3b:8b:30:7d:2b:ae:42:41:2d:75:3f:c8:21:9d:af:d1:52:0b:25:72:85:0f:49 ------BEGIN CERTIFICATE----- -MIICNTCCAbqgAwIBAgIQI/nD1jWvjyhLH/BU6n6XnTAKBggqhkjOPQQDAzBLMQsw -CQYDVQQGEwJDSDEZMBcGA1UECgwQT0lTVEUgRm91bmRhdGlvbjEhMB8GA1UEAwwY -T0lTVEUgU2VydmVyIFJvb3QgRUNDIEcxMB4XDTIzMDUzMTE0NDIyOFoXDTQ4MDUy -NDE0NDIyN1owSzELMAkGA1UEBhMCQ0gxGTAXBgNVBAoMEE9JU1RFIEZvdW5kYXRp -b24xITAfBgNVBAMMGE9JU1RFIFNlcnZlciBSb290IEVDQyBHMTB2MBAGByqGSM49 -AgEGBSuBBAAiA2IABBcv+hK8rBjzCvRE1nZCnrPoH7d5qVi2+GXROiFPqOujvqQy -cvO2Ackr/XeFblPdreqqLiWStukhEaivtUwL85Zgmjvn6hp4LrQ95SjeHIC6XG4N -2xml4z+cKrhAS93mT6NjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBQ3 -TYhlz/w9itWj8UnATgwQb0K0nDAdBgNVHQ4EFgQUN02IZc/8PYrVo/FJwE4MEG9C -tJwwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2kAMGYCMQCpKjAd0MKfkFFR -QD6VVCHNFmb3U2wIFjnQEnx/Yxvf4zgAOdktUyBFCxxgZzFDJe0CMQCSia7pXGKD -YmH5LVerVrkR3SW+ak5KGoJr3M/TvEqzPNcum9v4KGm8ay3sMaE641c= ------END CERTIFICATE----- - -# Issuer: CN=OISTE Server Root RSA G1 O=OISTE Foundation -# Subject: CN=OISTE Server Root RSA G1 O=OISTE Foundation -# Label: "OISTE Server Root RSA G1" -# Serial: 113845518112613905024960613408179309848 -# MD5 Fingerprint: 23:a7:9e:d4:70:b8:b9:14:57:41:8a:7e:44:59:e2:68 -# SHA1 Fingerprint: f7:00:34:25:94:88:68:31:e4:34:87:3f:70:fe:86:b3:86:9f:f0:6e -# SHA256 Fingerprint: 9a:e3:62:32:a5:18:9f:fd:db:35:3d:fd:26:52:0c:01:53:95:d2:27:77:da:c5:9d:b5:7b:98:c0:89:a6:51:e6 ------BEGIN CERTIFICATE----- -MIIFgzCCA2ugAwIBAgIQVaXZZ5Qoxu0M+ifdWwFNGDANBgkqhkiG9w0BAQwFADBL -MQswCQYDVQQGEwJDSDEZMBcGA1UECgwQT0lTVEUgRm91bmRhdGlvbjEhMB8GA1UE -AwwYT0lTVEUgU2VydmVyIFJvb3QgUlNBIEcxMB4XDTIzMDUzMTE0MzcxNloXDTQ4 -MDUyNDE0MzcxNVowSzELMAkGA1UEBhMCQ0gxGTAXBgNVBAoMEE9JU1RFIEZvdW5k -YXRpb24xITAfBgNVBAMMGE9JU1RFIFNlcnZlciBSb290IFJTQSBHMTCCAiIwDQYJ -KoZIhvcNAQEBBQADggIPADCCAgoCggIBAKqu9KuCz/vlNwvn1ZatkOhLKdxVYOPM -vLO8LZK55KN68YG0nnJyQ98/qwsmtO57Gmn7KNByXEptaZnwYx4M0rH/1ow00O7b -rEi56rAUjtgHqSSY3ekJvqgiG1k50SeH3BzN+Puz6+mTeO0Pzjd8JnduodgsIUzk -ik/HEzxux9UTl7Ko2yRpg1bTacuCErudG/L4NPKYKyqOBGf244ehHa1uzjZ0Dl4z -O8vbUZeUapU8zhhabkvG/AePLhq5SvdkNCncpo1Q4Y2LS+VIG24ugBA/5J8bZT8R -tOpXaZ+0AOuFJJkk9SGdl6r7NH8CaxWQrbueWhl/pIzY+m0o/DjH40ytas7ZTpOS -jswMZ78LS5bOZmdTaMsXEY5Z96ycG7mOaES3GK/m5Q9l3JUJsJMStR8+lKXHiHUh -sd4JJCpM4rzsTGdHwimIuQq6+cF0zowYJmXa92/GjHtoXAvuY8BeS/FOzJ8vD+Ho -mnqT8eDI278n5mUpezbgMxVz8p1rhAhoKzYHKyfMeNhqhw5HdPSqoBNdZH702xSu -+zrkL8Fl47l6QGzwBrd7KJvX4V84c5Ss2XCTLdyEr0YconosP4EmQufU2MVshGYR -i3drVByjtdgQ8K4p92cIiBdcuJd5z+orKu5YM+Vt6SmqZQENghPsJQtdLEByFSnT -kCz3GkPVavBpAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -8snBDw1jALvsRQ5KH7WxszbNDo0wHQYDVR0OBBYEFPLJwQ8NYwC77EUOSh+1sbM2 -zQ6NMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQwFAAOCAgEANGd5sjrG5T33 -I3K5Ce+SrScfoE4KsvXaFwyihdJ+klH9FWXXXGtkFu6KRcoMQzZENdl//nk6HOjG -5D1rd9QhEOP28yBOqb6J8xycqd+8MDoX0TJD0KqKchxRKEzdNsjkLWd9kYccnbz8 -qyiWXmFcuCIzGEgWUOrKL+mlSdx/PKQZvDatkuK59EvV6wit53j+F8Bdh3foZ3dP -AGav9LEDOr4SfEE15fSmG0eLy3n31r8Xbk5l8PjaV8GUgeV6Vg27Rn9vkf195hfk -gSe7BYhW3SCl95gtkRlpMV+bMPKZrXJAlszYd2abtNUOshD+FKrDgHGdPY3ofRRs -YWSGRqbXVMW215AWRqWFyp464+YTFrYVI8ypKVL9AMb2kI5Wj4kI3Zaq5tNqqYY1 -9tVFeEJKRvwDyF7YZvZFZSS0vod7VSCd9521Kvy5YhnLbDuv0204bKt7ph6N/Ome -/msVuduCmsuY33OhkKCgxeDoAaijFJzIwZqsFVAzje18KotzlUBDJvyBpCpfOZC3 -J8tRd/iWkx7P8nd9H0aTolkelUTFLXVksNb54Dxp6gS1HAviRkRNQzuXSXERvSS2 -wq1yVAb+axj5d9spLFKebXd7Yv0PTY6YMjAwcRLWJTXjn/hvnLXrahut6hDTlhZy -BiElxky8j3C7DOReIoMt0r7+hVu05L0= ------END CERTIFICATE----- - -# Issuer: CN=e-Szigno TLS Root CA 2023 O=Microsec Ltd. -# Subject: CN=e-Szigno TLS Root CA 2023 O=Microsec Ltd. -# Label: "e-Szigno TLS Root CA 2023" -# Serial: 71934828665710877219916191754 -# MD5 Fingerprint: 6a:e9:99:74:a5:da:5e:f1:d9:2e:f2:c8:d1:86:8b:71 -# SHA1 Fingerprint: 6f:9a:d5:d5:df:e8:2c:eb:be:37:07:ee:4f:4f:52:58:29:41:d1:fe -# SHA256 Fingerprint: b4:91:41:50:2d:00:66:3d:74:0f:2e:7e:c3:40:c5:28:00:96:26:66:12:1a:36:d0:9c:f7:dd:2b:90:38:4f:b4 ------BEGIN CERTIFICATE----- -MIICzzCCAjGgAwIBAgINAOhvGHvWOWuYSkmYCjAKBggqhkjOPQQDBDB1MQswCQYD -VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0 -ZC4xFzAVBgNVBGEMDlZBVEhVLTIzNTg0NDk3MSIwIAYDVQQDDBllLVN6aWdubyBU -TFMgUm9vdCBDQSAyMDIzMB4XDTIzMDcxNzE0MDAwMFoXDTM4MDcxNzE0MDAwMFow -dTELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRYwFAYDVQQKDA1NaWNy -b3NlYyBMdGQuMRcwFQYDVQRhDA5WQVRIVS0yMzU4NDQ5NzEiMCAGA1UEAwwZZS1T -emlnbm8gVExTIFJvb3QgQ0EgMjAyMzCBmzAQBgcqhkjOPQIBBgUrgQQAIwOBhgAE -AGgP36J8PKp0iGEKjcJMpQEiFNT3YHdCnAo4YKGMZz6zY+n6kbCLS+Y53wLCMAFS -AL/fjO1ZrTJlqwlZULUZwmgcAOAFX9pQJhzDrAQixTpN7+lXWDajwRlTEArRzT/v -SzUaQ49CE0y5LBqcvjC2xN7cS53kpDzLLtmt3999Cd8ukv+ho2MwYTAPBgNVHRMB -Af8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUWYQCYlpGePVd3I8K -ECgj3NXW+0UwHwYDVR0jBBgwFoAUWYQCYlpGePVd3I8KECgj3NXW+0UwCgYIKoZI -zj0EAwQDgYsAMIGHAkIBLdqu9S54tma4n7Zwf2Z0z+yOfP7AAXmazlIC58PRDHpt -y7Ve7hekm9sEdu4pKeiv+62sUvTXK9Z3hBC9xdIoaDQCQTV2WnXzkoYI9bIeCvZl -C9p2x1L/Cx6AcCIwwzPbGO2E14vs7dOoY4G1VnxHx1YwlGhza9IuqbnZLBwpvQy6 -uWWL ------END CERTIFICATE----- diff --git a/.venv/lib/python3.12/site-packages/certifi/core.py b/.venv/lib/python3.12/site-packages/certifi/core.py deleted file mode 100644 index 1c9661c..0000000 --- a/.venv/lib/python3.12/site-packages/certifi/core.py +++ /dev/null @@ -1,83 +0,0 @@ -""" -certifi.py -~~~~~~~~~~ - -This module returns the installation location of cacert.pem or its contents. -""" -import sys -import atexit - -def exit_cacert_ctx() -> None: - _CACERT_CTX.__exit__(None, None, None) # type: ignore[union-attr] - - -if sys.version_info >= (3, 11): - - from importlib.resources import as_file, files - - _CACERT_CTX = None - _CACERT_PATH = None - - def where() -> str: - # This is slightly terrible, but we want to delay extracting the file - # in cases where we're inside of a zipimport situation until someone - # actually calls where(), but we don't want to re-extract the file - # on every call of where(), so we'll do it once then store it in a - # global variable. - global _CACERT_CTX - global _CACERT_PATH - if _CACERT_PATH is None: - # This is slightly janky, the importlib.resources API wants you to - # manage the cleanup of this file, so it doesn't actually return a - # path, it returns a context manager that will give you the path - # when you enter it and will do any cleanup when you leave it. In - # the common case of not needing a temporary file, it will just - # return the file system location and the __exit__() is a no-op. - # - # We also have to hold onto the actual context manager, because - # it will do the cleanup whenever it gets garbage collected, so - # we will also store that at the global level as well. - _CACERT_CTX = as_file(files("certifi").joinpath("cacert.pem")) - _CACERT_PATH = str(_CACERT_CTX.__enter__()) - atexit.register(exit_cacert_ctx) - - return _CACERT_PATH - - def contents() -> str: - return files("certifi").joinpath("cacert.pem").read_text(encoding="ascii") - -else: - - from importlib.resources import path as get_path, read_text - - _CACERT_CTX = None - _CACERT_PATH = None - - def where() -> str: - # This is slightly terrible, but we want to delay extracting the - # file in cases where we're inside of a zipimport situation until - # someone actually calls where(), but we don't want to re-extract - # the file on every call of where(), so we'll do it once then store - # it in a global variable. - global _CACERT_CTX - global _CACERT_PATH - if _CACERT_PATH is None: - # This is slightly janky, the importlib.resources API wants you - # to manage the cleanup of this file, so it doesn't actually - # return a path, it returns a context manager that will give - # you the path when you enter it and will do any cleanup when - # you leave it. In the common case of not needing a temporary - # file, it will just return the file system location and the - # __exit__() is a no-op. - # - # We also have to hold onto the actual context manager, because - # it will do the cleanup whenever it gets garbage collected, so - # we will also store that at the global level as well. - _CACERT_CTX = get_path("certifi", "cacert.pem") - _CACERT_PATH = str(_CACERT_CTX.__enter__()) - atexit.register(exit_cacert_ctx) - - return _CACERT_PATH - - def contents() -> str: - return read_text("certifi", "cacert.pem", encoding="ascii") diff --git a/.venv/lib/python3.12/site-packages/certifi/py.typed b/.venv/lib/python3.12/site-packages/certifi/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/INSTALLER b/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/METADATA b/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/METADATA deleted file mode 100644 index 6b5a360..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/METADATA +++ /dev/null @@ -1,808 +0,0 @@ -Metadata-Version: 2.4 -Name: charset-normalizer -Version: 3.4.7 -Summary: The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet. -Author-email: "Ahmed R. TAHRI" -Maintainer-email: "Ahmed R. TAHRI" -License: MIT -Project-URL: Changelog, https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md -Project-URL: Documentation, https://charset-normalizer.readthedocs.io/ -Project-URL: Code, https://github.com/jawah/charset_normalizer -Project-URL: Issue tracker, https://github.com/jawah/charset_normalizer/issues -Keywords: encoding,charset,charset-detector,detector,normalization,unicode,chardet,detect -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Programming Language :: Python :: 3.13 -Classifier: Programming Language :: Python :: 3.14 -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Programming Language :: Python :: Implementation :: PyPy -Classifier: Programming Language :: Python :: Free Threading :: 4 - Resilient -Classifier: Topic :: Text Processing :: Linguistic -Classifier: Topic :: Utilities -Classifier: Typing :: Typed -Requires-Python: >=3.7 -Description-Content-Type: text/markdown -License-File: LICENSE -Provides-Extra: unicode-backport -Dynamic: license-file - -

Charset Detection, for Everyone 👋

- -

- The Real First Universal Charset Detector
- - - - - Download Count Total - - - - -

-

- Featured Packages
- - Static Badge - - - Static Badge - -

-

- In other language (unofficial port - by the community)
- - Static Badge - -

- -> A library that helps you read text from an unknown charset encoding.
Motivated by `chardet`, -> I'm trying to resolve the issue by taking a new approach. -> All IANA character set names for which the Python core library provides codecs are supported. -> You can also register your own set of codecs, and yes, it would work as-is. - -

- >>>>> 👉 Try Me Online Now, Then Adopt Me 👈 <<<<< -

- -This project offers you an alternative to **Universal Charset Encoding Detector**, also known as **Chardet**. - -| Feature | [Chardet](https://github.com/chardet/chardet) | Charset Normalizer | [cChardet](https://github.com/PyYoshi/cChardet) | -|--------------------------------------------------|:---------------------------------------------:|:-----------------------------------------------------------------------------------------------:|:-----------------------------------------------:| -| `Fast` | ✅ | ✅ | ✅ | -| `Universal`[^1] | ❌ | ✅ | ❌ | -| `Reliable` **without** distinguishable standards | ✅ | ✅ | ✅ | -| `Reliable` **with** distinguishable standards | ✅ | ✅ | ✅ | -| `License` | _Disputed_[^2]
_restrictive_ | MIT | MPL-1.1
_restrictive_ | -| `Native Python` | ✅ | ✅ | ❌ | -| `Detect spoken language` | ✅ | ✅ | N/A | -| `UnicodeDecodeError Safety` | ✅ | ✅ | ❌ | -| `Whl Size (min)` | 500 kB | 150 kB | ~200 kB | -| `Supported Encoding` | 99 | [99](https://charset-normalizer.readthedocs.io/en/latest/user/support.html#supported-encodings) | 40 | -| `Can register custom encoding` | ❌ | ✅ | ❌ | - -

-Reading Normalized TextCat Reading Text -

- -[^1]: They are clearly using specific code for a specific encoding even if covering most of used one. -[^2]: Chardet 7.0+ was relicensed from LGPL-2.1 to MIT following an AI-assisted rewrite. This relicensing is disputed on two independent grounds: **(a)** the original author [contests](https://github.com/chardet/chardet/issues/327) that the maintainer had the right to relicense, arguing the rewrite is a derivative work of the LGPL-licensed codebase since it was not a clean room implementation; **(b)** the copyright claim itself is [questionable](https://github.com/chardet/chardet/issues/334) given the code was primarily generated by an LLM, and AI-generated output may not be copyrightable under most jurisdictions. Either issue alone could undermine the MIT license. Beyond licensing, the rewrite raises questions about responsible use of AI in open source: key architectural ideas pioneered by charset-normalizer - notably decode-first validity filtering (our foundational approach since v1) and encoding pairwise similarity with the same algorithm and threshold — surfaced in chardet 7 without acknowledgment. The project also imported test files from charset-normalizer to train and benchmark against it, then claimed superior accuracy on those very files. Charset-normalizer has always been MIT-licensed, encoding-agnostic by design, and built on a verifiable human-authored history. - -## ⚡ Performance - -This package offer better performances (99th, and 95th) against Chardet. Here are some numbers. - -| Package | Accuracy | Mean per file (ms) | File per sec (est) | -|---------------------------------------------------|:--------:|:------------------:|:------------------:| -| [chardet 7.1](https://github.com/chardet/chardet) | 89 % | 3 ms | 333 file/sec | -| charset-normalizer | **97 %** | 3 ms | 333 file/sec | - -| Package | 99th percentile | 95th percentile | 50th percentile | -|---------------------------------------------------|:---------------:|:---------------:|:---------------:| -| [chardet 7.1](https://github.com/chardet/chardet) | 32 ms | 17 ms | < 1 ms | -| charset-normalizer | 16 ms | 10 ms | 1 ms | - -_updated as of March 2026 using CPython 3.12, Charset-Normalizer 3.4.6, and Chardet 7.1.0_ - -~Chardet's performance on larger file (1MB+) are very poor. Expect huge difference on large payload.~ No longer the case since Chardet 7.0+ - -> Stats are generated using 400+ files using default parameters. More details on used files, see GHA workflows. -> And yes, these results might change at any time. The dataset can be updated to include more files. -> The actual delays heavily depends on your CPU capabilities. The factors should remain the same. -> Chardet claims on his documentation to have a greater accuracy than us based on the dataset they trained Chardet on(...) -> Well, it's normal, the opposite would have been worrying. Whereas charset-normalizer don't train on anything, our solution -> is based on a completely different algorithm, still heuristic through, it does not need weights across every encoding tables. - -## ✨ Installation - -Using pip: - -```sh -pip install charset-normalizer -U -``` - -## 🚀 Basic Usage - -### CLI -This package comes with a CLI. - -``` -usage: normalizer [-h] [-v] [-a] [-n] [-m] [-r] [-f] [-t THRESHOLD] - file [file ...] - -The Real First Universal Charset Detector. Discover originating encoding used -on text file. Normalize text to unicode. - -positional arguments: - files File(s) to be analysed - -optional arguments: - -h, --help show this help message and exit - -v, --verbose Display complementary information about file if any. - Stdout will contain logs about the detection process. - -a, --with-alternative - Output complementary possibilities if any. Top-level - JSON WILL be a list. - -n, --normalize Permit to normalize input file. If not set, program - does not write anything. - -m, --minimal Only output the charset detected to STDOUT. Disabling - JSON output. - -r, --replace Replace file when trying to normalize it instead of - creating a new one. - -f, --force Replace file without asking if you are sure, use this - flag with caution. - -t THRESHOLD, --threshold THRESHOLD - Define a custom maximum amount of chaos allowed in - decoded content. 0. <= chaos <= 1. - --version Show version information and exit. -``` - -```bash -normalizer ./data/sample.1.fr.srt -``` - -or - -```bash -python -m charset_normalizer ./data/sample.1.fr.srt -``` - -🎉 Since version 1.4.0 the CLI produce easily usable stdout result in JSON format. - -```json -{ - "path": "/home/default/projects/charset_normalizer/data/sample.1.fr.srt", - "encoding": "cp1252", - "encoding_aliases": [ - "1252", - "windows_1252" - ], - "alternative_encodings": [ - "cp1254", - "cp1256", - "cp1258", - "iso8859_14", - "iso8859_15", - "iso8859_16", - "iso8859_3", - "iso8859_9", - "latin_1", - "mbcs" - ], - "language": "French", - "alphabets": [ - "Basic Latin", - "Latin-1 Supplement" - ], - "has_sig_or_bom": false, - "chaos": 0.149, - "coherence": 97.152, - "unicode_path": null, - "is_preferred": true -} -``` - -### Python -*Just print out normalized text* -```python -from charset_normalizer import from_path - -results = from_path('./my_subtitle.srt') - -print(str(results.best())) -``` - -*Upgrade your code without effort* -```python -from charset_normalizer import detect -``` - -The above code will behave the same as **chardet**. We ensure that we offer the best (reasonable) BC result possible. - -See the docs for advanced usage : [readthedocs.io](https://charset-normalizer.readthedocs.io/en/latest/) - -## 😇 Why - -When I started using Chardet, I noticed that it was not suited to my expectations, and I wanted to propose a -reliable alternative using a completely different method. Also! I never back down on a good challenge! - -I **don't care** about the **originating charset** encoding, because **two different tables** can -produce **two identical rendered string.** -What I want is to get readable text, the best I can. - -In a way, **I'm brute forcing text decoding.** How cool is that ? 😎 - -Don't confuse package **ftfy** with charset-normalizer or chardet. ftfy goal is to repair Unicode string whereas charset-normalizer to convert raw file in unknown encoding to unicode. - -## 🍰 How - - - Discard all charset encoding table that could not fit the binary content. - - Measure noise, or the mess once opened (by chunks) with a corresponding charset encoding. - - Extract matches with the lowest mess detected. - - Additionally, we measure coherence / probe for a language. - -**Wait a minute**, what is noise/mess and coherence according to **YOU ?** - -*Noise :* I opened hundred of text files, **written by humans**, with the wrong encoding table. **I observed**, then -**I established** some ground rules about **what is obvious** when **it seems like** a mess (aka. defining noise in rendered text). - I know that my interpretation of what is noise is probably incomplete, feel free to contribute in order to - improve or rewrite it. - -*Coherence :* For each language there is on earth, we have computed ranked letter appearance occurrences (the best we can). So I thought -that intel is worth something here. So I use those records against decoded text to check if I can detect intelligent design. - -## ⚡ Known limitations - - - Language detection is unreliable when text contains two or more languages sharing identical letters. (eg. HTML (english tags) + Turkish content (Sharing Latin characters)) - - Every charset detector heavily depends on sufficient content. In common cases, do not bother run detection on very tiny content. - -## ⚠️ About Python EOLs - -**If you are running:** - -- Python >=2.7,<3.5: Unsupported -- Python 3.5: charset-normalizer < 2.1 -- Python 3.6: charset-normalizer < 3.1 - -Upgrade your Python interpreter as soon as possible. - -## 👤 Contributing - -Contributions, issues and feature requests are very much welcome.
-Feel free to check [issues page](https://github.com/ousret/charset_normalizer/issues) if you want to contribute. - -## 📝 License - -Copyright © [Ahmed TAHRI @Ousret](https://github.com/Ousret).
-This project is [MIT](https://github.com/Ousret/charset_normalizer/blob/master/LICENSE) licensed. - -Characters frequencies used in this project © 2012 [Denny Vrandečić](http://simia.net/letters/) - -## 💼 For Enterprise - -Professional support for charset-normalizer is available as part of the [Tidelift -Subscription][1]. Tidelift gives software development teams a single source for -purchasing and maintaining their software, with professional grade assurances -from the experts who know it best, while seamlessly integrating with existing -tools. - -[1]: https://tidelift.com/subscription/pkg/pypi-charset-normalizer?utm_source=pypi-charset-normalizer&utm_medium=readme - -[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/7297/badge)](https://www.bestpractices.dev/projects/7297) - -# Changelog -All notable changes to charset-normalizer will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - -## [3.4.7](https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7) (2026-04-02) - -### Changed -- Pre-built optimized version using mypy[c] v1.20. -- Relax `setuptools` constraint to `setuptools>=68,<82.1`. - -### Fixed -- Correctly remove SIG remnant in utf-7 decoded string. (#718) (#716) - -## [3.4.6](https://github.com/Ousret/charset_normalizer/compare/3.4.5...3.4.6) (2026-03-15) - -### Changed -- Flattened the logic in `charset_normalizer.md` for higher performance. Removed `eligible(..)` and `feed(...)` - in favor of `feed_info(...)`. -- Raised upper bound for mypy[c] to 1.20, for our optimized version. -- Updated `UNICODE_RANGES_COMBINED` using Unicode blocks v17. - -### Fixed -- Edge case where noise difference between two candidates can be almost insignificant. (#672) -- CLI `--normalize` writing to wrong path when passing multiple files in. (#702) - -### Misc -- Freethreaded pre-built wheels now shipped in PyPI starting with 3.14t. (#616) - -## [3.4.5](https://github.com/Ousret/charset_normalizer/compare/3.4.4...3.4.5) (2026-03-06) - -### Changed -- Update `setuptools` constraint to `setuptools>=68,<=82`. -- Raised upper bound of mypyc for the optional pre-built extension to v1.19.1 - -### Fixed -- Add explicit link to lib math in our optimized build. (#692) -- Logger level not restored correctly for empty byte sequences. (#701) -- TypeError when passing bytearray to from_bytes. (#703) - -### Misc -- Applied safe micro-optimizations in both our noise detector and language detector. -- Rewrote the `query_yes_no` function (inside CLI) to avoid using ambiguous licensed code. -- Added `cd.py` submodule into mypyc optional compilation to reduce further the performance impact. - -## [3.4.4](https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4) (2025-10-13) - -### Changed -- Bound `setuptools` to a specific constraint `setuptools>=68,<=81`. -- Raised upper bound of mypyc for the optional pre-built extension to v1.18.2 - -### Removed -- `setuptools-scm` as a build dependency. - -### Misc -- Enforced hashes in `dev-requirements.txt` and created `ci-requirements.txt` for security purposes. -- Additional pre-built wheels for riscv64, s390x, and armv7l architectures. -- Restore ` multiple.intoto.jsonl` in GitHub releases in addition to individual attestation file per wheel. - -## [3.4.3](https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3) (2025-08-09) - -### Changed -- mypy(c) is no longer a required dependency at build time if `CHARSET_NORMALIZER_USE_MYPYC` isn't set to `1`. (#595) (#583) -- automatically lower confidence on small bytes samples that are not Unicode in `detect` output legacy function. (#391) - -### Added -- Custom build backend to overcome inability to mark mypy as an optional dependency in the build phase. -- Support for Python 3.14 - -### Fixed -- sdist archive contained useless directories. -- automatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (#633) - -### Misc -- SBOM are automatically published to the relevant GitHub release to comply with regulatory changes. - Each published wheel comes with its SBOM. We choose CycloneDX as the format. -- Prebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel. - -## [3.4.2](https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2) (2025-05-02) - -### Fixed -- Addressed the DeprecationWarning in our CLI regarding `argparse.FileType` by backporting the target class into the package. (#591) -- Improved the overall reliability of the detector with CJK Ideographs. (#605) (#587) - -### Changed -- Optional mypyc compilation upgraded to version 1.15 for Python >= 3.8 - -## [3.4.1](https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1) (2024-12-24) - -### Changed -- Project metadata are now stored using `pyproject.toml` instead of `setup.cfg` using setuptools as the build backend. -- Enforce annotation delayed loading for a simpler and consistent types in the project. -- Optional mypyc compilation upgraded to version 1.14 for Python >= 3.8 - -### Added -- pre-commit configuration. -- noxfile. - -### Removed -- `build-requirements.txt` as per using `pyproject.toml` native build configuration. -- `bin/integration.py` and `bin/serve.py` in favor of downstream integration test (see noxfile). -- `setup.cfg` in favor of `pyproject.toml` metadata configuration. -- Unused `utils.range_scan` function. - -### Fixed -- Converting content to Unicode bytes may insert `utf_8` instead of preferred `utf-8`. (#572) -- Deprecation warning "'count' is passed as positional argument" when converting to Unicode bytes on Python 3.13+ - -## [3.4.0](https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0) (2024-10-08) - -### Added -- Argument `--no-preemptive` in the CLI to prevent the detector to search for hints. -- Support for Python 3.13 (#512) - -### Fixed -- Relax the TypeError exception thrown when trying to compare a CharsetMatch with anything else than a CharsetMatch. -- Improved the general reliability of the detector based on user feedbacks. (#520) (#509) (#498) (#407) (#537) -- Declared charset in content (preemptive detection) not changed when converting to utf-8 bytes. (#381) - -## [3.3.2](https://github.com/Ousret/charset_normalizer/compare/3.3.1...3.3.2) (2023-10-31) - -### Fixed -- Unintentional memory usage regression when using large payload that match several encoding (#376) -- Regression on some detection case showcased in the documentation (#371) - -### Added -- Noise (md) probe that identify malformed arabic representation due to the presence of letters in isolated form (credit to my wife) - -## [3.3.1](https://github.com/Ousret/charset_normalizer/compare/3.3.0...3.3.1) (2023-10-22) - -### Changed -- Optional mypyc compilation upgraded to version 1.6.1 for Python >= 3.8 -- Improved the general detection reliability based on reports from the community - -## [3.3.0](https://github.com/Ousret/charset_normalizer/compare/3.2.0...3.3.0) (2023-09-30) - -### Added -- Allow to execute the CLI (e.g. normalizer) through `python -m charset_normalizer.cli` or `python -m charset_normalizer` -- Support for 9 forgotten encoding that are supported by Python but unlisted in `encoding.aliases` as they have no alias (#323) - -### Removed -- (internal) Redundant utils.is_ascii function and unused function is_private_use_only -- (internal) charset_normalizer.assets is moved inside charset_normalizer.constant - -### Changed -- (internal) Unicode code blocks in constants are updated using the latest v15.0.0 definition to improve detection -- Optional mypyc compilation upgraded to version 1.5.1 for Python >= 3.8 - -### Fixed -- Unable to properly sort CharsetMatch when both chaos/noise and coherence were close due to an unreachable condition in \_\_lt\_\_ (#350) - -## [3.2.0](https://github.com/Ousret/charset_normalizer/compare/3.1.0...3.2.0) (2023-06-07) - -### Changed -- Typehint for function `from_path` no longer enforce `PathLike` as its first argument -- Minor improvement over the global detection reliability - -### Added -- Introduce function `is_binary` that relies on main capabilities, and optimized to detect binaries -- Propagate `enable_fallback` argument throughout `from_bytes`, `from_path`, and `from_fp` that allow a deeper control over the detection (default True) -- Explicit support for Python 3.12 - -### Fixed -- Edge case detection failure where a file would contain 'very-long' camel cased word (Issue #289) - -## [3.1.0](https://github.com/Ousret/charset_normalizer/compare/3.0.1...3.1.0) (2023-03-06) - -### Added -- Argument `should_rename_legacy` for legacy function `detect` and disregard any new arguments without errors (PR #262) - -### Removed -- Support for Python 3.6 (PR #260) - -### Changed -- Optional speedup provided by mypy/c 1.0.1 - -## [3.0.1](https://github.com/Ousret/charset_normalizer/compare/3.0.0...3.0.1) (2022-11-18) - -### Fixed -- Multi-bytes cutter/chunk generator did not always cut correctly (PR #233) - -### Changed -- Speedup provided by mypy/c 0.990 on Python >= 3.7 - -## [3.0.0](https://github.com/Ousret/charset_normalizer/compare/2.1.1...3.0.0) (2022-10-20) - -### Added -- Extend the capability of explain=True when cp_isolation contains at most two entries (min one), will log in details of the Mess-detector results -- Support for alternative language frequency set in charset_normalizer.assets.FREQUENCIES -- Add parameter `language_threshold` in `from_bytes`, `from_path` and `from_fp` to adjust the minimum expected coherence ratio -- `normalizer --version` now specify if current version provide extra speedup (meaning mypyc compilation whl) - -### Changed -- Build with static metadata using 'build' frontend -- Make the language detection stricter -- Optional: Module `md.py` can be compiled using Mypyc to provide an extra speedup up to 4x faster than v2.1 - -### Fixed -- CLI with opt --normalize fail when using full path for files -- TooManyAccentuatedPlugin induce false positive on the mess detection when too few alpha character have been fed to it -- Sphinx warnings when generating the documentation - -### Removed -- Coherence detector no longer return 'Simple English' instead return 'English' -- Coherence detector no longer return 'Classical Chinese' instead return 'Chinese' -- Breaking: Method `first()` and `best()` from CharsetMatch -- UTF-7 will no longer appear as "detected" without a recognized SIG/mark (is unreliable/conflict with ASCII) -- Breaking: Class aliases CharsetDetector, CharsetDoctor, CharsetNormalizerMatch and CharsetNormalizerMatches -- Breaking: Top-level function `normalize` -- Breaking: Properties `chaos_secondary_pass`, `coherence_non_latin` and `w_counter` from CharsetMatch -- Support for the backport `unicodedata2` - -## [3.0.0rc1](https://github.com/Ousret/charset_normalizer/compare/3.0.0b2...3.0.0rc1) (2022-10-18) - -### Added -- Extend the capability of explain=True when cp_isolation contains at most two entries (min one), will log in details of the Mess-detector results -- Support for alternative language frequency set in charset_normalizer.assets.FREQUENCIES -- Add parameter `language_threshold` in `from_bytes`, `from_path` and `from_fp` to adjust the minimum expected coherence ratio - -### Changed -- Build with static metadata using 'build' frontend -- Make the language detection stricter - -### Fixed -- CLI with opt --normalize fail when using full path for files -- TooManyAccentuatedPlugin induce false positive on the mess detection when too few alpha character have been fed to it - -### Removed -- Coherence detector no longer return 'Simple English' instead return 'English' -- Coherence detector no longer return 'Classical Chinese' instead return 'Chinese' - -## [3.0.0b2](https://github.com/Ousret/charset_normalizer/compare/3.0.0b1...3.0.0b2) (2022-08-21) - -### Added -- `normalizer --version` now specify if current version provide extra speedup (meaning mypyc compilation whl) - -### Removed -- Breaking: Method `first()` and `best()` from CharsetMatch -- UTF-7 will no longer appear as "detected" without a recognized SIG/mark (is unreliable/conflict with ASCII) - -### Fixed -- Sphinx warnings when generating the documentation - -## [3.0.0b1](https://github.com/Ousret/charset_normalizer/compare/2.1.0...3.0.0b1) (2022-08-15) - -### Changed -- Optional: Module `md.py` can be compiled using Mypyc to provide an extra speedup up to 4x faster than v2.1 - -### Removed -- Breaking: Class aliases CharsetDetector, CharsetDoctor, CharsetNormalizerMatch and CharsetNormalizerMatches -- Breaking: Top-level function `normalize` -- Breaking: Properties `chaos_secondary_pass`, `coherence_non_latin` and `w_counter` from CharsetMatch -- Support for the backport `unicodedata2` - -## [2.1.1](https://github.com/Ousret/charset_normalizer/compare/2.1.0...2.1.1) (2022-08-19) - -### Deprecated -- Function `normalize` scheduled for removal in 3.0 - -### Changed -- Removed useless call to decode in fn is_unprintable (#206) - -### Fixed -- Third-party library (i18n xgettext) crashing not recognizing utf_8 (PEP 263) with underscore from [@aleksandernovikov](https://github.com/aleksandernovikov) (#204) - -## [2.1.0](https://github.com/Ousret/charset_normalizer/compare/2.0.12...2.1.0) (2022-06-19) - -### Added -- Output the Unicode table version when running the CLI with `--version` (PR #194) - -### Changed -- Re-use decoded buffer for single byte character sets from [@nijel](https://github.com/nijel) (PR #175) -- Fixing some performance bottlenecks from [@deedy5](https://github.com/deedy5) (PR #183) - -### Fixed -- Workaround potential bug in cpython with Zero Width No-Break Space located in Arabic Presentation Forms-B, Unicode 1.1 not acknowledged as space (PR #175) -- CLI default threshold aligned with the API threshold from [@oleksandr-kuzmenko](https://github.com/oleksandr-kuzmenko) (PR #181) - -### Removed -- Support for Python 3.5 (PR #192) - -### Deprecated -- Use of backport unicodedata from `unicodedata2` as Python is quickly catching up, scheduled for removal in 3.0 (PR #194) - -## [2.0.12](https://github.com/Ousret/charset_normalizer/compare/2.0.11...2.0.12) (2022-02-12) - -### Fixed -- ASCII miss-detection on rare cases (PR #170) - -## [2.0.11](https://github.com/Ousret/charset_normalizer/compare/2.0.10...2.0.11) (2022-01-30) - -### Added -- Explicit support for Python 3.11 (PR #164) - -### Changed -- The logging behavior have been completely reviewed, now using only TRACE and DEBUG levels (PR #163 #165) - -## [2.0.10](https://github.com/Ousret/charset_normalizer/compare/2.0.9...2.0.10) (2022-01-04) - -### Fixed -- Fallback match entries might lead to UnicodeDecodeError for large bytes sequence (PR #154) - -### Changed -- Skipping the language-detection (CD) on ASCII (PR #155) - -## [2.0.9](https://github.com/Ousret/charset_normalizer/compare/2.0.8...2.0.9) (2021-12-03) - -### Changed -- Moderating the logging impact (since 2.0.8) for specific environments (PR #147) - -### Fixed -- Wrong logging level applied when setting kwarg `explain` to True (PR #146) - -## [2.0.8](https://github.com/Ousret/charset_normalizer/compare/2.0.7...2.0.8) (2021-11-24) -### Changed -- Improvement over Vietnamese detection (PR #126) -- MD improvement on trailing data and long foreign (non-pure latin) data (PR #124) -- Efficiency improvements in cd/alphabet_languages from [@adbar](https://github.com/adbar) (PR #122) -- call sum() without an intermediary list following PEP 289 recommendations from [@adbar](https://github.com/adbar) (PR #129) -- Code style as refactored by Sourcery-AI (PR #131) -- Minor adjustment on the MD around european words (PR #133) -- Remove and replace SRTs from assets / tests (PR #139) -- Initialize the library logger with a `NullHandler` by default from [@nmaynes](https://github.com/nmaynes) (PR #135) -- Setting kwarg `explain` to True will add provisionally (bounded to function lifespan) a specific stream handler (PR #135) - -### Fixed -- Fix large (misleading) sequence giving UnicodeDecodeError (PR #137) -- Avoid using too insignificant chunk (PR #137) - -### Added -- Add and expose function `set_logging_handler` to configure a specific StreamHandler from [@nmaynes](https://github.com/nmaynes) (PR #135) -- Add `CHANGELOG.md` entries, format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) (PR #141) - -## [2.0.7](https://github.com/Ousret/charset_normalizer/compare/2.0.6...2.0.7) (2021-10-11) -### Added -- Add support for Kazakh (Cyrillic) language detection (PR #109) - -### Changed -- Further, improve inferring the language from a given single-byte code page (PR #112) -- Vainly trying to leverage PEP263 when PEP3120 is not supported (PR #116) -- Refactoring for potential performance improvements in loops from [@adbar](https://github.com/adbar) (PR #113) -- Various detection improvement (MD+CD) (PR #117) - -### Removed -- Remove redundant logging entry about detected language(s) (PR #115) - -### Fixed -- Fix a minor inconsistency between Python 3.5 and other versions regarding language detection (PR #117 #102) - -## [2.0.6](https://github.com/Ousret/charset_normalizer/compare/2.0.5...2.0.6) (2021-09-18) -### Fixed -- Unforeseen regression with the loss of the backward-compatibility with some older minor of Python 3.5.x (PR #100) -- Fix CLI crash when using --minimal output in certain cases (PR #103) - -### Changed -- Minor improvement to the detection efficiency (less than 1%) (PR #106 #101) - -## [2.0.5](https://github.com/Ousret/charset_normalizer/compare/2.0.4...2.0.5) (2021-09-14) -### Changed -- The project now comply with: flake8, mypy, isort and black to ensure a better overall quality (PR #81) -- The BC-support with v1.x was improved, the old staticmethods are restored (PR #82) -- The Unicode detection is slightly improved (PR #93) -- Add syntax sugar \_\_bool\_\_ for results CharsetMatches list-container (PR #91) - -### Removed -- The project no longer raise warning on tiny content given for detection, will be simply logged as warning instead (PR #92) - -### Fixed -- In some rare case, the chunks extractor could cut in the middle of a multi-byte character and could mislead the mess detection (PR #95) -- Some rare 'space' characters could trip up the UnprintablePlugin/Mess detection (PR #96) -- The MANIFEST.in was not exhaustive (PR #78) - -## [2.0.4](https://github.com/Ousret/charset_normalizer/compare/2.0.3...2.0.4) (2021-07-30) -### Fixed -- The CLI no longer raise an unexpected exception when no encoding has been found (PR #70) -- Fix accessing the 'alphabets' property when the payload contains surrogate characters (PR #68) -- The logger could mislead (explain=True) on detected languages and the impact of one MBCS match (PR #72) -- Submatch factoring could be wrong in rare edge cases (PR #72) -- Multiple files given to the CLI were ignored when publishing results to STDOUT. (After the first path) (PR #72) -- Fix line endings from CRLF to LF for certain project files (PR #67) - -### Changed -- Adjust the MD to lower the sensitivity, thus improving the global detection reliability (PR #69 #76) -- Allow fallback on specified encoding if any (PR #71) - -## [2.0.3](https://github.com/Ousret/charset_normalizer/compare/2.0.2...2.0.3) (2021-07-16) -### Changed -- Part of the detection mechanism has been improved to be less sensitive, resulting in more accurate detection results. Especially ASCII. (PR #63) -- According to the community wishes, the detection will fall back on ASCII or UTF-8 in a last-resort case. (PR #64) - -## [2.0.2](https://github.com/Ousret/charset_normalizer/compare/2.0.1...2.0.2) (2021-07-15) -### Fixed -- Empty/Too small JSON payload miss-detection fixed. Report from [@tseaver](https://github.com/tseaver) (PR #59) - -### Changed -- Don't inject unicodedata2 into sys.modules from [@akx](https://github.com/akx) (PR #57) - -## [2.0.1](https://github.com/Ousret/charset_normalizer/compare/2.0.0...2.0.1) (2021-07-13) -### Fixed -- Make it work where there isn't a filesystem available, dropping assets frequencies.json. Report from [@sethmlarson](https://github.com/sethmlarson). (PR #55) -- Using explain=False permanently disable the verbose output in the current runtime (PR #47) -- One log entry (language target preemptive) was not show in logs when using explain=True (PR #47) -- Fix undesired exception (ValueError) on getitem of instance CharsetMatches (PR #52) - -### Changed -- Public function normalize default args values were not aligned with from_bytes (PR #53) - -### Added -- You may now use charset aliases in cp_isolation and cp_exclusion arguments (PR #47) - -## [2.0.0](https://github.com/Ousret/charset_normalizer/compare/1.4.1...2.0.0) (2021-07-02) -### Changed -- 4x to 5 times faster than the previous 1.4.0 release. At least 2x faster than Chardet. -- Accent has been made on UTF-8 detection, should perform rather instantaneous. -- The backward compatibility with Chardet has been greatly improved. The legacy detect function returns an identical charset name whenever possible. -- The detection mechanism has been slightly improved, now Turkish content is detected correctly (most of the time) -- The program has been rewritten to ease the readability and maintainability. (+Using static typing)+ -- utf_7 detection has been reinstated. - -### Removed -- This package no longer require anything when used with Python 3.5 (Dropped cached_property) -- Removed support for these languages: Catalan, Esperanto, Kazakh, Baque, Volapük, Azeri, Galician, Nynorsk, Macedonian, and Serbocroatian. -- The exception hook on UnicodeDecodeError has been removed. - -### Deprecated -- Methods coherence_non_latin, w_counter, chaos_secondary_pass of the class CharsetMatch are now deprecated and scheduled for removal in v3.0 - -### Fixed -- The CLI output used the relative path of the file(s). Should be absolute. - -## [1.4.1](https://github.com/Ousret/charset_normalizer/compare/1.4.0...1.4.1) (2021-05-28) -### Fixed -- Logger configuration/usage no longer conflict with others (PR #44) - -## [1.4.0](https://github.com/Ousret/charset_normalizer/compare/1.3.9...1.4.0) (2021-05-21) -### Removed -- Using standard logging instead of using the package loguru. -- Dropping nose test framework in favor of the maintained pytest. -- Choose to not use dragonmapper package to help with gibberish Chinese/CJK text. -- Require cached_property only for Python 3.5 due to constraint. Dropping for every other interpreter version. -- Stop support for UTF-7 that does not contain a SIG. -- Dropping PrettyTable, replaced with pure JSON output in CLI. - -### Fixed -- BOM marker in a CharsetNormalizerMatch instance could be False in rare cases even if obviously present. Due to the sub-match factoring process. -- Not searching properly for the BOM when trying utf32/16 parent codec. - -### Changed -- Improving the package final size by compressing frequencies.json. -- Huge improvement over the larges payload. - -### Added -- CLI now produces JSON consumable output. -- Return ASCII if given sequences fit. Given reasonable confidence. - -## [1.3.9](https://github.com/Ousret/charset_normalizer/compare/1.3.8...1.3.9) (2021-05-13) - -### Fixed -- In some very rare cases, you may end up getting encode/decode errors due to a bad bytes payload (PR #40) - -## [1.3.8](https://github.com/Ousret/charset_normalizer/compare/1.3.7...1.3.8) (2021-05-12) - -### Fixed -- Empty given payload for detection may cause an exception if trying to access the `alphabets` property. (PR #39) - -## [1.3.7](https://github.com/Ousret/charset_normalizer/compare/1.3.6...1.3.7) (2021-05-12) - -### Fixed -- The legacy detect function should return UTF-8-SIG if sig is present in the payload. (PR #38) - -## [1.3.6](https://github.com/Ousret/charset_normalizer/compare/1.3.5...1.3.6) (2021-02-09) - -### Changed -- Amend the previous release to allow prettytable 2.0 (PR #35) - -## [1.3.5](https://github.com/Ousret/charset_normalizer/compare/1.3.4...1.3.5) (2021-02-08) - -### Fixed -- Fix error while using the package with a python pre-release interpreter (PR #33) - -### Changed -- Dependencies refactoring, constraints revised. - -### Added -- Add python 3.9 and 3.10 to the supported interpreters - -MIT License - -Copyright (c) 2025 TAHRI Ahmed R. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/RECORD b/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/RECORD deleted file mode 100644 index 2a0c50b..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/RECORD +++ /dev/null @@ -1,36 +0,0 @@ -../../../bin/normalizer,sha256=9DV70Lo8YuUsynoL2vDCIiaIxAoy8R4S9p7DMz1IuUc,283 -81d243bd2c585b0f4821__mypyc.cpython-312-x86_64-linux-gnu.so,sha256=xPTGB-9iuOqJ5RfI3qaB1WzuFAm1oYWbgN1Jz9U1wn0,433312 -charset_normalizer-3.4.7.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -charset_normalizer-3.4.7.dist-info/METADATA,sha256=K8lK8L8LaZ1YmKvWLt3zEkpIxiCOC58xNhzFQrfQJxQ,40931 -charset_normalizer-3.4.7.dist-info/RECORD,, -charset_normalizer-3.4.7.dist-info/WHEEL,sha256=Tc3fF66yn9Kh-hkUUsdKQyuB9Lw0CDoeANnEbSVc3f4,190 -charset_normalizer-3.4.7.dist-info/entry_points.txt,sha256=ADSTKrkXZ3hhdOVFi6DcUEHQRS0xfxDIE_pEz4wLIXA,65 -charset_normalizer-3.4.7.dist-info/licenses/LICENSE,sha256=bQ1Bv-FwrGx9wkjJpj4lTQ-0WmDVCoJX0K-SxuJJuIc,1071 -charset_normalizer-3.4.7.dist-info/top_level.txt,sha256=c_vZbitqecT2GfK3zdxSTLCn8C-6pGnHQY5o_5Y32M0,47 -charset_normalizer/__init__.py,sha256=OKRxRv2Zhnqk00tqkN0c1BtJjm165fWXLydE52IKuHc,1590 -charset_normalizer/__main__.py,sha256=yzYxMR-IhKRHYwcSlavEv8oGdwxsR89mr2X09qXGdps,109 -charset_normalizer/__pycache__/__init__.cpython-312.pyc,, -charset_normalizer/__pycache__/__main__.cpython-312.pyc,, -charset_normalizer/__pycache__/api.cpython-312.pyc,, -charset_normalizer/__pycache__/cd.cpython-312.pyc,, -charset_normalizer/__pycache__/constant.cpython-312.pyc,, -charset_normalizer/__pycache__/legacy.cpython-312.pyc,, -charset_normalizer/__pycache__/md.cpython-312.pyc,, -charset_normalizer/__pycache__/models.cpython-312.pyc,, -charset_normalizer/__pycache__/utils.cpython-312.pyc,, -charset_normalizer/__pycache__/version.cpython-312.pyc,, -charset_normalizer/api.py,sha256=387F3n23MlMu-xfSbFULW2DLGsBmVrZVGhnkiGXeKBo,38844 -charset_normalizer/cd.cpython-312-x86_64-linux-gnu.so,sha256=gOe65H__3O8_4a-aSVMB8gxHsRxVyQDUqqaIurPmIhE,15912 -charset_normalizer/cd.py,sha256=v0iPJweGsRegXywrM1LzUgqW9bJ1KFvIblQHP1jm5FQ,15174 -charset_normalizer/cli/__init__.py,sha256=D8I86lFk2-py45JvqxniTirSj_sFyE6sjaY_0-G1shc,136 -charset_normalizer/cli/__main__.py,sha256=E9FFSV1E2iOE_B2B1tJHQT9ExJqc60Ks_c-08sNawh8,11940 -charset_normalizer/cli/__pycache__/__init__.cpython-312.pyc,, -charset_normalizer/cli/__pycache__/__main__.cpython-312.pyc,, -charset_normalizer/constant.py,sha256=yvLAWDrdSC743Cu4amhwHLIO-FGuRTOTZouCzZKGikc,44431 -charset_normalizer/legacy.py,sha256=yBIFMNABNPE5JkdKOWyVo36fZtV9nm8bf37LrDWulz8,2661 -charset_normalizer/md.cpython-312-x86_64-linux-gnu.so,sha256=iYaQbya7NVRR7xg5FtK1yAKS5shmTFwmtkqqQbbvEWs,15912 -charset_normalizer/md.py,sha256=AYCdfDX79FrgoId3zXqmbCuDcbGr1NRuGqgJN94Rx9Q,30441 -charset_normalizer/models.py,sha256=FbaQnI6ECmVmyHRSvVM5fHNeMAQ3KSGdwLjGcQqWDws,12821 -charset_normalizer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -charset_normalizer/utils.py,sha256=9cpi-_0-vC9pGDfuoarhC6VlF_Jxwx5Jsa_8I4w2D8k,12282 -charset_normalizer/version.py,sha256=2LxFuGp3BBuIwt95cp64y7v8bCNHcMAi08IfXt_47Co,115 diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/WHEEL b/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/WHEEL deleted file mode 100644 index 0493eaf..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/WHEEL +++ /dev/null @@ -1,7 +0,0 @@ -Wheel-Version: 1.0 -Generator: setuptools (82.0.1) -Root-Is-Purelib: false -Tag: cp312-cp312-manylinux_2_17_x86_64 -Tag: cp312-cp312-manylinux2014_x86_64 -Tag: cp312-cp312-manylinux_2_28_x86_64 - diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/entry_points.txt b/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/entry_points.txt deleted file mode 100644 index 65619e7..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/entry_points.txt +++ /dev/null @@ -1,2 +0,0 @@ -[console_scripts] -normalizer = charset_normalizer.cli:cli_detect diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/licenses/LICENSE b/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/licenses/LICENSE deleted file mode 100644 index 9725772..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/licenses/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2025 TAHRI Ahmed R. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/top_level.txt b/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/top_level.txt deleted file mode 100644 index 89847be..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/top_level.txt +++ /dev/null @@ -1,2 +0,0 @@ -81d243bd2c585b0f4821__mypyc -charset_normalizer diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__init__.py b/.venv/lib/python3.12/site-packages/charset_normalizer/__init__.py deleted file mode 100644 index 0d3a379..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/__init__.py +++ /dev/null @@ -1,48 +0,0 @@ -""" -Charset-Normalizer -~~~~~~~~~~~~~~ -The Real First Universal Charset Detector. -A library that helps you read text from an unknown charset encoding. -Motivated by chardet, This package is trying to resolve the issue by taking a new approach. -All IANA character set names for which the Python core library provides codecs are supported. - -Basic usage: - >>> from charset_normalizer import from_bytes - >>> results = from_bytes('Bсеки човек има право на образование. Oбразованието!'.encode('utf_8')) - >>> best_guess = results.best() - >>> str(best_guess) - 'Bсеки човек има право на образование. Oбразованието!' - -Others methods and usages are available - see the full documentation -at . -:copyright: (c) 2021 by Ahmed TAHRI -:license: MIT, see LICENSE for more details. -""" - -from __future__ import annotations - -import logging - -from .api import from_bytes, from_fp, from_path, is_binary -from .legacy import detect -from .models import CharsetMatch, CharsetMatches -from .utils import set_logging_handler -from .version import VERSION, __version__ - -__all__ = ( - "from_fp", - "from_path", - "from_bytes", - "is_binary", - "detect", - "CharsetMatch", - "CharsetMatches", - "__version__", - "VERSION", - "set_logging_handler", -) - -# Attach a NullHandler to the top level logger by default -# https://docs.python.org/3.3/howto/logging.html#configuring-logging-for-a-library - -logging.getLogger("charset_normalizer").addHandler(logging.NullHandler()) diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__main__.py b/.venv/lib/python3.12/site-packages/charset_normalizer/__main__.py deleted file mode 100644 index e0e76f7..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/__main__.py +++ /dev/null @@ -1,6 +0,0 @@ -from __future__ import annotations - -from .cli import cli_detect - -if __name__ == "__main__": - cli_detect() diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 85a0b6a..0000000 Binary files a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__main__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__main__.cpython-312.pyc deleted file mode 100644 index 69a5a6c..0000000 Binary files a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__main__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/api.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/api.cpython-312.pyc deleted file mode 100644 index a0545b8..0000000 Binary files a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/api.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/cd.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/cd.cpython-312.pyc deleted file mode 100644 index 8c9d56a..0000000 Binary files a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/cd.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/constant.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/constant.cpython-312.pyc deleted file mode 100644 index 840da95..0000000 Binary files a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/constant.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/legacy.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/legacy.cpython-312.pyc deleted file mode 100644 index 0321b11..0000000 Binary files a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/legacy.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/md.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/md.cpython-312.pyc deleted file mode 100644 index d88453a..0000000 Binary files a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/md.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/models.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/models.cpython-312.pyc deleted file mode 100644 index c58a45c..0000000 Binary files a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/models.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/utils.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/utils.cpython-312.pyc deleted file mode 100644 index c65b880..0000000 Binary files a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/utils.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/version.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/version.cpython-312.pyc deleted file mode 100644 index bf28e09..0000000 Binary files a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/version.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/api.py b/.venv/lib/python3.12/site-packages/charset_normalizer/api.py deleted file mode 100644 index 50cb955..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/api.py +++ /dev/null @@ -1,988 +0,0 @@ -from __future__ import annotations - -import logging -from os import PathLike -from typing import BinaryIO - -from .cd import ( - coherence_ratio, - encoding_languages, - mb_encoding_languages, - merge_coherence_ratios, -) -from .constant import ( - IANA_SUPPORTED, - IANA_SUPPORTED_SIMILAR, - TOO_BIG_SEQUENCE, - TOO_SMALL_SEQUENCE, - TRACE, -) -from .md import mess_ratio -from .models import CharsetMatch, CharsetMatches -from .utils import ( - any_specified_encoding, - cut_sequence_chunks, - iana_name, - identify_sig_or_bom, - is_multi_byte_encoding, - should_strip_sig_or_bom, -) - -logger = logging.getLogger("charset_normalizer") -explain_handler = logging.StreamHandler() -explain_handler.setFormatter( - logging.Formatter("%(asctime)s | %(levelname)s | %(message)s") -) - -# Pre-compute a reordered encoding list: multibyte first, then single-byte. -# This allows the mb_definitive_match optimization to fire earlier, skipping -# all single-byte encodings for genuine CJK content. Multibyte codecs -# hard-fail (UnicodeDecodeError) on single-byte data almost instantly, so -# testing them first costs negligible time for non-CJK files. -_mb_supported: list[str] = [] -_sb_supported: list[str] = [] - -for _supported_enc in IANA_SUPPORTED: - try: - if is_multi_byte_encoding(_supported_enc): - _mb_supported.append(_supported_enc) - else: - _sb_supported.append(_supported_enc) - except ImportError: - _sb_supported.append(_supported_enc) - -IANA_SUPPORTED_MB_FIRST: list[str] = _mb_supported + _sb_supported - - -def from_bytes( - sequences: bytes | bytearray, - steps: int = 5, - chunk_size: int = 512, - threshold: float = 0.2, - cp_isolation: list[str] | None = None, - cp_exclusion: list[str] | None = None, - preemptive_behaviour: bool = True, - explain: bool = False, - language_threshold: float = 0.1, - enable_fallback: bool = True, -) -> CharsetMatches: - """ - Given a raw bytes sequence, return the best possibles charset usable to render str objects. - If there is no results, it is a strong indicator that the source is binary/not text. - By default, the process will extract 5 blocks of 512o each to assess the mess and coherence of a given sequence. - And will give up a particular code page after 20% of measured mess. Those criteria are customizable at will. - - The preemptive behavior DOES NOT replace the traditional detection workflow, it prioritize a particular code page - but never take it for granted. Can improve the performance. - - You may want to focus your attention to some code page or/and not others, use cp_isolation and cp_exclusion for that - purpose. - - This function will strip the SIG in the payload/sequence every time except on UTF-16, UTF-32. - By default the library does not setup any handler other than the NullHandler, if you choose to set the 'explain' - toggle to True it will alter the logger configuration to add a StreamHandler that is suitable for debugging. - Custom logging format and handler can be set manually. - """ - - if not isinstance(sequences, (bytearray, bytes)): - raise TypeError( - "Expected object of type bytes or bytearray, got: {}".format( - type(sequences) - ) - ) - - if explain: - previous_logger_level: int = logger.level - logger.addHandler(explain_handler) - logger.setLevel(TRACE) - - length: int = len(sequences) - - if length == 0: - logger.debug("Encoding detection on empty bytes, assuming utf_8 intention.") - if explain: # Defensive: ensure exit path clean handler - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - return CharsetMatches([CharsetMatch(sequences, "utf_8", 0.0, False, [], "")]) - - if cp_isolation is not None: - logger.log( - TRACE, - "cp_isolation is set. use this flag for debugging purpose. " - "limited list of encoding allowed : %s.", - ", ".join(cp_isolation), - ) - cp_isolation = [iana_name(cp, False) for cp in cp_isolation] - else: - cp_isolation = [] - - if cp_exclusion is not None: - logger.log( - TRACE, - "cp_exclusion is set. use this flag for debugging purpose. " - "limited list of encoding excluded : %s.", - ", ".join(cp_exclusion), - ) - cp_exclusion = [iana_name(cp, False) for cp in cp_exclusion] - else: - cp_exclusion = [] - - if length <= (chunk_size * steps): - logger.log( - TRACE, - "override steps (%i) and chunk_size (%i) as content does not fit (%i byte(s) given) parameters.", - steps, - chunk_size, - length, - ) - steps = 1 - chunk_size = length - - if steps > 1 and length / steps < chunk_size: - chunk_size = int(length / steps) - - is_too_small_sequence: bool = len(sequences) < TOO_SMALL_SEQUENCE - is_too_large_sequence: bool = len(sequences) >= TOO_BIG_SEQUENCE - - if is_too_small_sequence: - logger.log( - TRACE, - "Trying to detect encoding from a tiny portion of ({}) byte(s).".format( - length - ), - ) - elif is_too_large_sequence: - logger.log( - TRACE, - "Using lazy str decoding because the payload is quite large, ({}) byte(s).".format( - length - ), - ) - - prioritized_encodings: list[str] = [] - - specified_encoding: str | None = ( - any_specified_encoding(sequences) if preemptive_behaviour else None - ) - - if specified_encoding is not None: - prioritized_encodings.append(specified_encoding) - logger.log( - TRACE, - "Detected declarative mark in sequence. Priority +1 given for %s.", - specified_encoding, - ) - - tested: set[str] = set() - tested_but_hard_failure: list[str] = [] - tested_but_soft_failure: list[str] = [] - soft_failure_skip: set[str] = set() - success_fast_tracked: set[str] = set() - - # Cache for decoded payload deduplication: hash(decoded_payload) -> (mean_mess_ratio, cd_ratios_merged, passed) - # When multiple encodings decode to the exact same string, we can skip the expensive - # mess_ratio and coherence_ratio analysis and reuse the results from the first encoding. - payload_result_cache: dict[int, tuple[float, list[tuple[str, float]], bool]] = {} - - # When a definitive result (chaos=0.0 and good coherence) is found after testing - # the prioritized encodings (ascii, utf_8), we can significantly reduce the remaining - # work. Encodings that target completely different language families (e.g., Cyrillic - # when the definitive match is Latin) are skipped entirely. - # Additionally, for same-family encodings that pass chaos probing, we reuse the - # definitive match's coherence ratios instead of recomputing them — a major savings - # since coherence_ratio accounts for ~30% of total time on slow Latin files. - definitive_match_found: bool = False - definitive_target_languages: set[str] = set() - # After the definitive match fires, we cap the number of additional same-family - # single-byte encodings that pass chaos probing. Once we've accumulated enough - # good candidates (N), further same-family SB encodings are unlikely to produce - # a better best() result and just waste mess_ratio + coherence_ratio time. - # The first encoding to trigger the definitive match is NOT counted (it's already in). - post_definitive_sb_success_count: int = 0 - POST_DEFINITIVE_SB_CAP: int = 7 - - # When a non-UTF multibyte encoding passes chaos probing with significant multibyte - # content (decoded length < 98% of raw length), skip all remaining single-byte encodings. - # Rationale: multi-byte decoders (CJK) have strict byte-sequence validation — if they - # decode without error AND pass chaos probing with substantial multibyte content, the - # data is genuinely multibyte encoded. Single-byte encodings will always decode (every - # byte maps to something) but waste time on mess_ratio before failing. - # The 98% threshold prevents false triggers on files that happen to have a few valid - # multibyte pairs (e.g., cp424/_ude_1.txt where big5 decodes with 99% ratio). - mb_definitive_match_found: bool = False - - fallback_ascii: CharsetMatch | None = None - fallback_u8: CharsetMatch | None = None - fallback_specified: CharsetMatch | None = None - - results: CharsetMatches = CharsetMatches() - - early_stop_results: CharsetMatches = CharsetMatches() - - sig_encoding, sig_payload = identify_sig_or_bom(sequences) - - if sig_encoding is not None: - prioritized_encodings.append(sig_encoding) - logger.log( - TRACE, - "Detected a SIG or BOM mark on first %i byte(s). Priority +1 given for %s.", - len(sig_payload), - sig_encoding, - ) - - prioritized_encodings.append("ascii") - - if "utf_8" not in prioritized_encodings: - prioritized_encodings.append("utf_8") - - for encoding_iana in prioritized_encodings + IANA_SUPPORTED_MB_FIRST: - if cp_isolation and encoding_iana not in cp_isolation: - continue - - if cp_exclusion and encoding_iana in cp_exclusion: - continue - - if encoding_iana in tested: - continue - - tested.add(encoding_iana) - - decoded_payload: str | None = None - bom_or_sig_available: bool = sig_encoding == encoding_iana - strip_sig_or_bom: bool = bom_or_sig_available and should_strip_sig_or_bom( - encoding_iana - ) - - if encoding_iana in {"utf_16", "utf_32"} and not bom_or_sig_available: - logger.log( - TRACE, - "Encoding %s won't be tested as-is because it require a BOM. Will try some sub-encoder LE/BE.", - encoding_iana, - ) - continue - if encoding_iana in {"utf_7"} and not bom_or_sig_available: - logger.log( - TRACE, - "Encoding %s won't be tested as-is because detection is unreliable without BOM/SIG.", - encoding_iana, - ) - continue - - # Skip encodings similar to ones that already soft-failed (high mess ratio). - # Checked BEFORE the expensive decode attempt. - if encoding_iana in soft_failure_skip: - logger.log( - TRACE, - "%s is deemed too similar to a code page that was already considered unsuited. Continuing!", - encoding_iana, - ) - continue - - # Skip encodings that were already fast-tracked from a similar successful encoding. - if encoding_iana in success_fast_tracked: - logger.log( - TRACE, - "Skipping %s: already fast-tracked from a similar successful encoding.", - encoding_iana, - ) - continue - - try: - is_multi_byte_decoder: bool = is_multi_byte_encoding(encoding_iana) - except (ModuleNotFoundError, ImportError): # Defensive: - logger.log( - TRACE, - "Encoding %s does not provide an IncrementalDecoder", - encoding_iana, - ) - continue - - # When we've already found a definitive match (chaos=0.0 with good coherence) - # after testing the prioritized encodings, skip encodings that target - # completely different language families. This avoids running expensive - # mess_ratio + coherence_ratio on clearly unrelated candidates (e.g., Cyrillic - # when the definitive match is Latin-based). - if definitive_match_found: - if not is_multi_byte_decoder: - enc_languages = set(encoding_languages(encoding_iana)) - else: - enc_languages = set(mb_encoding_languages(encoding_iana)) - if not enc_languages.intersection(definitive_target_languages): - logger.log( - TRACE, - "Skipping %s: definitive match already found, this encoding targets different languages (%s vs %s).", - encoding_iana, - enc_languages, - definitive_target_languages, - ) - continue - - # After the definitive match, cap the number of additional same-family - # single-byte encodings that pass chaos probing. This avoids testing the - # tail of rare, low-value same-family encodings (mac_iceland, cp860, etc.) - # that almost never change best() but each cost ~1-2ms of mess_ratio + coherence. - if ( - definitive_match_found - and not is_multi_byte_decoder - and post_definitive_sb_success_count >= POST_DEFINITIVE_SB_CAP - ): - logger.log( - TRACE, - "Skipping %s: already accumulated %d same-family results after definitive match (cap=%d).", - encoding_iana, - post_definitive_sb_success_count, - POST_DEFINITIVE_SB_CAP, - ) - continue - - # When a multibyte encoding with significant multibyte content has already - # passed chaos probing, skip all single-byte encodings. They will either fail - # chaos probing (wasting mess_ratio time) or produce inferior results. - if mb_definitive_match_found and not is_multi_byte_decoder: - logger.log( - TRACE, - "Skipping single-byte %s: multi-byte definitive match already found.", - encoding_iana, - ) - continue - - try: - if is_too_large_sequence and is_multi_byte_decoder is False: - str( - ( - sequences[: int(50e4)] - if strip_sig_or_bom is False - else sequences[len(sig_payload) : int(50e4)] - ), - encoding=encoding_iana, - ) - else: - # UTF-7 BOM is encoded in modified Base64 whose byte boundary - # can overlap with the next character. Stripping raw SIG bytes - # before decoding may leave stray bytes that decode as garbage. - # Decode the full sequence and remove the leading BOM char instead. - # see https://github.com/jawah/charset_normalizer/issues/718 - # and https://github.com/jawah/charset_normalizer/issues/716 - if encoding_iana == "utf_7" and bom_or_sig_available: - decoded_payload = str( - sequences, - encoding=encoding_iana, - ) - if decoded_payload and decoded_payload[0] == "\ufeff": - decoded_payload = decoded_payload[1:] - else: - decoded_payload = str( - ( - sequences - if strip_sig_or_bom is False - else sequences[len(sig_payload) :] - ), - encoding=encoding_iana, - ) - except (UnicodeDecodeError, LookupError) as e: - if not isinstance(e, LookupError): - logger.log( - TRACE, - "Code page %s does not fit given bytes sequence at ALL. %s", - encoding_iana, - str(e), - ) - tested_but_hard_failure.append(encoding_iana) - continue - - r_ = range( - 0 if not bom_or_sig_available else len(sig_payload), - length, - int(length / steps), - ) - - multi_byte_bonus: bool = ( - is_multi_byte_decoder - and decoded_payload is not None - and len(decoded_payload) < length - ) - - if multi_byte_bonus: - logger.log( - TRACE, - "Code page %s is a multi byte encoding table and it appear that at least one character " - "was encoded using n-bytes.", - encoding_iana, - ) - - # Payload-hash deduplication: if another encoding already decoded to the - # exact same string, reuse its mess_ratio and coherence results entirely. - # This is strictly more general than the old IANA_SUPPORTED_SIMILAR approach - # because it catches ALL identical decoding, not just pre-mapped ones. - if decoded_payload is not None and not is_multi_byte_decoder: - payload_hash: int = hash(decoded_payload) - cached = payload_result_cache.get(payload_hash) - if cached is not None: - cached_mess, cached_cd, cached_passed = cached - if cached_passed: - # The previous encoding with identical output passed chaos probing. - fast_match = CharsetMatch( - sequences, - encoding_iana, - cached_mess, - bom_or_sig_available, - cached_cd, - ( - decoded_payload - if ( - is_too_large_sequence is False - or encoding_iana - in [specified_encoding, "ascii", "utf_8"] - ) - else None - ), - preemptive_declaration=specified_encoding, - ) - results.append(fast_match) - success_fast_tracked.add(encoding_iana) - logger.log( - TRACE, - "%s fast-tracked (identical decoded payload to a prior encoding, chaos=%f %%).", - encoding_iana, - round(cached_mess * 100, ndigits=3), - ) - - if ( - encoding_iana in [specified_encoding, "ascii", "utf_8"] - and cached_mess < 0.1 - ): - if cached_mess == 0.0: - logger.debug( - "Encoding detection: %s is most likely the one.", - fast_match.encoding, - ) - if explain: - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - return CharsetMatches([fast_match]) - early_stop_results.append(fast_match) - - if ( - len(early_stop_results) - and (specified_encoding is None or specified_encoding in tested) - and "ascii" in tested - and "utf_8" in tested - ): - probable_result: CharsetMatch = early_stop_results.best() # type: ignore[assignment] - logger.debug( - "Encoding detection: %s is most likely the one.", - probable_result.encoding, - ) - if explain: - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - return CharsetMatches([probable_result]) - - continue - else: - # The previous encoding with identical output failed chaos probing. - tested_but_soft_failure.append(encoding_iana) - logger.log( - TRACE, - "%s fast-skipped (identical decoded payload to a prior encoding that failed chaos probing).", - encoding_iana, - ) - # Prepare fallbacks for special encodings even when skipped. - if enable_fallback and encoding_iana in [ - "ascii", - "utf_8", - specified_encoding, - "utf_16", - "utf_32", - ]: - fallback_entry = CharsetMatch( - sequences, - encoding_iana, - threshold, - bom_or_sig_available, - [], - decoded_payload, - preemptive_declaration=specified_encoding, - ) - if encoding_iana == specified_encoding: - fallback_specified = fallback_entry - elif encoding_iana == "ascii": - fallback_ascii = fallback_entry - else: - fallback_u8 = fallback_entry - continue - - max_chunk_gave_up: int = int(len(r_) / 4) - - max_chunk_gave_up = max(max_chunk_gave_up, 2) - early_stop_count: int = 0 - lazy_str_hard_failure = False - - md_chunks: list[str] = [] - md_ratios = [] - - try: - for chunk in cut_sequence_chunks( - sequences, - encoding_iana, - r_, - chunk_size, - bom_or_sig_available, - strip_sig_or_bom, - sig_payload, - is_multi_byte_decoder, - decoded_payload, - ): - md_chunks.append(chunk) - - md_ratios.append( - mess_ratio( - chunk, - threshold, - explain is True and 1 <= len(cp_isolation) <= 2, - ) - ) - - if md_ratios[-1] >= threshold: - early_stop_count += 1 - - if (early_stop_count >= max_chunk_gave_up) or ( - bom_or_sig_available and strip_sig_or_bom is False - ): - break - except ( - UnicodeDecodeError - ) as e: # Lazy str loading may have missed something there - logger.log( - TRACE, - "LazyStr Loading: After MD chunk decode, code page %s does not fit given bytes sequence at ALL. %s", - encoding_iana, - str(e), - ) - early_stop_count = max_chunk_gave_up - lazy_str_hard_failure = True - - # We might want to check the sequence again with the whole content - # Only if initial MD tests passes - if ( - not lazy_str_hard_failure - and is_too_large_sequence - and not is_multi_byte_decoder - ): - try: - sequences[int(50e3) :].decode(encoding_iana, errors="strict") - except UnicodeDecodeError as e: - logger.log( - TRACE, - "LazyStr Loading: After final lookup, code page %s does not fit given bytes sequence at ALL. %s", - encoding_iana, - str(e), - ) - tested_but_hard_failure.append(encoding_iana) - continue - - mean_mess_ratio: float = sum(md_ratios) / len(md_ratios) if md_ratios else 0.0 - if mean_mess_ratio >= threshold or early_stop_count >= max_chunk_gave_up: - tested_but_soft_failure.append(encoding_iana) - if encoding_iana in IANA_SUPPORTED_SIMILAR: - soft_failure_skip.update(IANA_SUPPORTED_SIMILAR[encoding_iana]) - # Cache this soft-failure so identical decoding from other encodings - # can be skipped immediately. - if decoded_payload is not None and not is_multi_byte_decoder: - payload_result_cache.setdefault( - hash(decoded_payload), (mean_mess_ratio, [], False) - ) - logger.log( - TRACE, - "%s was excluded because of initial chaos probing. Gave up %i time(s). " - "Computed mean chaos is %f %%.", - encoding_iana, - early_stop_count, - round(mean_mess_ratio * 100, ndigits=3), - ) - # Preparing those fallbacks in case we got nothing. - if ( - enable_fallback - and encoding_iana - in ["ascii", "utf_8", specified_encoding, "utf_16", "utf_32"] - and not lazy_str_hard_failure - ): - fallback_entry = CharsetMatch( - sequences, - encoding_iana, - threshold, - bom_or_sig_available, - [], - decoded_payload, - preemptive_declaration=specified_encoding, - ) - if encoding_iana == specified_encoding: - fallback_specified = fallback_entry - elif encoding_iana == "ascii": - fallback_ascii = fallback_entry - else: - fallback_u8 = fallback_entry - continue - - logger.log( - TRACE, - "%s passed initial chaos probing. Mean measured chaos is %f %%", - encoding_iana, - round(mean_mess_ratio * 100, ndigits=3), - ) - - if not is_multi_byte_decoder: - target_languages: list[str] = encoding_languages(encoding_iana) - else: - target_languages = mb_encoding_languages(encoding_iana) - - if target_languages: - logger.log( - TRACE, - "{} should target any language(s) of {}".format( - encoding_iana, str(target_languages) - ), - ) - - cd_ratios = [] - - # Run coherence detection on all chunks. We previously tried limiting to - # 1-2 chunks for post-definitive encodings to save time, but this caused - # coverage regressions by producing unrepresentative coherence scores. - # The SB cap and language-family skip optimizations provide sufficient - # speedup without sacrificing coherence accuracy. - if encoding_iana != "ascii": - # We shall skip the CD when its about ASCII - # Most of the time its not relevant to run "language-detection" on it. - for chunk in md_chunks: - chunk_languages = coherence_ratio( - chunk, - language_threshold, - ",".join(target_languages) if target_languages else None, - ) - - cd_ratios.append(chunk_languages) - cd_ratios_merged = merge_coherence_ratios(cd_ratios) - else: - cd_ratios_merged = merge_coherence_ratios(cd_ratios) - - if cd_ratios_merged: - logger.log( - TRACE, - "We detected language {} using {}".format( - cd_ratios_merged, encoding_iana - ), - ) - - current_match = CharsetMatch( - sequences, - encoding_iana, - mean_mess_ratio, - bom_or_sig_available, - cd_ratios_merged, - ( - decoded_payload - if ( - is_too_large_sequence is False - or encoding_iana in [specified_encoding, "ascii", "utf_8"] - ) - else None - ), - preemptive_declaration=specified_encoding, - ) - - results.append(current_match) - - # Cache the successful result for payload-hash deduplication. - if decoded_payload is not None and not is_multi_byte_decoder: - payload_result_cache.setdefault( - hash(decoded_payload), - (mean_mess_ratio, cd_ratios_merged, True), - ) - - # Count post-definitive same-family SB successes for the early termination cap. - # Only count low-mess encodings (< 2%) toward the cap. High-mess encodings are - # marginal results that shouldn't prevent better-quality candidates from being - # tested. For example, iso8859_4 (mess=0%) should not be skipped just because - # 7 high-mess Latin encodings (cp1252 at 8%, etc.) were tried first. - if ( - definitive_match_found - and not is_multi_byte_decoder - and mean_mess_ratio < 0.02 - ): - post_definitive_sb_success_count += 1 - - if ( - encoding_iana in [specified_encoding, "ascii", "utf_8"] - and mean_mess_ratio < 0.1 - ): - # If md says nothing to worry about, then... stop immediately! - if mean_mess_ratio == 0.0: - logger.debug( - "Encoding detection: %s is most likely the one.", - current_match.encoding, - ) - if explain: # Defensive: ensure exit path clean handler - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - return CharsetMatches([current_match]) - - early_stop_results.append(current_match) - - if ( - len(early_stop_results) - and (specified_encoding is None or specified_encoding in tested) - and "ascii" in tested - and "utf_8" in tested - ): - probable_result = early_stop_results.best() # type: ignore[assignment] - logger.debug( - "Encoding detection: %s is most likely the one.", - probable_result.encoding, # type: ignore[union-attr] - ) - if explain: # Defensive: ensure exit path clean handler - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - - return CharsetMatches([probable_result]) - - # Once we find a result with good coherence (>= 0.5) after testing the - # prioritized encodings (ascii, utf_8), activate "definitive mode": skip - # encodings that target completely different language families. This avoids - # running expensive mess_ratio + coherence_ratio on clearly unrelated - # candidates (e.g., Cyrillic encodings when the match is Latin-based). - # We require coherence >= 0.5 to avoid false positives (e.g., cp1251 decoding - # Hebrew text with 0.0 chaos but wrong language detection at coherence 0.33). - if not definitive_match_found and not is_multi_byte_decoder: - best_coherence = ( - max((v for _, v in cd_ratios_merged), default=0.0) - if cd_ratios_merged - else 0.0 - ) - if best_coherence >= 0.5 and "ascii" in tested and "utf_8" in tested: - definitive_match_found = True - definitive_target_languages.update(target_languages) - logger.log( - TRACE, - "Definitive match found: %s (chaos=%.3f, coherence=%.2f). Encodings targeting different language families will be skipped.", - encoding_iana, - mean_mess_ratio, - best_coherence, - ) - - # When a non-UTF multibyte encoding passes chaos probing with significant - # multibyte content (decoded < 98% of raw), activate mb_definitive_match. - # This skips all remaining single-byte encodings which would either soft-fail - # (running expensive mess_ratio for nothing) or produce inferior results. - if ( - not mb_definitive_match_found - and is_multi_byte_decoder - and multi_byte_bonus - and decoded_payload is not None - and len(decoded_payload) < length * 0.98 - and encoding_iana - not in { - "utf_8", - "utf_8_sig", - "utf_16", - "utf_16_be", - "utf_16_le", - "utf_32", - "utf_32_be", - "utf_32_le", - "utf_7", - } - and "ascii" in tested - and "utf_8" in tested - ): - mb_definitive_match_found = True - logger.log( - TRACE, - "Multi-byte definitive match: %s (chaos=%.3f, decoded=%d/%d=%.1f%%). Single-byte encodings will be skipped.", - encoding_iana, - mean_mess_ratio, - len(decoded_payload), - length, - len(decoded_payload) / length * 100, - ) - - if encoding_iana == sig_encoding: - logger.debug( - "Encoding detection: %s is most likely the one as we detected a BOM or SIG within " - "the beginning of the sequence.", - encoding_iana, - ) - if explain: # Defensive: ensure exit path clean handler - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - return CharsetMatches([results[encoding_iana]]) - - if len(results) == 0: - if fallback_u8 or fallback_ascii or fallback_specified: - logger.log( - TRACE, - "Nothing got out of the detection process. Using ASCII/UTF-8/Specified fallback.", - ) - - if fallback_specified: - logger.debug( - "Encoding detection: %s will be used as a fallback match", - fallback_specified.encoding, - ) - results.append(fallback_specified) - elif ( - (fallback_u8 and fallback_ascii is None) - or ( - fallback_u8 - and fallback_ascii - and fallback_u8.fingerprint != fallback_ascii.fingerprint - ) - or (fallback_u8 is not None) - ): - logger.debug("Encoding detection: utf_8 will be used as a fallback match") - results.append(fallback_u8) - elif fallback_ascii: - logger.debug("Encoding detection: ascii will be used as a fallback match") - results.append(fallback_ascii) - - if results: - logger.debug( - "Encoding detection: Found %s as plausible (best-candidate) for content. With %i alternatives.", - results.best().encoding, # type: ignore - len(results) - 1, - ) - else: - logger.debug("Encoding detection: Unable to determine any suitable charset.") - - if explain: - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - - return results - - -def from_fp( - fp: BinaryIO, - steps: int = 5, - chunk_size: int = 512, - threshold: float = 0.20, - cp_isolation: list[str] | None = None, - cp_exclusion: list[str] | None = None, - preemptive_behaviour: bool = True, - explain: bool = False, - language_threshold: float = 0.1, - enable_fallback: bool = True, -) -> CharsetMatches: - """ - Same thing than the function from_bytes but using a file pointer that is already ready. - Will not close the file pointer. - """ - return from_bytes( - fp.read(), - steps, - chunk_size, - threshold, - cp_isolation, - cp_exclusion, - preemptive_behaviour, - explain, - language_threshold, - enable_fallback, - ) - - -def from_path( - path: str | bytes | PathLike, # type: ignore[type-arg] - steps: int = 5, - chunk_size: int = 512, - threshold: float = 0.20, - cp_isolation: list[str] | None = None, - cp_exclusion: list[str] | None = None, - preemptive_behaviour: bool = True, - explain: bool = False, - language_threshold: float = 0.1, - enable_fallback: bool = True, -) -> CharsetMatches: - """ - Same thing than the function from_bytes but with one extra step. Opening and reading given file path in binary mode. - Can raise IOError. - """ - with open(path, "rb") as fp: - return from_fp( - fp, - steps, - chunk_size, - threshold, - cp_isolation, - cp_exclusion, - preemptive_behaviour, - explain, - language_threshold, - enable_fallback, - ) - - -def is_binary( - fp_or_path_or_payload: PathLike | str | BinaryIO | bytes, # type: ignore[type-arg] - steps: int = 5, - chunk_size: int = 512, - threshold: float = 0.20, - cp_isolation: list[str] | None = None, - cp_exclusion: list[str] | None = None, - preemptive_behaviour: bool = True, - explain: bool = False, - language_threshold: float = 0.1, - enable_fallback: bool = False, -) -> bool: - """ - Detect if the given input (file, bytes, or path) points to a binary file. aka. not a string. - Based on the same main heuristic algorithms and default kwargs at the sole exception that fallbacks match - are disabled to be stricter around ASCII-compatible but unlikely to be a string. - """ - if isinstance(fp_or_path_or_payload, (str, PathLike)): - guesses = from_path( - fp_or_path_or_payload, - steps=steps, - chunk_size=chunk_size, - threshold=threshold, - cp_isolation=cp_isolation, - cp_exclusion=cp_exclusion, - preemptive_behaviour=preemptive_behaviour, - explain=explain, - language_threshold=language_threshold, - enable_fallback=enable_fallback, - ) - elif isinstance( - fp_or_path_or_payload, - ( - bytes, - bytearray, - ), - ): - guesses = from_bytes( - fp_or_path_or_payload, - steps=steps, - chunk_size=chunk_size, - threshold=threshold, - cp_isolation=cp_isolation, - cp_exclusion=cp_exclusion, - preemptive_behaviour=preemptive_behaviour, - explain=explain, - language_threshold=language_threshold, - enable_fallback=enable_fallback, - ) - else: - guesses = from_fp( - fp_or_path_or_payload, - steps=steps, - chunk_size=chunk_size, - threshold=threshold, - cp_isolation=cp_isolation, - cp_exclusion=cp_exclusion, - preemptive_behaviour=preemptive_behaviour, - explain=explain, - language_threshold=language_threshold, - enable_fallback=enable_fallback, - ) - - return not guesses diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/cd.cpython-312-x86_64-linux-gnu.so b/.venv/lib/python3.12/site-packages/charset_normalizer/cd.cpython-312-x86_64-linux-gnu.so deleted file mode 100755 index dffe3e4..0000000 Binary files a/.venv/lib/python3.12/site-packages/charset_normalizer/cd.cpython-312-x86_64-linux-gnu.so and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/cd.py b/.venv/lib/python3.12/site-packages/charset_normalizer/cd.py deleted file mode 100644 index 9545d35..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/cd.py +++ /dev/null @@ -1,454 +0,0 @@ -from __future__ import annotations - -import importlib -from codecs import IncrementalDecoder -from collections import Counter -from functools import lru_cache -from typing import Counter as TypeCounter - -from .constant import ( - FREQUENCIES, - KO_NAMES, - LANGUAGE_SUPPORTED_COUNT, - TOO_SMALL_SEQUENCE, - ZH_NAMES, - _FREQUENCIES_SET, - _FREQUENCIES_RANK, -) -from .md import is_suspiciously_successive_range -from .models import CoherenceMatches -from .utils import ( - is_accentuated, - is_latin, - is_multi_byte_encoding, - is_unicode_range_secondary, - unicode_range, -) - - -def encoding_unicode_range(iana_name: str) -> list[str]: - """ - Return associated unicode ranges in a single byte code page. - """ - if is_multi_byte_encoding(iana_name): - raise OSError( # Defensive: - "Function not supported on multi-byte code page" - ) - - decoder = importlib.import_module(f"encodings.{iana_name}").IncrementalDecoder - - p: IncrementalDecoder = decoder(errors="ignore") - seen_ranges: dict[str, int] = {} - character_count: int = 0 - - for i in range(0x40, 0xFF): - chunk: str = p.decode(bytes([i])) - - if chunk: - character_range: str | None = unicode_range(chunk) - - if character_range is None: - continue - - if is_unicode_range_secondary(character_range) is False: - if character_range not in seen_ranges: - seen_ranges[character_range] = 0 - seen_ranges[character_range] += 1 - character_count += 1 - - return sorted( - [ - character_range - for character_range in seen_ranges - if seen_ranges[character_range] / character_count >= 0.15 - ] - ) - - -def unicode_range_languages(primary_range: str) -> list[str]: - """ - Return inferred languages used with a unicode range. - """ - languages: list[str] = [] - - for language, characters in FREQUENCIES.items(): - for character in characters: - if unicode_range(character) == primary_range: - languages.append(language) - break - - return languages - - -@lru_cache() -def encoding_languages(iana_name: str) -> list[str]: - """ - Single-byte encoding language association. Some code page are heavily linked to particular language(s). - This function does the correspondence. - """ - unicode_ranges: list[str] = encoding_unicode_range(iana_name) - primary_range: str | None = None - - for specified_range in unicode_ranges: - if "Latin" not in specified_range: - primary_range = specified_range - break - - if primary_range is None: - return ["Latin Based"] - - return unicode_range_languages(primary_range) - - -@lru_cache() -def mb_encoding_languages(iana_name: str) -> list[str]: - """ - Multi-byte encoding language association. Some code page are heavily linked to particular language(s). - This function does the correspondence. - """ - if ( - iana_name.startswith("shift_") - or iana_name.startswith("iso2022_jp") - or iana_name.startswith("euc_j") - or iana_name == "cp932" - ): - return ["Japanese"] - if iana_name.startswith("gb") or iana_name in ZH_NAMES: - return ["Chinese"] - if iana_name.startswith("iso2022_kr") or iana_name in KO_NAMES: - return ["Korean"] - - return [] - - -@lru_cache(maxsize=LANGUAGE_SUPPORTED_COUNT) -def get_target_features(language: str) -> tuple[bool, bool]: - """ - Determine main aspects from a supported language if it contains accents and if is pure Latin. - """ - target_have_accents: bool = False - target_pure_latin: bool = True - - for character in FREQUENCIES[language]: - if not target_have_accents and is_accentuated(character): - target_have_accents = True - if target_pure_latin and is_latin(character) is False: - target_pure_latin = False - - return target_have_accents, target_pure_latin - - -def alphabet_languages( - characters: list[str], ignore_non_latin: bool = False -) -> list[str]: - """ - Return associated languages associated to given characters. - """ - languages: list[tuple[str, float]] = [] - - characters_set: frozenset[str] = frozenset(characters) - source_have_accents = any(is_accentuated(character) for character in characters) - - for language, language_characters in FREQUENCIES.items(): - target_have_accents, target_pure_latin = get_target_features(language) - - if ignore_non_latin and target_pure_latin is False: - continue - - if target_have_accents is False and source_have_accents: - continue - - character_count: int = len(language_characters) - - character_match_count: int = len(_FREQUENCIES_SET[language] & characters_set) - - ratio: float = character_match_count / character_count - - if ratio >= 0.2: - languages.append((language, ratio)) - - languages = sorted(languages, key=lambda x: x[1], reverse=True) - - return [compatible_language[0] for compatible_language in languages] - - -def characters_popularity_compare( - language: str, ordered_characters: list[str] -) -> float: - """ - Determine if a ordered characters list (by occurrence from most appearance to rarest) match a particular language. - The result is a ratio between 0. (absolutely no correspondence) and 1. (near perfect fit). - Beware that is function is not strict on the match in order to ease the detection. (Meaning close match is 1.) - """ - if language not in FREQUENCIES: - raise ValueError(f"{language} not available") # Defensive: - - character_approved_count: int = 0 - frequencies_language_set: frozenset[str] = _FREQUENCIES_SET[language] - lang_rank: dict[str, int] = _FREQUENCIES_RANK[language] - - ordered_characters_count: int = len(ordered_characters) - target_language_characters_count: int = len(FREQUENCIES[language]) - - large_alphabet: bool = target_language_characters_count > 26 - - expected_projection_ratio: float = ( - target_language_characters_count / ordered_characters_count - ) - - # Pre-built rank dict for ordered_characters (avoids repeated list slicing). - ordered_rank: dict[str, int] = { - char: rank for rank, char in enumerate(ordered_characters) - } - - # Pre-compute characters common to both orderings. - # Avoids repeated `c in ordered_rank` dict lookups in the inner counts. - common_chars: list[tuple[int, int]] = [ - (lr, ordered_rank[c]) for c, lr in lang_rank.items() if c in ordered_rank - ] - - # Pre-extract lr and orr arrays for faster iteration in the inner loop. - # Plain integer loops with local arrays are much faster under mypyc than - # generator expression sums over a list of tuples. - common_count: int = len(common_chars) - common_lr: list[int] = [p[0] for p in common_chars] - common_orr: list[int] = [p[1] for p in common_chars] - - for character, character_rank in zip( - ordered_characters, range(0, ordered_characters_count) - ): - if character not in frequencies_language_set: - continue - - character_rank_in_language: int = lang_rank[character] - character_rank_projection: int = int(character_rank * expected_projection_ratio) - - if ( - large_alphabet is False - and abs(character_rank_projection - character_rank_in_language) > 4 - ): - continue - - if ( - large_alphabet is True - and abs(character_rank_projection - character_rank_in_language) - < target_language_characters_count / 3 - ): - character_approved_count += 1 - continue - - # Count how many characters appear "before" in both orderings, - # and how many appear "at or after" in both orderings. - # Single pass over pre-extracted arrays — much faster under mypyc - # than two generator expression sums. - before_match_count: int = 0 - after_match_count: int = 0 - for i in range(common_count): - lr_i: int = common_lr[i] - orr_i: int = common_orr[i] - if lr_i < character_rank_in_language: - if orr_i < character_rank: - before_match_count += 1 - else: - if orr_i >= character_rank: - after_match_count += 1 - - after_len: int = target_language_characters_count - character_rank_in_language - - if character_rank_in_language == 0 and before_match_count <= 4: - character_approved_count += 1 - continue - - if after_len == 0 and after_match_count <= 4: - character_approved_count += 1 - continue - - if ( - character_rank_in_language > 0 - and before_match_count / character_rank_in_language >= 0.4 - ) or (after_len > 0 and after_match_count / after_len >= 0.4): - character_approved_count += 1 - continue - - return character_approved_count / len(ordered_characters) - - -def alpha_unicode_split(decoded_sequence: str) -> list[str]: - """ - Given a decoded text sequence, return a list of str. Unicode range / alphabet separation. - Ex. a text containing English/Latin with a bit a Hebrew will return two items in the resulting list; - One containing the latin letters and the other hebrew. - """ - layers: dict[str, list[str]] = {} - - # Fast path: track single-layer key to skip dict iteration for single-script text. - single_layer_key: str | None = None - multi_layer: bool = False - - # Cache the last character_range and its resolved layer to avoid repeated - # is_suspiciously_successive_range calls for consecutive same-range chars. - prev_character_range: str | None = None - prev_layer_target: str | None = None - - for character in decoded_sequence: - if character.isalpha() is False: - continue - - # ASCII fast-path: a-z and A-Z are always "Basic Latin". - # Avoids unicode_range() function call overhead for the most common case. - character_ord: int = ord(character) - if character_ord < 128: - character_range: str | None = "Basic Latin" - else: - character_range = unicode_range(character) - - if character_range is None: - continue - - # Fast path: same range as previous character → reuse cached layer target. - if character_range == prev_character_range: - if prev_layer_target is not None: - layers[prev_layer_target].append(character) - continue - - layer_target_range: str | None = None - - if multi_layer: - for discovered_range in layers: - if ( - is_suspiciously_successive_range(discovered_range, character_range) - is False - ): - layer_target_range = discovered_range - break - elif single_layer_key is not None: - if ( - is_suspiciously_successive_range(single_layer_key, character_range) - is False - ): - layer_target_range = single_layer_key - - if layer_target_range is None: - layer_target_range = character_range - - if layer_target_range not in layers: - layers[layer_target_range] = [] - if single_layer_key is None: - single_layer_key = layer_target_range - else: - multi_layer = True - - layers[layer_target_range].append(character) - - # Cache for next iteration - prev_character_range = character_range - prev_layer_target = layer_target_range - - return ["".join(chars).lower() for chars in layers.values()] - - -def merge_coherence_ratios(results: list[CoherenceMatches]) -> CoherenceMatches: - """ - This function merge results previously given by the function coherence_ratio. - The return type is the same as coherence_ratio. - """ - per_language_ratios: dict[str, list[float]] = {} - for result in results: - for sub_result in result: - language, ratio = sub_result - if language not in per_language_ratios: - per_language_ratios[language] = [ratio] - continue - per_language_ratios[language].append(ratio) - - merge = [ - ( - language, - round( - sum(per_language_ratios[language]) / len(per_language_ratios[language]), - 4, - ), - ) - for language in per_language_ratios - ] - - return sorted(merge, key=lambda x: x[1], reverse=True) - - -def filter_alt_coherence_matches(results: CoherenceMatches) -> CoherenceMatches: - """ - We shall NOT return "English—" in CoherenceMatches because it is an alternative - of "English". This function only keeps the best match and remove the em-dash in it. - """ - index_results: dict[str, list[float]] = dict() - - for result in results: - language, ratio = result - no_em_name: str = language.replace("—", "") - - if no_em_name not in index_results: - index_results[no_em_name] = [] - - index_results[no_em_name].append(ratio) - - if any(len(index_results[e]) > 1 for e in index_results): - filtered_results: CoherenceMatches = [] - - for language in index_results: - filtered_results.append((language, max(index_results[language]))) - - return filtered_results - - return results - - -@lru_cache(maxsize=2048) -def coherence_ratio( - decoded_sequence: str, threshold: float = 0.1, lg_inclusion: str | None = None -) -> CoherenceMatches: - """ - Detect ANY language that can be identified in given sequence. The sequence will be analysed by layers. - A layer = Character extraction by alphabets/ranges. - """ - - results: list[tuple[str, float]] = [] - ignore_non_latin: bool = False - - sufficient_match_count: int = 0 - - lg_inclusion_list = lg_inclusion.split(",") if lg_inclusion is not None else [] - if "Latin Based" in lg_inclusion_list: - ignore_non_latin = True - lg_inclusion_list.remove("Latin Based") - - for layer in alpha_unicode_split(decoded_sequence): - sequence_frequencies: TypeCounter[str] = Counter(layer) - most_common = sequence_frequencies.most_common() - - character_count: int = len(layer) - - if character_count <= TOO_SMALL_SEQUENCE: - continue - - popular_character_ordered: list[str] = [c for c, o in most_common] - - for language in lg_inclusion_list or alphabet_languages( - popular_character_ordered, ignore_non_latin - ): - ratio: float = characters_popularity_compare( - language, popular_character_ordered - ) - - if ratio < threshold: - continue - elif ratio >= 0.8: - sufficient_match_count += 1 - - results.append((language, round(ratio, 4))) - - if sufficient_match_count >= 3: - break - - return sorted( - filter_alt_coherence_matches(results), key=lambda x: x[1], reverse=True - ) diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__init__.py b/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__init__.py deleted file mode 100644 index 543a5a4..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from __future__ import annotations - -from .__main__ import cli_detect, query_yes_no - -__all__ = ( - "cli_detect", - "query_yes_no", -) diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__main__.py b/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__main__.py deleted file mode 100644 index ad843c1..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__main__.py +++ /dev/null @@ -1,362 +0,0 @@ -from __future__ import annotations - -import argparse -import sys -import typing -from json import dumps -from os.path import abspath, basename, dirname, join, realpath -from platform import python_version -from unicodedata import unidata_version - -import charset_normalizer.md as md_module -from charset_normalizer import from_fp -from charset_normalizer.models import CliDetectionResult -from charset_normalizer.version import __version__ - - -def query_yes_no(question: str, default: str = "yes") -> bool: # Defensive: - """Ask a yes/no question via input() and return the answer as a bool.""" - prompt = " [Y/n] " if default == "yes" else " [y/N] " - - while True: - choice = input(question + prompt).strip().lower() - if not choice: - return default == "yes" - if choice in ("y", "yes"): - return True - if choice in ("n", "no"): - return False - print("Please respond with 'y' or 'n'.") - - -class FileType: - """Factory for creating file object types - - Instances of FileType are typically passed as type= arguments to the - ArgumentParser add_argument() method. - - Keyword Arguments: - - mode -- A string indicating how the file is to be opened. Accepts the - same values as the builtin open() function. - - bufsize -- The file's desired buffer size. Accepts the same values as - the builtin open() function. - - encoding -- The file's encoding. Accepts the same values as the - builtin open() function. - - errors -- A string indicating how encoding and decoding errors are to - be handled. Accepts the same value as the builtin open() function. - - Backported from CPython 3.12 - """ - - def __init__( - self, - mode: str = "r", - bufsize: int = -1, - encoding: str | None = None, - errors: str | None = None, - ): - self._mode = mode - self._bufsize = bufsize - self._encoding = encoding - self._errors = errors - - def __call__(self, string: str) -> typing.IO: # type: ignore[type-arg] - # the special argument "-" means sys.std{in,out} - if string == "-": - if "r" in self._mode: - return sys.stdin.buffer if "b" in self._mode else sys.stdin - elif any(c in self._mode for c in "wax"): - return sys.stdout.buffer if "b" in self._mode else sys.stdout - else: - msg = f'argument "-" with mode {self._mode}' - raise ValueError(msg) - - # all other arguments are used as file names - try: - return open(string, self._mode, self._bufsize, self._encoding, self._errors) - except OSError as e: - message = f"can't open '{string}': {e}" - raise argparse.ArgumentTypeError(message) - - def __repr__(self) -> str: - args = self._mode, self._bufsize - kwargs = [("encoding", self._encoding), ("errors", self._errors)] - args_str = ", ".join( - [repr(arg) for arg in args if arg != -1] - + [f"{kw}={arg!r}" for kw, arg in kwargs if arg is not None] - ) - return f"{type(self).__name__}({args_str})" - - -def cli_detect(argv: list[str] | None = None) -> int: - """ - CLI assistant using ARGV and ArgumentParser - :param argv: - :return: 0 if everything is fine, anything else equal trouble - """ - parser = argparse.ArgumentParser( - description="The Real First Universal Charset Detector. " - "Discover originating encoding used on text file. " - "Normalize text to unicode." - ) - - parser.add_argument( - "files", type=FileType("rb"), nargs="+", help="File(s) to be analysed" - ) - parser.add_argument( - "-v", - "--verbose", - action="store_true", - default=False, - dest="verbose", - help="Display complementary information about file if any. " - "Stdout will contain logs about the detection process.", - ) - parser.add_argument( - "-a", - "--with-alternative", - action="store_true", - default=False, - dest="alternatives", - help="Output complementary possibilities if any. Top-level JSON WILL be a list.", - ) - parser.add_argument( - "-n", - "--normalize", - action="store_true", - default=False, - dest="normalize", - help="Permit to normalize input file. If not set, program does not write anything.", - ) - parser.add_argument( - "-m", - "--minimal", - action="store_true", - default=False, - dest="minimal", - help="Only output the charset detected to STDOUT. Disabling JSON output.", - ) - parser.add_argument( - "-r", - "--replace", - action="store_true", - default=False, - dest="replace", - help="Replace file when trying to normalize it instead of creating a new one.", - ) - parser.add_argument( - "-f", - "--force", - action="store_true", - default=False, - dest="force", - help="Replace file without asking if you are sure, use this flag with caution.", - ) - parser.add_argument( - "-i", - "--no-preemptive", - action="store_true", - default=False, - dest="no_preemptive", - help="Disable looking at a charset declaration to hint the detector.", - ) - parser.add_argument( - "-t", - "--threshold", - action="store", - default=0.2, - type=float, - dest="threshold", - help="Define a custom maximum amount of noise allowed in decoded content. 0. <= noise <= 1.", - ) - parser.add_argument( - "--version", - action="version", - version="Charset-Normalizer {} - Python {} - Unicode {} - SpeedUp {}".format( - __version__, - python_version(), - unidata_version, - "OFF" if md_module.__file__.lower().endswith(".py") else "ON", - ), - help="Show version information and exit.", - ) - - args = parser.parse_args(argv) - - if args.replace is True and args.normalize is False: - if args.files: - for my_file in args.files: - my_file.close() - print("Use --replace in addition of --normalize only.", file=sys.stderr) - return 1 - - if args.force is True and args.replace is False: - if args.files: - for my_file in args.files: - my_file.close() - print("Use --force in addition of --replace only.", file=sys.stderr) - return 1 - - if args.threshold < 0.0 or args.threshold > 1.0: - if args.files: - for my_file in args.files: - my_file.close() - print("--threshold VALUE should be between 0. AND 1.", file=sys.stderr) - return 1 - - x_ = [] - - for my_file in args.files: - matches = from_fp( - my_file, - threshold=args.threshold, - explain=args.verbose, - preemptive_behaviour=args.no_preemptive is False, - ) - - best_guess = matches.best() - - if best_guess is None: - print( - 'Unable to identify originating encoding for "{}". {}'.format( - my_file.name, - ( - "Maybe try increasing maximum amount of chaos." - if args.threshold < 1.0 - else "" - ), - ), - file=sys.stderr, - ) - x_.append( - CliDetectionResult( - abspath(my_file.name), - None, - [], - [], - "Unknown", - [], - False, - 1.0, - 0.0, - None, - True, - ) - ) - else: - cli_result = CliDetectionResult( - abspath(my_file.name), - best_guess.encoding, - best_guess.encoding_aliases, - [ - cp - for cp in best_guess.could_be_from_charset - if cp != best_guess.encoding - ], - best_guess.language, - best_guess.alphabets, - best_guess.bom, - best_guess.percent_chaos, - best_guess.percent_coherence, - None, - True, - ) - x_.append(cli_result) - - if len(matches) > 1 and args.alternatives: - for el in matches: - if el != best_guess: - x_.append( - CliDetectionResult( - abspath(my_file.name), - el.encoding, - el.encoding_aliases, - [ - cp - for cp in el.could_be_from_charset - if cp != el.encoding - ], - el.language, - el.alphabets, - el.bom, - el.percent_chaos, - el.percent_coherence, - None, - False, - ) - ) - - if args.normalize is True: - if best_guess.encoding.startswith("utf") is True: - print( - '"{}" file does not need to be normalized, as it already came from unicode.'.format( - my_file.name - ), - file=sys.stderr, - ) - if my_file.closed is False: - my_file.close() - continue - - dir_path = dirname(realpath(my_file.name)) - file_name = basename(realpath(my_file.name)) - - o_: list[str] = file_name.split(".") - - if args.replace is False: - o_.insert(-1, best_guess.encoding) - if my_file.closed is False: - my_file.close() - elif ( - args.force is False - and query_yes_no( - 'Are you sure to normalize "{}" by replacing it ?'.format( - my_file.name - ), - "no", - ) - is False - ): - if my_file.closed is False: - my_file.close() - continue - - try: - cli_result.unicode_path = join(dir_path, ".".join(o_)) - - with open(cli_result.unicode_path, "wb") as fp: - fp.write(best_guess.output()) - except OSError as e: # Defensive: - print(str(e), file=sys.stderr) - if my_file.closed is False: - my_file.close() - return 2 - - if my_file.closed is False: - my_file.close() - - if args.minimal is False: - print( - dumps( - [el.__dict__ for el in x_] if len(x_) > 1 else x_[0].__dict__, - ensure_ascii=True, - indent=4, - ) - ) - else: - for my_file in args.files: - print( - ", ".join( - [ - el.encoding or "undefined" - for el in x_ - if el.path == abspath(my_file.name) - ] - ) - ) - - return 0 - - -if __name__ == "__main__": # Defensive: - cli_detect() diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2e50875..0000000 Binary files a/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__pycache__/__main__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__pycache__/__main__.cpython-312.pyc deleted file mode 100644 index 3a7f4d3..0000000 Binary files a/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__pycache__/__main__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/constant.py b/.venv/lib/python3.12/site-packages/charset_normalizer/constant.py deleted file mode 100644 index e1297d2..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/constant.py +++ /dev/null @@ -1,2050 +0,0 @@ -from __future__ import annotations - -from codecs import BOM_UTF8, BOM_UTF16_BE, BOM_UTF16_LE, BOM_UTF32_BE, BOM_UTF32_LE -from encodings.aliases import aliases -from re import IGNORECASE -from re import compile as re_compile - -# Contain for each eligible encoding a list of/item bytes SIG/BOM -ENCODING_MARKS: dict[str, bytes | list[bytes]] = { - "utf_8": BOM_UTF8, - "utf_7": [ - b"\x2b\x2f\x76\x38\x2d", - b"\x2b\x2f\x76\x38", - b"\x2b\x2f\x76\x39", - b"\x2b\x2f\x76\x2b", - b"\x2b\x2f\x76\x2f", - ], - "gb18030": b"\x84\x31\x95\x33", - "utf_32": [BOM_UTF32_BE, BOM_UTF32_LE], - "utf_16": [BOM_UTF16_BE, BOM_UTF16_LE], -} - -TOO_SMALL_SEQUENCE: int = 32 -TOO_BIG_SEQUENCE: int = int(10e6) - -UTF8_MAXIMAL_ALLOCATION: int = 1_112_064 - -# Up-to-date Unicode ucd/17.0.0 -UNICODE_RANGES_COMBINED: dict[str, range] = { - "Control character": range(32), - "Basic Latin": range(32, 128), - "Latin-1 Supplement": range(128, 256), - "Latin Extended-A": range(256, 384), - "Latin Extended-B": range(384, 592), - "IPA Extensions": range(592, 688), - "Spacing Modifier Letters": range(688, 768), - "Combining Diacritical Marks": range(768, 880), - "Greek and Coptic": range(880, 1024), - "Cyrillic": range(1024, 1280), - "Cyrillic Supplement": range(1280, 1328), - "Armenian": range(1328, 1424), - "Hebrew": range(1424, 1536), - "Arabic": range(1536, 1792), - "Syriac": range(1792, 1872), - "Arabic Supplement": range(1872, 1920), - "Thaana": range(1920, 1984), - "NKo": range(1984, 2048), - "Samaritan": range(2048, 2112), - "Mandaic": range(2112, 2144), - "Syriac Supplement": range(2144, 2160), - "Arabic Extended-B": range(2160, 2208), - "Arabic Extended-A": range(2208, 2304), - "Devanagari": range(2304, 2432), - "Bengali": range(2432, 2560), - "Gurmukhi": range(2560, 2688), - "Gujarati": range(2688, 2816), - "Oriya": range(2816, 2944), - "Tamil": range(2944, 3072), - "Telugu": range(3072, 3200), - "Kannada": range(3200, 3328), - "Malayalam": range(3328, 3456), - "Sinhala": range(3456, 3584), - "Thai": range(3584, 3712), - "Lao": range(3712, 3840), - "Tibetan": range(3840, 4096), - "Myanmar": range(4096, 4256), - "Georgian": range(4256, 4352), - "Hangul Jamo": range(4352, 4608), - "Ethiopic": range(4608, 4992), - "Ethiopic Supplement": range(4992, 5024), - "Cherokee": range(5024, 5120), - "Unified Canadian Aboriginal Syllabics": range(5120, 5760), - "Ogham": range(5760, 5792), - "Runic": range(5792, 5888), - "Tagalog": range(5888, 5920), - "Hanunoo": range(5920, 5952), - "Buhid": range(5952, 5984), - "Tagbanwa": range(5984, 6016), - "Khmer": range(6016, 6144), - "Mongolian": range(6144, 6320), - "Unified Canadian Aboriginal Syllabics Extended": range(6320, 6400), - "Limbu": range(6400, 6480), - "Tai Le": range(6480, 6528), - "New Tai Lue": range(6528, 6624), - "Khmer Symbols": range(6624, 6656), - "Buginese": range(6656, 6688), - "Tai Tham": range(6688, 6832), - "Combining Diacritical Marks Extended": range(6832, 6912), - "Balinese": range(6912, 7040), - "Sundanese": range(7040, 7104), - "Batak": range(7104, 7168), - "Lepcha": range(7168, 7248), - "Ol Chiki": range(7248, 7296), - "Cyrillic Extended-C": range(7296, 7312), - "Georgian Extended": range(7312, 7360), - "Sundanese Supplement": range(7360, 7376), - "Vedic Extensions": range(7376, 7424), - "Phonetic Extensions": range(7424, 7552), - "Phonetic Extensions Supplement": range(7552, 7616), - "Combining Diacritical Marks Supplement": range(7616, 7680), - "Latin Extended Additional": range(7680, 7936), - "Greek Extended": range(7936, 8192), - "General Punctuation": range(8192, 8304), - "Superscripts and Subscripts": range(8304, 8352), - "Currency Symbols": range(8352, 8400), - "Combining Diacritical Marks for Symbols": range(8400, 8448), - "Letterlike Symbols": range(8448, 8528), - "Number Forms": range(8528, 8592), - "Arrows": range(8592, 8704), - "Mathematical Operators": range(8704, 8960), - "Miscellaneous Technical": range(8960, 9216), - "Control Pictures": range(9216, 9280), - "Optical Character Recognition": range(9280, 9312), - "Enclosed Alphanumerics": range(9312, 9472), - "Box Drawing": range(9472, 9600), - "Block Elements": range(9600, 9632), - "Geometric Shapes": range(9632, 9728), - "Miscellaneous Symbols": range(9728, 9984), - "Dingbats": range(9984, 10176), - "Miscellaneous Mathematical Symbols-A": range(10176, 10224), - "Supplemental Arrows-A": range(10224, 10240), - "Braille Patterns": range(10240, 10496), - "Supplemental Arrows-B": range(10496, 10624), - "Miscellaneous Mathematical Symbols-B": range(10624, 10752), - "Supplemental Mathematical Operators": range(10752, 11008), - "Miscellaneous Symbols and Arrows": range(11008, 11264), - "Glagolitic": range(11264, 11360), - "Latin Extended-C": range(11360, 11392), - "Coptic": range(11392, 11520), - "Georgian Supplement": range(11520, 11568), - "Tifinagh": range(11568, 11648), - "Ethiopic Extended": range(11648, 11744), - "Cyrillic Extended-A": range(11744, 11776), - "Supplemental Punctuation": range(11776, 11904), - "CJK Radicals Supplement": range(11904, 12032), - "Kangxi Radicals": range(12032, 12256), - "Ideographic Description Characters": range(12272, 12288), - "CJK Symbols and Punctuation": range(12288, 12352), - "Hiragana": range(12352, 12448), - "Katakana": range(12448, 12544), - "Bopomofo": range(12544, 12592), - "Hangul Compatibility Jamo": range(12592, 12688), - "Kanbun": range(12688, 12704), - "Bopomofo Extended": range(12704, 12736), - "CJK Strokes": range(12736, 12784), - "Katakana Phonetic Extensions": range(12784, 12800), - "Enclosed CJK Letters and Months": range(12800, 13056), - "CJK Compatibility": range(13056, 13312), - "CJK Unified Ideographs Extension A": range(13312, 19904), - "Yijing Hexagram Symbols": range(19904, 19968), - "CJK Unified Ideographs": range(19968, 40960), - "Yi Syllables": range(40960, 42128), - "Yi Radicals": range(42128, 42192), - "Lisu": range(42192, 42240), - "Vai": range(42240, 42560), - "Cyrillic Extended-B": range(42560, 42656), - "Bamum": range(42656, 42752), - "Modifier Tone Letters": range(42752, 42784), - "Latin Extended-D": range(42784, 43008), - "Syloti Nagri": range(43008, 43056), - "Common Indic Number Forms": range(43056, 43072), - "Phags-pa": range(43072, 43136), - "Saurashtra": range(43136, 43232), - "Devanagari Extended": range(43232, 43264), - "Kayah Li": range(43264, 43312), - "Rejang": range(43312, 43360), - "Hangul Jamo Extended-A": range(43360, 43392), - "Javanese": range(43392, 43488), - "Myanmar Extended-B": range(43488, 43520), - "Cham": range(43520, 43616), - "Myanmar Extended-A": range(43616, 43648), - "Tai Viet": range(43648, 43744), - "Meetei Mayek Extensions": range(43744, 43776), - "Ethiopic Extended-A": range(43776, 43824), - "Latin Extended-E": range(43824, 43888), - "Cherokee Supplement": range(43888, 43968), - "Meetei Mayek": range(43968, 44032), - "Hangul Syllables": range(44032, 55216), - "Hangul Jamo Extended-B": range(55216, 55296), - "High Surrogates": range(55296, 56192), - "High Private Use Surrogates": range(56192, 56320), - "Low Surrogates": range(56320, 57344), - "Private Use Area": range(57344, 63744), - "CJK Compatibility Ideographs": range(63744, 64256), - "Alphabetic Presentation Forms": range(64256, 64336), - "Arabic Presentation Forms-A": range(64336, 65024), - "Variation Selectors": range(65024, 65040), - "Vertical Forms": range(65040, 65056), - "Combining Half Marks": range(65056, 65072), - "CJK Compatibility Forms": range(65072, 65104), - "Small Form Variants": range(65104, 65136), - "Arabic Presentation Forms-B": range(65136, 65280), - "Halfwidth and Fullwidth Forms": range(65280, 65520), - "Specials": range(65520, 65536), - "Linear B Syllabary": range(65536, 65664), - "Linear B Ideograms": range(65664, 65792), - "Aegean Numbers": range(65792, 65856), - "Ancient Greek Numbers": range(65856, 65936), - "Ancient Symbols": range(65936, 66000), - "Phaistos Disc": range(66000, 66048), - "Lycian": range(66176, 66208), - "Carian": range(66208, 66272), - "Coptic Epact Numbers": range(66272, 66304), - "Old Italic": range(66304, 66352), - "Gothic": range(66352, 66384), - "Old Permic": range(66384, 66432), - "Ugaritic": range(66432, 66464), - "Old Persian": range(66464, 66528), - "Deseret": range(66560, 66640), - "Shavian": range(66640, 66688), - "Osmanya": range(66688, 66736), - "Osage": range(66736, 66816), - "Elbasan": range(66816, 66864), - "Caucasian Albanian": range(66864, 66928), - "Vithkuqi": range(66928, 67008), - "Todhri": range(67008, 67072), - "Linear A": range(67072, 67456), - "Latin Extended-F": range(67456, 67520), - "Cypriot Syllabary": range(67584, 67648), - "Imperial Aramaic": range(67648, 67680), - "Palmyrene": range(67680, 67712), - "Nabataean": range(67712, 67760), - "Hatran": range(67808, 67840), - "Phoenician": range(67840, 67872), - "Lydian": range(67872, 67904), - "Sidetic": range(67904, 67936), - "Meroitic Hieroglyphs": range(67968, 68000), - "Meroitic Cursive": range(68000, 68096), - "Kharoshthi": range(68096, 68192), - "Old South Arabian": range(68192, 68224), - "Old North Arabian": range(68224, 68256), - "Manichaean": range(68288, 68352), - "Avestan": range(68352, 68416), - "Inscriptional Parthian": range(68416, 68448), - "Inscriptional Pahlavi": range(68448, 68480), - "Psalter Pahlavi": range(68480, 68528), - "Old Turkic": range(68608, 68688), - "Old Hungarian": range(68736, 68864), - "Hanifi Rohingya": range(68864, 68928), - "Garay": range(68928, 69008), - "Rumi Numeral Symbols": range(69216, 69248), - "Yezidi": range(69248, 69312), - "Arabic Extended-C": range(69312, 69376), - "Old Sogdian": range(69376, 69424), - "Sogdian": range(69424, 69488), - "Old Uyghur": range(69488, 69552), - "Chorasmian": range(69552, 69600), - "Elymaic": range(69600, 69632), - "Brahmi": range(69632, 69760), - "Kaithi": range(69760, 69840), - "Sora Sompeng": range(69840, 69888), - "Chakma": range(69888, 69968), - "Mahajani": range(69968, 70016), - "Sharada": range(70016, 70112), - "Sinhala Archaic Numbers": range(70112, 70144), - "Khojki": range(70144, 70224), - "Multani": range(70272, 70320), - "Khudawadi": range(70320, 70400), - "Grantha": range(70400, 70528), - "Tulu-Tigalari": range(70528, 70656), - "Newa": range(70656, 70784), - "Tirhuta": range(70784, 70880), - "Siddham": range(71040, 71168), - "Modi": range(71168, 71264), - "Mongolian Supplement": range(71264, 71296), - "Takri": range(71296, 71376), - "Myanmar Extended-C": range(71376, 71424), - "Ahom": range(71424, 71504), - "Dogra": range(71680, 71760), - "Warang Citi": range(71840, 71936), - "Dives Akuru": range(71936, 72032), - "Nandinagari": range(72096, 72192), - "Zanabazar Square": range(72192, 72272), - "Soyombo": range(72272, 72368), - "Unified Canadian Aboriginal Syllabics Extended-A": range(72368, 72384), - "Pau Cin Hau": range(72384, 72448), - "Devanagari Extended-A": range(72448, 72544), - "Sharada Supplement": range(72544, 72576), - "Sunuwar": range(72640, 72704), - "Bhaiksuki": range(72704, 72816), - "Marchen": range(72816, 72896), - "Masaram Gondi": range(72960, 73056), - "Gunjala Gondi": range(73056, 73136), - "Tolong Siki": range(73136, 73200), - "Makasar": range(73440, 73472), - "Kawi": range(73472, 73568), - "Lisu Supplement": range(73648, 73664), - "Tamil Supplement": range(73664, 73728), - "Cuneiform": range(73728, 74752), - "Cuneiform Numbers and Punctuation": range(74752, 74880), - "Early Dynastic Cuneiform": range(74880, 75088), - "Cypro-Minoan": range(77712, 77824), - "Egyptian Hieroglyphs": range(77824, 78896), - "Egyptian Hieroglyph Format Controls": range(78896, 78944), - "Egyptian Hieroglyphs Extended-A": range(78944, 82944), - "Anatolian Hieroglyphs": range(82944, 83584), - "Gurung Khema": range(90368, 90432), - "Bamum Supplement": range(92160, 92736), - "Mro": range(92736, 92784), - "Tangsa": range(92784, 92880), - "Bassa Vah": range(92880, 92928), - "Pahawh Hmong": range(92928, 93072), - "Kirat Rai": range(93504, 93568), - "Medefaidrin": range(93760, 93856), - "Beria Erfe": range(93856, 93920), - "Miao": range(93952, 94112), - "Ideographic Symbols and Punctuation": range(94176, 94208), - "Tangut": range(94208, 100352), - "Tangut Components": range(100352, 101120), - "Khitan Small Script": range(101120, 101632), - "Tangut Supplement": range(101632, 101760), - "Tangut Components Supplement": range(101760, 101888), - "Kana Extended-B": range(110576, 110592), - "Kana Supplement": range(110592, 110848), - "Kana Extended-A": range(110848, 110896), - "Small Kana Extension": range(110896, 110960), - "Nushu": range(110960, 111360), - "Duployan": range(113664, 113824), - "Shorthand Format Controls": range(113824, 113840), - "Symbols for Legacy Computing Supplement": range(117760, 118464), - "Miscellaneous Symbols Supplement": range(118464, 118528), - "Znamenny Musical Notation": range(118528, 118736), - "Byzantine Musical Symbols": range(118784, 119040), - "Musical Symbols": range(119040, 119296), - "Ancient Greek Musical Notation": range(119296, 119376), - "Kaktovik Numerals": range(119488, 119520), - "Mayan Numerals": range(119520, 119552), - "Tai Xuan Jing Symbols": range(119552, 119648), - "Counting Rod Numerals": range(119648, 119680), - "Mathematical Alphanumeric Symbols": range(119808, 120832), - "Sutton SignWriting": range(120832, 121520), - "Latin Extended-G": range(122624, 122880), - "Glagolitic Supplement": range(122880, 122928), - "Cyrillic Extended-D": range(122928, 123024), - "Nyiakeng Puachue Hmong": range(123136, 123216), - "Toto": range(123536, 123584), - "Wancho": range(123584, 123648), - "Nag Mundari": range(124112, 124160), - "Ol Onal": range(124368, 124416), - "Tai Yo": range(124608, 124672), - "Ethiopic Extended-B": range(124896, 124928), - "Mende Kikakui": range(124928, 125152), - "Adlam": range(125184, 125280), - "Indic Siyaq Numbers": range(126064, 126144), - "Ottoman Siyaq Numbers": range(126208, 126288), - "Arabic Mathematical Alphabetic Symbols": range(126464, 126720), - "Mahjong Tiles": range(126976, 127024), - "Domino Tiles": range(127024, 127136), - "Playing Cards": range(127136, 127232), - "Enclosed Alphanumeric Supplement": range(127232, 127488), - "Enclosed Ideographic Supplement": range(127488, 127744), - "Miscellaneous Symbols and Pictographs": range(127744, 128512), - "Emoticons": range(128512, 128592), - "Ornamental Dingbats": range(128592, 128640), - "Transport and Map Symbols": range(128640, 128768), - "Alchemical Symbols": range(128768, 128896), - "Geometric Shapes Extended": range(128896, 129024), - "Supplemental Arrows-C": range(129024, 129280), - "Supplemental Symbols and Pictographs": range(129280, 129536), - "Chess Symbols": range(129536, 129648), - "Symbols and Pictographs Extended-A": range(129648, 129792), - "Symbols for Legacy Computing": range(129792, 130048), - "CJK Unified Ideographs Extension B": range(131072, 173792), - "CJK Unified Ideographs Extension C": range(173824, 177984), - "CJK Unified Ideographs Extension D": range(177984, 178208), - "CJK Unified Ideographs Extension E": range(178208, 183984), - "CJK Unified Ideographs Extension F": range(183984, 191472), - "CJK Unified Ideographs Extension I": range(191472, 192096), - "CJK Compatibility Ideographs Supplement": range(194560, 195104), - "CJK Unified Ideographs Extension G": range(196608, 201552), - "CJK Unified Ideographs Extension H": range(201552, 205744), - "CJK Unified Ideographs Extension J": range(205744, 210048), - "Tags": range(917504, 917632), - "Variation Selectors Supplement": range(917760, 918000), - "Supplementary Private Use Area-A": range(983040, 1048576), - "Supplementary Private Use Area-B": range(1048576, 1114112), -} - - -UNICODE_SECONDARY_RANGE_KEYWORD: list[str] = [ - "Supplement", - "Extended", - "Extensions", - "Modifier", - "Marks", - "Punctuation", - "Symbols", - "Forms", - "Operators", - "Miscellaneous", - "Drawing", - "Block", - "Shapes", - "Supplemental", - "Tags", -] - -RE_POSSIBLE_ENCODING_INDICATION = re_compile( - r"(?:(?:encoding)|(?:charset)|(?:coding))(?:[\:= ]{1,10})(?:[\"\']?)([a-zA-Z0-9\-_]+)(?:[\"\']?)", - IGNORECASE, -) - -IANA_NO_ALIASES = [ - "cp720", - "cp737", - "cp856", - "cp874", - "cp875", - "cp1006", - "koi8_r", - "koi8_t", - "koi8_u", -] - -IANA_SUPPORTED: list[str] = sorted( - filter( - lambda x: x.endswith("_codec") is False - and x not in {"rot_13", "tactis", "mbcs"}, - list(set(aliases.values())) + IANA_NO_ALIASES, - ) -) - -IANA_SUPPORTED_COUNT: int = len(IANA_SUPPORTED) - -# pre-computed code page that are similar using the function cp_similarity. -IANA_SUPPORTED_SIMILAR: dict[str, list[str]] = { - "cp037": ["cp1026", "cp1140", "cp273", "cp500"], - "cp1026": ["cp037", "cp1140", "cp273", "cp500"], - "cp1125": ["cp866"], - "cp1140": ["cp037", "cp1026", "cp273", "cp500"], - "cp1250": ["iso8859_2"], - "cp1251": ["kz1048", "ptcp154"], - "cp1252": ["iso8859_15", "iso8859_9", "latin_1"], - "cp1253": ["iso8859_7"], - "cp1254": ["iso8859_15", "iso8859_9", "latin_1"], - "cp1257": ["iso8859_13"], - "cp273": ["cp037", "cp1026", "cp1140", "cp500"], - "cp437": ["cp850", "cp858", "cp860", "cp861", "cp862", "cp863", "cp865"], - "cp500": ["cp037", "cp1026", "cp1140", "cp273"], - "cp850": ["cp437", "cp857", "cp858", "cp865"], - "cp857": ["cp850", "cp858", "cp865"], - "cp858": ["cp437", "cp850", "cp857", "cp865"], - "cp860": ["cp437", "cp861", "cp862", "cp863", "cp865"], - "cp861": ["cp437", "cp860", "cp862", "cp863", "cp865"], - "cp862": ["cp437", "cp860", "cp861", "cp863", "cp865"], - "cp863": ["cp437", "cp860", "cp861", "cp862", "cp865"], - "cp865": ["cp437", "cp850", "cp857", "cp858", "cp860", "cp861", "cp862", "cp863"], - "cp866": ["cp1125"], - "iso8859_10": ["iso8859_14", "iso8859_15", "iso8859_4", "iso8859_9", "latin_1"], - "iso8859_11": ["tis_620"], - "iso8859_13": ["cp1257"], - "iso8859_14": [ - "iso8859_10", - "iso8859_15", - "iso8859_16", - "iso8859_3", - "iso8859_9", - "latin_1", - ], - "iso8859_15": [ - "cp1252", - "cp1254", - "iso8859_10", - "iso8859_14", - "iso8859_16", - "iso8859_3", - "iso8859_9", - "latin_1", - ], - "iso8859_16": [ - "iso8859_14", - "iso8859_15", - "iso8859_2", - "iso8859_3", - "iso8859_9", - "latin_1", - ], - "iso8859_2": ["cp1250", "iso8859_16", "iso8859_4"], - "iso8859_3": ["iso8859_14", "iso8859_15", "iso8859_16", "iso8859_9", "latin_1"], - "iso8859_4": ["iso8859_10", "iso8859_2", "iso8859_9", "latin_1"], - "iso8859_7": ["cp1253"], - "iso8859_9": [ - "cp1252", - "cp1254", - "cp1258", - "iso8859_10", - "iso8859_14", - "iso8859_15", - "iso8859_16", - "iso8859_3", - "iso8859_4", - "latin_1", - ], - "kz1048": ["cp1251", "ptcp154"], - "latin_1": [ - "cp1252", - "cp1254", - "cp1258", - "iso8859_10", - "iso8859_14", - "iso8859_15", - "iso8859_16", - "iso8859_3", - "iso8859_4", - "iso8859_9", - ], - "mac_iceland": ["mac_roman", "mac_turkish"], - "mac_roman": ["mac_iceland", "mac_turkish"], - "mac_turkish": ["mac_iceland", "mac_roman"], - "ptcp154": ["cp1251", "kz1048"], - "tis_620": ["iso8859_11"], -} - - -CHARDET_CORRESPONDENCE: dict[str, str] = { - "iso2022_kr": "ISO-2022-KR", - "iso2022_jp": "ISO-2022-JP", - "euc_kr": "EUC-KR", - "tis_620": "TIS-620", - "utf_32": "UTF-32", - "euc_jp": "EUC-JP", - "koi8_r": "KOI8-R", - "iso8859_1": "ISO-8859-1", - "iso8859_2": "ISO-8859-2", - "iso8859_5": "ISO-8859-5", - "iso8859_6": "ISO-8859-6", - "iso8859_7": "ISO-8859-7", - "iso8859_8": "ISO-8859-8", - "utf_16": "UTF-16", - "cp855": "IBM855", - "mac_cyrillic": "MacCyrillic", - "gb2312": "GB2312", - "gb18030": "GB18030", - "cp932": "CP932", - "cp866": "IBM866", - "utf_8": "utf-8", - "utf_8_sig": "UTF-8-SIG", - "shift_jis": "SHIFT_JIS", - "big5": "Big5", - "cp1250": "windows-1250", - "cp1251": "windows-1251", - "cp1252": "Windows-1252", - "cp1253": "windows-1253", - "cp1255": "windows-1255", - "cp1256": "windows-1256", - "cp1254": "Windows-1254", - "cp949": "CP949", -} - - -COMMON_SAFE_ASCII_CHARACTERS: frozenset[str] = frozenset( - { - "<", - ">", - "=", - ":", - "/", - "&", - ";", - "{", - "}", - "[", - "]", - ",", - "|", - '"', - "-", - "(", - ")", - } -) - -# Sample character sets — replace with full lists if needed -COMMON_CHINESE_CHARACTERS = "的一是在不了有和人这中大为上个国我以要他时来用们生到作地于出就分对成会可主发年动同工也能下过子说产种面而方后多定行学法所民得经十三之进着等部度家电力里如水化高自二理起小物现实加量都两体制机当使点从业本去把性好应开它合还因由其些然前外天政四日那社义事平形相全表间样与关各重新线内数正心反你明看原又么利比或但质气第向道命此变条只没结解问意建月公无系军很情者最立代想已通并提直题党程展五果料象员革位入常文总次品式活设及管特件长求老头基资边流路级少图山统接知较将组见计别她手角期根论运农指几九区强放决西被干做必战先回则任取据处队南给色光门即保治北造百规热领七海口东导器压志世金增争济阶油思术极交受联什认六共权收证改清己美再采转更单风切打白教速花带安场身车例真务具万每目至达走积示议声报斗完类八离华名确才科张信马节话米整空元况今集温传土许步群广石记需段研界拉林律叫且究观越织装影算低持音众书布复容儿须际商非验连断深难近矿千周委素技备半办青省列习响约支般史感劳便团往酸历市克何除消构府太准精值号率族维划选标写存候毛亲快效斯院查江型眼王按格养易置派层片始却专状育厂京识适属圆包火住调满县局照参红细引听该铁价严龙飞" - -COMMON_JAPANESE_CHARACTERS = "日一国年大十二本中長出三時行見月分後前生五間上東四今金九入学高円子外八六下来気小七山話女北午百書先名川千水半男西電校語土木聞食車何南万毎白天母火右読友左休父雨" - -COMMON_KOREAN_CHARACTERS = "一二三四五六七八九十百千萬上下左右中人女子大小山川日月火水木金土父母天地國名年時文校學生" - -# Combine all into a frozenset -COMMON_CJK_CHARACTERS = frozenset( - "".join( - [ - COMMON_CHINESE_CHARACTERS, - COMMON_JAPANESE_CHARACTERS, - COMMON_KOREAN_CHARACTERS, - ] - ) -) - -KO_NAMES: frozenset[str] = frozenset({"johab", "cp949", "euc_kr"}) -ZH_NAMES: frozenset[str] = frozenset({"big5", "cp950", "big5hkscs", "hz"}) - -# Logging LEVEL below DEBUG -TRACE: int = 5 - - -# Language label that contain the em dash "—" -# character are to be considered alternative seq to origin -FREQUENCIES: dict[str, list[str]] = { - "English": [ - "e", - "a", - "t", - "i", - "o", - "n", - "s", - "r", - "h", - "l", - "d", - "c", - "u", - "m", - "f", - "p", - "g", - "w", - "y", - "b", - "v", - "k", - "x", - "j", - "z", - "q", - ], - "English—": [ - "e", - "a", - "t", - "i", - "o", - "n", - "s", - "r", - "h", - "l", - "d", - "c", - "m", - "u", - "f", - "p", - "g", - "w", - "b", - "y", - "v", - "k", - "j", - "x", - "z", - "q", - ], - "German": [ - "e", - "n", - "i", - "r", - "s", - "t", - "a", - "d", - "h", - "u", - "l", - "g", - "o", - "c", - "m", - "b", - "f", - "k", - "w", - "z", - "p", - "v", - "ü", - "ä", - "ö", - "j", - ], - "French": [ - "e", - "a", - "s", - "n", - "i", - "t", - "r", - "l", - "u", - "o", - "d", - "c", - "p", - "m", - "é", - "v", - "g", - "f", - "b", - "h", - "q", - "à", - "x", - "è", - "y", - "j", - ], - "Dutch": [ - "e", - "n", - "a", - "i", - "r", - "t", - "o", - "d", - "s", - "l", - "g", - "h", - "v", - "m", - "u", - "k", - "c", - "p", - "b", - "w", - "j", - "z", - "f", - "y", - "x", - "ë", - ], - "Italian": [ - "e", - "i", - "a", - "o", - "n", - "l", - "t", - "r", - "s", - "c", - "d", - "u", - "p", - "m", - "g", - "v", - "f", - "b", - "z", - "h", - "q", - "è", - "à", - "k", - "y", - "ò", - ], - "Polish": [ - "a", - "i", - "o", - "e", - "n", - "r", - "z", - "w", - "s", - "c", - "t", - "k", - "y", - "d", - "p", - "m", - "u", - "l", - "j", - "ł", - "g", - "b", - "h", - "ą", - "ę", - "ó", - ], - "Spanish": [ - "e", - "a", - "o", - "n", - "s", - "r", - "i", - "l", - "d", - "t", - "c", - "u", - "m", - "p", - "b", - "g", - "v", - "f", - "y", - "ó", - "h", - "q", - "í", - "j", - "z", - "á", - ], - "Russian": [ - "о", - "е", - "а", - "и", - "н", - "т", - "с", - "р", - "в", - "л", - "к", - "м", - "д", - "п", - "у", - "г", - "я", - "ы", - "з", - "б", - "й", - "ь", - "ч", - "х", - "ж", - "ц", - ], - # Jap-Kanji - "Japanese": [ - "日", - "一", - "人", - "年", - "大", - "十", - "二", - "本", - "中", - "長", - "出", - "三", - "時", - "行", - "見", - "月", - "分", - "後", - "前", - "生", - "五", - "間", - "上", - "東", - "四", - "今", - "金", - "九", - "入", - "学", - "高", - "円", - "子", - "外", - "八", - "六", - "下", - "来", - "気", - "小", - "七", - "山", - "話", - "女", - "北", - "午", - "百", - "書", - "先", - "名", - "川", - "千", - "水", - "半", - "男", - "西", - "電", - "校", - "語", - "土", - "木", - "聞", - "食", - "車", - "何", - "南", - "万", - "毎", - "白", - "天", - "母", - "火", - "右", - "読", - "友", - "左", - "休", - "父", - "雨", - ], - # Jap-Katakana - "Japanese—": [ - "ー", - "ン", - "ス", - "・", - "ル", - "ト", - "リ", - "イ", - "ア", - "ラ", - "ッ", - "ク", - "ド", - "シ", - "レ", - "ジ", - "タ", - "フ", - "ロ", - "カ", - "テ", - "マ", - "ィ", - "グ", - "バ", - "ム", - "プ", - "オ", - "コ", - "デ", - "ニ", - "ウ", - "メ", - "サ", - "ビ", - "ナ", - "ブ", - "ャ", - "エ", - "ュ", - "チ", - "キ", - "ズ", - "ダ", - "パ", - "ミ", - "ェ", - "ョ", - "ハ", - "セ", - "ベ", - "ガ", - "モ", - "ツ", - "ネ", - "ボ", - "ソ", - "ノ", - "ァ", - "ヴ", - "ワ", - "ポ", - "ペ", - "ピ", - "ケ", - "ゴ", - "ギ", - "ザ", - "ホ", - "ゲ", - "ォ", - "ヤ", - "ヒ", - "ユ", - "ヨ", - "ヘ", - "ゼ", - "ヌ", - "ゥ", - "ゾ", - "ヶ", - "ヂ", - "ヲ", - "ヅ", - "ヵ", - "ヱ", - "ヰ", - "ヮ", - "ヽ", - "゠", - "ヾ", - "ヷ", - "ヿ", - "ヸ", - "ヹ", - "ヺ", - ], - # Jap-Hiragana - "Japanese——": [ - "の", - "に", - "る", - "た", - "と", - "は", - "し", - "い", - "を", - "で", - "て", - "が", - "な", - "れ", - "か", - "ら", - "さ", - "っ", - "り", - "す", - "あ", - "も", - "こ", - "ま", - "う", - "く", - "よ", - "き", - "ん", - "め", - "お", - "け", - "そ", - "つ", - "だ", - "や", - "え", - "ど", - "わ", - "ち", - "み", - "せ", - "じ", - "ば", - "へ", - "び", - "ず", - "ろ", - "ほ", - "げ", - "む", - "べ", - "ひ", - "ょ", - "ゆ", - "ぶ", - "ご", - "ゃ", - "ね", - "ふ", - "ぐ", - "ぎ", - "ぼ", - "ゅ", - "づ", - "ざ", - "ぞ", - "ぬ", - "ぜ", - "ぱ", - "ぽ", - "ぷ", - "ぴ", - "ぃ", - "ぁ", - "ぇ", - "ぺ", - "ゞ", - "ぢ", - "ぉ", - "ぅ", - "ゐ", - "ゝ", - "ゑ", - "゛", - "゜", - "ゎ", - "ゔ", - "゚", - "ゟ", - "゙", - "ゕ", - "ゖ", - ], - "Portuguese": [ - "a", - "e", - "o", - "s", - "i", - "r", - "d", - "n", - "t", - "m", - "u", - "c", - "l", - "p", - "g", - "v", - "b", - "f", - "h", - "ã", - "q", - "é", - "ç", - "á", - "z", - "í", - ], - "Swedish": [ - "e", - "a", - "n", - "r", - "t", - "s", - "i", - "l", - "d", - "o", - "m", - "k", - "g", - "v", - "h", - "f", - "u", - "p", - "ä", - "c", - "b", - "ö", - "å", - "y", - "j", - "x", - ], - "Chinese": [ - "的", - "一", - "是", - "不", - "了", - "在", - "人", - "有", - "我", - "他", - "这", - "个", - "们", - "中", - "来", - "上", - "大", - "为", - "和", - "国", - "地", - "到", - "以", - "说", - "时", - "要", - "就", - "出", - "会", - "可", - "也", - "你", - "对", - "生", - "能", - "而", - "子", - "那", - "得", - "于", - "着", - "下", - "自", - "之", - "年", - "过", - "发", - "后", - "作", - "里", - "用", - "道", - "行", - "所", - "然", - "家", - "种", - "事", - "成", - "方", - "多", - "经", - "么", - "去", - "法", - "学", - "如", - "都", - "同", - "现", - "当", - "没", - "动", - "面", - "起", - "看", - "定", - "天", - "分", - "还", - "进", - "好", - "小", - "部", - "其", - "些", - "主", - "样", - "理", - "心", - "她", - "本", - "前", - "开", - "但", - "因", - "只", - "从", - "想", - "实", - ], - "Ukrainian": [ - "о", - "а", - "н", - "і", - "и", - "р", - "в", - "т", - "е", - "с", - "к", - "л", - "у", - "д", - "м", - "п", - "з", - "я", - "ь", - "б", - "г", - "й", - "ч", - "х", - "ц", - "ї", - ], - "Norwegian": [ - "e", - "r", - "n", - "t", - "a", - "s", - "i", - "o", - "l", - "d", - "g", - "k", - "m", - "v", - "f", - "p", - "u", - "b", - "h", - "å", - "y", - "j", - "ø", - "c", - "æ", - "w", - ], - "Finnish": [ - "a", - "i", - "n", - "t", - "e", - "s", - "l", - "o", - "u", - "k", - "ä", - "m", - "r", - "v", - "j", - "h", - "p", - "y", - "d", - "ö", - "g", - "c", - "b", - "f", - "w", - "z", - ], - "Vietnamese": [ - "n", - "h", - "t", - "i", - "c", - "g", - "a", - "o", - "u", - "m", - "l", - "r", - "à", - "đ", - "s", - "e", - "v", - "p", - "b", - "y", - "ư", - "d", - "á", - "k", - "ộ", - "ế", - ], - "Czech": [ - "o", - "e", - "a", - "n", - "t", - "s", - "i", - "l", - "v", - "r", - "k", - "d", - "u", - "m", - "p", - "í", - "c", - "h", - "z", - "á", - "y", - "j", - "b", - "ě", - "é", - "ř", - ], - "Hungarian": [ - "e", - "a", - "t", - "l", - "s", - "n", - "k", - "r", - "i", - "o", - "z", - "á", - "é", - "g", - "m", - "b", - "y", - "v", - "d", - "h", - "u", - "p", - "j", - "ö", - "f", - "c", - ], - "Korean": [ - "이", - "다", - "에", - "의", - "는", - "로", - "하", - "을", - "가", - "고", - "지", - "서", - "한", - "은", - "기", - "으", - "년", - "대", - "사", - "시", - "를", - "리", - "도", - "인", - "스", - "일", - ], - "Indonesian": [ - "a", - "n", - "e", - "i", - "r", - "t", - "u", - "s", - "d", - "k", - "m", - "l", - "g", - "p", - "b", - "o", - "h", - "y", - "j", - "c", - "w", - "f", - "v", - "z", - "x", - "q", - ], - "Turkish": [ - "a", - "e", - "i", - "n", - "r", - "l", - "ı", - "k", - "d", - "t", - "s", - "m", - "y", - "u", - "o", - "b", - "ü", - "ş", - "v", - "g", - "z", - "h", - "c", - "p", - "ç", - "ğ", - ], - "Romanian": [ - "e", - "i", - "a", - "r", - "n", - "t", - "u", - "l", - "o", - "c", - "s", - "d", - "p", - "m", - "ă", - "f", - "v", - "î", - "g", - "b", - "ș", - "ț", - "z", - "h", - "â", - "j", - ], - "Farsi": [ - "ا", - "ی", - "ر", - "د", - "ن", - "ه", - "و", - "م", - "ت", - "ب", - "س", - "ل", - "ک", - "ش", - "ز", - "ف", - "گ", - "ع", - "خ", - "ق", - "ج", - "آ", - "پ", - "ح", - "ط", - "ص", - ], - "Arabic": [ - "ا", - "ل", - "ي", - "م", - "و", - "ن", - "ر", - "ت", - "ب", - "ة", - "ع", - "د", - "س", - "ف", - "ه", - "ك", - "ق", - "أ", - "ح", - "ج", - "ش", - "ط", - "ص", - "ى", - "خ", - "إ", - ], - "Danish": [ - "e", - "r", - "n", - "t", - "a", - "i", - "s", - "d", - "l", - "o", - "g", - "m", - "k", - "f", - "v", - "u", - "b", - "h", - "p", - "å", - "y", - "ø", - "æ", - "c", - "j", - "w", - ], - "Serbian": [ - "а", - "и", - "о", - "е", - "н", - "р", - "с", - "у", - "т", - "к", - "ј", - "в", - "д", - "м", - "п", - "л", - "г", - "з", - "б", - "a", - "i", - "e", - "o", - "n", - "ц", - "ш", - ], - "Lithuanian": [ - "i", - "a", - "s", - "o", - "r", - "e", - "t", - "n", - "u", - "k", - "m", - "l", - "p", - "v", - "d", - "j", - "g", - "ė", - "b", - "y", - "ų", - "š", - "ž", - "c", - "ą", - "į", - ], - "Slovene": [ - "e", - "a", - "i", - "o", - "n", - "r", - "s", - "l", - "t", - "j", - "v", - "k", - "d", - "p", - "m", - "u", - "z", - "b", - "g", - "h", - "č", - "c", - "š", - "ž", - "f", - "y", - ], - "Slovak": [ - "o", - "a", - "e", - "n", - "i", - "r", - "v", - "t", - "s", - "l", - "k", - "d", - "m", - "p", - "u", - "c", - "h", - "j", - "b", - "z", - "á", - "y", - "ý", - "í", - "č", - "é", - ], - "Hebrew": [ - "י", - "ו", - "ה", - "ל", - "ר", - "ב", - "ת", - "מ", - "א", - "ש", - "נ", - "ע", - "ם", - "ד", - "ק", - "ח", - "פ", - "ס", - "כ", - "ג", - "ט", - "צ", - "ן", - "ז", - "ך", - ], - "Bulgarian": [ - "а", - "и", - "о", - "е", - "н", - "т", - "р", - "с", - "в", - "л", - "к", - "д", - "п", - "м", - "з", - "г", - "я", - "ъ", - "у", - "б", - "ч", - "ц", - "й", - "ж", - "щ", - "х", - ], - "Croatian": [ - "a", - "i", - "o", - "e", - "n", - "r", - "j", - "s", - "t", - "u", - "k", - "l", - "v", - "d", - "m", - "p", - "g", - "z", - "b", - "c", - "č", - "h", - "š", - "ž", - "ć", - "f", - ], - "Hindi": [ - "क", - "र", - "स", - "न", - "त", - "म", - "ह", - "प", - "य", - "ल", - "व", - "ज", - "द", - "ग", - "ब", - "श", - "ट", - "अ", - "ए", - "थ", - "भ", - "ड", - "च", - "ध", - "ष", - "इ", - ], - "Estonian": [ - "a", - "i", - "e", - "s", - "t", - "l", - "u", - "n", - "o", - "k", - "r", - "d", - "m", - "v", - "g", - "p", - "j", - "h", - "ä", - "b", - "õ", - "ü", - "f", - "c", - "ö", - "y", - ], - "Thai": [ - "า", - "น", - "ร", - "อ", - "ก", - "เ", - "ง", - "ม", - "ย", - "ล", - "ว", - "ด", - "ท", - "ส", - "ต", - "ะ", - "ป", - "บ", - "ค", - "ห", - "แ", - "จ", - "พ", - "ช", - "ข", - "ใ", - ], - "Greek": [ - "α", - "τ", - "ο", - "ι", - "ε", - "ν", - "ρ", - "σ", - "κ", - "η", - "π", - "ς", - "υ", - "μ", - "λ", - "ί", - "ό", - "ά", - "γ", - "έ", - "δ", - "ή", - "ω", - "χ", - "θ", - "ύ", - ], - "Tamil": [ - "க", - "த", - "ப", - "ட", - "ர", - "ம", - "ல", - "ன", - "வ", - "ற", - "ய", - "ள", - "ச", - "ந", - "இ", - "ண", - "அ", - "ஆ", - "ழ", - "ங", - "எ", - "உ", - "ஒ", - "ஸ", - ], - "Kazakh": [ - "а", - "ы", - "е", - "н", - "т", - "р", - "л", - "і", - "д", - "с", - "м", - "қ", - "к", - "о", - "б", - "и", - "у", - "ғ", - "ж", - "ң", - "з", - "ш", - "й", - "п", - "г", - "ө", - ], -} - -LANGUAGE_SUPPORTED_COUNT: int = len(FREQUENCIES) - -# Bit flags for unified character classification. -# A single unicodedata.name() call sets all relevant flags at once. -_LATIN: int = 1 -_ACCENTUATED: int = 1 << 1 -_CJK: int = 1 << 2 -_HANGUL: int = 1 << 3 -_KATAKANA: int = 1 << 4 -_HIRAGANA: int = 1 << 5 -_THAI: int = 1 << 6 -_ARABIC: int = 1 << 7 -_ARABIC_ISOLATED_FORM: int = 1 << 8 - -_ACCENT_KEYWORDS: tuple[str, ...] = ( - "WITH GRAVE", - "WITH ACUTE", - "WITH CEDILLA", - "WITH DIAERESIS", - "WITH CIRCUMFLEX", - "WITH TILDE", - "WITH MACRON", - "WITH RING ABOVE", -) - -# Pre-built lookup structures for FREQUENCIES (computed once at import time). -# character -> rank mapping per language (replaces list .index() calls). -_FREQUENCIES_RANK: dict[str, dict[str, int]] = { - lang: {char: rank for rank, char in enumerate(chars)} - for lang, chars in FREQUENCIES.items() -} - -# frozenset per language (avoids rebuilding set() per call). -_FREQUENCIES_SET: dict[str, frozenset[str]] = { - lang: frozenset(chars) for lang, chars in FREQUENCIES.items() -} diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/legacy.py b/.venv/lib/python3.12/site-packages/charset_normalizer/legacy.py deleted file mode 100644 index 293c1ef..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/legacy.py +++ /dev/null @@ -1,79 +0,0 @@ -from __future__ import annotations - -from typing import TYPE_CHECKING, Any -from warnings import warn - -from .api import from_bytes -from .constant import CHARDET_CORRESPONDENCE, TOO_SMALL_SEQUENCE - -if TYPE_CHECKING: - from typing import TypedDict - - class ResultDict(TypedDict): - encoding: str | None - language: str - confidence: float | None - - -def detect( - byte_str: bytes, should_rename_legacy: bool = False, **kwargs: Any -) -> ResultDict: - """ - chardet legacy method - Detect the encoding of the given byte string. It should be mostly backward-compatible. - Encoding name will match Chardet own writing whenever possible. (Not on encoding name unsupported by it) - This function is deprecated and should be used to migrate your project easily, consult the documentation for - further information. Not planned for removal. - - :param byte_str: The byte sequence to examine. - :param should_rename_legacy: Should we rename legacy encodings - to their more modern equivalents? - """ - if len(kwargs): - warn( - f"charset-normalizer disregard arguments '{','.join(list(kwargs.keys()))}' in legacy function detect()" - ) - - if not isinstance(byte_str, (bytearray, bytes)): - raise TypeError( # pragma: nocover - f"Expected object of type bytes or bytearray, got: {type(byte_str)}" - ) - - if isinstance(byte_str, bytearray): - byte_str = bytes(byte_str) - - r = from_bytes(byte_str).best() - - encoding = r.encoding if r is not None else None - language = r.language if r is not None and r.language != "Unknown" else "" - confidence = 1.0 - r.chaos if r is not None else None - - # automatically lower confidence - # on small bytes samples. - # https://github.com/jawah/charset_normalizer/issues/391 - if ( - confidence is not None - and confidence >= 0.9 - and encoding - not in { - "utf_8", - "ascii", - } - and r.bom is False # type: ignore[union-attr] - and len(byte_str) < TOO_SMALL_SEQUENCE - ): - confidence -= 0.2 - - # Note: CharsetNormalizer does not return 'UTF-8-SIG' as the sig get stripped in the detection/normalization process - # but chardet does return 'utf-8-sig' and it is a valid codec name. - if r is not None and encoding == "utf_8" and r.bom: - encoding += "_sig" - - if should_rename_legacy is False and encoding in CHARDET_CORRESPONDENCE: - encoding = CHARDET_CORRESPONDENCE[encoding] - - return { - "encoding": encoding, - "language": language, - "confidence": confidence, - } diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so b/.venv/lib/python3.12/site-packages/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so deleted file mode 100755 index 87d31c7..0000000 Binary files a/.venv/lib/python3.12/site-packages/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/md.py b/.venv/lib/python3.12/site-packages/charset_normalizer/md.py deleted file mode 100644 index b41d9cf..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/md.py +++ /dev/null @@ -1,936 +0,0 @@ -from __future__ import annotations - -import sys -from functools import lru_cache -from logging import getLogger - -if sys.version_info >= (3, 8): - from typing import final -else: - try: - from typing_extensions import final - except ImportError: - - def final(cls): # type: ignore[misc,no-untyped-def] - return cls - - -from .constant import ( - COMMON_CJK_CHARACTERS, - COMMON_SAFE_ASCII_CHARACTERS, - TRACE, - UNICODE_SECONDARY_RANGE_KEYWORD, - _ACCENTUATED, - _ARABIC, - _ARABIC_ISOLATED_FORM, - _CJK, - _HANGUL, - _HIRAGANA, - _KATAKANA, - _LATIN, - _THAI, -) -from .utils import ( - _character_flags, - is_emoticon, - is_punctuation, - is_separator, - is_symbol, - remove_accent, - unicode_range, -) - -# Combined bitmask for CJK/Hangul/Katakana/Hiragana/Thai glyph detection. -_GLYPH_MASK: int = _CJK | _HANGUL | _KATAKANA | _HIRAGANA | _THAI - - -@final -class CharInfo: - """Pre-computed character properties shared across all detectors. - - Instantiated once and reused via :meth:`update` on every character - in the hot loop so that redundant calls to str methods - (``isalpha``, ``isupper``, …) and cached utility functions - (``_character_flags``, ``is_punctuation``, …) are avoided when - several plugins need the same information. - """ - - __slots__ = ( - "character", - "printable", - "alpha", - "upper", - "lower", - "space", - "digit", - "is_ascii", - "case_variable", - "flags", - "accentuated", - "latin", - "is_cjk", - "is_arabic", - "is_glyph", - "punct", - "sym", - ) - - def __init__(self) -> None: - self.character: str = "" - self.printable: bool = False - self.alpha: bool = False - self.upper: bool = False - self.lower: bool = False - self.space: bool = False - self.digit: bool = False - self.is_ascii: bool = False - self.case_variable: bool = False - self.flags: int = 0 - self.accentuated: bool = False - self.latin: bool = False - self.is_cjk: bool = False - self.is_arabic: bool = False - self.is_glyph: bool = False - self.punct: bool = False - self.sym: bool = False - - def update(self, character: str) -> None: - """Update all properties for *character* (called once per character).""" - self.character = character - - # ASCII fast-path: for characters with ord < 128, we can skip - # _character_flags() entirely and derive most properties from ord. - o: int = ord(character) - if o < 128: - self.is_ascii = True - self.accentuated = False - self.is_cjk = False - self.is_arabic = False - self.is_glyph = False - # ASCII alpha: a-z (97-122) or A-Z (65-90) - if 65 <= o <= 90: - # Uppercase ASCII letter - self.alpha = True - self.upper = True - self.lower = False - self.space = False - self.digit = False - self.printable = True - self.case_variable = True - self.flags = _LATIN - self.latin = True - self.punct = False - self.sym = False - elif 97 <= o <= 122: - # Lowercase ASCII letter - self.alpha = True - self.upper = False - self.lower = True - self.space = False - self.digit = False - self.printable = True - self.case_variable = True - self.flags = _LATIN - self.latin = True - self.punct = False - self.sym = False - elif 48 <= o <= 57: - # ASCII digit 0-9 - self.alpha = False - self.upper = False - self.lower = False - self.space = False - self.digit = True - self.printable = True - self.case_variable = False - self.flags = 0 - self.latin = False - self.punct = False - self.sym = False - elif o == 32 or (9 <= o <= 13): - # Space, tab, newline, etc. - self.alpha = False - self.upper = False - self.lower = False - self.space = True - self.digit = False - self.printable = o == 32 - self.case_variable = False - self.flags = 0 - self.latin = False - self.punct = False - self.sym = False - else: - # Other ASCII (punctuation, symbols, control chars) - self.printable = character.isprintable() - self.alpha = False - self.upper = False - self.lower = False - self.space = False - self.digit = False - self.case_variable = False - self.flags = 0 - self.latin = False - self.punct = is_punctuation(character) if self.printable else False - self.sym = is_symbol(character) if self.printable else False - else: - # Non-ASCII path - self.is_ascii = False - self.printable = character.isprintable() - self.alpha = character.isalpha() - self.upper = character.isupper() - self.lower = character.islower() - self.space = character.isspace() - self.digit = character.isdigit() - self.case_variable = self.lower != self.upper - - # Flag-based classification (single unicodedata.name() call, lru-cached) - flags: int - if self.alpha: - flags = _character_flags(character) - else: - flags = 0 - self.flags = flags - self.accentuated = bool(flags & _ACCENTUATED) - self.latin = bool(flags & _LATIN) - self.is_cjk = bool(flags & _CJK) - self.is_arabic = bool(flags & _ARABIC) - self.is_glyph = bool(flags & _GLYPH_MASK) - - # Eagerly compute punct and sym (avoids property dispatch overhead - # on 300K+ accesses in the hot loop). - self.punct = is_punctuation(character) if self.printable else False - self.sym = is_symbol(character) if self.printable else False - - -class MessDetectorPlugin: - """ - Base abstract class used for mess detection plugins. - All detectors MUST extend and implement given methods. - """ - - __slots__ = () - - def feed_info(self, character: str, info: CharInfo) -> None: - """ - The main routine to be executed upon character. - Insert the logic in witch the text would be considered chaotic. - """ - raise NotImplementedError # Defensive: - - def reset(self) -> None: # Defensive: - """ - Permit to reset the plugin to the initial state. - """ - raise NotImplementedError - - @property - def ratio(self) -> float: - """ - Compute the chaos ratio based on what your feed() has seen. - Must NOT be lower than 0.; No restriction gt 0. - """ - raise NotImplementedError # Defensive: - - -@final -class TooManySymbolOrPunctuationPlugin(MessDetectorPlugin): - __slots__ = ( - "_punctuation_count", - "_symbol_count", - "_character_count", - "_last_printable_char", - "_frenzy_symbol_in_word", - ) - - def __init__(self) -> None: - self._punctuation_count: int = 0 - self._symbol_count: int = 0 - self._character_count: int = 0 - - self._last_printable_char: str | None = None - self._frenzy_symbol_in_word: bool = False - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - self._character_count += 1 - - if ( - character != self._last_printable_char - and character not in COMMON_SAFE_ASCII_CHARACTERS - ): - if info.punct: - self._punctuation_count += 1 - elif not info.digit and info.sym and not is_emoticon(character): - self._symbol_count += 2 - - self._last_printable_char = character - - def reset(self) -> None: # Abstract - self._punctuation_count = 0 - self._character_count = 0 - self._symbol_count = 0 - - @property - def ratio(self) -> float: - if self._character_count == 0: - return 0.0 - - ratio_of_punctuation: float = ( - self._punctuation_count + self._symbol_count - ) / self._character_count - - return ratio_of_punctuation if ratio_of_punctuation >= 0.3 else 0.0 - - -@final -class TooManyAccentuatedPlugin(MessDetectorPlugin): - __slots__ = ("_character_count", "_accentuated_count") - - def __init__(self) -> None: - self._character_count: int = 0 - self._accentuated_count: int = 0 - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - self._character_count += 1 - - if info.accentuated: - self._accentuated_count += 1 - - def reset(self) -> None: # Abstract - self._character_count = 0 - self._accentuated_count = 0 - - @property - def ratio(self) -> float: - if self._character_count < 8: - return 0.0 - - ratio_of_accentuation: float = self._accentuated_count / self._character_count - return ratio_of_accentuation if ratio_of_accentuation >= 0.35 else 0.0 - - -@final -class UnprintablePlugin(MessDetectorPlugin): - __slots__ = ("_unprintable_count", "_character_count") - - def __init__(self) -> None: - self._unprintable_count: int = 0 - self._character_count: int = 0 - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - if ( - not info.space - and not info.printable - and character != "\x1a" - and character != "\ufeff" - ): - self._unprintable_count += 1 - self._character_count += 1 - - def reset(self) -> None: # Abstract - self._unprintable_count = 0 - - @property - def ratio(self) -> float: - if self._character_count == 0: # Defensive: - return 0.0 - - return (self._unprintable_count * 8) / self._character_count - - -@final -class SuspiciousDuplicateAccentPlugin(MessDetectorPlugin): - __slots__ = ( - "_successive_count", - "_character_count", - "_last_latin_character", - "_last_was_accentuated", - ) - - def __init__(self) -> None: - self._successive_count: int = 0 - self._character_count: int = 0 - - self._last_latin_character: str | None = None - self._last_was_accentuated: bool = False - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - self._character_count += 1 - if ( - self._last_latin_character is not None - and info.accentuated - and self._last_was_accentuated - ): - if info.upper and self._last_latin_character.isupper(): - self._successive_count += 1 - if remove_accent(character) == remove_accent(self._last_latin_character): - self._successive_count += 1 - self._last_latin_character = character - self._last_was_accentuated = info.accentuated - - def reset(self) -> None: # Abstract - self._successive_count = 0 - self._character_count = 0 - self._last_latin_character = None - self._last_was_accentuated = False - - @property - def ratio(self) -> float: - if self._character_count == 0: - return 0.0 - - return (self._successive_count * 2) / self._character_count - - -@final -class SuspiciousRange(MessDetectorPlugin): - __slots__ = ( - "_suspicious_successive_range_count", - "_character_count", - "_last_printable_seen", - "_last_printable_range", - ) - - def __init__(self) -> None: - self._suspicious_successive_range_count: int = 0 - self._character_count: int = 0 - self._last_printable_seen: str | None = None - self._last_printable_range: str | None = None - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - self._character_count += 1 - - if info.space or info.punct or character in COMMON_SAFE_ASCII_CHARACTERS: - self._last_printable_seen = None - self._last_printable_range = None - return - - if self._last_printable_seen is None: - self._last_printable_seen = character - self._last_printable_range = unicode_range(character) - return - - unicode_range_a: str | None = self._last_printable_range - unicode_range_b: str | None = unicode_range(character) - - if is_suspiciously_successive_range(unicode_range_a, unicode_range_b): - self._suspicious_successive_range_count += 1 - - self._last_printable_seen = character - self._last_printable_range = unicode_range_b - - def reset(self) -> None: # Abstract - self._character_count = 0 - self._suspicious_successive_range_count = 0 - self._last_printable_seen = None - self._last_printable_range = None - - @property - def ratio(self) -> float: - if self._character_count <= 13: - return 0.0 - - ratio_of_suspicious_range_usage: float = ( - self._suspicious_successive_range_count * 2 - ) / self._character_count - - return ratio_of_suspicious_range_usage - - -@final -class SuperWeirdWordPlugin(MessDetectorPlugin): - __slots__ = ( - "_word_count", - "_bad_word_count", - "_foreign_long_count", - "_is_current_word_bad", - "_foreign_long_watch", - "_character_count", - "_bad_character_count", - "_buffer_length", - "_buffer_last_char", - "_buffer_last_char_accentuated", - "_buffer_accent_count", - "_buffer_glyph_count", - "_buffer_upper_count", - ) - - def __init__(self) -> None: - self._word_count: int = 0 - self._bad_word_count: int = 0 - self._foreign_long_count: int = 0 - - self._is_current_word_bad: bool = False - self._foreign_long_watch: bool = False - - self._character_count: int = 0 - self._bad_character_count: int = 0 - - self._buffer_length: int = 0 - self._buffer_last_char: str | None = None - self._buffer_last_char_accentuated: bool = False - self._buffer_accent_count: int = 0 - self._buffer_glyph_count: int = 0 - self._buffer_upper_count: int = 0 - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - if info.alpha: - self._buffer_length += 1 - self._buffer_last_char = character - - if info.upper: - self._buffer_upper_count += 1 - - self._buffer_last_char_accentuated = info.accentuated - - if info.accentuated: - self._buffer_accent_count += 1 - if ( - not self._foreign_long_watch - and (not info.latin or info.accentuated) - and not info.is_glyph - ): - self._foreign_long_watch = True - if info.is_glyph: - self._buffer_glyph_count += 1 - return - if not self._buffer_length: - return - if info.space or info.punct or is_separator(character): - self._word_count += 1 - buffer_length: int = self._buffer_length - - self._character_count += buffer_length - - if buffer_length >= 4: - if self._buffer_accent_count / buffer_length >= 0.5: - self._is_current_word_bad = True - elif ( - self._buffer_last_char_accentuated - and self._buffer_last_char.isupper() # type: ignore[union-attr] - and self._buffer_upper_count != buffer_length - ): - self._foreign_long_count += 1 - self._is_current_word_bad = True - elif self._buffer_glyph_count == 1: - self._is_current_word_bad = True - self._foreign_long_count += 1 - if buffer_length >= 24 and self._foreign_long_watch: - probable_camel_cased: bool = ( - self._buffer_upper_count > 0 - and self._buffer_upper_count / buffer_length <= 0.3 - ) - - if not probable_camel_cased: - self._foreign_long_count += 1 - self._is_current_word_bad = True - - if self._is_current_word_bad: - self._bad_word_count += 1 - self._bad_character_count += buffer_length - self._is_current_word_bad = False - - self._foreign_long_watch = False - self._buffer_length = 0 - self._buffer_last_char = None - self._buffer_last_char_accentuated = False - self._buffer_accent_count = 0 - self._buffer_glyph_count = 0 - self._buffer_upper_count = 0 - elif ( - character not in {"<", ">", "-", "=", "~", "|", "_"} - and not info.digit - and info.sym - ): - self._is_current_word_bad = True - self._buffer_length += 1 - self._buffer_last_char = character - self._buffer_last_char_accentuated = False - - def reset(self) -> None: # Abstract - self._buffer_length = 0 - self._buffer_last_char = None - self._buffer_last_char_accentuated = False - self._is_current_word_bad = False - self._foreign_long_watch = False - self._bad_word_count = 0 - self._word_count = 0 - self._character_count = 0 - self._bad_character_count = 0 - self._foreign_long_count = 0 - self._buffer_accent_count = 0 - self._buffer_glyph_count = 0 - self._buffer_upper_count = 0 - - @property - def ratio(self) -> float: - if self._word_count <= 10 and self._foreign_long_count == 0: - return 0.0 - - return self._bad_character_count / self._character_count - - -@final -class CjkUncommonPlugin(MessDetectorPlugin): - """ - Detect messy CJK text that probably means nothing. - """ - - __slots__ = ("_character_count", "_uncommon_count") - - def __init__(self) -> None: - self._character_count: int = 0 - self._uncommon_count: int = 0 - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - self._character_count += 1 - - if character not in COMMON_CJK_CHARACTERS: - self._uncommon_count += 1 - - def reset(self) -> None: # Abstract - self._character_count = 0 - self._uncommon_count = 0 - - @property - def ratio(self) -> float: - if self._character_count < 8: - return 0.0 - - uncommon_form_usage: float = self._uncommon_count / self._character_count - - # we can be pretty sure it's garbage when uncommon characters are widely - # used. otherwise it could just be traditional chinese for example. - return uncommon_form_usage / 10 if uncommon_form_usage > 0.5 else 0.0 - - -@final -class ArchaicUpperLowerPlugin(MessDetectorPlugin): - __slots__ = ( - "_buf", - "_character_count_since_last_sep", - "_successive_upper_lower_count", - "_successive_upper_lower_count_final", - "_character_count", - "_last_alpha_seen", - "_last_alpha_seen_upper", - "_last_alpha_seen_lower", - "_current_ascii_only", - ) - - def __init__(self) -> None: - self._buf: bool = False - - self._character_count_since_last_sep: int = 0 - - self._successive_upper_lower_count: int = 0 - self._successive_upper_lower_count_final: int = 0 - - self._character_count: int = 0 - - self._last_alpha_seen: str | None = None - self._last_alpha_seen_upper: bool = False - self._last_alpha_seen_lower: bool = False - self._current_ascii_only: bool = True - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - is_concerned: bool = info.alpha and info.case_variable - chunk_sep: bool = not is_concerned - - if chunk_sep and self._character_count_since_last_sep > 0: - if ( - self._character_count_since_last_sep <= 64 - and not info.digit - and not self._current_ascii_only - ): - self._successive_upper_lower_count_final += ( - self._successive_upper_lower_count - ) - - self._successive_upper_lower_count = 0 - self._character_count_since_last_sep = 0 - self._last_alpha_seen = None - self._buf = False - self._character_count += 1 - self._current_ascii_only = True - - return - - if self._current_ascii_only and not info.is_ascii: - self._current_ascii_only = False - - if self._last_alpha_seen is not None: - if (info.upper and self._last_alpha_seen_lower) or ( - info.lower and self._last_alpha_seen_upper - ): - if self._buf: - self._successive_upper_lower_count += 2 - self._buf = False - else: - self._buf = True - else: - self._buf = False - - self._character_count += 1 - self._character_count_since_last_sep += 1 - self._last_alpha_seen = character - self._last_alpha_seen_upper = info.upper - self._last_alpha_seen_lower = info.lower - - def reset(self) -> None: # Abstract - self._character_count = 0 - self._character_count_since_last_sep = 0 - self._successive_upper_lower_count = 0 - self._successive_upper_lower_count_final = 0 - self._last_alpha_seen = None - self._last_alpha_seen_upper = False - self._last_alpha_seen_lower = False - self._buf = False - self._current_ascii_only = True - - @property - def ratio(self) -> float: - if self._character_count == 0: # Defensive: - return 0.0 - - return self._successive_upper_lower_count_final / self._character_count - - -@final -class ArabicIsolatedFormPlugin(MessDetectorPlugin): - __slots__ = ("_character_count", "_isolated_form_count") - - def __init__(self) -> None: - self._character_count: int = 0 - self._isolated_form_count: int = 0 - - def reset(self) -> None: # Abstract - self._character_count = 0 - self._isolated_form_count = 0 - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - self._character_count += 1 - - if info.flags & _ARABIC_ISOLATED_FORM: - self._isolated_form_count += 1 - - @property - def ratio(self) -> float: - if self._character_count < 8: - return 0.0 - - isolated_form_usage: float = self._isolated_form_count / self._character_count - - return isolated_form_usage - - -@lru_cache(maxsize=1024) -def is_suspiciously_successive_range( - unicode_range_a: str | None, unicode_range_b: str | None -) -> bool: - """ - Determine if two Unicode range seen next to each other can be considered as suspicious. - """ - if unicode_range_a is None or unicode_range_b is None: - return True - - if unicode_range_a == unicode_range_b: - return False - - if "Latin" in unicode_range_a and "Latin" in unicode_range_b: - return False - - if "Emoticons" in unicode_range_a or "Emoticons" in unicode_range_b: - return False - - # Latin characters can be accompanied with a combining diacritical mark - # eg. Vietnamese. - if ("Latin" in unicode_range_a or "Latin" in unicode_range_b) and ( - "Combining" in unicode_range_a or "Combining" in unicode_range_b - ): - return False - - keywords_range_a, keywords_range_b = ( - unicode_range_a.split(" "), - unicode_range_b.split(" "), - ) - - for el in keywords_range_a: - if el in UNICODE_SECONDARY_RANGE_KEYWORD: - continue - if el in keywords_range_b: - return False - - # Japanese Exception - range_a_jp_chars, range_b_jp_chars = ( - unicode_range_a - in ( - "Hiragana", - "Katakana", - ), - unicode_range_b in ("Hiragana", "Katakana"), - ) - if (range_a_jp_chars or range_b_jp_chars) and ( - "CJK" in unicode_range_a or "CJK" in unicode_range_b - ): - return False - if range_a_jp_chars and range_b_jp_chars: - return False - - if "Hangul" in unicode_range_a or "Hangul" in unicode_range_b: - if "CJK" in unicode_range_a or "CJK" in unicode_range_b: - return False - if unicode_range_a == "Basic Latin" or unicode_range_b == "Basic Latin": - return False - - # Chinese/Japanese use dedicated range for punctuation and/or separators. - if ("CJK" in unicode_range_a or "CJK" in unicode_range_b) or ( - unicode_range_a in ["Katakana", "Hiragana"] - and unicode_range_b in ["Katakana", "Hiragana"] - ): - if "Punctuation" in unicode_range_a or "Punctuation" in unicode_range_b: - return False - if "Forms" in unicode_range_a or "Forms" in unicode_range_b: - return False - if unicode_range_a == "Basic Latin" or unicode_range_b == "Basic Latin": - return False - - return True - - -@lru_cache(maxsize=2048) -def mess_ratio( - decoded_sequence: str, maximum_threshold: float = 0.2, debug: bool = False -) -> float: - """ - Compute a mess ratio given a decoded bytes sequence. The maximum threshold does stop the computation earlier. - """ - - seq_len: int = len(decoded_sequence) - - if seq_len < 511: - step: int = 32 - elif seq_len < 1024: - step = 64 - else: - step = 128 - - # Create each detector as a named local variable (unrolled from the generic loop). - # This eliminates per-character iteration over the detector list and - # per-character eligible() virtual dispatch, while keeping every plugin class - # intact and fully readable. - d_sp: TooManySymbolOrPunctuationPlugin = TooManySymbolOrPunctuationPlugin() - d_ta: TooManyAccentuatedPlugin = TooManyAccentuatedPlugin() - d_up: UnprintablePlugin = UnprintablePlugin() - d_sda: SuspiciousDuplicateAccentPlugin = SuspiciousDuplicateAccentPlugin() - d_sr: SuspiciousRange = SuspiciousRange() - d_sw: SuperWeirdWordPlugin = SuperWeirdWordPlugin() - d_cu: CjkUncommonPlugin = CjkUncommonPlugin() - d_au: ArchaicUpperLowerPlugin = ArchaicUpperLowerPlugin() - d_ai: ArabicIsolatedFormPlugin = ArabicIsolatedFormPlugin() - - # Local references for feed_info methods called in the hot loop. - d_sp_feed = d_sp.feed_info - d_ta_feed = d_ta.feed_info - d_up_feed = d_up.feed_info - d_sda_feed = d_sda.feed_info - d_sr_feed = d_sr.feed_info - d_sw_feed = d_sw.feed_info - d_cu_feed = d_cu.feed_info - d_au_feed = d_au.feed_info - d_ai_feed = d_ai.feed_info - - # Single reusable CharInfo object (avoids per-character allocation). - info: CharInfo = CharInfo() - info_update = info.update - - mean_mess_ratio: float - - for block_start in range(0, seq_len, step): - for character in decoded_sequence[block_start : block_start + step]: - # Pre-compute all character properties once (shared across all plugins). - info_update(character) - - # Detectors with eligible() == always True - d_up_feed(character, info) - d_sw_feed(character, info) - d_au_feed(character, info) - - # Detectors with eligible() == isprintable - if info.printable: - d_sp_feed(character, info) - d_sr_feed(character, info) - - # Detectors with eligible() == isalpha - if info.alpha: - d_ta_feed(character, info) - # SuspiciousDuplicateAccent: isalpha() and is_latin() - if info.latin: - d_sda_feed(character, info) - # CjkUncommon: is_cjk() - if info.is_cjk: - d_cu_feed(character, info) - # ArabicIsolatedForm: is_arabic() - if info.is_arabic: - d_ai_feed(character, info) - - mean_mess_ratio = ( - d_sp.ratio - + d_ta.ratio - + d_up.ratio - + d_sda.ratio - + d_sr.ratio - + d_sw.ratio - + d_cu.ratio - + d_au.ratio - + d_ai.ratio - ) - - if mean_mess_ratio >= maximum_threshold: - break - else: - # Flush last word buffer in SuperWeirdWordPlugin via trailing newline. - info_update("\n") - d_sw_feed("\n", info) - d_au_feed("\n", info) - d_up_feed("\n", info) - - mean_mess_ratio = ( - d_sp.ratio - + d_ta.ratio - + d_up.ratio - + d_sda.ratio - + d_sr.ratio - + d_sw.ratio - + d_cu.ratio - + d_au.ratio - + d_ai.ratio - ) - - if debug: # Defensive: - logger = getLogger("charset_normalizer") - - logger.log( - TRACE, - "Mess-detector extended-analysis start. " - f"intermediary_mean_mess_ratio_calc={step} mean_mess_ratio={mean_mess_ratio} " - f"maximum_threshold={maximum_threshold}", - ) - - if seq_len > 16: - logger.log(TRACE, f"Starting with: {decoded_sequence[:16]}") - logger.log(TRACE, f"Ending with: {decoded_sequence[-16::]}") - - for dt in [d_sp, d_ta, d_up, d_sda, d_sr, d_sw, d_cu, d_au, d_ai]: - logger.log(TRACE, f"{dt.__class__}: {dt.ratio}") - - return round(mean_mess_ratio, 3) diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/models.py b/.venv/lib/python3.12/site-packages/charset_normalizer/models.py deleted file mode 100644 index 382de15..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/models.py +++ /dev/null @@ -1,369 +0,0 @@ -from __future__ import annotations - -from encodings.aliases import aliases -from json import dumps -from re import sub -from typing import Any, Iterator, List, Tuple - -from .constant import RE_POSSIBLE_ENCODING_INDICATION, TOO_BIG_SEQUENCE -from .utils import iana_name, is_multi_byte_encoding, unicode_range - - -class CharsetMatch: - def __init__( - self, - payload: bytes | bytearray, - guessed_encoding: str, - mean_mess_ratio: float, - has_sig_or_bom: bool, - languages: CoherenceMatches, - decoded_payload: str | None = None, - preemptive_declaration: str | None = None, - ): - self._payload: bytes | bytearray = payload - - self._encoding: str = guessed_encoding - self._mean_mess_ratio: float = mean_mess_ratio - self._languages: CoherenceMatches = languages - self._has_sig_or_bom: bool = has_sig_or_bom - self._unicode_ranges: list[str] | None = None - - self._leaves: list[CharsetMatch] = [] - self._mean_coherence_ratio: float = 0.0 - - self._output_payload: bytes | None = None - self._output_encoding: str | None = None - - self._string: str | None = decoded_payload - - self._preemptive_declaration: str | None = preemptive_declaration - - def __eq__(self, other: object) -> bool: - if not isinstance(other, CharsetMatch): - if isinstance(other, str): - return iana_name(other) == self.encoding - return False - return self.encoding == other.encoding and self.fingerprint == other.fingerprint - - def __lt__(self, other: object) -> bool: - """ - Implemented to make sorted available upon CharsetMatches items. - """ - if not isinstance(other, CharsetMatch): - raise ValueError - - chaos_difference: float = abs(self.chaos - other.chaos) - coherence_difference: float = abs(self.coherence - other.coherence) - - # Below 0.5% difference --> Use Coherence - if chaos_difference < 0.005 and coherence_difference > 0.02: - return self.coherence > other.coherence - elif chaos_difference < 0.005 and coherence_difference <= 0.02: - # When having a difficult decision, use the result that decoded as many multi-byte as possible. - # preserve RAM usage! - if len(self._payload) >= TOO_BIG_SEQUENCE: - return self.chaos < other.chaos - return self.multi_byte_usage > other.multi_byte_usage - - return self.chaos < other.chaos - - @property - def multi_byte_usage(self) -> float: - return 1.0 - (len(str(self)) / len(self.raw)) - - def __str__(self) -> str: - # Lazy Str Loading - if self._string is None: - self._string = str(self._payload, self._encoding, "strict") - # UTF-7 BOM is encoded in modified Base64 whose byte boundary - # can overlap with the next character, so raw-byte stripping - # is unreliable. Strip the decoded BOM character instead. - if ( - self._has_sig_or_bom - and self._encoding == "utf_7" - and self._string - and self._string[0] == "\ufeff" - ): - self._string = self._string[1:] - return self._string - - def __repr__(self) -> str: - return f"" - - def add_submatch(self, other: CharsetMatch) -> None: - if not isinstance(other, CharsetMatch) or other == self: - raise ValueError( - "Unable to add instance <{}> as a submatch of a CharsetMatch".format( - other.__class__ - ) - ) - - other._string = None # Unload RAM usage; dirty trick. - self._leaves.append(other) - - @property - def encoding(self) -> str: - return self._encoding - - @property - def encoding_aliases(self) -> list[str]: - """ - Encoding name are known by many name, using this could help when searching for IBM855 when it's listed as CP855. - """ - also_known_as: list[str] = [] - for u, p in aliases.items(): - if self.encoding == u: - also_known_as.append(p) - elif self.encoding == p: - also_known_as.append(u) - return also_known_as - - @property - def bom(self) -> bool: - return self._has_sig_or_bom - - @property - def byte_order_mark(self) -> bool: - return self._has_sig_or_bom - - @property - def languages(self) -> list[str]: - """ - Return the complete list of possible languages found in decoded sequence. - Usually not really useful. Returned list may be empty even if 'language' property return something != 'Unknown'. - """ - return [e[0] for e in self._languages] - - @property - def language(self) -> str: - """ - Most probable language found in decoded sequence. If none were detected or inferred, the property will return - "Unknown". - """ - if not self._languages: - # Trying to infer the language based on the given encoding - # Its either English or we should not pronounce ourselves in certain cases. - if "ascii" in self.could_be_from_charset: - return "English" - - # doing it there to avoid circular import - from charset_normalizer.cd import encoding_languages, mb_encoding_languages - - languages = ( - mb_encoding_languages(self.encoding) - if is_multi_byte_encoding(self.encoding) - else encoding_languages(self.encoding) - ) - - if len(languages) == 0 or "Latin Based" in languages: - return "Unknown" - - return languages[0] - - return self._languages[0][0] - - @property - def chaos(self) -> float: - return self._mean_mess_ratio - - @property - def coherence(self) -> float: - if not self._languages: - return 0.0 - return self._languages[0][1] - - @property - def percent_chaos(self) -> float: - return round(self.chaos * 100, ndigits=3) - - @property - def percent_coherence(self) -> float: - return round(self.coherence * 100, ndigits=3) - - @property - def raw(self) -> bytes | bytearray: - """ - Original untouched bytes. - """ - return self._payload - - @property - def submatch(self) -> list[CharsetMatch]: - return self._leaves - - @property - def has_submatch(self) -> bool: - return len(self._leaves) > 0 - - @property - def alphabets(self) -> list[str]: - if self._unicode_ranges is not None: - return self._unicode_ranges - # list detected ranges - detected_ranges: list[str | None] = [unicode_range(char) for char in str(self)] - # filter and sort - self._unicode_ranges = sorted(list({r for r in detected_ranges if r})) - return self._unicode_ranges - - @property - def could_be_from_charset(self) -> list[str]: - """ - The complete list of encoding that output the exact SAME str result and therefore could be the originating - encoding. - This list does include the encoding available in property 'encoding'. - """ - return [self._encoding] + [m.encoding for m in self._leaves] - - def output(self, encoding: str = "utf_8") -> bytes: - """ - Method to get re-encoded bytes payload using given target encoding. Default to UTF-8. - Any errors will be simply ignored by the encoder NOT replaced. - """ - if self._output_encoding is None or self._output_encoding != encoding: - self._output_encoding = encoding - decoded_string = str(self) - if ( - self._preemptive_declaration is not None - and self._preemptive_declaration.lower() - not in ["utf-8", "utf8", "utf_8"] - ): - patched_header = sub( - RE_POSSIBLE_ENCODING_INDICATION, - lambda m: m.string[m.span()[0] : m.span()[1]].replace( - m.groups()[0], - iana_name(self._output_encoding).replace("_", "-"), # type: ignore[arg-type] - ), - decoded_string[:8192], - count=1, - ) - - decoded_string = patched_header + decoded_string[8192:] - - self._output_payload = decoded_string.encode(encoding, "replace") - - return self._output_payload # type: ignore - - @property - def fingerprint(self) -> int: - """ - Retrieve a hash fingerprint of the decoded payload, used for deduplication. - """ - return hash(str(self)) - - -class CharsetMatches: - """ - Container with every CharsetMatch items ordered by default from most probable to the less one. - Act like a list(iterable) but does not implements all related methods. - """ - - def __init__(self, results: list[CharsetMatch] | None = None): - self._results: list[CharsetMatch] = sorted(results) if results else [] - - def __iter__(self) -> Iterator[CharsetMatch]: - yield from self._results - - def __getitem__(self, item: int | str) -> CharsetMatch: - """ - Retrieve a single item either by its position or encoding name (alias may be used here). - Raise KeyError upon invalid index or encoding not present in results. - """ - if isinstance(item, int): - return self._results[item] - if isinstance(item, str): - item = iana_name(item, False) - for result in self._results: - if item in result.could_be_from_charset: - return result - raise KeyError - - def __len__(self) -> int: - return len(self._results) - - def __bool__(self) -> bool: - return len(self._results) > 0 - - def append(self, item: CharsetMatch) -> None: - """ - Insert a single match. Will be inserted accordingly to preserve sort. - Can be inserted as a submatch. - """ - if not isinstance(item, CharsetMatch): - raise ValueError( - "Cannot append instance '{}' to CharsetMatches".format( - str(item.__class__) - ) - ) - # We should disable the submatch factoring when the input file is too heavy (conserve RAM usage) - if len(item.raw) < TOO_BIG_SEQUENCE: - for match in self._results: - if match.fingerprint == item.fingerprint and match.chaos == item.chaos: - match.add_submatch(item) - return - self._results.append(item) - self._results = sorted(self._results) - - def best(self) -> CharsetMatch | None: - """ - Simply return the first match. Strict equivalent to matches[0]. - """ - if not self._results: - return None - return self._results[0] - - def first(self) -> CharsetMatch | None: - """ - Redundant method, call the method best(). Kept for BC reasons. - """ - return self.best() - - -CoherenceMatch = Tuple[str, float] -CoherenceMatches = List[CoherenceMatch] - - -class CliDetectionResult: - def __init__( - self, - path: str, - encoding: str | None, - encoding_aliases: list[str], - alternative_encodings: list[str], - language: str, - alphabets: list[str], - has_sig_or_bom: bool, - chaos: float, - coherence: float, - unicode_path: str | None, - is_preferred: bool, - ): - self.path: str = path - self.unicode_path: str | None = unicode_path - self.encoding: str | None = encoding - self.encoding_aliases: list[str] = encoding_aliases - self.alternative_encodings: list[str] = alternative_encodings - self.language: str = language - self.alphabets: list[str] = alphabets - self.has_sig_or_bom: bool = has_sig_or_bom - self.chaos: float = chaos - self.coherence: float = coherence - self.is_preferred: bool = is_preferred - - @property - def __dict__(self) -> dict[str, Any]: # type: ignore - return { - "path": self.path, - "encoding": self.encoding, - "encoding_aliases": self.encoding_aliases, - "alternative_encodings": self.alternative_encodings, - "language": self.language, - "alphabets": self.alphabets, - "has_sig_or_bom": self.has_sig_or_bom, - "chaos": self.chaos, - "coherence": self.coherence, - "unicode_path": self.unicode_path, - "is_preferred": self.is_preferred, - } - - def to_json(self) -> str: - return dumps(self.__dict__, ensure_ascii=True, indent=4) diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/py.typed b/.venv/lib/python3.12/site-packages/charset_normalizer/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/utils.py b/.venv/lib/python3.12/site-packages/charset_normalizer/utils.py deleted file mode 100644 index 0f529b5..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/utils.py +++ /dev/null @@ -1,422 +0,0 @@ -from __future__ import annotations - -import importlib -import logging -import unicodedata -from bisect import bisect_right -from codecs import IncrementalDecoder -from encodings.aliases import aliases -from functools import lru_cache -from re import findall -from typing import Generator - -from _multibytecodec import ( # type: ignore[import-not-found,import] - MultibyteIncrementalDecoder, -) - -from .constant import ( - ENCODING_MARKS, - IANA_SUPPORTED_SIMILAR, - RE_POSSIBLE_ENCODING_INDICATION, - UNICODE_RANGES_COMBINED, - UNICODE_SECONDARY_RANGE_KEYWORD, - UTF8_MAXIMAL_ALLOCATION, - COMMON_CJK_CHARACTERS, - _LATIN, - _CJK, - _HANGUL, - _KATAKANA, - _HIRAGANA, - _THAI, - _ARABIC, - _ARABIC_ISOLATED_FORM, - _ACCENT_KEYWORDS, - _ACCENTUATED, -) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def _character_flags(character: str) -> int: - """Compute all name-based classification flags with a single unicodedata.name() call.""" - try: - desc: str = unicodedata.name(character) - except ValueError: - return 0 - - flags: int = 0 - - if "LATIN" in desc: - flags |= _LATIN - if "CJK" in desc: - flags |= _CJK - if "HANGUL" in desc: - flags |= _HANGUL - if "KATAKANA" in desc: - flags |= _KATAKANA - if "HIRAGANA" in desc: - flags |= _HIRAGANA - if "THAI" in desc: - flags |= _THAI - if "ARABIC" in desc: - flags |= _ARABIC - if "ISOLATED FORM" in desc: - flags |= _ARABIC_ISOLATED_FORM - - for kw in _ACCENT_KEYWORDS: - if kw in desc: - flags |= _ACCENTUATED - break - - return flags - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_accentuated(character: str) -> bool: - return bool(_character_flags(character) & _ACCENTUATED) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def remove_accent(character: str) -> str: - decomposed: str = unicodedata.decomposition(character) - if not decomposed: - return character - - codes: list[str] = decomposed.split(" ") - - return chr(int(codes[0], 16)) - - -# Pre-built sorted lookup table for O(log n) binary search in unicode_range(). -# Each entry is (range_start, range_end_exclusive, range_name). -_UNICODE_RANGES_SORTED: list[tuple[int, int, str]] = sorted( - (ord_range.start, ord_range.stop, name) - for name, ord_range in UNICODE_RANGES_COMBINED.items() -) -_UNICODE_RANGE_STARTS: list[int] = [e[0] for e in _UNICODE_RANGES_SORTED] - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def unicode_range(character: str) -> str | None: - """ - Retrieve the Unicode range official name from a single character. - """ - character_ord: int = ord(character) - - # Binary search: find the rightmost range whose start <= character_ord - idx = bisect_right(_UNICODE_RANGE_STARTS, character_ord) - 1 - if idx >= 0: - start, stop, name = _UNICODE_RANGES_SORTED[idx] - if character_ord < stop: - return name - - return None - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_latin(character: str) -> bool: - return bool(_character_flags(character) & _LATIN) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_punctuation(character: str) -> bool: - character_category: str = unicodedata.category(character) - - if "P" in character_category: - return True - - character_range: str | None = unicode_range(character) - - if character_range is None: - return False - - return "Punctuation" in character_range - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_symbol(character: str) -> bool: - character_category: str = unicodedata.category(character) - - if "S" in character_category or "N" in character_category: - return True - - character_range: str | None = unicode_range(character) - - if character_range is None: - return False - - return "Forms" in character_range and character_category != "Lo" - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_emoticon(character: str) -> bool: - character_range: str | None = unicode_range(character) - - if character_range is None: - return False - - return "Emoticons" in character_range or "Pictographs" in character_range - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_separator(character: str) -> bool: - if character.isspace() or character in {"|", "+", "<", ">"}: - return True - - character_category: str = unicodedata.category(character) - - return "Z" in character_category or character_category in {"Po", "Pd", "Pc"} - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_case_variable(character: str) -> bool: - return character.islower() != character.isupper() - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_cjk(character: str) -> bool: - return bool(_character_flags(character) & _CJK) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_hiragana(character: str) -> bool: - return bool(_character_flags(character) & _HIRAGANA) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_katakana(character: str) -> bool: - return bool(_character_flags(character) & _KATAKANA) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_hangul(character: str) -> bool: - return bool(_character_flags(character) & _HANGUL) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_thai(character: str) -> bool: - return bool(_character_flags(character) & _THAI) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_arabic(character: str) -> bool: - return bool(_character_flags(character) & _ARABIC) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_arabic_isolated_form(character: str) -> bool: - return bool(_character_flags(character) & _ARABIC_ISOLATED_FORM) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_cjk_uncommon(character: str) -> bool: - return character not in COMMON_CJK_CHARACTERS - - -@lru_cache(maxsize=len(UNICODE_RANGES_COMBINED)) -def is_unicode_range_secondary(range_name: str) -> bool: - return any(keyword in range_name for keyword in UNICODE_SECONDARY_RANGE_KEYWORD) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_unprintable(character: str) -> bool: - return ( - character.isspace() is False # includes \n \t \r \v - and character.isprintable() is False - and character != "\x1a" # Why? Its the ASCII substitute character. - and character != "\ufeff" # bug discovered in Python, - # Zero Width No-Break Space located in Arabic Presentation Forms-B, Unicode 1.1 not acknowledged as space. - ) - - -def any_specified_encoding( - sequence: bytes | bytearray, search_zone: int = 8192 -) -> str | None: - """ - Extract using ASCII-only decoder any specified encoding in the first n-bytes. - """ - if not isinstance(sequence, (bytes, bytearray)): - raise TypeError - - seq_len: int = len(sequence) - - results: list[str] = findall( - RE_POSSIBLE_ENCODING_INDICATION, - sequence[: min(seq_len, search_zone)].decode("ascii", errors="ignore"), - ) - - if len(results) == 0: - return None - - for specified_encoding in results: - specified_encoding = specified_encoding.lower().replace("-", "_") - - encoding_alias: str - encoding_iana: str - - for encoding_alias, encoding_iana in aliases.items(): - if encoding_alias == specified_encoding: - return encoding_iana - if encoding_iana == specified_encoding: - return encoding_iana - - return None - - -@lru_cache(maxsize=128) -def is_multi_byte_encoding(name: str) -> bool: - """ - Verify is a specific encoding is a multi byte one based on it IANA name - """ - return name in { - "utf_8", - "utf_8_sig", - "utf_16", - "utf_16_be", - "utf_16_le", - "utf_32", - "utf_32_le", - "utf_32_be", - "utf_7", - } or issubclass( - importlib.import_module(f"encodings.{name}").IncrementalDecoder, - MultibyteIncrementalDecoder, - ) - - -def identify_sig_or_bom(sequence: bytes | bytearray) -> tuple[str | None, bytes]: - """ - Identify and extract SIG/BOM in given sequence. - """ - - for iana_encoding in ENCODING_MARKS: - marks: bytes | list[bytes] = ENCODING_MARKS[iana_encoding] - - if isinstance(marks, bytes): - marks = [marks] - - for mark in marks: - if sequence.startswith(mark): - return iana_encoding, mark - - return None, b"" - - -def should_strip_sig_or_bom(iana_encoding: str) -> bool: - return iana_encoding not in {"utf_16", "utf_32"} - - -def iana_name(cp_name: str, strict: bool = True) -> str: - """Returns the Python normalized encoding name (Not the IANA official name).""" - cp_name = cp_name.lower().replace("-", "_") - - encoding_alias: str - encoding_iana: str - - for encoding_alias, encoding_iana in aliases.items(): - if cp_name in [encoding_alias, encoding_iana]: - return encoding_iana - - if strict: - raise ValueError(f"Unable to retrieve IANA for '{cp_name}'") - - return cp_name - - -def cp_similarity(iana_name_a: str, iana_name_b: str) -> float: - if is_multi_byte_encoding(iana_name_a) or is_multi_byte_encoding(iana_name_b): - return 0.0 - - decoder_a = importlib.import_module(f"encodings.{iana_name_a}").IncrementalDecoder - decoder_b = importlib.import_module(f"encodings.{iana_name_b}").IncrementalDecoder - - id_a: IncrementalDecoder = decoder_a(errors="ignore") - id_b: IncrementalDecoder = decoder_b(errors="ignore") - - character_match_count: int = 0 - - for i in range(256): - to_be_decoded: bytes = bytes([i]) - if id_a.decode(to_be_decoded) == id_b.decode(to_be_decoded): - character_match_count += 1 - - return character_match_count / 256 - - -def is_cp_similar(iana_name_a: str, iana_name_b: str) -> bool: - """ - Determine if two code page are at least 80% similar. IANA_SUPPORTED_SIMILAR dict was generated using - the function cp_similarity. - """ - return ( - iana_name_a in IANA_SUPPORTED_SIMILAR - and iana_name_b in IANA_SUPPORTED_SIMILAR[iana_name_a] - ) - - -def set_logging_handler( - name: str = "charset_normalizer", - level: int = logging.INFO, - format_string: str = "%(asctime)s | %(levelname)s | %(message)s", -) -> None: - logger = logging.getLogger(name) - logger.setLevel(level) - - handler = logging.StreamHandler() - handler.setFormatter(logging.Formatter(format_string)) - logger.addHandler(handler) - - -def cut_sequence_chunks( - sequences: bytes | bytearray, - encoding_iana: str, - offsets: range, - chunk_size: int, - bom_or_sig_available: bool, - strip_sig_or_bom: bool, - sig_payload: bytes, - is_multi_byte_decoder: bool, - decoded_payload: str | None = None, -) -> Generator[str, None, None]: - if decoded_payload and is_multi_byte_decoder is False: - for i in offsets: - chunk = decoded_payload[i : i + chunk_size] - if not chunk: - break - yield chunk - else: - for i in offsets: - chunk_end = i + chunk_size - if chunk_end > len(sequences) + 8: - continue - - cut_sequence = sequences[i : i + chunk_size] - - if bom_or_sig_available and strip_sig_or_bom is False: - cut_sequence = sig_payload + cut_sequence - - chunk = cut_sequence.decode( - encoding_iana, - errors="ignore" if is_multi_byte_decoder else "strict", - ) - - # multi-byte bad cutting detector and adjustment - # not the cleanest way to perform that fix but clever enough for now. - if is_multi_byte_decoder and i > 0: - chunk_partial_size_chk: int = min(chunk_size, 16) - - if ( - decoded_payload - and chunk[:chunk_partial_size_chk] not in decoded_payload - ): - for j in range(i, i - 4, -1): - cut_sequence = sequences[j:chunk_end] - - if bom_or_sig_available and strip_sig_or_bom is False: - cut_sequence = sig_payload + cut_sequence - - chunk = cut_sequence.decode(encoding_iana, errors="ignore") - - if chunk[:chunk_partial_size_chk] in decoded_payload: - break - - yield chunk diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/version.py b/.venv/lib/python3.12/site-packages/charset_normalizer/version.py deleted file mode 100644 index a93d367..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/version.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -Expose version -""" - -from __future__ import annotations - -__version__ = "3.4.7" -VERSION = __version__.split(".") diff --git a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/INSTALLER b/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/LICENSE b/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/LICENSE deleted file mode 100644 index e06d208..0000000 --- a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ -Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/METADATA b/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/METADATA deleted file mode 100644 index 9312e8e..0000000 --- a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/METADATA +++ /dev/null @@ -1,184 +0,0 @@ -Metadata-Version: 2.1 -Name: distro -Version: 1.9.0 -Summary: Distro - an OS platform information API -Home-page: https://github.com/python-distro/distro -Author: Nir Cohen -Author-email: nir36g@gmail.com -License: Apache License, Version 2.0 -Platform: All -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: Intended Audience :: System Administrators -Classifier: License :: OSI Approved :: Apache Software License -Classifier: Operating System :: POSIX :: Linux -Classifier: Operating System :: POSIX :: BSD -Classifier: Operating System :: POSIX :: BSD :: FreeBSD -Classifier: Operating System :: POSIX :: BSD :: NetBSD -Classifier: Operating System :: POSIX :: BSD :: OpenBSD -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Topic :: Software Development :: Libraries :: Python Modules -Classifier: Topic :: System :: Operating System -Requires-Python: >=3.6 -Description-Content-Type: text/markdown -License-File: LICENSE - -Distro - an OS platform information API -======================================= - -[![CI Status](https://github.com/python-distro/distro/workflows/CI/badge.svg)](https://github.com/python-distro/distro/actions/workflows/ci.yaml) -[![PyPI version](http://img.shields.io/pypi/v/distro.svg)](https://pypi.python.org/pypi/distro) -[![Supported Python Versions](https://img.shields.io/pypi/pyversions/distro.svg)](https://img.shields.io/pypi/pyversions/distro.svg) -[![Code Coverage](https://codecov.io/github/python-distro/distro/coverage.svg?branch=master)](https://codecov.io/github/python-distro/distro?branch=master) -[![Is Wheel](https://img.shields.io/pypi/wheel/distro.svg?style=flat)](https://pypi.python.org/pypi/distro) -[![Latest Github Release](https://readthedocs.org/projects/distro/badge/?version=stable)](http://distro.readthedocs.io/en/latest/) - -`distro` provides information about the -OS distribution it runs on, such as a reliable machine-readable ID, or -version information. - -It is the recommended replacement for Python's original -[`platform.linux_distribution`](https://docs.python.org/3.7/library/platform.html#platform.linux_distribution) -function (removed in Python 3.8). It also provides much more functionality -which isn't necessarily Python bound, like a command-line interface. - -Distro currently supports Linux and BSD based systems but [Windows and OS X support](https://github.com/python-distro/distro/issues/177) is also planned. - -For Python 2.6 support, see https://github.com/python-distro/distro/tree/python2.6-support - -## Installation - -Installation of the latest released version from PyPI: - -```shell -pip install distro -``` - -Installation of the latest development version: - -```shell -pip install https://github.com/python-distro/distro/archive/master.tar.gz -``` - -To use as a standalone script, download `distro.py` directly: - -```shell -curl -O https://raw.githubusercontent.com/python-distro/distro/master/src/distro/distro.py -python distro.py -``` - -``distro`` is safe to vendor within projects that do not wish to add -dependencies. - -```shell -cd myproject -curl -O https://raw.githubusercontent.com/python-distro/distro/master/src/distro/distro.py -``` - -## Usage - -```bash -$ distro -Name: Antergos Linux -Version: 2015.10 (ISO-Rolling) -Codename: ISO-Rolling - -$ distro -j -{ - "codename": "ISO-Rolling", - "id": "antergos", - "like": "arch", - "version": "16.9", - "version_parts": { - "build_number": "", - "major": "16", - "minor": "9" - } -} - - -$ python ->>> import distro ->>> distro.name(pretty=True) -'CentOS Linux 8' ->>> distro.id() -'centos' ->>> distro.version(best=True) -'8.4.2105' -``` - - -## Documentation - -On top of the aforementioned API, several more functions are available. For a complete description of the -API, see the [latest API documentation](http://distro.readthedocs.org/en/latest/). - -## Background - -An alternative implementation became necessary because Python 3.5 deprecated -this function, and Python 3.8 removed it altogether. Its predecessor function -[`platform.dist`](https://docs.python.org/3.7/library/platform.html#platform.dist) -was already deprecated since Python 2.6 and removed in Python 3.8. Still, there -are many cases in which access to that information is needed. See [Python issue -1322](https://bugs.python.org/issue1322) for more information. - -The `distro` package implements a robust and inclusive way of retrieving the -information about a distribution based on new standards and old methods, -namely from these data sources (from high to low precedence): - -* The os-release file `/etc/os-release` if present, with a fall-back on `/usr/lib/os-release` if needed. -* The output of the `lsb_release` command, if available. -* The distro release file (`/etc/*(-|_)(release|version)`), if present. -* The `uname` command for BSD based distrubtions. - - -## Python and Distribution Support - -`distro` is supported and tested on Python 3.6+ and PyPy and on any -distribution that provides one or more of the data sources covered. - -This package is tested with test data that mimics the exact behavior of the data sources of [a number of Linux distributions](https://github.com/python-distro/distro/tree/master/tests/resources/distros). - - -## Testing - -```shell -git clone git@github.com:python-distro/distro.git -cd distro -pip install tox -tox -``` - - -## Contributions - -Pull requests are always welcome to deal with specific distributions or just -for general merriment. - -See [CONTRIBUTIONS](https://github.com/python-distro/distro/blob/master/CONTRIBUTING.md) for contribution info. - -Reference implementations for supporting additional distributions and file -formats can be found here: - -* https://github.com/saltstack/salt/blob/develop/salt/grains/core.py#L1172 -* https://github.com/chef/ohai/blob/master/lib/ohai/plugins/linux/platform.rb -* https://github.com/ansible/ansible/blob/devel/lib/ansible/module_utils/facts/system/distribution.py -* https://github.com/puppetlabs/facter/blob/master/lib/src/facts/linux/os_linux.cc - -## Package manager distributions - -* https://src.fedoraproject.org/rpms/python-distro -* https://www.archlinux.org/packages/community/any/python-distro/ -* https://launchpad.net/ubuntu/+source/python-distro -* https://packages.debian.org/stable/python3-distro -* https://packages.gentoo.org/packages/dev-python/distro -* https://pkgs.org/download/python3-distro -* https://slackbuilds.org/repository/14.2/python/python-distro/ diff --git a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/RECORD b/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/RECORD deleted file mode 100644 index 6ddd890..0000000 --- a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/RECORD +++ /dev/null @@ -1,15 +0,0 @@ -../../../bin/distro,sha256=kiH-c01rlv9rTHqUmtx99VHea08wmY_m3UZCbCFgtFw,262 -distro-1.9.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -distro-1.9.0.dist-info/LICENSE,sha256=y16Ofl9KOYjhBjwULGDcLfdWBfTEZRXnduOspt-XbhQ,11325 -distro-1.9.0.dist-info/METADATA,sha256=MWMqst5VkRMQkbM5e9zfeXcYV52Fp1GG8Gg53QwJ6B0,6791 -distro-1.9.0.dist-info/RECORD,, -distro-1.9.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92 -distro-1.9.0.dist-info/entry_points.txt,sha256=3ObjqQMbh1xeQQwsWtgbfDNDMDD-EbggR1Oj_z8s9hc,46 -distro-1.9.0.dist-info/top_level.txt,sha256=ikde_V_XEdSBqaGd5tEriN_wzYHLgTX_zVtlsGLHvwQ,7 -distro/__init__.py,sha256=2fHjF-SfgPvjyNZ1iHh_wjqWdR_Yo5ODHwZC0jLBPhc,981 -distro/__main__.py,sha256=bu9d3TifoKciZFcqRBuygV3GSuThnVD_m2IK4cz96Vs,64 -distro/__pycache__/__init__.cpython-312.pyc,, -distro/__pycache__/__main__.cpython-312.pyc,, -distro/__pycache__/distro.cpython-312.pyc,, -distro/distro.py,sha256=XqbefacAhDT4zr_trnbA15eY8vdK4GTghgmvUGrEM_4,49430 -distro/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/WHEEL b/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/WHEEL deleted file mode 100644 index 98c0d20..0000000 --- a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: bdist_wheel (0.42.0) -Root-Is-Purelib: true -Tag: py3-none-any - diff --git a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/entry_points.txt b/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/entry_points.txt deleted file mode 100644 index 08d29c5..0000000 --- a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/entry_points.txt +++ /dev/null @@ -1,2 +0,0 @@ -[console_scripts] -distro = distro.distro:main diff --git a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/top_level.txt b/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/top_level.txt deleted file mode 100644 index 0e09331..0000000 --- a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -distro diff --git a/.venv/lib/python3.12/site-packages/distro/__init__.py b/.venv/lib/python3.12/site-packages/distro/__init__.py deleted file mode 100644 index 7686fe8..0000000 --- a/.venv/lib/python3.12/site-packages/distro/__init__.py +++ /dev/null @@ -1,54 +0,0 @@ -from .distro import ( - NORMALIZED_DISTRO_ID, - NORMALIZED_LSB_ID, - NORMALIZED_OS_ID, - LinuxDistribution, - __version__, - build_number, - codename, - distro_release_attr, - distro_release_info, - id, - info, - like, - linux_distribution, - lsb_release_attr, - lsb_release_info, - major_version, - minor_version, - name, - os_release_attr, - os_release_info, - uname_attr, - uname_info, - version, - version_parts, -) - -__all__ = [ - "NORMALIZED_DISTRO_ID", - "NORMALIZED_LSB_ID", - "NORMALIZED_OS_ID", - "LinuxDistribution", - "build_number", - "codename", - "distro_release_attr", - "distro_release_info", - "id", - "info", - "like", - "linux_distribution", - "lsb_release_attr", - "lsb_release_info", - "major_version", - "minor_version", - "name", - "os_release_attr", - "os_release_info", - "uname_attr", - "uname_info", - "version", - "version_parts", -] - -__version__ = __version__ diff --git a/.venv/lib/python3.12/site-packages/distro/__main__.py b/.venv/lib/python3.12/site-packages/distro/__main__.py deleted file mode 100644 index 0c01d5b..0000000 --- a/.venv/lib/python3.12/site-packages/distro/__main__.py +++ /dev/null @@ -1,4 +0,0 @@ -from .distro import main - -if __name__ == "__main__": - main() diff --git a/.venv/lib/python3.12/site-packages/distro/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/distro/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2ea3156..0000000 Binary files a/.venv/lib/python3.12/site-packages/distro/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/distro/__pycache__/__main__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/distro/__pycache__/__main__.cpython-312.pyc deleted file mode 100644 index 94d747c..0000000 Binary files a/.venv/lib/python3.12/site-packages/distro/__pycache__/__main__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/distro/__pycache__/distro.cpython-312.pyc b/.venv/lib/python3.12/site-packages/distro/__pycache__/distro.cpython-312.pyc deleted file mode 100644 index d1f5810..0000000 Binary files a/.venv/lib/python3.12/site-packages/distro/__pycache__/distro.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/distro/distro.py b/.venv/lib/python3.12/site-packages/distro/distro.py deleted file mode 100644 index 78ccdfa..0000000 --- a/.venv/lib/python3.12/site-packages/distro/distro.py +++ /dev/null @@ -1,1403 +0,0 @@ -#!/usr/bin/env python -# Copyright 2015-2021 Nir Cohen -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -""" -The ``distro`` package (``distro`` stands for Linux Distribution) provides -information about the Linux distribution it runs on, such as a reliable -machine-readable distro ID, or version information. - -It is the recommended replacement for Python's original -:py:func:`platform.linux_distribution` function, but it provides much more -functionality. An alternative implementation became necessary because Python -3.5 deprecated this function, and Python 3.8 removed it altogether. Its -predecessor function :py:func:`platform.dist` was already deprecated since -Python 2.6 and removed in Python 3.8. Still, there are many cases in which -access to OS distribution information is needed. See `Python issue 1322 -`_ for more information. -""" - -import argparse -import json -import logging -import os -import re -import shlex -import subprocess -import sys -import warnings -from typing import ( - Any, - Callable, - Dict, - Iterable, - Optional, - Sequence, - TextIO, - Tuple, - Type, -) - -try: - from typing import TypedDict -except ImportError: - # Python 3.7 - TypedDict = dict - -__version__ = "1.9.0" - - -class VersionDict(TypedDict): - major: str - minor: str - build_number: str - - -class InfoDict(TypedDict): - id: str - version: str - version_parts: VersionDict - like: str - codename: str - - -_UNIXCONFDIR = os.environ.get("UNIXCONFDIR", "/etc") -_UNIXUSRLIBDIR = os.environ.get("UNIXUSRLIBDIR", "/usr/lib") -_OS_RELEASE_BASENAME = "os-release" - -#: Translation table for normalizing the "ID" attribute defined in os-release -#: files, for use by the :func:`distro.id` method. -#: -#: * Key: Value as defined in the os-release file, translated to lower case, -#: with blanks translated to underscores. -#: -#: * Value: Normalized value. -NORMALIZED_OS_ID = { - "ol": "oracle", # Oracle Linux - "opensuse-leap": "opensuse", # Newer versions of OpenSuSE report as opensuse-leap -} - -#: Translation table for normalizing the "Distributor ID" attribute returned by -#: the lsb_release command, for use by the :func:`distro.id` method. -#: -#: * Key: Value as returned by the lsb_release command, translated to lower -#: case, with blanks translated to underscores. -#: -#: * Value: Normalized value. -NORMALIZED_LSB_ID = { - "enterpriseenterpriseas": "oracle", # Oracle Enterprise Linux 4 - "enterpriseenterpriseserver": "oracle", # Oracle Linux 5 - "redhatenterpriseworkstation": "rhel", # RHEL 6, 7 Workstation - "redhatenterpriseserver": "rhel", # RHEL 6, 7 Server - "redhatenterprisecomputenode": "rhel", # RHEL 6 ComputeNode -} - -#: Translation table for normalizing the distro ID derived from the file name -#: of distro release files, for use by the :func:`distro.id` method. -#: -#: * Key: Value as derived from the file name of a distro release file, -#: translated to lower case, with blanks translated to underscores. -#: -#: * Value: Normalized value. -NORMALIZED_DISTRO_ID = { - "redhat": "rhel", # RHEL 6.x, 7.x -} - -# Pattern for content of distro release file (reversed) -_DISTRO_RELEASE_CONTENT_REVERSED_PATTERN = re.compile( - r"(?:[^)]*\)(.*)\()? *(?:STL )?([\d.+\-a-z]*\d) *(?:esaeler *)?(.+)" -) - -# Pattern for base file name of distro release file -_DISTRO_RELEASE_BASENAME_PATTERN = re.compile(r"(\w+)[-_](release|version)$") - -# Base file names to be looked up for if _UNIXCONFDIR is not readable. -_DISTRO_RELEASE_BASENAMES = [ - "SuSE-release", - "altlinux-release", - "arch-release", - "base-release", - "centos-release", - "fedora-release", - "gentoo-release", - "mageia-release", - "mandrake-release", - "mandriva-release", - "mandrivalinux-release", - "manjaro-release", - "oracle-release", - "redhat-release", - "rocky-release", - "sl-release", - "slackware-version", -] - -# Base file names to be ignored when searching for distro release file -_DISTRO_RELEASE_IGNORE_BASENAMES = ( - "debian_version", - "lsb-release", - "oem-release", - _OS_RELEASE_BASENAME, - "system-release", - "plesk-release", - "iredmail-release", - "board-release", - "ec2_version", -) - - -def linux_distribution(full_distribution_name: bool = True) -> Tuple[str, str, str]: - """ - .. deprecated:: 1.6.0 - - :func:`distro.linux_distribution()` is deprecated. It should only be - used as a compatibility shim with Python's - :py:func:`platform.linux_distribution()`. Please use :func:`distro.id`, - :func:`distro.version` and :func:`distro.name` instead. - - Return information about the current OS distribution as a tuple - ``(id_name, version, codename)`` with items as follows: - - * ``id_name``: If *full_distribution_name* is false, the result of - :func:`distro.id`. Otherwise, the result of :func:`distro.name`. - - * ``version``: The result of :func:`distro.version`. - - * ``codename``: The extra item (usually in parentheses) after the - os-release version number, or the result of :func:`distro.codename`. - - The interface of this function is compatible with the original - :py:func:`platform.linux_distribution` function, supporting a subset of - its parameters. - - The data it returns may not exactly be the same, because it uses more data - sources than the original function, and that may lead to different data if - the OS distribution is not consistent across multiple data sources it - provides (there are indeed such distributions ...). - - Another reason for differences is the fact that the :func:`distro.id` - method normalizes the distro ID string to a reliable machine-readable value - for a number of popular OS distributions. - """ - warnings.warn( - "distro.linux_distribution() is deprecated. It should only be used as a " - "compatibility shim with Python's platform.linux_distribution(). Please use " - "distro.id(), distro.version() and distro.name() instead.", - DeprecationWarning, - stacklevel=2, - ) - return _distro.linux_distribution(full_distribution_name) - - -def id() -> str: - """ - Return the distro ID of the current distribution, as a - machine-readable string. - - For a number of OS distributions, the returned distro ID value is - *reliable*, in the sense that it is documented and that it does not change - across releases of the distribution. - - This package maintains the following reliable distro ID values: - - ============== ========================================= - Distro ID Distribution - ============== ========================================= - "ubuntu" Ubuntu - "debian" Debian - "rhel" RedHat Enterprise Linux - "centos" CentOS - "fedora" Fedora - "sles" SUSE Linux Enterprise Server - "opensuse" openSUSE - "amzn" Amazon Linux - "arch" Arch Linux - "buildroot" Buildroot - "cloudlinux" CloudLinux OS - "exherbo" Exherbo Linux - "gentoo" GenToo Linux - "ibm_powerkvm" IBM PowerKVM - "kvmibm" KVM for IBM z Systems - "linuxmint" Linux Mint - "mageia" Mageia - "mandriva" Mandriva Linux - "parallels" Parallels - "pidora" Pidora - "raspbian" Raspbian - "oracle" Oracle Linux (and Oracle Enterprise Linux) - "scientific" Scientific Linux - "slackware" Slackware - "xenserver" XenServer - "openbsd" OpenBSD - "netbsd" NetBSD - "freebsd" FreeBSD - "midnightbsd" MidnightBSD - "rocky" Rocky Linux - "aix" AIX - "guix" Guix System - "altlinux" ALT Linux - ============== ========================================= - - If you have a need to get distros for reliable IDs added into this set, - or if you find that the :func:`distro.id` function returns a different - distro ID for one of the listed distros, please create an issue in the - `distro issue tracker`_. - - **Lookup hierarchy and transformations:** - - First, the ID is obtained from the following sources, in the specified - order. The first available and non-empty value is used: - - * the value of the "ID" attribute of the os-release file, - - * the value of the "Distributor ID" attribute returned by the lsb_release - command, - - * the first part of the file name of the distro release file, - - The so determined ID value then passes the following transformations, - before it is returned by this method: - - * it is translated to lower case, - - * blanks (which should not be there anyway) are translated to underscores, - - * a normalization of the ID is performed, based upon - `normalization tables`_. The purpose of this normalization is to ensure - that the ID is as reliable as possible, even across incompatible changes - in the OS distributions. A common reason for an incompatible change is - the addition of an os-release file, or the addition of the lsb_release - command, with ID values that differ from what was previously determined - from the distro release file name. - """ - return _distro.id() - - -def name(pretty: bool = False) -> str: - """ - Return the name of the current OS distribution, as a human-readable - string. - - If *pretty* is false, the name is returned without version or codename. - (e.g. "CentOS Linux") - - If *pretty* is true, the version and codename are appended. - (e.g. "CentOS Linux 7.1.1503 (Core)") - - **Lookup hierarchy:** - - The name is obtained from the following sources, in the specified order. - The first available and non-empty value is used: - - * If *pretty* is false: - - - the value of the "NAME" attribute of the os-release file, - - - the value of the "Distributor ID" attribute returned by the lsb_release - command, - - - the value of the "" field of the distro release file. - - * If *pretty* is true: - - - the value of the "PRETTY_NAME" attribute of the os-release file, - - - the value of the "Description" attribute returned by the lsb_release - command, - - - the value of the "" field of the distro release file, appended - with the value of the pretty version ("" and "" - fields) of the distro release file, if available. - """ - return _distro.name(pretty) - - -def version(pretty: bool = False, best: bool = False) -> str: - """ - Return the version of the current OS distribution, as a human-readable - string. - - If *pretty* is false, the version is returned without codename (e.g. - "7.0"). - - If *pretty* is true, the codename in parenthesis is appended, if the - codename is non-empty (e.g. "7.0 (Maipo)"). - - Some distributions provide version numbers with different precisions in - the different sources of distribution information. Examining the different - sources in a fixed priority order does not always yield the most precise - version (e.g. for Debian 8.2, or CentOS 7.1). - - Some other distributions may not provide this kind of information. In these - cases, an empty string would be returned. This behavior can be observed - with rolling releases distributions (e.g. Arch Linux). - - The *best* parameter can be used to control the approach for the returned - version: - - If *best* is false, the first non-empty version number in priority order of - the examined sources is returned. - - If *best* is true, the most precise version number out of all examined - sources is returned. - - **Lookup hierarchy:** - - In all cases, the version number is obtained from the following sources. - If *best* is false, this order represents the priority order: - - * the value of the "VERSION_ID" attribute of the os-release file, - * the value of the "Release" attribute returned by the lsb_release - command, - * the version number parsed from the "" field of the first line - of the distro release file, - * the version number parsed from the "PRETTY_NAME" attribute of the - os-release file, if it follows the format of the distro release files. - * the version number parsed from the "Description" attribute returned by - the lsb_release command, if it follows the format of the distro release - files. - """ - return _distro.version(pretty, best) - - -def version_parts(best: bool = False) -> Tuple[str, str, str]: - """ - Return the version of the current OS distribution as a tuple - ``(major, minor, build_number)`` with items as follows: - - * ``major``: The result of :func:`distro.major_version`. - - * ``minor``: The result of :func:`distro.minor_version`. - - * ``build_number``: The result of :func:`distro.build_number`. - - For a description of the *best* parameter, see the :func:`distro.version` - method. - """ - return _distro.version_parts(best) - - -def major_version(best: bool = False) -> str: - """ - Return the major version of the current OS distribution, as a string, - if provided. - Otherwise, the empty string is returned. The major version is the first - part of the dot-separated version string. - - For a description of the *best* parameter, see the :func:`distro.version` - method. - """ - return _distro.major_version(best) - - -def minor_version(best: bool = False) -> str: - """ - Return the minor version of the current OS distribution, as a string, - if provided. - Otherwise, the empty string is returned. The minor version is the second - part of the dot-separated version string. - - For a description of the *best* parameter, see the :func:`distro.version` - method. - """ - return _distro.minor_version(best) - - -def build_number(best: bool = False) -> str: - """ - Return the build number of the current OS distribution, as a string, - if provided. - Otherwise, the empty string is returned. The build number is the third part - of the dot-separated version string. - - For a description of the *best* parameter, see the :func:`distro.version` - method. - """ - return _distro.build_number(best) - - -def like() -> str: - """ - Return a space-separated list of distro IDs of distributions that are - closely related to the current OS distribution in regards to packaging - and programming interfaces, for example distributions the current - distribution is a derivative from. - - **Lookup hierarchy:** - - This information item is only provided by the os-release file. - For details, see the description of the "ID_LIKE" attribute in the - `os-release man page - `_. - """ - return _distro.like() - - -def codename() -> str: - """ - Return the codename for the release of the current OS distribution, - as a string. - - If the distribution does not have a codename, an empty string is returned. - - Note that the returned codename is not always really a codename. For - example, openSUSE returns "x86_64". This function does not handle such - cases in any special way and just returns the string it finds, if any. - - **Lookup hierarchy:** - - * the codename within the "VERSION" attribute of the os-release file, if - provided, - - * the value of the "Codename" attribute returned by the lsb_release - command, - - * the value of the "" field of the distro release file. - """ - return _distro.codename() - - -def info(pretty: bool = False, best: bool = False) -> InfoDict: - """ - Return certain machine-readable information items about the current OS - distribution in a dictionary, as shown in the following example: - - .. sourcecode:: python - - { - 'id': 'rhel', - 'version': '7.0', - 'version_parts': { - 'major': '7', - 'minor': '0', - 'build_number': '' - }, - 'like': 'fedora', - 'codename': 'Maipo' - } - - The dictionary structure and keys are always the same, regardless of which - information items are available in the underlying data sources. The values - for the various keys are as follows: - - * ``id``: The result of :func:`distro.id`. - - * ``version``: The result of :func:`distro.version`. - - * ``version_parts -> major``: The result of :func:`distro.major_version`. - - * ``version_parts -> minor``: The result of :func:`distro.minor_version`. - - * ``version_parts -> build_number``: The result of - :func:`distro.build_number`. - - * ``like``: The result of :func:`distro.like`. - - * ``codename``: The result of :func:`distro.codename`. - - For a description of the *pretty* and *best* parameters, see the - :func:`distro.version` method. - """ - return _distro.info(pretty, best) - - -def os_release_info() -> Dict[str, str]: - """ - Return a dictionary containing key-value pairs for the information items - from the os-release file data source of the current OS distribution. - - See `os-release file`_ for details about these information items. - """ - return _distro.os_release_info() - - -def lsb_release_info() -> Dict[str, str]: - """ - Return a dictionary containing key-value pairs for the information items - from the lsb_release command data source of the current OS distribution. - - See `lsb_release command output`_ for details about these information - items. - """ - return _distro.lsb_release_info() - - -def distro_release_info() -> Dict[str, str]: - """ - Return a dictionary containing key-value pairs for the information items - from the distro release file data source of the current OS distribution. - - See `distro release file`_ for details about these information items. - """ - return _distro.distro_release_info() - - -def uname_info() -> Dict[str, str]: - """ - Return a dictionary containing key-value pairs for the information items - from the distro release file data source of the current OS distribution. - """ - return _distro.uname_info() - - -def os_release_attr(attribute: str) -> str: - """ - Return a single named information item from the os-release file data source - of the current OS distribution. - - Parameters: - - * ``attribute`` (string): Key of the information item. - - Returns: - - * (string): Value of the information item, if the item exists. - The empty string, if the item does not exist. - - See `os-release file`_ for details about these information items. - """ - return _distro.os_release_attr(attribute) - - -def lsb_release_attr(attribute: str) -> str: - """ - Return a single named information item from the lsb_release command output - data source of the current OS distribution. - - Parameters: - - * ``attribute`` (string): Key of the information item. - - Returns: - - * (string): Value of the information item, if the item exists. - The empty string, if the item does not exist. - - See `lsb_release command output`_ for details about these information - items. - """ - return _distro.lsb_release_attr(attribute) - - -def distro_release_attr(attribute: str) -> str: - """ - Return a single named information item from the distro release file - data source of the current OS distribution. - - Parameters: - - * ``attribute`` (string): Key of the information item. - - Returns: - - * (string): Value of the information item, if the item exists. - The empty string, if the item does not exist. - - See `distro release file`_ for details about these information items. - """ - return _distro.distro_release_attr(attribute) - - -def uname_attr(attribute: str) -> str: - """ - Return a single named information item from the distro release file - data source of the current OS distribution. - - Parameters: - - * ``attribute`` (string): Key of the information item. - - Returns: - - * (string): Value of the information item, if the item exists. - The empty string, if the item does not exist. - """ - return _distro.uname_attr(attribute) - - -try: - from functools import cached_property -except ImportError: - # Python < 3.8 - class cached_property: # type: ignore - """A version of @property which caches the value. On access, it calls the - underlying function and sets the value in `__dict__` so future accesses - will not re-call the property. - """ - - def __init__(self, f: Callable[[Any], Any]) -> None: - self._fname = f.__name__ - self._f = f - - def __get__(self, obj: Any, owner: Type[Any]) -> Any: - assert obj is not None, f"call {self._fname} on an instance" - ret = obj.__dict__[self._fname] = self._f(obj) - return ret - - -class LinuxDistribution: - """ - Provides information about a OS distribution. - - This package creates a private module-global instance of this class with - default initialization arguments, that is used by the - `consolidated accessor functions`_ and `single source accessor functions`_. - By using default initialization arguments, that module-global instance - returns data about the current OS distribution (i.e. the distro this - package runs on). - - Normally, it is not necessary to create additional instances of this class. - However, in situations where control is needed over the exact data sources - that are used, instances of this class can be created with a specific - distro release file, or a specific os-release file, or without invoking the - lsb_release command. - """ - - def __init__( - self, - include_lsb: Optional[bool] = None, - os_release_file: str = "", - distro_release_file: str = "", - include_uname: Optional[bool] = None, - root_dir: Optional[str] = None, - include_oslevel: Optional[bool] = None, - ) -> None: - """ - The initialization method of this class gathers information from the - available data sources, and stores that in private instance attributes. - Subsequent access to the information items uses these private instance - attributes, so that the data sources are read only once. - - Parameters: - - * ``include_lsb`` (bool): Controls whether the - `lsb_release command output`_ is included as a data source. - - If the lsb_release command is not available in the program execution - path, the data source for the lsb_release command will be empty. - - * ``os_release_file`` (string): The path name of the - `os-release file`_ that is to be used as a data source. - - An empty string (the default) will cause the default path name to - be used (see `os-release file`_ for details). - - If the specified or defaulted os-release file does not exist, the - data source for the os-release file will be empty. - - * ``distro_release_file`` (string): The path name of the - `distro release file`_ that is to be used as a data source. - - An empty string (the default) will cause a default search algorithm - to be used (see `distro release file`_ for details). - - If the specified distro release file does not exist, or if no default - distro release file can be found, the data source for the distro - release file will be empty. - - * ``include_uname`` (bool): Controls whether uname command output is - included as a data source. If the uname command is not available in - the program execution path the data source for the uname command will - be empty. - - * ``root_dir`` (string): The absolute path to the root directory to use - to find distro-related information files. Note that ``include_*`` - parameters must not be enabled in combination with ``root_dir``. - - * ``include_oslevel`` (bool): Controls whether (AIX) oslevel command - output is included as a data source. If the oslevel command is not - available in the program execution path the data source will be - empty. - - Public instance attributes: - - * ``os_release_file`` (string): The path name of the - `os-release file`_ that is actually used as a data source. The - empty string if no distro release file is used as a data source. - - * ``distro_release_file`` (string): The path name of the - `distro release file`_ that is actually used as a data source. The - empty string if no distro release file is used as a data source. - - * ``include_lsb`` (bool): The result of the ``include_lsb`` parameter. - This controls whether the lsb information will be loaded. - - * ``include_uname`` (bool): The result of the ``include_uname`` - parameter. This controls whether the uname information will - be loaded. - - * ``include_oslevel`` (bool): The result of the ``include_oslevel`` - parameter. This controls whether (AIX) oslevel information will be - loaded. - - * ``root_dir`` (string): The result of the ``root_dir`` parameter. - The absolute path to the root directory to use to find distro-related - information files. - - Raises: - - * :py:exc:`ValueError`: Initialization parameters combination is not - supported. - - * :py:exc:`OSError`: Some I/O issue with an os-release file or distro - release file. - - * :py:exc:`UnicodeError`: A data source has unexpected characters or - uses an unexpected encoding. - """ - self.root_dir = root_dir - self.etc_dir = os.path.join(root_dir, "etc") if root_dir else _UNIXCONFDIR - self.usr_lib_dir = ( - os.path.join(root_dir, "usr/lib") if root_dir else _UNIXUSRLIBDIR - ) - - if os_release_file: - self.os_release_file = os_release_file - else: - etc_dir_os_release_file = os.path.join(self.etc_dir, _OS_RELEASE_BASENAME) - usr_lib_os_release_file = os.path.join( - self.usr_lib_dir, _OS_RELEASE_BASENAME - ) - - # NOTE: The idea is to respect order **and** have it set - # at all times for API backwards compatibility. - if os.path.isfile(etc_dir_os_release_file) or not os.path.isfile( - usr_lib_os_release_file - ): - self.os_release_file = etc_dir_os_release_file - else: - self.os_release_file = usr_lib_os_release_file - - self.distro_release_file = distro_release_file or "" # updated later - - is_root_dir_defined = root_dir is not None - if is_root_dir_defined and (include_lsb or include_uname or include_oslevel): - raise ValueError( - "Including subprocess data sources from specific root_dir is disallowed" - " to prevent false information" - ) - self.include_lsb = ( - include_lsb if include_lsb is not None else not is_root_dir_defined - ) - self.include_uname = ( - include_uname if include_uname is not None else not is_root_dir_defined - ) - self.include_oslevel = ( - include_oslevel if include_oslevel is not None else not is_root_dir_defined - ) - - def __repr__(self) -> str: - """Return repr of all info""" - return ( - "LinuxDistribution(" - "os_release_file={self.os_release_file!r}, " - "distro_release_file={self.distro_release_file!r}, " - "include_lsb={self.include_lsb!r}, " - "include_uname={self.include_uname!r}, " - "include_oslevel={self.include_oslevel!r}, " - "root_dir={self.root_dir!r}, " - "_os_release_info={self._os_release_info!r}, " - "_lsb_release_info={self._lsb_release_info!r}, " - "_distro_release_info={self._distro_release_info!r}, " - "_uname_info={self._uname_info!r}, " - "_oslevel_info={self._oslevel_info!r})".format(self=self) - ) - - def linux_distribution( - self, full_distribution_name: bool = True - ) -> Tuple[str, str, str]: - """ - Return information about the OS distribution that is compatible - with Python's :func:`platform.linux_distribution`, supporting a subset - of its parameters. - - For details, see :func:`distro.linux_distribution`. - """ - return ( - self.name() if full_distribution_name else self.id(), - self.version(), - self._os_release_info.get("release_codename") or self.codename(), - ) - - def id(self) -> str: - """Return the distro ID of the OS distribution, as a string. - - For details, see :func:`distro.id`. - """ - - def normalize(distro_id: str, table: Dict[str, str]) -> str: - distro_id = distro_id.lower().replace(" ", "_") - return table.get(distro_id, distro_id) - - distro_id = self.os_release_attr("id") - if distro_id: - return normalize(distro_id, NORMALIZED_OS_ID) - - distro_id = self.lsb_release_attr("distributor_id") - if distro_id: - return normalize(distro_id, NORMALIZED_LSB_ID) - - distro_id = self.distro_release_attr("id") - if distro_id: - return normalize(distro_id, NORMALIZED_DISTRO_ID) - - distro_id = self.uname_attr("id") - if distro_id: - return normalize(distro_id, NORMALIZED_DISTRO_ID) - - return "" - - def name(self, pretty: bool = False) -> str: - """ - Return the name of the OS distribution, as a string. - - For details, see :func:`distro.name`. - """ - name = ( - self.os_release_attr("name") - or self.lsb_release_attr("distributor_id") - or self.distro_release_attr("name") - or self.uname_attr("name") - ) - if pretty: - name = self.os_release_attr("pretty_name") or self.lsb_release_attr( - "description" - ) - if not name: - name = self.distro_release_attr("name") or self.uname_attr("name") - version = self.version(pretty=True) - if version: - name = f"{name} {version}" - return name or "" - - def version(self, pretty: bool = False, best: bool = False) -> str: - """ - Return the version of the OS distribution, as a string. - - For details, see :func:`distro.version`. - """ - versions = [ - self.os_release_attr("version_id"), - self.lsb_release_attr("release"), - self.distro_release_attr("version_id"), - self._parse_distro_release_content(self.os_release_attr("pretty_name")).get( - "version_id", "" - ), - self._parse_distro_release_content( - self.lsb_release_attr("description") - ).get("version_id", ""), - self.uname_attr("release"), - ] - if self.uname_attr("id").startswith("aix"): - # On AIX platforms, prefer oslevel command output. - versions.insert(0, self.oslevel_info()) - elif self.id() == "debian" or "debian" in self.like().split(): - # On Debian-like, add debian_version file content to candidates list. - versions.append(self._debian_version) - version = "" - if best: - # This algorithm uses the last version in priority order that has - # the best precision. If the versions are not in conflict, that - # does not matter; otherwise, using the last one instead of the - # first one might be considered a surprise. - for v in versions: - if v.count(".") > version.count(".") or version == "": - version = v - else: - for v in versions: - if v != "": - version = v - break - if pretty and version and self.codename(): - version = f"{version} ({self.codename()})" - return version - - def version_parts(self, best: bool = False) -> Tuple[str, str, str]: - """ - Return the version of the OS distribution, as a tuple of version - numbers. - - For details, see :func:`distro.version_parts`. - """ - version_str = self.version(best=best) - if version_str: - version_regex = re.compile(r"(\d+)\.?(\d+)?\.?(\d+)?") - matches = version_regex.match(version_str) - if matches: - major, minor, build_number = matches.groups() - return major, minor or "", build_number or "" - return "", "", "" - - def major_version(self, best: bool = False) -> str: - """ - Return the major version number of the current distribution. - - For details, see :func:`distro.major_version`. - """ - return self.version_parts(best)[0] - - def minor_version(self, best: bool = False) -> str: - """ - Return the minor version number of the current distribution. - - For details, see :func:`distro.minor_version`. - """ - return self.version_parts(best)[1] - - def build_number(self, best: bool = False) -> str: - """ - Return the build number of the current distribution. - - For details, see :func:`distro.build_number`. - """ - return self.version_parts(best)[2] - - def like(self) -> str: - """ - Return the IDs of distributions that are like the OS distribution. - - For details, see :func:`distro.like`. - """ - return self.os_release_attr("id_like") or "" - - def codename(self) -> str: - """ - Return the codename of the OS distribution. - - For details, see :func:`distro.codename`. - """ - try: - # Handle os_release specially since distros might purposefully set - # this to empty string to have no codename - return self._os_release_info["codename"] - except KeyError: - return ( - self.lsb_release_attr("codename") - or self.distro_release_attr("codename") - or "" - ) - - def info(self, pretty: bool = False, best: bool = False) -> InfoDict: - """ - Return certain machine-readable information about the OS - distribution. - - For details, see :func:`distro.info`. - """ - return InfoDict( - id=self.id(), - version=self.version(pretty, best), - version_parts=VersionDict( - major=self.major_version(best), - minor=self.minor_version(best), - build_number=self.build_number(best), - ), - like=self.like(), - codename=self.codename(), - ) - - def os_release_info(self) -> Dict[str, str]: - """ - Return a dictionary containing key-value pairs for the information - items from the os-release file data source of the OS distribution. - - For details, see :func:`distro.os_release_info`. - """ - return self._os_release_info - - def lsb_release_info(self) -> Dict[str, str]: - """ - Return a dictionary containing key-value pairs for the information - items from the lsb_release command data source of the OS - distribution. - - For details, see :func:`distro.lsb_release_info`. - """ - return self._lsb_release_info - - def distro_release_info(self) -> Dict[str, str]: - """ - Return a dictionary containing key-value pairs for the information - items from the distro release file data source of the OS - distribution. - - For details, see :func:`distro.distro_release_info`. - """ - return self._distro_release_info - - def uname_info(self) -> Dict[str, str]: - """ - Return a dictionary containing key-value pairs for the information - items from the uname command data source of the OS distribution. - - For details, see :func:`distro.uname_info`. - """ - return self._uname_info - - def oslevel_info(self) -> str: - """ - Return AIX' oslevel command output. - """ - return self._oslevel_info - - def os_release_attr(self, attribute: str) -> str: - """ - Return a single named information item from the os-release file data - source of the OS distribution. - - For details, see :func:`distro.os_release_attr`. - """ - return self._os_release_info.get(attribute, "") - - def lsb_release_attr(self, attribute: str) -> str: - """ - Return a single named information item from the lsb_release command - output data source of the OS distribution. - - For details, see :func:`distro.lsb_release_attr`. - """ - return self._lsb_release_info.get(attribute, "") - - def distro_release_attr(self, attribute: str) -> str: - """ - Return a single named information item from the distro release file - data source of the OS distribution. - - For details, see :func:`distro.distro_release_attr`. - """ - return self._distro_release_info.get(attribute, "") - - def uname_attr(self, attribute: str) -> str: - """ - Return a single named information item from the uname command - output data source of the OS distribution. - - For details, see :func:`distro.uname_attr`. - """ - return self._uname_info.get(attribute, "") - - @cached_property - def _os_release_info(self) -> Dict[str, str]: - """ - Get the information items from the specified os-release file. - - Returns: - A dictionary containing all information items. - """ - if os.path.isfile(self.os_release_file): - with open(self.os_release_file, encoding="utf-8") as release_file: - return self._parse_os_release_content(release_file) - return {} - - @staticmethod - def _parse_os_release_content(lines: TextIO) -> Dict[str, str]: - """ - Parse the lines of an os-release file. - - Parameters: - - * lines: Iterable through the lines in the os-release file. - Each line must be a unicode string or a UTF-8 encoded byte - string. - - Returns: - A dictionary containing all information items. - """ - props = {} - lexer = shlex.shlex(lines, posix=True) - lexer.whitespace_split = True - - tokens = list(lexer) - for token in tokens: - # At this point, all shell-like parsing has been done (i.e. - # comments processed, quotes and backslash escape sequences - # processed, multi-line values assembled, trailing newlines - # stripped, etc.), so the tokens are now either: - # * variable assignments: var=value - # * commands or their arguments (not allowed in os-release) - # Ignore any tokens that are not variable assignments - if "=" in token: - k, v = token.split("=", 1) - props[k.lower()] = v - - if "version" in props: - # extract release codename (if any) from version attribute - match = re.search(r"\((\D+)\)|,\s*(\D+)", props["version"]) - if match: - release_codename = match.group(1) or match.group(2) - props["codename"] = props["release_codename"] = release_codename - - if "version_codename" in props: - # os-release added a version_codename field. Use that in - # preference to anything else Note that some distros purposefully - # do not have code names. They should be setting - # version_codename="" - props["codename"] = props["version_codename"] - elif "ubuntu_codename" in props: - # Same as above but a non-standard field name used on older Ubuntus - props["codename"] = props["ubuntu_codename"] - - return props - - @cached_property - def _lsb_release_info(self) -> Dict[str, str]: - """ - Get the information items from the lsb_release command output. - - Returns: - A dictionary containing all information items. - """ - if not self.include_lsb: - return {} - try: - cmd = ("lsb_release", "-a") - stdout = subprocess.check_output(cmd, stderr=subprocess.DEVNULL) - # Command not found or lsb_release returned error - except (OSError, subprocess.CalledProcessError): - return {} - content = self._to_str(stdout).splitlines() - return self._parse_lsb_release_content(content) - - @staticmethod - def _parse_lsb_release_content(lines: Iterable[str]) -> Dict[str, str]: - """ - Parse the output of the lsb_release command. - - Parameters: - - * lines: Iterable through the lines of the lsb_release output. - Each line must be a unicode string or a UTF-8 encoded byte - string. - - Returns: - A dictionary containing all information items. - """ - props = {} - for line in lines: - kv = line.strip("\n").split(":", 1) - if len(kv) != 2: - # Ignore lines without colon. - continue - k, v = kv - props.update({k.replace(" ", "_").lower(): v.strip()}) - return props - - @cached_property - def _uname_info(self) -> Dict[str, str]: - if not self.include_uname: - return {} - try: - cmd = ("uname", "-rs") - stdout = subprocess.check_output(cmd, stderr=subprocess.DEVNULL) - except OSError: - return {} - content = self._to_str(stdout).splitlines() - return self._parse_uname_content(content) - - @cached_property - def _oslevel_info(self) -> str: - if not self.include_oslevel: - return "" - try: - stdout = subprocess.check_output("oslevel", stderr=subprocess.DEVNULL) - except (OSError, subprocess.CalledProcessError): - return "" - return self._to_str(stdout).strip() - - @cached_property - def _debian_version(self) -> str: - try: - with open( - os.path.join(self.etc_dir, "debian_version"), encoding="ascii" - ) as fp: - return fp.readline().rstrip() - except FileNotFoundError: - return "" - - @staticmethod - def _parse_uname_content(lines: Sequence[str]) -> Dict[str, str]: - if not lines: - return {} - props = {} - match = re.search(r"^([^\s]+)\s+([\d\.]+)", lines[0].strip()) - if match: - name, version = match.groups() - - # This is to prevent the Linux kernel version from - # appearing as the 'best' version on otherwise - # identifiable distributions. - if name == "Linux": - return {} - props["id"] = name.lower() - props["name"] = name - props["release"] = version - return props - - @staticmethod - def _to_str(bytestring: bytes) -> str: - encoding = sys.getfilesystemencoding() - return bytestring.decode(encoding) - - @cached_property - def _distro_release_info(self) -> Dict[str, str]: - """ - Get the information items from the specified distro release file. - - Returns: - A dictionary containing all information items. - """ - if self.distro_release_file: - # If it was specified, we use it and parse what we can, even if - # its file name or content does not match the expected pattern. - distro_info = self._parse_distro_release_file(self.distro_release_file) - basename = os.path.basename(self.distro_release_file) - # The file name pattern for user-specified distro release files - # is somewhat more tolerant (compared to when searching for the - # file), because we want to use what was specified as best as - # possible. - match = _DISTRO_RELEASE_BASENAME_PATTERN.match(basename) - else: - try: - basenames = [ - basename - for basename in os.listdir(self.etc_dir) - if basename not in _DISTRO_RELEASE_IGNORE_BASENAMES - and os.path.isfile(os.path.join(self.etc_dir, basename)) - ] - # We sort for repeatability in cases where there are multiple - # distro specific files; e.g. CentOS, Oracle, Enterprise all - # containing `redhat-release` on top of their own. - basenames.sort() - except OSError: - # This may occur when /etc is not readable but we can't be - # sure about the *-release files. Check common entries of - # /etc for information. If they turn out to not be there the - # error is handled in `_parse_distro_release_file()`. - basenames = _DISTRO_RELEASE_BASENAMES - for basename in basenames: - match = _DISTRO_RELEASE_BASENAME_PATTERN.match(basename) - if match is None: - continue - filepath = os.path.join(self.etc_dir, basename) - distro_info = self._parse_distro_release_file(filepath) - # The name is always present if the pattern matches. - if "name" not in distro_info: - continue - self.distro_release_file = filepath - break - else: # the loop didn't "break": no candidate. - return {} - - if match is not None: - distro_info["id"] = match.group(1) - - # CloudLinux < 7: manually enrich info with proper id. - if "cloudlinux" in distro_info.get("name", "").lower(): - distro_info["id"] = "cloudlinux" - - return distro_info - - def _parse_distro_release_file(self, filepath: str) -> Dict[str, str]: - """ - Parse a distro release file. - - Parameters: - - * filepath: Path name of the distro release file. - - Returns: - A dictionary containing all information items. - """ - try: - with open(filepath, encoding="utf-8") as fp: - # Only parse the first line. For instance, on SLES there - # are multiple lines. We don't want them... - return self._parse_distro_release_content(fp.readline()) - except OSError: - # Ignore not being able to read a specific, seemingly version - # related file. - # See https://github.com/python-distro/distro/issues/162 - return {} - - @staticmethod - def _parse_distro_release_content(line: str) -> Dict[str, str]: - """ - Parse a line from a distro release file. - - Parameters: - * line: Line from the distro release file. Must be a unicode string - or a UTF-8 encoded byte string. - - Returns: - A dictionary containing all information items. - """ - matches = _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match(line.strip()[::-1]) - distro_info = {} - if matches: - # regexp ensures non-None - distro_info["name"] = matches.group(3)[::-1] - if matches.group(2): - distro_info["version_id"] = matches.group(2)[::-1] - if matches.group(1): - distro_info["codename"] = matches.group(1)[::-1] - elif line: - distro_info["name"] = line.strip() - return distro_info - - -_distro = LinuxDistribution() - - -def main() -> None: - logger = logging.getLogger(__name__) - logger.setLevel(logging.DEBUG) - logger.addHandler(logging.StreamHandler(sys.stdout)) - - parser = argparse.ArgumentParser(description="OS distro info tool") - parser.add_argument( - "--json", "-j", help="Output in machine readable format", action="store_true" - ) - - parser.add_argument( - "--root-dir", - "-r", - type=str, - dest="root_dir", - help="Path to the root filesystem directory (defaults to /)", - ) - - args = parser.parse_args() - - if args.root_dir: - dist = LinuxDistribution( - include_lsb=False, - include_uname=False, - include_oslevel=False, - root_dir=args.root_dir, - ) - else: - dist = _distro - - if args.json: - logger.info(json.dumps(dist.info(), indent=4, sort_keys=True)) - else: - logger.info("Name: %s", dist.name(pretty=True)) - distribution_version = dist.version(pretty=True) - logger.info("Version: %s", distribution_version) - distribution_codename = dist.codename() - logger.info("Codename: %s", distribution_codename) - - -if __name__ == "__main__": - main() diff --git a/.venv/lib/python3.12/site-packages/distro/py.typed b/.venv/lib/python3.12/site-packages/distro/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/dotenv/__init__.py b/.venv/lib/python3.12/site-packages/dotenv/__init__.py deleted file mode 100644 index dde24a0..0000000 --- a/.venv/lib/python3.12/site-packages/dotenv/__init__.py +++ /dev/null @@ -1,51 +0,0 @@ -from typing import Any, Optional - -from .main import dotenv_values, find_dotenv, get_key, load_dotenv, set_key, unset_key - - -def load_ipython_extension(ipython: Any) -> None: - from .ipython import load_ipython_extension - - load_ipython_extension(ipython) - - -def get_cli_string( - path: Optional[str] = None, - action: Optional[str] = None, - key: Optional[str] = None, - value: Optional[str] = None, - quote: Optional[str] = None, -): - """Returns a string suitable for running as a shell script. - - Useful for converting a arguments passed to a fabric task - to be passed to a `local` or `run` command. - """ - command = ["dotenv"] - if quote: - command.append(f"-q {quote}") - if path: - command.append(f"-f {path}") - if action: - command.append(action) - if key: - command.append(key) - if value: - if " " in value: - command.append(f'"{value}"') - else: - command.append(value) - - return " ".join(command).strip() - - -__all__ = [ - "get_cli_string", - "load_dotenv", - "dotenv_values", - "get_key", - "set_key", - "unset_key", - "find_dotenv", - "load_ipython_extension", -] diff --git a/.venv/lib/python3.12/site-packages/dotenv/__main__.py b/.venv/lib/python3.12/site-packages/dotenv/__main__.py deleted file mode 100644 index 3977f55..0000000 --- a/.venv/lib/python3.12/site-packages/dotenv/__main__.py +++ /dev/null @@ -1,6 +0,0 @@ -"""Entry point for cli, enables execution with `python -m dotenv`""" - -from .cli import cli - -if __name__ == "__main__": - cli() diff --git a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/dotenv/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index deb0c4e..0000000 Binary files a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/__main__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/dotenv/__pycache__/__main__.cpython-312.pyc deleted file mode 100644 index cfd94e9..0000000 Binary files a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/__main__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/cli.cpython-312.pyc b/.venv/lib/python3.12/site-packages/dotenv/__pycache__/cli.cpython-312.pyc deleted file mode 100644 index 5f8d5e5..0000000 Binary files a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/cli.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/ipython.cpython-312.pyc b/.venv/lib/python3.12/site-packages/dotenv/__pycache__/ipython.cpython-312.pyc deleted file mode 100644 index 3cee1da..0000000 Binary files a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/ipython.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/main.cpython-312.pyc b/.venv/lib/python3.12/site-packages/dotenv/__pycache__/main.cpython-312.pyc deleted file mode 100644 index d712d91..0000000 Binary files a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/main.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/parser.cpython-312.pyc b/.venv/lib/python3.12/site-packages/dotenv/__pycache__/parser.cpython-312.pyc deleted file mode 100644 index 0cad059..0000000 Binary files a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/parser.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/variables.cpython-312.pyc b/.venv/lib/python3.12/site-packages/dotenv/__pycache__/variables.cpython-312.pyc deleted file mode 100644 index c8fdd3c..0000000 Binary files a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/variables.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/version.cpython-312.pyc b/.venv/lib/python3.12/site-packages/dotenv/__pycache__/version.cpython-312.pyc deleted file mode 100644 index 822a9b8..0000000 Binary files a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/version.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/dotenv/cli.py b/.venv/lib/python3.12/site-packages/dotenv/cli.py deleted file mode 100644 index 47eec04..0000000 --- a/.venv/lib/python3.12/site-packages/dotenv/cli.py +++ /dev/null @@ -1,236 +0,0 @@ -import json -import os -import shlex -import sys -from contextlib import contextmanager -from typing import IO, Any, Dict, Iterator, List, Optional - -if sys.platform == "win32": - from subprocess import Popen - -try: - import click -except ImportError: - sys.stderr.write( - "It seems python-dotenv is not installed with cli option. \n" - 'Run pip install "python-dotenv[cli]" to fix this.' - ) - sys.exit(1) - -from .main import dotenv_values, set_key, unset_key -from .version import __version__ - - -def enumerate_env() -> Optional[str]: - """ - Return a path for the ${pwd}/.env file. - - If pwd does not exist, return None. - """ - try: - cwd = os.getcwd() - except FileNotFoundError: - return None - path = os.path.join(cwd, ".env") - return path - - -@click.group() -@click.option( - "-f", - "--file", - default=enumerate_env(), - type=click.Path(file_okay=True), - help="Location of the .env file, defaults to .env file in current working directory.", -) -@click.option( - "-q", - "--quote", - default="always", - type=click.Choice(["always", "never", "auto"]), - help="Whether to quote or not the variable values. Default mode is always. This does not affect parsing.", -) -@click.option( - "-e", - "--export", - default=False, - type=click.BOOL, - help="Whether to write the dot file as an executable bash script.", -) -@click.version_option(version=__version__) -@click.pass_context -def cli(ctx: click.Context, file: Any, quote: Any, export: Any) -> None: - """This script is used to set, get or unset values from a .env file.""" - ctx.obj = {"QUOTE": quote, "EXPORT": export, "FILE": file} - - -@contextmanager -def stream_file(path: os.PathLike) -> Iterator[IO[str]]: - """ - Open a file and yield the corresponding (decoded) stream. - - Exits with error code 2 if the file cannot be opened. - """ - - try: - with open(path) as stream: - yield stream - except OSError as exc: - print(f"Error opening env file: {exc}", file=sys.stderr) - sys.exit(2) - - -@cli.command(name="list") -@click.pass_context -@click.option( - "--format", - "output_format", - default="simple", - type=click.Choice(["simple", "json", "shell", "export"]), - help="The format in which to display the list. Default format is simple, " - "which displays name=value without quotes.", -) -def list_values(ctx: click.Context, output_format: str) -> None: - """Display all the stored key/value.""" - file = ctx.obj["FILE"] - - with stream_file(file) as stream: - values = dotenv_values(stream=stream) - - if output_format == "json": - click.echo(json.dumps(values, indent=2, sort_keys=True)) - else: - prefix = "export " if output_format == "export" else "" - for k in sorted(values): - v = values[k] - if v is not None: - if output_format in ("export", "shell"): - v = shlex.quote(v) - click.echo(f"{prefix}{k}={v}") - - -@cli.command(name="set") -@click.pass_context -@click.argument("key", required=True) -@click.argument("value", required=True) -def set_value(ctx: click.Context, key: Any, value: Any) -> None: - """ - Store the given key/value. - - This doesn't follow symlinks, to avoid accidentally modifying a file at a - potentially untrusted path. - """ - - file = ctx.obj["FILE"] - quote = ctx.obj["QUOTE"] - export = ctx.obj["EXPORT"] - success, key, value = set_key(file, key, value, quote, export) - if success: - click.echo(f"{key}={value}") - else: - sys.exit(1) - - -@cli.command() -@click.pass_context -@click.argument("key", required=True) -def get(ctx: click.Context, key: Any) -> None: - """Retrieve the value for the given key.""" - file = ctx.obj["FILE"] - - with stream_file(file) as stream: - values = dotenv_values(stream=stream) - - stored_value = values.get(key) - if stored_value: - click.echo(stored_value) - else: - sys.exit(1) - - -@cli.command() -@click.pass_context -@click.argument("key", required=True) -def unset(ctx: click.Context, key: Any) -> None: - """ - Removes the given key. - - This doesn't follow symlinks, to avoid accidentally modifying a file at a - potentially untrusted path. - """ - file = ctx.obj["FILE"] - quote = ctx.obj["QUOTE"] - success, key = unset_key(file, key, quote) - if success: - click.echo(f"Successfully removed {key}") - else: - sys.exit(1) - - -@cli.command( - context_settings={ - "allow_extra_args": True, - "allow_interspersed_args": False, - "ignore_unknown_options": True, - } -) -@click.pass_context -@click.option( - "--override/--no-override", - default=True, - help="Override variables from the environment file with those from the .env file.", -) -@click.argument("commandline", nargs=-1, type=click.UNPROCESSED) -def run(ctx: click.Context, override: bool, commandline: tuple[str, ...]) -> None: - """Run command with environment variables present.""" - file = ctx.obj["FILE"] - if not os.path.isfile(file): - raise click.BadParameter( - f"Invalid value for '-f' \"{file}\" does not exist.", ctx=ctx - ) - dotenv_as_dict = { - k: v - for (k, v) in dotenv_values(file).items() - if v is not None and (override or k not in os.environ) - } - - if not commandline: - click.echo("No command given.") - sys.exit(1) - - run_command([*commandline, *ctx.args], dotenv_as_dict) - - -def run_command(command: List[str], env: Dict[str, str]) -> None: - """Replace the current process with the specified command. - - Replaces the current process with the specified command and the variables from `env` - added in the current environment variables. - - Parameters - ---------- - command: List[str] - The command and it's parameters - env: Dict - The additional environment variables - - Returns - ------- - None - This function does not return any value. It replaces the current process with the new one. - - """ - # copy the current environment variables and add the vales from - # `env` - cmd_env = os.environ.copy() - cmd_env.update(env) - - if sys.platform == "win32": - # execvpe on Windows returns control immediately - # rather than once the command has finished. - p = Popen(command, universal_newlines=True, bufsize=0, shell=False, env=cmd_env) - _, _ = p.communicate() - - sys.exit(p.returncode) - else: - os.execvpe(command[0], args=command, env=cmd_env) diff --git a/.venv/lib/python3.12/site-packages/dotenv/ipython.py b/.venv/lib/python3.12/site-packages/dotenv/ipython.py deleted file mode 100644 index 4e7edbb..0000000 --- a/.venv/lib/python3.12/site-packages/dotenv/ipython.py +++ /dev/null @@ -1,50 +0,0 @@ -from IPython.core.magic import Magics, line_magic, magics_class # type: ignore -from IPython.core.magic_arguments import ( - argument, - magic_arguments, - parse_argstring, -) # type: ignore - -from .main import find_dotenv, load_dotenv - - -@magics_class -class IPythonDotEnv(Magics): - @magic_arguments() - @argument( - "-o", - "--override", - action="store_true", - help="Indicate to override existing variables", - ) - @argument( - "-v", - "--verbose", - action="store_true", - help="Indicate function calls to be verbose", - ) - @argument( - "dotenv_path", - nargs="?", - type=str, - default=".env", - help="Search in increasingly higher folders for the `dotenv_path`", - ) - @line_magic - def dotenv(self, line): - args = parse_argstring(self.dotenv, line) - # Locate the .env file - dotenv_path = args.dotenv_path - try: - dotenv_path = find_dotenv(dotenv_path, True, True) - except IOError: - print("cannot find .env file") - return - - # Load the .env file - load_dotenv(dotenv_path, verbose=args.verbose, override=args.override) - - -def load_ipython_extension(ipython): - """Register the %dotenv magic.""" - ipython.register_magics(IPythonDotEnv) diff --git a/.venv/lib/python3.12/site-packages/dotenv/main.py b/.venv/lib/python3.12/site-packages/dotenv/main.py deleted file mode 100644 index 48e5245..0000000 --- a/.venv/lib/python3.12/site-packages/dotenv/main.py +++ /dev/null @@ -1,480 +0,0 @@ -import io -import logging -import os -import pathlib -import stat -import sys -import tempfile -from collections import OrderedDict -from contextlib import contextmanager -from typing import IO, Dict, Iterable, Iterator, Mapping, Optional, Tuple, Union - -from .parser import Binding, parse_stream -from .variables import parse_variables - -# A type alias for a string path to be used for the paths in this file. -# These paths may flow to `open()` and `os.replace()`. -StrPath = Union[str, "os.PathLike[str]"] - -logger = logging.getLogger(__name__) - - -def _load_dotenv_disabled() -> bool: - """ - Determine if dotenv loading has been disabled. - """ - if "PYTHON_DOTENV_DISABLED" not in os.environ: - return False - value = os.environ["PYTHON_DOTENV_DISABLED"].casefold() - return value in {"1", "true", "t", "yes", "y"} - - -def with_warn_for_invalid_lines(mappings: Iterator[Binding]) -> Iterator[Binding]: - for mapping in mappings: - if mapping.error: - logger.warning( - "python-dotenv could not parse statement starting at line %s", - mapping.original.line, - ) - yield mapping - - -class DotEnv: - def __init__( - self, - dotenv_path: Optional[StrPath], - stream: Optional[IO[str]] = None, - verbose: bool = False, - encoding: Optional[str] = None, - interpolate: bool = True, - override: bool = True, - ) -> None: - self.dotenv_path: Optional[StrPath] = dotenv_path - self.stream: Optional[IO[str]] = stream - self._dict: Optional[Dict[str, Optional[str]]] = None - self.verbose: bool = verbose - self.encoding: Optional[str] = encoding - self.interpolate: bool = interpolate - self.override: bool = override - - @contextmanager - def _get_stream(self) -> Iterator[IO[str]]: - if self.dotenv_path and _is_file_or_fifo(self.dotenv_path): - with open(self.dotenv_path, encoding=self.encoding) as stream: - yield stream - elif self.stream is not None: - yield self.stream - else: - if self.verbose: - logger.info( - "python-dotenv could not find configuration file %s.", - self.dotenv_path or ".env", - ) - yield io.StringIO("") - - def dict(self) -> Dict[str, Optional[str]]: - """Return dotenv as dict""" - if self._dict: - return self._dict - - raw_values = self.parse() - - if self.interpolate: - self._dict = OrderedDict( - resolve_variables(raw_values, override=self.override) - ) - else: - self._dict = OrderedDict(raw_values) - - return self._dict - - def parse(self) -> Iterator[Tuple[str, Optional[str]]]: - with self._get_stream() as stream: - for mapping in with_warn_for_invalid_lines(parse_stream(stream)): - if mapping.key is not None: - yield mapping.key, mapping.value - - def set_as_environment_variables(self) -> bool: - """ - Load the current dotenv as system environment variable. - """ - if not self.dict(): - return False - - for k, v in self.dict().items(): - if k in os.environ and not self.override: - continue - if v is not None: - os.environ[k] = v - - return True - - def get(self, key: str) -> Optional[str]: - """ """ - data = self.dict() - - if key in data: - return data[key] - - if self.verbose: - logger.warning("Key %s not found in %s.", key, self.dotenv_path) - - return None - - -def get_key( - dotenv_path: StrPath, - key_to_get: str, - encoding: Optional[str] = "utf-8", -) -> Optional[str]: - """ - Get the value of a given key from the given .env. - - Returns `None` if the key isn't found or doesn't have a value. - """ - return DotEnv(dotenv_path, verbose=True, encoding=encoding).get(key_to_get) - - -@contextmanager -def rewrite( - path: StrPath, - encoding: Optional[str], - follow_symlinks: bool = False, -) -> Iterator[Tuple[IO[str], IO[str]]]: - if follow_symlinks: - path = os.path.realpath(path) - - try: - source: IO[str] = open(path, encoding=encoding) - try: - path_stat = os.lstat(path) - original_mode: Optional[int] = ( - stat.S_IMODE(path_stat.st_mode) - if stat.S_ISREG(path_stat.st_mode) - else None - ) - except BaseException: - source.close() - raise - except FileNotFoundError: - source = io.StringIO("") - original_mode = None - - with tempfile.NamedTemporaryFile( - mode="w", - encoding=encoding, - delete=False, - prefix=".tmp_", - dir=os.path.dirname(os.path.abspath(path)), - ) as dest: - dest_path = pathlib.Path(dest.name) - error = None - - try: - with source: - yield (source, dest) - except BaseException as err: - error = err - - if error is None: - try: - if original_mode is not None: - os.chmod(dest_path, original_mode) - - os.replace(dest_path, path) - except BaseException: - dest_path.unlink(missing_ok=True) - raise - else: - dest_path.unlink(missing_ok=True) - raise error from None - - -def set_key( - dotenv_path: StrPath, - key_to_set: str, - value_to_set: str, - quote_mode: str = "always", - export: bool = False, - encoding: Optional[str] = "utf-8", - follow_symlinks: bool = False, -) -> Tuple[Optional[bool], str, str]: - """ - Adds or Updates a key/value to the given .env - - The target .env file is created if it doesn't exist. - - This function doesn't follow symlinks by default, to avoid accidentally - modifying a file at a potentially untrusted path. If you don't need this - protection and need symlinks to be followed, use `follow_symlinks`. - """ - if quote_mode not in ("always", "auto", "never"): - raise ValueError(f"Unknown quote_mode: {quote_mode}") - - quote = quote_mode == "always" or ( - quote_mode == "auto" and not value_to_set.isalnum() - ) - - if quote: - value_out = "'{}'".format(value_to_set.replace("'", "\\'")) - else: - value_out = value_to_set - if export: - line_out = f"export {key_to_set}={value_out}\n" - else: - line_out = f"{key_to_set}={value_out}\n" - - with rewrite(dotenv_path, encoding=encoding, follow_symlinks=follow_symlinks) as ( - source, - dest, - ): - replaced = False - missing_newline = False - for mapping in with_warn_for_invalid_lines(parse_stream(source)): - if mapping.key == key_to_set: - dest.write(line_out) - replaced = True - else: - dest.write(mapping.original.string) - missing_newline = not mapping.original.string.endswith("\n") - if not replaced: - if missing_newline: - dest.write("\n") - dest.write(line_out) - - return True, key_to_set, value_to_set - - -def unset_key( - dotenv_path: StrPath, - key_to_unset: str, - quote_mode: str = "always", - encoding: Optional[str] = "utf-8", - follow_symlinks: bool = False, -) -> Tuple[Optional[bool], str]: - """ - Removes a given key from the given `.env` file. - - If the .env path given doesn't exist, fails. - If the given key doesn't exist in the .env, fails. - - This function doesn't follow symlinks by default, to avoid accidentally - modifying a file at a potentially untrusted path. If you don't need this - protection and need symlinks to be followed, use `follow_symlinks`. - """ - if not os.path.exists(dotenv_path): - logger.warning("Can't delete from %s - it doesn't exist.", dotenv_path) - return None, key_to_unset - - removed = False - with rewrite(dotenv_path, encoding=encoding, follow_symlinks=follow_symlinks) as ( - source, - dest, - ): - for mapping in with_warn_for_invalid_lines(parse_stream(source)): - if mapping.key == key_to_unset: - removed = True - else: - dest.write(mapping.original.string) - - if not removed: - logger.warning( - "Key %s not removed from %s - key doesn't exist.", key_to_unset, dotenv_path - ) - return None, key_to_unset - - return removed, key_to_unset - - -def resolve_variables( - values: Iterable[Tuple[str, Optional[str]]], - override: bool, -) -> Mapping[str, Optional[str]]: - new_values: Dict[str, Optional[str]] = {} - - for name, value in values: - if value is None: - result = None - else: - atoms = parse_variables(value) - env: Dict[str, Optional[str]] = {} - if override: - env.update(os.environ) # type: ignore - env.update(new_values) - else: - env.update(new_values) - env.update(os.environ) # type: ignore - result = "".join(atom.resolve(env) for atom in atoms) - - new_values[name] = result - - return new_values - - -def _walk_to_root(path: str) -> Iterator[str]: - """ - Yield directories starting from the given directory up to the root - """ - if not os.path.exists(path): - raise IOError("Starting path not found") - - if os.path.isfile(path): - path = os.path.dirname(path) - - last_dir = None - current_dir = os.path.abspath(path) - while last_dir != current_dir: - yield current_dir - parent_dir = os.path.abspath(os.path.join(current_dir, os.path.pardir)) - last_dir, current_dir = current_dir, parent_dir - - -def find_dotenv( - filename: str = ".env", - raise_error_if_not_found: bool = False, - usecwd: bool = False, -) -> str: - """ - Search in increasingly higher folders for the given file - - Returns path to the file if found, or an empty string otherwise - """ - - def _is_interactive(): - """Decide whether this is running in a REPL or IPython notebook""" - if hasattr(sys, "ps1") or hasattr(sys, "ps2"): - return True - try: - main = __import__("__main__", None, None, fromlist=["__file__"]) - except ModuleNotFoundError: - return False - return not hasattr(main, "__file__") - - def _is_debugger(): - return sys.gettrace() is not None - - if usecwd or _is_interactive() or _is_debugger() or getattr(sys, "frozen", False): - # Should work without __file__, e.g. in REPL or IPython notebook. - path = os.getcwd() - else: - # will work for .py files - frame = sys._getframe() - current_file = __file__ - - while frame.f_code.co_filename == current_file or not os.path.exists( - frame.f_code.co_filename - ): - assert frame.f_back is not None - frame = frame.f_back - frame_filename = frame.f_code.co_filename - path = os.path.dirname(os.path.abspath(frame_filename)) - - for dirname in _walk_to_root(path): - check_path = os.path.join(dirname, filename) - if _is_file_or_fifo(check_path): - return check_path - - if raise_error_if_not_found: - raise IOError("File not found") - - return "" - - -def load_dotenv( - dotenv_path: Optional[StrPath] = None, - stream: Optional[IO[str]] = None, - verbose: bool = False, - override: bool = False, - interpolate: bool = True, - encoding: Optional[str] = "utf-8", -) -> bool: - """Parse a .env file and then load all the variables found as environment variables. - - Parameters: - dotenv_path: Absolute or relative path to .env file. - stream: Text stream (such as `io.StringIO`) with .env content, used if - `dotenv_path` is `None`. - verbose: Whether to output a warning the .env file is missing. - override: Whether to override the system environment variables with the variables - from the `.env` file. - encoding: Encoding to be used to read the file. - Returns: - Bool: True if at least one environment variable is set else False - - If both `dotenv_path` and `stream` are `None`, `find_dotenv()` is used to find the - .env file with it's default parameters. If you need to change the default parameters - of `find_dotenv()`, you can explicitly call `find_dotenv()` and pass the result - to this function as `dotenv_path`. - - If the environment variable `PYTHON_DOTENV_DISABLED` is set to a truthy value, - .env loading is disabled. - """ - if _load_dotenv_disabled(): - logger.debug( - "python-dotenv: .env loading disabled by PYTHON_DOTENV_DISABLED environment variable" - ) - return False - - if dotenv_path is None and stream is None: - dotenv_path = find_dotenv() - - dotenv = DotEnv( - dotenv_path=dotenv_path, - stream=stream, - verbose=verbose, - interpolate=interpolate, - override=override, - encoding=encoding, - ) - return dotenv.set_as_environment_variables() - - -def dotenv_values( - dotenv_path: Optional[StrPath] = None, - stream: Optional[IO[str]] = None, - verbose: bool = False, - interpolate: bool = True, - encoding: Optional[str] = "utf-8", -) -> Dict[str, Optional[str]]: - """ - Parse a .env file and return its content as a dict. - - The returned dict will have `None` values for keys without values in the .env file. - For example, `foo=bar` results in `{"foo": "bar"}` whereas `foo` alone results in - `{"foo": None}` - - Parameters: - dotenv_path: Absolute or relative path to the .env file. - stream: `StringIO` object with .env content, used if `dotenv_path` is `None`. - verbose: Whether to output a warning if the .env file is missing. - encoding: Encoding to be used to read the file. - - If both `dotenv_path` and `stream` are `None`, `find_dotenv()` is used to find the - .env file. - """ - if dotenv_path is None and stream is None: - dotenv_path = find_dotenv() - - return DotEnv( - dotenv_path=dotenv_path, - stream=stream, - verbose=verbose, - interpolate=interpolate, - override=True, - encoding=encoding, - ).dict() - - -def _is_file_or_fifo(path: StrPath) -> bool: - """ - Return True if `path` exists and is either a regular file or a FIFO. - """ - if os.path.isfile(path): - return True - - try: - st = os.stat(path) - except (FileNotFoundError, OSError): - return False - - return stat.S_ISFIFO(st.st_mode) diff --git a/.venv/lib/python3.12/site-packages/dotenv/parser.py b/.venv/lib/python3.12/site-packages/dotenv/parser.py deleted file mode 100644 index eb100b4..0000000 --- a/.venv/lib/python3.12/site-packages/dotenv/parser.py +++ /dev/null @@ -1,182 +0,0 @@ -import codecs -import re -from typing import ( - IO, - Iterator, - Match, - NamedTuple, - Optional, - Pattern, - Sequence, -) - - -def make_regex(string: str, extra_flags: int = 0) -> Pattern[str]: - return re.compile(string, re.UNICODE | extra_flags) - - -_newline = make_regex(r"(\r\n|\n|\r)") -_multiline_whitespace = make_regex(r"\s*", extra_flags=re.MULTILINE) -_whitespace = make_regex(r"[^\S\r\n]*") -_export = make_regex(r"(?:export[^\S\r\n]+)?") -_single_quoted_key = make_regex(r"'([^']+)'") -_unquoted_key = make_regex(r"([^=\#\s]+)") -_equal_sign = make_regex(r"(=[^\S\r\n]*)") -_single_quoted_value = make_regex(r"'((?:\\'|[^'])*)'") -_double_quoted_value = make_regex(r'"((?:\\"|[^"])*)"') -_unquoted_value = make_regex(r"([^\r\n]*)") -_comment = make_regex(r"(?:[^\S\r\n]*#[^\r\n]*)?") -_end_of_line = make_regex(r"[^\S\r\n]*(?:\r\n|\n|\r|$)") -_rest_of_line = make_regex(r"[^\r\n]*(?:\r|\n|\r\n)?") -_double_quote_escapes = make_regex(r"\\[\\'\"abfnrtv]") -_single_quote_escapes = make_regex(r"\\[\\']") - - -class Original(NamedTuple): - string: str - line: int - - -class Binding(NamedTuple): - key: Optional[str] - value: Optional[str] - original: Original - error: bool - - -class Position: - def __init__(self, chars: int, line: int) -> None: - self.chars = chars - self.line = line - - @classmethod - def start(cls) -> "Position": - return cls(chars=0, line=1) - - def set(self, other: "Position") -> None: - self.chars = other.chars - self.line = other.line - - def advance(self, string: str) -> None: - self.chars += len(string) - self.line += len(re.findall(_newline, string)) - - -class Error(Exception): - pass - - -class Reader: - def __init__(self, stream: IO[str]) -> None: - self.string = stream.read() - self.position = Position.start() - self.mark = Position.start() - - def has_next(self) -> bool: - return self.position.chars < len(self.string) - - def set_mark(self) -> None: - self.mark.set(self.position) - - def get_marked(self) -> Original: - return Original( - string=self.string[self.mark.chars : self.position.chars], - line=self.mark.line, - ) - - def peek(self, count: int) -> str: - return self.string[self.position.chars : self.position.chars + count] - - def read(self, count: int) -> str: - result = self.string[self.position.chars : self.position.chars + count] - if len(result) < count: - raise Error("read: End of string") - self.position.advance(result) - return result - - def read_regex(self, regex: Pattern[str]) -> Sequence[str]: - match = regex.match(self.string, self.position.chars) - if match is None: - raise Error("read_regex: Pattern not found") - self.position.advance(self.string[match.start() : match.end()]) - return match.groups() - - -def decode_escapes(regex: Pattern[str], string: str) -> str: - def decode_match(match: Match[str]) -> str: - return codecs.decode(match.group(0), "unicode-escape") # type: ignore - - return regex.sub(decode_match, string) - - -def parse_key(reader: Reader) -> Optional[str]: - char = reader.peek(1) - if char == "#": - return None - elif char == "'": - (key,) = reader.read_regex(_single_quoted_key) - else: - (key,) = reader.read_regex(_unquoted_key) - return key - - -def parse_unquoted_value(reader: Reader) -> str: - (part,) = reader.read_regex(_unquoted_value) - return re.sub(r"\s+#.*", "", part).rstrip() - - -def parse_value(reader: Reader) -> str: - char = reader.peek(1) - if char == "'": - (value,) = reader.read_regex(_single_quoted_value) - return decode_escapes(_single_quote_escapes, value) - elif char == '"': - (value,) = reader.read_regex(_double_quoted_value) - return decode_escapes(_double_quote_escapes, value) - elif char in ("", "\n", "\r"): - return "" - else: - return parse_unquoted_value(reader) - - -def parse_binding(reader: Reader) -> Binding: - reader.set_mark() - try: - reader.read_regex(_multiline_whitespace) - if not reader.has_next(): - return Binding( - key=None, - value=None, - original=reader.get_marked(), - error=False, - ) - reader.read_regex(_export) - key = parse_key(reader) - reader.read_regex(_whitespace) - if reader.peek(1) == "=": - reader.read_regex(_equal_sign) - value: Optional[str] = parse_value(reader) - else: - value = None - reader.read_regex(_comment) - reader.read_regex(_end_of_line) - return Binding( - key=key, - value=value, - original=reader.get_marked(), - error=False, - ) - except Error: - reader.read_regex(_rest_of_line) - return Binding( - key=None, - value=None, - original=reader.get_marked(), - error=True, - ) - - -def parse_stream(stream: IO[str]) -> Iterator[Binding]: - reader = Reader(stream) - while reader.has_next(): - yield parse_binding(reader) diff --git a/.venv/lib/python3.12/site-packages/dotenv/py.typed b/.venv/lib/python3.12/site-packages/dotenv/py.typed deleted file mode 100644 index 7632ecf..0000000 --- a/.venv/lib/python3.12/site-packages/dotenv/py.typed +++ /dev/null @@ -1 +0,0 @@ -# Marker file for PEP 561 diff --git a/.venv/lib/python3.12/site-packages/dotenv/variables.py b/.venv/lib/python3.12/site-packages/dotenv/variables.py deleted file mode 100644 index 667f2f2..0000000 --- a/.venv/lib/python3.12/site-packages/dotenv/variables.py +++ /dev/null @@ -1,86 +0,0 @@ -import re -from abc import ABCMeta, abstractmethod -from typing import Iterator, Mapping, Optional, Pattern - -_posix_variable: Pattern[str] = re.compile( - r""" - \$\{ - (?P[^\}:]*) - (?::- - (?P[^\}]*) - )? - \} - """, - re.VERBOSE, -) - - -class Atom(metaclass=ABCMeta): - def __ne__(self, other: object) -> bool: - result = self.__eq__(other) - if result is NotImplemented: - return NotImplemented - return not result - - @abstractmethod - def resolve(self, env: Mapping[str, Optional[str]]) -> str: ... - - -class Literal(Atom): - def __init__(self, value: str) -> None: - self.value = value - - def __repr__(self) -> str: - return f"Literal(value={self.value})" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, self.__class__): - return NotImplemented - return self.value == other.value - - def __hash__(self) -> int: - return hash((self.__class__, self.value)) - - def resolve(self, env: Mapping[str, Optional[str]]) -> str: - return self.value - - -class Variable(Atom): - def __init__(self, name: str, default: Optional[str]) -> None: - self.name = name - self.default = default - - def __repr__(self) -> str: - return f"Variable(name={self.name}, default={self.default})" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, self.__class__): - return NotImplemented - return (self.name, self.default) == (other.name, other.default) - - def __hash__(self) -> int: - return hash((self.__class__, self.name, self.default)) - - def resolve(self, env: Mapping[str, Optional[str]]) -> str: - default = self.default if self.default is not None else "" - result = env.get(self.name, default) - return result if result is not None else "" - - -def parse_variables(value: str) -> Iterator[Atom]: - cursor = 0 - - for match in _posix_variable.finditer(value): - (start, end) = match.span() - name = match["name"] - default = match["default"] - - if start > cursor: - yield Literal(value=value[cursor:start]) - - yield Variable(name=name, default=default) - cursor = end - - length = len(value) - if cursor < length: - yield Literal(value=value[cursor:length]) diff --git a/.venv/lib/python3.12/site-packages/dotenv/version.py b/.venv/lib/python3.12/site-packages/dotenv/version.py deleted file mode 100644 index bc86c94..0000000 --- a/.venv/lib/python3.12/site-packages/dotenv/version.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = "1.2.2" diff --git a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/INSTALLER b/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/METADATA b/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/METADATA deleted file mode 100644 index d56256f..0000000 --- a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/METADATA +++ /dev/null @@ -1,551 +0,0 @@ -Metadata-Version: 2.4 -Name: Faker -Version: 40.18.0 -Summary: Faker is a Python package that generates fake data for you. -Home-page: https://github.com/joke2k/faker -Author: joke2k -Author-email: joke2k@gmail.com -License: MIT License -Project-URL: Bug Tracker, https://github.com/joke2k/faker/issues -Project-URL: Changes, https://github.com/joke2k/faker/blob/master/CHANGELOG.md -Project-URL: Documentation, http://faker.rtfd.org/ -Project-URL: Source Code, https://github.com/joke2k/faker -Keywords: faker fixtures data test mock generator -Platform: any -Classifier: Development Status :: 5 - Production/Stable -Classifier: Environment :: Console -Classifier: Intended Audience :: Developers -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Programming Language :: Python :: 3.13 -Classifier: Programming Language :: Python :: 3.14 -Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Programming Language :: Python :: Implementation :: PyPy -Classifier: Topic :: Software Development :: Libraries :: Python Modules -Classifier: Topic :: Software Development :: Testing -Classifier: Topic :: Utilities -Classifier: License :: OSI Approved :: MIT License -Requires-Python: >=3.10 -License-File: LICENSE.txt -Requires-Dist: tzdata; platform_system == "Windows" -Provides-Extra: tzdata -Requires-Dist: tzdata; extra == "tzdata" -Dynamic: author -Dynamic: author-email -Dynamic: classifier -Dynamic: description -Dynamic: home-page -Dynamic: keywords -Dynamic: license -Dynamic: license-file -Dynamic: platform -Dynamic: project-url -Dynamic: provides-extra -Dynamic: requires-dist -Dynamic: requires-python -Dynamic: summary - -*Faker* is a Python package that generates fake data for you. Whether -you need to bootstrap your database, create good-looking XML documents, -fill-in your persistence to stress test it, or anonymize data taken from -a production service, Faker is for you. - -Faker is heavily inspired by `PHP Faker`_, `Perl Faker`_, and by `Ruby Faker`_. - ----- - -:: - - _|_|_|_| _| - _| _|_|_| _| _| _|_| _| _|_| - _|_|_| _| _| _|_| _|_|_|_| _|_| - _| _| _| _| _| _| _| - _| _|_|_| _| _| _|_|_| _| - -|pypi| |build| |coverage| |license| - ----- - -Compatibility -------------- - -Starting from version ``4.0.0``, ``Faker`` dropped support for Python 2 and from version ``5.0.0`` -only supports Python 3.8 and above. If you still need Python 2 compatibility, please install version ``3.0.1`` in the -meantime, and please consider updating your codebase to support Python 3 so you can enjoy the -latest features ``Faker`` has to offer. Please see the `extended docs`_ for more details, especially -if you are upgrading from version ``2.0.4`` and below as there might be breaking changes. - -This package was also previously called ``fake-factory`` which was already deprecated by the end -of 2016, and much has changed since then, so please ensure that your project and its dependencies -do not depend on the old package. - -Basic Usage ------------ - -Install with pip: - -.. code:: bash - - pip install Faker - -Use ``faker.Faker()`` to create and initialize a faker -generator, which can generate data by accessing properties named after -the type of data you want. - -.. code:: python - - from faker import Faker - fake = Faker() - - fake.name() - # 'Lucy Cechtelar' - - fake.address() - # '426 Jordy Lodge - # Cartwrightshire, SC 88120-6700' - - fake.text() - # 'Sint velit eveniet. Rerum atque repellat voluptatem quia rerum. Numquam excepturi - # beatae sint laudantium consequatur. Magni occaecati itaque sint et sit tempore. Nesciunt - # amet quidem. Iusto deleniti cum autem ad quia aperiam. - # A consectetur quos aliquam. In iste aliquid et aut similique suscipit. Consequatur qui - # quaerat iste minus hic expedita. Consequuntur error magni et laboriosam. Aut aspernatur - # voluptatem sit aliquam. Dolores voluptatum est. - # Aut molestias et maxime. Fugit autem facilis quos vero. Eius quibusdam possimus est. - # Ea quaerat et quisquam. Deleniti sunt quam. Adipisci consequatur id in occaecati. - # Et sint et. Ut ducimus quod nemo ab voluptatum.' - -Each call to method ``fake.name()`` yields a different (random) result. -This is because faker forwards ``faker.Generator.method_name()`` calls -to ``faker.Generator.format(method_name)``. - -.. code:: python - - for _ in range(10): - print(fake.name()) - - # 'Adaline Reichel' - # 'Dr. Santa Prosacco DVM' - # 'Noemy Vandervort V' - # 'Lexi O'Conner' - # 'Gracie Weber' - # 'Roscoe Johns' - # 'Emmett Lebsack' - # 'Keegan Thiel' - # 'Wellington Koelpin II' - # 'Ms. Karley Kiehn V' - -Pytest fixtures ---------------- - -``Faker`` also has its own ``pytest`` plugin which provides a ``faker`` fixture you can use in your -tests. Please check out the `pytest fixture docs` to learn more. - -Providers ---------- - -Each of the generator properties (like ``name``, ``address``, and -``lorem``) are called "fake". A faker generator has many of them, -packaged in "providers". - -.. code:: python - - from faker import Faker - from faker.providers import internet - - fake = Faker() - fake.add_provider(internet) - - print(fake.ipv4_private()) - - -Check the `extended docs`_ for a list of `bundled providers`_ and a list of -`community providers`_. - -Localization ------------- - -``faker.Faker`` can take a locale as an argument, to return localized -data. If no localized provider is found, the factory falls back to the -default LCID string for US english, ie: ``en_US``. - -.. code:: python - - from faker import Faker - fake = Faker('it_IT') - for _ in range(10): - print(fake.name()) - - # 'Elda Palumbo' - # 'Pacifico Giordano' - # 'Sig. Avide Guerra' - # 'Yago Amato' - # 'Eustachio Messina' - # 'Dott. Violante Lombardo' - # 'Sig. Alighieri Monti' - # 'Costanzo Costa' - # 'Nazzareno Barbieri' - # 'Max Coppola' - -``faker.Faker`` also supports multiple locales. New in v3.0.0. - -.. code:: python - - from faker import Faker - fake = Faker(['it_IT', 'en_US', 'ja_JP']) - for _ in range(10): - print(fake.name()) - - # 鈴木 陽一 - # Leslie Moreno - # Emma Williams - # 渡辺 裕美子 - # Marcantonio Galuppi - # Martha Davis - # Kristen Turner - # 中津川 春香 - # Ashley Castillo - # 山田 桃子 - -You can check available Faker locales in the source code, under the -providers package. The localization of Faker is an ongoing process, for -which we need your help. Please don't hesitate to create a localized -provider for your own locale and submit a Pull Request (PR). - -Optimizations -------------- -The Faker constructor takes a performance-related argument called -``use_weighting``. It specifies whether to attempt to have the frequency -of values match real-world frequencies (e.g. the English name Gary would -be much more frequent than the name Lorimer). If ``use_weighting`` is ``False``, -then all items have an equal chance of being selected, and the selection -process is much faster. The default is ``True``. - -Command line usage ------------------- - -When installed, you can invoke faker from the command-line: - -.. code:: console - - faker [-h] [--version] [-o output] - [-l {bg_BG,cs_CZ,...,zh_CN,zh_TW}] - [-r REPEAT] [-s SEP] - [-i package.containing.custom_provider] - [fake] [fake argument [fake argument ...]] - -Where: - -- ``faker``: is the script when installed in your environment, in - development you could use ``python -m faker`` instead - -- ``-h``, ``--help``: shows a help message - -- ``--version``: shows the program's version number - -- ``-o FILENAME``: redirects the output to the specified filename - -- ``-l {bg_BG,cs_CZ,...,zh_CN,zh_TW}``: allows use of a localized - provider - -- ``-r REPEAT``: will generate a specified number of outputs - -- ``-s SEP``: will generate the specified separator after each - generated output - -- ``-i package.containing.custom_provider`` additional custom provider to use. Note this - is the import path of the package containing your Provider class, not the - custom Provider class itself. Can be repeated to add multiple providers. - -- ``fake``: is the name of the fake to generate an output for, such as - ``name``, ``address``, or ``text`` - -- ``[fake argument ...]``: optional arguments to pass to the fake (e.g. the - profile fake takes an optional list of comma separated field names as the - first argument) - -Examples: - -.. code:: console - - $ faker address - 968 Bahringer Garden Apt. 722 - Kristinaland, NJ 09890 - - $ faker -l de_DE address - Samira-Niemeier-Allee 56 - 94812 Biedenkopf - - $ faker profile ssn,birthdate - {'ssn': '628-10-1085', 'birthdate': '2008-03-29'} - - $ faker -r=3 -s=";" name - Willam Kertzmann; - Josiah Maggio; - Gayla Schmitt; - - $ faker -i faker_credit_score credit_score_full - Experian/Fair Isaac Risk Model V2SM - Experian - 801 - -How to create a Provider ------------------------- - -.. code:: python - - from faker import Faker - fake = Faker() - - # first, import a similar Provider or use the default one - from faker.providers import BaseProvider - - # create new provider class - class MyProvider(BaseProvider): - def foo(self) -> str: - return 'bar' - - # then add new provider to faker instance - fake.add_provider(MyProvider) - - # now you can use: - fake.foo() - # 'bar' - - -How to create a Dynamic Provider --------------------------------- - -Dynamic providers can read elements from an external source. - -.. code:: python - - from faker import Faker - from faker.providers import DynamicProvider - - medical_professions_provider = DynamicProvider( - provider_name="medical_profession", - elements=["dr.", "doctor", "nurse", "surgeon", "clerk"], - ) - - fake = Faker() - - # then add new provider to faker instance - fake.add_provider(medical_professions_provider) - - # now you can use: - fake.medical_profession() - # 'dr.' - -How to customize the Lorem Provider ------------------------------------ - -You can provide your own sets of words if you don't want to use the -default lorem ipsum one. The following example shows how to do it with a list of words picked from `cakeipsum `__ : - -.. code:: python - - from faker import Faker - fake = Faker() - - my_word_list = [ - 'danish','cheesecake','sugar', - 'Lollipop','wafer','Gummies', - 'sesame','Jelly','beans', - 'pie','bar','Ice','oat' ] - - fake.sentence() - # 'Expedita at beatae voluptatibus nulla omnis.' - - fake.sentence(ext_word_list=my_word_list) - # 'Oat beans oat Lollipop bar cheesecake.' - - -How to use with Factory Boy ---------------------------- - -`Factory Boy` already ships with integration with ``Faker``. Simply use the -``factory.Faker`` method of ``factory_boy``: - -.. code:: python - - import factory - from myapp.models import Book - - class BookFactory(factory.Factory): - class Meta: - model = Book - - title = factory.Faker('sentence', nb_words=4) - author_name = factory.Faker('name') - -Accessing the `random` instance -------------------------------- - -The ``.random`` property on the generator returns the instance of -``random.Random`` used to generate the values: - -.. code:: python - - from faker import Faker - fake = Faker() - fake.random - fake.random.getstate() - -By default all generators share the same instance of ``random.Random``, which -can be accessed with ``from faker.generator import random``. Using this may -be useful for plugins that want to affect all faker instances. - -Unique values -------------- - -Through use of the ``.unique`` property on the generator, you can guarantee -that any generated values are unique for this specific instance. - -.. code:: python - - from faker import Faker - fake = Faker() - names = [fake.unique.first_name() for i in range(500)] - assert len(set(names)) == len(names) - -On ``Faker`` instances with multiple locales, you can specify the locale to use -for the unique values by using the subscript notation: - -.. code:: python - - from faker import Faker - fake = Faker(['en_US', 'fr_FR']) - names = [fake.unique["en_US"].first_name() for i in range(500)] - assert len(set(names)) == len(names) - -Calling ``fake.unique.clear()`` clears the already seen values. - -Note, to avoid infinite loops, after a number of attempts to find a unique -value, Faker will throw a ``UniquenessException``. Beware of the `birthday -paradox `_, collisions -are more likely than you'd think. - - -.. code:: python - - from faker import Faker - - fake = Faker() - for i in range(3): - # Raises a UniquenessException - fake.unique.boolean() - -In addition, only hashable arguments and return values can be used -with ``.unique``. - -Seeding the Generator ---------------------- - -When using Faker for unit testing, you will often want to generate the same -data set. For convenience, the generator also provides a ``seed()`` method, -which seeds the shared random number generator. A Seed produces the same result -when the same methods with the same version of faker are called. - -.. code:: python - - from faker import Faker - fake = Faker() - Faker.seed(4321) - - print(fake.name()) - # 'Margaret Boehm' - -Each generator can also be switched to use its own instance of ``random.Random``, -separated from the shared one, by using the ``seed_instance()`` method, which acts -the same way. For example: - -.. code:: python - - from faker import Faker - fake = Faker() - fake.seed_instance(4321) - - print(fake.name()) - # 'Margaret Boehm' - -Please note that as we keep updating datasets, results are not guaranteed to be -consistent across patch versions. If you hardcode results in your test, make sure -you pinned the version of ``Faker`` down to the patch number. - -If you are using ``pytest``, you can seed the ``faker`` fixture by defining a ``faker_seed`` -fixture. Please check out the `pytest fixture docs` to learn more. - -Tests ------ - -Run tests: - -.. code:: bash - - $ tox - -Write documentation for the providers of the default locale: - -.. code:: bash - - $ python -m faker > docs.txt - -Write documentation for the providers of a specific locale: - -.. code:: bash - - $ python -m faker --lang=de_DE > docs_de.txt - - -Contribute ----------- - -Please see `CONTRIBUTING`_. - -License -------- - -Faker is released under the MIT License. See the bundled `LICENSE`_ file -for details. - -Credits -------- - -- `FZaninotto`_ / `PHP Faker`_ -- `Distribute`_ -- `Buildout`_ -- `modern-package-template`_ - - -.. _FZaninotto: https://github.com/fzaninotto -.. _PHP Faker: https://github.com/fzaninotto/Faker -.. _Perl Faker: http://search.cpan.org/~jasonk/Data-Faker-0.07/ -.. _Ruby Faker: https://github.com/stympy/faker -.. _Distribute: https://pypi.org/project/distribute/ -.. _Buildout: http://www.buildout.org/ -.. _modern-package-template: https://pypi.org/project/modern-package-template/ -.. _extended docs: https://faker.readthedocs.io/en/stable/ -.. _bundled providers: https://faker.readthedocs.io/en/stable/providers.html -.. _community providers: https://faker.readthedocs.io/en/stable/communityproviders.html -.. _pytest fixture docs: https://faker.readthedocs.io/en/master/pytest-fixtures.html -.. _LICENSE: https://github.com/joke2k/faker/blob/master/LICENSE.txt -.. _CONTRIBUTING: https://github.com/joke2k/faker/blob/master/CONTRIBUTING.rst -.. _Factory Boy: https://github.com/FactoryBoy/factory_boy - -.. |pypi| image:: https://img.shields.io/pypi/v/Faker.svg?style=flat-square&label=version - :target: https://pypi.org/project/Faker/ - :alt: Latest version released on PyPI - -.. |coverage| image:: https://img.shields.io/coveralls/joke2k/faker/master.svg?style=flat-square - :target: https://coveralls.io/r/joke2k/faker?branch=master - :alt: Test coverage - -.. |build| image:: https://github.com/joke2k/faker/actions/workflows/ci.yml/badge.svg - :target: https://github.com/joke2k/faker/actions/workflows/ci.yml - :alt: Build status of the master branch - -.. |license| image:: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square - :target: https://raw.githubusercontent.com/joke2k/faker/master/LICENSE.txt - :alt: Package license diff --git a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/RECORD b/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/RECORD deleted file mode 100644 index e4f358b..0000000 --- a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/RECORD +++ /dev/null @@ -1,1464 +0,0 @@ -../../../bin/faker,sha256=JRVTkxzrz_fONGWUEA92DHLkXGEF3Gg6w_aXCkzqwko,300 -faker-40.18.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -faker-40.18.0.dist-info/METADATA,sha256=GBI21hoU_CXERAeSkSdjIAiSQpie4ibMETQHrJDohY4,16353 -faker-40.18.0.dist-info/RECORD,, -faker-40.18.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -faker-40.18.0.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91 -faker-40.18.0.dist-info/entry_points.txt,sha256=l_IdiPD4bkqzB9bcv94HWbprFQzvZhApP98Hh6g6b58,110 -faker-40.18.0.dist-info/licenses/LICENSE.txt,sha256=zVpfvIusylK4gVjKVirF98LprbJzcc6tUar05hpleSg,1060 -faker-40.18.0.dist-info/top_level.txt,sha256=r5c8fW5_gMtLHv1Ql00Y4ifqUwZFD8NDLz9-nTKZmSk,6 -faker-40.18.0.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 -faker/__init__.py,sha256=njNT6joPEIg2jE2ZuqQbpSd_kJcP0r72cTE-KkxIvZI,168 -faker/__main__.py,sha256=bWvstAA5sgR1fuERQ4Hc8txstG9n0AbqH7m9WT1BbDA,107 -faker/__pycache__/__init__.cpython-312.pyc,, -faker/__pycache__/__main__.cpython-312.pyc,, -faker/__pycache__/cli.cpython-312.pyc,, -faker/__pycache__/config.cpython-312.pyc,, -faker/__pycache__/documentor.cpython-312.pyc,, -faker/__pycache__/exceptions.cpython-312.pyc,, -faker/__pycache__/factory.cpython-312.pyc,, -faker/__pycache__/generator.cpython-312.pyc,, -faker/__pycache__/proxy.cpython-312.pyc,, -faker/__pycache__/typing.cpython-312.pyc,, -faker/cli.py,sha256=V92Ni4lkcsZxKhilB9JDjJ8czI5xnfSBevMWXREgc4A,9576 -faker/config.py,sha256=IUzU9OjeGF2Oj05_E5U144wVaFfPD1WH-Ddrg2-hZf8,343 -faker/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -faker/contrib/__pycache__/__init__.cpython-312.pyc,, -faker/contrib/pytest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -faker/contrib/pytest/__pycache__/__init__.cpython-312.pyc,, -faker/contrib/pytest/__pycache__/plugin.cpython-312.pyc,, -faker/contrib/pytest/plugin.py,sha256=riHG2hkldfJxcBXqmblXMrAPtqUhPnIXQjlBFr_rE1A,1114 -faker/decode/__init__.py,sha256=M1moNbvdc4XyDcnLgh1xB8ik57ZVXyIfeJE-LTJAyVM,234 -faker/decode/__pycache__/__init__.cpython-312.pyc,, -faker/decode/__pycache__/codes.cpython-312.pyc,, -faker/decode/codes.py,sha256=aMPbvX4JoRwISqjYKh9eiutCPCFLBl6uu6PVgsqCUIQ,769957 -faker/documentor.py,sha256=NBABEjQ9IEO3jJJHuRKzfZFlkM3QNVjBegLV_Zp3cw8,4246 -faker/exceptions.py,sha256=aEN2G4fwwjBUcKCMJ0h9PBEpQzTj2hEnXpRh6C6cdVw,506 -faker/factory.py,sha256=d4Nub66PrtbGkFf2GwKNGlDe2IQJt8EjFFVCYqOhKqg,3923 -faker/generator.py,sha256=kAv4Y_A7HlSqF9XdDajgepbclwbNT4A6EBz3aKIz3M8,6790 -faker/providers/__init__.py,sha256=Re2dZBAucCpmPQoy6zOjZqaR5WMMs_wcSpDxyrIkQZk,25652 -faker/providers/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/__init__.py,sha256=wP37P3E7zmu8W0LWXk6cbk07QE6Ow2rffJ75cUyJ7ig,4024 -faker/providers/address/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/ar_DZ/__init__.py,sha256=b1k-nEb1brMEN1vbVRHMkRMiy3fiUH5j51J0xT9XBUg,9665 -faker/providers/address/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/az_AZ/__init__.py,sha256=OhVwKdfthVLczuhQvVPMujOsKpUC9aBpRg-uroEwHZ8,15829 -faker/providers/address/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/bn_BD/__init__.py,sha256=YdHlA9EaXuZc-T5ZwRgrTVizRckYuHdWrPAQx9lHJ90,20346 -faker/providers/address/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/cs_CZ/__init__.py,sha256=8gnBMU_OHkb0JdGDJo628f3cojiHRPjrsZh1l8UCesA,27852 -faker/providers/address/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/da_DK/__init__.py,sha256=OKDKKAWh60umyQLDNSYWp8W70FOKtUovaaF90q4j3bc,51375 -faker/providers/address/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/de/__init__.py,sha256=5Quk1In2RNlovsWBb3npynCFio4bkR1IzbNRhZIN7uU,5672 -faker/providers/address/de/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/de_AT/__init__.py,sha256=B8c9jER7MmgouJ6228AXdcAPxGp6CiMz7bHddmaAYdo,6453 -faker/providers/address/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/de_CH/__init__.py,sha256=xF6yk1VhZHphb7lpWOeWxOB_QxCbOHhnQkBrTvdR5Zs,5361 -faker/providers/address/de_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/de_DE/__init__.py,sha256=u4Xwhloey3rbdg-Z3jDVOPmvLizgjx8OE9XV777-SZ8,10409 -faker/providers/address/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/el_GR/__init__.py,sha256=_IohURhKWsgiDGiq89B0pdVxvkROrInFupImXksxefo,149020 -faker/providers/address/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en/__init__.py,sha256=w4bMWWe_CSpwmBQyQ8R4oHhdZK3_Ks1mEUd9jsfxigc,5648 -faker/providers/address/en/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_AU/__init__.py,sha256=GQQ3z7eehtF-zIhN7gHkSyhlsHokUo379xYW4cFL-80,6565 -faker/providers/address/en_AU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_BD/__init__.py,sha256=ji14eyNu96Z6nqo_rll9BkaqQrxtR7i_ctC--chnxXo,12026 -faker/providers/address/en_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_CA/__init__.py,sha256=A9WWb-T0eOlwyhOtFineAzl_3ly2NBOtW75JkDfZhKw,9037 -faker/providers/address/en_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_GB/__init__.py,sha256=2Tw-T0UsIVvVdiEp_UD1ntPwnQ5NFNCWiOhRJc0UiN0,10725 -faker/providers/address/en_GB/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_IE/__init__.py,sha256=_sz-JCp7mm8F1jWTEwjjgLCM53qBpr5W5Fmj57HSceo,1336 -faker/providers/address/en_IE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_IN/__init__.py,sha256=EHqP9YVzNxEqKu3tPtxstxTQ3qCD013jXYUg3VKeiWI,13659 -faker/providers/address/en_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_MS/__init__.py,sha256=ZMYWByh6wC6zgav5etxwzBmUdztWyIHQMIXTCau4Zik,12816 -faker/providers/address/en_MS/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_NZ/__init__.py,sha256=80YiH9_uy_FyQPm8JvgU5qF0pPVwDDHc2ZdhIOU3mWY,7140 -faker/providers/address/en_NZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_PH/__init__.py,sha256=sC-WyA3ekXtOyLRQaYaD4TXS9RDqLA4fyaK5Ba1jWdA,43242 -faker/providers/address/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_US/__init__.py,sha256=5CjDd5VTW0RuLUjBUDkX0-gCl6vLjKO_Frj0WZUOi8w,13688 -faker/providers/address/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/es/__init__.py,sha256=7ook-a38a3ozyftxFVBHGgzkJ3u4DFumo1lsRCPvedY,4406 -faker/providers/address/es/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/es_AR/__init__.py,sha256=GSe6BCq19JpK51azW5MhZRJkjb-864lW4FGVuYUafdM,6549 -faker/providers/address/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/es_CL/__init__.py,sha256=qv7PAhdT1XmQ2t9A8oOSnOw1cqZb4m6G7s848JwX6yk,19941 -faker/providers/address/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/es_CO/__init__.py,sha256=nJcxIm-NaGY-nDvVneC1nrcJFBuKW7awl_PSkHZSpbs,42958 -faker/providers/address/es_CO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/es_ES/__init__.py,sha256=L7nSd_R7uIbT9YNQKeLuJJBbqeSCgdITZJ1es8MfdQQ,3361 -faker/providers/address/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/es_MX/__init__.py,sha256=-pYU1LttV94EPTkVm7TAt_OLRJkFBb1wEW_3J96NXL4,4914 -faker/providers/address/es_MX/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/fa_IR/__init__.py,sha256=dwN_zs65K0IVO9uQjhU4vXySsvghG_GWKIoBLqnkeNE,8028 -faker/providers/address/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/fi_FI/__init__.py,sha256=vY6s1s56EW8jm2YTuoyX_jWjsUzaAxOMX3_P9HCu9Y8,16862 -faker/providers/address/fi_FI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/fil_PH/__init__.py,sha256=GWSXNmCOnBty8NLToYXAQRwIMa3yfkqIccBc6R_mxVo,164 -faker/providers/address/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/fr_CA/__init__.py,sha256=tkGvDQDJfDyDdo2xLSM14v7FkAUEsZg3Tyy-oIH2jD4,1866 -faker/providers/address/fr_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/fr_CH/__init__.py,sha256=7cF2Jcdi--e2s8kvO-17xB2qRrW3OkQt0LoCvL3qCvQ,8695 -faker/providers/address/fr_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/fr_DZ/__init__.py,sha256=al26GKGbCk_YKQxEoWnDKwn_NYgzNvNXS_2paF06v7w,8331 -faker/providers/address/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/fr_FR/__init__.py,sha256=S-C1gFbbEdRl1FM4qDO0prCBADC0p2PJMWl2y94swos,12056 -faker/providers/address/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/he_IL/__init__.py,sha256=1tnO9BOT99ApLGd22CsYUPdXTL4a4L8wEbwGGrlHQwU,23641 -faker/providers/address/he_IL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/hi_IN/__init__.py,sha256=mcXpPKzW_9T08_iK1buCd3VvYf64FmBv2ZggSJBJS0s,7698 -faker/providers/address/hi_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/hr_HR/__init__.py,sha256=0y5L8-Grp87pzfZ12PIVzvrtHPj3DfTiT_H2VIoKu_o,12730 -faker/providers/address/hr_HR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/hu_HU/__init__.py,sha256=nuykzYXPdKJCpnqK4uqOBmvH8BoC-uVKV-7OXWgptqA,11395 -faker/providers/address/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/hy_AM/__init__.py,sha256=s2eg8iGDGPpWHqPrDdAF3-BfXkn157LL0BewajD9Pu4,20576 -faker/providers/address/hy_AM/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/id_ID/__init__.py,sha256=vFxn9A7NTodp5rnoDE-Ne7qDn3SSqCWEQC61pLOdLzk,11524 -faker/providers/address/id_ID/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/it_IT/__init__.py,sha256=5BPdL9__bUdrEhQOHtdEvcOYMPDBQ7sCFYGFgGCwDG0,667166 -faker/providers/address/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/ja_JP/__init__.py,sha256=og73NTP1cmbnedh9AGojeC3P4Uid9inpLOPICXy8XcY,16223 -faker/providers/address/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/ka_GE/__init__.py,sha256=z6DfhsRNhHgOfsUHost43aTlRW1CnxH-mavfrNskSzM,53808 -faker/providers/address/ka_GE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/ko_KR/__init__.py,sha256=djZEWeB_K7niXkBl2oZrwY1CcTShf1SOeVLHealBM40,16491 -faker/providers/address/ko_KR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/ne_NP/__init__.py,sha256=SZf6PfXCdlmZ1XYYu-2TUpFa6qSvK9yZ5-QFiW9rAC8,22794 -faker/providers/address/ne_NP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/nl_BE/__init__.py,sha256=FAup9xS8nIg4BvNU1CKY9RVZ-l40dXC0EfPXYaohooM,65198 -faker/providers/address/nl_BE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/nl_NL/__init__.py,sha256=H05UmyeuriYxlV7x9-uUdAX0a_sSiT9T5DkBL7u8br4,57929 -faker/providers/address/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/no_NO/__init__.py,sha256=afUxqu6BQnzaeZuBH-RajqJeawrflhPCVEpU3Eh6fDc,2490 -faker/providers/address/no_NO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/pl_PL/__init__.py,sha256=FbkQ19PPDuTGvxoB2hUmrvyVdBJsFBfmx5FkBUTN1H0,17101 -faker/providers/address/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/pt_BR/__init__.py,sha256=UMPFv1Q8AuN23v-HV70EKVtpU9z7i26b_QMT8EDM-Kc,22999 -faker/providers/address/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/pt_PT/__init__.py,sha256=ZTP9liYV_HbgOCoJY8Wqct5_LGRKRDRHVR0rNzK3CHs,38123 -faker/providers/address/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/ro_RO/__init__.py,sha256=03g6v3vqtkLj60ERKxUchkmZal4vr9lG4L9tpOFY6XQ,9633 -faker/providers/address/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/ru_RU/__init__.py,sha256=3KNx8s8kbN4h8HutZRt2v7AzL7NFxbK2dak4a5nSce0,48537 -faker/providers/address/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/sk_SK/__init__.py,sha256=NGHQTDPB7uP_YnFmwbaEw5K9Pqwn5waq-fJ3UrBR5CQ,122008 -faker/providers/address/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/sl_SI/__init__.py,sha256=0P4KauGn5hfFyVoNoMM-XFUsDzQlqw_0X-mPTiESxPM,42412 -faker/providers/address/sl_SI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/sv_SE/__init__.py,sha256=iqdwU0Xw5MMjG_nxPJrtNPznt_RxDccQk7C-5Okso6U,8163 -faker/providers/address/sv_SE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/ta_IN/__init__.py,sha256=tp23UYijByweT0IlZXv6ItCG2-bnm1JAqBwVIKk1e1k,16943 -faker/providers/address/ta_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/th/__init__.py,sha256=gs2nBp8qeBqUT0_b9liUHH592RBid1Q7rU1c6hzTWfg,9824 -faker/providers/address/th/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/th_TH/__init__.py,sha256=0fXC5Qg3Y40_k5CTtFJHXwcTnGGAKJPIFBFSuZw2B0s,12997 -faker/providers/address/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/tl_PH/__init__.py,sha256=GWSXNmCOnBty8NLToYXAQRwIMa3yfkqIccBc6R_mxVo,164 -faker/providers/address/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/uk_UA/__init__.py,sha256=nFubdejOm9MCcDso8weHi9xnIQtFade3aZafLOSecZI,73453 -faker/providers/address/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/vi_VN/__init__.py,sha256=ILT2AO11Don8CuleBvU3bap5EZzcdbfGpFJeVa8Nk94,7598 -faker/providers/address/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/zh_CN/__init__.py,sha256=MaW3qTfIhxoH0JQNaYYmK9D-koxKy8RFfTix0A-knGE,9898 -faker/providers/address/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/zh_TW/__init__.py,sha256=CQ0LzyxmKJJIBF_FTCJuEN3Gp5iuwFQmACFLYsCudvI,8296 -faker/providers/address/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/zu_ZA/__init__.py,sha256=93aADtaUhMHbkmxX3RDX9SAkKbv8sT3lkVcxTwgRl3I,5187 -faker/providers/address/zu_ZA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/__init__.py,sha256=ubRoF0eyMr-N6hdeuuvolUt9oLhU9Y9wYcD37ZduXIo,1961 -faker/providers/automotive/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/ar_BH/__init__.py,sha256=yHzypyOoVRxh-v5hsjC5ckEzXvB01v9DzxCpZ7BnBnE,275 -faker/providers/automotive/ar_BH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/ar_DZ/__init__.py,sha256=vo25IA_MGeaJIlP3z4CzquGIf-pcnZF6baZotYbYpGY,634 -faker/providers/automotive/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/ar_JO/__init__.py,sha256=qkPY4ELWlgMPz7YU_vTIiEjbxdnG0UXhK39BpfCU6ig,1567 -faker/providers/automotive/ar_JO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/ar_PS/__init__.py,sha256=AfNnOx0ryuw7NfMOrQV4i6ZhK2FRTDQ32I8lJKW_hCQ,1744 -faker/providers/automotive/ar_PS/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/ar_SA/__init__.py,sha256=uZrSoiKNH0I7MC_1siesa4gmXPlI5I8Tyzd1ete2nMc,2318 -faker/providers/automotive/ar_SA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/az_AZ/__init__.py,sha256=u7VpFWRaPj3tQtvsCQCOe115JYNb-xNmud9brzl-dOA,1774 -faker/providers/automotive/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/bn_BD/__init__.py,sha256=mMlQ3NyvlvL9V09L9MJ1jEE9AKytw9irWlST2FpJ15o,6333 -faker/providers/automotive/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/da_DK/__init__.py,sha256=NOdkFEwYyF--kYw3iLndzH46v1JcZbZ_rVLhKj7WkNk,270 -faker/providers/automotive/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/de_AT/__init__.py,sha256=n40mR9OuXYdmKmkzbi7W3ARRenttc42EPAF1OqCifUY,3036 -faker/providers/automotive/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/de_CH/__init__.py,sha256=xibm7fHr-60zuO80aS1BPHqeZMmQfO7_8uiYkAYQpeM,1151 -faker/providers/automotive/de_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/de_DE/__init__.py,sha256=_riKWlt1bowiytZeqRW_gMQzZEss1UbrJhqH6Ik1F20,6463 -faker/providers/automotive/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/el_GR/__init__.py,sha256=GUhLF6kdsh-98ZKY26SXUKqCy1lEXPbB7_gEnspo7pw,555 -faker/providers/automotive/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/en_CA/__init__.py,sha256=bamRz0hKMQT6NoIGEBY0OuS0Jek3huZxqLRhFoAcJPE,919 -faker/providers/automotive/en_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/en_GB/__init__.py,sha256=KpoS4sxYRSKvGYSxprydASLwyUFIygBQb-rSIGjtHjc,322 -faker/providers/automotive/en_GB/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/en_NZ/__init__.py,sha256=VswoVRAjPwO9KdDjr4h0OdEI9QPwjCgoLZpdkB8GmdU,640 -faker/providers/automotive/en_NZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/en_PH/__init__.py,sha256=qMj0yJPoS0Js_dyBedLIXnUpbSY39mE8pXYC_XuuFU0,2499 -faker/providers/automotive/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/en_US/__init__.py,sha256=ysnuyD-5muUYBc4jU1tlah6FHB5ZUlgH5W9Qhkmmgdk,3319 -faker/providers/automotive/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/es_AR/__init__.py,sha256=n9pIsp32_UF_8tcyikJCK9loDKbGmZgLMW2OxhODk7o,2385 -faker/providers/automotive/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/es_CL/__init__.py,sha256=BCrQCz9_H5PEsqsosNI-ygWm_pcq5WQ3WWorGI0_fHE,1965 -faker/providers/automotive/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/es_CO/__init__.py,sha256=TApDlBiGxFPasAUtChgTHR1lFMBqKBcRcF8u1W-XuHU,359 -faker/providers/automotive/es_CO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/es_ES/__init__.py,sha256=SsdM0PddoV8tFEod5r1MuIxAfu9ZJkjwRFkNXlaODY4,3915 -faker/providers/automotive/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/et_EE/__init__.py,sha256=rmhea7MB99a6z21sss5TJbpaiSDdqUdPeusTR2nJuIU,276 -faker/providers/automotive/et_EE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/fi_FI/__init__.py,sha256=DLapdfjW1rXCfxbWq8YAxXV7X4oysxGbqiz3l3z_q5w,276 -faker/providers/automotive/fi_FI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/fil_PH/__init__.py,sha256=6LBWn74jiG4aNiwPIj6NCPcU40NizkM_PYZkxH0_0rc,238 -faker/providers/automotive/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/fr_DZ/__init__.py,sha256=PTNvN-Ct9FTj8azxwDhaNwcViaKDxX3o6urqrnfcf4c,106 -faker/providers/automotive/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/fr_FR/__init__.py,sha256=ahuZA_1P51v70KLQToGowTfRzJAB3ErXOxBO508AklY,374 -faker/providers/automotive/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/he_IL/__init__.py,sha256=WgeTTWF3X7H5iQqq-zkC0bFbWmCzeKAPjRmwCaYMaXQ,321 -faker/providers/automotive/he_IL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/hu_HU/__init__.py,sha256=ZTFx_kboj39ldV4YghoWGTKn6n39EkZL9kG-kE2yXu8,277 -faker/providers/automotive/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/id_ID/__init__.py,sha256=DjLdAnKW5fqfN9hz0HVnFNLjrEMj_C6l1mmAA1lMgcI,349 -faker/providers/automotive/id_ID/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/it_IT/__init__.py,sha256=4xOHKjiqxrPvZ-9nXXj_AnJOMh6DF2fqngwIsdCIi14,312 -faker/providers/automotive/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/ja_JP/__init__.py,sha256=ZOoB1Tau6YjGC2cYeHf3VmPwgl6Tx6Z-DZwPPwBkR8c,2867 -faker/providers/automotive/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/ko_KR/__init__.py,sha256=P-wAQhDXPQPUyPZ_f1KzGnDPG2LchT0w8836yt5Q2TM,944 -faker/providers/automotive/ko_KR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/lt_LT/__init__.py,sha256=5BIZethC4BCQglEXuCFmVx00k4LEBwtnTbfexZ9OKRA,278 -faker/providers/automotive/lt_LT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/nl_BE/__init__.py,sha256=VRUXBk_xDmW7flYE1AeOQsWROo9h1i5imtnuFJO3Xqg,372 -faker/providers/automotive/nl_BE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/nl_NL/__init__.py,sha256=Lh75VW8Mk615jrBLWjFrXIAHcfpdYnvj30Lmo44LICk,2533 -faker/providers/automotive/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/no_NO/__init__.py,sha256=AEeuKSN_kW6KwJq62vB6NNZVanTFTHW35UA4g2aOWhc,316 -faker/providers/automotive/no_NO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/pl_PL/__init__.py,sha256=vdooUZ93xy4tpDATFKw44dlRmehCCumg0MmWXt2fw7g,1007 -faker/providers/automotive/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/pt_BR/__init__.py,sha256=yh_Uo2ofIfzGmAAF6XnLCdhdimXnS-9mKqmM-dHMCyg,183 -faker/providers/automotive/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/pt_PT/__init__.py,sha256=Zbc5O4yx2n9v0aN8EBRFu80ud94tQvMx7CiFXCG86d8,391 -faker/providers/automotive/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/ro_RO/__init__.py,sha256=wBp6H5YfUjIHLI2zZeAexfPLg2JbaK2LMYtvqSazVtI,1181 -faker/providers/automotive/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/ru_RU/__init__.py,sha256=Firj5uwhawFDhmj7ik2qgR0c0_EC-E1o18q6ay9KqiE,7827 -faker/providers/automotive/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/sk_SK/__init__.py,sha256=sUeJ8Ev3rsFgzjj_gJuFv_2gzQa60n484b3EVL1-61Q,2641 -faker/providers/automotive/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/sq_AL/__init__.py,sha256=2Tej6p6i1-OIB45uSohiGC7-Ky1yaEgBn2yaQ3Y4lzg,277 -faker/providers/automotive/sq_AL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/sv_SE/__init__.py,sha256=V3Sj71ponoYTOXtM1thv6e_Zg4QjhlmtVUYI7H9Tsck,428 -faker/providers/automotive/sv_SE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/th_TH/__init__.py,sha256=iy5Xymqb02ore2hDwpxkx5PewDDAi98JNYrcNqlscl8,948 -faker/providers/automotive/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/tl_PH/__init__.py,sha256=V-UfvbMzKpy3fC6gf6ZwWpbE2cADlsUjt9Pv1_ic2BA,237 -faker/providers/automotive/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/tr_TR/__init__.py,sha256=uuUZk-y_D8EYjRQYBkRMnQQgHlaNRiSGmbY27igahRw,868 -faker/providers/automotive/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/uk_UA/__init__.py,sha256=fygVigwYzxCUrZ-QVRdIBHpWlWeK6JwMbKwc8lJovcU,7286 -faker/providers/automotive/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/vi_VN/__init__.py,sha256=3fLN8pV8sn6-hkdtQxlLPYIN4CjAYPe2WR7Udaxe1k4,643 -faker/providers/automotive/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/zh_CN/__init__.py,sha256=_D_7JatNF2Cp4tekRv8sR3JH6gff2vTBb9sgKkKBEZM,966 -faker/providers/automotive/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/zh_TW/__init__.py,sha256=mwYvbc9X0XDU5vhfddRk0V0ZfZTdxfFlw__L5Pm7PL4,421 -faker/providers/automotive/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/__init__.py,sha256=kHGGC_vJhPyHHRZAxUQ-ReQbN_tNmE2UuYckCfvocWQ,6547 -faker/providers/bank/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/az_AZ/__init__.py,sha256=0ai3ei0DfLWyrMRgUE01t_ZTKNdRBHG2hp1K9pPKyh8,851 -faker/providers/bank/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/bn_BD/__init__.py,sha256=5lQcloufMBTfSbH4k8gLtuz29fTOu2gFmE3gXHL77b0,1831 -faker/providers/bank/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/cs_CZ/__init__.py,sha256=uKxJaluEfv0aJkNpBj6TMfGVFzHJc5Kd01oMt9xZdTQ,278 -faker/providers/bank/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/da_DK/__init__.py,sha256=Cn-vRxcEoY6_48YyLCDkr_W0j_IhI5ahT7oAEl9Lk_0,190 -faker/providers/bank/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/de_AT/__init__.py,sha256=DkZxopZLhkJET5Nx-qMW4-oBz9x8yf5EICMtOkiH264,190 -faker/providers/bank/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/de_CH/__init__.py,sha256=SRm4bFi5SegO7duMHSP8XSWSVdLu2cPxs_Stxc0s7oA,623 -faker/providers/bank/de_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/de_DE/__init__.py,sha256=DafW4SSvPywdjkvr5PENjdyTC6jNJpE8WH7-qiUFMSk,611 -faker/providers/bank/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/el_GR/__init__.py,sha256=KCAxndhBrQ-v02NmhFyjRBCNSdSg8OPn2YHPzmF1hz8,899 -faker/providers/bank/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/en_GB/__init__.py,sha256=eMa1JkjoMSmXzR01bjhlIztZy7anT3sZq9vgGxbNfkk,192 -faker/providers/bank/en_GB/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/en_IE/__init__.py,sha256=tCxqA11nlfEEe5MHlXXSSdO5HZsZUPUaKPYrYdQPQog,197 -faker/providers/bank/en_IE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/en_IN/__init__.py,sha256=IcqxtDWQteVleHI0TfL7fDM6kg49GiOFZZKb9PSjypc,1194 -faker/providers/bank/en_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/en_PH/__init__.py,sha256=j21k6onGOdOuhQTClEPse7MtYgyQiaHG_6VgQVe_Az8,2690 -faker/providers/bank/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/es_AR/__init__.py,sha256=p9_KvWhLi_jREpT_-IA4KRtr0WSKl_2j3cMsed9WHYI,1002 -faker/providers/bank/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/es_ES/__init__.py,sha256=5s0Wfqy3nF6sIP3NWCKpAyjcUuD9Ge5YgBsPVKbDZwA,194 -faker/providers/bank/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/es_MX/__init__.py,sha256=FGLTVSWUJXj75uBMrpDJJFoIfHBOWH_cEYP1nujPYXU,7830 -faker/providers/bank/es_MX/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/fa_IR/__init__.py,sha256=nvPI-nkIMAudoz0kCmHrY1vWKoBDkZU158TgZh1p06E,1700 -faker/providers/bank/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/fi_FI/__init__.py,sha256=ARB5AC5mNQWVPKEjE1O2ogDiznqGcMXA4JaUcBrCGVg,188 -faker/providers/bank/fi_FI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/fil_PH/__init__.py,sha256=jL38JArsznUIiT7yjm3exYbzVr5XpT-Pb1cIOBOu8Rs,220 -faker/providers/bank/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/fr_CH/__init__.py,sha256=GZdZnwswJgaZ4pQeqp3Wgt2baFysSwhORqV9kMb8FXY,219 -faker/providers/bank/fr_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/fr_FR/__init__.py,sha256=bV3YpZVL6Q-9v5CQDk9QxE1ycTne8lG4RKqZpTW8_xQ,197 -faker/providers/bank/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/it_CH/__init__.py,sha256=VN9zfcAdGXO6yUVahVs1ngUnoNGjGX1GRtde1EV7wlE,219 -faker/providers/bank/it_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/it_IT/__init__.py,sha256=UkyLHp9pNCFMZxhCpaYtUjKAK8p1FMcM-wsGxwam8qQ,197 -faker/providers/bank/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/nl_BE/__init__.py,sha256=ptQRg1LU0DunPNu-vNkdk4odB8vNCGFAh5zLuFEWtwo,2443 -faker/providers/bank/nl_BE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/nl_NL/__init__.py,sha256=E2WuR7_ukH0BHWwEiwEwsb0HjqBgEoWs85xbahFQLWs,188 -faker/providers/bank/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/no_NO/__init__.py,sha256=8vuUWSHL0HtL1XiaVUk9zRWTfBclu8tRpuj1kz--OZk,185 -faker/providers/bank/no_NO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/pl_PL/__init__.py,sha256=OC4m6gevUZtwLKWS16zpz19IDcDdDamEFAYkPFai0Wk,180 -faker/providers/bank/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/pt_PT/__init__.py,sha256=1s28h9Ry_DRAkHLlks51JgnuydcbphX2CYUGg3WqrLE,195 -faker/providers/bank/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/ro_RO/__init__.py,sha256=XUdb4-_DS8j25fjCtVlJ3Ee1pMro3q4hgboGmt4YTrM,883 -faker/providers/bank/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/ru_RU/__init__.py,sha256=YPLcIqs1d4qN4EB884_epS9ciKrR2V6v4EVYAHRHTvU,21715 -faker/providers/bank/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/sk_SK/__init__.py,sha256=EllC_qC_8QJJaWXmvr0cFEpsP9y28h9tfUEHveL-4pg,278 -faker/providers/bank/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/th_TH/__init__.py,sha256=n-hAR_AbCwQTo3laH8TwAe2lWmSsT79gDYc0HatNV3k,1059 -faker/providers/bank/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/tl_PH/__init__.py,sha256=9uJTBUjRZ2qwMsCKC4yicrPRAOxF3p_3rdKzIVNCUNs,219 -faker/providers/bank/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/tr_TR/__init__.py,sha256=IryjWWhyYj2UxBZ4uE66OMN0SOPt6JlkgUri43fQJUw,196 -faker/providers/bank/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/uk_UA/__init__.py,sha256=vCK0EYZ9j-EcCjLyhsOsZZOv81_bINW_UpA1EcNn3pc,2834 -faker/providers/bank/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/zh_CN/__init__.py,sha256=1pMTL0s4mAm5PWYKyS6Le3BquWfBDAZN6e7rsvghEcw,860 -faker/providers/bank/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/barcode/__init__.py,sha256=f05YFJ9f4HwkcS8DtePRNYdymtZXPJQPRaFaQsiYOBM,4001 -faker/providers/barcode/__pycache__/__init__.cpython-312.pyc,, -faker/providers/barcode/en_CA/__init__.py,sha256=erVdFjJHtGO8PindGu4tMp3gDFxAynHNXo3EpkGNBnc,664 -faker/providers/barcode/en_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/barcode/en_US/__init__.py,sha256=Pm1GLMKpsczLWMmFcGdvx9bXmnomb0hOOjEAhXCu6Js,11356 -faker/providers/barcode/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/barcode/es_ES/__init__.py,sha256=yFPm-ibaihF3INNd2vBY-Dty2opiD68YLxDiYwwAwMc,244 -faker/providers/barcode/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/barcode/fr_CA/__init__.py,sha256=b3TOrqO5VFLkbL7n1KCKLiGSlNSIvssl2opJ14uurww,217 -faker/providers/barcode/fr_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/barcode/ja_JP/__init__.py,sha256=cWO4SzSwY22xPjNa6IucoYbkYL3U_u-WZTSLRz6m_S8,1476 -faker/providers/barcode/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/__init__.py,sha256=TA9MJa-LbQ2u1jgF5mkpjCCK9Sh-cFw7C-30IBTQHnQ,11112 -faker/providers/color/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/__pycache__/color.cpython-312.pyc,, -faker/providers/color/ar_PS/__init__.py,sha256=WXKqwIAiBVE6ZolTwuTi36ANQWzX_FHzhWyNKQil828,7143 -faker/providers/color/ar_PS/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/az_AZ/__init__.py,sha256=QT6B7sv_w6RNL9tWelU4J4J8ZP59Hub0D9yP0PJj4I8,2134 -faker/providers/color/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/bg_BG/__init__.py,sha256=N8FGk5VdUwFAoBOgNVexKJ-wBrK16LqGuaodF1IjBLo,3337 -faker/providers/color/bg_BG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/bn_BD/__init__.py,sha256=J1xnkLbJU_UI8ZRxlIL-u1sZldtmVRwgOCtwJUQ1ExE,9083 -faker/providers/color/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/color.py,sha256=lSJSmGw5MKNTu7Az-Mh4-4AWLGIkCM_W0L8kxGEXzAE,11792 -faker/providers/color/cs_CZ/__init__.py,sha256=c-8AVmYSV7M29aXletF0RFNNFhLm8qv1nf8lo4_Pepk,473 -faker/providers/color/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/da_DK/__init__.py,sha256=InG9KTOnHPfVnJzvWgN-H6YIt-__87ozzMW_79Utvdo,12725 -faker/providers/color/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/de/__init__.py,sha256=y2_uKjz0zE97RoytkEVbWqYarM2Y0er_bI1PSCZ2c2U,5911 -faker/providers/color/de/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/de_AT/__init__.py,sha256=Fj3Uik-7u7A6Ivs1ZblyZodVnvl0_RX5442RF-yhejY,83 -faker/providers/color/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/de_CH/__init__.py,sha256=3cyS0B_6fz65ZvS6L7dJXRuBl5lCY3rQ-RjGVOek-uo,337 -faker/providers/color/de_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/de_DE/__init__.py,sha256=Fj3Uik-7u7A6Ivs1ZblyZodVnvl0_RX5442RF-yhejY,83 -faker/providers/color/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/el_GR/__init__.py,sha256=Dme1-CDdLB6IfMAzYDKNkC3E7Xu6WgMETB1uUHlP35s,4247 -faker/providers/color/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/en_US/__init__.py,sha256=y1eCtGx6f7L22LkQD9c8UGReEDfpg3EeRXGx6ZrDdeY,141 -faker/providers/color/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/es/__init__.py,sha256=KI_tmNHBUTsS3R4iCzvVN3ASJoi-eBf-tbsWasrZvn4,6199 -faker/providers/color/es/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/es_CL/__init__.py,sha256=3_4HsuiFHDOY5W5oguzCxV8Qz_V6WsV2v8T1q9j4Kdk,103 -faker/providers/color/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/es_ES/__init__.py,sha256=3_4HsuiFHDOY5W5oguzCxV8Qz_V6WsV2v8T1q9j4Kdk,103 -faker/providers/color/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/fa_IR/__init__.py,sha256=1M1PGfsBQmzML6kM5ZRaXJUhclqzvPO7dJG3rjHnXgw,7079 -faker/providers/color/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/fr_FR/__init__.py,sha256=DwC9MaUXNPR43iEQ7NZCiOREhKV1ddofA58yeo9DGmg,6038 -faker/providers/color/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/he_IL/__init__.py,sha256=LeQIeVUJmGOaqFBWXhG_mg1dtrXoczzpxlZ_aw_vKCU,1729 -faker/providers/color/he_IL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/hr_HR/__init__.py,sha256=ILoGJu8zI0cVtKB4uVQYLzQh4gbqCRseLo003zX6R_U,6323 -faker/providers/color/hr_HR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/hu_HU/__init__.py,sha256=wzYIJZwJGAuEmEiizPJLpfpdZTcaGMmA_T8Lw_hU_Gg,444 -faker/providers/color/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/hy_AM/__init__.py,sha256=8yHpVmgXtLsi-uWMlDxKpdkGhix_vcJOlTpZ2vW67HA,8297 -faker/providers/color/hy_AM/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/id_ID/__init__.py,sha256=XYsRfKRPAt7KJltDnt2tymweWurxlbhA9b_qjGOVVvA,1497 -faker/providers/color/id_ID/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/ka_GE/__init__.py,sha256=Js-b4RKO5zKvt5frMPHIWAlmvEwr9YINBZvToPle2OY,4591 -faker/providers/color/ka_GE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/pt_BR/__init__.py,sha256=9FldahHf-5tJukZZDQyj2pLBlzlADS4bKXuimvsS3og,9674 -faker/providers/color/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/ru_RU/__init__.py,sha256=rHEWrwQKxtHXsUlzZPC64OEV9K91An9m8XCQDI_t9gA,3402 -faker/providers/color/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/sk_SK/__init__.py,sha256=eQgcZ0Q0LnKtgu2kmlTko8Q0TgHNhoREV-CcNswAtyQ,469 -faker/providers/color/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/th_TH/__init__.py,sha256=JamKbNLRCvflxeRM9GolpJh8oRDHr-RPFKUuOGq37DQ,1660 -faker/providers/color/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/uk_UA/__init__.py,sha256=_tt8ylj80cBkKG32jjpyq3QdgDwprqPkpfgARbUxW90,11365 -faker/providers/color/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/uz_UZ/__init__.py,sha256=cY_Ldl65-4KHLavbDXBbLwAC3ddV8RbKlZ6tP60RlFI,1942 -faker/providers/color/uz_UZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/vi_VN/__init__.py,sha256=UMfFRU7TUIRQmtDD9ofjtZsKUmsJPI3neQ8robMifR8,2856 -faker/providers/color/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/__init__.py,sha256=iXxsseYVhNLydh_oWbxbVNRsDqLYg17BjsbynblLU8o,13671 -faker/providers/company/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/ar_DZ/__init__.py,sha256=L3Du1LcgAheMoxZDefuR7PBX1oSBL_nTHqaGVR1SJ5g,2123 -faker/providers/company/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/az_AZ/__init__.py,sha256=WzsWWaygejusXA9KbHPqVTpzHuCHfyXWGBI7jCSBCQc,1281 -faker/providers/company/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/bg_BG/__init__.py,sha256=ci4eH0jgygf5fm6wu4Uo73jIezlLCJczm6DKn_NJCC8,552 -faker/providers/company/bg_BG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/bn_BD/__init__.py,sha256=et28OebIYjXEO5sd0KHyaOz-BQAPz7TsyZsdoMO0MNA,30242 -faker/providers/company/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/cs_CZ/__init__.py,sha256=BYHBFwrAn0Dh8f-QwyOlNZZCmNLWKc_61UpR04R9CAU,441 -faker/providers/company/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/da_DK/__init__.py,sha256=LOTHenSq7saJIpZEWn1Ajs0q1qEtQHoxU8IU4o5_WWA,317 -faker/providers/company/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/de_AT/__init__.py,sha256=HgP4Br8hjQtCpzmpYipkR33w7aT1adrWKHBXnvASynI,556 -faker/providers/company/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/de_CH/__init__.py,sha256=BqR1GdT1jpEUtSsgQ5W5oQz2WRVc2w4fYpbGAvkWL64,473 -faker/providers/company/de_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/de_DE/__init__.py,sha256=KZ0ZLA8f2O6O351EArd_JBWsyZJxpsP1-dbLVTsHTa8,753 -faker/providers/company/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/el_GR/__init__.py,sha256=WKAb0hIZr_pvTp1R_SlL6pRSrkmP1emmIIQ2we73M6I,423 -faker/providers/company/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/en_PH/__init__.py,sha256=9gu3Sm7awlo7dNmswv_1jLEJWIk3YTrY00mhZToIFDs,3694 -faker/providers/company/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/en_US/__init__.py,sha256=8iajs1xeJO31A4EIkZifNcDFyg9MbwBvnA6SWeY9Ioc,87 -faker/providers/company/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/es_CL/__init__.py,sha256=gnZag_GpMCeDfhM3RZrweTLJi9TEM-as_1Bpsqs-JBw,11630 -faker/providers/company/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/es_ES/__init__.py,sha256=tsAHJ8ytx3faQX-pd29FYRB-SPp98hTsREHZTDzGwrk,3469 -faker/providers/company/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/es_MX/__init__.py,sha256=DSN49wz33COso-nXYjy0eR4vLlRuq-EP6FZ636h7FSk,11497 -faker/providers/company/es_MX/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/fa_IR/__init__.py,sha256=9lCrhcHZSANKnzyR4tuuAAcdlPlCJHAiP7mYvrqrBxY,49815 -faker/providers/company/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/fi_FI/__init__.py,sha256=MqAMX5DoIzw-fY7lWT2-B0XvAkEETqXAHZvegRNm5uM,2067 -faker/providers/company/fi_FI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/fil_PH/__init__.py,sha256=N1ZROkDmaRqTRjVIDaOyXNtHIfL6Qe8cBo5PTytnSuk,2750 -faker/providers/company/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/fr_CH/__init__.py,sha256=s6ZvVXct0BGrg01W1WyYgLP0-4M6krJ98ORYddX6NRA,1313 -faker/providers/company/fr_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/fr_DZ/__init__.py,sha256=ROEze0NVEJwAfq_-NnE21LzaKIA0_l3uICJDMJOs-Yw,2156 -faker/providers/company/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/fr_FR/__init__.py,sha256=KhQBmb7ja5W4VmvV7JnrGh-1lwnWDD873liVtCubTmg,23581 -faker/providers/company/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/hr_HR/__init__.py,sha256=r6ISf02XRoqAzJUSbhyuLwYqzYag80Yhc22si3B7Zug,313 -faker/providers/company/hr_HR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/hu_HU/__init__.py,sha256=cpFAvPErWL_xfr_XEySrsCDxUx27ZWdM_qFqu5HMAD8,488 -faker/providers/company/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/hy_AM/__init__.py,sha256=tLL6BpCusHM9Aed5L8pSnTv_jR-DMZljhLkJMu2D6ck,9890 -faker/providers/company/hy_AM/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/id_ID/__init__.py,sha256=QwAqM5itG2IGO8mW_fpiZtU3Z0z17jgSOfvjfEfrxtw,933 -faker/providers/company/id_ID/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/it_IT/__init__.py,sha256=GH0SZFEWtYTYZnvbh9hCMwV1V5RWNI3OPoeghCtr6KA,9716 -faker/providers/company/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/ja_JP/__init__.py,sha256=SsVIVo1zPSyWTf8gjJZLXHkJ9tSjHuLvxf6NhTBc7s4,762 -faker/providers/company/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/ko_KR/__init__.py,sha256=CY-ifTaJys2clOIqp9IfAo6ACqFWrhs0yRrtx6DojR4,11650 -faker/providers/company/ko_KR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/nl_BE/__init__.py,sha256=8Q7Uu5BfCs86O2vc1QBAbLEEAWMtkwkG-_mcOnCR114,336 -faker/providers/company/nl_BE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/nl_NL/__init__.py,sha256=HsZPxJEieU4PbCSfyYMc5J4MxPTvSUIBFQg-tPZ4fZQ,11853 -faker/providers/company/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/no_NO/__init__.py,sha256=WUTr2LIwaNzxFWpfe8RMrB5W-OSK-kSoaKDpNyG9J5U,534 -faker/providers/company/no_NO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/pl_PL/__init__.py,sha256=b47P2tlF_r3jX68KevtdlA3YmmA9eatoZ5UVvh9Yh-8,3911 -faker/providers/company/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/pt_BR/__init__.py,sha256=0uDZMB_yfmb1rNWqz5ogNifNbKvg8pWJlhYBTo0s8S8,2973 -faker/providers/company/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/pt_PT/__init__.py,sha256=GjPDmeSDgRwQ64FUU_iQ1dmzJyUpfeT6Ch6h6gIos_A,1198 -faker/providers/company/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/ro_RO/__init__.py,sha256=GQj6htJb_7_XHrQzmgOTXfuOTJZd0NVto9CH2LGnSUw,687 -faker/providers/company/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/ru_RU/__init__.py,sha256=jOt7XKG4baUbDbNsj6qIl4IlY0j7GlM4GLMPDDDTw2I,45516 -faker/providers/company/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/sk_SK/__init__.py,sha256=5zkJHh6tZUyutMiLXMoM5F9zI0mpBJ2o7fn5yq-g_EQ,327 -faker/providers/company/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/sl_SI/__init__.py,sha256=iw63b_ao5ectil-gJxk1s4Gt-CkNnxG69tg4iVvhE44,255 -faker/providers/company/sl_SI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/sv_SE/__init__.py,sha256=lWvKROauIIHVQPZapk2tVbeXZAZ0QKyc0oKCBRmIa_g,322 -faker/providers/company/sv_SE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/th_TH/__init__.py,sha256=fKUVsseG_0neoz0s1SXZBeM4KxGzinUcUjVNHLRKrk8,4173 -faker/providers/company/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/tl_PH/__init__.py,sha256=HDkU8zEC6SQ0gTPHk8flWygcQMr0gKGrbGUCHp9Tocg,154 -faker/providers/company/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/tr_TR/__init__.py,sha256=ghec8zgjAMFPUPKBAIQ0VIGY8GDwyPb4xoEvKNQNGls,3430 -faker/providers/company/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/vi_VN/__init__.py,sha256=JKi-qv5m3Pg4FZSRDmCirMLoJ8oXTOa78HO4ymSN0v0,765 -faker/providers/company/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/zh_CN/__init__.py,sha256=Jox2uuzDjowxqO9MX7JFDP5icPqp6qnCza2n2xgQvTo,2164 -faker/providers/company/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/zh_TW/__init__.py,sha256=5CSx0-bmlTcvR9RHN3cmorH99ji5oA76EM-XOd6AsoY,3054 -faker/providers/company/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/credit_card/__init__.py,sha256=K2I-oNelv1ui6qtfLPdRmntgMvZ3wjJF7T6f2KHGH9k,6740 -faker/providers/credit_card/__pycache__/__init__.cpython-312.pyc,, -faker/providers/credit_card/en_US/__init__.py,sha256=FXWtulWlWrlsWdYCtEugki5iRjbPP2O7Kgd7X-xFsbY,157 -faker/providers/credit_card/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/credit_card/fa_IR/__init__.py,sha256=Riz5XMluVrxwdUpAPijWxlfvLVfR6f5xmlfklN5nq_Q,5201 -faker/providers/credit_card/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/credit_card/pt_PT/__init__.py,sha256=lmA0qwvM1FbWpG_x_gwfre4uvfWb0wVHcbc121OSgKY,5682 -faker/providers/credit_card/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/credit_card/ru_RU/__init__.py,sha256=nh2wkhsVgCR_U_kw6pN3QsSCEuRwW1blHrVasWqctbo,3177 -faker/providers/credit_card/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/credit_card/uk_UA/__init__.py,sha256=HlNRX7RxwndyKvBVRYAKIFIgqPDw7jpFyW4m3O1p_1U,2117 -faker/providers/credit_card/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/credit_card/zh_CN/__init__.py,sha256=ps643vMuSZvdFjFvF2h8hLT_dIoEyYy0UtSxa87ESDk,1481 -faker/providers/credit_card/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/__init__.py,sha256=VY7pFD_zLQioy95Q_jjSz242Yt6ggeG2kA7_z6gZAYA,12829 -faker/providers/currency/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/ar_DZ/__init__.py,sha256=FsX8WmosTnPyx7BpN1DSDlcApySoEWBGPij4QvQXY8U,350 -faker/providers/currency/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/az_AZ/__init__.py,sha256=6u_oGstZ3t9y8f3zJ1TbZS1ymZq5O3sjVF_TAvMWHC4,6635 -faker/providers/currency/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/bn_BD/__init__.py,sha256=_6iD5g_9CRRczvEhAPxdKd5cgqEBW1t799Ad_f6GUNs,13781 -faker/providers/currency/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/cs_CZ/__init__.py,sha256=NAg3vl7sjjbzuqc79TG8c8jFcLraCJSUlYhJiliNog4,281 -faker/providers/currency/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/da_DK/__init__.py,sha256=GRcoW3ei7riNavee21WcMY53fD3P6cVJI0Jw8WuS2vw,257 -faker/providers/currency/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/de/__init__.py,sha256=lS85cQ_5SaTpjMwVMs-RQrp9vZDswtxfx4k5RT_hI98,6487 -faker/providers/currency/de/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/de_AT/__init__.py,sha256=qAayEKuDNSml_486fEyRYN2B9CxgBwzPWn10PS6s8kI,293 -faker/providers/currency/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/de_CH/__init__.py,sha256=dn3Z8k2QTgvtqytmeif2rHDkRhZsw8lCJeR6enprv8o,388 -faker/providers/currency/de_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/de_DE/__init__.py,sha256=38rHWMdJgT-6s8GDcOqmiI9OKMLacglCBEDRphbRvjw,286 -faker/providers/currency/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/el_GR/__init__.py,sha256=SFYMppphJGlQQtqfs6loqNTdFSfwu-tEwU8vJNQszgk,7622 -faker/providers/currency/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/en_AU/__init__.py,sha256=zXE-0gbMfKt_qkNdzmFsxsHWqBuRzmvtDl6CJ_67ouE,279 -faker/providers/currency/en_AU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/en_CA/__init__.py,sha256=6uy1HfJC_ymWOPBLqLLZl2qIvkUjl2JBND58RhQCVQY,272 -faker/providers/currency/en_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/en_US/__init__.py,sha256=nFcnjtAfq_3Nsko7cicJ8HiktSqo0hLOj4oVM0zv9Kk,261 -faker/providers/currency/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/es/__init__.py,sha256=2sfABTGGXzDtd4oa7cYZf-4yvtLOsNZkrQKhM_lTri0,6081 -faker/providers/currency/es/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/es_AR/__init__.py,sha256=OZpLLjvnUNpcB49RZrslsPDGp5ANly4sFPzdYv5d8YY,281 -faker/providers/currency/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/es_CL/__init__.py,sha256=gD_mSMb5EeOAIRx5Qk2B_782EW2WMGoliyeU6W0a2uo,304 -faker/providers/currency/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/es_ES/__init__.py,sha256=KiXwgmg2uYhAzXeZ8YuXWB5OuFXYTxadoeJE1DyuV1s,293 -faker/providers/currency/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/fa_IR/__init__.py,sha256=gQvrUg1jxLYX9jgCr5VNxzZdPUE4WR9c6-I9M7Agb98,292 -faker/providers/currency/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/fr_CA/__init__.py,sha256=pWn-E0fLVmRW_s-Rq_MP_BYiON7RMxQLqIZuNsWq4sY,279 -faker/providers/currency/fr_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/fr_DZ/__init__.py,sha256=uJIzpZDvopdmYegYvCzFhVHeLX2cXUDo9nSHh_festM,344 -faker/providers/currency/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/fr_FR/__init__.py,sha256=BORQRWKUqIwinx0syv9gsZ9Kkim2HhRWxaT3yl-qELk,284 -faker/providers/currency/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/it_IT/__init__.py,sha256=BORQRWKUqIwinx0syv9gsZ9Kkim2HhRWxaT3yl-qELk,284 -faker/providers/currency/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/ng_NG/__init__.py,sha256=ehQnZc5SFnBG687FZXzJ3-mRbXQ0uuwyjDrD0clGKAo,284 -faker/providers/currency/ng_NG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/nl_NL/__init__.py,sha256=RQb3H_n6LwoFbYGpBZxNncaI4LaZkqFmRbwAaOVFdBE,295 -faker/providers/currency/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/pl_PL/__init__.py,sha256=e-WooRT4BFVmFaIuqXI7CgccdXEtKSXxOAXcUtVzF4I,281 -faker/providers/currency/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/pt_BR/__init__.py,sha256=QMPCjxJ0AitF8eq4gzuUtwE6fdmNcvDMoUeazUY1Mlo,262 -faker/providers/currency/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/ro_RO/__init__.py,sha256=nz-yfcaRANHN_qGJ9hcYTcBOwugGKVmuTx4Wvwg_KDc,281 -faker/providers/currency/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/ru_RU/__init__.py,sha256=4iBVKnTTeIC23Y_jJplkuerzJpJZhQCIFNk_MCor9nM,8246 -faker/providers/currency/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/sk_SK/__init__.py,sha256=BORQRWKUqIwinx0syv9gsZ9Kkim2HhRWxaT3yl-qELk,284 -faker/providers/currency/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/sv_SE/__init__.py,sha256=vg9F4IMCGU95laSZGWzyxO5Tx5drubOjxFxjWnNwaRs,5844 -faker/providers/currency/sv_SE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/th_TH/__init__.py,sha256=pnb7pwvGHTZ_oW1aQO0d8EREwYRuvtrQgA62-TJkluw,10596 -faker/providers/currency/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/tr_TR/__init__.py,sha256=ghzNicez5muamsOmGz5P84dTjUQo75AhFb3XBoyKUJc,264 -faker/providers/currency/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/uk_UA/__init__.py,sha256=YwOtdG9wofiA1FH4zj2FipHqJh6Hh5gW3ay3F7ryaN0,9416 -faker/providers/currency/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/uz_UZ/__init__.py,sha256=phZyPygqSHCaotGbv0tmqgUw0Pyk-UM60TWopHcDKmI,5894 -faker/providers/currency/uz_UZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/vi_VN/__init__.py,sha256=Gi5kD45wyRU9z--BJ9rzMSj2Htkim92VO3o1nFWW5h0,433 -faker/providers/currency/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/__init__.py,sha256=CDU-56OS9t8zh1-ZjvnoM3JTDCeF5pQh8TQI3i5Ya7s,83591 -faker/providers/date_time/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/ar_AA/__init__.py,sha256=WSXgTmWdWVaaViuf__gDTGTyO8Dob5ZR4m-eNWjZ7zc,59445 -faker/providers/date_time/ar_AA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/ar_DZ/__init__.py,sha256=j8XqPAL-Odp6WIzou27R1NkgiVE-jk2cebR-t5y7FQo,525 -faker/providers/date_time/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/ar_EG/__init__.py,sha256=FJexLchCVyc2vXZTn3L5jtmMACSRVzhgcZD_phM5VTI,465 -faker/providers/date_time/ar_EG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/az_AZ/__init__.py,sha256=AmAeTXwhcjUoTOcDieq3paLdSt8iM2FpOH5YZtPcxcc,803 -faker/providers/date_time/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/bn_BD/__init__.py,sha256=rY9w05ZXFymZ-UWBAeCJvkGi0fI4eu4SHhGZ-V4FzgE,70951 -faker/providers/date_time/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/cs_CZ/__init__.py,sha256=KeHYX3xJ_1rNYxQZw0GS9NCCEPIuGMXwfMRwDJ-adxM,784 -faker/providers/date_time/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/da_DK/__init__.py,sha256=s27sDoJVJv8Z3z7YlGr7mzwhFkLJo9_YlNELsObrXzQ,773 -faker/providers/date_time/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/de_AT/__init__.py,sha256=NtjN70O6xX6jR4YcA1UPNKSSzNc3vgMlHAtQRecEubM,780 -faker/providers/date_time/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/de_DE/__init__.py,sha256=jVo-7bIDmu2L-qoqn9urwmy_rqrwerg18rI9Mcwwtjg,779 -faker/providers/date_time/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/el_GR/__init__.py,sha256=RcEQm7UHFBtgGBfFEjBIKWE3rKYjDVH84qPM3GYxePc,956 -faker/providers/date_time/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/en_PH/__init__.py,sha256=3x1DLhizbJsjJEliOABsZ5RVdbANBY6ODeZxzFIzLME,144 -faker/providers/date_time/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/en_US/__init__.py,sha256=NGaWjgCkr-Ae3_DkERfa4tWtJipCiySJXcyE3nBfBcg,89 -faker/providers/date_time/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/es/__init__.py,sha256=0Jdfn_m9ZGZgwsVIttOvWsZ71mBTuoEDrQZxRQuUCPU,779 -faker/providers/date_time/es/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/es_AR/__init__.py,sha256=2OZ8pheot7Iuk3zMoCcorO1QN7X9ibTjWPw0EVhlRG0,91 -faker/providers/date_time/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/es_CL/__init__.py,sha256=2OZ8pheot7Iuk3zMoCcorO1QN7X9ibTjWPw0EVhlRG0,91 -faker/providers/date_time/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/es_ES/__init__.py,sha256=2OZ8pheot7Iuk3zMoCcorO1QN7X9ibTjWPw0EVhlRG0,91 -faker/providers/date_time/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/fil_PH/__init__.py,sha256=rACylLm3Bh_8Np2MQkkPRVtkmZ7G7-uZSx3NT23tgLE,829 -faker/providers/date_time/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/fr_CA/__init__.py,sha256=WaGDKJOi2Kl9IuNV2QgYZKTd0gHZxmzit7YxQv2FQ_Q,202 -faker/providers/date_time/fr_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/fr_DZ/__init__.py,sha256=m-ajiFjdGmtl4soR28gZIqYs_op8x49vPk52F5Zlxlw,88 -faker/providers/date_time/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/fr_FR/__init__.py,sha256=F7aEopTRf63evS5ffH7EgjOwzJS_t3HGyHGkSnbP7N4,788 -faker/providers/date_time/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/gu_IN/__init__.py,sha256=XZL2-aZP-WOkBTl1Fuwq3dGbi-XIvq_cxaIfHOW568s,1959 -faker/providers/date_time/gu_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/hi_IN/__init__.py,sha256=nA28FPNJh2mCMYBKScge5RV327elj0mRxVeIkuW66pg,1065 -faker/providers/date_time/hi_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/hr_HR/__init__.py,sha256=tZ2QgF2fTRMdSpm6TxnoggYPKzf-Kn7GfWdoouuXC5I,885 -faker/providers/date_time/hr_HR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/hu_HU/__init__.py,sha256=lpcm1K62j6Yf_3WtzgYf0PpPfy1pxQlxTthbMdIXTSo,894 -faker/providers/date_time/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/hy_AM/__init__.py,sha256=ZM7e8RDIa0CNrS9hoBkfCbObrPpFnKQlrIWIeUEi4jg,928 -faker/providers/date_time/hy_AM/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/id_ID/__init__.py,sha256=ctNNZLNtOORLBVG1OwPEmwqjhXrPDcD-3inYa0GDzPk,861 -faker/providers/date_time/id_ID/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/it_IT/__init__.py,sha256=_u4qifuTEZWcRMjUml0aFalz6TRiyt8QOGeayXvExSU,791 -faker/providers/date_time/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/ja_JP/__init__.py,sha256=GDo1NzA7miIX3kiZGrPWnPVtREfpDWCemPt6tVaymA4,1267 -faker/providers/date_time/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/ka_GE/__init__.py,sha256=N_XfPvQLYZpt2wEa7aUTN35e3ME68vqMtQImSPo4vj8,1121 -faker/providers/date_time/ka_GE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/ko_KR/__init__.py,sha256=6fNHRCg496H8xhb9CrivvjJAwEG_HVdvpWWRA9ufd2o,862 -faker/providers/date_time/ko_KR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/nl_NL/__init__.py,sha256=yQLP1CU8zO2u8x0z-GI1KpYcynvl3YCMyullvyGnPY4,782 -faker/providers/date_time/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/no_NO/__init__.py,sha256=Gl-SDZx_kiE-x4XsFO2JP1YuS15FZg6YzBrV7aw4s0k,784 -faker/providers/date_time/no_NO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/pl_PL/__init__.py,sha256=N3gf2pTZN1vEtx0dzY-MKQXFLUCE4FPJPvJRqbjRrPo,800 -faker/providers/date_time/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/pt_BR/__init__.py,sha256=ZAa9y4h8Q52bE4fBKHE2DK_kRQh2UTXzC5ev3N4h-os,806 -faker/providers/date_time/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/pt_PT/__init__.py,sha256=ZAa9y4h8Q52bE4fBKHE2DK_kRQh2UTXzC5ev3N4h-os,806 -faker/providers/date_time/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/ro_RO/__init__.py,sha256=rQNX_dzvGLdGXfj_H7uRneqEvhZ1X4eCngyqhIo2TAA,781 -faker/providers/date_time/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/ru_RU/__init__.py,sha256=lh8U21Ja3q2slxRYgrR3PZBHZXl9WikeJdPDEIsrjG8,53526 -faker/providers/date_time/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/sk_SK/__init__.py,sha256=-N2B_H9Db0ceyXcKaymgvYeAov4fg6O3LzsGZiFeHW0,778 -faker/providers/date_time/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/sl_SI/__init__.py,sha256=OxbirXD_uNkunM29lOBMB6eENLMP9drlO7adVfOlbl4,788 -faker/providers/date_time/sl_SI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/ta_IN/__init__.py,sha256=q7fc51j9kQFcUL19_Fhm1GqjO5FurgZF6MKrhjvOwdg,1079 -faker/providers/date_time/ta_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/th_TH/__init__.py,sha256=OSxiwp7qpdt3fsfrauFfJ6cwlIKh4HMts7xynvP59D4,12305 -faker/providers/date_time/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/tl_PH/__init__.py,sha256=M2YFecTd0Yft1z5XQMJRf1hw2cfOnyc36izu99W9o8I,155 -faker/providers/date_time/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/tr_TR/__init__.py,sha256=iCZn6OskbNHjZcgKVR42pnN_LYUGoyj39GrHq_IrpKU,774 -faker/providers/date_time/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/uz_UZ/__init__.py,sha256=TEPfcSdQJ8SRo0b17_r3b8szZDCxNYQu1fTZxCkQzwg,785 -faker/providers/date_time/uz_UZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/vi_VN/__init__.py,sha256=6u-VRRQMb-0ikB-BvcNfXmNEWiZLotmLmJFyJ3-RfYg,1013 -faker/providers/date_time/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/zh_CN/__init__.py,sha256=wYku9jvwDYZjGpXsDV6ipk-5ou0gJE39mtTALxWCvW8,808 -faker/providers/date_time/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/zh_TW/__init__.py,sha256=E6cVXh5kRsLnuSGOBmh1Cg13T0Hh3RcrdTzmPMhOa_4,907 -faker/providers/date_time/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/doi/__init__.py,sha256=zzd9vE8os3JOXVDqtCG9IBOErNGHujjJjLinuwaXp9M,635 -faker/providers/doi/__pycache__/__init__.cpython-312.pyc,, -faker/providers/emoji/__init__.py,sha256=hee8d26n-91qy_KfTS3G5d_3ZDmbAd7GTLhEBoECH3k,79724 -faker/providers/emoji/__pycache__/__init__.cpython-312.pyc,, -faker/providers/emoji/en_US/__init__.py,sha256=0zdt4YtCNlIn54Bi-XrIxoq8R2KixE-MJLfs0fJtazU,83 -faker/providers/emoji/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/file/__init__.py,sha256=97cg_0T3iC6DOPXX9My3-R6LBbKPq65koCdYOnQvjEg,14898 -faker/providers/file/__pycache__/__init__.cpython-312.pyc,, -faker/providers/file/en_US/__init__.py,sha256=UYkUQfPQkwJR5RBve6PBNFkXmvVgIIcW7cefOXShkSs,81 -faker/providers/file/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/__init__.py,sha256=93Qq_OTbmQ0AFfv13AvMCHaBu2ugnQ6CImdCA_bhHa0,71543 -faker/providers/geo/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/ar_DZ/__init__.py,sha256=4ycl5eRYqLwN1zRFJick2ZUiV-0iQPOiMK8BJiW1Xj4,2794 -faker/providers/geo/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/bn_BD/__init__.py,sha256=31RRk_iECYLCitwqBj8_T5nKScSj7Y-MwiDXbFQgZV8,113248 -faker/providers/geo/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/cs_CZ/__init__.py,sha256=asvcqn3vFG846ynQEP8VOGlL9Sw_IxYI8vleBtOFIWU,11643 -faker/providers/geo/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/de_AT/__init__.py,sha256=hWfVqwf_LmqXUjabvYA00Vat3ofhLXCZXpkkJqUlea0,299 -faker/providers/geo/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/el_GR/__init__.py,sha256=j3PEREcggYq2qfxG3vGlFAFq9es0DrYmlsBpTLvrU7A,966 -faker/providers/geo/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/en_IE/__init__.py,sha256=1ZAM3et5j3iBllNI5H4RjmycOcVNCSDIe0xCmhAAcUk,3029 -faker/providers/geo/en_IE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/en_US/__init__.py,sha256=ezR0GcDrcQClOYJa3kSg56L60wmm5UeBzU92e-aCnig,81 -faker/providers/geo/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/fr_DZ/__init__.py,sha256=ibmrKcMjACo2sufH7NxfhRzwn2I1YzsoiYnvp_mX81w,2533 -faker/providers/geo/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/pl_PL/__init__.py,sha256=AzWTHjpUhCyUKQmwVlotJ-TBP4Y3KwxZ-xPf6IpJxqY,2919 -faker/providers/geo/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/pt_PT/__init__.py,sha256=4EEsm46I6n06XtDIufLpLDX0TfJ3wdcmthrYZANfD5k,2669 -faker/providers/geo/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/sk_SK/__init__.py,sha256=JOJBeuBmdS793IRziQWKILx5f16e3YFumsSPJ6TEzYk,7287 -faker/providers/geo/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/tr_TR/__init__.py,sha256=Tr0BSOPniltOkaz8asOkROH_3XSIfZ5vc1-jQUrTw1g,6742 -faker/providers/geo/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/__init__.py,sha256=_1IDfRyLn49-ggUISTm28ucaS4rJirMCCOXH7uiNti0,27181 -faker/providers/internet/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/ar_AA/__init__.py,sha256=-IjSWVdSdHNx6jEcGYZm4d0YrDP_tTVQBpxAs3dX8tM,1094 -faker/providers/internet/ar_AA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/az_AZ/__init__.py,sha256=Mhj2mjbOWDB3YG0SKQvpKw3utzm_TolBQavX2M4VcNY,1065 -faker/providers/internet/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/bg_BG/__init__.py,sha256=CT4eI12YbOZYynB-J2BsBL7HaehavaJT7v45TDhBaxk,2477 -faker/providers/internet/bg_BG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/bn_BD/__init__.py,sha256=7zsxpK-ZU-MfLD_7W5jocTIVwZy67XBEZzFOVq2hgXU,500 -faker/providers/internet/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/bs_BA/__init__.py,sha256=8IWp6rSXo5DS4D_wjYi7wvwIbXQbDd_aMb1RSEpQ5ok,565 -faker/providers/internet/bs_BA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/cs_CZ/__init__.py,sha256=O6tLYFTaPY1BPOlVt3uaRQUx_drqV5S7o00ODVCqYKk,698 -faker/providers/internet/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/de_AT/__init__.py,sha256=SSTk9zgUfdO1VBPNsPh2eaGcrWRtvJ77WGOKnUDZuWQ,423 -faker/providers/internet/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/de_DE/__init__.py,sha256=oAfsZF8VKVsqVkLFeEmvWLU5139iEk-_jN-uC4y9_xY,587 -faker/providers/internet/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/el_GR/__init__.py,sha256=sSJbGiDItOnFSwVQ_xScysrZuXb59HPXTO6Is_hE-E4,2414 -faker/providers/internet/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/en_AU/__init__.py,sha256=TLSiIg4G-zXlHqlQXjiDwdJInSWHZdHBvCLwKhiMKWM,411 -faker/providers/internet/en_AU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/en_GB/__init__.py,sha256=bMZHxR6sfjtpuXIJ8VjkCn100oT_1FpwJ0u6pCdi8OY,552 -faker/providers/internet/en_GB/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/en_NZ/__init__.py,sha256=JzR3JmySxot6GJ3UkzrOl8eMESTIvUKKIKwSqmczUWg,425 -faker/providers/internet/en_NZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/en_PH/__init__.py,sha256=lpyxcgyMtW2Qt835HVoEbpl_myzKTjGVlD57NKIMV3A,2097 -faker/providers/internet/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/en_US/__init__.py,sha256=LHT62H6EI01-hSPOVLfnnXM-wgRQcxjqfQ8dYRWaOXo,89 -faker/providers/internet/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/es_AR/__init__.py,sha256=NihEPQgbBsQNmydYCLwGhPMWOgCDmJG8mkjLqjYUxac,498 -faker/providers/internet/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/es_CL/__init__.py,sha256=zaU810dUvgi9Vyt5ytT943ihgN9aIGRXoWKf5NZjTYo,912 -faker/providers/internet/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/es_ES/__init__.py,sha256=j2UVCRto3Awxuvlv8PELsddsbHINE7CTEpL9AxZ5VQw,494 -faker/providers/internet/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/fa_IR/__init__.py,sha256=35BjJrtopP5i9xXdCX0ED-4NO0xsRTzREOXixaVNDxE,328 -faker/providers/internet/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/fi_FI/__init__.py,sha256=SvPRspVOPy0xMLGb1rWsCCLeZUEuHkIbWVOO6Kev_XI,332 -faker/providers/internet/fi_FI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/fil_PH/__init__.py,sha256=2ZCfY3vfQvpS7vQy7cHssGf_xk50cxFG2hnHJzE8WQ0,167 -faker/providers/internet/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/fr_CH/__init__.py,sha256=iDGea1nm-5McKpqG_yLHeR7-mEKWXSOLKxDDW-1Q10M,770 -faker/providers/internet/fr_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/fr_FR/__init__.py,sha256=oLo4bDzwF3TWUhrWHqQ0-FCmqIGKszV-F3rWRvqXOpc,932 -faker/providers/internet/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/hr_HR/__init__.py,sha256=2GKUN_P95WcziR5NytU_Ql5vw0XjQbk39SW97ngElcI,664 -faker/providers/internet/hr_HR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/hu_HU/__init__.py,sha256=xvAfspt5itjwRZDctxLlevnkFE_6FWymHaARqi4sTJ4,772 -faker/providers/internet/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/id_ID/__init__.py,sha256=GV4RYOUeR5nTtmCmusfyJiKahNX9WxIxM7-m0hyM2tw,562 -faker/providers/internet/id_ID/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/it_IT/__init__.py,sha256=cj9Pt3pB0rP26cD9REXg4AdoqvPJQ8aIytKt4R6jEJU,828 -faker/providers/internet/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/ja_JP/__init__.py,sha256=8G_LyyfnoLKliKM0clr8WwIGWrEMqs2bYCAV6A6wm_8,523 -faker/providers/internet/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/ko_KR/__init__.py,sha256=j_bME4uTGKU9BT81JH_bwi1NVm-FvhnQFuBatrDOHL0,344 -faker/providers/internet/ko_KR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/no_NO/__init__.py,sha256=aVaw6eSetD7XiYlxIIndqjbNu3KvEOh3TVjmvUpSwXs,449 -faker/providers/internet/no_NO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/pl_PL/__init__.py,sha256=GI5d0u9kQdPxBO2hPHmZSdCswpyzS71y_CmyHg1EIbU,519 -faker/providers/internet/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/pt_BR/__init__.py,sha256=njS7yiBE35bsePhWZVhjCOCRvAPo8bB3FNUtwDkkDuY,910 -faker/providers/internet/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/pt_PT/__init__.py,sha256=Tn8MGCM1wGbcHTvAcAMlwGyJiikNimzN6n861MqJZvY,270 -faker/providers/internet/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/ro_RO/__init__.py,sha256=CT9KmmV_V69EJCYyXwSZK_g__-Bzb9ENDp2IGAZP5Sw,691 -faker/providers/internet/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/ru_RU/__init__.py,sha256=eiqp60YUSTtWEeNX0-ou1raaSSyLozHHlv_l_zqXX0w,2238 -faker/providers/internet/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/sk_SK/__init__.py,sha256=Ilmucc8qFjunPqVw_LMxA7DOoDAQ7WVTTU4gJ7V53K4,750 -faker/providers/internet/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/sl_SI/__init__.py,sha256=O_NNjwWkwQk17HLo1_vSBztsk4QPhiKBkEeTml_t64M,1219 -faker/providers/internet/sl_SI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/sv_SE/__init__.py,sha256=-tZxrl07AwE0W16bJT61_mvrTtciUabd27QmL1cO0E0,481 -faker/providers/internet/sv_SE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/th_TH/__init__.py,sha256=Ekl8yDXegwOGargJMfotSKSMcXrCvXP2YHIHUa5Wau0,670 -faker/providers/internet/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/tl_PH/__init__.py,sha256=2ZCfY3vfQvpS7vQy7cHssGf_xk50cxFG2hnHJzE8WQ0,167 -faker/providers/internet/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/tr_TR/__init__.py,sha256=7AxLZaamXHHgYwLq7IRiYz_QcrjxgdC-4-3LO35Tsgg,563 -faker/providers/internet/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/uk_UA/__init__.py,sha256=CUiM054Qyh3JeeIXvTnbDK5UaIJkqtXgWh-MzueZNtk,1722 -faker/providers/internet/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/zh_CN/__init__.py,sha256=RwddnVSsrLA1zQLMg7ETZd6NIaU7abruEqLs4dJU1NM,2550 -faker/providers/internet/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/zh_TW/__init__.py,sha256=7bZHgQC1LN57Uvy5jr0_5unhDriFqJ4AAwvDpYWUGdc,516 -faker/providers/internet/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/isbn/__init__.py,sha256=n6Bi1ynpUp1x9KEzo2UWj86L_oo1T4iqSh33DdoKjCo,2738 -faker/providers/isbn/__pycache__/__init__.cpython-312.pyc,, -faker/providers/isbn/__pycache__/isbn.cpython-312.pyc,, -faker/providers/isbn/en_US/__init__.py,sha256=SMUb3lAXdzQH6RmnlGBcRiebwOFz_ciRLeNI0NRckcg,1166 -faker/providers/isbn/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/isbn/es_ES/__init__.py,sha256=IS4sb2C0ViCs24tUet6X-ntxTAKkLE19tyTzWL1nOh4,1265 -faker/providers/isbn/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/isbn/isbn.py,sha256=_MG_90Hk_jYZOnBY3GVMkZaC__BuO9Pg_Xi2razIAxo,2676 -faker/providers/job/__init__.py,sha256=iJQ_3NhqUpCx81NIk8R16Ai0Pz5S3BLqa236oJm0Gq4,21537 -faker/providers/job/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/ar_AA/__init__.py,sha256=r-aYUi7hCk3pi4hQwVtR5BELkCFt6rErG_0FKrd2f8A,3633 -faker/providers/job/ar_AA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/ar_DZ/__init__.py,sha256=jCNTAIhzORRIFMUg4Hu-t6KFjXWB_bMN5l6nGo_1zNA,2826 -faker/providers/job/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/az_AZ/__init__.py,sha256=kBgGAGC0V8211FQycbbCC4iEqY2fhLUQfEsq4EdBxbw,2636 -faker/providers/job/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/bn_BD/__init__.py,sha256=HjufIqNQMJTTabsuu0ug-rx0MtKMexhDZC0G6sxAGZU,44681 -faker/providers/job/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/bs_BA/__init__.py,sha256=FL-KLKzfVbOP5hkWI3lTnVTh99TEuirWHvVLHgUOr3c,179846 -faker/providers/job/bs_BA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/cs_CZ/__init__.py,sha256=9bTb4zAJZNqJv_pPnJs2iLT00VamTLldxQOvrIPEaMI,16670 -faker/providers/job/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/da_DK/__init__.py,sha256=tTMIgO_HbiTiXKl84biFZjKGJfuhqvZDdWxOGcRmlzo,25577 -faker/providers/job/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/de_AT/__init__.py,sha256=m7efayYS3_dFcEhp3Vfzb_u4i2uscmNpUWlue4hFjuA,293251 -faker/providers/job/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/de_DE/__init__.py,sha256=LHmjjLpXoO03SouWI1kAl2QI5DZeQeDa406_FzSmvBA,953 -faker/providers/job/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/el_GR/__init__.py,sha256=TE_gfN8vAZvb-3Gr0LL8E8OT8LyT0llvMZ4iXPzb-f0,26642 -faker/providers/job/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/en_US/__init__.py,sha256=ezR0GcDrcQClOYJa3kSg56L60wmm5UeBzU92e-aCnig,81 -faker/providers/job/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/es/__init__.py,sha256=C2SmDfVAq0Bb_XqfRO3rJQenfjvqvVWK-CBGRZ_lBOo,19215 -faker/providers/job/es/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/es_AR/__init__.py,sha256=zpnbMPV3lEEEpzZTcuqDY82dAIem6diPe4NaGSbaM2w,83 -faker/providers/job/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/es_CL/__init__.py,sha256=zpnbMPV3lEEEpzZTcuqDY82dAIem6diPe4NaGSbaM2w,83 -faker/providers/job/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/es_CO/__init__.py,sha256=zpnbMPV3lEEEpzZTcuqDY82dAIem6diPe4NaGSbaM2w,83 -faker/providers/job/es_CO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/es_ES/__init__.py,sha256=zpnbMPV3lEEEpzZTcuqDY82dAIem6diPe4NaGSbaM2w,83 -faker/providers/job/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/es_MX/__init__.py,sha256=zpnbMPV3lEEEpzZTcuqDY82dAIem6diPe4NaGSbaM2w,83 -faker/providers/job/es_MX/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/fa_IR/__init__.py,sha256=MGvAhvmJort96p0wpsD_EmeVMyoN84uPfObUW3_dCcw,2433 -faker/providers/job/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/fi_FI/__init__.py,sha256=FZ1Ex-h5FcYOSIrUJ7LoZpEOBBuQiVQY444qyYz-jTI,6120 -faker/providers/job/fi_FI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/fr_CH/__init__.py,sha256=iDEC79BJOBtb175l3Go2-ws5UUQFWO8h7uXGKOoW8dg,43169 -faker/providers/job/fr_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/fr_DZ/__init__.py,sha256=Ehg77b_gys-T1KKQ3b7Pk89h7lAxzwQlZQP7t9wJFKI,7105 -faker/providers/job/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/fr_FR/__init__.py,sha256=uPCgty7MBj3B-flMT0jWhbkxdtChI0jzVhfgN4yqHYA,57532 -faker/providers/job/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/hr_HR/__init__.py,sha256=fad2u7FK17txNG5fO6Dukw1AfYvUaHwizyRRDcfI8B8,10408 -faker/providers/job/hr_HR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/hu_HU/__init__.py,sha256=ZmToGK3aPj4_oI1DikTDCPuL13VDtaJHGdWFAX-_2aE,12939 -faker/providers/job/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/hy_AM/__init__.py,sha256=tGgIXm5pJw9Y7afc6wi7Pf6Vx-io3Qd6AXubKofYFAI,11265 -faker/providers/job/hy_AM/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/ja_JP/__init__.py,sha256=YKR66x31DVhcTbv0pPT1BSFGH6lrpnnipJSDtjmG3Jk,1635 -faker/providers/job/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/ka_GE/__init__.py,sha256=4pVtmYraTpp0zS4BOn004HMj5GCxz5tq5vD6OyBIZOg,18725 -faker/providers/job/ka_GE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/ko_KR/__init__.py,sha256=8VQGuGC1drV9qH0bAi_8B1Q7iDE9p-HxGiYLlHv2hw0,16612 -faker/providers/job/ko_KR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/pl_PL/__init__.py,sha256=9HN50vBhqhthuQUlarxvrh2uySiWuKvPDpyg8UegDjA,5539 -faker/providers/job/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/pt_BR/__init__.py,sha256=Hux20vExzr8Q0z-3BkV3TcVfjR-H8zuNkJd33TCwo1U,20541 -faker/providers/job/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/pt_PT/__init__.py,sha256=vpbz9YTUlS_DnoXZq_-fx5ctgobFwCrlJdt3aknNnUs,18585 -faker/providers/job/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/ro_RO/__init__.py,sha256=CLckjpM__40QY9TunWoJrkMkxVHkHcVAent7Nn0ZsmM,170683 -faker/providers/job/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/ru_RU/__init__.py,sha256=oAAW4LWUnnYHiJPfbVNdTLdS3uT2gt6Lr2h1rYp5oWw,17443 -faker/providers/job/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/sk_SK/__init__.py,sha256=JkOYzldLZ50j5VzLfqvaTlDIa39ipFZs3oieinPcT7o,17499 -faker/providers/job/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/th_TH/__init__.py,sha256=C7HJjR2ispNKUQnhpZl5B08L9o93dy_z2Bc3X5gZv5I,3883 -faker/providers/job/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/tr_TR/__init__.py,sha256=kev6Yer2cL6-erqVXvpMjnqszPAPBEqySAx-L03EFUA,17006 -faker/providers/job/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/uk_UA/__init__.py,sha256=YbjuIxkV58BXgBBFPB5J8tD7FZycSGGO6YcWCTJ2yFY,5087 -faker/providers/job/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/vi_VN/__init__.py,sha256=Vgkf35LRTW38nXfbCSVEJLjwGJunAnOnO2F673sYeYU,2170 -faker/providers/job/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/zh_CN/__init__.py,sha256=zd1mm1YUIZ3dGXZo-RuznIkZrv5CQLPOPRuzdXBw4JA,28916 -faker/providers/job/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/zh_TW/__init__.py,sha256=fVahHxvx4D917NwNve7-XKbL1Y8lvhKmYQ8DXktGy-M,14340 -faker/providers/job/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/__init__.py,sha256=OEkJK7fX6UF9OQS4qaorIUS7H5JhjZwrijirarCkjoQ,11460 -faker/providers/lorem/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/ar_AA/__init__.py,sha256=hO4o6wt-ZmnjFt9QifobnRIST2G6tykM76M-N8VFtAE,16052 -faker/providers/lorem/ar_AA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/az_AZ/__init__.py,sha256=iZpLQeaS4FehuJa2CaoG3Uwk39rR9TssKHrtNeyCld4,1927 -faker/providers/lorem/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/bn_BD/__init__.py,sha256=jMhVpMjrIkuV3eJlVHmnM_Ejqx4wLEo8hXYJRRPtNyM,6153 -faker/providers/lorem/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/cs_CZ/__init__.py,sha256=8hNIxdsIuPqM4CE3m8PKaupqURDPZKCUxY8HEv5mgm0,98463 -faker/providers/lorem/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/da_DK/__init__.py,sha256=ut3zU2dRAK7j71pLqvYjts_2ErGeDpFIQWw5MmSfHIs,18720 -faker/providers/lorem/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/de_AT/__init__.py,sha256=Mkq4Roz9JzRbVQyBUSyU4JIR1SsothBbHD5_Xd8rAiw,191 -faker/providers/lorem/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/de_DE/__init__.py,sha256=6rqhHPRF3gGhs3agE_NcPXpyMr_z7gsp8lug98kciBU,9161 -faker/providers/lorem/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/el_GR/__init__.py,sha256=7un6Ybrs26GhX1B3a5ttQs8K53O4LG4irDnNU1BAiio,10084 -faker/providers/lorem/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/en_PH/__init__.py,sha256=b7w4Ym7_dSzCiHviUJRK28iI8KBdiAF7vPJjO0Vrw0Q,2956 -faker/providers/lorem/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/en_US/__init__.py,sha256=F4w0xWRH7FrqZSIoWToTydm04nxhOMgUymLx70os8nc,66081 -faker/providers/lorem/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/es_AR/__init__.py,sha256=WwaB6VJF8XYzvDqmThk8o9SaLEV0WSy2OcXW62pNP1Y,183 -faker/providers/lorem/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/es_ES/__init__.py,sha256=7DVzezXt2RXWQjQe1BI04WASR-1GdXGQwgC0HpXngNc,18389 -faker/providers/lorem/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/es_MX/__init__.py,sha256=X5prlBhYOqJDYwwBguQFnZhm6N5vRfIJcpZ3-3iRelQ,183 -faker/providers/lorem/es_MX/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/fa_IR/__init__.py,sha256=-Weo8ScmxwTJ-N7AEehmPmZhTXy70CvRVYlv2_uVzs0,18944 -faker/providers/lorem/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/fil_PH/__init__.py,sha256=cs8LxZScEslOIjwq7CkByQQ4s4iaGQdbPLjBQZZAtzs,11351 -faker/providers/lorem/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/fr_FR/__init__.py,sha256=dsxWUGnlnPO7ccbljk5npE1bF-XcFRC2a_X7gavQ_Wk,27232 -faker/providers/lorem/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/he_IL/__init__.py,sha256=NFAyt96eryMA3DraO5c-0u9HuUEiu95-GYDClfnz8AY,3356 -faker/providers/lorem/he_IL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/hy_AM/__init__.py,sha256=oBpu8KpyeviOc5hCJwBYBPty4k761-J7qthFLu5FCJk,4756 -faker/providers/lorem/hy_AM/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/it_IT/__init__.py,sha256=BYjxolLS-HeQt7L1UsrvioP7uqrGAWEJ9h-uw6ySOVs,71924 -faker/providers/lorem/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/ja_JP/__init__.py,sha256=k1lIaXxHJ_vPX8vMglv6r5YdAwMjpLUs5_PPW63CgGE,4851 -faker/providers/lorem/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/la/__init__.py,sha256=Q6F2tSuR8ox315FCoztkW_kjg5T16yP49WV-6hqJwSQ,3575 -faker/providers/lorem/la/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/nl_BE/__init__.py,sha256=dWyPep-62KgpI--0ZiTD96IisOAoTLg8W9w-MjUKw8c,17955 -faker/providers/lorem/nl_BE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/nl_NL/__init__.py,sha256=O53C_8Vg8Dm7HWqjGDU6oQE83FGecsOEqu_24BzxH_8,389 -faker/providers/lorem/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/pl_PL/__init__.py,sha256=eFwWhhP5wm9yga0yUF7-TOnTUgrpfXpf5GQcBg-y7b4,38477 -faker/providers/lorem/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/ru_RU/__init__.py,sha256=0MhskBjJ9FNVnE1HrklRtOmkQ2ONApJ_p9QNh7TvYjc,13467 -faker/providers/lorem/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/th_TH/__init__.py,sha256=xLfq6YgVe9CMNXYc-sqBcXalggu1uWjqsMheuutWNM4,11361 -faker/providers/lorem/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/tl_PH/__init__.py,sha256=GvJoMGMSsfHZKpOoPwGTeuiYdoG9tx2dxvnZ6SE_8-Q,325 -faker/providers/lorem/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/uk_UA/__init__.py,sha256=QVU4JA6FM0pICklHytEltpAxZsVPLN-lvLPiJU1lD2o,13098 -faker/providers/lorem/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/vi_VN/__init__.py,sha256=S19zzrH3S3LnSUcgE-33TiR8T0FFMUMxl8LMT-CL7SQ,3719 -faker/providers/lorem/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/zh_CN/__init__.py,sha256=xswC2NIKe5PPXjHMRxk-Bq_sEIY3GS_iqMZwbNNuJMw,6477 -faker/providers/lorem/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/zh_TW/__init__.py,sha256=WPgMmUg2UtGNP4pWXRXYzgZqXFnYfY7bwOEJvFlJCFg,6477 -faker/providers/lorem/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/misc/__init__.py,sha256=nDKuzlqRjGc_6HsT9TiwUHLPNb03gLb_LW7etgxHuF8,31561 -faker/providers/misc/__pycache__/__init__.cpython-312.pyc,, -faker/providers/misc/en_PH/__init__.py,sha256=nswQfqJztIjoHmkt_42KHKqeE8XpC5QVr-7SATFMFrk,4398 -faker/providers/misc/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/misc/en_US/__init__.py,sha256=ZE5bQjYE6QH86j2R4Hj_Hd_FmchvGPTKnn9vlUYnd_I,81 -faker/providers/misc/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/misc/fil_PH/__init__.py,sha256=JKgj2LzDwJuUrdc1fAIT5g51A_27E8qJmFC1iVNR7kw,151 -faker/providers/misc/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/misc/tl_PH/__init__.py,sha256=JKgj2LzDwJuUrdc1fAIT5g51A_27E8qJmFC1iVNR7kw,151 -faker/providers/misc/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/passport/__init__.py,sha256=gTzeT4jyGsw1fPydHd5I59WA11WnOYiHgRGRs17jHg4,1507 -faker/providers/passport/__pycache__/__init__.cpython-312.pyc,, -faker/providers/passport/de_AT/__init__.py,sha256=3xe-zxK2smwN92AeFqilrDijZK61HSo_wyo0NnJmrW4,334 -faker/providers/passport/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/passport/en_US/__init__.py,sha256=njRAk9i-Y9AZqUdKYmvppsYYqsG0fgBHpiZLmcbtdlA,3876 -faker/providers/passport/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/passport/it_IT/__init__.py,sha256=4vKD4kG_t-K-EugvbR2i_vKq3Z8qdCdXeyjPSDuUhjg,879 -faker/providers/passport/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/passport/ru_RU/__init__.py,sha256=XakF2r8OoesaOqpQXL3oyys3UfQtNeGkfU02Wj5XkNI,892 -faker/providers/passport/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/__init__.py,sha256=NF_XUfL2k5hwNitFv1wtO_236UsCSVOJih1XgaU6Tuo,9525 -faker/providers/person/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ar_AA/__init__.py,sha256=k4-K0Rh-2FiYXNRGJ1hDRj1E4Dv56oIfB6-h3xV7_i0,24546 -faker/providers/person/ar_AA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ar_DZ/__init__.py,sha256=f9U47qCRfyWTdccA2D0tgOY52Np71j2Mt4-l5jMrl8k,8528 -faker/providers/person/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ar_PS/__init__.py,sha256=4g16OAPyM_CV4ghXHK4P5SoTLE_wSpfk254CUscZulQ,1141 -faker/providers/person/ar_PS/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ar_SA/__init__.py,sha256=TXHlak27z-U5Yjpp9DJoGSmYOHcdhXfy9cdtv5uy6RA,1250 -faker/providers/person/ar_SA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/az_AZ/__init__.py,sha256=EJ7H9sBN8Utk3O2_q1JV2HFk9R4PRuOrZnKnM_A23mI,18393 -faker/providers/person/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/bg_BG/__init__.py,sha256=PvwEl2NpjLiXOcfCPheMbLilgqyHtV0LVe1vZm1c2fw,43243 -faker/providers/person/bg_BG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/bn_BD/__init__.py,sha256=LzDPpQcOakuy_Dfl1a6L4nA2BHjJrnGuOnpHQ-j-3y8,18575 -faker/providers/person/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/cs_CZ/__init__.py,sha256=6ercMFG0y7rnc5MDTyhP29U6MchSQandJ00EkXAHoXc,11179 -faker/providers/person/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/da_DK/__init__.py,sha256=ywEr1D8xvZTxh4Yuqj6zelS5HwruZEpMw9KeRnVEEfE,11646 -faker/providers/person/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/de_AT/__init__.py,sha256=iMZLReZ5oAIY8k5Z0WF7_pMv10u9raPhJf_jWyd8-Ds,30645 -faker/providers/person/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/de_CH/__init__.py,sha256=8dViDSCtMW2eiuYpiHe-So6ZUpw_SqPIPsv0T7xnwTg,41031 -faker/providers/person/de_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/de_DE/__init__.py,sha256=QuIPsNryzNQhD-38lMtidEEMwuBKgCH19TrReLJO1gI,47660 -faker/providers/person/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/de_LI/__init__.py,sha256=JW6QuY7kw0r49B5ybbhTQ2nW2-YasVbEOniSBE4rqJ4,17983 -faker/providers/person/de_LI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/de_LU/__init__.py,sha256=3ls_-dm9v93732mX-xhr0iw9cT4xiyUUj63aj3qp53s,29695 -faker/providers/person/de_LU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/el_GR/__init__.py,sha256=LQ3yUZdFC4mqs9Ge8Dkp4Wj7nKFeXShRhjC_K_BXXIM,66301 -faker/providers/person/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en/__init__.py,sha256=3r2L-FVtshlZR3c2xm91INhRAJD2k-4AQBXYnlfTHA4,139274 -faker/providers/person/en/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en_GB/__init__.py,sha256=v58ukWDAp6ppgdOejFauw6GsJiQxs-ldYZohuw1iqr4,22879 -faker/providers/person/en_GB/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en_IE/__init__.py,sha256=aQAExodZPb9QcLsr6gJH9D_BOyUXHZw7EVEdPZm-80I,58685 -faker/providers/person/en_IE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en_IN/__init__.py,sha256=ucK3c-tfbNSIVLQm0Vv1XxoZoH7602HdnT25D3ipydQ,19867 -faker/providers/person/en_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en_KE/__init__.py,sha256=h3JZ2dCRDSRUtytmwEYXQsPfAZ3c3sH96v377mrqtN8,71068 -faker/providers/person/en_KE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en_NG/__init__.py,sha256=UWx21yHljDHmBW-1k-rfmnBIWqkpCY65aKUplSkq3oo,2037 -faker/providers/person/en_NG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en_NZ/__init__.py,sha256=_yglZn-L5p7xIXJ34P8RYNm9xQjLmN_HNDXFgFxQODs,40961 -faker/providers/person/en_NZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en_PK/__init__.py,sha256=mFHTSaO358OYcxeYpFrl7vRP-HRSZ3K-NrnaMjJp4fo,17737 -faker/providers/person/en_PK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en_TH/__init__.py,sha256=T73zo826kdt6LJTSEQTR6yXnMHQ1JuWs9-TnQAigTSw,6008 -faker/providers/person/en_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en_US/__init__.py,sha256=b44OooDdiHXwbIBMGFXH2gHfjbBNUfFr4Yd6oRw7_lg,66194 -faker/providers/person/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/es/__init__.py,sha256=Q3jnM7-g2WdBvCGvIvxN2BPFhhsRiqqjLu1MOQJEKog,3630 -faker/providers/person/es/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/es_AR/__init__.py,sha256=Wb1ht_cLWGfaC5MHWKuyQWG5N1WDNwkKBBLq6Bw4TWY,28395 -faker/providers/person/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/es_CA/__init__.py,sha256=MkPtv2AQ_HPniP62K88iyIoCmWVyjkoSEaS4lOD7l94,1720 -faker/providers/person/es_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/es_CL/__init__.py,sha256=oVFPT_K0GZfzrgNiM3CkXrZCbeVHWGfaBv3iIwEJ-Ng,58710 -faker/providers/person/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/es_CO/__init__.py,sha256=NiGas5Svn0vXwEpFEDoxNEbRfe9x071YcTyoazxR4UQ,35715 -faker/providers/person/es_CO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/es_ES/__init__.py,sha256=8364Pa0nd4R4XeAozFlxwkl29kO_ILaVUHoMuMSbO0A,39907 -faker/providers/person/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/es_MX/__init__.py,sha256=szUCd1pm2TEtlRD57Hm5xBiKmdHDq25TTg9VvVqp2_0,19448 -faker/providers/person/es_MX/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/et_EE/__init__.py,sha256=wTx4dFchwvF2oQW_g-t-ckzA3QMPJBuiyhnNDExvVkY,13918 -faker/providers/person/et_EE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/fa_IR/__init__.py,sha256=TcdLyugT6gndbr8SeE95j0AjIfWhZwc9X8hvv2KZKGQ,8309 -faker/providers/person/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/fi_FI/__init__.py,sha256=cO9QRNIGYY_BCbyDr5YKSmS6wX3iyOuSMk_bTeJAjU8,29042 -faker/providers/person/fi_FI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/fr_BE/__init__.py,sha256=CBKMjYgp0_8PLqF3AvcaB8FZmM-qNvKPpWdfr7cTaUY,48512 -faker/providers/person/fr_BE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/fr_CA/__init__.py,sha256=5nHllfbLF4B1DfgL0-OtuZcAZlaM9pPeZSYTJlgFoT4,9745 -faker/providers/person/fr_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/fr_CH/__init__.py,sha256=AVKTSQVZqC874n5TKhDx1CJNUTChPG_1hsUDFEiyntU,6997 -faker/providers/person/fr_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/fr_DZ/__init__.py,sha256=8Xc3wM20fEyURf2XdpBeNy8NoaLjV9vxHEc0DHKHZNY,9105 -faker/providers/person/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/fr_FR/__init__.py,sha256=FXpkbw1raOrhp4XJu5suIl4a9IVPlscoEmS6zyh2vuc,12993 -faker/providers/person/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/fr_QC/__init__.py,sha256=ohlbXW7tEbzOOAFFwk7D0huNkZfF7HFv8-Vpkurxb1s,290 -faker/providers/person/fr_QC/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ga_IE/__init__.py,sha256=-4iMu7gYa5uTrbP0x6Q-zkDRN_MQKmpRld1dtVvawV8,73539 -faker/providers/person/ga_IE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/gu_IN/__init__.py,sha256=kzbvUSOIr0vzbqgmj6Owpu0WA3cnVVneE_uwbKYmDkE,4159 -faker/providers/person/gu_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ha_NG/__init__.py,sha256=ACkj0jK0QIySnHhZNouUHYw3kpHJUtov8TyR116hW9I,1758 -faker/providers/person/ha_NG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/he_IL/__init__.py,sha256=SbEoT6QlB9LRPjLExL-b59rQEkKRYx8uXGl4fV8OZc4,60492 -faker/providers/person/he_IL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/hi_IN/__init__.py,sha256=rnC8xDr76XWR9ZfpoczVpD0025bW9TI3iJm_13BfRgY,14971 -faker/providers/person/hi_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/hr_HR/__init__.py,sha256=cj4ebFpOG-QUIpybjDG7svFlrwF84TeIxBSKNPbKYAc,19776 -faker/providers/person/hr_HR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/hu_HU/__init__.py,sha256=O-uTP0L__1omnPKwFVlqX2ASNJ9fTgv9-1gcqEc53jI,16159 -faker/providers/person/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/hy_AM/__init__.py,sha256=2SlObYbwC32T5Ot6_GZhUZI5TyyATgSvqO9FLfj6uGQ,27051 -faker/providers/person/hy_AM/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/id_ID/__init__.py,sha256=weWMgOVkBS2msR7MR1Pz-Hn1ZIrJ0ibrftPizVoImTo,19283 -faker/providers/person/id_ID/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ig_NG/__init__.py,sha256=tG2KB2taPAsellrosYy3Gpr22XVLEMfWWnnD0JneQTo,1860 -faker/providers/person/ig_NG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/is_IS/__init__.py,sha256=vCrMbag1bdqwr3zmCYI0bSNHL5d7LGh2mysvyjzYOTI,77065 -faker/providers/person/is_IS/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/it_IT/__init__.py,sha256=rXaE3JJVul3nVJFY6vsiyy8ZApWE1L1sK36J53JqBxc,32694 -faker/providers/person/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ja_JP/__init__.py,sha256=A7zjtwQd0MIUQgiBJpdB9xZWgJOOS5_d-rg2tMJJP98,10951 -faker/providers/person/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ka_GE/__init__.py,sha256=JfdoWpWSk5mrRA0-yRSLDfzNEh3WMh3cQYgbrQ5lSlk,25812 -faker/providers/person/ka_GE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ko_KR/__init__.py,sha256=wa6PhmUDdANfPYv-JYfNrA0mAlWseXA-N7dm9jpT1tc,5579 -faker/providers/person/ko_KR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/lt_LT/__init__.py,sha256=DQQDcd7kl9y2gB4rbjXJZvRDsxkhOtJZAQxpk4jXu3o,4706 -faker/providers/person/lt_LT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/lv_LV/__init__.py,sha256=G-_7gvAGmKtIXMEteDzuDksdsN9W6dOR5qzm02pXs2I,8240 -faker/providers/person/lv_LV/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ne_NP/__init__.py,sha256=mbVGfm0CinGNOa8ESI6i797C6Sf2EAkMANUL6Lj94Zk,44009 -faker/providers/person/ne_NP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/nl_BE/__init__.py,sha256=4SSEH-HpMU_bGZu6qZ8mm92sIbznPu5dOa-MtJ7p_yU,49013 -faker/providers/person/nl_BE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/nl_NL/__init__.py,sha256=BUuksE9NnEDFgxXGidWzwvmlKd4TZnhnK_JA71kkpKo,32776 -faker/providers/person/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/no_NO/__init__.py,sha256=PNPeYtuQ2zaQ9Aw5z0rS05-z3kLjA-ufUR3O6UNdRBQ,7074 -faker/providers/person/no_NO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/or_IN/__init__.py,sha256=N3dTj7Z_dI6aDxSF2OEwRsgpZvoF5peH51jCR82peLk,35828 -faker/providers/person/or_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/pl_PL/__init__.py,sha256=wV5tZcx768mwLUtIbpevYKYq97fNpDp2hec2kX_BEq4,95357 -faker/providers/person/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/pt_BR/__init__.py,sha256=Q4Z8JsurGYy1XSoO2L6ZBK44f5D-z5kQM0XyUSmTa_k,9695 -faker/providers/person/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/pt_PT/__init__.py,sha256=tSitB72Gddwmnlw1hgNlgVWNXzKJqWvyNMz_Z24tM7U,6791 -faker/providers/person/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ro_RO/__init__.py,sha256=P44HBm-LKIVk6VGW0IIMNi0CglNwK5mnkM1djOXwmPc,14264 -faker/providers/person/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ru_RU/__init__.py,sha256=lOjOBivx62GZNcqI1NRcfY8dfHDXeOPntQOBfpQgBsM,37558 -faker/providers/person/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/sk_SK/__init__.py,sha256=xELxDep7PuQUAM39o-BTlxWSoryccl-vFqvdkH5I3u8,46495 -faker/providers/person/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/sl_SI/__init__.py,sha256=NryVhRpx1bwJJmvrvuRZ7CqpjPwD7XWDav_YD2ceIP0,9540 -faker/providers/person/sl_SI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/sv_SE/__init__.py,sha256=RniRcCVtFfFF3j-2R0-3tRvgyZuhhPySLS3_sT7CdOg,53408 -faker/providers/person/sv_SE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/sw/__init__.py,sha256=A22teXBQ2_jbn88gyG2hM3DCu6nlkMkQlb9jnlW4jno,8090 -faker/providers/person/sw/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ta_IN/__init__.py,sha256=8f3G82AeF_WU1z3uhGb_qOv-UUN1U2_k5KQmpXpAbhA,35625 -faker/providers/person/ta_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/th_TH/__init__.py,sha256=ohEtfOZQ5DjHN5M_aAKgAqfa6MTZz_cSpUTJHUasH6o,35440 -faker/providers/person/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/tr_TR/__init__.py,sha256=G85I0jd2Ul-9d5P0KlvkXzOHCf9oFIo69UA1qI7J02o,31373 -faker/providers/person/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/tw_GH/__init__.py,sha256=gHBQqYFDIH3ik8I5VBncVJhdSSrWw9uIeJxsep0oSjY,11402 -faker/providers/person/tw_GH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/uk_UA/__init__.py,sha256=X6RtRjhoMvg0CZkp_D8zBEE1_9AnPS4-SntYQ3Euncg,36783 -faker/providers/person/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/uz_UZ/__init__.py,sha256=q9Cgs35NJ9tZeu2yF7z9rmVHnjt-LElh9P447iLifhA,8617 -faker/providers/person/uz_UZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/vi_VN/__init__.py,sha256=-rvxPzqs1VS8j3g-O64AawhG11SLMeb1numZyhq5QD4,2539 -faker/providers/person/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/yo_NG/__init__.py,sha256=hvFaiH18-PeYY4Q7rtSsTTyv7IiDjJzTHD1t4J5BfnI,7239 -faker/providers/person/yo_NG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/zh_CN/__init__.py,sha256=wnvBOewxiFpIXV0uHLHTbk3zpKA0Hx0P4oiY7bakhlo,16430 -faker/providers/person/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/zh_TW/__init__.py,sha256=FGeBt548IxC-I3oX0nNYYMM2CZ9_vdWi0tIcrigu_as,29023 -faker/providers/person/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/zu_ZA/__init__.py,sha256=PBmYaQrKS8BfWLBIXz_m_ymiRNKirtK7jJPayIsWPGM,18658 -faker/providers/person/zu_ZA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/__init__.py,sha256=7-jQVnJ09i65BjyRPnC-W18ttIjLSfNLMTxa74nE4Xk,5825 -faker/providers/phone_number/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/am_ET/__init__.py,sha256=Nf8a0rTKsUAmxLgjhGR1q06r0Ho4foe1IEKwS_ImB3A,474 -faker/providers/phone_number/am_ET/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ar_AE/__init__.py,sha256=is_GHW78Sg9Tw0X0LD3GQPc9ixqCfJq2TzutzYw91Tw,2580 -faker/providers/phone_number/ar_AE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ar_DZ/__init__.py,sha256=nKJ7JREZ1BIOGqXq91_la-oROGtgrFsQ__xBWHSXgEo,1611 -faker/providers/phone_number/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ar_JO/__init__.py,sha256=-B75Bj9rScaygObHb1CVRKefVbp1vlOKsQnzqV_FDGg,1772 -faker/providers/phone_number/ar_JO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ar_PS/__init__.py,sha256=7RdtET6TyjSs00OyGmGqPwat55kdxPsX4hbVusoDiQw,3605 -faker/providers/phone_number/ar_PS/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/az_AZ/__init__.py,sha256=0JIFo9BREcIGVa5uoeqgmOitp3a4aWPrSkhiCHnVO2Y,1562 -faker/providers/phone_number/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/bg_BG/__init__.py,sha256=05BSwBcj15vxsOQ0btUPhKwgPDNkYdek2XGqpXxouwY,390 -faker/providers/phone_number/bg_BG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/bn_BD/__init__.py,sha256=yHFu589U9FClkds97p40zPPclJh2lRYYlI1B9f9U__0,7503 -faker/providers/phone_number/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/bs_BA/__init__.py,sha256=edmF7qRS8gUkHFNWNH6JQiLiWA-fMXuu08d38-HkEW0,879 -faker/providers/phone_number/bs_BA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/cs_CZ/__init__.py,sha256=gYXUeZDETZN4iiGG1vSKCW--zIDgQ4foJV7bAe65pKU,1417 -faker/providers/phone_number/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/da_DK/__init__.py,sha256=cUzQwly2CtDfEe5x_flhJD2FBrlnldqkMfM6J70ZSW4,248 -faker/providers/phone_number/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/de_AT/__init__.py,sha256=McsrzL3JD0A9WV9DWR5GSrxe1kKLHYWC1jPzhhSnSOA,2505 -faker/providers/phone_number/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/de_CH/__init__.py,sha256=dT0G1MUpf5--55XRC5KsAbaQwwkcOLz3JqXQVVpEi0o,1594 -faker/providers/phone_number/de_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/de_DE/__init__.py,sha256=Gb0rJzTOIX-KuoJGAdVLvWJIxuKiIuIcNpTUCHcyxO0,455 -faker/providers/phone_number/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/de_LI/__init__.py,sha256=ouaQhiC3yDI7F5C3jaFpCHhDsscFfyVU0nccIUqSBJ4,203 -faker/providers/phone_number/de_LI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/de_LU/__init__.py,sha256=Ms8zEdfqL2MZfEYInkWgvEH1tV4vDbE9k09zzz5F3kU,847 -faker/providers/phone_number/de_LU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/el_GR/__init__.py,sha256=VlEbELDOfRRpaN1Vg_qgQZVGx5fVGqvDlC2Atvggu84,523 -faker/providers/phone_number/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/en_AU/__init__.py,sha256=hdsINEo3UaQEpQ-Cm0ZKXXEp-0RfBSwAy8hWpi99LN0,1317 -faker/providers/phone_number/en_AU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/en_CA/__init__.py,sha256=84HElLY6ue7-4_SINpiiCOnF85KBsVwobaU6VwsAazg,349 -faker/providers/phone_number/en_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/en_GB/__init__.py,sha256=6VX5vvI2RHW0Y1C_piCSTV6lmffbrftVdoj44FhAyQA,7437 -faker/providers/phone_number/en_GB/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/en_IN/__init__.py,sha256=n150k5GA6gkoazdKpz2qkfd1AJ_hzviP0Noniiw_jM4,178 -faker/providers/phone_number/en_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/en_NZ/__init__.py,sha256=S4XgZDeaUqhPiuyR-19oalq4fEjOPh61X2B_gfiAHsU,1247 -faker/providers/phone_number/en_NZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/en_PH/__init__.py,sha256=FKB24c5QJ6KFj2s_dXKFry5_CXJSOi-Kq9DQNGgC-Vk,8227 -faker/providers/phone_number/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/en_US/__init__.py,sha256=OdAEPsicrobu0Y8Wmj9VpPK5o465Vu9Lshc4nNgFBuY,1610 -faker/providers/phone_number/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/es_AR/__init__.py,sha256=_rImVYeCpAscF_7DwoAG8bGmoidLWCrg6mZ6Umg8a7g,2079 -faker/providers/phone_number/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/es_CL/__init__.py,sha256=i3Pe-Q3vS06CJYdGzBQ2ksPO6f0vA45BE_talWxhCXM,1921 -faker/providers/phone_number/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/es_CO/__init__.py,sha256=B7uzDmYvPetQLwPPLaPOG0ehP1Uty52fkQaBtl_lt9c,1043 -faker/providers/phone_number/es_CO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/es_ES/__init__.py,sha256=b4nNmJz2LxoFIX3vYRIy91bzkMwPNARqhipfOVNV_JA,2312 -faker/providers/phone_number/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/es_MX/__init__.py,sha256=TmTVvHZUoR95gmoa3lfFBDLzpCeL2mYkmsAop7u6rv4,765 -faker/providers/phone_number/es_MX/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/fa_IR/__init__.py,sha256=ADyPMzHM1381PXqTcaEnSHb0Ve9qJ0UVABynPonjSdI,2658 -faker/providers/phone_number/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/fi_FI/__init__.py,sha256=HlNMgJuPHWYxIufaiIFOyzi_HN7o2a_mzHfaYh0NDMQ,260 -faker/providers/phone_number/fi_FI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/fil_PH/__init__.py,sha256=DaA90_JFnbMtbMJFc3BKDSDEoS_Bs1D7gMX8KpoNYlc,177 -faker/providers/phone_number/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/fr_CH/__init__.py,sha256=OV8iA3eFvneOfAycbtzJlq1c1-RB7sheaQTi1ZAVebU,1065 -faker/providers/phone_number/fr_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/fr_DZ/__init__.py,sha256=_5C4Tha9j5j5RR-s6IaP7Y__qczLf7tqYMoDNsvlaZg,88 -faker/providers/phone_number/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/fr_FR/__init__.py,sha256=QtHXByY71dlvPTMwDt5-isseB79-y1VJMDxdPZBFRU8,4872 -faker/providers/phone_number/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/he_IL/__init__.py,sha256=oLcg1F5_shT7038hUUKUI0YbPcP3IiBWCq0hJRRKMWg,468 -faker/providers/phone_number/he_IL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/hi_IN/__init__.py,sha256=rxdkzT_P3n15-F9QdjX2Bl6LEM2PC-DGYvFtVQBlqCA,232 -faker/providers/phone_number/hi_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/hr_HR/__init__.py,sha256=3U-8Sl_5C6wXwJ9al7lNnahBKGZNtnRUd3gKrymoxwU,803 -faker/providers/phone_number/hr_HR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/hu_HU/__init__.py,sha256=O8Ul7T6LsoLNI47kACcp1qRt7ISHmmJgLcfkwFnludU,284 -faker/providers/phone_number/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/hy_AM/__init__.py,sha256=KsHfElTiiV2NjhckqtNjWfu6j0uoWMbC58FhQegaXbk,441 -faker/providers/phone_number/hy_AM/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/id_ID/__init__.py,sha256=xPcT9V9CF7745PWWtYaRMnZ4Q35YpCWRBdIFVUp3BuU,648 -faker/providers/phone_number/id_ID/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/it_CH/__init__.py,sha256=OV8iA3eFvneOfAycbtzJlq1c1-RB7sheaQTi1ZAVebU,1065 -faker/providers/phone_number/it_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/it_IT/__init__.py,sha256=DeYMBa2EOunnRS2mEfsK8hXTr1Guk_6zNGWq8C3Vluo,4628 -faker/providers/phone_number/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ja_JP/__init__.py,sha256=msuLjgbD_yEzTg-2gJkNvtAeGPssXgHhPjSXFv-xGUY,207 -faker/providers/phone_number/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ka_GE/__init__.py,sha256=N8gG-KOichP-Zr2uPwhoSBCOyPyLtYDPOtJAZt2psyg,437 -faker/providers/phone_number/ka_GE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ko_KR/__init__.py,sha256=W0JWADw7NuI4pMtVYKikU2bJtUGJ_6TQevrDiWHb2A8,686 -faker/providers/phone_number/ko_KR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/lt_LT/__init__.py,sha256=tiCqKpIrqFITnwZEAChORSj_6_KNOcYchS6xevGO_Ic,184 -faker/providers/phone_number/lt_LT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/lv_LV/__init__.py,sha256=B5scyzrc5r5YEBrQzp3M1vJefFh_zf5QfYo1mGOf7N4,184 -faker/providers/phone_number/lv_LV/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ne_NP/__init__.py,sha256=g-KDcqPvCJeqwwoHQY2xBZtvU87TF_lf70xiId7_1tI,229 -faker/providers/phone_number/ne_NP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/nl_BE/__init__.py,sha256=4yFTYYmTvDxR2RyLadoXyVG6mh8lPyWWeCwyFtkDPks,561 -faker/providers/phone_number/nl_BE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/nl_NL/__init__.py,sha256=sW78nu2orfFQFBEVk2GVCe7ZUb6Qye_Y83K9dQaO_u8,512 -faker/providers/phone_number/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/no_NO/__init__.py,sha256=0OdMEMHQ71kg4XyR84Lb2-4fzLQo71x5jZJFXS1fv88,328 -faker/providers/phone_number/no_NO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/pl_PL/__init__.py,sha256=G70V3cLcxlJCmYt-ySH1hsMUTB6YY-3gGPKuwI-tFGk,895 -faker/providers/phone_number/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/pt_BR/__init__.py,sha256=CwM1jitHQxWLjGMSlwaUN0dlcVV4gqANDvQMI7nW3dM,3537 -faker/providers/phone_number/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/pt_PT/__init__.py,sha256=NNtmAJKLJQNopkOCwZaNucY46VdGn8OXZMohwI1wSV4,1013 -faker/providers/phone_number/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ro_RO/__init__.py,sha256=FQsq3pat92h9_EDhXyM0KiDcp26KfirFRi4A5xSj5G0,2484 -faker/providers/phone_number/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ru_RU/__init__.py,sha256=6Fa1P_johi3tbbDySvSyEYSnvObjAMyTIE3GlzdNO0U,379 -faker/providers/phone_number/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/sk_SK/__init__.py,sha256=O-0SlZLxEdOidOsWWqyT1BI8yTrJnsSmmck9xlABifg,741 -faker/providers/phone_number/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/sl_SI/__init__.py,sha256=Zqz4KEYcfDvfsrnhZPOfNlDNVW9QUO2y3n2IfvMoc9o,361 -faker/providers/phone_number/sl_SI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/sv_SE/__init__.py,sha256=nzwQph9vlBVYEcTTuoeO1VXpswlE8nUJXNI1Khwz83Q,367 -faker/providers/phone_number/sv_SE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ta_IN/__init__.py,sha256=rxdkzT_P3n15-F9QdjX2Bl6LEM2PC-DGYvFtVQBlqCA,232 -faker/providers/phone_number/ta_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/th_TH/__init__.py,sha256=b6fxyWEKmKvW8tO_fYoy7Rk-MDCR5wzyVBzMQKEqZns,1826 -faker/providers/phone_number/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/tl_PH/__init__.py,sha256=DaA90_JFnbMtbMJFc3BKDSDEoS_Bs1D7gMX8KpoNYlc,177 -faker/providers/phone_number/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/tr_TR/__init__.py,sha256=z3azoBt_y3OauqJSVjfemapXspEMluQ6XTkU-d-O8Os,349 -faker/providers/phone_number/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/tw_GH/__init__.py,sha256=FMHrGGEIrCJNdn1aA3eOLLCb5DAwZnwoLtYynNLwxUE,578 -faker/providers/phone_number/tw_GH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/uk_UA/__init__.py,sha256=XKSJS47r5YCA_1KVu3o7sw2ZsjVJXZlnKPqK1rROEnk,1446 -faker/providers/phone_number/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/uz_UZ/__init__.py,sha256=ezhcdIHC5px1k5k0kbTbXEZx4bAtdMQG6qplnoWalcs,369 -faker/providers/phone_number/uz_UZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/vi_VN/__init__.py,sha256=DKYHNkaUmj0mEzpU8_NEd7Oxh_owc_sH38gojtmhCRg,454 -faker/providers/phone_number/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/zh_CN/__init__.py,sha256=3Svj3ZSlXIFy7fQLuXgevIpQmllt8QRzIJtkmfJ-VwY,668 -faker/providers/phone_number/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/zh_TW/__init__.py,sha256=uHjt8S7uv9uBeWbamm4skX4AcTsOjZTesUe30f8viG4,348 -faker/providers/phone_number/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/profile/__init__.py,sha256=YAm9Q8srauKewou9vVMlVmAyHD6sRXHUXQwxcinVInY,2081 -faker/providers/profile/__pycache__/__init__.cpython-312.pyc,, -faker/providers/profile/en_US/__init__.py,sha256=jdMsH1sL5CowRxP7GwrE8lhaIUKR2oEAmU3T3RjQLM4,127 -faker/providers/profile/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/python/__init__.py,sha256=tPZojCk3T56Jej0T7SCi7UplrwqaFgF8B_SlwBkoCcg,23176 -faker/providers/python/__pycache__/__init__.cpython-312.pyc,, -faker/providers/python/en_US/__init__.py,sha256=kDetNXc4PbA6e_qNvhNH_kKjVlCXjHydHX6rscAOmM8,125 -faker/providers/python/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/sbn/__init__.py,sha256=alq2c_kMycLvThMliIf2wfB0y_04mQ6idLgrNbHgOzM,1978 -faker/providers/sbn/__pycache__/__init__.cpython-312.pyc,, -faker/providers/sbn/__pycache__/rules.cpython-312.pyc,, -faker/providers/sbn/__pycache__/sbn.cpython-312.pyc,, -faker/providers/sbn/en_US/__init__.py,sha256=dH_7x5djl9PMMBmMIEUJNiZfJgFc1MzhUeVqjO9AGTU,79 -faker/providers/sbn/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/sbn/rules.py,sha256=V3ksxlTSoT93dADehMrAldyXv8to6auzYpxgnqb7F8w,844 -faker/providers/sbn/sbn.py,sha256=F9uasQU4-z6GTB1ibN5s0kxMYoU1Lq8mNT_VMBAJcWI,1520 -faker/providers/ssn/__init__.py,sha256=FZv19IkzcNG8ajn6bNlj2H-L_7l8Lmx8yxFsaA8R00g,240 -faker/providers/ssn/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/ar_DZ/__init__.py,sha256=sorzsXIMEdsJcNSYVBhZ9kpK8tQY9RyptkBw4xQ1mTw,1817 -faker/providers/ssn/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/az_AZ/__init__.py,sha256=2FzJVIMi6-1-zByIcf5N1fAWebLDDGGjdXwlEKHxtI4,778 -faker/providers/ssn/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/bg_BG/__init__.py,sha256=W-S-l18iyFvfe35n4tq69aXAsh2OcKxaS7rAXyjA__4,447 -faker/providers/ssn/bg_BG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/bn_BD/__init__.py,sha256=8YTSIsZK3zRv-wfonEa-x1Mzr0q06x9zGITU5QSKojg,326 -faker/providers/ssn/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/cs_CZ/__init__.py,sha256=R7SCSf7y4OEf7mYCZwE8P0Paescx-xmOTih_P56Se_Y,1418 -faker/providers/ssn/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/de_AT/__init__.py,sha256=rfKwL9pl_MTs3ySsanKok4fLnuTu4wzs4juJmXldcDo,1487 -faker/providers/ssn/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/de_CH/__init__.py,sha256=_ze0dSSSLXBPk-8zlx9DSImMO68f2Qvj2XTfjqkFUAk,86 -faker/providers/ssn/de_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/de_DE/__init__.py,sha256=-cSf4PM1EHKZLBiwab_w2YoOQ6JFWQvkntIxKURJSiI,3346 -faker/providers/ssn/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/dk_DK/__init__.py,sha256=4DzZKxQTWxtfnQT8Nm67NWPOLJan9vuCt2CL7uKwMEw,344 -faker/providers/ssn/dk_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/el_CY/__init__.py,sha256=0kNMryCyGc3zKxNCHfYfxkxkZIQdNivW9gSiXeKrxso,348 -faker/providers/ssn/el_CY/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/el_GR/__init__.py,sha256=sA4wc9JPGLnn-Hfwk3crug3sBxWUnW28GPR52CEa44s,3109 -faker/providers/ssn/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/en_CA/__init__.py,sha256=i38Psp12Sa4FVbcHl-Vas8ziTc_adSW_VFN5j5XEs0k,2966 -faker/providers/ssn/en_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/en_GB/__init__.py,sha256=hjFy8D-tZ6hZ-lJOVhhvrshdgIiOnP1kH-Y41pXvyK0,1303 -faker/providers/ssn/en_GB/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/en_IE/__init__.py,sha256=LjDKcotMC8A9CuhjmReiVJ0_RIULDAxsIGDo3oyLTVI,459 -faker/providers/ssn/en_IE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/en_IN/__init__.py,sha256=OLTc_vaLHivAHY_IEdosEdJY27y_CQ_sxpa27hZ0VIE,731 -faker/providers/ssn/en_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/en_PH/__init__.py,sha256=NZtmfIC6qjR-0MzLoCM0p-DhBD4qYHAl6XQP4Z7KmpE,2638 -faker/providers/ssn/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/en_US/__init__.py,sha256=-ROALGF3Wo9r61ES2UThunIBXdNlz1NJyhMURuAwpzk,6848 -faker/providers/ssn/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/es_CA/__init__.py,sha256=coa7tkFpFUMI6g_H3yNoJ2AEJo82HzIyxi-T9jOkOPs,157 -faker/providers/ssn/es_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/es_CL/__init__.py,sha256=7kKBUkS_g7RbwII-c30d_9cPh7MrNJXG7ovMt4ySiT0,1947 -faker/providers/ssn/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/es_CO/__init__.py,sha256=sCVCKKl8aF2LY1m9Ce0vyXTwemDoZ18g3_mKPwlzD68,2111 -faker/providers/ssn/es_CO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/es_ES/__init__.py,sha256=55DUqshIaNELbDgdmtGIFUNQRG_bdpu7lYE-1QEnoGA,3912 -faker/providers/ssn/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/es_MX/__init__.py,sha256=N4psbKjpvM4S01XPAlpN-hV7ekISRUFyYRlbi6lu_gI,6706 -faker/providers/ssn/es_MX/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/et_EE/__init__.py,sha256=GyxYhsV-IqwK1Y6PSC_ByD7C6Pi5IxlTGa1uYTlqNf0,2665 -faker/providers/ssn/et_EE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/fi_FI/__init__.py,sha256=d2ePDGUrX6XCZmd1bA431X4j72zPMLP-Gwpg4CQ1vN0,2644 -faker/providers/ssn/fi_FI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/fil_PH/__init__.py,sha256=_mhNPEIXZQXqS3deHvbJWQj9se7WYoFyEqUG_LPR7Wo,152 -faker/providers/ssn/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/fr_CH/__init__.py,sha256=F2BeLI9QV4P_RwQP4t5gozj-j-QpbhsiZ_wuTtdQ7pg,1495 -faker/providers/ssn/fr_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/fr_DZ/__init__.py,sha256=QDRfiQrZMiFpAIMpF4ZhRWKl8MtC5_2YWT1RriIf0lM,92 -faker/providers/ssn/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/fr_FR/__init__.py,sha256=BhPUuQKsd4hS43ORFLi6slftD2JVXepcQKsaKWJbeM4,6772 -faker/providers/ssn/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/he_IL/__init__.py,sha256=nN7s-tZDTKJDZpKhl25GS7ZRUSEamlHOw5dlxQH5Cwg,830 -faker/providers/ssn/he_IL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/hr_HR/__init__.py,sha256=wlSGobojooqHc9NvJxEcnrIqalHLeZAyGvlTjPXWHXE,1453 -faker/providers/ssn/hr_HR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/hu_HU/__init__.py,sha256=FXgFpmUhYIIwMfnoYPz8ZdCWGYWnF_kjb9u3FFaoAhg,4387 -faker/providers/ssn/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/it_IT/__init__.py,sha256=56EuS9NaCUudRxfK3UBGGC30IFN6_jhETZWzeX8N16Y,101765 -faker/providers/ssn/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/ko_KR/__init__.py,sha256=oOfa361sNnqp6FEEBikbCRtwIh3WIdpOBmV6DDsuxJ4,252 -faker/providers/ssn/ko_KR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/lb_LU/__init__.py,sha256=s8S2kO4LHNuHJqeCOhFRrWMqxj5sPN8ivBCITlXnEPg,416 -faker/providers/ssn/lb_LU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/lt_LT/__init__.py,sha256=BwYplSKB7VuGNyAuG9rs9KpukMTmSXD5iyZihTnkhfA,451 -faker/providers/ssn/lt_LT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/lv_LV/__init__.py,sha256=o9BIBI9BQlrmbfhMofPiTb7ZlWloAinUDJCGBDimGYI,2257 -faker/providers/ssn/lv_LV/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/mt_MT/__init__.py,sha256=1rOuLbGEw7vt3ggxzT45bwRsijurj9T5z4GqrGSLio4,404 -faker/providers/ssn/mt_MT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/nl_BE/__init__.py,sha256=EN0IM_g-F1RtVBzidw9rLjoXq5C9OTu-B5fV5FhSeuE,2868 -faker/providers/ssn/nl_BE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/nl_NL/__init__.py,sha256=JfpGYoqFH-4xX4brm17JrQlVQdQxiLfZyFBor8WIeLI,1623 -faker/providers/ssn/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/no_NO/__init__.py,sha256=dqUeDDGJZAGZCETxHHKfxavwO56TSMF7ro0GPZkouTY,3299 -faker/providers/ssn/no_NO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/pl_PL/__init__.py,sha256=PB2wMD86JAE3xiVPasXctj4Gr5HCPcIvr_vng-PL6hM,1957 -faker/providers/ssn/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/pt_BR/__init__.py,sha256=w3AbkACbB-5ZXKVHs1arxBWSJnUSuITDyEHyPv4yZk8,1823 -faker/providers/ssn/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/pt_PT/__init__.py,sha256=rlOPkxanq7mqYZy-NmlxMcBs_TBVbBmRvr17I9IFK7o,411 -faker/providers/ssn/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/ro_RO/__init__.py,sha256=gc1Bn2a8gX43-iBxsyKgraWtwFZxeRydhigV5HB0tUM,3472 -faker/providers/ssn/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/ru_RU/__init__.py,sha256=FC5QIj4j_-1kp7GEG3Gjkj29pBth-UYFakIGSajBOLk,106 -faker/providers/ssn/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/sk_SK/__init__.py,sha256=qJJLsnFcP6R0tSky7xeFt-4w7sWVN8gUgN53an6b1DM,1370 -faker/providers/ssn/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/sl_SI/__init__.py,sha256=hZqIBUnX_b0dhB7nOkuim3YwXV-TZ-JZnd4enBd_Sxo,408 -faker/providers/ssn/sl_SI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/sv_SE/__init__.py,sha256=UCeaSDrWccsezcHYeJpvsqv-Hz4wV6HoImbJueTRNm0,3016 -faker/providers/ssn/sv_SE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/th_TH/__init__.py,sha256=YmoOjQqLZ7Irc0NDvOrgGFYrwfG9BDgFpwzNwJ0pv_s,1892 -faker/providers/ssn/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/tl_PH/__init__.py,sha256=_mhNPEIXZQXqS3deHvbJWQj9se7WYoFyEqUG_LPR7Wo,152 -faker/providers/ssn/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/tr_TR/__init__.py,sha256=qmTFLHJS9IZo5ITzpC2bNc9WpJHA9EXIMwVvz4CjerM,1190 -faker/providers/ssn/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/uk_UA/__init__.py,sha256=T5KP18nwg4yqcrYG2M65o_Jm2PTn0nI8PhfZ-dc6tvI,2159 -faker/providers/ssn/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/zh_CN/__init__.py,sha256=7kx5ctZSLuk2Ov5V881tySud6DcNHaoSu7-7VugxxMo,65021 -faker/providers/ssn/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/zh_TW/__init__.py,sha256=29vzvP_cPXScH_V9nap6x3SBsTa-9mG9cfhrhU8Qf1s,1310 -faker/providers/ssn/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/user_agent/__init__.py,sha256=5QKJrkoArdOSR1dW-ne3fGjgLDMr13RYIFFLq-B41LA,11946 -faker/providers/user_agent/__pycache__/__init__.cpython-312.pyc,, -faker/providers/user_agent/en_US/__init__.py,sha256=8kjhwiO9TWN61HA7pJE_yCEofwKzxR4C2yvrd8ffwMc,131 -faker/providers/user_agent/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/proxy.py,sha256=fJfBiIw0qAjwkQGI0_yeYTz7XhS0H9ItDl2qBxnU6pc,16032 -faker/proxy.pyi,sha256=P4Z959fdI0Ns6mxMrSyd-6XxuvVTI-JyJj2DDkLPf5o,149366 -faker/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -faker/sphinx/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -faker/sphinx/__pycache__/__init__.cpython-312.pyc,, -faker/sphinx/__pycache__/autodoc.cpython-312.pyc,, -faker/sphinx/__pycache__/docstring.cpython-312.pyc,, -faker/sphinx/__pycache__/documentor.cpython-312.pyc,, -faker/sphinx/__pycache__/validator.cpython-312.pyc,, -faker/sphinx/autodoc.py,sha256=6ioBWnbmkUW0WFjmChJdiHqM0P0-ka5OIkSGDefT9XY,569 -faker/sphinx/docstring.py,sha256=9dNLYs_gG7a22n0xtV8xAqAq-_ThaXXYtnCFfedAVVo,8527 -faker/sphinx/documentor.py,sha256=mfrfEiSJMHrZHZn9D-oyfIS7PF-5RhM69teCT_48oB4,5678 -faker/sphinx/validator.py,sha256=IyEHxm-Sg2orQAC3CbmF5l9z9xElQl7MIYtX-lfngyM,6602 -faker/typing.py,sha256=bT3MMX5yE_j2dcR6FJ-5_ptQAUGVvp6L3Lu3jVZ7gdM,1192 -faker/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -faker/utils/__pycache__/__init__.cpython-312.pyc,, -faker/utils/__pycache__/checksums.cpython-312.pyc,, -faker/utils/__pycache__/datasets.cpython-312.pyc,, -faker/utils/__pycache__/decorators.cpython-312.pyc,, -faker/utils/__pycache__/distribution.cpython-312.pyc,, -faker/utils/__pycache__/loading.cpython-312.pyc,, -faker/utils/__pycache__/text.cpython-312.pyc,, -faker/utils/checksums.py,sha256=d4Ta5HasZ4mSoZJwlWahWE1n-zBa5Zqc30mjAB7qO-Q,617 -faker/utils/datasets.py,sha256=A28u0kDA6Xu42ApZ6so9R1KLJ7qzZ6QYBzuayisNwbw,229 -faker/utils/decorators.py,sha256=kQIgPcVY6sNglMeYo8L-GlBo9S9a6gCa3rmnb3rPIPA,954 -faker/utils/distribution.py,sha256=DCLEYtjSxrx1cZ2xmIxuh04bcSxBR0bujMjXOsTbQoQ,2310 -faker/utils/loading.py,sha256=cTgEIbbj-FpR_3ddCjMshijrrS1_p_hkvYAFvSIVeUw,1884 -faker/utils/text.py,sha256=eYy_jkKs3KJigyijiQl7HovmJgEdiO-tZh9CEafRNFg,1039 diff --git a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/REQUESTED b/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/REQUESTED deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/WHEEL b/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/WHEEL deleted file mode 100644 index da097d6..0000000 --- a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: setuptools (80.4.0) -Root-Is-Purelib: true -Tag: py3-none-any - diff --git a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/entry_points.txt b/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/entry_points.txt deleted file mode 100644 index 6d03deb..0000000 --- a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/entry_points.txt +++ /dev/null @@ -1,5 +0,0 @@ -[console_scripts] -faker = faker.cli:execute_from_command_line - -[pytest11] -faker = faker.contrib.pytest.plugin diff --git a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/licenses/LICENSE.txt b/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/licenses/LICENSE.txt deleted file mode 100644 index 1e1ef06..0000000 --- a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/licenses/LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2012 Daniele Faraglia - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/top_level.txt b/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/top_level.txt deleted file mode 100644 index 9d7f6e8..0000000 --- a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -faker diff --git a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/zip-safe b/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/zip-safe deleted file mode 100644 index 8b13789..0000000 --- a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/zip-safe +++ /dev/null @@ -1 +0,0 @@ - diff --git a/.venv/lib/python3.12/site-packages/faker/__init__.py b/.venv/lib/python3.12/site-packages/faker/__init__.py deleted file mode 100644 index 685ffdd..0000000 --- a/.venv/lib/python3.12/site-packages/faker/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from faker.factory import Factory -from faker.generator import Generator -from faker.proxy import Faker - -VERSION = "40.18.0" - -__all__ = ("Factory", "Generator", "Faker") diff --git a/.venv/lib/python3.12/site-packages/faker/__main__.py b/.venv/lib/python3.12/site-packages/faker/__main__.py deleted file mode 100644 index 8d846ab..0000000 --- a/.venv/lib/python3.12/site-packages/faker/__main__.py +++ /dev/null @@ -1,4 +0,0 @@ -if __name__ == "__main__": - from .cli import execute_from_command_line - - execute_from_command_line() diff --git a/.venv/lib/python3.12/site-packages/faker/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f222608..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/__pycache__/__main__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/__pycache__/__main__.cpython-312.pyc deleted file mode 100644 index ab9154d..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/__pycache__/__main__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/__pycache__/cli.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/__pycache__/cli.cpython-312.pyc deleted file mode 100644 index d59a6ef..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/__pycache__/cli.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/__pycache__/config.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/__pycache__/config.cpython-312.pyc deleted file mode 100644 index 962320f..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/__pycache__/config.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/__pycache__/documentor.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/__pycache__/documentor.cpython-312.pyc deleted file mode 100644 index ff2a9c4..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/__pycache__/documentor.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/__pycache__/exceptions.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/__pycache__/exceptions.cpython-312.pyc deleted file mode 100644 index 7648333..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/__pycache__/exceptions.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/__pycache__/factory.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/__pycache__/factory.cpython-312.pyc deleted file mode 100644 index e1c4563..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/__pycache__/factory.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/__pycache__/generator.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/__pycache__/generator.cpython-312.pyc deleted file mode 100644 index 8d9d168..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/__pycache__/generator.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/__pycache__/proxy.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/__pycache__/proxy.cpython-312.pyc deleted file mode 100644 index 47b5fd8..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/__pycache__/proxy.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/__pycache__/typing.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/__pycache__/typing.cpython-312.pyc deleted file mode 100644 index 5e0039d..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/__pycache__/typing.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/cli.py b/.venv/lib/python3.12/site-packages/faker/cli.py deleted file mode 100644 index 354eb82..0000000 --- a/.venv/lib/python3.12/site-packages/faker/cli.py +++ /dev/null @@ -1,310 +0,0 @@ -import argparse -import itertools -import logging -import os -import random -import sys -import textwrap - -from io import TextIOWrapper -from pathlib import Path -from typing import Dict, List, Optional, TextIO, TypeVar, Union - -from . import VERSION, Faker, documentor, exceptions -from .config import AVAILABLE_LOCALES, DEFAULT_LOCALE, META_PROVIDERS_MODULES -from .documentor import Documentor -from .providers import BaseProvider - -__author__ = "joke2k" - -T = TypeVar("T") - - -def _encode_for_output(value: str, output: TextIO) -> str: - encoding = getattr(output, "encoding", None) - if encoding is None: - return value - - try: - value.encode(encoding) - except UnicodeEncodeError: - return value.encode(encoding, errors="backslashreplace").decode(encoding) - - return value - - -def print_provider( - doc: Documentor, - provider: BaseProvider, - formatters: Dict[str, T], - excludes: Optional[List[str]] = None, - output: Optional[TextIO] = None, -) -> None: - if output is None: - output = sys.stdout - if excludes is None: - excludes = [] - - print(file=output) - print(_encode_for_output(f"### {doc.get_provider_name(provider)}", output), file=output) - print(file=output) - - margin = max(30, doc.max_name_len + 2) - for signature, example in formatters.items(): - if signature in excludes: - continue - signature_lines = textwrap.wrap(signature, width=margin, subsequent_indent=" ") - try: - lines = textwrap.wrap( - str(example).expandtabs(), - width=150 - margin, - initial_indent="# ", - subsequent_indent=" ", - ) - except UnicodeDecodeError: - # The example is actually made of bytes. - # We could coerce to bytes, but that would fail anyway when we wiil - # try to `print` the line. - lines = [""] - except UnicodeEncodeError: - raise Exception(f"error on {signature!r} with value {example!r}") - for left, right in itertools.zip_longest(signature_lines, lines, fillvalue=""): - line = f"\t{left:<{margin}} {right}" - print(_encode_for_output(line, output), file=output) - - -def print_doc( - provider_or_field: Optional[str] = None, - args: Optional[List[T]] = None, - lang: str = DEFAULT_LOCALE, - output: Optional[Union[TextIO, TextIOWrapper]] = None, - seed: Optional[float] = None, - includes: Optional[List[str]] = None, -) -> None: - if args is None: - args = [] - if output is None: - output = sys.stdout - fake = Faker(locale=lang, includes=includes) - fake.seed_instance(seed) - - from faker.providers import BaseProvider - - base_provider_formatters = list(dir(BaseProvider)) - - if provider_or_field: - if "." in provider_or_field: - parts = provider_or_field.split(".") - locale = parts[-2] if parts[-2] in AVAILABLE_LOCALES else lang - fake = Faker(locale, providers=[provider_or_field], includes=includes) - fake.seed_instance(seed) - doc = documentor.Documentor(fake) - doc.already_generated = base_provider_formatters - print_provider( - doc, - fake.get_providers()[0], - doc.get_provider_formatters(fake.get_providers()[0]), - output=output, - ) - else: - try: - print(fake.format(provider_or_field, *args), end="", file=output) - except AttributeError: - raise ValueError(f'No faker found for "{provider_or_field}({args})"') - - else: - doc = documentor.Documentor(fake) - unsupported: List[str] = [] - - while True: - try: - formatters = doc.get_formatters(with_args=True, with_defaults=True, excludes=unsupported) - except exceptions.UnsupportedFeature as e: - unsupported.append(e.name) - else: - break - - for provider, fakers in formatters: - print_provider(doc, provider, fakers, output=output) - - -class Command: - def __init__(self, argv: Optional[str] = None) -> None: - self.argv = argv or sys.argv[:] - self.prog_name = Path(self.argv[0]).name - - def execute(self) -> None: - """ - Given the command-line arguments, this creates a parser appropriate - to that command, and runs it. - """ - - # retrieve default language from system environment - default_locale = os.environ.get("LANG", "en_US").split(".")[0] - if default_locale not in AVAILABLE_LOCALES: - default_locale = DEFAULT_LOCALE - - epilog = f"""supported locales: - - {', '.join(sorted(AVAILABLE_LOCALES))} - - Faker can take a locale as an optional argument, to return localized data. If - no locale argument is specified, the factory falls back to the user's OS - locale as long as it is supported by at least one of the providers. - - for this user, the default locale is {default_locale}. - - If the optional argument locale and/or user's default locale is not available - for the specified provider, the factory falls back to faker's default locale, - which is {DEFAULT_LOCALE}. - -examples: - - $ faker address - 968 Bahringer Garden Apt. 722 - Kristinaland, NJ 09890 - - $ faker -l de_DE address - Samira-Niemeier-Allee 56 - 94812 Biedenkopf - - $ faker profile ssn,birthdate - {{'ssn': u'628-10-1085', 'birthdate': '2008-03-29'}} - - $ faker -r=3 -s=";" name - Willam Kertzmann; - Josiah Maggio; - Gayla Schmitt; - -""" - - formatter_class = argparse.RawDescriptionHelpFormatter - parser = argparse.ArgumentParser( - prog=self.prog_name, - description=f"{self.prog_name} version {VERSION}", - epilog=epilog, - formatter_class=formatter_class, - ) - - parser.add_argument("--version", action="version", version=f"%(prog)s {VERSION}") - - parser.add_argument( - "-v", - "--verbose", - action="store_true", - help="show INFO logging events instead " - "of CRITICAL, which is the default. These logging " - "events provide insight into localization of " - "specific providers.", - ) - - parser.add_argument( - "-o", - metavar="output", - type=argparse.FileType("w"), - default=sys.stdout, - help="redirect output to a file", - ) - - parser.add_argument( - "-l", - "--lang", - choices=AVAILABLE_LOCALES, - default=default_locale, - metavar="LOCALE", - help="specify the language for a localized provider (e.g. de_DE)", - ) - parser.add_argument( - "-r", - "--repeat", - default=1, - type=int, - help="generate the specified number of outputs", - ) - parser.add_argument( - "-s", - "--sep", - default="\n", - help="use the specified separator after each output", - ) - - parser.add_argument( - "--seed", - metavar="SEED", - type=int, - help="specify a seed for the random generator so " - "that results are repeatable. Also compatible " - "with 'repeat' option", - ) - - parser.add_argument( - "-i", - "--include", - action="append", - help="list of additional custom providers to " - "user, given as the import path of the module " - "containing your Provider class (not the provider " - "class itself)", - ) - - parser.add_argument( - "fake", - action="store", - nargs="?", - help="name of the fake to generate output for (e.g. profile)", - ) - - parser.add_argument( - "fake_args", - metavar="fake argument", - action="store", - nargs="*", - help="optional arguments to pass to the fake " - "(e.g. the profile fake takes an optional " - "list of comma separated field names as the " - "first argument)", - ) - - arguments = parser.parse_args(self.argv[1:]) - if arguments.include is None: - arguments.include = META_PROVIDERS_MODULES - - if arguments.verbose: - logging.basicConfig(level=logging.DEBUG) - else: - logging.basicConfig(level=logging.CRITICAL) - - random.seed(arguments.seed) - seeds = [random.random() for _ in range(arguments.repeat)] - - for i in range(arguments.repeat): - print_doc( - arguments.fake, - arguments.fake_args, - lang=arguments.lang, - output=arguments.o, - seed=seeds[i], - includes=arguments.include, - ) - print(arguments.sep, file=arguments.o) - - if not arguments.fake: - # repeat not supported for all docs - break - - -def execute_from_command_line(argv: Optional[str] = None) -> None: - """A simple method that runs a Command.""" - if sys.stdout.encoding is None: - print( - "please set python env PYTHONIOENCODING=UTF-8, example: " - "export PYTHONIOENCODING=UTF-8, when writing to stdout", - file=sys.stderr, - ) - exit(1) - - command = Command(argv) - command.execute() - - -if __name__ == "__main__": - execute_from_command_line() diff --git a/.venv/lib/python3.12/site-packages/faker/config.py b/.venv/lib/python3.12/site-packages/faker/config.py deleted file mode 100644 index e668c37..0000000 --- a/.venv/lib/python3.12/site-packages/faker/config.py +++ /dev/null @@ -1,13 +0,0 @@ -from importlib import import_module - -from .utils.loading import find_available_locales, find_available_providers - -DEFAULT_LOCALE = "en_US" - -META_PROVIDERS_MODULES = [ - "faker.providers", -] - -PROVIDERS = find_available_providers([import_module(path) for path in META_PROVIDERS_MODULES]) - -AVAILABLE_LOCALES = find_available_locales(PROVIDERS) diff --git a/.venv/lib/python3.12/site-packages/faker/contrib/__init__.py b/.venv/lib/python3.12/site-packages/faker/contrib/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/faker/contrib/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/contrib/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index c362593..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/contrib/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/contrib/pytest/__init__.py b/.venv/lib/python3.12/site-packages/faker/contrib/pytest/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/faker/contrib/pytest/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/contrib/pytest/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e5c0c8a..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/contrib/pytest/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/contrib/pytest/__pycache__/plugin.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/contrib/pytest/__pycache__/plugin.cpython-312.pyc deleted file mode 100644 index 87a89e7..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/contrib/pytest/__pycache__/plugin.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/contrib/pytest/plugin.py b/.venv/lib/python3.12/site-packages/faker/contrib/pytest/plugin.py deleted file mode 100644 index dab476b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/contrib/pytest/plugin.py +++ /dev/null @@ -1,38 +0,0 @@ -import pytest - -from faker import Faker -from faker.config import DEFAULT_LOCALE - -DEFAULT_SEED = 0 - - -@pytest.fixture(scope="session", autouse=True) -def _session_faker(request): - """Fixture that stores the session level ``Faker`` instance. - - This fixture is internal and is only meant for use within the project. - Third parties should instead use the ``faker`` fixture for their tests. - """ - if "faker_session_locale" in request.fixturenames: - locale = request.getfixturevalue("faker_session_locale") - else: - locale = [DEFAULT_LOCALE] - return Faker(locale=locale) - - -@pytest.fixture() -def faker(request): - """Fixture that returns a seeded and suitable ``Faker`` instance.""" - if "faker_locale" in request.fixturenames: - locale = request.getfixturevalue("faker_locale") - fake = Faker(locale=locale) - else: - fake = request.getfixturevalue("_session_faker") - - seed = DEFAULT_SEED - if "faker_seed" in request.fixturenames: - seed = request.getfixturevalue("faker_seed") - fake.seed_instance(seed=seed) - fake.unique.clear() - - return fake diff --git a/.venv/lib/python3.12/site-packages/faker/decode/__init__.py b/.venv/lib/python3.12/site-packages/faker/decode/__init__.py deleted file mode 100644 index 544c657..0000000 --- a/.venv/lib/python3.12/site-packages/faker/decode/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -from .codes import codes - - -def unidecode(txt: str) -> str: - chars = "" - for ch in txt: - codepoint = ord(ch) - - try: - chars += codes[codepoint] - except IndexError: - pass - return chars diff --git a/.venv/lib/python3.12/site-packages/faker/decode/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/decode/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 361fcab..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/decode/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/decode/__pycache__/codes.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/decode/__pycache__/codes.cpython-312.pyc deleted file mode 100644 index ef8f31a..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/decode/__pycache__/codes.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/decode/codes.py b/.venv/lib/python3.12/site-packages/faker/decode/codes.py deleted file mode 100644 index 1b82971..0000000 --- a/.venv/lib/python3.12/site-packages/faker/decode/codes.py +++ /dev/null @@ -1,65538 +0,0 @@ -codes = ( - "\x00", - "\x01", - "\x02", - "\x03", - "\x04", - "\x05", - "\x06", - "\x07", - "\x08", - "\t", - "\n", - "\x0b", - "\x0c", - "\r", - "\x0e", - "\x0f", - "\x10", - "\x11", - "\x12", - "\x13", - "\x14", - "\x15", - "\x16", - "\x17", - "\x18", - "\x19", - "\x1a", - "\x1b", - "\x1c", - "\x1d", - "\x1e", - "\x1f", - " ", - "!", - '"', - "#", - "$", - "%", - "&", - "'", - "(", - ")", - "*", - "+", - ",", - "-", - ".", - "/", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - ":", - ";", - "<", - "=", - ">", - "?", - "@", - "A", - "B", - "C", - "D", - "E", - "F", - "G", - "H", - "I", - "J", - "K", - "L", - "M", - "N", - "O", - "P", - "Q", - "R", - "S", - "T", - "U", - "V", - "W", - "X", - "Y", - "Z", - "[", - "\\", - "]", - "^", - "_", - "`", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "{", - "|", - "}", - "~", - "\x7f", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - " ", - "!", - "C/", - "PS", - "$?", - "Y=", - "|", - "SS", - '"', - "(c)", - "a", - "<<", - "!", - "", - "(r)", - "-", - "deg", - "+-", - "2", - "3", - "'", - "u", - "P", - "*", - ",", - "1", - "o", - ">>", - "1/4", - "1/2", - "3/4", - "?", - "A", - "A", - "A", - "A", - "A", - "A", - "AE", - "C", - "E", - "E", - "E", - "E", - "I", - "I", - "I", - "I", - "D", - "N", - "O", - "O", - "O", - "O", - "O", - "x", - "O", - "U", - "U", - "U", - "U", - "Y", - "Th", - "ss", - "a", - "a", - "a", - "a", - "a", - "a", - "ae", - "c", - "e", - "e", - "e", - "e", - "i", - "i", - "i", - "i", - "d", - "n", - "o", - "o", - "o", - "o", - "o", - "/", - "o", - "u", - "u", - "u", - "u", - "y", - "th", - "y", - "A", - "a", - "A", - "a", - "A", - "a", - "C", - "c", - "C", - "c", - "C", - "c", - "C", - "c", - "D", - "d", - "D", - "d", - "E", - "e", - "E", - "e", - "E", - "e", - "E", - "e", - "E", - "e", - "G", - "g", - "G", - "g", - "G", - "g", - "G", - "g", - "H", - "h", - "H", - "h", - "I", - "i", - "I", - "i", - "I", - "i", - "I", - "i", - "I", - "i", - "IJ", - "ij", - "J", - "j", - "K", - "k", - "k", - "L", - "l", - "L", - "l", - "L", - "l", - "L", - "l", - "L", - "l", - "N", - "n", - "N", - "n", - "N", - "n", - "'n", - "ng", - "NG", - "O", - "o", - "O", - "o", - "O", - "o", - "OE", - "oe", - "R", - "r", - "R", - "r", - "R", - "r", - "S", - "s", - "S", - "s", - "S", - "s", - "S", - "s", - "T", - "t", - "T", - "t", - "T", - "t", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "W", - "w", - "Y", - "y", - "Y", - "Z", - "z", - "Z", - "z", - "Z", - "z", - "s", - "b", - "B", - "B", - "b", - "6", - "6", - "O", - "C", - "c", - "D", - "D", - "D", - "d", - "d", - "3", - "@", - "E", - "F", - "f", - "G", - "G", - "hv", - "I", - "I", - "K", - "k", - "l", - "l", - "W", - "N", - "n", - "O", - "O", - "o", - "OI", - "oi", - "P", - "p", - "YR", - "2", - "2", - "SH", - "sh", - "t", - "T", - "t", - "T", - "U", - "u", - "Y", - "V", - "Y", - "y", - "Z", - "z", - "ZH", - "ZH", - "zh", - "zh", - "2", - "5", - "5", - "ts", - "w", - "|", - "||", - "|=", - "!", - "DZ", - "Dz", - "dz", - "LJ", - "Lj", - "lj", - "NJ", - "Nj", - "nj", - "A", - "a", - "I", - "i", - "O", - "o", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "@", - "A", - "a", - "A", - "a", - "AE", - "ae", - "G", - "g", - "G", - "g", - "K", - "k", - "O", - "o", - "O", - "o", - "ZH", - "zh", - "j", - "DZ", - "Dz", - "dz", - "G", - "g", - "HV", - "W", - "N", - "n", - "A", - "a", - "AE", - "ae", - "O", - "o", - "A", - "a", - "A", - "a", - "E", - "e", - "E", - "e", - "I", - "i", - "I", - "i", - "O", - "o", - "O", - "o", - "R", - "r", - "R", - "r", - "U", - "u", - "U", - "u", - "S", - "s", - "T", - "t", - "Y", - "y", - "H", - "h", - "N", - "d", - "OU", - "ou", - "Z", - "z", - "A", - "a", - "E", - "e", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "Y", - "y", - "l", - "n", - "t", - "j", - "db", - "qp", - "A", - "C", - "c", - "L", - "T", - "s", - "z", - "[?]", - "[?]", - "B", - "U", - "^", - "E", - "e", - "J", - "j", - "q", - "q", - "R", - "r", - "Y", - "y", - "a", - "a", - "a", - "b", - "o", - "c", - "d", - "d", - "e", - "@", - "@", - "e", - "e", - "e", - "e", - "j", - "g", - "g", - "g", - "g", - "u", - "Y", - "h", - "h", - "i", - "i", - "I", - "l", - "l", - "l", - "lZ", - "W", - "W", - "m", - "n", - "n", - "n", - "o", - "OE", - "O", - "F", - "r", - "r", - "r", - "r", - "r", - "r", - "r", - "R", - "R", - "s", - "S", - "j", - "S", - "S", - "t", - "t", - "u", - "U", - "v", - "^", - "w", - "y", - "Y", - "z", - "z", - "Z", - "Z", - "?", - "?", - "?", - "C", - "@", - "B", - "E", - "G", - "H", - "j", - "k", - "L", - "q", - "?", - "?", - "dz", - "dZ", - "dz", - "ts", - "tS", - "tC", - "fN", - "ls", - "lz", - "WW", - "]]", - "h", - "h", - "h", - "h", - "j", - "r", - "r", - "r", - "r", - "w", - "y", - "'", - '"', - "`", - "'", - "`", - "`", - "'", - "?", - "?", - "<", - ">", - "^", - "V", - "^", - "V", - "'", - "-", - "/", - "\\", - ",", - "_", - "\\", - "/", - ":", - ".", - "`", - "'", - "^", - "V", - "+", - "-", - "V", - ".", - "@", - ",", - "~", - '"', - "R", - "X", - "G", - "l", - "s", - "x", - "?", - "", - "", - "", - "", - "", - "", - "", - "V", - "=", - '"', - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "a", - "e", - "i", - "o", - "u", - "c", - "d", - "h", - "m", - "r", - "t", - "v", - "x", - "[?]", - "[?]", - "[?]", - "[?]", - "'", - ",", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "[?]", - "[?]", - "[?]", - "?", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "A", - ";", - "E", - "E", - "I", - "[?]", - "O", - "[?]", - "U", - "O", - "I", - "A", - "B", - "G", - "D", - "E", - "Z", - "E", - "Th", - "I", - "K", - "L", - "M", - "N", - "Ks", - "O", - "P", - "R", - "[?]", - "S", - "T", - "U", - "Ph", - "Kh", - "Ps", - "O", - "I", - "U", - "a", - "e", - "e", - "i", - "u", - "a", - "b", - "g", - "d", - "e", - "z", - "e", - "th", - "i", - "k", - "l", - "m", - "n", - "x", - "o", - "p", - "r", - "s", - "s", - "t", - "u", - "ph", - "kh", - "ps", - "o", - "i", - "u", - "o", - "u", - "o", - "[?]", - "b", - "th", - "U", - "U", - "U", - "ph", - "p", - "&", - "[?]", - "[?]", - "St", - "st", - "W", - "w", - "Q", - "q", - "Sp", - "sp", - "Sh", - "sh", - "F", - "f", - "Kh", - "kh", - "H", - "h", - "G", - "g", - "CH", - "ch", - "Ti", - "ti", - "k", - "r", - "c", - "j", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "Ie", - "Io", - "Dj", - "Gj", - "E", - "Dz", - "I", - "Yi", - "J", - "Lj", - "Nj", - "Tsh", - "Kj", - "I", - "U", - "Dzh", - "A", - "B", - "V", - "G", - "D", - "E", - "Zh", - "Z", - "I", - "I", - "K", - "L", - "M", - "N", - "O", - "P", - "R", - "S", - "T", - "U", - "F", - "Kh", - "Ts", - "Ch", - "Sh", - "Shch", - "", - "Y", - "'", - "E", - "Iu", - "Ia", - "a", - "b", - "v", - "g", - "d", - "e", - "zh", - "z", - "i", - "i", - "k", - "l", - "m", - "n", - "o", - "p", - "r", - "s", - "t", - "u", - "f", - "kh", - "ts", - "ch", - "sh", - "shch", - "", - "y", - "'", - "e", - "iu", - "ia", - "ie", - "io", - "dj", - "gj", - "ie", - "dz", - "i", - "yi", - "j", - "lj", - "nj", - "tsh", - "kj", - "i", - "u", - "dzh", - "O", - "o", - "E", - "e", - "Ie", - "ie", - "E", - "e", - "Ie", - "ie", - "O", - "o", - "Io", - "io", - "Ks", - "ks", - "Ps", - "ps", - "F", - "f", - "Y", - "y", - "Y", - "y", - "u", - "u", - "O", - "o", - "O", - "o", - "Ot", - "ot", - "Q", - "q", - "*1000*", - "", - "", - "", - "", - "[?]", - "*100.000*", - "*1.000.000*", - "[?]", - "[?]", - '"', - '"', - "R'", - "r'", - "G'", - "g'", - "G'", - "g'", - "G'", - "g'", - "Zh'", - "zh'", - "Z'", - "z'", - "K'", - "k'", - "K'", - "k'", - "K'", - "k'", - "K'", - "k'", - "N'", - "n'", - "Ng", - "ng", - "P'", - "p'", - "Kh", - "kh", - "S'", - "s'", - "T'", - "t'", - "U", - "u", - "U'", - "u'", - "Kh'", - "kh'", - "Tts", - "tts", - "Ch'", - "ch'", - "Ch'", - "ch'", - "H", - "h", - "Ch", - "ch", - "Ch'", - "ch'", - "`", - "Zh", - "zh", - "K'", - "k'", - "[?]", - "[?]", - "N'", - "n'", - "[?]", - "[?]", - "Ch", - "ch", - "[?]", - "[?]", - "[?]", - "a", - "a", - "A", - "a", - "Ae", - "ae", - "Ie", - "ie", - "@", - "@", - "@", - "@", - "Zh", - "zh", - "Z", - "z", - "Dz", - "dz", - "I", - "i", - "I", - "i", - "O", - "o", - "O", - "o", - "O", - "o", - "E", - "e", - "U", - "u", - "U", - "u", - "U", - "u", - "Ch", - "ch", - "[?]", - "[?]", - "Y", - "y", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "A", - "B", - "G", - "D", - "E", - "Z", - "E", - "E", - "T`", - "Zh", - "I", - "L", - "Kh", - "Ts", - "K", - "H", - "Dz", - "Gh", - "Ch", - "M", - "Y", - "N", - "Sh", - "O", - "Ch`", - "P", - "J", - "Rh", - "S", - "V", - "T", - "R", - "Ts`", - "W", - "P`", - "K`", - "O", - "F", - "[?]", - "[?]", - "<", - "'", - "/", - "!", - ",", - "?", - ".", - "[?]", - "a", - "b", - "g", - "d", - "e", - "z", - "e", - "e", - "t`", - "zh", - "i", - "l", - "kh", - "ts", - "k", - "h", - "dz", - "gh", - "ch", - "m", - "y", - "n", - "sh", - "o", - "ch`", - "p", - "j", - "rh", - "s", - "v", - "t", - "r", - "ts`", - "w", - "p`", - "k`", - "o", - "f", - "ew", - "[?]", - ".", - "-", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "@", - "e", - "a", - "o", - "i", - "e", - "e", - "a", - "a", - "o", - "[?]", - "u", - "'", - "", - "", - "", - "|", - "", - "", - ":", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "b", - "g", - "d", - "h", - "v", - "z", - "kh", - "t", - "y", - "k", - "k", - "l", - "m", - "m", - "n", - "n", - "s", - "`", - "p", - "p", - "ts", - "ts", - "q", - "r", - "sh", - "t", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "V", - "oy", - "i", - "'", - '"', - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - ",", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - ";", - "[?]", - "[?]", - "[?]", - "?", - "[?]", - "", - "a", - "'", - "w'", - "", - "y'", - "", - "b", - "@", - "t", - "th", - "j", - "H", - "kh", - "d", - "dh", - "r", - "z", - "s", - "sh", - "S", - "D", - "T", - "Z", - "`", - "G", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "f", - "q", - "k", - "l", - "m", - "n", - "h", - "w", - "~", - "y", - "an", - "un", - "in", - "a", - "u", - "i", - "W", - "", - "", - "'", - "'", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "%", - ".", - ",", - "*", - "[?]", - "[?]", - "", - "'", - "'", - "'", - "", - "'", - "'w", - "'u", - "'y", - "tt", - "tth", - "b", - "t", - "T", - "p", - "th", - "bh", - "'h", - "H", - "ny", - "dy", - "H", - "ch", - "cch", - "dd", - "D", - "D", - "Dt", - "dh", - "ddh", - "d", - "D", - "D", - "rr", - "R", - "R", - "R", - "R", - "R", - "R", - "j", - "R", - "S", - "S", - "S", - "S", - "S", - "T", - "GH", - "F", - "F", - "F", - "v", - "f", - "ph", - "Q", - "Q", - "kh", - "k", - "K", - "K", - "ng", - "K", - "g", - "G", - "N", - "G", - "G", - "G", - "L", - "L", - "L", - "L", - "N", - "N", - "N", - "N", - "N", - "h", - "Ch", - "hy", - "h", - "H", - "@", - "W", - "oe", - "oe", - "u", - "yu", - "yu", - "W", - "v", - "y", - "Y", - "Y", - "W", - "", - "", - "y", - "y'", - ".", - "ae", - "", - "", - "", - "", - "", - "", - "", - "@", - "#", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "^", - "", - "", - "", - "", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "Sh", - "D", - "Gh", - "&", - "+m", - "[?] ", - "//", - "/", - ",", - "!", - "!", - "-", - ",", - ",", - ";", - "?", - "~", - "{", - "}", - "*", - "[?]", - "", - "'", - "", - "b", - "g", - "g", - "d", - "d", - "h", - "w", - "z", - "H", - "t", - "t", - "y", - "yh", - "k", - "l", - "m", - "n", - "s", - "s", - "`", - "p", - "p", - "S", - "q", - "r", - "sh", - "t", - "[?]", - "[?]", - "[?]", - "a", - "a", - "a", - "A", - "A", - "A", - "e", - "e", - "e", - "E", - "i", - "i", - "u", - "u", - "u", - "o", - "", - "`", - "'", - "", - "", - "X", - "Q", - "@", - "@", - "|", - "+", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "h", - "sh", - "n", - "r", - "b", - "L", - "k", - "'", - "v", - "m", - "f", - "dh", - "th", - "l", - "g", - "ny", - "s", - "d", - "z", - "t", - "y", - "p", - "j", - "ch", - "tt", - "hh", - "kh", - "th", - "z", - "sh", - "s", - "d", - "t", - "z", - "`", - "gh", - "q", - "w", - "a", - "aa", - "i", - "ee", - "u", - "oo", - "e", - "ey", - "o", - "oa", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?]", - "N", - "N", - "H", - "[?]", - "a", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "L", - "eN", - "e", - "e", - "ai", - "oN", - "o", - "o", - "au", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "nnn", - "p", - "ph", - "b", - "bh", - "m", - "y", - "r", - "rr", - "l", - "l", - "lll", - "v", - "sh", - "ss", - "s", - "h", - "[?]", - "[?]", - "'", - "'", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "RR", - "eN", - "e", - "e", - "ai", - "oN", - "o", - "o", - "au", - "", - "[?]", - "[?]", - "AUM", - "'", - "'", - "`", - "'", - "[?]", - "[?]", - "[?]", - "q", - "khh", - "ghh", - "z", - "dddh", - "rh", - "f", - "yy", - "RR", - "LL", - "L", - "LL", - " / ", - " // ", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - ".", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "N", - "N", - "H", - "[?]", - "a", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "RR", - "[?]", - "[?]", - "e", - "ai", - "[?]", - "[?]", - "o", - "au", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "[?]", - "p", - "ph", - "b", - "bh", - "m", - "y", - "r", - "[?]", - "l", - "[?]", - "[?]", - "[?]", - "sh", - "ss", - "s", - "h", - "[?]", - "[?]", - "'", - "[?]", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "RR", - "[?]", - "[?]", - "e", - "ai", - "[?]", - "[?]", - "o", - "au", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "+", - "[?]", - "[?]", - "[?]", - "[?]", - "rr", - "rh", - "[?]", - "yy", - "RR", - "LL", - "L", - "LL", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "r'", - "r`", - "Rs", - "Rs", - "1/", - "2/", - "3/", - "4/", - " 1 - 1/", - "/16", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "[?]", - "N", - "[?]", - "[?]", - "a", - "aa", - "i", - "ii", - "u", - "uu", - "[?]", - "[?]", - "[?]", - "[?]", - "ee", - "ai", - "[?]", - "[?]", - "oo", - "au", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "[?]", - "p", - "ph", - "b", - "bb", - "m", - "y", - "r", - "[?]", - "l", - "ll", - "[?]", - "v", - "sh", - "[?]", - "s", - "h", - "[?]", - "[?]", - "'", - "[?]", - "aa", - "i", - "ii", - "u", - "uu", - "[?]", - "[?]", - "[?]", - "[?]", - "ee", - "ai", - "[?]", - "[?]", - "oo", - "au", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "khh", - "ghh", - "z", - "rr", - "[?]", - "f", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "N", - "H", - "", - "", - "G.E.O.", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "N", - "N", - "H", - "[?]", - "a", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "[?]", - "eN", - "[?]", - "e", - "ai", - "oN", - "[?]", - "o", - "au", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "[?]", - "p", - "ph", - "b", - "bh", - "m", - "ya", - "r", - "[?]", - "l", - "ll", - "[?]", - "v", - "sh", - "ss", - "s", - "h", - "[?]", - "[?]", - "'", - "'", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "RR", - "eN", - "[?]", - "e", - "ai", - "oN", - "[?]", - "o", - "au", - "", - "[?]", - "[?]", - "AUM", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "RR", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "N", - "N", - "H", - "[?]", - "a", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "L", - "[?]", - "[?]", - "e", - "ai", - "[?]", - "[?]", - "o", - "au", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "[?]", - "p", - "ph", - "b", - "bh", - "m", - "y", - "r", - "[?]", - "l", - "ll", - "[?]", - "", - "sh", - "ss", - "s", - "h", - "[?]", - "[?]", - "'", - "'", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "[?]", - "[?]", - "[?]", - "e", - "ai", - "[?]", - "[?]", - "o", - "au", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "+", - "+", - "[?]", - "[?]", - "[?]", - "[?]", - "rr", - "rh", - "[?]", - "yy", - "RR", - "LL", - "[?]", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "N", - "H", - "[?]", - "a", - "aa", - "i", - "ii", - "u", - "uu", - "[?]", - "[?]", - "[?]", - "e", - "ee", - "ai", - "[?]", - "o", - "oo", - "au", - "k", - "[?]", - "[?]", - "[?]", - "ng", - "c", - "[?]", - "j", - "[?]", - "ny", - "tt", - "[?]", - "[?]", - "[?]", - "nn", - "t", - "[?]", - "[?]", - "[?]", - "n", - "nnn", - "p", - "[?]", - "[?]", - "[?]", - "m", - "y", - "r", - "rr", - "l", - "ll", - "lll", - "v", - "[?]", - "ss", - "s", - "h", - "[?]", - "[?]", - "[?]", - "[?]", - "aa", - "i", - "ii", - "u", - "uu", - "[?]", - "[?]", - "[?]", - "e", - "ee", - "ai", - "[?]", - "o", - "oo", - "au", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "+", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "+10+", - "+100+", - "+1000+", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "N", - "N", - "H", - "[?]", - "a", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "L", - "[?]", - "e", - "ee", - "ai", - "[?]", - "o", - "oo", - "au", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "[?]", - "p", - "ph", - "b", - "bh", - "m", - "y", - "r", - "rr", - "l", - "ll", - "[?]", - "v", - "sh", - "ss", - "s", - "h", - "[?]", - "[?]", - "[?]", - "[?]", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "RR", - "[?]", - "e", - "ee", - "ai", - "[?]", - "o", - "oo", - "au", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "+", - "+", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "RR", - "LL", - "[?]", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "N", - "H", - "[?]", - "a", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "L", - "[?]", - "e", - "ee", - "ai", - "[?]", - "o", - "oo", - "au", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "[?]", - "p", - "ph", - "b", - "bh", - "m", - "y", - "r", - "rr", - "l", - "ll", - "[?]", - "v", - "sh", - "ss", - "s", - "h", - "[?]", - "[?]", - "[?]", - "[?]", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "RR", - "[?]", - "e", - "ee", - "ai", - "[?]", - "o", - "oo", - "au", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "+", - "+", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "lll", - "[?]", - "RR", - "LL", - "[?]", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "[?]", - "N", - "H", - "[?]", - "a", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "L", - "[?]", - "e", - "ee", - "ai", - "[?]", - "o", - "oo", - "au", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "[?]", - "p", - "ph", - "b", - "bh", - "m", - "y", - "r", - "rr", - "l", - "ll", - "lll", - "v", - "sh", - "ss", - "s", - "h", - "[?]", - "[?]", - "[?]", - "[?]", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "[?]", - "[?]", - "e", - "ee", - "ai", - "", - "o", - "oo", - "au", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "+", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "RR", - "LL", - "[?]", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "N", - "H", - "[?]", - "a", - "aa", - "ae", - "aae", - "i", - "ii", - "u", - "uu", - "R", - "RR", - "L", - "LL", - "e", - "ee", - "ai", - "o", - "oo", - "au", - "[?]", - "[?]", - "[?]", - "k", - "kh", - "g", - "gh", - "ng", - "nng", - "c", - "ch", - "j", - "jh", - "ny", - "jny", - "nyj", - "tt", - "tth", - "dd", - "ddh", - "nn", - "nndd", - "t", - "th", - "d", - "dh", - "n", - "[?]", - "nd", - "p", - "ph", - "b", - "bh", - "m", - "mb", - "y", - "r", - "[?]", - "l", - "[?]", - "[?]", - "v", - "sh", - "ss", - "s", - "h", - "ll", - "f", - "[?]", - "[?]", - "[?]", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "aa", - "ae", - "aae", - "i", - "ii", - "u", - "[?]", - "uu", - "[?]", - "R", - "e", - "ee", - "ai", - "o", - "oo", - "au", - "L", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "RR", - "LL", - " . ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "k", - "kh", - "kh", - "kh", - "kh", - "kh", - "ng", - "cch", - "ch", - "ch", - "ch", - "ch", - "y", - "d", - "t", - "th", - "th", - "th", - "n", - "d", - "t", - "th", - "th", - "th", - "n", - "b", - "p", - "ph", - "f", - "ph", - "f", - "ph", - "m", - "y", - "r", - "R", - "l", - "L", - "w", - "s", - "s", - "s", - "h", - "l", - "`", - "h", - "~", - "a", - "a", - "aa", - "am", - "i", - "ii", - "ue", - "uue", - "u", - "uu", - "'", - "[?]", - "[?]", - "[?]", - "[?]", - "Bh.", - "e", - "ae", - "o", - "ai", - "ai", - "ao", - "+", - "", - "", - "", - "", - "", - "", - "M", - "", - " * ", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - " // ", - " /// ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "k", - "kh", - "[?]", - "kh", - "[?]", - "[?]", - "ng", - "ch", - "[?]", - "s", - "[?]", - "[?]", - "ny", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "d", - "h", - "th", - "th", - "[?]", - "n", - "b", - "p", - "ph", - "f", - "ph", - "f", - "[?]", - "m", - "y", - "r", - "[?]", - "l", - "[?]", - "w", - "[?]", - "[?]", - "s", - "h", - "[?]", - "`", - "", - "~", - "a", - "", - "aa", - "am", - "i", - "ii", - "y", - "yy", - "u", - "uu", - "[?]", - "o", - "l", - "ny", - "[?]", - "[?]", - "e", - "ei", - "o", - "ay", - "ai", - "[?]", - "+", - "[?]", - "", - "", - "", - "", - "", - "M", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "[?]", - "[?]", - "hn", - "hm", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "AUM", - "", - "", - "", - "", - "", - "", - "", - " // ", - " * ", - "", - "-", - " / ", - " / ", - " // ", - " -/ ", - " +/ ", - " X/ ", - " /XX/ ", - " /X/ ", - ", ", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - ".5", - "1.5", - "2.5", - "3.5", - "4.5", - "5.5", - "6.5", - "7.5", - "8.5", - "-.5", - "+", - "*", - "^", - "_", - "", - "~", - "[?]", - "]", - "[[", - "]]", - "", - "", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "[?]", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "p", - "ph", - "b", - "bh", - "m", - "ts", - "tsh", - "dz", - "dzh", - "w", - "zh", - "z", - "'", - "y", - "r", - "l", - "sh", - "ssh", - "s", - "h", - "a", - "kss", - "r", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "RR", - "L", - "LL", - "e", - "ee", - "o", - "oo", - "M", - "H", - "i", - "ii", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "[?]", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "p", - "ph", - "b", - "bh", - "m", - "ts", - "tsh", - "dz", - "dzh", - "w", - "zh", - "z", - "'", - "y", - "r", - "l", - "sh", - "ss", - "s", - "h", - "a", - "kss", - "w", - "y", - "r", - "[?]", - "X", - " :X: ", - " /O/ ", - " /o/ ", - " \\o\\ ", - " (O) ", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "nny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "tt", - "th", - "d", - "dh", - "n", - "p", - "ph", - "b", - "bh", - "m", - "y", - "r", - "l", - "w", - "s", - "h", - "ll", - "a", - "[?]", - "i", - "ii", - "u", - "uu", - "e", - "[?]", - "o", - "au", - "[?]", - "aa", - "i", - "ii", - "u", - "uu", - "e", - "ai", - "[?]", - "[?]", - "[?]", - "N", - "'", - ":", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - " / ", - " // ", - "n*", - "r*", - "l*", - "e*", - "sh", - "ss", - "R", - "RR", - "L", - "LL", - "R", - "RR", - "L", - "LL", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "A", - "B", - "G", - "D", - "E", - "V", - "Z", - "T`", - "I", - "K", - "L", - "M", - "N", - "O", - "P", - "Zh", - "R", - "S", - "T", - "U", - "P`", - "K`", - "G'", - "Q", - "Sh", - "Ch`", - "C`", - "Z'", - "C", - "Ch", - "X", - "J", - "H", - "E", - "Y", - "W", - "Xh", - "OE", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "a", - "b", - "g", - "d", - "e", - "v", - "z", - "t`", - "i", - "k", - "l", - "m", - "n", - "o", - "p", - "zh", - "r", - "s", - "t", - "u", - "p`", - "k`", - "g'", - "q", - "sh", - "ch`", - "c`", - "z'", - "c", - "ch", - "x", - "j", - "h", - "e", - "y", - "w", - "xh", - "oe", - "f", - "[?]", - "[?]", - "[?]", - "[?]", - " // ", - "[?]", - "[?]", - "[?]", - "[?] ", - "g", - "gg", - "n", - "d", - "dd", - "r", - "m", - "b", - "bb", - "s", - "ss", - "", - "j", - "jj", - "c", - "k", - "t", - "p", - "h", - "ng", - "nn", - "nd", - "nb", - "dg", - "rn", - "rr", - "rh", - "rN", - "mb", - "mN", - "bg", - "bn", - "", - "bs", - "bsg", - "bst", - "bsb", - "bss", - "bsj", - "bj", - "bc", - "bt", - "bp", - "bN", - "bbN", - "sg", - "sn", - "sd", - "sr", - "sm", - "sb", - "sbg", - "sss", - "s", - "sj", - "sc", - "sk", - "st", - "sp", - "sh", - "", - "", - "", - "", - "Z", - "g", - "d", - "m", - "b", - "s", - "Z", - "", - "j", - "c", - "t", - "p", - "N", - "j", - "", - "", - "", - "", - "ck", - "ch", - "", - "", - "pb", - "pN", - "hh", - "Q", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "a", - "ae", - "ya", - "yae", - "eo", - "e", - "yeo", - "ye", - "o", - "wa", - "wae", - "oe", - "yo", - "u", - "weo", - "we", - "wi", - "yu", - "eu", - "yi", - "i", - "a-o", - "a-u", - "ya-o", - "ya-yo", - "eo-o", - "eo-u", - "eo-eu", - "yeo-o", - "yeo-u", - "o-eo", - "o-e", - "o-ye", - "o-o", - "o-u", - "yo-ya", - "yo-yae", - "yo-yeo", - "yo-o", - "yo-i", - "u-a", - "u-ae", - "u-eo-eu", - "u-ye", - "u-u", - "yu-a", - "yu-eo", - "yu-e", - "yu-yeo", - "yu-ye", - "yu-u", - "yu-i", - "eu-u", - "eu-eu", - "yi-u", - "i-a", - "i-ya", - "i-o", - "i-u", - "i-eu", - "i-U", - "U", - "U-eo", - "U-u", - "U-i", - "UU", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "g", - "gg", - "gs", - "n", - "nj", - "nh", - "d", - "l", - "lg", - "lm", - "lb", - "ls", - "lt", - "lp", - "lh", - "m", - "b", - "bs", - "s", - "ss", - "ng", - "j", - "c", - "k", - "t", - "p", - "h", - "gl", - "gsg", - "ng", - "nd", - "ns", - "nZ", - "nt", - "dg", - "tl", - "lgs", - "ln", - "ld", - "lth", - "ll", - "lmg", - "lms", - "lbs", - "lbh", - "rNp", - "lss", - "lZ", - "lk", - "lQ", - "mg", - "ml", - "mb", - "ms", - "mss", - "mZ", - "mc", - "mh", - "mN", - "bl", - "bp", - "ph", - "pN", - "sg", - "sd", - "sl", - "sb", - "Z", - "g", - "ss", - "", - "kh", - "N", - "Ns", - "NZ", - "pb", - "pN", - "hn", - "hl", - "hm", - "hb", - "Q", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "ha", - "hu", - "hi", - "haa", - "hee", - "he", - "ho", - "[?]", - "la", - "lu", - "li", - "laa", - "lee", - "le", - "lo", - "lwa", - "hha", - "hhu", - "hhi", - "hhaa", - "hhee", - "hhe", - "hho", - "hhwa", - "ma", - "mu", - "mi", - "maa", - "mee", - "me", - "mo", - "mwa", - "sza", - "szu", - "szi", - "szaa", - "szee", - "sze", - "szo", - "szwa", - "ra", - "ru", - "ri", - "raa", - "ree", - "re", - "ro", - "rwa", - "sa", - "su", - "si", - "saa", - "see", - "se", - "so", - "swa", - "sha", - "shu", - "shi", - "shaa", - "shee", - "she", - "sho", - "shwa", - "qa", - "qu", - "qi", - "qaa", - "qee", - "qe", - "qo", - "[?]", - "qwa", - "[?]", - "qwi", - "qwaa", - "qwee", - "qwe", - "[?]", - "[?]", - "qha", - "qhu", - "qhi", - "qhaa", - "qhee", - "qhe", - "qho", - "[?]", - "qhwa", - "[?]", - "qhwi", - "qhwaa", - "qhwee", - "qhwe", - "[?]", - "[?]", - "ba", - "bu", - "bi", - "baa", - "bee", - "be", - "bo", - "bwa", - "va", - "vu", - "vi", - "vaa", - "vee", - "ve", - "vo", - "vwa", - "ta", - "tu", - "ti", - "taa", - "tee", - "te", - "to", - "twa", - "ca", - "cu", - "ci", - "caa", - "cee", - "ce", - "co", - "cwa", - "xa", - "xu", - "xi", - "xaa", - "xee", - "xe", - "xo", - "[?]", - "xwa", - "[?]", - "xwi", - "xwaa", - "xwee", - "xwe", - "[?]", - "[?]", - "na", - "nu", - "ni", - "naa", - "nee", - "ne", - "no", - "nwa", - "nya", - "nyu", - "nyi", - "nyaa", - "nyee", - "nye", - "nyo", - "nywa", - "'a", - "'u", - "[?]", - "'aa", - "'ee", - "'e", - "'o", - "'wa", - "ka", - "ku", - "ki", - "kaa", - "kee", - "ke", - "ko", - "[?]", - "kwa", - "[?]", - "kwi", - "kwaa", - "kwee", - "kwe", - "[?]", - "[?]", - "kxa", - "kxu", - "kxi", - "kxaa", - "kxee", - "kxe", - "kxo", - "[?]", - "kxwa", - "[?]", - "kxwi", - "kxwaa", - "kxwee", - "kxwe", - "[?]", - "[?]", - "wa", - "wu", - "wi", - "waa", - "wee", - "we", - "wo", - "[?]", - "`a", - "`u", - "`i", - "`aa", - "`ee", - "`e", - "`o", - "[?]", - "za", - "zu", - "zi", - "zaa", - "zee", - "ze", - "zo", - "zwa", - "zha", - "zhu", - "zhi", - "zhaa", - "zhee", - "zhe", - "zho", - "zhwa", - "ya", - "yu", - "yi", - "yaa", - "yee", - "ye", - "yo", - "[?]", - "da", - "du", - "di", - "daa", - "dee", - "de", - "do", - "dwa", - "dda", - "ddu", - "ddi", - "ddaa", - "ddee", - "dde", - "ddo", - "ddwa", - "ja", - "ju", - "ji", - "jaa", - "jee", - "je", - "jo", - "jwa", - "ga", - "gu", - "gi", - "gaa", - "gee", - "ge", - "go", - "[?]", - "gwa", - "[?]", - "gwi", - "gwaa", - "gwee", - "gwe", - "[?]", - "[?]", - "gga", - "ggu", - "ggi", - "ggaa", - "ggee", - "gge", - "ggo", - "[?]", - "tha", - "thu", - "thi", - "thaa", - "thee", - "the", - "tho", - "thwa", - "cha", - "chu", - "chi", - "chaa", - "chee", - "che", - "cho", - "chwa", - "pha", - "phu", - "phi", - "phaa", - "phee", - "phe", - "pho", - "phwa", - "tsa", - "tsu", - "tsi", - "tsaa", - "tsee", - "tse", - "tso", - "tswa", - "tza", - "tzu", - "tzi", - "tzaa", - "tzee", - "tze", - "tzo", - "[?]", - "fa", - "fu", - "fi", - "faa", - "fee", - "fe", - "fo", - "fwa", - "pa", - "pu", - "pi", - "paa", - "pee", - "pe", - "po", - "pwa", - "rya", - "mya", - "fya", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - " ", - ".", - ",", - ";", - ":", - ":: ", - "?", - "//", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "10+", - "20+", - "30+", - "40+", - "50+", - "60+", - "70+", - "80+", - "90+", - "100+", - "10,000+", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "a", - "e", - "i", - "o", - "u", - "v", - "ga", - "ka", - "ge", - "gi", - "go", - "gu", - "gv", - "ha", - "he", - "hi", - "ho", - "hu", - "hv", - "la", - "le", - "li", - "lo", - "lu", - "lv", - "ma", - "me", - "mi", - "mo", - "mu", - "na", - "hna", - "nah", - "ne", - "ni", - "no", - "nu", - "nv", - "qua", - "que", - "qui", - "quo", - "quu", - "quv", - "sa", - "s", - "se", - "si", - "so", - "su", - "sv", - "da", - "ta", - "de", - "te", - "di", - "ti", - "do", - "du", - "dv", - "dla", - "tla", - "tle", - "tli", - "tlo", - "tlu", - "tlv", - "tsa", - "tse", - "tsi", - "tso", - "tsu", - "tsv", - "wa", - "we", - "wi", - "wo", - "wu", - "wv", - "ya", - "ye", - "yi", - "yo", - "yu", - "yv", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "e", - "aai", - "i", - "ii", - "o", - "oo", - "oo", - "ee", - "i", - "a", - "aa", - "we", - "we", - "wi", - "wi", - "wii", - "wii", - "wo", - "wo", - "woo", - "woo", - "woo", - "wa", - "wa", - "waa", - "waa", - "waa", - "ai", - "w", - "'", - "t", - "k", - "sh", - "s", - "n", - "w", - "n", - "[?]", - "w", - "c", - "?", - "l", - "en", - "in", - "on", - "an", - "pe", - "paai", - "pi", - "pii", - "po", - "poo", - "poo", - "hee", - "hi", - "pa", - "paa", - "pwe", - "pwe", - "pwi", - "pwi", - "pwii", - "pwii", - "pwo", - "pwo", - "pwoo", - "pwoo", - "pwa", - "pwa", - "pwaa", - "pwaa", - "pwaa", - "p", - "p", - "h", - "te", - "taai", - "ti", - "tii", - "to", - "too", - "too", - "dee", - "di", - "ta", - "taa", - "twe", - "twe", - "twi", - "twi", - "twii", - "twii", - "two", - "two", - "twoo", - "twoo", - "twa", - "twa", - "twaa", - "twaa", - "twaa", - "t", - "tte", - "tti", - "tto", - "tta", - "ke", - "kaai", - "ki", - "kii", - "ko", - "koo", - "koo", - "ka", - "kaa", - "kwe", - "kwe", - "kwi", - "kwi", - "kwii", - "kwii", - "kwo", - "kwo", - "kwoo", - "kwoo", - "kwa", - "kwa", - "kwaa", - "kwaa", - "kwaa", - "k", - "kw", - "keh", - "kih", - "koh", - "kah", - "ce", - "caai", - "ci", - "cii", - "co", - "coo", - "coo", - "ca", - "caa", - "cwe", - "cwe", - "cwi", - "cwi", - "cwii", - "cwii", - "cwo", - "cwo", - "cwoo", - "cwoo", - "cwa", - "cwa", - "cwaa", - "cwaa", - "cwaa", - "c", - "th", - "me", - "maai", - "mi", - "mii", - "mo", - "moo", - "moo", - "ma", - "maa", - "mwe", - "mwe", - "mwi", - "mwi", - "mwii", - "mwii", - "mwo", - "mwo", - "mwoo", - "mwoo", - "mwa", - "mwa", - "mwaa", - "mwaa", - "mwaa", - "m", - "m", - "mh", - "m", - "m", - "ne", - "naai", - "ni", - "nii", - "no", - "noo", - "noo", - "na", - "naa", - "nwe", - "nwe", - "nwa", - "nwa", - "nwaa", - "nwaa", - "nwaa", - "n", - "ng", - "nh", - "le", - "laai", - "li", - "lii", - "lo", - "loo", - "loo", - "la", - "laa", - "lwe", - "lwe", - "lwi", - "lwi", - "lwii", - "lwii", - "lwo", - "lwo", - "lwoo", - "lwoo", - "lwa", - "lwa", - "lwaa", - "lwaa", - "l", - "l", - "l", - "se", - "saai", - "si", - "sii", - "so", - "soo", - "soo", - "sa", - "saa", - "swe", - "swe", - "swi", - "swi", - "swii", - "swii", - "swo", - "swo", - "swoo", - "swoo", - "swa", - "swa", - "swaa", - "swaa", - "swaa", - "s", - "s", - "sw", - "s", - "sk", - "skw", - "sW", - "spwa", - "stwa", - "skwa", - "scwa", - "she", - "shi", - "shii", - "sho", - "shoo", - "sha", - "shaa", - "shwe", - "shwe", - "shwi", - "shwi", - "shwii", - "shwii", - "shwo", - "shwo", - "shwoo", - "shwoo", - "shwa", - "shwa", - "shwaa", - "shwaa", - "sh", - "ye", - "yaai", - "yi", - "yii", - "yo", - "yoo", - "yoo", - "ya", - "yaa", - "ywe", - "ywe", - "ywi", - "ywi", - "ywii", - "ywii", - "ywo", - "ywo", - "ywoo", - "ywoo", - "ywa", - "ywa", - "ywaa", - "ywaa", - "ywaa", - "y", - "y", - "y", - "yi", - "re", - "re", - "le", - "raai", - "ri", - "rii", - "ro", - "roo", - "lo", - "ra", - "raa", - "la", - "rwaa", - "rwaa", - "r", - "r", - "r", - "fe", - "faai", - "fi", - "fii", - "fo", - "foo", - "fa", - "faa", - "fwaa", - "fwaa", - "f", - "the", - "the", - "thi", - "thi", - "thii", - "thii", - "tho", - "thoo", - "tha", - "thaa", - "thwaa", - "thwaa", - "th", - "tthe", - "tthi", - "ttho", - "ttha", - "tth", - "tye", - "tyi", - "tyo", - "tya", - "he", - "hi", - "hii", - "ho", - "hoo", - "ha", - "haa", - "h", - "h", - "hk", - "qaai", - "qi", - "qii", - "qo", - "qoo", - "qa", - "qaa", - "q", - "tlhe", - "tlhi", - "tlho", - "tlha", - "re", - "ri", - "ro", - "ra", - "ngaai", - "ngi", - "ngii", - "ngo", - "ngoo", - "nga", - "ngaa", - "ng", - "nng", - "she", - "shi", - "sho", - "sha", - "the", - "thi", - "tho", - "tha", - "th", - "lhi", - "lhii", - "lho", - "lhoo", - "lha", - "lhaa", - "lh", - "the", - "thi", - "thii", - "tho", - "thoo", - "tha", - "thaa", - "th", - "b", - "e", - "i", - "o", - "a", - "we", - "wi", - "wo", - "wa", - "ne", - "ni", - "no", - "na", - "ke", - "ki", - "ko", - "ka", - "he", - "hi", - "ho", - "ha", - "ghu", - "gho", - "ghe", - "ghee", - "ghi", - "gha", - "ru", - "ro", - "re", - "ree", - "ri", - "ra", - "wu", - "wo", - "we", - "wee", - "wi", - "wa", - "hwu", - "hwo", - "hwe", - "hwee", - "hwi", - "hwa", - "thu", - "tho", - "the", - "thee", - "thi", - "tha", - "ttu", - "tto", - "tte", - "ttee", - "tti", - "tta", - "pu", - "po", - "pe", - "pee", - "pi", - "pa", - "p", - "gu", - "go", - "ge", - "gee", - "gi", - "ga", - "khu", - "kho", - "khe", - "khee", - "khi", - "kha", - "kku", - "kko", - "kke", - "kkee", - "kki", - "kka", - "kk", - "nu", - "no", - "ne", - "nee", - "ni", - "na", - "mu", - "mo", - "me", - "mee", - "mi", - "ma", - "yu", - "yo", - "ye", - "yee", - "yi", - "ya", - "ju", - "ju", - "jo", - "je", - "jee", - "ji", - "ji", - "ja", - "jju", - "jjo", - "jje", - "jjee", - "jji", - "jja", - "lu", - "lo", - "le", - "lee", - "li", - "la", - "dlu", - "dlo", - "dle", - "dlee", - "dli", - "dla", - "lhu", - "lho", - "lhe", - "lhee", - "lhi", - "lha", - "tlhu", - "tlho", - "tlhe", - "tlhee", - "tlhi", - "tlha", - "tlu", - "tlo", - "tle", - "tlee", - "tli", - "tla", - "zu", - "zo", - "ze", - "zee", - "zi", - "za", - "z", - "z", - "dzu", - "dzo", - "dze", - "dzee", - "dzi", - "dza", - "su", - "so", - "se", - "see", - "si", - "sa", - "shu", - "sho", - "she", - "shee", - "shi", - "sha", - "sh", - "tsu", - "tso", - "tse", - "tsee", - "tsi", - "tsa", - "chu", - "cho", - "che", - "chee", - "chi", - "cha", - "ttsu", - "ttso", - "ttse", - "ttsee", - "ttsi", - "ttsa", - "X", - ".", - "qai", - "ngai", - "nngi", - "nngii", - "nngo", - "nngoo", - "nnga", - "nngaa", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - " ", - "b", - "l", - "f", - "s", - "n", - "h", - "d", - "t", - "c", - "q", - "m", - "g", - "ng", - "z", - "r", - "a", - "o", - "u", - "e", - "i", - "ch", - "th", - "ph", - "p", - "x", - "p", - "<", - ">", - "[?]", - "[?]", - "[?]", - "f", - "v", - "u", - "yr", - "y", - "w", - "th", - "th", - "a", - "o", - "ac", - "ae", - "o", - "o", - "o", - "oe", - "on", - "r", - "k", - "c", - "k", - "g", - "ng", - "g", - "g", - "w", - "h", - "h", - "h", - "h", - "n", - "n", - "n", - "i", - "e", - "j", - "g", - "ae", - "a", - "eo", - "p", - "z", - "s", - "s", - "s", - "c", - "z", - "t", - "t", - "d", - "b", - "b", - "p", - "p", - "e", - "m", - "m", - "m", - "l", - "l", - "ng", - "ng", - "d", - "o", - "ear", - "ior", - "qu", - "qu", - "qu", - "s", - "yr", - "yr", - "yr", - "q", - "x", - ".", - ":", - "+", - "17", - "18", - "19", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "t", - "tth", - "d", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "p", - "ph", - "b", - "bh", - "m", - "y", - "r", - "l", - "v", - "sh", - "ss", - "s", - "h", - "l", - "q", - "a", - "aa", - "i", - "ii", - "u", - "uk", - "uu", - "uuv", - "ry", - "ryy", - "ly", - "lyy", - "e", - "ai", - "oo", - "oo", - "au", - "a", - "aa", - "aa", - "i", - "ii", - "y", - "yy", - "u", - "uu", - "ua", - "oe", - "ya", - "ie", - "e", - "ae", - "ai", - "oo", - "au", - "M", - "H", - "a`", - "", - "", - "", - "r", - "", - "!", - "", - "", - "", - "", - "", - ".", - " // ", - ":", - "+", - "++", - " * ", - " /// ", - "KR", - "'", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - " @ ", - " ... ", - ", ", - ". ", - ": ", - " // ", - "", - "-", - ", ", - ". ", - "", - "", - "", - "", - "", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "a", - "e", - "i", - "o", - "u", - "O", - "U", - "ee", - "n", - "ng", - "b", - "p", - "q", - "g", - "m", - "l", - "s", - "sh", - "t", - "d", - "ch", - "j", - "y", - "r", - "w", - "f", - "k", - "kha", - "ts", - "z", - "h", - "zr", - "lh", - "zh", - "ch", - "-", - "e", - "i", - "o", - "u", - "O", - "U", - "ng", - "b", - "p", - "q", - "g", - "m", - "t", - "d", - "ch", - "j", - "ts", - "y", - "w", - "k", - "g", - "h", - "jy", - "ny", - "dz", - "e", - "i", - "iy", - "U", - "u", - "ng", - "k", - "g", - "h", - "p", - "sh", - "t", - "d", - "j", - "f", - "g", - "h", - "ts", - "z", - "r", - "ch", - "zh", - "i", - "k", - "r", - "f", - "zh", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "H", - "X", - "W", - "M", - " 3 ", - " 333 ", - "a", - "i", - "k", - "ng", - "c", - "tt", - "tth", - "dd", - "nn", - "t", - "d", - "p", - "ph", - "ss", - "zh", - "z", - "a", - "t", - "zh", - "gh", - "ng", - "c", - "jh", - "tta", - "ddh", - "t", - "dh", - "ss", - "cy", - "zh", - "z", - "u", - "y", - "bh", - "'", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "A", - "a", - "B", - "b", - "B", - "b", - "B", - "b", - "C", - "c", - "D", - "d", - "D", - "d", - "D", - "d", - "D", - "d", - "D", - "d", - "E", - "e", - "E", - "e", - "E", - "e", - "E", - "e", - "E", - "e", - "F", - "f", - "G", - "g", - "H", - "h", - "H", - "h", - "H", - "h", - "H", - "h", - "H", - "h", - "I", - "i", - "I", - "i", - "K", - "k", - "K", - "k", - "K", - "k", - "L", - "l", - "L", - "l", - "L", - "l", - "L", - "l", - "M", - "m", - "M", - "m", - "M", - "m", - "N", - "n", - "N", - "n", - "N", - "n", - "N", - "n", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "P", - "p", - "P", - "p", - "R", - "r", - "R", - "r", - "R", - "r", - "R", - "r", - "S", - "s", - "S", - "s", - "S", - "s", - "S", - "s", - "S", - "s", - "T", - "t", - "T", - "t", - "T", - "t", - "T", - "t", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "V", - "v", - "V", - "v", - "W", - "w", - "W", - "w", - "W", - "w", - "W", - "w", - "W", - "w", - "X", - "x", - "X", - "x", - "Y", - "y", - "Z", - "z", - "Z", - "z", - "Z", - "z", - "h", - "t", - "w", - "y", - "a", - "s", - "s", - "s", - "Ss", - "d", - "A", - "a", - "A", - "a", - "A", - "a", - "A", - "a", - "A", - "a", - "A", - "a", - "A", - "a", - "A", - "a", - "A", - "a", - "A", - "a", - "A", - "a", - "A", - "a", - "E", - "e", - "E", - "e", - "E", - "e", - "E", - "e", - "E", - "e", - "E", - "e", - "E", - "e", - "E", - "e", - "I", - "i", - "I", - "i", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "Y", - "y", - "Y", - "y", - "Y", - "y", - "Y", - "y", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "a", - "a", - "a", - "a", - "a", - "a", - "a", - "a", - "A", - "A", - "A", - "A", - "A", - "A", - "A", - "A", - "e", - "e", - "e", - "e", - "e", - "e", - "[?]", - "[?]", - "E", - "E", - "E", - "E", - "E", - "E", - "[?]", - "[?]", - "e", - "e", - "e", - "e", - "e", - "e", - "e", - "e", - "E", - "E", - "E", - "E", - "E", - "E", - "E", - "E", - "i", - "i", - "i", - "i", - "i", - "i", - "i", - "i", - "I", - "I", - "I", - "I", - "I", - "I", - "I", - "I", - "o", - "o", - "o", - "o", - "o", - "o", - "[?]", - "[?]", - "O", - "O", - "O", - "O", - "O", - "O", - "[?]", - "[?]", - "u", - "u", - "u", - "u", - "u", - "u", - "u", - "u", - "[?]", - "U", - "[?]", - "U", - "[?]", - "U", - "[?]", - "U", - "o", - "o", - "o", - "o", - "o", - "o", - "o", - "o", - "O", - "O", - "O", - "O", - "O", - "O", - "O", - "O", - "a", - "a", - "e", - "e", - "e", - "e", - "i", - "i", - "o", - "o", - "u", - "u", - "o", - "o", - "[?]", - "[?]", - "a", - "a", - "a", - "a", - "a", - "a", - "a", - "a", - "A", - "A", - "A", - "A", - "A", - "A", - "A", - "A", - "e", - "e", - "e", - "e", - "e", - "e", - "e", - "e", - "E", - "E", - "E", - "E", - "E", - "E", - "E", - "E", - "o", - "o", - "o", - "o", - "o", - "o", - "o", - "o", - "O", - "O", - "O", - "O", - "O", - "O", - "O", - "O", - "a", - "a", - "a", - "a", - "a", - "[?]", - "a", - "a", - "A", - "A", - "A", - "A", - "A", - "'", - "i", - "'", - "~", - '"~', - "e", - "e", - "e", - "[?]", - "e", - "e", - "E", - "E", - "E", - "E", - "E", - "'`", - "''", - "'~", - "i", - "i", - "i", - "i", - "[?]", - "[?]", - "i", - "i", - "I", - "I", - "I", - "I", - "[?]", - "`'", - "`'", - "`~", - "u", - "u", - "u", - "u", - "R", - "R", - "u", - "u", - "U", - "U", - "U", - "U", - "R", - '"`', - "\"'", - "`", - "[?]", - "[?]", - "o", - "o", - "o", - "[?]", - "o", - "o", - "O", - "O", - "O", - "O", - "O", - "'", - "`", - "[?] ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - "", - "", - "", - "", - "-", - "-", - "-", - "-", - "--", - "--", - "||", - "_", - "'", - "'", - ",", - "'", - '"', - '"', - ",,", - '"', - "+", - "++", - "*", - "*>", - ".", - "..", - "...", - ".", - "\n", - "\n\n", - "", - "", - "", - "", - "", - " ", - "%0", - "%00", - "'", - "''", - "'''", - "`", - "``", - "```", - "^", - "<", - ">", - "*", - "!!", - "!?", - "-", - "_", - "-", - "^", - "***", - "--", - "/", - "-[", - "]-", - "[?]", - "?!", - "!?", - "7", - "PP", - "(]", - "[)", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "0", - "", - "", - "", - "4", - "5", - "6", - "7", - "8", - "9", - "+", - "-", - "=", - "(", - ")", - "n", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "+", - "-", - "=", - "(", - ")", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "ECU", - "CL", - "Cr", - "FF", - "L", - "mil", - "N", - "Pts", - "Rs", - "W", - "NS", - "D", - "EUR", - "K", - "T", - "Dr", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "tm", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - " 1/3 ", - " 2/3 ", - " 1/5 ", - " 2/5 ", - " 3/5 ", - " 4/5 ", - " 1/6 ", - " 5/6 ", - " 1/8 ", - " 3/8 ", - " 5/8 ", - " 7/8 ", - " 1/", - "I", - "II", - "III", - "IV", - "V", - "VI", - "VII", - "VIII", - "IX", - "X", - "XI", - "XII", - "L", - "C", - "D", - "M", - "i", - "ii", - "iii", - "iv", - "v", - "vi", - "vii", - "viii", - "ix", - "x", - "xi", - "xii", - "l", - "c", - "d", - "m", - "(D", - "D)", - "((|))", - ")", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "-", - "|", - "-", - "|", - "-", - "|", - "\\", - "/", - "\\", - "/", - "-", - "-", - "~", - "~", - "-", - "|", - "-", - "|", - "-", - "-", - "-", - "|", - "-", - "|", - "|", - "-", - "-", - "-", - "-", - "-", - "-", - "|", - "|", - "|", - "|", - "|", - "|", - "|", - "^", - "V", - "\\", - "=", - "V", - "^", - "-", - "-", - "|", - "|", - "-", - "-", - "|", - "|", - "=", - "|", - "=", - "=", - "|", - "=", - "|", - "=", - "=", - "=", - "=", - "=", - "=", - "|", - "=", - "|", - "=", - "|", - "\\", - "/", - "\\", - "/", - "=", - "=", - "~", - "~", - "|", - "|", - "-", - "|", - "-", - "|", - "-", - "-", - "-", - "|", - "-", - "|", - "|", - "|", - "|", - "|", - "|", - "|", - "-", - "\\", - "\\", - "|", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "-", - "-", - "|", - "|", - "-", - "-", - "|", - "|", - "-", - "-", - "|", - "|", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "-", - "-", - "|", - "|", - "-", - "|", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "/", - "\\", - "X", - "-", - "|", - "-", - "|", - "-", - "|", - "-", - "|", - "-", - "|", - "-", - "|", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "-", - "|", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "^", - "^", - "^", - "^", - ">", - ">", - ">", - ">", - ">", - ">", - "V", - "V", - "V", - "V", - "<", - "<", - "<", - "<", - "<", - "<", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "#", - "#", - "#", - "#", - "#", - "^", - "^", - "^", - "O", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - " ", - "a", - "1", - "b", - "'", - "k", - "2", - "l", - "@", - "c", - "i", - "f", - "/", - "m", - "s", - "p", - '"', - "e", - "3", - "h", - "9", - "o", - "6", - "r", - "^", - "d", - "j", - "g", - ">", - "n", - "t", - "q", - ",", - "*", - "5", - "<", - "-", - "u", - "8", - "v", - ".", - "%", - "[", - "$", - "+", - "x", - "!", - "&", - ";", - ":", - "4", - "\\", - "0", - "z", - "7", - "(", - "_", - "?", - "w", - "]", - "#", - "y", - ")", - "=", - "[d7]", - "[d17]", - "[d27]", - "[d127]", - "[d37]", - "[d137]", - "[d237]", - "[d1237]", - "[d47]", - "[d147]", - "[d247]", - "[d1247]", - "[d347]", - "[d1347]", - "[d2347]", - "[d12347]", - "[d57]", - "[d157]", - "[d257]", - "[d1257]", - "[d357]", - "[d1357]", - "[d2357]", - "[d12357]", - "[d457]", - "[d1457]", - "[d2457]", - "[d12457]", - "[d3457]", - "[d13457]", - "[d23457]", - "[d123457]", - "[d67]", - "[d167]", - "[d267]", - "[d1267]", - "[d367]", - "[d1367]", - "[d2367]", - "[d12367]", - "[d467]", - "[d1467]", - "[d2467]", - "[d12467]", - "[d3467]", - "[d13467]", - "[d23467]", - "[d123467]", - "[d567]", - "[d1567]", - "[d2567]", - "[d12567]", - "[d3567]", - "[d13567]", - "[d23567]", - "[d123567]", - "[d4567]", - "[d14567]", - "[d24567]", - "[d124567]", - "[d34567]", - "[d134567]", - "[d234567]", - "[d1234567]", - "[d8]", - "[d18]", - "[d28]", - "[d128]", - "[d38]", - "[d138]", - "[d238]", - "[d1238]", - "[d48]", - "[d148]", - "[d248]", - "[d1248]", - "[d348]", - "[d1348]", - "[d2348]", - "[d12348]", - "[d58]", - "[d158]", - "[d258]", - "[d1258]", - "[d358]", - "[d1358]", - "[d2358]", - "[d12358]", - "[d458]", - "[d1458]", - "[d2458]", - "[d12458]", - "[d3458]", - "[d13458]", - "[d23458]", - "[d123458]", - "[d68]", - "[d168]", - "[d268]", - "[d1268]", - "[d368]", - "[d1368]", - "[d2368]", - "[d12368]", - "[d468]", - "[d1468]", - "[d2468]", - "[d12468]", - "[d3468]", - "[d13468]", - "[d23468]", - "[d123468]", - "[d568]", - "[d1568]", - "[d2568]", - "[d12568]", - "[d3568]", - "[d13568]", - "[d23568]", - "[d123568]", - "[d4568]", - "[d14568]", - "[d24568]", - "[d124568]", - "[d34568]", - "[d134568]", - "[d234568]", - "[d1234568]", - "[d78]", - "[d178]", - "[d278]", - "[d1278]", - "[d378]", - "[d1378]", - "[d2378]", - "[d12378]", - "[d478]", - "[d1478]", - "[d2478]", - "[d12478]", - "[d3478]", - "[d13478]", - "[d23478]", - "[d123478]", - "[d578]", - "[d1578]", - "[d2578]", - "[d12578]", - "[d3578]", - "[d13578]", - "[d23578]", - "[d123578]", - "[d4578]", - "[d14578]", - "[d24578]", - "[d124578]", - "[d34578]", - "[d134578]", - "[d234578]", - "[d1234578]", - "[d678]", - "[d1678]", - "[d2678]", - "[d12678]", - "[d3678]", - "[d13678]", - "[d23678]", - "[d123678]", - "[d4678]", - "[d14678]", - "[d24678]", - "[d124678]", - "[d34678]", - "[d134678]", - "[d234678]", - "[d1234678]", - "[d5678]", - "[d15678]", - "[d25678]", - "[d125678]", - "[d35678]", - "[d135678]", - "[d235678]", - "[d1235678]", - "[d45678]", - "[d145678]", - "[d245678]", - "[d1245678]", - "[d345678]", - "[d1345678]", - "[d2345678]", - "[d12345678]", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?]", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?] ", - " ", - ", ", - ". ", - '"', - "[JIS]", - '"', - "/", - "0", - "<", - "> ", - "<<", - ">> ", - "[", - "] ", - "{", - "} ", - "[(", - ")] ", - "@", - "X ", - "[", - "] ", - "[[", - "]] ", - "((", - ")) ", - "[[", - "]] ", - "~ ", - "``", - "''", - ",,", - "@", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "", - "", - "", - "", - "", - "", - "~", - "+", - "+", - "+", - "+", - "", - "@", - " // ", - "+10+", - "+20+", - "+30+", - "[?]", - "[?]", - "[?]", - "", - "", - "[?]", - "a", - "a", - "i", - "i", - "u", - "u", - "e", - "e", - "o", - "o", - "ka", - "ga", - "ki", - "gi", - "ku", - "gu", - "ke", - "ge", - "ko", - "go", - "sa", - "za", - "si", - "zi", - "su", - "zu", - "se", - "ze", - "so", - "zo", - "ta", - "da", - "ti", - "di", - "tu", - "tu", - "du", - "te", - "de", - "to", - "do", - "na", - "ni", - "nu", - "ne", - "no", - "ha", - "ba", - "pa", - "hi", - "bi", - "pi", - "hu", - "bu", - "pu", - "he", - "be", - "pe", - "ho", - "bo", - "po", - "ma", - "mi", - "mu", - "me", - "mo", - "ya", - "ya", - "yu", - "yu", - "yo", - "yo", - "ra", - "ri", - "ru", - "re", - "ro", - "wa", - "wa", - "wi", - "we", - "wo", - "n", - "vu", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - '"', - '"', - "[?]", - "[?]", - "a", - "a", - "i", - "i", - "u", - "u", - "e", - "e", - "o", - "o", - "ka", - "ga", - "ki", - "gi", - "ku", - "gu", - "ke", - "ge", - "ko", - "go", - "sa", - "za", - "si", - "zi", - "su", - "zu", - "se", - "ze", - "so", - "zo", - "ta", - "da", - "ti", - "di", - "tu", - "tu", - "du", - "te", - "de", - "to", - "do", - "na", - "ni", - "nu", - "ne", - "no", - "ha", - "ba", - "pa", - "hi", - "bi", - "pi", - "hu", - "bu", - "pu", - "he", - "be", - "pe", - "ho", - "bo", - "po", - "ma", - "mi", - "mu", - "me", - "mo", - "ya", - "ya", - "yu", - "yu", - "yo", - "yo", - "ra", - "ri", - "ru", - "re", - "ro", - "wa", - "wa", - "wi", - "we", - "wo", - "n", - "vu", - "ka", - "ke", - "va", - "vi", - "ve", - "vo", - "", - "", - '"', - '"', - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "B", - "P", - "M", - "F", - "D", - "T", - "N", - "L", - "G", - "K", - "H", - "J", - "Q", - "X", - "ZH", - "CH", - "SH", - "R", - "Z", - "C", - "S", - "A", - "O", - "E", - "EH", - "AI", - "EI", - "AU", - "OU", - "AN", - "EN", - "ANG", - "ENG", - "ER", - "I", - "U", - "IU", - "V", - "NG", - "GN", - "[?]", - "[?]", - "[?]", - "[?]", - "g", - "gg", - "gs", - "n", - "nj", - "nh", - "d", - "dd", - "r", - "lg", - "lm", - "lb", - "ls", - "lt", - "lp", - "rh", - "m", - "b", - "bb", - "bs", - "s", - "ss", - "", - "j", - "jj", - "c", - "k", - "t", - "p", - "h", - "a", - "ae", - "ya", - "yae", - "eo", - "e", - "yeo", - "ye", - "o", - "wa", - "wae", - "oe", - "yo", - "u", - "weo", - "we", - "wi", - "yu", - "eu", - "yi", - "i", - "", - "nn", - "nd", - "ns", - "nZ", - "lgs", - "ld", - "lbs", - "lZ", - "lQ", - "mb", - "ms", - "mZ", - "mN", - "bg", - "", - "bsg", - "bst", - "bj", - "bt", - "bN", - "bbN", - "sg", - "sn", - "sd", - "sb", - "sj", - "Z", - "", - "N", - "Ns", - "NZ", - "pN", - "hh", - "Q", - "yo-ya", - "yo-yae", - "yo-i", - "yu-yeo", - "yu-ye", - "yu-i", - "U", - "U-i", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "BU", - "ZI", - "JI", - "GU", - "EE", - "ENN", - "OO", - "ONN", - "IR", - "ANN", - "INN", - "UNN", - "IM", - "NGG", - "AINN", - "AUNN", - "AM", - "OM", - "ONG", - "INNN", - "P", - "T", - "K", - "H", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "(g)", - "(n)", - "(d)", - "(r)", - "(m)", - "(b)", - "(s)", - "()", - "(j)", - "(c)", - "(k)", - "(t)", - "(p)", - "(h)", - "(ga)", - "(na)", - "(da)", - "(ra)", - "(ma)", - "(ba)", - "(sa)", - "(a)", - "(ja)", - "(ca)", - "(ka)", - "(ta)", - "(pa)", - "(ha)", - "(ju)", - "[?]", - "[?]", - "[?]", - "(1) ", - "(2) ", - "(3) ", - "(4) ", - "(5) ", - "(6) ", - "(7) ", - "(8) ", - "(9) ", - "(10) ", - "(Yue) ", - "(Huo) ", - "(Shui) ", - "(Mu) ", - "(Jin) ", - "(Tu) ", - "(Ri) ", - "(Zhu) ", - "(You) ", - "(She) ", - "(Ming) ", - "(Te) ", - "(Cai) ", - "(Zhu) ", - "(Lao) ", - "(Dai) ", - "(Hu) ", - "(Xue) ", - "(Jian) ", - "(Qi) ", - "(Zi) ", - "(Xie) ", - "(Ji) ", - "(Xiu) ", - "<<", - ">>", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "(g)", - "(n)", - "(d)", - "(r)", - "(m)", - "(b)", - "(s)", - "()", - "(j)", - "(c)", - "(k)", - "(t)", - "(p)", - "(h)", - "(ga)", - "(na)", - "(da)", - "(ra)", - "(ma)", - "(ba)", - "(sa)", - "(a)", - "(ja)", - "(ca)", - "(ka)", - "(ta)", - "(pa)", - "(ha)", - "[?]", - "[?]", - "[?]", - "KIS ", - "(1) ", - "(2) ", - "(3) ", - "(4) ", - "(5) ", - "(6) ", - "(7) ", - "(8) ", - "(9) ", - "(10) ", - "(Yue) ", - "(Huo) ", - "(Shui) ", - "(Mu) ", - "(Jin) ", - "(Tu) ", - "(Ri) ", - "(Zhu) ", - "(You) ", - "(She) ", - "(Ming) ", - "(Te) ", - "(Cai) ", - "(Zhu) ", - "(Lao) ", - "(Mi) ", - "(Nan) ", - "(Nu) ", - "(Shi) ", - "(You) ", - "(Yin) ", - "(Zhu) ", - "(Xiang) ", - "(Xiu) ", - "(Xie) ", - "(Zheng) ", - "(Shang) ", - "(Zhong) ", - "(Xia) ", - "(Zuo) ", - "(You) ", - "(Yi) ", - "(Zong) ", - "(Xue) ", - "(Jian) ", - "(Qi) ", - "(Zi) ", - "(Xie) ", - "(Ye) ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "1M", - "2M", - "3M", - "4M", - "5M", - "6M", - "7M", - "8M", - "9M", - "10M", - "11M", - "12M", - "[?]", - "[?]", - "[?]", - "[?]", - "a", - "i", - "u", - "u", - "o", - "ka", - "ki", - "ku", - "ke", - "ko", - "sa", - "si", - "su", - "se", - "so", - "ta", - "ti", - "tu", - "te", - "to", - "na", - "ni", - "nu", - "ne", - "no", - "ha", - "hi", - "hu", - "he", - "ho", - "ma", - "mi", - "mu", - "me", - "mo", - "ya", - "yu", - "yo", - "ra", - "ri", - "ru", - "re", - "ro", - "wa", - "wi", - "we", - "wo", - "[?] ", - "apartment", - "alpha", - "ampere", - "are", - "inning", - "inch", - "won", - "escudo", - "acre", - "ounce", - "ohm", - "kai-ri", - "carat", - "calorie", - "gallon", - "gamma", - "giga", - "guinea", - "curie", - "guilder", - "kilo", - "kilogram", - "kilometer", - "kilowatt", - "gram", - "gram ton", - "cruzeiro", - "krone", - "case", - "koruna", - "co-op", - "cycle", - "centime", - "shilling", - "centi", - "cent", - "dozen", - "desi", - "dollar", - "ton", - "nano", - "knot", - "heights", - "percent", - "parts", - "barrel", - "piaster", - "picul", - "pico", - "building", - "farad", - "feet", - "bushel", - "franc", - "hectare", - "peso", - "pfennig", - "hertz", - "pence", - "page", - "beta", - "point", - "volt", - "hon", - "pound", - "hall", - "horn", - "micro", - "mile", - "mach", - "mark", - "mansion", - "micron", - "milli", - "millibar", - "mega", - "megaton", - "meter", - "yard", - "yard", - "yuan", - "liter", - "lira", - "rupee", - "ruble", - "rem", - "roentgen", - "watt", - "0h", - "1h", - "2h", - "3h", - "4h", - "5h", - "6h", - "7h", - "8h", - "9h", - "10h", - "11h", - "12h", - "13h", - "14h", - "15h", - "16h", - "17h", - "18h", - "19h", - "20h", - "21h", - "22h", - "23h", - "24h", - "HPA", - "da", - "AU", - "bar", - "oV", - "pc", - "[?]", - "[?]", - "[?]", - "[?]", - "Heisei", - "Syouwa", - "Taisyou", - "Meiji", - "Inc.", - "pA", - "nA", - "microamp", - "mA", - "kA", - "kB", - "MB", - "GB", - "cal", - "kcal", - "pF", - "nF", - "microFarad", - "microgram", - "mg", - "kg", - "Hz", - "kHz", - "MHz", - "GHz", - "THz", - "microliter", - "ml", - "dl", - "kl", - "fm", - "nm", - "micrometer", - "mm", - "cm", - "km", - "mm^2", - "cm^2", - "m^2", - "km^2", - "mm^4", - "cm^3", - "m^3", - "km^3", - "m/s", - "m/s^2", - "Pa", - "kPa", - "MPa", - "GPa", - "rad", - "rad/s", - "rad/s^2", - "ps", - "ns", - "microsecond", - "ms", - "pV", - "nV", - "microvolt", - "mV", - "kV", - "MV", - "pW", - "nW", - "microwatt", - "mW", - "kW", - "MW", - "kOhm", - "MOhm", - "a.m.", - "Bq", - "cc", - "cd", - "C/kg", - "Co.", - "dB", - "Gy", - "ha", - "HP", - "in", - "K.K.", - "KM", - "kt", - "lm", - "ln", - "log", - "lx", - "mb", - "mil", - "mol", - "pH", - "p.m.", - "PPM", - "PR", - "sr", - "Sv", - "Wb", - "[?]", - "[?]", - "1d", - "2d", - "3d", - "4d", - "5d", - "6d", - "7d", - "8d", - "9d", - "10d", - "11d", - "12d", - "13d", - "14d", - "15d", - "16d", - "17d", - "18d", - "19d", - "20d", - "21d", - "22d", - "23d", - "24d", - "25d", - "26d", - "27d", - "28d", - "29d", - "30d", - "31d", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "Yi ", - "Ding ", - "Kao ", - "Qi ", - "Shang ", - "Xia ", - "[?] ", - "Mo ", - "Zhang ", - "San ", - "Shang ", - "Xia ", - "Ji ", - "Bu ", - "Yu ", - "Mian ", - "Gai ", - "Chou ", - "Chou ", - "Zhuan ", - "Qie ", - "Pi ", - "Shi ", - "Shi ", - "Qiu ", - "Bing ", - "Ye ", - "Cong ", - "Dong ", - "Si ", - "Cheng ", - "Diu ", - "Qiu ", - "Liang ", - "Diu ", - "You ", - "Liang ", - "Yan ", - "Bing ", - "Sang ", - "Gun ", - "Jiu ", - "Ge ", - "Ya ", - "Qiang ", - "Zhong ", - "Ji ", - "Jie ", - "Feng ", - "Guan ", - "Chuan ", - "Chan ", - "Lin ", - "Zhuo ", - "Zhu ", - "Ha ", - "Wan ", - "Dan ", - "Wei ", - "Zhu ", - "Jing ", - "Li ", - "Ju ", - "Pie ", - "Fu ", - "Yi ", - "Yi ", - "Nai ", - "Shime ", - "Jiu ", - "Jiu ", - "Zhe ", - "Yao ", - "Yi ", - "[?] ", - "Zhi ", - "Wu ", - "Zha ", - "Hu ", - "Fa ", - "Le ", - "Zhong ", - "Ping ", - "Pang ", - "Qiao ", - "Hu ", - "Guai ", - "Cheng ", - "Cheng ", - "Yi ", - "Yin ", - "[?] ", - "Mie ", - "Jiu ", - "Qi ", - "Ye ", - "Xi ", - "Xiang ", - "Gai ", - "Diu ", - "Hal ", - "[?] ", - "Shu ", - "Twul ", - "Shi ", - "Ji ", - "Nang ", - "Jia ", - "Kel ", - "Shi ", - "[?] ", - "Ol ", - "Mai ", - "Luan ", - "Cal ", - "Ru ", - "Xue ", - "Yan ", - "Fu ", - "Sha ", - "Na ", - "Gan ", - "Sol ", - "El ", - "Cwul ", - "[?] ", - "Gan ", - "Chi ", - "Gui ", - "Gan ", - "Luan ", - "Lin ", - "Yi ", - "Jue ", - "Liao ", - "Ma ", - "Yu ", - "Zheng ", - "Shi ", - "Shi ", - "Er ", - "Chu ", - "Yu ", - "Yu ", - "Yu ", - "Yun ", - "Hu ", - "Qi ", - "Wu ", - "Jing ", - "Si ", - "Sui ", - "Gen ", - "Gen ", - "Ya ", - "Xie ", - "Ya ", - "Qi ", - "Ya ", - "Ji ", - "Tou ", - "Wang ", - "Kang ", - "Ta ", - "Jiao ", - "Hai ", - "Yi ", - "Chan ", - "Heng ", - "Mu ", - "[?] ", - "Xiang ", - "Jing ", - "Ting ", - "Liang ", - "Xiang ", - "Jing ", - "Ye ", - "Qin ", - "Bo ", - "You ", - "Xie ", - "Dan ", - "Lian ", - "Duo ", - "Wei ", - "Ren ", - "Ren ", - "Ji ", - "La ", - "Wang ", - "Yi ", - "Shi ", - "Ren ", - "Le ", - "Ding ", - "Ze ", - "Jin ", - "Pu ", - "Chou ", - "Ba ", - "Zhang ", - "Jin ", - "Jie ", - "Bing ", - "Reng ", - "Cong ", - "Fo ", - "San ", - "Lun ", - "Sya ", - "Cang ", - "Zi ", - "Shi ", - "Ta ", - "Zhang ", - "Fu ", - "Xian ", - "Xian ", - "Tuo ", - "Hong ", - "Tong ", - "Ren ", - "Qian ", - "Gan ", - "Yi ", - "Di ", - "Dai ", - "Ling ", - "Yi ", - "Chao ", - "Chang ", - "Sa ", - "[?] ", - "Yi ", - "Mu ", - "Men ", - "Ren ", - "Jia ", - "Chao ", - "Yang ", - "Qian ", - "Zhong ", - "Pi ", - "Wan ", - "Wu ", - "Jian ", - "Jie ", - "Yao ", - "Feng ", - "Cang ", - "Ren ", - "Wang ", - "Fen ", - "Di ", - "Fang ", - "Zhong ", - "Qi ", - "Pei ", - "Yu ", - "Diao ", - "Dun ", - "Wen ", - "Yi ", - "Xin ", - "Kang ", - "Yi ", - "Ji ", - "Ai ", - "Wu ", - "Ji ", - "Fu ", - "Fa ", - "Xiu ", - "Jin ", - "Bei ", - "Dan ", - "Fu ", - "Tang ", - "Zhong ", - "You ", - "Huo ", - "Hui ", - "Yu ", - "Cui ", - "Chuan ", - "San ", - "Wei ", - "Chuan ", - "Che ", - "Ya ", - "Xian ", - "Shang ", - "Chang ", - "Lun ", - "Cang ", - "Xun ", - "Xin ", - "Wei ", - "Zhu ", - "[?] ", - "Xuan ", - "Nu ", - "Bo ", - "Gu ", - "Ni ", - "Ni ", - "Xie ", - "Ban ", - "Xu ", - "Ling ", - "Zhou ", - "Shen ", - "Qu ", - "Si ", - "Beng ", - "Si ", - "Jia ", - "Pi ", - "Yi ", - "Si ", - "Ai ", - "Zheng ", - "Dian ", - "Han ", - "Mai ", - "Dan ", - "Zhu ", - "Bu ", - "Qu ", - "Bi ", - "Shao ", - "Ci ", - "Wei ", - "Di ", - "Zhu ", - "Zuo ", - "You ", - "Yang ", - "Ti ", - "Zhan ", - "He ", - "Bi ", - "Tuo ", - "She ", - "Yu ", - "Yi ", - "Fo ", - "Zuo ", - "Kou ", - "Ning ", - "Tong ", - "Ni ", - "Xuan ", - "Qu ", - "Yong ", - "Wa ", - "Qian ", - "[?] ", - "Ka ", - "[?] ", - "Pei ", - "Huai ", - "He ", - "Lao ", - "Xiang ", - "Ge ", - "Yang ", - "Bai ", - "Fa ", - "Ming ", - "Jia ", - "Er ", - "Bing ", - "Ji ", - "Hen ", - "Huo ", - "Gui ", - "Quan ", - "Tiao ", - "Jiao ", - "Ci ", - "Yi ", - "Shi ", - "Xing ", - "Shen ", - "Tuo ", - "Kan ", - "Zhi ", - "Gai ", - "Lai ", - "Yi ", - "Chi ", - "Kua ", - "Guang ", - "Li ", - "Yin ", - "Shi ", - "Mi ", - "Zhu ", - "Xu ", - "You ", - "An ", - "Lu ", - "Mou ", - "Er ", - "Lun ", - "Tong ", - "Cha ", - "Chi ", - "Xun ", - "Gong ", - "Zhou ", - "Yi ", - "Ru ", - "Jian ", - "Xia ", - "Jia ", - "Zai ", - "Lu ", - "Ko ", - "Jiao ", - "Zhen ", - "Ce ", - "Qiao ", - "Kuai ", - "Chai ", - "Ning ", - "Nong ", - "Jin ", - "Wu ", - "Hou ", - "Jiong ", - "Cheng ", - "Zhen ", - "Zuo ", - "Chou ", - "Qin ", - "Lu ", - "Ju ", - "Shu ", - "Ting ", - "Shen ", - "Tuo ", - "Bo ", - "Nan ", - "Hao ", - "Bian ", - "Tui ", - "Yu ", - "Xi ", - "Cu ", - "E ", - "Qiu ", - "Xu ", - "Kuang ", - "Ku ", - "Wu ", - "Jun ", - "Yi ", - "Fu ", - "Lang ", - "Zu ", - "Qiao ", - "Li ", - "Yong ", - "Hun ", - "Jing ", - "Xian ", - "San ", - "Pai ", - "Su ", - "Fu ", - "Xi ", - "Li ", - "Fu ", - "Ping ", - "Bao ", - "Yu ", - "Si ", - "Xia ", - "Xin ", - "Xiu ", - "Yu ", - "Ti ", - "Che ", - "Chou ", - "[?] ", - "Yan ", - "Lia ", - "Li ", - "Lai ", - "[?] ", - "Jian ", - "Xiu ", - "Fu ", - "He ", - "Ju ", - "Xiao ", - "Pai ", - "Jian ", - "Biao ", - "Chu ", - "Fei ", - "Feng ", - "Ya ", - "An ", - "Bei ", - "Yu ", - "Xin ", - "Bi ", - "Jian ", - "Chang ", - "Chi ", - "Bing ", - "Zan ", - "Yao ", - "Cui ", - "Lia ", - "Wan ", - "Lai ", - "Cang ", - "Zong ", - "Ge ", - "Guan ", - "Bei ", - "Tian ", - "Shu ", - "Shu ", - "Men ", - "Dao ", - "Tan ", - "Jue ", - "Chui ", - "Xing ", - "Peng ", - "Tang ", - "Hou ", - "Yi ", - "Qi ", - "Ti ", - "Gan ", - "Jing ", - "Jie ", - "Sui ", - "Chang ", - "Jie ", - "Fang ", - "Zhi ", - "Kong ", - "Juan ", - "Zong ", - "Ju ", - "Qian ", - "Ni ", - "Lun ", - "Zhuo ", - "Wei ", - "Luo ", - "Song ", - "Leng ", - "Hun ", - "Dong ", - "Zi ", - "Ben ", - "Wu ", - "Ju ", - "Nai ", - "Cai ", - "Jian ", - "Zhai ", - "Ye ", - "Zhi ", - "Sha ", - "Qing ", - "[?] ", - "Ying ", - "Cheng ", - "Jian ", - "Yan ", - "Nuan ", - "Zhong ", - "Chun ", - "Jia ", - "Jie ", - "Wei ", - "Yu ", - "Bing ", - "Ruo ", - "Ti ", - "Wei ", - "Pian ", - "Yan ", - "Feng ", - "Tang ", - "Wo ", - "E ", - "Xie ", - "Che ", - "Sheng ", - "Kan ", - "Di ", - "Zuo ", - "Cha ", - "Ting ", - "Bei ", - "Ye ", - "Huang ", - "Yao ", - "Zhan ", - "Chou ", - "Yan ", - "You ", - "Jian ", - "Xu ", - "Zha ", - "Ci ", - "Fu ", - "Bi ", - "Zhi ", - "Zong ", - "Mian ", - "Ji ", - "Yi ", - "Xie ", - "Xun ", - "Si ", - "Duan ", - "Ce ", - "Zhen ", - "Ou ", - "Tou ", - "Tou ", - "Bei ", - "Za ", - "Lu ", - "Jie ", - "Wei ", - "Fen ", - "Chang ", - "Gui ", - "Sou ", - "Zhi ", - "Su ", - "Xia ", - "Fu ", - "Yuan ", - "Rong ", - "Li ", - "Ru ", - "Yun ", - "Gou ", - "Ma ", - "Bang ", - "Dian ", - "Tang ", - "Hao ", - "Jie ", - "Xi ", - "Shan ", - "Qian ", - "Jue ", - "Cang ", - "Chu ", - "San ", - "Bei ", - "Xiao ", - "Yong ", - "Yao ", - "Tan ", - "Suo ", - "Yang ", - "Fa ", - "Bing ", - "Jia ", - "Dai ", - "Zai ", - "Tang ", - "[?] ", - "Bin ", - "Chu ", - "Nuo ", - "Can ", - "Lei ", - "Cui ", - "Yong ", - "Zao ", - "Zong ", - "Peng ", - "Song ", - "Ao ", - "Chuan ", - "Yu ", - "Zhai ", - "Cou ", - "Shang ", - "Qiang ", - "Jing ", - "Chi ", - "Sha ", - "Han ", - "Zhang ", - "Qing ", - "Yan ", - "Di ", - "Xi ", - "Lu ", - "Bei ", - "Piao ", - "Jin ", - "Lian ", - "Lu ", - "Man ", - "Qian ", - "Xian ", - "Tan ", - "Ying ", - "Dong ", - "Zhuan ", - "Xiang ", - "Shan ", - "Qiao ", - "Jiong ", - "Tui ", - "Zun ", - "Pu ", - "Xi ", - "Lao ", - "Chang ", - "Guang ", - "Liao ", - "Qi ", - "Deng ", - "Chan ", - "Wei ", - "Ji ", - "Fan ", - "Hui ", - "Chuan ", - "Jian ", - "Dan ", - "Jiao ", - "Jiu ", - "Seng ", - "Fen ", - "Xian ", - "Jue ", - "E ", - "Jiao ", - "Jian ", - "Tong ", - "Lin ", - "Bo ", - "Gu ", - "[?] ", - "Su ", - "Xian ", - "Jiang ", - "Min ", - "Ye ", - "Jin ", - "Jia ", - "Qiao ", - "Pi ", - "Feng ", - "Zhou ", - "Ai ", - "Sai ", - "Yi ", - "Jun ", - "Nong ", - "Chan ", - "Yi ", - "Dang ", - "Jing ", - "Xuan ", - "Kuai ", - "Jian ", - "Chu ", - "Dan ", - "Jiao ", - "Sha ", - "Zai ", - "[?] ", - "Bin ", - "An ", - "Ru ", - "Tai ", - "Chou ", - "Chai ", - "Lan ", - "Ni ", - "Jin ", - "Qian ", - "Meng ", - "Wu ", - "Ning ", - "Qiong ", - "Ni ", - "Chang ", - "Lie ", - "Lei ", - "Lu ", - "Kuang ", - "Bao ", - "Du ", - "Biao ", - "Zan ", - "Zhi ", - "Si ", - "You ", - "Hao ", - "Chen ", - "Chen ", - "Li ", - "Teng ", - "Wei ", - "Long ", - "Chu ", - "Chan ", - "Rang ", - "Shu ", - "Hui ", - "Li ", - "Luo ", - "Zan ", - "Nuo ", - "Tang ", - "Yan ", - "Lei ", - "Nang ", - "Er ", - "Wu ", - "Yun ", - "Zan ", - "Yuan ", - "Xiong ", - "Chong ", - "Zhao ", - "Xiong ", - "Xian ", - "Guang ", - "Dui ", - "Ke ", - "Dui ", - "Mian ", - "Tu ", - "Chang ", - "Er ", - "Dui ", - "Er ", - "Xin ", - "Tu ", - "Si ", - "Yan ", - "Yan ", - "Shi ", - "Shi ", - "Dang ", - "Qian ", - "Dou ", - "Fen ", - "Mao ", - "Shen ", - "Dou ", - "Bai ", - "Jing ", - "Li ", - "Huang ", - "Ru ", - "Wang ", - "Nei ", - "Quan ", - "Liang ", - "Yu ", - "Ba ", - "Gong ", - "Liu ", - "Xi ", - "[?] ", - "Lan ", - "Gong ", - "Tian ", - "Guan ", - "Xing ", - "Bing ", - "Qi ", - "Ju ", - "Dian ", - "Zi ", - "Ppwun ", - "Yang ", - "Jian ", - "Shou ", - "Ji ", - "Yi ", - "Ji ", - "Chan ", - "Jiong ", - "Mao ", - "Ran ", - "Nei ", - "Yuan ", - "Mao ", - "Gang ", - "Ran ", - "Ce ", - "Jiong ", - "Ce ", - "Zai ", - "Gua ", - "Jiong ", - "Mao ", - "Zhou ", - "Mou ", - "Gou ", - "Xu ", - "Mian ", - "Mi ", - "Rong ", - "Yin ", - "Xie ", - "Kan ", - "Jun ", - "Nong ", - "Yi ", - "Mi ", - "Shi ", - "Guan ", - "Meng ", - "Zhong ", - "Ju ", - "Yuan ", - "Ming ", - "Kou ", - "Lam ", - "Fu ", - "Xie ", - "Mi ", - "Bing ", - "Dong ", - "Tai ", - "Gang ", - "Feng ", - "Bing ", - "Hu ", - "Chong ", - "Jue ", - "Hu ", - "Kuang ", - "Ye ", - "Leng ", - "Pan ", - "Fu ", - "Min ", - "Dong ", - "Xian ", - "Lie ", - "Xia ", - "Jian ", - "Jing ", - "Shu ", - "Mei ", - "Tu ", - "Qi ", - "Gu ", - "Zhun ", - "Song ", - "Jing ", - "Liang ", - "Qing ", - "Diao ", - "Ling ", - "Dong ", - "Gan ", - "Jian ", - "Yin ", - "Cou ", - "Yi ", - "Li ", - "Cang ", - "Ming ", - "Zhuen ", - "Cui ", - "Si ", - "Duo ", - "Jin ", - "Lin ", - "Lin ", - "Ning ", - "Xi ", - "Du ", - "Ji ", - "Fan ", - "Fan ", - "Fan ", - "Feng ", - "Ju ", - "Chu ", - "Tako ", - "Feng ", - "Mok ", - "Ci ", - "Fu ", - "Feng ", - "Ping ", - "Feng ", - "Kai ", - "Huang ", - "Kai ", - "Gan ", - "Deng ", - "Ping ", - "Qu ", - "Xiong ", - "Kuai ", - "Tu ", - "Ao ", - "Chu ", - "Ji ", - "Dang ", - "Han ", - "Han ", - "Zao ", - "Dao ", - "Diao ", - "Dao ", - "Ren ", - "Ren ", - "Chuang ", - "Fen ", - "Qie ", - "Yi ", - "Ji ", - "Kan ", - "Qian ", - "Cun ", - "Chu ", - "Wen ", - "Ji ", - "Dan ", - "Xing ", - "Hua ", - "Wan ", - "Jue ", - "Li ", - "Yue ", - "Lie ", - "Liu ", - "Ze ", - "Gang ", - "Chuang ", - "Fu ", - "Chu ", - "Qu ", - "Ju ", - "Shan ", - "Min ", - "Ling ", - "Zhong ", - "Pan ", - "Bie ", - "Jie ", - "Jie ", - "Bao ", - "Li ", - "Shan ", - "Bie ", - "Chan ", - "Jing ", - "Gua ", - "Gen ", - "Dao ", - "Chuang ", - "Kui ", - "Ku ", - "Duo ", - "Er ", - "Zhi ", - "Shua ", - "Quan ", - "Cha ", - "Ci ", - "Ke ", - "Jie ", - "Gui ", - "Ci ", - "Gui ", - "Kai ", - "Duo ", - "Ji ", - "Ti ", - "Jing ", - "Lou ", - "Gen ", - "Ze ", - "Yuan ", - "Cuo ", - "Xue ", - "Ke ", - "La ", - "Qian ", - "Cha ", - "Chuang ", - "Gua ", - "Jian ", - "Cuo ", - "Li ", - "Ti ", - "Fei ", - "Pou ", - "Chan ", - "Qi ", - "Chuang ", - "Zi ", - "Gang ", - "Wan ", - "Bo ", - "Ji ", - "Duo ", - "Qing ", - "Yan ", - "Zhuo ", - "Jian ", - "Ji ", - "Bo ", - "Yan ", - "Ju ", - "Huo ", - "Sheng ", - "Jian ", - "Duo ", - "Duan ", - "Wu ", - "Gua ", - "Fu ", - "Sheng ", - "Jian ", - "Ge ", - "Zha ", - "Kai ", - "Chuang ", - "Juan ", - "Chan ", - "Tuan ", - "Lu ", - "Li ", - "Fou ", - "Shan ", - "Piao ", - "Kou ", - "Jiao ", - "Gua ", - "Qiao ", - "Jue ", - "Hua ", - "Zha ", - "Zhuo ", - "Lian ", - "Ju ", - "Pi ", - "Liu ", - "Gui ", - "Jiao ", - "Gui ", - "Jian ", - "Jian ", - "Tang ", - "Huo ", - "Ji ", - "Jian ", - "Yi ", - "Jian ", - "Zhi ", - "Chan ", - "Cuan ", - "Mo ", - "Li ", - "Zhu ", - "Li ", - "Ya ", - "Quan ", - "Ban ", - "Gong ", - "Jia ", - "Wu ", - "Mai ", - "Lie ", - "Jin ", - "Keng ", - "Xie ", - "Zhi ", - "Dong ", - "Zhu ", - "Nu ", - "Jie ", - "Qu ", - "Shao ", - "Yi ", - "Zhu ", - "Miao ", - "Li ", - "Jing ", - "Lao ", - "Lao ", - "Juan ", - "Kou ", - "Yang ", - "Wa ", - "Xiao ", - "Mou ", - "Kuang ", - "Jie ", - "Lie ", - "He ", - "Shi ", - "Ke ", - "Jing ", - "Hao ", - "Bo ", - "Min ", - "Chi ", - "Lang ", - "Yong ", - "Yong ", - "Mian ", - "Ke ", - "Xun ", - "Juan ", - "Qing ", - "Lu ", - "Pou ", - "Meng ", - "Lai ", - "Le ", - "Kai ", - "Mian ", - "Dong ", - "Xu ", - "Xu ", - "Kan ", - "Wu ", - "Yi ", - "Xun ", - "Weng ", - "Sheng ", - "Lao ", - "Mu ", - "Lu ", - "Piao ", - "Shi ", - "Ji ", - "Qin ", - "Qiang ", - "Jiao ", - "Quan ", - "Yang ", - "Yi ", - "Jue ", - "Fan ", - "Juan ", - "Tong ", - "Ju ", - "Dan ", - "Xie ", - "Mai ", - "Xun ", - "Xun ", - "Lu ", - "Li ", - "Che ", - "Rang ", - "Quan ", - "Bao ", - "Shao ", - "Yun ", - "Jiu ", - "Bao ", - "Gou ", - "Wu ", - "Yun ", - "Mwun ", - "Nay ", - "Gai ", - "Gai ", - "Bao ", - "Cong ", - "[?] ", - "Xiong ", - "Peng ", - "Ju ", - "Tao ", - "Ge ", - "Pu ", - "An ", - "Pao ", - "Fu ", - "Gong ", - "Da ", - "Jiu ", - "Qiong ", - "Bi ", - "Hua ", - "Bei ", - "Nao ", - "Chi ", - "Fang ", - "Jiu ", - "Yi ", - "Za ", - "Jiang ", - "Kang ", - "Jiang ", - "Kuang ", - "Hu ", - "Xia ", - "Qu ", - "Bian ", - "Gui ", - "Qie ", - "Zang ", - "Kuang ", - "Fei ", - "Hu ", - "Tou ", - "Gui ", - "Gui ", - "Hui ", - "Dan ", - "Gui ", - "Lian ", - "Lian ", - "Suan ", - "Du ", - "Jiu ", - "Qu ", - "Xi ", - "Pi ", - "Qu ", - "Yi ", - "Qia ", - "Yan ", - "Bian ", - "Ni ", - "Qu ", - "Shi ", - "Xin ", - "Qian ", - "Nian ", - "Sa ", - "Zu ", - "Sheng ", - "Wu ", - "Hui ", - "Ban ", - "Shi ", - "Xi ", - "Wan ", - "Hua ", - "Xie ", - "Wan ", - "Bei ", - "Zu ", - "Zhuo ", - "Xie ", - "Dan ", - "Mai ", - "Nan ", - "Dan ", - "Ji ", - "Bo ", - "Shuai ", - "Bu ", - "Kuang ", - "Bian ", - "Bu ", - "Zhan ", - "Qia ", - "Lu ", - "You ", - "Lu ", - "Xi ", - "Gua ", - "Wo ", - "Xie ", - "Jie ", - "Jie ", - "Wei ", - "Ang ", - "Qiong ", - "Zhi ", - "Mao ", - "Yin ", - "Wei ", - "Shao ", - "Ji ", - "Que ", - "Luan ", - "Shi ", - "Juan ", - "Xie ", - "Xu ", - "Jin ", - "Que ", - "Wu ", - "Ji ", - "E ", - "Qing ", - "Xi ", - "[?] ", - "Han ", - "Zhan ", - "E ", - "Ting ", - "Li ", - "Zhe ", - "Han ", - "Li ", - "Ya ", - "Ya ", - "Yan ", - "She ", - "Zhi ", - "Zha ", - "Pang ", - "[?] ", - "He ", - "Ya ", - "Zhi ", - "Ce ", - "Pang ", - "Ti ", - "Li ", - "She ", - "Hou ", - "Ting ", - "Zui ", - "Cuo ", - "Fei ", - "Yuan ", - "Ce ", - "Yuan ", - "Xiang ", - "Yan ", - "Li ", - "Jue ", - "Sha ", - "Dian ", - "Chu ", - "Jiu ", - "Qin ", - "Ao ", - "Gui ", - "Yan ", - "Si ", - "Li ", - "Chang ", - "Lan ", - "Li ", - "Yan ", - "Yan ", - "Yuan ", - "Si ", - "Gong ", - "Lin ", - "Qiu ", - "Qu ", - "Qu ", - "Uk ", - "Lei ", - "Du ", - "Xian ", - "Zhuan ", - "San ", - "Can ", - "Can ", - "Can ", - "Can ", - "Ai ", - "Dai ", - "You ", - "Cha ", - "Ji ", - "You ", - "Shuang ", - "Fan ", - "Shou ", - "Guai ", - "Ba ", - "Fa ", - "Ruo ", - "Shi ", - "Shu ", - "Zhuo ", - "Qu ", - "Shou ", - "Bian ", - "Xu ", - "Jia ", - "Pan ", - "Sou ", - "Gao ", - "Wei ", - "Sou ", - "Die ", - "Rui ", - "Cong ", - "Kou ", - "Gu ", - "Ju ", - "Ling ", - "Gua ", - "Tao ", - "Kou ", - "Zhi ", - "Jiao ", - "Zhao ", - "Ba ", - "Ding ", - "Ke ", - "Tai ", - "Chi ", - "Shi ", - "You ", - "Qiu ", - "Po ", - "Xie ", - "Hao ", - "Si ", - "Tan ", - "Chi ", - "Le ", - "Diao ", - "Ji ", - "[?] ", - "Hong ", - "Mie ", - "Xu ", - "Mang ", - "Chi ", - "Ge ", - "Xuan ", - "Yao ", - "Zi ", - "He ", - "Ji ", - "Diao ", - "Cun ", - "Tong ", - "Ming ", - "Hou ", - "Li ", - "Tu ", - "Xiang ", - "Zha ", - "Xia ", - "Ye ", - "Lu ", - "A ", - "Ma ", - "Ou ", - "Xue ", - "Yi ", - "Jun ", - "Chou ", - "Lin ", - "Tun ", - "Yin ", - "Fei ", - "Bi ", - "Qin ", - "Qin ", - "Jie ", - "Bu ", - "Fou ", - "Ba ", - "Dun ", - "Fen ", - "E ", - "Han ", - "Ting ", - "Hang ", - "Shun ", - "Qi ", - "Hong ", - "Zhi ", - "Shen ", - "Wu ", - "Wu ", - "Chao ", - "Ne ", - "Xue ", - "Xi ", - "Chui ", - "Dou ", - "Wen ", - "Hou ", - "Ou ", - "Wu ", - "Gao ", - "Ya ", - "Jun ", - "Lu ", - "E ", - "Ge ", - "Mei ", - "Ai ", - "Qi ", - "Cheng ", - "Wu ", - "Gao ", - "Fu ", - "Jiao ", - "Hong ", - "Chi ", - "Sheng ", - "Ne ", - "Tun ", - "Fu ", - "Yi ", - "Dai ", - "Ou ", - "Li ", - "Bai ", - "Yuan ", - "Kuai ", - "[?] ", - "Qiang ", - "Wu ", - "E ", - "Shi ", - "Quan ", - "Pen ", - "Wen ", - "Ni ", - "M ", - "Ling ", - "Ran ", - "You ", - "Di ", - "Zhou ", - "Shi ", - "Zhou ", - "Tie ", - "Xi ", - "Yi ", - "Qi ", - "Ping ", - "Zi ", - "Gu ", - "Zi ", - "Wei ", - "Xu ", - "He ", - "Nao ", - "Xia ", - "Pei ", - "Yi ", - "Xiao ", - "Shen ", - "Hu ", - "Ming ", - "Da ", - "Qu ", - "Ju ", - "Gem ", - "Za ", - "Tuo ", - "Duo ", - "Pou ", - "Pao ", - "Bi ", - "Fu ", - "Yang ", - "He ", - "Zha ", - "He ", - "Hai ", - "Jiu ", - "Yong ", - "Fu ", - "Que ", - "Zhou ", - "Wa ", - "Ka ", - "Gu ", - "Ka ", - "Zuo ", - "Bu ", - "Long ", - "Dong ", - "Ning ", - "Tha ", - "Si ", - "Xian ", - "Huo ", - "Qi ", - "Er ", - "E ", - "Guang ", - "Zha ", - "Xi ", - "Yi ", - "Lie ", - "Zi ", - "Mie ", - "Mi ", - "Zhi ", - "Yao ", - "Ji ", - "Zhou ", - "Ge ", - "Shuai ", - "Zan ", - "Xiao ", - "Ke ", - "Hui ", - "Kua ", - "Huai ", - "Tao ", - "Xian ", - "E ", - "Xuan ", - "Xiu ", - "Wai ", - "Yan ", - "Lao ", - "Yi ", - "Ai ", - "Pin ", - "Shen ", - "Tong ", - "Hong ", - "Xiong ", - "Chi ", - "Wa ", - "Ha ", - "Zai ", - "Yu ", - "Di ", - "Pai ", - "Xiang ", - "Ai ", - "Hen ", - "Kuang ", - "Ya ", - "Da ", - "Xiao ", - "Bi ", - "Yue ", - "[?] ", - "Hua ", - "Sasou ", - "Kuai ", - "Duo ", - "[?] ", - "Ji ", - "Nong ", - "Mou ", - "Yo ", - "Hao ", - "Yuan ", - "Long ", - "Pou ", - "Mang ", - "Ge ", - "E ", - "Chi ", - "Shao ", - "Li ", - "Na ", - "Zu ", - "He ", - "Ku ", - "Xiao ", - "Xian ", - "Lao ", - "Bo ", - "Zhe ", - "Zha ", - "Liang ", - "Ba ", - "Mie ", - "Le ", - "Sui ", - "Fou ", - "Bu ", - "Han ", - "Heng ", - "Geng ", - "Shuo ", - "Ge ", - "You ", - "Yan ", - "Gu ", - "Gu ", - "Bai ", - "Han ", - "Suo ", - "Chun ", - "Yi ", - "Ai ", - "Jia ", - "Tu ", - "Xian ", - "Huan ", - "Li ", - "Xi ", - "Tang ", - "Zuo ", - "Qiu ", - "Che ", - "Wu ", - "Zao ", - "Ya ", - "Dou ", - "Qi ", - "Di ", - "Qin ", - "Ma ", - "Mal ", - "Hong ", - "Dou ", - "Kes ", - "Lao ", - "Liang ", - "Suo ", - "Zao ", - "Huan ", - "Lang ", - "Sha ", - "Ji ", - "Zuo ", - "Wo ", - "Feng ", - "Yin ", - "Hu ", - "Qi ", - "Shou ", - "Wei ", - "Shua ", - "Chang ", - "Er ", - "Li ", - "Qiang ", - "An ", - "Jie ", - "Yo ", - "Nian ", - "Yu ", - "Tian ", - "Lai ", - "Sha ", - "Xi ", - "Tuo ", - "Hu ", - "Ai ", - "Zhou ", - "Nou ", - "Ken ", - "Zhuo ", - "Zhuo ", - "Shang ", - "Di ", - "Heng ", - "Lan ", - "A ", - "Xiao ", - "Xiang ", - "Tun ", - "Wu ", - "Wen ", - "Cui ", - "Sha ", - "Hu ", - "Qi ", - "Qi ", - "Tao ", - "Dan ", - "Dan ", - "Ye ", - "Zi ", - "Bi ", - "Cui ", - "Chuo ", - "He ", - "Ya ", - "Qi ", - "Zhe ", - "Pei ", - "Liang ", - "Xian ", - "Pi ", - "Sha ", - "La ", - "Ze ", - "Qing ", - "Gua ", - "Pa ", - "Zhe ", - "Se ", - "Zhuan ", - "Nie ", - "Guo ", - "Luo ", - "Yan ", - "Di ", - "Quan ", - "Tan ", - "Bo ", - "Ding ", - "Lang ", - "Xiao ", - "[?] ", - "Tang ", - "Chi ", - "Ti ", - "An ", - "Jiu ", - "Dan ", - "Ke ", - "Yong ", - "Wei ", - "Nan ", - "Shan ", - "Yu ", - "Zhe ", - "La ", - "Jie ", - "Hou ", - "Han ", - "Die ", - "Zhou ", - "Chai ", - "Wai ", - "Re ", - "Yu ", - "Yin ", - "Zan ", - "Yao ", - "Wo ", - "Mian ", - "Hu ", - "Yun ", - "Chuan ", - "Hui ", - "Huan ", - "Huan ", - "Xi ", - "He ", - "Ji ", - "Kui ", - "Zhong ", - "Wei ", - "Sha ", - "Xu ", - "Huang ", - "Du ", - "Nie ", - "Xuan ", - "Liang ", - "Yu ", - "Sang ", - "Chi ", - "Qiao ", - "Yan ", - "Dan ", - "Pen ", - "Can ", - "Li ", - "Yo ", - "Zha ", - "Wei ", - "Miao ", - "Ying ", - "Pen ", - "Phos ", - "Kui ", - "Xi ", - "Yu ", - "Jie ", - "Lou ", - "Ku ", - "Sao ", - "Huo ", - "Ti ", - "Yao ", - "He ", - "A ", - "Xiu ", - "Qiang ", - "Se ", - "Yong ", - "Su ", - "Hong ", - "Xie ", - "Yi ", - "Suo ", - "Ma ", - "Cha ", - "Hai ", - "Ke ", - "Ta ", - "Sang ", - "Tian ", - "Ru ", - "Sou ", - "Wa ", - "Ji ", - "Pang ", - "Wu ", - "Xian ", - "Shi ", - "Ge ", - "Zi ", - "Jie ", - "Luo ", - "Weng ", - "Wa ", - "Si ", - "Chi ", - "Hao ", - "Suo ", - "Jia ", - "Hai ", - "Suo ", - "Qin ", - "Nie ", - "He ", - "Cis ", - "Sai ", - "Ng ", - "Ge ", - "Na ", - "Dia ", - "Ai ", - "[?] ", - "Tong ", - "Bi ", - "Ao ", - "Ao ", - "Lian ", - "Cui ", - "Zhe ", - "Mo ", - "Sou ", - "Sou ", - "Tan ", - "Di ", - "Qi ", - "Jiao ", - "Chong ", - "Jiao ", - "Kai ", - "Tan ", - "San ", - "Cao ", - "Jia ", - "Ai ", - "Xiao ", - "Piao ", - "Lou ", - "Ga ", - "Gu ", - "Xiao ", - "Hu ", - "Hui ", - "Guo ", - "Ou ", - "Xian ", - "Ze ", - "Chang ", - "Xu ", - "Po ", - "De ", - "Ma ", - "Ma ", - "Hu ", - "Lei ", - "Du ", - "Ga ", - "Tang ", - "Ye ", - "Beng ", - "Ying ", - "Saai ", - "Jiao ", - "Mi ", - "Xiao ", - "Hua ", - "Mai ", - "Ran ", - "Zuo ", - "Peng ", - "Lao ", - "Xiao ", - "Ji ", - "Zhu ", - "Chao ", - "Kui ", - "Zui ", - "Xiao ", - "Si ", - "Hao ", - "Fu ", - "Liao ", - "Qiao ", - "Xi ", - "Xiu ", - "Tan ", - "Tan ", - "Mo ", - "Xun ", - "E ", - "Zun ", - "Fan ", - "Chi ", - "Hui ", - "Zan ", - "Chuang ", - "Cu ", - "Dan ", - "Yu ", - "Tun ", - "Cheng ", - "Jiao ", - "Ye ", - "Xi ", - "Qi ", - "Hao ", - "Lian ", - "Xu ", - "Deng ", - "Hui ", - "Yin ", - "Pu ", - "Jue ", - "Qin ", - "Xun ", - "Nie ", - "Lu ", - "Si ", - "Yan ", - "Ying ", - "Da ", - "Dan ", - "Yu ", - "Zhou ", - "Jin ", - "Nong ", - "Yue ", - "Hui ", - "Qi ", - "E ", - "Zao ", - "Yi ", - "Shi ", - "Jiao ", - "Yuan ", - "Ai ", - "Yong ", - "Jue ", - "Kuai ", - "Yu ", - "Pen ", - "Dao ", - "Ge ", - "Xin ", - "Dun ", - "Dang ", - "Sin ", - "Sai ", - "Pi ", - "Pi ", - "Yin ", - "Zui ", - "Ning ", - "Di ", - "Lan ", - "Ta ", - "Huo ", - "Ru ", - "Hao ", - "Xia ", - "Ya ", - "Duo ", - "Xi ", - "Chou ", - "Ji ", - "Jin ", - "Hao ", - "Ti ", - "Chang ", - "[?] ", - "[?] ", - "Ca ", - "Ti ", - "Lu ", - "Hui ", - "Bo ", - "You ", - "Nie ", - "Yin ", - "Hu ", - "Mo ", - "Huang ", - "Zhe ", - "Li ", - "Liu ", - "Haai ", - "Nang ", - "Xiao ", - "Mo ", - "Yan ", - "Li ", - "Lu ", - "Long ", - "Fu ", - "Dan ", - "Chen ", - "Pin ", - "Pi ", - "Xiang ", - "Huo ", - "Mo ", - "Xi ", - "Duo ", - "Ku ", - "Yan ", - "Chan ", - "Ying ", - "Rang ", - "Dian ", - "La ", - "Ta ", - "Xiao ", - "Jiao ", - "Chuo ", - "Huan ", - "Huo ", - "Zhuan ", - "Nie ", - "Xiao ", - "Ca ", - "Li ", - "Chan ", - "Chai ", - "Li ", - "Yi ", - "Luo ", - "Nang ", - "Zan ", - "Su ", - "Xi ", - "So ", - "Jian ", - "Za ", - "Zhu ", - "Lan ", - "Nie ", - "Nang ", - "[?] ", - "[?] ", - "Wei ", - "Hui ", - "Yin ", - "Qiu ", - "Si ", - "Nin ", - "Jian ", - "Hui ", - "Xin ", - "Yin ", - "Nan ", - "Tuan ", - "Tuan ", - "Dun ", - "Kang ", - "Yuan ", - "Jiong ", - "Pian ", - "Yun ", - "Cong ", - "Hu ", - "Hui ", - "Yuan ", - "You ", - "Guo ", - "Kun ", - "Cong ", - "Wei ", - "Tu ", - "Wei ", - "Lun ", - "Guo ", - "Qun ", - "Ri ", - "Ling ", - "Gu ", - "Guo ", - "Tai ", - "Guo ", - "Tu ", - "You ", - "Guo ", - "Yin ", - "Hun ", - "Pu ", - "Yu ", - "Han ", - "Yuan ", - "Lun ", - "Quan ", - "Yu ", - "Qing ", - "Guo ", - "Chuan ", - "Wei ", - "Yuan ", - "Quan ", - "Ku ", - "Fu ", - "Yuan ", - "Yuan ", - "E ", - "Tu ", - "Tu ", - "Tu ", - "Tuan ", - "Lue ", - "Hui ", - "Yi ", - "Yuan ", - "Luan ", - "Luan ", - "Tu ", - "Ya ", - "Tu ", - "Ting ", - "Sheng ", - "Pu ", - "Lu ", - "Iri ", - "Ya ", - "Zai ", - "Wei ", - "Ge ", - "Yu ", - "Wu ", - "Gui ", - "Pi ", - "Yi ", - "Di ", - "Qian ", - "Qian ", - "Zhen ", - "Zhuo ", - "Dang ", - "Qia ", - "Akutsu ", - "Yama ", - "Kuang ", - "Chang ", - "Qi ", - "Nie ", - "Mo ", - "Ji ", - "Jia ", - "Zhi ", - "Zhi ", - "Ban ", - "Xun ", - "Tou ", - "Qin ", - "Fen ", - "Jun ", - "Keng ", - "Tun ", - "Fang ", - "Fen ", - "Ben ", - "Tan ", - "Kan ", - "Pi ", - "Zuo ", - "Keng ", - "Bi ", - "Xing ", - "Di ", - "Jing ", - "Ji ", - "Kuai ", - "Di ", - "Jing ", - "Jian ", - "Tan ", - "Li ", - "Ba ", - "Wu ", - "Fen ", - "Zhui ", - "Po ", - "Pan ", - "Tang ", - "Kun ", - "Qu ", - "Tan ", - "Zhi ", - "Tuo ", - "Gan ", - "Ping ", - "Dian ", - "Gua ", - "Ni ", - "Tai ", - "Pi ", - "Jiong ", - "Yang ", - "Fo ", - "Ao ", - "Liu ", - "Qiu ", - "Mu ", - "Ke ", - "Gou ", - "Xue ", - "Ba ", - "Chi ", - "Che ", - "Ling ", - "Zhu ", - "Fu ", - "Hu ", - "Zhi ", - "Chui ", - "La ", - "Long ", - "Long ", - "Lu ", - "Ao ", - "Tay ", - "Pao ", - "[?] ", - "Xing ", - "Dong ", - "Ji ", - "Ke ", - "Lu ", - "Ci ", - "Chi ", - "Lei ", - "Gai ", - "Yin ", - "Hou ", - "Dui ", - "Zhao ", - "Fu ", - "Guang ", - "Yao ", - "Duo ", - "Duo ", - "Gui ", - "Cha ", - "Yang ", - "Yin ", - "Fa ", - "Gou ", - "Yuan ", - "Die ", - "Xie ", - "Ken ", - "Jiong ", - "Shou ", - "E ", - "Ha ", - "Dian ", - "Hong ", - "Wu ", - "Kua ", - "[?] ", - "Tao ", - "Dang ", - "Kai ", - "Gake ", - "Nao ", - "An ", - "Xing ", - "Xian ", - "Huan ", - "Bang ", - "Pei ", - "Ba ", - "Yi ", - "Yin ", - "Han ", - "Xu ", - "Chui ", - "Cen ", - "Geng ", - "Ai ", - "Peng ", - "Fang ", - "Que ", - "Yong ", - "Xun ", - "Jia ", - "Di ", - "Mai ", - "Lang ", - "Xuan ", - "Cheng ", - "Yan ", - "Jin ", - "Zhe ", - "Lei ", - "Lie ", - "Bu ", - "Cheng ", - "Gomi ", - "Bu ", - "Shi ", - "Xun ", - "Guo ", - "Jiong ", - "Ye ", - "Nian ", - "Di ", - "Yu ", - "Bu ", - "Ya ", - "Juan ", - "Sui ", - "Pi ", - "Cheng ", - "Wan ", - "Ju ", - "Lun ", - "Zheng ", - "Kong ", - "Chong ", - "Dong ", - "Dai ", - "Tan ", - "An ", - "Cai ", - "Shu ", - "Beng ", - "Kan ", - "Zhi ", - "Duo ", - "Yi ", - "Zhi ", - "Yi ", - "Pei ", - "Ji ", - "Zhun ", - "Qi ", - "Sao ", - "Ju ", - "Ni ", - "Ku ", - "Ke ", - "Tang ", - "Kun ", - "Ni ", - "Jian ", - "Dui ", - "Jin ", - "Gang ", - "Yu ", - "E ", - "Peng ", - "Gu ", - "Tu ", - "Leng ", - "[?] ", - "Ya ", - "Qian ", - "[?] ", - "An ", - "[?] ", - "Duo ", - "Nao ", - "Tu ", - "Cheng ", - "Yin ", - "Hun ", - "Bi ", - "Lian ", - "Guo ", - "Die ", - "Zhuan ", - "Hou ", - "Bao ", - "Bao ", - "Yu ", - "Di ", - "Mao ", - "Jie ", - "Ruan ", - "E ", - "Geng ", - "Kan ", - "Zong ", - "Yu ", - "Huang ", - "E ", - "Yao ", - "Yan ", - "Bao ", - "Ji ", - "Mei ", - "Chang ", - "Du ", - "Tuo ", - "Yin ", - "Feng ", - "Zhong ", - "Jie ", - "Zhen ", - "Feng ", - "Gang ", - "Chuan ", - "Jian ", - "Pyeng ", - "Toride ", - "Xiang ", - "Huang ", - "Leng ", - "Duan ", - "[?] ", - "Xuan ", - "Ji ", - "Ji ", - "Kuai ", - "Ying ", - "Ta ", - "Cheng ", - "Yong ", - "Kai ", - "Su ", - "Su ", - "Shi ", - "Mi ", - "Ta ", - "Weng ", - "Cheng ", - "Tu ", - "Tang ", - "Que ", - "Zhong ", - "Li ", - "Peng ", - "Bang ", - "Sai ", - "Zang ", - "Dui ", - "Tian ", - "Wu ", - "Cheng ", - "Xun ", - "Ge ", - "Zhen ", - "Ai ", - "Gong ", - "Yan ", - "Kan ", - "Tian ", - "Yuan ", - "Wen ", - "Xie ", - "Liu ", - "Ama ", - "Lang ", - "Chang ", - "Peng ", - "Beng ", - "Chen ", - "Cu ", - "Lu ", - "Ou ", - "Qian ", - "Mei ", - "Mo ", - "Zhuan ", - "Shuang ", - "Shu ", - "Lou ", - "Chi ", - "Man ", - "Biao ", - "Jing ", - "Qi ", - "Shu ", - "Di ", - "Zhang ", - "Kan ", - "Yong ", - "Dian ", - "Chen ", - "Zhi ", - "Xi ", - "Guo ", - "Qiang ", - "Jin ", - "Di ", - "Shang ", - "Mu ", - "Cui ", - "Yan ", - "Ta ", - "Zeng ", - "Qi ", - "Qiang ", - "Liang ", - "[?] ", - "Zhui ", - "Qiao ", - "Zeng ", - "Xu ", - "Shan ", - "Shan ", - "Ba ", - "Pu ", - "Kuai ", - "Dong ", - "Fan ", - "Que ", - "Mo ", - "Dun ", - "Dun ", - "Dun ", - "Di ", - "Sheng ", - "Duo ", - "Duo ", - "Tan ", - "Deng ", - "Wu ", - "Fen ", - "Huang ", - "Tan ", - "Da ", - "Ye ", - "Sho ", - "Mama ", - "Yu ", - "Qiang ", - "Ji ", - "Qiao ", - "Ken ", - "Yi ", - "Pi ", - "Bi ", - "Dian ", - "Jiang ", - "Ye ", - "Yong ", - "Bo ", - "Tan ", - "Lan ", - "Ju ", - "Huai ", - "Dang ", - "Rang ", - "Qian ", - "Xun ", - "Lan ", - "Xi ", - "He ", - "Ai ", - "Ya ", - "Dao ", - "Hao ", - "Ruan ", - "Mama ", - "Lei ", - "Kuang ", - "Lu ", - "Yan ", - "Tan ", - "Wei ", - "Huai ", - "Long ", - "Long ", - "Rui ", - "Li ", - "Lin ", - "Rang ", - "Ten ", - "Xun ", - "Yan ", - "Lei ", - "Ba ", - "[?] ", - "Shi ", - "Ren ", - "[?] ", - "Zhuang ", - "Zhuang ", - "Sheng ", - "Yi ", - "Mai ", - "Ke ", - "Zhu ", - "Zhuang ", - "Hu ", - "Hu ", - "Kun ", - "Yi ", - "Hu ", - "Xu ", - "Kun ", - "Shou ", - "Mang ", - "Zun ", - "Shou ", - "Yi ", - "Zhi ", - "Gu ", - "Chu ", - "Jiang ", - "Feng ", - "Bei ", - "Cay ", - "Bian ", - "Sui ", - "Qun ", - "Ling ", - "Fu ", - "Zuo ", - "Xia ", - "Xiong ", - "[?] ", - "Nao ", - "Xia ", - "Kui ", - "Xi ", - "Wai ", - "Yuan ", - "Mao ", - "Su ", - "Duo ", - "Duo ", - "Ye ", - "Qing ", - "Uys ", - "Gou ", - "Gou ", - "Qi ", - "Meng ", - "Meng ", - "Yin ", - "Huo ", - "Chen ", - "Da ", - "Ze ", - "Tian ", - "Tai ", - "Fu ", - "Guai ", - "Yao ", - "Yang ", - "Hang ", - "Gao ", - "Shi ", - "Ben ", - "Tai ", - "Tou ", - "Yan ", - "Bi ", - "Yi ", - "Kua ", - "Jia ", - "Duo ", - "Kwu ", - "Kuang ", - "Yun ", - "Jia ", - "Pa ", - "En ", - "Lian ", - "Huan ", - "Di ", - "Yan ", - "Pao ", - "Quan ", - "Qi ", - "Nai ", - "Feng ", - "Xie ", - "Fen ", - "Dian ", - "[?] ", - "Kui ", - "Zou ", - "Huan ", - "Qi ", - "Kai ", - "Zha ", - "Ben ", - "Yi ", - "Jiang ", - "Tao ", - "Zang ", - "Ben ", - "Xi ", - "Xiang ", - "Fei ", - "Diao ", - "Xun ", - "Keng ", - "Dian ", - "Ao ", - "She ", - "Weng ", - "Pan ", - "Ao ", - "Wu ", - "Ao ", - "Jiang ", - "Lian ", - "Duo ", - "Yun ", - "Jiang ", - "Shi ", - "Fen ", - "Huo ", - "Bi ", - "Lian ", - "Duo ", - "Nu ", - "Nu ", - "Ding ", - "Nai ", - "Qian ", - "Jian ", - "Ta ", - "Jiu ", - "Nan ", - "Cha ", - "Hao ", - "Xian ", - "Fan ", - "Ji ", - "Shuo ", - "Ru ", - "Fei ", - "Wang ", - "Hong ", - "Zhuang ", - "Fu ", - "Ma ", - "Dan ", - "Ren ", - "Fu ", - "Jing ", - "Yan ", - "Xie ", - "Wen ", - "Zhong ", - "Pa ", - "Du ", - "Ji ", - "Keng ", - "Zhong ", - "Yao ", - "Jin ", - "Yun ", - "Miao ", - "Pei ", - "Shi ", - "Yue ", - "Zhuang ", - "Niu ", - "Yan ", - "Na ", - "Xin ", - "Fen ", - "Bi ", - "Yu ", - "Tuo ", - "Feng ", - "Yuan ", - "Fang ", - "Wu ", - "Yu ", - "Gui ", - "Du ", - "Ba ", - "Ni ", - "Zhou ", - "Zhuo ", - "Zhao ", - "Da ", - "Nai ", - "Yuan ", - "Tou ", - "Xuan ", - "Zhi ", - "E ", - "Mei ", - "Mo ", - "Qi ", - "Bi ", - "Shen ", - "Qie ", - "E ", - "He ", - "Xu ", - "Fa ", - "Zheng ", - "Min ", - "Ban ", - "Mu ", - "Fu ", - "Ling ", - "Zi ", - "Zi ", - "Shi ", - "Ran ", - "Shan ", - "Yang ", - "Man ", - "Jie ", - "Gu ", - "Si ", - "Xing ", - "Wei ", - "Zi ", - "Ju ", - "Shan ", - "Pin ", - "Ren ", - "Yao ", - "Tong ", - "Jiang ", - "Shu ", - "Ji ", - "Gai ", - "Shang ", - "Kuo ", - "Juan ", - "Jiao ", - "Gou ", - "Mu ", - "Jian ", - "Jian ", - "Yi ", - "Nian ", - "Zhi ", - "Ji ", - "Ji ", - "Xian ", - "Heng ", - "Guang ", - "Jun ", - "Kua ", - "Yan ", - "Ming ", - "Lie ", - "Pei ", - "Yan ", - "You ", - "Yan ", - "Cha ", - "Shen ", - "Yin ", - "Chi ", - "Gui ", - "Quan ", - "Zi ", - "Song ", - "Wei ", - "Hong ", - "Wa ", - "Lou ", - "Ya ", - "Rao ", - "Jiao ", - "Luan ", - "Ping ", - "Xian ", - "Shao ", - "Li ", - "Cheng ", - "Xiao ", - "Mang ", - "Fu ", - "Suo ", - "Wu ", - "Wei ", - "Ke ", - "Lai ", - "Chuo ", - "Ding ", - "Niang ", - "Xing ", - "Nan ", - "Yu ", - "Nuo ", - "Pei ", - "Nei ", - "Juan ", - "Shen ", - "Zhi ", - "Han ", - "Di ", - "Zhuang ", - "E ", - "Pin ", - "Tui ", - "Han ", - "Mian ", - "Wu ", - "Yan ", - "Wu ", - "Xi ", - "Yan ", - "Yu ", - "Si ", - "Yu ", - "Wa ", - "[?] ", - "Xian ", - "Ju ", - "Qu ", - "Shui ", - "Qi ", - "Xian ", - "Zhui ", - "Dong ", - "Chang ", - "Lu ", - "Ai ", - "E ", - "E ", - "Lou ", - "Mian ", - "Cong ", - "Pou ", - "Ju ", - "Po ", - "Cai ", - "Ding ", - "Wan ", - "Biao ", - "Xiao ", - "Shu ", - "Qi ", - "Hui ", - "Fu ", - "E ", - "Wo ", - "Tan ", - "Fei ", - "Wei ", - "Jie ", - "Tian ", - "Ni ", - "Quan ", - "Jing ", - "Hun ", - "Jing ", - "Qian ", - "Dian ", - "Xing ", - "Hu ", - "Wa ", - "Lai ", - "Bi ", - "Yin ", - "Chou ", - "Chuo ", - "Fu ", - "Jing ", - "Lun ", - "Yan ", - "Lan ", - "Kun ", - "Yin ", - "Ya ", - "Ju ", - "Li ", - "Dian ", - "Xian ", - "Hwa ", - "Hua ", - "Ying ", - "Chan ", - "Shen ", - "Ting ", - "Dang ", - "Yao ", - "Wu ", - "Nan ", - "Ruo ", - "Jia ", - "Tou ", - "Xu ", - "Yu ", - "Wei ", - "Ti ", - "Rou ", - "Mei ", - "Dan ", - "Ruan ", - "Qin ", - "Hui ", - "Wu ", - "Qian ", - "Chun ", - "Mao ", - "Fu ", - "Jie ", - "Duan ", - "Xi ", - "Zhong ", - "Mei ", - "Huang ", - "Mian ", - "An ", - "Ying ", - "Xuan ", - "Jie ", - "Wei ", - "Mei ", - "Yuan ", - "Zhen ", - "Qiu ", - "Ti ", - "Xie ", - "Tuo ", - "Lian ", - "Mao ", - "Ran ", - "Si ", - "Pian ", - "Wei ", - "Wa ", - "Jiu ", - "Hu ", - "Ao ", - "[?] ", - "Bou ", - "Xu ", - "Tou ", - "Gui ", - "Zou ", - "Yao ", - "Pi ", - "Xi ", - "Yuan ", - "Ying ", - "Rong ", - "Ru ", - "Chi ", - "Liu ", - "Mei ", - "Pan ", - "Ao ", - "Ma ", - "Gou ", - "Kui ", - "Qin ", - "Jia ", - "Sao ", - "Zhen ", - "Yuan ", - "Cha ", - "Yong ", - "Ming ", - "Ying ", - "Ji ", - "Su ", - "Niao ", - "Xian ", - "Tao ", - "Pang ", - "Lang ", - "Nao ", - "Bao ", - "Ai ", - "Pi ", - "Pin ", - "Yi ", - "Piao ", - "Yu ", - "Lei ", - "Xuan ", - "Man ", - "Yi ", - "Zhang ", - "Kang ", - "Yong ", - "Ni ", - "Li ", - "Di ", - "Gui ", - "Yan ", - "Jin ", - "Zhuan ", - "Chang ", - "Ce ", - "Han ", - "Nen ", - "Lao ", - "Mo ", - "Zhe ", - "Hu ", - "Hu ", - "Ao ", - "Nen ", - "Qiang ", - "Ma ", - "Pie ", - "Gu ", - "Wu ", - "Jiao ", - "Tuo ", - "Zhan ", - "Mao ", - "Xian ", - "Xian ", - "Mo ", - "Liao ", - "Lian ", - "Hua ", - "Gui ", - "Deng ", - "Zhi ", - "Xu ", - "Yi ", - "Hua ", - "Xi ", - "Hui ", - "Rao ", - "Xi ", - "Yan ", - "Chan ", - "Jiao ", - "Mei ", - "Fan ", - "Fan ", - "Xian ", - "Yi ", - "Wei ", - "Jiao ", - "Fu ", - "Shi ", - "Bi ", - "Shan ", - "Sui ", - "Qiang ", - "Lian ", - "Huan ", - "Xin ", - "Niao ", - "Dong ", - "Yi ", - "Can ", - "Ai ", - "Niang ", - "Neng ", - "Ma ", - "Tiao ", - "Chou ", - "Jin ", - "Ci ", - "Yu ", - "Pin ", - "Yong ", - "Xu ", - "Nai ", - "Yan ", - "Tai ", - "Ying ", - "Can ", - "Niao ", - "Wo ", - "Ying ", - "Mian ", - "Kaka ", - "Ma ", - "Shen ", - "Xing ", - "Ni ", - "Du ", - "Liu ", - "Yuan ", - "Lan ", - "Yan ", - "Shuang ", - "Ling ", - "Jiao ", - "Niang ", - "Lan ", - "Xian ", - "Ying ", - "Shuang ", - "Shuai ", - "Quan ", - "Mi ", - "Li ", - "Luan ", - "Yan ", - "Zhu ", - "Lan ", - "Zi ", - "Jie ", - "Jue ", - "Jue ", - "Kong ", - "Yun ", - "Zi ", - "Zi ", - "Cun ", - "Sun ", - "Fu ", - "Bei ", - "Zi ", - "Xiao ", - "Xin ", - "Meng ", - "Si ", - "Tai ", - "Bao ", - "Ji ", - "Gu ", - "Nu ", - "Xue ", - "[?] ", - "Zhuan ", - "Hai ", - "Luan ", - "Sun ", - "Huai ", - "Mie ", - "Cong ", - "Qian ", - "Shu ", - "Chan ", - "Ya ", - "Zi ", - "Ni ", - "Fu ", - "Zi ", - "Li ", - "Xue ", - "Bo ", - "Ru ", - "Lai ", - "Nie ", - "Nie ", - "Ying ", - "Luan ", - "Mian ", - "Zhu ", - "Rong ", - "Ta ", - "Gui ", - "Zhai ", - "Qiong ", - "Yu ", - "Shou ", - "An ", - "Tu ", - "Song ", - "Wan ", - "Rou ", - "Yao ", - "Hong ", - "Yi ", - "Jing ", - "Zhun ", - "Mi ", - "Zhu ", - "Dang ", - "Hong ", - "Zong ", - "Guan ", - "Zhou ", - "Ding ", - "Wan ", - "Yi ", - "Bao ", - "Shi ", - "Shi ", - "Chong ", - "Shen ", - "Ke ", - "Xuan ", - "Shi ", - "You ", - "Huan ", - "Yi ", - "Tiao ", - "Shi ", - "Xian ", - "Gong ", - "Cheng ", - "Qun ", - "Gong ", - "Xiao ", - "Zai ", - "Zha ", - "Bao ", - "Hai ", - "Yan ", - "Xiao ", - "Jia ", - "Shen ", - "Chen ", - "Rong ", - "Huang ", - "Mi ", - "Kou ", - "Kuan ", - "Bin ", - "Su ", - "Cai ", - "Zan ", - "Ji ", - "Yuan ", - "Ji ", - "Yin ", - "Mi ", - "Kou ", - "Qing ", - "Que ", - "Zhen ", - "Jian ", - "Fu ", - "Ning ", - "Bing ", - "Huan ", - "Mei ", - "Qin ", - "Han ", - "Yu ", - "Shi ", - "Ning ", - "Qin ", - "Ning ", - "Zhi ", - "Yu ", - "Bao ", - "Kuan ", - "Ning ", - "Qin ", - "Mo ", - "Cha ", - "Ju ", - "Gua ", - "Qin ", - "Hu ", - "Wu ", - "Liao ", - "Shi ", - "Zhu ", - "Zhai ", - "Shen ", - "Wei ", - "Xie ", - "Kuan ", - "Hui ", - "Liao ", - "Jun ", - "Huan ", - "Yi ", - "Yi ", - "Bao ", - "Qin ", - "Chong ", - "Bao ", - "Feng ", - "Cun ", - "Dui ", - "Si ", - "Xun ", - "Dao ", - "Lu ", - "Dui ", - "Shou ", - "Po ", - "Feng ", - "Zhuan ", - "Fu ", - "She ", - "Ke ", - "Jiang ", - "Jiang ", - "Zhuan ", - "Wei ", - "Zun ", - "Xun ", - "Shu ", - "Dui ", - "Dao ", - "Xiao ", - "Ji ", - "Shao ", - "Er ", - "Er ", - "Er ", - "Ga ", - "Jian ", - "Shu ", - "Chen ", - "Shang ", - "Shang ", - "Mo ", - "Ga ", - "Chang ", - "Liao ", - "Xian ", - "Xian ", - "[?] ", - "Wang ", - "Wang ", - "You ", - "Liao ", - "Liao ", - "Yao ", - "Mang ", - "Wang ", - "Wang ", - "Wang ", - "Ga ", - "Yao ", - "Duo ", - "Kui ", - "Zhong ", - "Jiu ", - "Gan ", - "Gu ", - "Gan ", - "Tui ", - "Gan ", - "Gan ", - "Shi ", - "Yin ", - "Chi ", - "Kao ", - "Ni ", - "Jin ", - "Wei ", - "Niao ", - "Ju ", - "Pi ", - "Ceng ", - "Xi ", - "Bi ", - "Ju ", - "Jie ", - "Tian ", - "Qu ", - "Ti ", - "Jie ", - "Wu ", - "Diao ", - "Shi ", - "Shi ", - "Ping ", - "Ji ", - "Xie ", - "Chen ", - "Xi ", - "Ni ", - "Zhan ", - "Xi ", - "[?] ", - "Man ", - "E ", - "Lou ", - "Ping ", - "Ti ", - "Fei ", - "Shu ", - "Xie ", - "Tu ", - "Lu ", - "Lu ", - "Xi ", - "Ceng ", - "Lu ", - "Ju ", - "Xie ", - "Ju ", - "Jue ", - "Liao ", - "Jue ", - "Shu ", - "Xi ", - "Che ", - "Tun ", - "Ni ", - "Shan ", - "[?] ", - "Xian ", - "Li ", - "Xue ", - "Nata ", - "[?] ", - "Long ", - "Yi ", - "Qi ", - "Ren ", - "Wu ", - "Han ", - "Shen ", - "Yu ", - "Chu ", - "Sui ", - "Qi ", - "[?] ", - "Yue ", - "Ban ", - "Yao ", - "Ang ", - "Ya ", - "Wu ", - "Jie ", - "E ", - "Ji ", - "Qian ", - "Fen ", - "Yuan ", - "Qi ", - "Cen ", - "Qian ", - "Qi ", - "Cha ", - "Jie ", - "Qu ", - "Gang ", - "Xian ", - "Ao ", - "Lan ", - "Dao ", - "Ba ", - "Zuo ", - "Zuo ", - "Yang ", - "Ju ", - "Gang ", - "Ke ", - "Gou ", - "Xue ", - "Bei ", - "Li ", - "Tiao ", - "Ju ", - "Yan ", - "Fu ", - "Xiu ", - "Jia ", - "Ling ", - "Tuo ", - "Pei ", - "You ", - "Dai ", - "Kuang ", - "Yue ", - "Qu ", - "Hu ", - "Po ", - "Min ", - "An ", - "Tiao ", - "Ling ", - "Chi ", - "Yuri ", - "Dong ", - "Cem ", - "Kui ", - "Xiu ", - "Mao ", - "Tong ", - "Xue ", - "Yi ", - "Kura ", - "He ", - "Ke ", - "Luo ", - "E ", - "Fu ", - "Xun ", - "Die ", - "Lu ", - "An ", - "Er ", - "Gai ", - "Quan ", - "Tong ", - "Yi ", - "Mu ", - "Shi ", - "An ", - "Wei ", - "Hu ", - "Zhi ", - "Mi ", - "Li ", - "Ji ", - "Tong ", - "Wei ", - "You ", - "Sang ", - "Xia ", - "Li ", - "Yao ", - "Jiao ", - "Zheng ", - "Luan ", - "Jiao ", - "E ", - "E ", - "Yu ", - "Ye ", - "Bu ", - "Qiao ", - "Qun ", - "Feng ", - "Feng ", - "Nao ", - "Li ", - "You ", - "Xian ", - "Hong ", - "Dao ", - "Shen ", - "Cheng ", - "Tu ", - "Geng ", - "Jun ", - "Hao ", - "Xia ", - "Yin ", - "Yu ", - "Lang ", - "Kan ", - "Lao ", - "Lai ", - "Xian ", - "Que ", - "Kong ", - "Chong ", - "Chong ", - "Ta ", - "Lin ", - "Hua ", - "Ju ", - "Lai ", - "Qi ", - "Min ", - "Kun ", - "Kun ", - "Zu ", - "Gu ", - "Cui ", - "Ya ", - "Ya ", - "Gang ", - "Lun ", - "Lun ", - "Leng ", - "Jue ", - "Duo ", - "Zheng ", - "Guo ", - "Yin ", - "Dong ", - "Han ", - "Zheng ", - "Wei ", - "Yao ", - "Pi ", - "Yan ", - "Song ", - "Jie ", - "Beng ", - "Zu ", - "Jue ", - "Dong ", - "Zhan ", - "Gu ", - "Yin ", - "[?] ", - "Ze ", - "Huang ", - "Yu ", - "Wei ", - "Yang ", - "Feng ", - "Qiu ", - "Dun ", - "Ti ", - "Yi ", - "Zhi ", - "Shi ", - "Zai ", - "Yao ", - "E ", - "Zhu ", - "Kan ", - "Lu ", - "Yan ", - "Mei ", - "Gan ", - "Ji ", - "Ji ", - "Huan ", - "Ting ", - "Sheng ", - "Mei ", - "Qian ", - "Wu ", - "Yu ", - "Zong ", - "Lan ", - "Jue ", - "Yan ", - "Yan ", - "Wei ", - "Zong ", - "Cha ", - "Sui ", - "Rong ", - "Yamashina ", - "Qin ", - "Yu ", - "Kewashii ", - "Lou ", - "Tu ", - "Dui ", - "Xi ", - "Weng ", - "Cang ", - "Dang ", - "Hong ", - "Jie ", - "Ai ", - "Liu ", - "Wu ", - "Song ", - "Qiao ", - "Zi ", - "Wei ", - "Beng ", - "Dian ", - "Cuo ", - "Qian ", - "Yong ", - "Nie ", - "Cuo ", - "Ji ", - "[?] ", - "Tao ", - "Song ", - "Zong ", - "Jiang ", - "Liao ", - "Kang ", - "Chan ", - "Die ", - "Cen ", - "Ding ", - "Tu ", - "Lou ", - "Zhang ", - "Zhan ", - "Zhan ", - "Ao ", - "Cao ", - "Qu ", - "Qiang ", - "Zui ", - "Zui ", - "Dao ", - "Dao ", - "Xi ", - "Yu ", - "Bo ", - "Long ", - "Xiang ", - "Ceng ", - "Bo ", - "Qin ", - "Jiao ", - "Yan ", - "Lao ", - "Zhan ", - "Lin ", - "Liao ", - "Liao ", - "Jin ", - "Deng ", - "Duo ", - "Zun ", - "Jiao ", - "Gui ", - "Yao ", - "Qiao ", - "Yao ", - "Jue ", - "Zhan ", - "Yi ", - "Xue ", - "Nao ", - "Ye ", - "Ye ", - "Yi ", - "E ", - "Xian ", - "Ji ", - "Xie ", - "Ke ", - "Xi ", - "Di ", - "Ao ", - "Zui ", - "[?] ", - "Ni ", - "Rong ", - "Dao ", - "Ling ", - "Za ", - "Yu ", - "Yue ", - "Yin ", - "[?] ", - "Jie ", - "Li ", - "Sui ", - "Long ", - "Long ", - "Dian ", - "Ying ", - "Xi ", - "Ju ", - "Chan ", - "Ying ", - "Kui ", - "Yan ", - "Wei ", - "Nao ", - "Quan ", - "Chao ", - "Cuan ", - "Luan ", - "Dian ", - "Dian ", - "[?] ", - "Yan ", - "Yan ", - "Yan ", - "Nao ", - "Yan ", - "Chuan ", - "Gui ", - "Chuan ", - "Zhou ", - "Huang ", - "Jing ", - "Xun ", - "Chao ", - "Chao ", - "Lie ", - "Gong ", - "Zuo ", - "Qiao ", - "Ju ", - "Gong ", - "Kek ", - "Wu ", - "Pwu ", - "Pwu ", - "Chai ", - "Qiu ", - "Qiu ", - "Ji ", - "Yi ", - "Si ", - "Ba ", - "Zhi ", - "Zhao ", - "Xiang ", - "Yi ", - "Jin ", - "Xun ", - "Juan ", - "Phas ", - "Xun ", - "Jin ", - "Fu ", - "Za ", - "Bi ", - "Shi ", - "Bu ", - "Ding ", - "Shuai ", - "Fan ", - "Nie ", - "Shi ", - "Fen ", - "Pa ", - "Zhi ", - "Xi ", - "Hu ", - "Dan ", - "Wei ", - "Zhang ", - "Tang ", - "Dai ", - "Ma ", - "Pei ", - "Pa ", - "Tie ", - "Fu ", - "Lian ", - "Zhi ", - "Zhou ", - "Bo ", - "Zhi ", - "Di ", - "Mo ", - "Yi ", - "Yi ", - "Ping ", - "Qia ", - "Juan ", - "Ru ", - "Shuai ", - "Dai ", - "Zheng ", - "Shui ", - "Qiao ", - "Zhen ", - "Shi ", - "Qun ", - "Xi ", - "Bang ", - "Dai ", - "Gui ", - "Chou ", - "Ping ", - "Zhang ", - "Sha ", - "Wan ", - "Dai ", - "Wei ", - "Chang ", - "Sha ", - "Qi ", - "Ze ", - "Guo ", - "Mao ", - "Du ", - "Hou ", - "Zheng ", - "Xu ", - "Mi ", - "Wei ", - "Wo ", - "Fu ", - "Yi ", - "Bang ", - "Ping ", - "Tazuna ", - "Gong ", - "Pan ", - "Huang ", - "Dao ", - "Mi ", - "Jia ", - "Teng ", - "Hui ", - "Zhong ", - "Shan ", - "Man ", - "Mu ", - "Biao ", - "Guo ", - "Ze ", - "Mu ", - "Bang ", - "Zhang ", - "Jiong ", - "Chan ", - "Fu ", - "Zhi ", - "Hu ", - "Fan ", - "Chuang ", - "Bi ", - "Hei ", - "[?] ", - "Mi ", - "Qiao ", - "Chan ", - "Fen ", - "Meng ", - "Bang ", - "Chou ", - "Mie ", - "Chu ", - "Jie ", - "Xian ", - "Lan ", - "Gan ", - "Ping ", - "Nian ", - "Qian ", - "Bing ", - "Bing ", - "Xing ", - "Gan ", - "Yao ", - "Huan ", - "You ", - "You ", - "Ji ", - "Yan ", - "Pi ", - "Ting ", - "Ze ", - "Guang ", - "Zhuang ", - "Mo ", - "Qing ", - "Bi ", - "Qin ", - "Dun ", - "Chuang ", - "Gui ", - "Ya ", - "Bai ", - "Jie ", - "Xu ", - "Lu ", - "Wu ", - "[?] ", - "Ku ", - "Ying ", - "Di ", - "Pao ", - "Dian ", - "Ya ", - "Miao ", - "Geng ", - "Ci ", - "Fu ", - "Tong ", - "Pang ", - "Fei ", - "Xiang ", - "Yi ", - "Zhi ", - "Tiao ", - "Zhi ", - "Xiu ", - "Du ", - "Zuo ", - "Xiao ", - "Tu ", - "Gui ", - "Ku ", - "Pang ", - "Ting ", - "You ", - "Bu ", - "Ding ", - "Cheng ", - "Lai ", - "Bei ", - "Ji ", - "An ", - "Shu ", - "Kang ", - "Yong ", - "Tuo ", - "Song ", - "Shu ", - "Qing ", - "Yu ", - "Yu ", - "Miao ", - "Sou ", - "Ce ", - "Xiang ", - "Fei ", - "Jiu ", - "He ", - "Hui ", - "Liu ", - "Sha ", - "Lian ", - "Lang ", - "Sou ", - "Jian ", - "Pou ", - "Qing ", - "Jiu ", - "Jiu ", - "Qin ", - "Ao ", - "Kuo ", - "Lou ", - "Yin ", - "Liao ", - "Dai ", - "Lu ", - "Yi ", - "Chu ", - "Chan ", - "Tu ", - "Si ", - "Xin ", - "Miao ", - "Chang ", - "Wu ", - "Fei ", - "Guang ", - "Koc ", - "Kuai ", - "Bi ", - "Qiang ", - "Xie ", - "Lin ", - "Lin ", - "Liao ", - "Lu ", - "[?] ", - "Ying ", - "Xian ", - "Ting ", - "Yong ", - "Li ", - "Ting ", - "Yin ", - "Xun ", - "Yan ", - "Ting ", - "Di ", - "Po ", - "Jian ", - "Hui ", - "Nai ", - "Hui ", - "Gong ", - "Nian ", - "Kai ", - "Bian ", - "Yi ", - "Qi ", - "Nong ", - "Fen ", - "Ju ", - "Yan ", - "Yi ", - "Zang ", - "Bi ", - "Yi ", - "Yi ", - "Er ", - "San ", - "Shi ", - "Er ", - "Shi ", - "Shi ", - "Gong ", - "Diao ", - "Yin ", - "Hu ", - "Fu ", - "Hong ", - "Wu ", - "Tui ", - "Chi ", - "Jiang ", - "Ba ", - "Shen ", - "Di ", - "Zhang ", - "Jue ", - "Tao ", - "Fu ", - "Di ", - "Mi ", - "Xian ", - "Hu ", - "Chao ", - "Nu ", - "Jing ", - "Zhen ", - "Yi ", - "Mi ", - "Quan ", - "Wan ", - "Shao ", - "Ruo ", - "Xuan ", - "Jing ", - "Dun ", - "Zhang ", - "Jiang ", - "Qiang ", - "Peng ", - "Dan ", - "Qiang ", - "Bi ", - "Bi ", - "She ", - "Dan ", - "Jian ", - "Gou ", - "Sei ", - "Fa ", - "Bi ", - "Kou ", - "Nagi ", - "Bie ", - "Xiao ", - "Dan ", - "Kuo ", - "Qiang ", - "Hong ", - "Mi ", - "Kuo ", - "Wan ", - "Jue ", - "Ji ", - "Ji ", - "Gui ", - "Dang ", - "Lu ", - "Lu ", - "Tuan ", - "Hui ", - "Zhi ", - "Hui ", - "Hui ", - "Yi ", - "Yi ", - "Yi ", - "Yi ", - "Huo ", - "Huo ", - "Shan ", - "Xing ", - "Wen ", - "Tong ", - "Yan ", - "Yan ", - "Yu ", - "Chi ", - "Cai ", - "Biao ", - "Diao ", - "Bin ", - "Peng ", - "Yong ", - "Piao ", - "Zhang ", - "Ying ", - "Chi ", - "Chi ", - "Zhuo ", - "Tuo ", - "Ji ", - "Pang ", - "Zhong ", - "Yi ", - "Wang ", - "Che ", - "Bi ", - "Chi ", - "Ling ", - "Fu ", - "Wang ", - "Zheng ", - "Cu ", - "Wang ", - "Jing ", - "Dai ", - "Xi ", - "Xun ", - "Hen ", - "Yang ", - "Huai ", - "Lu ", - "Hou ", - "Wa ", - "Cheng ", - "Zhi ", - "Xu ", - "Jing ", - "Tu ", - "Cong ", - "[?] ", - "Lai ", - "Cong ", - "De ", - "Pai ", - "Xi ", - "[?] ", - "Qi ", - "Chang ", - "Zhi ", - "Cong ", - "Zhou ", - "Lai ", - "Yu ", - "Xie ", - "Jie ", - "Jian ", - "Chi ", - "Jia ", - "Bian ", - "Huang ", - "Fu ", - "Xun ", - "Wei ", - "Pang ", - "Yao ", - "Wei ", - "Xi ", - "Zheng ", - "Piao ", - "Chi ", - "De ", - "Zheng ", - "Zheng ", - "Bie ", - "De ", - "Chong ", - "Che ", - "Jiao ", - "Wei ", - "Jiao ", - "Hui ", - "Mei ", - "Long ", - "Xiang ", - "Bao ", - "Qu ", - "Xin ", - "Shu ", - "Bi ", - "Yi ", - "Le ", - "Ren ", - "Dao ", - "Ding ", - "Gai ", - "Ji ", - "Ren ", - "Ren ", - "Chan ", - "Tan ", - "Te ", - "Te ", - "Gan ", - "Qi ", - "Shi ", - "Cun ", - "Zhi ", - "Wang ", - "Mang ", - "Xi ", - "Fan ", - "Ying ", - "Tian ", - "Min ", - "Min ", - "Zhong ", - "Chong ", - "Wu ", - "Ji ", - "Wu ", - "Xi ", - "Ye ", - "You ", - "Wan ", - "Cong ", - "Zhong ", - "Kuai ", - "Yu ", - "Bian ", - "Zhi ", - "Qi ", - "Cui ", - "Chen ", - "Tai ", - "Tun ", - "Qian ", - "Nian ", - "Hun ", - "Xiong ", - "Niu ", - "Wang ", - "Xian ", - "Xin ", - "Kang ", - "Hu ", - "Kai ", - "Fen ", - "Huai ", - "Tai ", - "Song ", - "Wu ", - "Ou ", - "Chang ", - "Chuang ", - "Ju ", - "Yi ", - "Bao ", - "Chao ", - "Min ", - "Pei ", - "Zuo ", - "Zen ", - "Yang ", - "Kou ", - "Ban ", - "Nu ", - "Nao ", - "Zheng ", - "Pa ", - "Bu ", - "Tie ", - "Gu ", - "Hu ", - "Ju ", - "Da ", - "Lian ", - "Si ", - "Chou ", - "Di ", - "Dai ", - "Yi ", - "Tu ", - "You ", - "Fu ", - "Ji ", - "Peng ", - "Xing ", - "Yuan ", - "Ni ", - "Guai ", - "Fu ", - "Xi ", - "Bi ", - "You ", - "Qie ", - "Xuan ", - "Cong ", - "Bing ", - "Huang ", - "Xu ", - "Chu ", - "Pi ", - "Xi ", - "Xi ", - "Tan ", - "Koraeru ", - "Zong ", - "Dui ", - "[?] ", - "Ki ", - "Yi ", - "Chi ", - "Ren ", - "Xun ", - "Shi ", - "Xi ", - "Lao ", - "Heng ", - "Kuang ", - "Mu ", - "Zhi ", - "Xie ", - "Lian ", - "Tiao ", - "Huang ", - "Die ", - "Hao ", - "Kong ", - "Gui ", - "Heng ", - "Xi ", - "Xiao ", - "Shu ", - "S ", - "Kua ", - "Qiu ", - "Yang ", - "Hui ", - "Hui ", - "Chi ", - "Jia ", - "Yi ", - "Xiong ", - "Guai ", - "Lin ", - "Hui ", - "Zi ", - "Xu ", - "Chi ", - "Xiang ", - "Nu ", - "Hen ", - "En ", - "Ke ", - "Tong ", - "Tian ", - "Gong ", - "Quan ", - "Xi ", - "Qia ", - "Yue ", - "Peng ", - "Ken ", - "De ", - "Hui ", - "E ", - "Kyuu ", - "Tong ", - "Yan ", - "Kai ", - "Ce ", - "Nao ", - "Yun ", - "Mang ", - "Yong ", - "Yong ", - "Yuan ", - "Pi ", - "Kun ", - "Qiao ", - "Yue ", - "Yu ", - "Yu ", - "Jie ", - "Xi ", - "Zhe ", - "Lin ", - "Ti ", - "Han ", - "Hao ", - "Qie ", - "Ti ", - "Bu ", - "Yi ", - "Qian ", - "Hui ", - "Xi ", - "Bei ", - "Man ", - "Yi ", - "Heng ", - "Song ", - "Quan ", - "Cheng ", - "Hui ", - "Wu ", - "Wu ", - "You ", - "Li ", - "Liang ", - "Huan ", - "Cong ", - "Yi ", - "Yue ", - "Li ", - "Nin ", - "Nao ", - "E ", - "Que ", - "Xuan ", - "Qian ", - "Wu ", - "Min ", - "Cong ", - "Fei ", - "Bei ", - "Duo ", - "Cui ", - "Chang ", - "Men ", - "Li ", - "Ji ", - "Guan ", - "Guan ", - "Xing ", - "Dao ", - "Qi ", - "Kong ", - "Tian ", - "Lun ", - "Xi ", - "Kan ", - "Kun ", - "Ni ", - "Qing ", - "Chou ", - "Dun ", - "Guo ", - "Chan ", - "Liang ", - "Wan ", - "Yuan ", - "Jin ", - "Ji ", - "Lin ", - "Yu ", - "Huo ", - "He ", - "Quan ", - "Tan ", - "Ti ", - "Ti ", - "Nie ", - "Wang ", - "Chuo ", - "Bu ", - "Hun ", - "Xi ", - "Tang ", - "Xin ", - "Wei ", - "Hui ", - "E ", - "Rui ", - "Zong ", - "Jian ", - "Yong ", - "Dian ", - "Ju ", - "Can ", - "Cheng ", - "De ", - "Bei ", - "Qie ", - "Can ", - "Dan ", - "Guan ", - "Duo ", - "Nao ", - "Yun ", - "Xiang ", - "Zhui ", - "Die ", - "Huang ", - "Chun ", - "Qiong ", - "Re ", - "Xing ", - "Ce ", - "Bian ", - "Hun ", - "Zong ", - "Ti ", - "Qiao ", - "Chou ", - "Bei ", - "Xuan ", - "Wei ", - "Ge ", - "Qian ", - "Wei ", - "Yu ", - "Yu ", - "Bi ", - "Xuan ", - "Huan ", - "Min ", - "Bi ", - "Yi ", - "Mian ", - "Yong ", - "Kai ", - "Dang ", - "Yin ", - "E ", - "Chen ", - "Mou ", - "Ke ", - "Ke ", - "Yu ", - "Ai ", - "Qie ", - "Yan ", - "Nuo ", - "Gan ", - "Yun ", - "Zong ", - "Sai ", - "Leng ", - "Fen ", - "[?] ", - "Kui ", - "Kui ", - "Que ", - "Gong ", - "Yun ", - "Su ", - "Su ", - "Qi ", - "Yao ", - "Song ", - "Huang ", - "Ji ", - "Gu ", - "Ju ", - "Chuang ", - "Ni ", - "Xie ", - "Kai ", - "Zheng ", - "Yong ", - "Cao ", - "Sun ", - "Shen ", - "Bo ", - "Kai ", - "Yuan ", - "Xie ", - "Hun ", - "Yong ", - "Yang ", - "Li ", - "Sao ", - "Tao ", - "Yin ", - "Ci ", - "Xu ", - "Qian ", - "Tai ", - "Huang ", - "Yun ", - "Shen ", - "Ming ", - "[?] ", - "She ", - "Cong ", - "Piao ", - "Mo ", - "Mu ", - "Guo ", - "Chi ", - "Can ", - "Can ", - "Can ", - "Cui ", - "Min ", - "Te ", - "Zhang ", - "Tong ", - "Ao ", - "Shuang ", - "Man ", - "Guan ", - "Que ", - "Zao ", - "Jiu ", - "Hui ", - "Kai ", - "Lian ", - "Ou ", - "Song ", - "Jin ", - "Yin ", - "Lu ", - "Shang ", - "Wei ", - "Tuan ", - "Man ", - "Qian ", - "She ", - "Yong ", - "Qing ", - "Kang ", - "Di ", - "Zhi ", - "Lou ", - "Juan ", - "Qi ", - "Qi ", - "Yu ", - "Ping ", - "Liao ", - "Cong ", - "You ", - "Chong ", - "Zhi ", - "Tong ", - "Cheng ", - "Qi ", - "Qu ", - "Peng ", - "Bei ", - "Bie ", - "Chun ", - "Jiao ", - "Zeng ", - "Chi ", - "Lian ", - "Ping ", - "Kui ", - "Hui ", - "Qiao ", - "Cheng ", - "Yin ", - "Yin ", - "Xi ", - "Xi ", - "Dan ", - "Tan ", - "Duo ", - "Dui ", - "Dui ", - "Su ", - "Jue ", - "Ce ", - "Xiao ", - "Fan ", - "Fen ", - "Lao ", - "Lao ", - "Chong ", - "Han ", - "Qi ", - "Xian ", - "Min ", - "Jing ", - "Liao ", - "Wu ", - "Can ", - "Jue ", - "Cu ", - "Xian ", - "Tan ", - "Sheng ", - "Pi ", - "Yi ", - "Chu ", - "Xian ", - "Nao ", - "Dan ", - "Tan ", - "Jing ", - "Song ", - "Han ", - "Jiao ", - "Wai ", - "Huan ", - "Dong ", - "Qin ", - "Qin ", - "Qu ", - "Cao ", - "Ken ", - "Xie ", - "Ying ", - "Ao ", - "Mao ", - "Yi ", - "Lin ", - "Se ", - "Jun ", - "Huai ", - "Men ", - "Lan ", - "Ai ", - "Lin ", - "Yan ", - "Gua ", - "Xia ", - "Chi ", - "Yu ", - "Yin ", - "Dai ", - "Meng ", - "Ai ", - "Meng ", - "Dui ", - "Qi ", - "Mo ", - "Lan ", - "Men ", - "Chou ", - "Zhi ", - "Nuo ", - "Nuo ", - "Yan ", - "Yang ", - "Bo ", - "Zhi ", - "Kuang ", - "Kuang ", - "You ", - "Fu ", - "Liu ", - "Mie ", - "Cheng ", - "[?] ", - "Chan ", - "Meng ", - "Lan ", - "Huai ", - "Xuan ", - "Rang ", - "Chan ", - "Ji ", - "Ju ", - "Huan ", - "She ", - "Yi ", - "Lian ", - "Nan ", - "Mi ", - "Tang ", - "Jue ", - "Gang ", - "Gang ", - "Gang ", - "Ge ", - "Yue ", - "Wu ", - "Jian ", - "Xu ", - "Shu ", - "Rong ", - "Xi ", - "Cheng ", - "Wo ", - "Jie ", - "Ge ", - "Jian ", - "Qiang ", - "Huo ", - "Qiang ", - "Zhan ", - "Dong ", - "Qi ", - "Jia ", - "Die ", - "Zei ", - "Jia ", - "Ji ", - "Shi ", - "Kan ", - "Ji ", - "Kui ", - "Gai ", - "Deng ", - "Zhan ", - "Chuang ", - "Ge ", - "Jian ", - "Jie ", - "Yu ", - "Jian ", - "Yan ", - "Lu ", - "Xi ", - "Zhan ", - "Xi ", - "Xi ", - "Chuo ", - "Dai ", - "Qu ", - "Hu ", - "Hu ", - "Hu ", - "E ", - "Shi ", - "Li ", - "Mao ", - "Hu ", - "Li ", - "Fang ", - "Suo ", - "Bian ", - "Dian ", - "Jiong ", - "Shang ", - "Yi ", - "Yi ", - "Shan ", - "Hu ", - "Fei ", - "Yan ", - "Shou ", - "T ", - "Cai ", - "Zha ", - "Qiu ", - "Le ", - "Bu ", - "Ba ", - "Da ", - "Reng ", - "Fu ", - "Hameru ", - "Zai ", - "Tuo ", - "Zhang ", - "Diao ", - "Kang ", - "Yu ", - "Ku ", - "Han ", - "Shen ", - "Cha ", - "Yi ", - "Gu ", - "Kou ", - "Wu ", - "Tuo ", - "Qian ", - "Zhi ", - "Ren ", - "Kuo ", - "Men ", - "Sao ", - "Yang ", - "Niu ", - "Ban ", - "Che ", - "Rao ", - "Xi ", - "Qian ", - "Ban ", - "Jia ", - "Yu ", - "Fu ", - "Ao ", - "Xi ", - "Pi ", - "Zhi ", - "Zi ", - "E ", - "Dun ", - "Zhao ", - "Cheng ", - "Ji ", - "Yan ", - "Kuang ", - "Bian ", - "Chao ", - "Ju ", - "Wen ", - "Hu ", - "Yue ", - "Jue ", - "Ba ", - "Qin ", - "Zhen ", - "Zheng ", - "Yun ", - "Wan ", - "Nu ", - "Yi ", - "Shu ", - "Zhua ", - "Pou ", - "Tou ", - "Dou ", - "Kang ", - "Zhe ", - "Pou ", - "Fu ", - "Pao ", - "Ba ", - "Ao ", - "Ze ", - "Tuan ", - "Kou ", - "Lun ", - "Qiang ", - "[?] ", - "Hu ", - "Bao ", - "Bing ", - "Zhi ", - "Peng ", - "Tan ", - "Pu ", - "Pi ", - "Tai ", - "Yao ", - "Zhen ", - "Zha ", - "Yang ", - "Bao ", - "He ", - "Ni ", - "Yi ", - "Di ", - "Chi ", - "Pi ", - "Za ", - "Mo ", - "Mo ", - "Shen ", - "Ya ", - "Chou ", - "Qu ", - "Min ", - "Chu ", - "Jia ", - "Fu ", - "Zhan ", - "Zhu ", - "Dan ", - "Chai ", - "Mu ", - "Nian ", - "La ", - "Fu ", - "Pao ", - "Ban ", - "Pai ", - "Ling ", - "Na ", - "Guai ", - "Qian ", - "Ju ", - "Tuo ", - "Ba ", - "Tuo ", - "Tuo ", - "Ao ", - "Ju ", - "Zhuo ", - "Pan ", - "Zhao ", - "Bai ", - "Bai ", - "Di ", - "Ni ", - "Ju ", - "Kuo ", - "Long ", - "Jian ", - "[?] ", - "Yong ", - "Lan ", - "Ning ", - "Bo ", - "Ze ", - "Qian ", - "Hen ", - "Gua ", - "Shi ", - "Jie ", - "Zheng ", - "Nin ", - "Gong ", - "Gong ", - "Quan ", - "Shuan ", - "Cun ", - "Zan ", - "Kao ", - "Chi ", - "Xie ", - "Ce ", - "Hui ", - "Pin ", - "Zhuai ", - "Shi ", - "Na ", - "Bo ", - "Chi ", - "Gua ", - "Zhi ", - "Kuo ", - "Duo ", - "Duo ", - "Zhi ", - "Qie ", - "An ", - "Nong ", - "Zhen ", - "Ge ", - "Jiao ", - "Ku ", - "Dong ", - "Ru ", - "Tiao ", - "Lie ", - "Zha ", - "Lu ", - "Die ", - "Wa ", - "Jue ", - "Mushiru ", - "Ju ", - "Zhi ", - "Luan ", - "Ya ", - "Zhua ", - "Ta ", - "Xie ", - "Nao ", - "Dang ", - "Jiao ", - "Zheng ", - "Ji ", - "Hui ", - "Xun ", - "Ku ", - "Ai ", - "Tuo ", - "Nuo ", - "Cuo ", - "Bo ", - "Geng ", - "Ti ", - "Zhen ", - "Cheng ", - "Suo ", - "Suo ", - "Keng ", - "Mei ", - "Long ", - "Ju ", - "Peng ", - "Jian ", - "Yi ", - "Ting ", - "Shan ", - "Nuo ", - "Wan ", - "Xie ", - "Cha ", - "Feng ", - "Jiao ", - "Wu ", - "Jun ", - "Jiu ", - "Tong ", - "Kun ", - "Huo ", - "Tu ", - "Zhuo ", - "Pou ", - "Le ", - "Ba ", - "Han ", - "Shao ", - "Nie ", - "Juan ", - "Ze ", - "Song ", - "Ye ", - "Jue ", - "Bu ", - "Huan ", - "Bu ", - "Zun ", - "Yi ", - "Zhai ", - "Lu ", - "Sou ", - "Tuo ", - "Lao ", - "Sun ", - "Bang ", - "Jian ", - "Huan ", - "Dao ", - "[?] ", - "Wan ", - "Qin ", - "Peng ", - "She ", - "Lie ", - "Min ", - "Men ", - "Fu ", - "Bai ", - "Ju ", - "Dao ", - "Wo ", - "Ai ", - "Juan ", - "Yue ", - "Zong ", - "Chen ", - "Chui ", - "Jie ", - "Tu ", - "Ben ", - "Na ", - "Nian ", - "Nuo ", - "Zu ", - "Wo ", - "Xi ", - "Xian ", - "Cheng ", - "Dian ", - "Sao ", - "Lun ", - "Qing ", - "Gang ", - "Duo ", - "Shou ", - "Diao ", - "Pou ", - "Di ", - "Zhang ", - "Gun ", - "Ji ", - "Tao ", - "Qia ", - "Qi ", - "Pai ", - "Shu ", - "Qian ", - "Ling ", - "Yi ", - "Ya ", - "Jue ", - "Zheng ", - "Liang ", - "Gua ", - "Yi ", - "Huo ", - "Shan ", - "Zheng ", - "Lue ", - "Cai ", - "Tan ", - "Che ", - "Bing ", - "Jie ", - "Ti ", - "Kong ", - "Tui ", - "Yan ", - "Cuo ", - "Zou ", - "Ju ", - "Tian ", - "Qian ", - "Ken ", - "Bai ", - "Shou ", - "Jie ", - "Lu ", - "Guo ", - "Haba ", - "[?] ", - "Zhi ", - "Dan ", - "Mang ", - "Xian ", - "Sao ", - "Guan ", - "Peng ", - "Yuan ", - "Nuo ", - "Jian ", - "Zhen ", - "Jiu ", - "Jian ", - "Yu ", - "Yan ", - "Kui ", - "Nan ", - "Hong ", - "Rou ", - "Pi ", - "Wei ", - "Sai ", - "Zou ", - "Xuan ", - "Miao ", - "Ti ", - "Nie ", - "Cha ", - "Shi ", - "Zong ", - "Zhen ", - "Yi ", - "Shun ", - "Heng ", - "Bian ", - "Yang ", - "Huan ", - "Yan ", - "Zuan ", - "An ", - "Xu ", - "Ya ", - "Wo ", - "Ke ", - "Chuai ", - "Ji ", - "Ti ", - "La ", - "La ", - "Cheng ", - "Kai ", - "Jiu ", - "Jiu ", - "Tu ", - "Jie ", - "Hui ", - "Geng ", - "Chong ", - "Shuo ", - "She ", - "Xie ", - "Yuan ", - "Qian ", - "Ye ", - "Cha ", - "Zha ", - "Bei ", - "Yao ", - "[?] ", - "[?] ", - "Lan ", - "Wen ", - "Qin ", - "Chan ", - "Ge ", - "Lou ", - "Zong ", - "Geng ", - "Jiao ", - "Gou ", - "Qin ", - "Yong ", - "Que ", - "Chou ", - "Chi ", - "Zhan ", - "Sun ", - "Sun ", - "Bo ", - "Chu ", - "Rong ", - "Beng ", - "Cuo ", - "Sao ", - "Ke ", - "Yao ", - "Dao ", - "Zhi ", - "Nu ", - "Xie ", - "Jian ", - "Sou ", - "Qiu ", - "Gao ", - "Xian ", - "Shuo ", - "Sang ", - "Jin ", - "Mie ", - "E ", - "Chui ", - "Nuo ", - "Shan ", - "Ta ", - "Jie ", - "Tang ", - "Pan ", - "Ban ", - "Da ", - "Li ", - "Tao ", - "Hu ", - "Zhi ", - "Wa ", - "Xia ", - "Qian ", - "Wen ", - "Qiang ", - "Tian ", - "Zhen ", - "E ", - "Xi ", - "Nuo ", - "Quan ", - "Cha ", - "Zha ", - "Ge ", - "Wu ", - "En ", - "She ", - "Kang ", - "She ", - "Shu ", - "Bai ", - "Yao ", - "Bin ", - "Sou ", - "Tan ", - "Sa ", - "Chan ", - "Suo ", - "Liao ", - "Chong ", - "Chuang ", - "Guo ", - "Bing ", - "Feng ", - "Shuai ", - "Di ", - "Qi ", - "Sou ", - "Zhai ", - "Lian ", - "Tang ", - "Chi ", - "Guan ", - "Lu ", - "Luo ", - "Lou ", - "Zong ", - "Gai ", - "Hu ", - "Zha ", - "Chuang ", - "Tang ", - "Hua ", - "Cui ", - "Nai ", - "Mo ", - "Jiang ", - "Gui ", - "Ying ", - "Zhi ", - "Ao ", - "Zhi ", - "Nie ", - "Man ", - "Shan ", - "Kou ", - "Shu ", - "Suo ", - "Tuan ", - "Jiao ", - "Mo ", - "Mo ", - "Zhe ", - "Xian ", - "Keng ", - "Piao ", - "Jiang ", - "Yin ", - "Gou ", - "Qian ", - "Lue ", - "Ji ", - "Ying ", - "Jue ", - "Pie ", - "Pie ", - "Lao ", - "Dun ", - "Xian ", - "Ruan ", - "Kui ", - "Zan ", - "Yi ", - "Xun ", - "Cheng ", - "Cheng ", - "Sa ", - "Nao ", - "Heng ", - "Si ", - "Qian ", - "Huang ", - "Da ", - "Zun ", - "Nian ", - "Lin ", - "Zheng ", - "Hui ", - "Zhuang ", - "Jiao ", - "Ji ", - "Cao ", - "Dan ", - "Dan ", - "Che ", - "Bo ", - "Che ", - "Jue ", - "Xiao ", - "Liao ", - "Ben ", - "Fu ", - "Qiao ", - "Bo ", - "Cuo ", - "Zhuo ", - "Zhuan ", - "Tuo ", - "Pu ", - "Qin ", - "Dun ", - "Nian ", - "[?] ", - "Xie ", - "Lu ", - "Jiao ", - "Cuan ", - "Ta ", - "Han ", - "Qiao ", - "Zhua ", - "Jian ", - "Gan ", - "Yong ", - "Lei ", - "Kuo ", - "Lu ", - "Shan ", - "Zhuo ", - "Ze ", - "Pu ", - "Chuo ", - "Ji ", - "Dang ", - "Suo ", - "Cao ", - "Qing ", - "Jing ", - "Huan ", - "Jie ", - "Qin ", - "Kuai ", - "Dan ", - "Xi ", - "Ge ", - "Pi ", - "Bo ", - "Ao ", - "Ju ", - "Ye ", - "[?] ", - "Mang ", - "Sou ", - "Mi ", - "Ji ", - "Tai ", - "Zhuo ", - "Dao ", - "Xing ", - "Lan ", - "Ca ", - "Ju ", - "Ye ", - "Ru ", - "Ye ", - "Ye ", - "Ni ", - "Hu ", - "Ji ", - "Bin ", - "Ning ", - "Ge ", - "Zhi ", - "Jie ", - "Kuo ", - "Mo ", - "Jian ", - "Xie ", - "Lie ", - "Tan ", - "Bai ", - "Sou ", - "Lu ", - "Lue ", - "Rao ", - "Zhi ", - "Pan ", - "Yang ", - "Lei ", - "Sa ", - "Shu ", - "Zan ", - "Nian ", - "Xian ", - "Jun ", - "Huo ", - "Li ", - "La ", - "Han ", - "Ying ", - "Lu ", - "Long ", - "Qian ", - "Qian ", - "Zan ", - "Qian ", - "Lan ", - "San ", - "Ying ", - "Mei ", - "Rang ", - "Chan ", - "[?] ", - "Cuan ", - "Xi ", - "She ", - "Luo ", - "Jun ", - "Mi ", - "Li ", - "Zan ", - "Luan ", - "Tan ", - "Zuan ", - "Li ", - "Dian ", - "Wa ", - "Dang ", - "Jiao ", - "Jue ", - "Lan ", - "Li ", - "Nang ", - "Zhi ", - "Gui ", - "Gui ", - "Qi ", - "Xin ", - "Pu ", - "Sui ", - "Shou ", - "Kao ", - "You ", - "Gai ", - "Yi ", - "Gong ", - "Gan ", - "Ban ", - "Fang ", - "Zheng ", - "Bo ", - "Dian ", - "Kou ", - "Min ", - "Wu ", - "Gu ", - "He ", - "Ce ", - "Xiao ", - "Mi ", - "Chu ", - "Ge ", - "Di ", - "Xu ", - "Jiao ", - "Min ", - "Chen ", - "Jiu ", - "Zhen ", - "Duo ", - "Yu ", - "Chi ", - "Ao ", - "Bai ", - "Xu ", - "Jiao ", - "Duo ", - "Lian ", - "Nie ", - "Bi ", - "Chang ", - "Dian ", - "Duo ", - "Yi ", - "Gan ", - "San ", - "Ke ", - "Yan ", - "Dun ", - "Qi ", - "Dou ", - "Xiao ", - "Duo ", - "Jiao ", - "Jing ", - "Yang ", - "Xia ", - "Min ", - "Shu ", - "Ai ", - "Qiao ", - "Ai ", - "Zheng ", - "Di ", - "Zhen ", - "Fu ", - "Shu ", - "Liao ", - "Qu ", - "Xiong ", - "Xi ", - "Jiao ", - "Sen ", - "Jiao ", - "Zhuo ", - "Yi ", - "Lian ", - "Bi ", - "Li ", - "Xiao ", - "Xiao ", - "Wen ", - "Xue ", - "Qi ", - "Qi ", - "Zhai ", - "Bin ", - "Jue ", - "Zhai ", - "[?] ", - "Fei ", - "Ban ", - "Ban ", - "Lan ", - "Yu ", - "Lan ", - "Wei ", - "Dou ", - "Sheng ", - "Liao ", - "Jia ", - "Hu ", - "Xie ", - "Jia ", - "Yu ", - "Zhen ", - "Jiao ", - "Wo ", - "Tou ", - "Chu ", - "Jin ", - "Chi ", - "Yin ", - "Fu ", - "Qiang ", - "Zhan ", - "Qu ", - "Zhuo ", - "Zhan ", - "Duan ", - "Zhuo ", - "Si ", - "Xin ", - "Zhuo ", - "Zhuo ", - "Qin ", - "Lin ", - "Zhuo ", - "Chu ", - "Duan ", - "Zhu ", - "Fang ", - "Xie ", - "Hang ", - "Yu ", - "Shi ", - "Pei ", - "You ", - "Mye ", - "Pang ", - "Qi ", - "Zhan ", - "Mao ", - "Lu ", - "Pei ", - "Pi ", - "Liu ", - "Fu ", - "Fang ", - "Xuan ", - "Jing ", - "Jing ", - "Ni ", - "Zu ", - "Zhao ", - "Yi ", - "Liu ", - "Shao ", - "Jian ", - "Es ", - "Yi ", - "Qi ", - "Zhi ", - "Fan ", - "Piao ", - "Fan ", - "Zhan ", - "Guai ", - "Sui ", - "Yu ", - "Wu ", - "Ji ", - "Ji ", - "Ji ", - "Huo ", - "Ri ", - "Dan ", - "Jiu ", - "Zhi ", - "Zao ", - "Xie ", - "Tiao ", - "Xun ", - "Xu ", - "Xu ", - "Xu ", - "Gan ", - "Han ", - "Tai ", - "Di ", - "Xu ", - "Chan ", - "Shi ", - "Kuang ", - "Yang ", - "Shi ", - "Wang ", - "Min ", - "Min ", - "Tun ", - "Chun ", - "Wu ", - "Yun ", - "Bei ", - "Ang ", - "Ze ", - "Ban ", - "Jie ", - "Kun ", - "Sheng ", - "Hu ", - "Fang ", - "Hao ", - "Gui ", - "Chang ", - "Xuan ", - "Ming ", - "Hun ", - "Fen ", - "Qin ", - "Hu ", - "Yi ", - "Xi ", - "Xin ", - "Yan ", - "Ze ", - "Fang ", - "Tan ", - "Shen ", - "Ju ", - "Yang ", - "Zan ", - "Bing ", - "Xing ", - "Ying ", - "Xuan ", - "Pei ", - "Zhen ", - "Ling ", - "Chun ", - "Hao ", - "Mei ", - "Zuo ", - "Mo ", - "Bian ", - "Xu ", - "Hun ", - "Zhao ", - "Zong ", - "Shi ", - "Shi ", - "Yu ", - "Fei ", - "Die ", - "Mao ", - "Ni ", - "Chang ", - "Wen ", - "Dong ", - "Ai ", - "Bing ", - "Ang ", - "Zhou ", - "Long ", - "Xian ", - "Kuang ", - "Tiao ", - "Chao ", - "Shi ", - "Huang ", - "Huang ", - "Xuan ", - "Kui ", - "Xu ", - "Jiao ", - "Jin ", - "Zhi ", - "Jin ", - "Shang ", - "Tong ", - "Hong ", - "Yan ", - "Gai ", - "Xiang ", - "Shai ", - "Xiao ", - "Ye ", - "Yun ", - "Hui ", - "Han ", - "Han ", - "Jun ", - "Wan ", - "Xian ", - "Kun ", - "Zhou ", - "Xi ", - "Cheng ", - "Sheng ", - "Bu ", - "Zhe ", - "Zhe ", - "Wu ", - "Han ", - "Hui ", - "Hao ", - "Chen ", - "Wan ", - "Tian ", - "Zhuo ", - "Zui ", - "Zhou ", - "Pu ", - "Jing ", - "Xi ", - "Shan ", - "Yi ", - "Xi ", - "Qing ", - "Qi ", - "Jing ", - "Gui ", - "Zhen ", - "Yi ", - "Zhi ", - "An ", - "Wan ", - "Lin ", - "Liang ", - "Chang ", - "Wang ", - "Xiao ", - "Zan ", - "Hi ", - "Xuan ", - "Xuan ", - "Yi ", - "Xia ", - "Yun ", - "Hui ", - "Fu ", - "Min ", - "Kui ", - "He ", - "Ying ", - "Du ", - "Wei ", - "Shu ", - "Qing ", - "Mao ", - "Nan ", - "Jian ", - "Nuan ", - "An ", - "Yang ", - "Chun ", - "Yao ", - "Suo ", - "Jin ", - "Ming ", - "Jiao ", - "Kai ", - "Gao ", - "Weng ", - "Chang ", - "Qi ", - "Hao ", - "Yan ", - "Li ", - "Ai ", - "Ji ", - "Gui ", - "Men ", - "Zan ", - "Xie ", - "Hao ", - "Mu ", - "Mo ", - "Cong ", - "Ni ", - "Zhang ", - "Hui ", - "Bao ", - "Han ", - "Xuan ", - "Chuan ", - "Liao ", - "Xian ", - "Dan ", - "Jing ", - "Pie ", - "Lin ", - "Tun ", - "Xi ", - "Yi ", - "Ji ", - "Huang ", - "Tai ", - "Ye ", - "Ye ", - "Li ", - "Tan ", - "Tong ", - "Xiao ", - "Fei ", - "Qin ", - "Zhao ", - "Hao ", - "Yi ", - "Xiang ", - "Xing ", - "Sen ", - "Jiao ", - "Bao ", - "Jing ", - "Yian ", - "Ai ", - "Ye ", - "Ru ", - "Shu ", - "Meng ", - "Xun ", - "Yao ", - "Pu ", - "Li ", - "Chen ", - "Kuang ", - "Die ", - "[?] ", - "Yan ", - "Huo ", - "Lu ", - "Xi ", - "Rong ", - "Long ", - "Nang ", - "Luo ", - "Luan ", - "Shai ", - "Tang ", - "Yan ", - "Chu ", - "Yue ", - "Yue ", - "Qu ", - "Yi ", - "Geng ", - "Ye ", - "Hu ", - "He ", - "Shu ", - "Cao ", - "Cao ", - "Noboru ", - "Man ", - "Ceng ", - "Ceng ", - "Ti ", - "Zui ", - "Can ", - "Xu ", - "Hui ", - "Yin ", - "Qie ", - "Fen ", - "Pi ", - "Yue ", - "You ", - "Ruan ", - "Peng ", - "Ban ", - "Fu ", - "Ling ", - "Fei ", - "Qu ", - "[?] ", - "Nu ", - "Tiao ", - "Shuo ", - "Zhen ", - "Lang ", - "Lang ", - "Juan ", - "Ming ", - "Huang ", - "Wang ", - "Tun ", - "Zhao ", - "Ji ", - "Qi ", - "Ying ", - "Zong ", - "Wang ", - "Tong ", - "Lang ", - "[?] ", - "Meng ", - "Long ", - "Mu ", - "Deng ", - "Wei ", - "Mo ", - "Ben ", - "Zha ", - "Zhu ", - "Zhu ", - "[?] ", - "Zhu ", - "Ren ", - "Ba ", - "Po ", - "Duo ", - "Duo ", - "Dao ", - "Li ", - "Qiu ", - "Ji ", - "Jiu ", - "Bi ", - "Xiu ", - "Ting ", - "Ci ", - "Sha ", - "Eburi ", - "Za ", - "Quan ", - "Qian ", - "Yu ", - "Gan ", - "Wu ", - "Cha ", - "Shan ", - "Xun ", - "Fan ", - "Wu ", - "Zi ", - "Li ", - "Xing ", - "Cai ", - "Cun ", - "Ren ", - "Shao ", - "Tuo ", - "Di ", - "Zhang ", - "Mang ", - "Chi ", - "Yi ", - "Gu ", - "Gong ", - "Du ", - "Yi ", - "Qi ", - "Shu ", - "Gang ", - "Tiao ", - "Moku ", - "Soma ", - "Tochi ", - "Lai ", - "Sugi ", - "Mang ", - "Yang ", - "Ma ", - "Miao ", - "Si ", - "Yuan ", - "Hang ", - "Fei ", - "Bei ", - "Jie ", - "Dong ", - "Gao ", - "Yao ", - "Xian ", - "Chu ", - "Qun ", - "Pa ", - "Shu ", - "Hua ", - "Xin ", - "Chou ", - "Zhu ", - "Chou ", - "Song ", - "Ban ", - "Song ", - "Ji ", - "Yue ", - "Jin ", - "Gou ", - "Ji ", - "Mao ", - "Pi ", - "Bi ", - "Wang ", - "Ang ", - "Fang ", - "Fen ", - "Yi ", - "Fu ", - "Nan ", - "Xi ", - "Hu ", - "Ya ", - "Dou ", - "Xun ", - "Zhen ", - "Yao ", - "Lin ", - "Rui ", - "E ", - "Mei ", - "Zhao ", - "Guo ", - "Zhi ", - "Cong ", - "Yun ", - "Waku ", - "Dou ", - "Shu ", - "Zao ", - "[?] ", - "Li ", - "Haze ", - "Jian ", - "Cheng ", - "Matsu ", - "Qiang ", - "Feng ", - "Nan ", - "Xiao ", - "Xian ", - "Ku ", - "Ping ", - "Yi ", - "Xi ", - "Zhi ", - "Guai ", - "Xiao ", - "Jia ", - "Jia ", - "Gou ", - "Fu ", - "Mo ", - "Yi ", - "Ye ", - "Ye ", - "Shi ", - "Nie ", - "Bi ", - "Duo ", - "Yi ", - "Ling ", - "Bing ", - "Ni ", - "La ", - "He ", - "Pan ", - "Fan ", - "Zhong ", - "Dai ", - "Ci ", - "Yang ", - "Fu ", - "Bo ", - "Mou ", - "Gan ", - "Qi ", - "Ran ", - "Rou ", - "Mao ", - "Zhao ", - "Song ", - "Zhe ", - "Xia ", - "You ", - "Shen ", - "Ju ", - "Tuo ", - "Zuo ", - "Nan ", - "Ning ", - "Yong ", - "Di ", - "Zhi ", - "Zha ", - "Cha ", - "Dan ", - "Gu ", - "Pu ", - "Jiu ", - "Ao ", - "Fu ", - "Jian ", - "Bo ", - "Duo ", - "Ke ", - "Nai ", - "Zhu ", - "Bi ", - "Liu ", - "Chai ", - "Zha ", - "Si ", - "Zhu ", - "Pei ", - "Shi ", - "Guai ", - "Cha ", - "Yao ", - "Jue ", - "Jiu ", - "Shi ", - "Zhi ", - "Liu ", - "Mei ", - "Hoy ", - "Rong ", - "Zha ", - "[?] ", - "Biao ", - "Zhan ", - "Jie ", - "Long ", - "Dong ", - "Lu ", - "Sayng ", - "Li ", - "Lan ", - "Yong ", - "Shu ", - "Xun ", - "Shuan ", - "Qi ", - "Zhen ", - "Qi ", - "Li ", - "Yi ", - "Xiang ", - "Zhen ", - "Li ", - "Su ", - "Gua ", - "Kan ", - "Bing ", - "Ren ", - "Xiao ", - "Bo ", - "Ren ", - "Bing ", - "Zi ", - "Chou ", - "Yi ", - "Jie ", - "Xu ", - "Zhu ", - "Jian ", - "Zui ", - "Er ", - "Er ", - "You ", - "Fa ", - "Gong ", - "Kao ", - "Lao ", - "Zhan ", - "Li ", - "Yin ", - "Yang ", - "He ", - "Gen ", - "Zhi ", - "Chi ", - "Ge ", - "Zai ", - "Luan ", - "Fu ", - "Jie ", - "Hang ", - "Gui ", - "Tao ", - "Guang ", - "Wei ", - "Kuang ", - "Ru ", - "An ", - "An ", - "Juan ", - "Yi ", - "Zhuo ", - "Ku ", - "Zhi ", - "Qiong ", - "Tong ", - "Sang ", - "Sang ", - "Huan ", - "Jie ", - "Jiu ", - "Xue ", - "Duo ", - "Zhui ", - "Yu ", - "Zan ", - "Kasei ", - "Ying ", - "Masu ", - "[?] ", - "Zhan ", - "Ya ", - "Nao ", - "Zhen ", - "Dang ", - "Qi ", - "Qiao ", - "Hua ", - "Kuai ", - "Jiang ", - "Zhuang ", - "Xun ", - "Suo ", - "Sha ", - "Zhen ", - "Bei ", - "Ting ", - "Gua ", - "Jing ", - "Bo ", - "Ben ", - "Fu ", - "Rui ", - "Tong ", - "Jue ", - "Xi ", - "Lang ", - "Liu ", - "Feng ", - "Qi ", - "Wen ", - "Jun ", - "Gan ", - "Cu ", - "Liang ", - "Qiu ", - "Ting ", - "You ", - "Mei ", - "Bang ", - "Long ", - "Peng ", - "Zhuang ", - "Di ", - "Xuan ", - "Tu ", - "Zao ", - "Ao ", - "Gu ", - "Bi ", - "Di ", - "Han ", - "Zi ", - "Zhi ", - "Ren ", - "Bei ", - "Geng ", - "Jian ", - "Huan ", - "Wan ", - "Nuo ", - "Jia ", - "Tiao ", - "Ji ", - "Xiao ", - "Lu ", - "Huan ", - "Shao ", - "Cen ", - "Fen ", - "Song ", - "Meng ", - "Wu ", - "Li ", - "Li ", - "Dou ", - "Cen ", - "Ying ", - "Suo ", - "Ju ", - "Ti ", - "Jie ", - "Kun ", - "Zhuo ", - "Shu ", - "Chan ", - "Fan ", - "Wei ", - "Jing ", - "Li ", - "Bing ", - "Fumoto ", - "Shikimi ", - "Tao ", - "Zhi ", - "Lai ", - "Lian ", - "Jian ", - "Zhuo ", - "Ling ", - "Li ", - "Qi ", - "Bing ", - "Zhun ", - "Cong ", - "Qian ", - "Mian ", - "Qi ", - "Qi ", - "Cai ", - "Gun ", - "Chan ", - "Te ", - "Fei ", - "Pai ", - "Bang ", - "Pou ", - "Hun ", - "Zong ", - "Cheng ", - "Zao ", - "Ji ", - "Li ", - "Peng ", - "Yu ", - "Yu ", - "Gu ", - "Hun ", - "Dong ", - "Tang ", - "Gang ", - "Wang ", - "Di ", - "Xi ", - "Fan ", - "Cheng ", - "Zhan ", - "Qi ", - "Yuan ", - "Yan ", - "Yu ", - "Quan ", - "Yi ", - "Sen ", - "Ren ", - "Chui ", - "Leng ", - "Qi ", - "Zhuo ", - "Fu ", - "Ke ", - "Lai ", - "Zou ", - "Zou ", - "Zhuo ", - "Guan ", - "Fen ", - "Fen ", - "Chen ", - "Qiong ", - "Nie ", - "Wan ", - "Guo ", - "Lu ", - "Hao ", - "Jie ", - "Yi ", - "Chou ", - "Ju ", - "Ju ", - "Cheng ", - "Zuo ", - "Liang ", - "Qiang ", - "Zhi ", - "Zhui ", - "Ya ", - "Ju ", - "Bei ", - "Jiao ", - "Zhuo ", - "Zi ", - "Bin ", - "Peng ", - "Ding ", - "Chu ", - "Chang ", - "Kunugi ", - "Momiji ", - "Jian ", - "Gui ", - "Xi ", - "Du ", - "Qian ", - "Kunugi ", - "Soko ", - "Shide ", - "Luo ", - "Zhi ", - "Ken ", - "Myeng ", - "Tafu ", - "[?] ", - "Peng ", - "Zhan ", - "[?] ", - "Tuo ", - "Sen ", - "Duo ", - "Ye ", - "Fou ", - "Wei ", - "Wei ", - "Duan ", - "Jia ", - "Zong ", - "Jian ", - "Yi ", - "Shen ", - "Xi ", - "Yan ", - "Yan ", - "Chuan ", - "Zhan ", - "Chun ", - "Yu ", - "He ", - "Zha ", - "Wo ", - "Pian ", - "Bi ", - "Yao ", - "Huo ", - "Xu ", - "Ruo ", - "Yang ", - "La ", - "Yan ", - "Ben ", - "Hun ", - "Kui ", - "Jie ", - "Kui ", - "Si ", - "Feng ", - "Xie ", - "Tuo ", - "Zhi ", - "Jian ", - "Mu ", - "Mao ", - "Chu ", - "Hu ", - "Hu ", - "Lian ", - "Leng ", - "Ting ", - "Nan ", - "Yu ", - "You ", - "Mei ", - "Song ", - "Xuan ", - "Xuan ", - "Ying ", - "Zhen ", - "Pian ", - "Ye ", - "Ji ", - "Jie ", - "Ye ", - "Chu ", - "Shun ", - "Yu ", - "Cou ", - "Wei ", - "Mei ", - "Di ", - "Ji ", - "Jie ", - "Kai ", - "Qiu ", - "Ying ", - "Rou ", - "Heng ", - "Lou ", - "Le ", - "Hazou ", - "Katsura ", - "Pin ", - "Muro ", - "Gai ", - "Tan ", - "Lan ", - "Yun ", - "Yu ", - "Chen ", - "Lu ", - "Ju ", - "Sakaki ", - "[?] ", - "Pi ", - "Xie ", - "Jia ", - "Yi ", - "Zhan ", - "Fu ", - "Nai ", - "Mi ", - "Lang ", - "Rong ", - "Gu ", - "Jian ", - "Ju ", - "Ta ", - "Yao ", - "Zhen ", - "Bang ", - "Sha ", - "Yuan ", - "Zi ", - "Ming ", - "Su ", - "Jia ", - "Yao ", - "Jie ", - "Huang ", - "Gan ", - "Fei ", - "Zha ", - "Qian ", - "Ma ", - "Sun ", - "Yuan ", - "Xie ", - "Rong ", - "Shi ", - "Zhi ", - "Cui ", - "Yun ", - "Ting ", - "Liu ", - "Rong ", - "Tang ", - "Que ", - "Zhai ", - "Si ", - "Sheng ", - "Ta ", - "Ke ", - "Xi ", - "Gu ", - "Qi ", - "Kao ", - "Gao ", - "Sun ", - "Pan ", - "Tao ", - "Ge ", - "Xun ", - "Dian ", - "Nou ", - "Ji ", - "Shuo ", - "Gou ", - "Chui ", - "Qiang ", - "Cha ", - "Qian ", - "Huai ", - "Mei ", - "Xu ", - "Gang ", - "Gao ", - "Zhuo ", - "Tuo ", - "Hashi ", - "Yang ", - "Dian ", - "Jia ", - "Jian ", - "Zui ", - "Kashi ", - "Ori ", - "Bin ", - "Zhu ", - "[?] ", - "Xi ", - "Qi ", - "Lian ", - "Hui ", - "Yong ", - "Qian ", - "Guo ", - "Gai ", - "Gai ", - "Tuan ", - "Hua ", - "Cu ", - "Sen ", - "Cui ", - "Beng ", - "You ", - "Hu ", - "Jiang ", - "Hu ", - "Huan ", - "Kui ", - "Yi ", - "Nie ", - "Gao ", - "Kang ", - "Gui ", - "Gui ", - "Cao ", - "Man ", - "Jin ", - "Di ", - "Zhuang ", - "Le ", - "Lang ", - "Chen ", - "Cong ", - "Li ", - "Xiu ", - "Qing ", - "Shuang ", - "Fan ", - "Tong ", - "Guan ", - "Ji ", - "Suo ", - "Lei ", - "Lu ", - "Liang ", - "Mi ", - "Lou ", - "Chao ", - "Su ", - "Ke ", - "Shu ", - "Tang ", - "Biao ", - "Lu ", - "Jiu ", - "Shu ", - "Zha ", - "Shu ", - "Zhang ", - "Men ", - "Mo ", - "Niao ", - "Yang ", - "Tiao ", - "Peng ", - "Zhu ", - "Sha ", - "Xi ", - "Quan ", - "Heng ", - "Jian ", - "Cong ", - "[?] ", - "Hokuso ", - "Qiang ", - "Tara ", - "Ying ", - "Er ", - "Xin ", - "Zhi ", - "Qiao ", - "Zui ", - "Cong ", - "Pu ", - "Shu ", - "Hua ", - "Kui ", - "Zhen ", - "Zun ", - "Yue ", - "Zhan ", - "Xi ", - "Xun ", - "Dian ", - "Fa ", - "Gan ", - "Mo ", - "Wu ", - "Qiao ", - "Nao ", - "Lin ", - "Liu ", - "Qiao ", - "Xian ", - "Run ", - "Fan ", - "Zhan ", - "Tuo ", - "Lao ", - "Yun ", - "Shun ", - "Tui ", - "Cheng ", - "Tang ", - "Meng ", - "Ju ", - "Cheng ", - "Su ", - "Jue ", - "Jue ", - "Tan ", - "Hui ", - "Ji ", - "Nuo ", - "Xiang ", - "Tuo ", - "Ning ", - "Rui ", - "Zhu ", - "Chuang ", - "Zeng ", - "Fen ", - "Qiong ", - "Ran ", - "Heng ", - "Cen ", - "Gu ", - "Liu ", - "Lao ", - "Gao ", - "Chu ", - "Zusa ", - "Nude ", - "Ca ", - "San ", - "Ji ", - "Dou ", - "Shou ", - "Lu ", - "[?] ", - "[?] ", - "Yuan ", - "Ta ", - "Shu ", - "Jiang ", - "Tan ", - "Lin ", - "Nong ", - "Yin ", - "Xi ", - "Sui ", - "Shan ", - "Zui ", - "Xuan ", - "Cheng ", - "Gan ", - "Ju ", - "Zui ", - "Yi ", - "Qin ", - "Pu ", - "Yan ", - "Lei ", - "Feng ", - "Hui ", - "Dang ", - "Ji ", - "Sui ", - "Bo ", - "Bi ", - "Ding ", - "Chu ", - "Zhua ", - "Kuai ", - "Ji ", - "Jie ", - "Jia ", - "Qing ", - "Zhe ", - "Jian ", - "Qiang ", - "Dao ", - "Yi ", - "Biao ", - "Song ", - "She ", - "Lin ", - "Kunugi ", - "Cha ", - "Meng ", - "Yin ", - "Tao ", - "Tai ", - "Mian ", - "Qi ", - "Toan ", - "Bin ", - "Huo ", - "Ji ", - "Qian ", - "Mi ", - "Ning ", - "Yi ", - "Gao ", - "Jian ", - "Yin ", - "Er ", - "Qing ", - "Yan ", - "Qi ", - "Mi ", - "Zhao ", - "Gui ", - "Chun ", - "Ji ", - "Kui ", - "Po ", - "Deng ", - "Chu ", - "[?] ", - "Mian ", - "You ", - "Zhi ", - "Guang ", - "Qian ", - "Lei ", - "Lei ", - "Sa ", - "Lu ", - "Li ", - "Cuan ", - "Lu ", - "Mie ", - "Hui ", - "Ou ", - "Lu ", - "Jie ", - "Gao ", - "Du ", - "Yuan ", - "Li ", - "Fei ", - "Zhuo ", - "Sou ", - "Lian ", - "Tamo ", - "Chu ", - "[?] ", - "Zhu ", - "Lu ", - "Yan ", - "Li ", - "Zhu ", - "Chen ", - "Jie ", - "E ", - "Su ", - "Huai ", - "Nie ", - "Yu ", - "Long ", - "Lai ", - "[?] ", - "Xian ", - "Kwi ", - "Ju ", - "Xiao ", - "Ling ", - "Ying ", - "Jian ", - "Yin ", - "You ", - "Ying ", - "Xiang ", - "Nong ", - "Bo ", - "Chan ", - "Lan ", - "Ju ", - "Shuang ", - "She ", - "Wei ", - "Cong ", - "Quan ", - "Qu ", - "Cang ", - "[?] ", - "Yu ", - "Luo ", - "Li ", - "Zan ", - "Luan ", - "Dang ", - "Jue ", - "Em ", - "Lan ", - "Lan ", - "Zhu ", - "Lei ", - "Li ", - "Ba ", - "Nang ", - "Yu ", - "Ling ", - "Tsuki ", - "Qian ", - "Ci ", - "Huan ", - "Xin ", - "Yu ", - "Yu ", - "Qian ", - "Ou ", - "Xu ", - "Chao ", - "Chu ", - "Chi ", - "Kai ", - "Yi ", - "Jue ", - "Xi ", - "Xu ", - "Xia ", - "Yu ", - "Kuai ", - "Lang ", - "Kuan ", - "Shuo ", - "Xi ", - "Ai ", - "Yi ", - "Qi ", - "Hu ", - "Chi ", - "Qin ", - "Kuan ", - "Kan ", - "Kuan ", - "Kan ", - "Chuan ", - "Sha ", - "Gua ", - "Yin ", - "Xin ", - "Xie ", - "Yu ", - "Qian ", - "Xiao ", - "Yi ", - "Ge ", - "Wu ", - "Tan ", - "Jin ", - "Ou ", - "Hu ", - "Ti ", - "Huan ", - "Xu ", - "Pen ", - "Xi ", - "Xiao ", - "Xu ", - "Xi ", - "Sen ", - "Lian ", - "Chu ", - "Yi ", - "Kan ", - "Yu ", - "Chuo ", - "Huan ", - "Zhi ", - "Zheng ", - "Ci ", - "Bu ", - "Wu ", - "Qi ", - "Bu ", - "Bu ", - "Wai ", - "Ju ", - "Qian ", - "Chi ", - "Se ", - "Chi ", - "Se ", - "Zhong ", - "Sui ", - "Sui ", - "Li ", - "Cuo ", - "Yu ", - "Li ", - "Gui ", - "Dai ", - "Dai ", - "Si ", - "Jian ", - "Zhe ", - "Mo ", - "Mo ", - "Yao ", - "Mo ", - "Cu ", - "Yang ", - "Tian ", - "Sheng ", - "Dai ", - "Shang ", - "Xu ", - "Xun ", - "Shu ", - "Can ", - "Jue ", - "Piao ", - "Qia ", - "Qiu ", - "Su ", - "Qing ", - "Yun ", - "Lian ", - "Yi ", - "Fou ", - "Zhi ", - "Ye ", - "Can ", - "Hun ", - "Dan ", - "Ji ", - "Ye ", - "Zhen ", - "Yun ", - "Wen ", - "Chou ", - "Bin ", - "Ti ", - "Jin ", - "Shang ", - "Yin ", - "Diao ", - "Cu ", - "Hui ", - "Cuan ", - "Yi ", - "Dan ", - "Du ", - "Jiang ", - "Lian ", - "Bin ", - "Du ", - "Tsukusu ", - "Jian ", - "Shu ", - "Ou ", - "Duan ", - "Zhu ", - "Yin ", - "Qing ", - "Yi ", - "Sha ", - "Que ", - "Ke ", - "Yao ", - "Jun ", - "Dian ", - "Hui ", - "Hui ", - "Gu ", - "Que ", - "Ji ", - "Yi ", - "Ou ", - "Hui ", - "Duan ", - "Yi ", - "Xiao ", - "Wu ", - "Guan ", - "Mu ", - "Mei ", - "Mei ", - "Ai ", - "Zuo ", - "Du ", - "Yu ", - "Bi ", - "Bi ", - "Bi ", - "Pi ", - "Pi ", - "Bi ", - "Chan ", - "Mao ", - "[?] ", - "[?] ", - "Pu ", - "Mushiru ", - "Jia ", - "Zhan ", - "Sai ", - "Mu ", - "Tuo ", - "Xun ", - "Er ", - "Rong ", - "Xian ", - "Ju ", - "Mu ", - "Hao ", - "Qiu ", - "Dou ", - "Mushiru ", - "Tan ", - "Pei ", - "Ju ", - "Duo ", - "Cui ", - "Bi ", - "San ", - "[?] ", - "Mao ", - "Sui ", - "Yu ", - "Yu ", - "Tuo ", - "He ", - "Jian ", - "Ta ", - "San ", - "Lu ", - "Mu ", - "Li ", - "Tong ", - "Rong ", - "Chang ", - "Pu ", - "Luo ", - "Zhan ", - "Sao ", - "Zhan ", - "Meng ", - "Luo ", - "Qu ", - "Die ", - "Shi ", - "Di ", - "Min ", - "Jue ", - "Mang ", - "Qi ", - "Pie ", - "Nai ", - "Qi ", - "Dao ", - "Xian ", - "Chuan ", - "Fen ", - "Ri ", - "Nei ", - "[?] ", - "Fu ", - "Shen ", - "Dong ", - "Qing ", - "Qi ", - "Yin ", - "Xi ", - "Hai ", - "Yang ", - "An ", - "Ya ", - "Ke ", - "Qing ", - "Ya ", - "Dong ", - "Dan ", - "Lu ", - "Qing ", - "Yang ", - "Yun ", - "Yun ", - "Shui ", - "San ", - "Zheng ", - "Bing ", - "Yong ", - "Dang ", - "Shitamizu ", - "Le ", - "Ni ", - "Tun ", - "Fan ", - "Gui ", - "Ting ", - "Zhi ", - "Qiu ", - "Bin ", - "Ze ", - "Mian ", - "Cuan ", - "Hui ", - "Diao ", - "Yi ", - "Cha ", - "Zhuo ", - "Chuan ", - "Wan ", - "Fan ", - "Dai ", - "Xi ", - "Tuo ", - "Mang ", - "Qiu ", - "Qi ", - "Shan ", - "Pai ", - "Han ", - "Qian ", - "Wu ", - "Wu ", - "Xun ", - "Si ", - "Ru ", - "Gong ", - "Jiang ", - "Chi ", - "Wu ", - "Tsuchi ", - "[?] ", - "Tang ", - "Zhi ", - "Chi ", - "Qian ", - "Mi ", - "Yu ", - "Wang ", - "Qing ", - "Jing ", - "Rui ", - "Jun ", - "Hong ", - "Tai ", - "Quan ", - "Ji ", - "Bian ", - "Bian ", - "Gan ", - "Wen ", - "Zhong ", - "Fang ", - "Xiong ", - "Jue ", - "Hang ", - "Niou ", - "Qi ", - "Fen ", - "Xu ", - "Xu ", - "Qin ", - "Yi ", - "Wo ", - "Yun ", - "Yuan ", - "Hang ", - "Yan ", - "Chen ", - "Chen ", - "Dan ", - "You ", - "Dun ", - "Hu ", - "Huo ", - "Qie ", - "Mu ", - "Rou ", - "Mei ", - "Ta ", - "Mian ", - "Wu ", - "Chong ", - "Tian ", - "Bi ", - "Sha ", - "Zhi ", - "Pei ", - "Pan ", - "Zhui ", - "Za ", - "Gou ", - "Liu ", - "Mei ", - "Ze ", - "Feng ", - "Ou ", - "Li ", - "Lun ", - "Cang ", - "Feng ", - "Wei ", - "Hu ", - "Mo ", - "Mei ", - "Shu ", - "Ju ", - "Zan ", - "Tuo ", - "Tuo ", - "Tuo ", - "He ", - "Li ", - "Mi ", - "Yi ", - "Fa ", - "Fei ", - "You ", - "Tian ", - "Zhi ", - "Zhao ", - "Gu ", - "Zhan ", - "Yan ", - "Si ", - "Kuang ", - "Jiong ", - "Ju ", - "Xie ", - "Qiu ", - "Yi ", - "Jia ", - "Zhong ", - "Quan ", - "Bo ", - "Hui ", - "Mi ", - "Ben ", - "Zhuo ", - "Chu ", - "Le ", - "You ", - "Gu ", - "Hong ", - "Gan ", - "Fa ", - "Mao ", - "Si ", - "Hu ", - "Ping ", - "Ci ", - "Fan ", - "Chi ", - "Su ", - "Ning ", - "Cheng ", - "Ling ", - "Pao ", - "Bo ", - "Qi ", - "Si ", - "Ni ", - "Ju ", - "Yue ", - "Zhu ", - "Sheng ", - "Lei ", - "Xuan ", - "Xue ", - "Fu ", - "Pan ", - "Min ", - "Tai ", - "Yang ", - "Ji ", - "Yong ", - "Guan ", - "Beng ", - "Xue ", - "Long ", - "Lu ", - "[?] ", - "Bo ", - "Xie ", - "Po ", - "Ze ", - "Jing ", - "Yin ", - "Zhou ", - "Ji ", - "Yi ", - "Hui ", - "Hui ", - "Zui ", - "Cheng ", - "Yin ", - "Wei ", - "Hou ", - "Jian ", - "Yang ", - "Lie ", - "Si ", - "Ji ", - "Er ", - "Xing ", - "Fu ", - "Sa ", - "Suo ", - "Zhi ", - "Yin ", - "Wu ", - "Xi ", - "Kao ", - "Zhu ", - "Jiang ", - "Luo ", - "[?] ", - "An ", - "Dong ", - "Yi ", - "Mou ", - "Lei ", - "Yi ", - "Mi ", - "Quan ", - "Jin ", - "Mo ", - "Wei ", - "Xiao ", - "Xie ", - "Hong ", - "Xu ", - "Shuo ", - "Kuang ", - "Tao ", - "Qie ", - "Ju ", - "Er ", - "Zhou ", - "Ru ", - "Ping ", - "Xun ", - "Xiong ", - "Zhi ", - "Guang ", - "Huan ", - "Ming ", - "Huo ", - "Wa ", - "Qia ", - "Pai ", - "Wu ", - "Qu ", - "Liu ", - "Yi ", - "Jia ", - "Jing ", - "Qian ", - "Jiang ", - "Jiao ", - "Cheng ", - "Shi ", - "Zhuo ", - "Ce ", - "Pal ", - "Kuai ", - "Ji ", - "Liu ", - "Chan ", - "Hun ", - "Hu ", - "Nong ", - "Xun ", - "Jin ", - "Lie ", - "Qiu ", - "Wei ", - "Zhe ", - "Jun ", - "Han ", - "Bang ", - "Mang ", - "Zhuo ", - "You ", - "Xi ", - "Bo ", - "Dou ", - "Wan ", - "Hong ", - "Yi ", - "Pu ", - "Ying ", - "Lan ", - "Hao ", - "Lang ", - "Han ", - "Li ", - "Geng ", - "Fu ", - "Wu ", - "Lian ", - "Chun ", - "Feng ", - "Yi ", - "Yu ", - "Tong ", - "Lao ", - "Hai ", - "Jin ", - "Jia ", - "Chong ", - "Weng ", - "Mei ", - "Sui ", - "Cheng ", - "Pei ", - "Xian ", - "Shen ", - "Tu ", - "Kun ", - "Pin ", - "Nie ", - "Han ", - "Jing ", - "Xiao ", - "She ", - "Nian ", - "Tu ", - "Yong ", - "Xiao ", - "Xian ", - "Ting ", - "E ", - "Su ", - "Tun ", - "Juan ", - "Cen ", - "Ti ", - "Li ", - "Shui ", - "Si ", - "Lei ", - "Shui ", - "Tao ", - "Du ", - "Lao ", - "Lai ", - "Lian ", - "Wei ", - "Wo ", - "Yun ", - "Huan ", - "Di ", - "[?] ", - "Run ", - "Jian ", - "Zhang ", - "Se ", - "Fu ", - "Guan ", - "Xing ", - "Shou ", - "Shuan ", - "Ya ", - "Chuo ", - "Zhang ", - "Ye ", - "Kong ", - "Wo ", - "Han ", - "Tuo ", - "Dong ", - "He ", - "Wo ", - "Ju ", - "Gan ", - "Liang ", - "Hun ", - "Ta ", - "Zhuo ", - "Dian ", - "Qie ", - "De ", - "Juan ", - "Zi ", - "Xi ", - "Yao ", - "Qi ", - "Gu ", - "Guo ", - "Han ", - "Lin ", - "Tang ", - "Zhou ", - "Peng ", - "Hao ", - "Chang ", - "Shu ", - "Qi ", - "Fang ", - "Chi ", - "Lu ", - "Nao ", - "Ju ", - "Tao ", - "Cong ", - "Lei ", - "Zhi ", - "Peng ", - "Fei ", - "Song ", - "Tian ", - "Pi ", - "Dan ", - "Yu ", - "Ni ", - "Yu ", - "Lu ", - "Gan ", - "Mi ", - "Jing ", - "Ling ", - "Lun ", - "Yin ", - "Cui ", - "Qu ", - "Huai ", - "Yu ", - "Nian ", - "Shen ", - "Piao ", - "Chun ", - "Wa ", - "Yuan ", - "Lai ", - "Hun ", - "Qing ", - "Yan ", - "Qian ", - "Tian ", - "Miao ", - "Zhi ", - "Yin ", - "Mi ", - "Ben ", - "Yuan ", - "Wen ", - "Re ", - "Fei ", - "Qing ", - "Yuan ", - "Ke ", - "Ji ", - "She ", - "Yuan ", - "Shibui ", - "Lu ", - "Zi ", - "Du ", - "[?] ", - "Jian ", - "Min ", - "Pi ", - "Tani ", - "Yu ", - "Yuan ", - "Shen ", - "Shen ", - "Rou ", - "Huan ", - "Zhu ", - "Jian ", - "Nuan ", - "Yu ", - "Qiu ", - "Ting ", - "Qu ", - "Du ", - "Feng ", - "Zha ", - "Bo ", - "Wo ", - "Wo ", - "Di ", - "Wei ", - "Wen ", - "Ru ", - "Xie ", - "Ce ", - "Wei ", - "Ge ", - "Gang ", - "Yan ", - "Hong ", - "Xuan ", - "Mi ", - "Ke ", - "Mao ", - "Ying ", - "Yan ", - "You ", - "Hong ", - "Miao ", - "Xing ", - "Mei ", - "Zai ", - "Hun ", - "Nai ", - "Kui ", - "Shi ", - "E ", - "Pai ", - "Mei ", - "Lian ", - "Qi ", - "Qi ", - "Mei ", - "Tian ", - "Cou ", - "Wei ", - "Can ", - "Tuan ", - "Mian ", - "Hui ", - "Mo ", - "Xu ", - "Ji ", - "Pen ", - "Jian ", - "Jian ", - "Hu ", - "Feng ", - "Xiang ", - "Yi ", - "Yin ", - "Zhan ", - "Shi ", - "Jie ", - "Cheng ", - "Huang ", - "Tan ", - "Yu ", - "Bi ", - "Min ", - "Shi ", - "Tu ", - "Sheng ", - "Yong ", - "Qu ", - "Zhong ", - "Suei ", - "Jiu ", - "Jiao ", - "Qiou ", - "Yin ", - "Tang ", - "Long ", - "Huo ", - "Yuan ", - "Nan ", - "Ban ", - "You ", - "Quan ", - "Chui ", - "Liang ", - "Chan ", - "Yan ", - "Chun ", - "Nie ", - "Zi ", - "Wan ", - "Shi ", - "Man ", - "Ying ", - "Ratsu ", - "Kui ", - "[?] ", - "Jian ", - "Xu ", - "Lu ", - "Gui ", - "Gai ", - "[?] ", - "[?] ", - "Po ", - "Jin ", - "Gui ", - "Tang ", - "Yuan ", - "Suo ", - "Yuan ", - "Lian ", - "Yao ", - "Meng ", - "Zhun ", - "Sheng ", - "Ke ", - "Tai ", - "Da ", - "Wa ", - "Liu ", - "Gou ", - "Sao ", - "Ming ", - "Zha ", - "Shi ", - "Yi ", - "Lun ", - "Ma ", - "Pu ", - "Wei ", - "Li ", - "Cai ", - "Wu ", - "Xi ", - "Wen ", - "Qiang ", - "Ze ", - "Shi ", - "Su ", - "Yi ", - "Zhen ", - "Sou ", - "Yun ", - "Xiu ", - "Yin ", - "Rong ", - "Hun ", - "Su ", - "Su ", - "Ni ", - "Ta ", - "Shi ", - "Ru ", - "Wei ", - "Pan ", - "Chu ", - "Chu ", - "Pang ", - "Weng ", - "Cang ", - "Mie ", - "He ", - "Dian ", - "Hao ", - "Huang ", - "Xi ", - "Zi ", - "Di ", - "Zhi ", - "Ying ", - "Fu ", - "Jie ", - "Hua ", - "Ge ", - "Zi ", - "Tao ", - "Teng ", - "Sui ", - "Bi ", - "Jiao ", - "Hui ", - "Gun ", - "Yin ", - "Gao ", - "Long ", - "Zhi ", - "Yan ", - "She ", - "Man ", - "Ying ", - "Chun ", - "Lu ", - "Lan ", - "Luan ", - "[?] ", - "Bin ", - "Tan ", - "Yu ", - "Sou ", - "Hu ", - "Bi ", - "Biao ", - "Zhi ", - "Jiang ", - "Kou ", - "Shen ", - "Shang ", - "Di ", - "Mi ", - "Ao ", - "Lu ", - "Hu ", - "Hu ", - "You ", - "Chan ", - "Fan ", - "Yong ", - "Gun ", - "Man ", - "Qing ", - "Yu ", - "Piao ", - "Ji ", - "Ya ", - "Jiao ", - "Qi ", - "Xi ", - "Ji ", - "Lu ", - "Lu ", - "Long ", - "Jin ", - "Guo ", - "Cong ", - "Lou ", - "Zhi ", - "Gai ", - "Qiang ", - "Li ", - "Yan ", - "Cao ", - "Jiao ", - "Cong ", - "Qun ", - "Tuan ", - "Ou ", - "Teng ", - "Ye ", - "Xi ", - "Mi ", - "Tang ", - "Mo ", - "Shang ", - "Han ", - "Lian ", - "Lan ", - "Wa ", - "Li ", - "Qian ", - "Feng ", - "Xuan ", - "Yi ", - "Man ", - "Zi ", - "Mang ", - "Kang ", - "Lei ", - "Peng ", - "Shu ", - "Zhang ", - "Zhang ", - "Chong ", - "Xu ", - "Huan ", - "Kuo ", - "Jian ", - "Yan ", - "Chuang ", - "Liao ", - "Cui ", - "Ti ", - "Yang ", - "Jiang ", - "Cong ", - "Ying ", - "Hong ", - "Xun ", - "Shu ", - "Guan ", - "Ying ", - "Xiao ", - "[?] ", - "[?] ", - "Xu ", - "Lian ", - "Zhi ", - "Wei ", - "Pi ", - "Jue ", - "Jiao ", - "Po ", - "Dang ", - "Hui ", - "Jie ", - "Wu ", - "Pa ", - "Ji ", - "Pan ", - "Gui ", - "Xiao ", - "Qian ", - "Qian ", - "Xi ", - "Lu ", - "Xi ", - "Xuan ", - "Dun ", - "Huang ", - "Min ", - "Run ", - "Su ", - "Liao ", - "Zhen ", - "Zhong ", - "Yi ", - "Di ", - "Wan ", - "Dan ", - "Tan ", - "Chao ", - "Xun ", - "Kui ", - "Yie ", - "Shao ", - "Tu ", - "Zhu ", - "San ", - "Hei ", - "Bi ", - "Shan ", - "Chan ", - "Chan ", - "Shu ", - "Tong ", - "Pu ", - "Lin ", - "Wei ", - "Se ", - "Se ", - "Cheng ", - "Jiong ", - "Cheng ", - "Hua ", - "Jiao ", - "Lao ", - "Che ", - "Gan ", - "Cun ", - "Heng ", - "Si ", - "Shu ", - "Peng ", - "Han ", - "Yun ", - "Liu ", - "Hong ", - "Fu ", - "Hao ", - "He ", - "Xian ", - "Jian ", - "Shan ", - "Xi ", - "Oki ", - "[?] ", - "Lan ", - "[?] ", - "Yu ", - "Lin ", - "Min ", - "Zao ", - "Dang ", - "Wan ", - "Ze ", - "Xie ", - "Yu ", - "Li ", - "Shi ", - "Xue ", - "Ling ", - "Man ", - "Zi ", - "Yong ", - "Kuai ", - "Can ", - "Lian ", - "Dian ", - "Ye ", - "Ao ", - "Huan ", - "Zhen ", - "Chan ", - "Man ", - "Dan ", - "Dan ", - "Yi ", - "Sui ", - "Pi ", - "Ju ", - "Ta ", - "Qin ", - "Ji ", - "Zhuo ", - "Lian ", - "Nong ", - "Guo ", - "Jin ", - "Fen ", - "Se ", - "Ji ", - "Sui ", - "Hui ", - "Chu ", - "Ta ", - "Song ", - "Ding ", - "[?] ", - "Zhu ", - "Lai ", - "Bin ", - "Lian ", - "Mi ", - "Shi ", - "Shu ", - "Mi ", - "Ning ", - "Ying ", - "Ying ", - "Meng ", - "Jin ", - "Qi ", - "Pi ", - "Ji ", - "Hao ", - "Ru ", - "Zui ", - "Wo ", - "Tao ", - "Yin ", - "Yin ", - "Dui ", - "Ci ", - "Huo ", - "Jing ", - "Lan ", - "Jun ", - "Ai ", - "Pu ", - "Zhuo ", - "Wei ", - "Bin ", - "Gu ", - "Qian ", - "Xing ", - "Hama ", - "Kuo ", - "Fei ", - "[?] ", - "Boku ", - "Jian ", - "Wei ", - "Luo ", - "Zan ", - "Lu ", - "Li ", - "You ", - "Yang ", - "Lu ", - "Si ", - "Jie ", - "Ying ", - "Du ", - "Wang ", - "Hui ", - "Xie ", - "Pan ", - "Shen ", - "Biao ", - "Chan ", - "Mo ", - "Liu ", - "Jian ", - "Pu ", - "Se ", - "Cheng ", - "Gu ", - "Bin ", - "Huo ", - "Xian ", - "Lu ", - "Qin ", - "Han ", - "Ying ", - "Yong ", - "Li ", - "Jing ", - "Xiao ", - "Ying ", - "Sui ", - "Wei ", - "Xie ", - "Huai ", - "Hao ", - "Zhu ", - "Long ", - "Lai ", - "Dui ", - "Fan ", - "Hu ", - "Lai ", - "[?] ", - "[?] ", - "Ying ", - "Mi ", - "Ji ", - "Lian ", - "Jian ", - "Ying ", - "Fen ", - "Lin ", - "Yi ", - "Jian ", - "Yue ", - "Chan ", - "Dai ", - "Rang ", - "Jian ", - "Lan ", - "Fan ", - "Shuang ", - "Yuan ", - "Zhuo ", - "Feng ", - "She ", - "Lei ", - "Lan ", - "Cong ", - "Qu ", - "Yong ", - "Qian ", - "Fa ", - "Guan ", - "Que ", - "Yan ", - "Hao ", - "Hyeng ", - "Sa ", - "Zan ", - "Luan ", - "Yan ", - "Li ", - "Mi ", - "Shan ", - "Tan ", - "Dang ", - "Jiao ", - "Chan ", - "[?] ", - "Hao ", - "Ba ", - "Zhu ", - "Lan ", - "Lan ", - "Nang ", - "Wan ", - "Luan ", - "Xun ", - "Xian ", - "Yan ", - "Gan ", - "Yan ", - "Yu ", - "Huo ", - "Si ", - "Mie ", - "Guang ", - "Deng ", - "Hui ", - "Xiao ", - "Xiao ", - "Hu ", - "Hong ", - "Ling ", - "Zao ", - "Zhuan ", - "Jiu ", - "Zha ", - "Xie ", - "Chi ", - "Zhuo ", - "Zai ", - "Zai ", - "Can ", - "Yang ", - "Qi ", - "Zhong ", - "Fen ", - "Niu ", - "Jiong ", - "Wen ", - "Po ", - "Yi ", - "Lu ", - "Chui ", - "Pi ", - "Kai ", - "Pan ", - "Yan ", - "Kai ", - "Pang ", - "Mu ", - "Chao ", - "Liao ", - "Gui ", - "Kang ", - "Tun ", - "Guang ", - "Xin ", - "Zhi ", - "Guang ", - "Guang ", - "Wei ", - "Qiang ", - "[?] ", - "Da ", - "Xia ", - "Zheng ", - "Zhu ", - "Ke ", - "Zhao ", - "Fu ", - "Ba ", - "Duo ", - "Duo ", - "Ling ", - "Zhuo ", - "Xuan ", - "Ju ", - "Tan ", - "Pao ", - "Jiong ", - "Pao ", - "Tai ", - "Tai ", - "Bing ", - "Yang ", - "Tong ", - "Han ", - "Zhu ", - "Zha ", - "Dian ", - "Wei ", - "Shi ", - "Lian ", - "Chi ", - "Huang ", - "[?] ", - "Hu ", - "Shuo ", - "Lan ", - "Jing ", - "Jiao ", - "Xu ", - "Xing ", - "Quan ", - "Lie ", - "Huan ", - "Yang ", - "Xiao ", - "Xiu ", - "Xian ", - "Yin ", - "Wu ", - "Zhou ", - "Yao ", - "Shi ", - "Wei ", - "Tong ", - "Xue ", - "Zai ", - "Kai ", - "Hong ", - "Luo ", - "Xia ", - "Zhu ", - "Xuan ", - "Zheng ", - "Po ", - "Yan ", - "Hui ", - "Guang ", - "Zhe ", - "Hui ", - "Kao ", - "[?] ", - "Fan ", - "Shao ", - "Ye ", - "Hui ", - "[?] ", - "Tang ", - "Jin ", - "Re ", - "[?] ", - "Xi ", - "Fu ", - "Jiong ", - "Che ", - "Pu ", - "Jing ", - "Zhuo ", - "Ting ", - "Wan ", - "Hai ", - "Peng ", - "Lang ", - "Shan ", - "Hu ", - "Feng ", - "Chi ", - "Rong ", - "Hu ", - "Xi ", - "Shu ", - "He ", - "Xun ", - "Ku ", - "Jue ", - "Xiao ", - "Xi ", - "Yan ", - "Han ", - "Zhuang ", - "Jun ", - "Di ", - "Xie ", - "Ji ", - "Wu ", - "[?] ", - "[?] ", - "Han ", - "Yan ", - "Huan ", - "Men ", - "Ju ", - "Chou ", - "Bei ", - "Fen ", - "Lin ", - "Kun ", - "Hun ", - "Tun ", - "Xi ", - "Cui ", - "Wu ", - "Hong ", - "Ju ", - "Fu ", - "Wo ", - "Jiao ", - "Cong ", - "Feng ", - "Ping ", - "Qiong ", - "Ruo ", - "Xi ", - "Qiong ", - "Xin ", - "Zhuo ", - "Yan ", - "Yan ", - "Yi ", - "Jue ", - "Yu ", - "Gang ", - "Ran ", - "Pi ", - "Gu ", - "[?] ", - "Sheng ", - "Chang ", - "Shao ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "Chen ", - "He ", - "Kui ", - "Zhong ", - "Duan ", - "Xia ", - "Hui ", - "Feng ", - "Lian ", - "Xuan ", - "Xing ", - "Huang ", - "Jiao ", - "Jian ", - "Bi ", - "Ying ", - "Zhu ", - "Wei ", - "Tuan ", - "Tian ", - "Xi ", - "Nuan ", - "Nuan ", - "Chan ", - "Yan ", - "Jiong ", - "Jiong ", - "Yu ", - "Mei ", - "Sha ", - "Wei ", - "Ye ", - "Xin ", - "Qiong ", - "Rou ", - "Mei ", - "Huan ", - "Xu ", - "Zhao ", - "Wei ", - "Fan ", - "Qiu ", - "Sui ", - "Yang ", - "Lie ", - "Zhu ", - "Jie ", - "Gao ", - "Gua ", - "Bao ", - "Hu ", - "Yun ", - "Xia ", - "[?] ", - "[?] ", - "Bian ", - "Gou ", - "Tui ", - "Tang ", - "Chao ", - "Shan ", - "N ", - "Bo ", - "Huang ", - "Xie ", - "Xi ", - "Wu ", - "Xi ", - "Yun ", - "He ", - "He ", - "Xi ", - "Yun ", - "Xiong ", - "Nai ", - "Shan ", - "Qiong ", - "Yao ", - "Xun ", - "Mi ", - "Lian ", - "Ying ", - "Wen ", - "Rong ", - "Oozutsu ", - "[?] ", - "Qiang ", - "Liu ", - "Xi ", - "Bi ", - "Biao ", - "Zong ", - "Lu ", - "Jian ", - "Shou ", - "Yi ", - "Lou ", - "Feng ", - "Sui ", - "Yi ", - "Tong ", - "Jue ", - "Zong ", - "Yun ", - "Hu ", - "Yi ", - "Zhi ", - "Ao ", - "Wei ", - "Liao ", - "Han ", - "Ou ", - "Re ", - "Jiong ", - "Man ", - "[?] ", - "Shang ", - "Cuan ", - "Zeng ", - "Jian ", - "Xi ", - "Xi ", - "Xi ", - "Yi ", - "Xiao ", - "Chi ", - "Huang ", - "Chan ", - "Ye ", - "Qian ", - "Ran ", - "Yan ", - "Xian ", - "Qiao ", - "Zun ", - "Deng ", - "Dun ", - "Shen ", - "Jiao ", - "Fen ", - "Si ", - "Liao ", - "Yu ", - "Lin ", - "Tong ", - "Shao ", - "Fen ", - "Fan ", - "Yan ", - "Xun ", - "Lan ", - "Mei ", - "Tang ", - "Yi ", - "Jing ", - "Men ", - "[?] ", - "[?] ", - "Ying ", - "Yu ", - "Yi ", - "Xue ", - "Lan ", - "Tai ", - "Zao ", - "Can ", - "Sui ", - "Xi ", - "Que ", - "Cong ", - "Lian ", - "Hui ", - "Zhu ", - "Xie ", - "Ling ", - "Wei ", - "Yi ", - "Xie ", - "Zhao ", - "Hui ", - "Tatsu ", - "Nung ", - "Lan ", - "Ru ", - "Xian ", - "Kao ", - "Xun ", - "Jin ", - "Chou ", - "Chou ", - "Yao ", - "He ", - "Lan ", - "Biao ", - "Rong ", - "Li ", - "Mo ", - "Bao ", - "Ruo ", - "Lu ", - "La ", - "Ao ", - "Xun ", - "Kuang ", - "Shuo ", - "[?] ", - "Li ", - "Lu ", - "Jue ", - "Liao ", - "Yan ", - "Xi ", - "Xie ", - "Long ", - "Ye ", - "[?] ", - "Rang ", - "Yue ", - "Lan ", - "Cong ", - "Jue ", - "Tong ", - "Guan ", - "[?] ", - "Che ", - "Mi ", - "Tang ", - "Lan ", - "Zhu ", - "[?] ", - "Ling ", - "Cuan ", - "Yu ", - "Zhua ", - "Tsumekanmuri ", - "Pa ", - "Zheng ", - "Pao ", - "Cheng ", - "Yuan ", - "Ai ", - "Wei ", - "[?] ", - "Jue ", - "Jue ", - "Fu ", - "Ye ", - "Ba ", - "Die ", - "Ye ", - "Yao ", - "Zu ", - "Shuang ", - "Er ", - "Qiang ", - "Chuang ", - "Ge ", - "Zang ", - "Die ", - "Qiang ", - "Yong ", - "Qiang ", - "Pian ", - "Ban ", - "Pan ", - "Shao ", - "Jian ", - "Pai ", - "Du ", - "Chuang ", - "Tou ", - "Zha ", - "Bian ", - "Die ", - "Bang ", - "Bo ", - "Chuang ", - "You ", - "[?] ", - "Du ", - "Ya ", - "Cheng ", - "Niu ", - "Ushihen ", - "Pin ", - "Jiu ", - "Mou ", - "Tuo ", - "Mu ", - "Lao ", - "Ren ", - "Mang ", - "Fang ", - "Mao ", - "Mu ", - "Gang ", - "Wu ", - "Yan ", - "Ge ", - "Bei ", - "Si ", - "Jian ", - "Gu ", - "You ", - "Ge ", - "Sheng ", - "Mu ", - "Di ", - "Qian ", - "Quan ", - "Quan ", - "Zi ", - "Te ", - "Xi ", - "Mang ", - "Keng ", - "Qian ", - "Wu ", - "Gu ", - "Xi ", - "Li ", - "Li ", - "Pou ", - "Ji ", - "Gang ", - "Zhi ", - "Ben ", - "Quan ", - "Run ", - "Du ", - "Ju ", - "Jia ", - "Jian ", - "Feng ", - "Pian ", - "Ke ", - "Ju ", - "Kao ", - "Chu ", - "Xi ", - "Bei ", - "Luo ", - "Jie ", - "Ma ", - "San ", - "Wei ", - "Li ", - "Dun ", - "Tong ", - "[?] ", - "Jiang ", - "Ikenie ", - "Li ", - "Du ", - "Lie ", - "Pi ", - "Piao ", - "Bao ", - "Xi ", - "Chou ", - "Wei ", - "Kui ", - "Chou ", - "Quan ", - "Fan ", - "Ba ", - "Fan ", - "Qiu ", - "Ji ", - "Cai ", - "Chuo ", - "An ", - "Jie ", - "Zhuang ", - "Guang ", - "Ma ", - "You ", - "Kang ", - "Bo ", - "Hou ", - "Ya ", - "Yin ", - "Huan ", - "Zhuang ", - "Yun ", - "Kuang ", - "Niu ", - "Di ", - "Qing ", - "Zhong ", - "Mu ", - "Bei ", - "Pi ", - "Ju ", - "Ni ", - "Sheng ", - "Pao ", - "Xia ", - "Tuo ", - "Hu ", - "Ling ", - "Fei ", - "Pi ", - "Ni ", - "Ao ", - "You ", - "Gou ", - "Yue ", - "Ju ", - "Dan ", - "Po ", - "Gu ", - "Xian ", - "Ning ", - "Huan ", - "Hen ", - "Jiao ", - "He ", - "Zhao ", - "Ji ", - "Xun ", - "Shan ", - "Ta ", - "Rong ", - "Shou ", - "Tong ", - "Lao ", - "Du ", - "Xia ", - "Shi ", - "Hua ", - "Zheng ", - "Yu ", - "Sun ", - "Yu ", - "Bi ", - "Mang ", - "Xi ", - "Juan ", - "Li ", - "Xia ", - "Yin ", - "Suan ", - "Lang ", - "Bei ", - "Zhi ", - "Yan ", - "Sha ", - "Li ", - "Han ", - "Xian ", - "Jing ", - "Pai ", - "Fei ", - "Yao ", - "Ba ", - "Qi ", - "Ni ", - "Biao ", - "Yin ", - "Lai ", - "Xi ", - "Jian ", - "Qiang ", - "Kun ", - "Yan ", - "Guo ", - "Zong ", - "Mi ", - "Chang ", - "Yi ", - "Zhi ", - "Zheng ", - "Ya ", - "Meng ", - "Cai ", - "Cu ", - "She ", - "Kari ", - "Cen ", - "Luo ", - "Hu ", - "Zong ", - "Ji ", - "Wei ", - "Feng ", - "Wo ", - "Yuan ", - "Xing ", - "Zhu ", - "Mao ", - "Wei ", - "Yuan ", - "Xian ", - "Tuan ", - "Ya ", - "Nao ", - "Xie ", - "Jia ", - "Hou ", - "Bian ", - "You ", - "You ", - "Mei ", - "Zha ", - "Yao ", - "Sun ", - "Bo ", - "Ming ", - "Hua ", - "Yuan ", - "Sou ", - "Ma ", - "Yuan ", - "Dai ", - "Yu ", - "Shi ", - "Hao ", - "[?] ", - "Yi ", - "Zhen ", - "Chuang ", - "Hao ", - "Man ", - "Jing ", - "Jiang ", - "Mu ", - "Zhang ", - "Chan ", - "Ao ", - "Ao ", - "Hao ", - "Cui ", - "Fen ", - "Jue ", - "Bi ", - "Bi ", - "Huang ", - "Pu ", - "Lin ", - "Yu ", - "Tong ", - "Yao ", - "Liao ", - "Shuo ", - "Xiao ", - "Swu ", - "Ton ", - "Xi ", - "Ge ", - "Juan ", - "Du ", - "Hui ", - "Kuai ", - "Xian ", - "Xie ", - "Ta ", - "Xian ", - "Xun ", - "Ning ", - "Pin ", - "Huo ", - "Nou ", - "Meng ", - "Lie ", - "Nao ", - "Guang ", - "Shou ", - "Lu ", - "Ta ", - "Xian ", - "Mi ", - "Rang ", - "Huan ", - "Nao ", - "Luo ", - "Xian ", - "Qi ", - "Jue ", - "Xuan ", - "Miao ", - "Zi ", - "Lu ", - "Lu ", - "Yu ", - "Su ", - "Wang ", - "Qiu ", - "Ga ", - "Ding ", - "Le ", - "Ba ", - "Ji ", - "Hong ", - "Di ", - "Quan ", - "Gan ", - "Jiu ", - "Yu ", - "Ji ", - "Yu ", - "Yang ", - "Ma ", - "Gong ", - "Wu ", - "Fu ", - "Wen ", - "Jie ", - "Ya ", - "Fen ", - "Bian ", - "Beng ", - "Yue ", - "Jue ", - "Yun ", - "Jue ", - "Wan ", - "Jian ", - "Mei ", - "Dan ", - "Pi ", - "Wei ", - "Huan ", - "Xian ", - "Qiang ", - "Ling ", - "Dai ", - "Yi ", - "An ", - "Ping ", - "Dian ", - "Fu ", - "Xuan ", - "Xi ", - "Bo ", - "Ci ", - "Gou ", - "Jia ", - "Shao ", - "Po ", - "Ci ", - "Ke ", - "Ran ", - "Sheng ", - "Shen ", - "Yi ", - "Zu ", - "Jia ", - "Min ", - "Shan ", - "Liu ", - "Bi ", - "Zhen ", - "Zhen ", - "Jue ", - "Fa ", - "Long ", - "Jin ", - "Jiao ", - "Jian ", - "Li ", - "Guang ", - "Xian ", - "Zhou ", - "Gong ", - "Yan ", - "Xiu ", - "Yang ", - "Xu ", - "Luo ", - "Su ", - "Zhu ", - "Qin ", - "Ken ", - "Xun ", - "Bao ", - "Er ", - "Xiang ", - "Yao ", - "Xia ", - "Heng ", - "Gui ", - "Chong ", - "Xu ", - "Ban ", - "Pei ", - "[?] ", - "Dang ", - "Ei ", - "Hun ", - "Wen ", - "E ", - "Cheng ", - "Ti ", - "Wu ", - "Wu ", - "Cheng ", - "Jun ", - "Mei ", - "Bei ", - "Ting ", - "Xian ", - "Chuo ", - "Han ", - "Xuan ", - "Yan ", - "Qiu ", - "Quan ", - "Lang ", - "Li ", - "Xiu ", - "Fu ", - "Liu ", - "Ye ", - "Xi ", - "Ling ", - "Li ", - "Jin ", - "Lian ", - "Suo ", - "Chiisai ", - "[?] ", - "Wan ", - "Dian ", - "Pin ", - "Zhan ", - "Cui ", - "Min ", - "Yu ", - "Ju ", - "Chen ", - "Lai ", - "Wen ", - "Sheng ", - "Wei ", - "Dian ", - "Chu ", - "Zhuo ", - "Pei ", - "Cheng ", - "Hu ", - "Qi ", - "E ", - "Kun ", - "Chang ", - "Qi ", - "Beng ", - "Wan ", - "Lu ", - "Cong ", - "Guan ", - "Yan ", - "Diao ", - "Bei ", - "Lin ", - "Qin ", - "Pi ", - "Pa ", - "Que ", - "Zhuo ", - "Qin ", - "Fa ", - "[?] ", - "Qiong ", - "Du ", - "Jie ", - "Hun ", - "Yu ", - "Mao ", - "Mei ", - "Chun ", - "Xuan ", - "Ti ", - "Xing ", - "Dai ", - "Rou ", - "Min ", - "Zhen ", - "Wei ", - "Ruan ", - "Huan ", - "Jie ", - "Chuan ", - "Jian ", - "Zhuan ", - "Yang ", - "Lian ", - "Quan ", - "Xia ", - "Duan ", - "Yuan ", - "Ye ", - "Nao ", - "Hu ", - "Ying ", - "Yu ", - "Huang ", - "Rui ", - "Se ", - "Liu ", - "Shi ", - "Rong ", - "Suo ", - "Yao ", - "Wen ", - "Wu ", - "Jin ", - "Jin ", - "Ying ", - "Ma ", - "Tao ", - "Liu ", - "Tang ", - "Li ", - "Lang ", - "Gui ", - "Zhen ", - "Qiang ", - "Cuo ", - "Jue ", - "Zhao ", - "Yao ", - "Ai ", - "Bin ", - "Tu ", - "Chang ", - "Kun ", - "Zhuan ", - "Cong ", - "Jin ", - "Yi ", - "Cui ", - "Cong ", - "Qi ", - "Li ", - "Ying ", - "Suo ", - "Qiu ", - "Xuan ", - "Ao ", - "Lian ", - "Man ", - "Zhang ", - "Yin ", - "[?] ", - "Ying ", - "Zhi ", - "Lu ", - "Wu ", - "Deng ", - "Xiou ", - "Zeng ", - "Xun ", - "Qu ", - "Dang ", - "Lin ", - "Liao ", - "Qiong ", - "Su ", - "Huang ", - "Gui ", - "Pu ", - "Jing ", - "Fan ", - "Jin ", - "Liu ", - "Ji ", - "[?] ", - "Jing ", - "Ai ", - "Bi ", - "Can ", - "Qu ", - "Zao ", - "Dang ", - "Jiao ", - "Gun ", - "Tan ", - "Hui ", - "Huan ", - "Se ", - "Sui ", - "Tian ", - "[?] ", - "Yu ", - "Jin ", - "Lu ", - "Bin ", - "Shou ", - "Wen ", - "Zui ", - "Lan ", - "Xi ", - "Ji ", - "Xuan ", - "Ruan ", - "Huo ", - "Gai ", - "Lei ", - "Du ", - "Li ", - "Zhi ", - "Rou ", - "Li ", - "Zan ", - "Qiong ", - "Zhe ", - "Gui ", - "Sui ", - "La ", - "Long ", - "Lu ", - "Li ", - "Zan ", - "Lan ", - "Ying ", - "Mi ", - "Xiang ", - "Xi ", - "Guan ", - "Dao ", - "Zan ", - "Huan ", - "Gua ", - "Bo ", - "Die ", - "Bao ", - "Hu ", - "Zhi ", - "Piao ", - "Ban ", - "Rang ", - "Li ", - "Wa ", - "Dekaguramu ", - "Jiang ", - "Qian ", - "Fan ", - "Pen ", - "Fang ", - "Dan ", - "Weng ", - "Ou ", - "Deshiguramu ", - "Miriguramu ", - "Thon ", - "Hu ", - "Ling ", - "Yi ", - "Ping ", - "Ci ", - "Hekutogura ", - "Juan ", - "Chang ", - "Chi ", - "Sarake ", - "Dang ", - "Meng ", - "Pou ", - "Zhui ", - "Ping ", - "Bian ", - "Zhou ", - "Zhen ", - "Senchigura ", - "Ci ", - "Ying ", - "Qi ", - "Xian ", - "Lou ", - "Di ", - "Ou ", - "Meng ", - "Zhuan ", - "Peng ", - "Lin ", - "Zeng ", - "Wu ", - "Pi ", - "Dan ", - "Weng ", - "Ying ", - "Yan ", - "Gan ", - "Dai ", - "Shen ", - "Tian ", - "Tian ", - "Han ", - "Chang ", - "Sheng ", - "Qing ", - "Sheng ", - "Chan ", - "Chan ", - "Rui ", - "Sheng ", - "Su ", - "Sen ", - "Yong ", - "Shuai ", - "Lu ", - "Fu ", - "Yong ", - "Beng ", - "Feng ", - "Ning ", - "Tian ", - "You ", - "Jia ", - "Shen ", - "Zha ", - "Dian ", - "Fu ", - "Nan ", - "Dian ", - "Ping ", - "Ting ", - "Hua ", - "Ting ", - "Quan ", - "Zi ", - "Meng ", - "Bi ", - "Qi ", - "Liu ", - "Xun ", - "Liu ", - "Chang ", - "Mu ", - "Yun ", - "Fan ", - "Fu ", - "Geng ", - "Tian ", - "Jie ", - "Jie ", - "Quan ", - "Wei ", - "Fu ", - "Tian ", - "Mu ", - "Tap ", - "Pan ", - "Jiang ", - "Wa ", - "Da ", - "Nan ", - "Liu ", - "Ben ", - "Zhen ", - "Chu ", - "Mu ", - "Mu ", - "Ce ", - "Cen ", - "Gai ", - "Bi ", - "Da ", - "Zhi ", - "Lue ", - "Qi ", - "Lue ", - "Pan ", - "Kesa ", - "Fan ", - "Hua ", - "Yu ", - "Yu ", - "Mu ", - "Jun ", - "Yi ", - "Liu ", - "Yu ", - "Die ", - "Chou ", - "Hua ", - "Dang ", - "Chuo ", - "Ji ", - "Wan ", - "Jiang ", - "Sheng ", - "Chang ", - "Tuan ", - "Lei ", - "Ji ", - "Cha ", - "Liu ", - "Tatamu ", - "Tuan ", - "Lin ", - "Jiang ", - "Jiang ", - "Chou ", - "Bo ", - "Die ", - "Die ", - "Pi ", - "Nie ", - "Dan ", - "Shu ", - "Shu ", - "Zhi ", - "Yi ", - "Chuang ", - "Nai ", - "Ding ", - "Bi ", - "Jie ", - "Liao ", - "Gong ", - "Ge ", - "Jiu ", - "Zhou ", - "Xia ", - "Shan ", - "Xu ", - "Nue ", - "Li ", - "Yang ", - "Chen ", - "You ", - "Ba ", - "Jie ", - "Jue ", - "Zhi ", - "Xia ", - "Cui ", - "Bi ", - "Yi ", - "Li ", - "Zong ", - "Chuang ", - "Feng ", - "Zhu ", - "Pao ", - "Pi ", - "Gan ", - "Ke ", - "Ci ", - "Xie ", - "Qi ", - "Dan ", - "Zhen ", - "Fa ", - "Zhi ", - "Teng ", - "Ju ", - "Ji ", - "Fei ", - "Qu ", - "Dian ", - "Jia ", - "Xian ", - "Cha ", - "Bing ", - "Ni ", - "Zheng ", - "Yong ", - "Jing ", - "Quan ", - "Chong ", - "Tong ", - "Yi ", - "Kai ", - "Wei ", - "Hui ", - "Duo ", - "Yang ", - "Chi ", - "Zhi ", - "Hen ", - "Ya ", - "Mei ", - "Dou ", - "Jing ", - "Xiao ", - "Tong ", - "Tu ", - "Mang ", - "Pi ", - "Xiao ", - "Suan ", - "Pu ", - "Li ", - "Zhi ", - "Cuo ", - "Duo ", - "Wu ", - "Sha ", - "Lao ", - "Shou ", - "Huan ", - "Xian ", - "Yi ", - "Peng ", - "Zhang ", - "Guan ", - "Tan ", - "Fei ", - "Ma ", - "Lin ", - "Chi ", - "Ji ", - "Dian ", - "An ", - "Chi ", - "Bi ", - "Bei ", - "Min ", - "Gu ", - "Dui ", - "E ", - "Wei ", - "Yu ", - "Cui ", - "Ya ", - "Zhu ", - "Cu ", - "Dan ", - "Shen ", - "Zhung ", - "Ji ", - "Yu ", - "Hou ", - "Feng ", - "La ", - "Yang ", - "Shen ", - "Tu ", - "Yu ", - "Gua ", - "Wen ", - "Huan ", - "Ku ", - "Jia ", - "Yin ", - "Yi ", - "Lu ", - "Sao ", - "Jue ", - "Chi ", - "Xi ", - "Guan ", - "Yi ", - "Wen ", - "Ji ", - "Chuang ", - "Ban ", - "Lei ", - "Liu ", - "Chai ", - "Shou ", - "Nue ", - "Dian ", - "Da ", - "Pie ", - "Tan ", - "Zhang ", - "Biao ", - "Shen ", - "Cu ", - "Luo ", - "Yi ", - "Zong ", - "Chou ", - "Zhang ", - "Zhai ", - "Sou ", - "Suo ", - "Que ", - "Diao ", - "Lou ", - "Lu ", - "Mo ", - "Jin ", - "Yin ", - "Ying ", - "Huang ", - "Fu ", - "Liao ", - "Long ", - "Qiao ", - "Liu ", - "Lao ", - "Xian ", - "Fei ", - "Dan ", - "Yin ", - "He ", - "Yan ", - "Ban ", - "Xian ", - "Guan ", - "Guai ", - "Nong ", - "Yu ", - "Wei ", - "Yi ", - "Yong ", - "Pi ", - "Lei ", - "Li ", - "Shu ", - "Dan ", - "Lin ", - "Dian ", - "Lin ", - "Lai ", - "Pie ", - "Ji ", - "Chi ", - "Yang ", - "Xian ", - "Jie ", - "Zheng ", - "[?] ", - "Li ", - "Huo ", - "Lai ", - "Shaku ", - "Dian ", - "Xian ", - "Ying ", - "Yin ", - "Qu ", - "Yong ", - "Tan ", - "Dian ", - "Luo ", - "Luan ", - "Luan ", - "Bo ", - "[?] ", - "Gui ", - "Po ", - "Fa ", - "Deng ", - "Fa ", - "Bai ", - "Bai ", - "Qie ", - "Bi ", - "Zao ", - "Zao ", - "Mao ", - "De ", - "Pa ", - "Jie ", - "Huang ", - "Gui ", - "Ci ", - "Ling ", - "Gao ", - "Mo ", - "Ji ", - "Jiao ", - "Peng ", - "Gao ", - "Ai ", - "E ", - "Hao ", - "Han ", - "Bi ", - "Wan ", - "Chou ", - "Qian ", - "Xi ", - "Ai ", - "Jiong ", - "Hao ", - "Huang ", - "Hao ", - "Ze ", - "Cui ", - "Hao ", - "Xiao ", - "Ye ", - "Po ", - "Hao ", - "Jiao ", - "Ai ", - "Xing ", - "Huang ", - "Li ", - "Piao ", - "He ", - "Jiao ", - "Pi ", - "Gan ", - "Pao ", - "Zhou ", - "Jun ", - "Qiu ", - "Cun ", - "Que ", - "Zha ", - "Gu ", - "Jun ", - "Jun ", - "Zhou ", - "Zha ", - "Gu ", - "Zhan ", - "Du ", - "Min ", - "Qi ", - "Ying ", - "Yu ", - "Bei ", - "Zhao ", - "Zhong ", - "Pen ", - "He ", - "Ying ", - "He ", - "Yi ", - "Bo ", - "Wan ", - "He ", - "Ang ", - "Zhan ", - "Yan ", - "Jian ", - "He ", - "Yu ", - "Kui ", - "Fan ", - "Gai ", - "Dao ", - "Pan ", - "Fu ", - "Qiu ", - "Sheng ", - "Dao ", - "Lu ", - "Zhan ", - "Meng ", - "Li ", - "Jin ", - "Xu ", - "Jian ", - "Pan ", - "Guan ", - "An ", - "Lu ", - "Shu ", - "Zhou ", - "Dang ", - "An ", - "Gu ", - "Li ", - "Mu ", - "Cheng ", - "Gan ", - "Xu ", - "Mang ", - "Mang ", - "Zhi ", - "Qi ", - "Ruan ", - "Tian ", - "Xiang ", - "Dun ", - "Xin ", - "Xi ", - "Pan ", - "Feng ", - "Dun ", - "Min ", - "Ming ", - "Sheng ", - "Shi ", - "Yun ", - "Mian ", - "Pan ", - "Fang ", - "Miao ", - "Dan ", - "Mei ", - "Mao ", - "Kan ", - "Xian ", - "Ou ", - "Shi ", - "Yang ", - "Zheng ", - "Yao ", - "Shen ", - "Huo ", - "Da ", - "Zhen ", - "Kuang ", - "Ju ", - "Shen ", - "Chi ", - "Sheng ", - "Mei ", - "Mo ", - "Zhu ", - "Zhen ", - "Zhen ", - "Mian ", - "Di ", - "Yuan ", - "Die ", - "Yi ", - "Zi ", - "Zi ", - "Chao ", - "Zha ", - "Xuan ", - "Bing ", - "Mi ", - "Long ", - "Sui ", - "Dong ", - "Mi ", - "Die ", - "Yi ", - "Er ", - "Ming ", - "Xuan ", - "Chi ", - "Kuang ", - "Juan ", - "Mou ", - "Zhen ", - "Tiao ", - "Yang ", - "Yan ", - "Mo ", - "Zhong ", - "Mai ", - "Zhao ", - "Zheng ", - "Mei ", - "Jun ", - "Shao ", - "Han ", - "Huan ", - "Di ", - "Cheng ", - "Cuo ", - "Juan ", - "E ", - "Wan ", - "Xian ", - "Xi ", - "Kun ", - "Lai ", - "Jian ", - "Shan ", - "Tian ", - "Hun ", - "Wan ", - "Ling ", - "Shi ", - "Qiong ", - "Lie ", - "Yai ", - "Jing ", - "Zheng ", - "Li ", - "Lai ", - "Sui ", - "Juan ", - "Shui ", - "Sui ", - "Du ", - "Bi ", - "Bi ", - "Mu ", - "Hun ", - "Ni ", - "Lu ", - "Yi ", - "Jie ", - "Cai ", - "Zhou ", - "Yu ", - "Hun ", - "Ma ", - "Xia ", - "Xing ", - "Xi ", - "Gun ", - "Cai ", - "Chun ", - "Jian ", - "Mei ", - "Du ", - "Hou ", - "Xuan ", - "Ti ", - "Kui ", - "Gao ", - "Rui ", - "Mou ", - "Xu ", - "Fa ", - "Wen ", - "Miao ", - "Chou ", - "Kui ", - "Mi ", - "Weng ", - "Kou ", - "Dang ", - "Chen ", - "Ke ", - "Sou ", - "Xia ", - "Qiong ", - "Mao ", - "Ming ", - "Man ", - "Shui ", - "Ze ", - "Zhang ", - "Yi ", - "Diao ", - "Ou ", - "Mo ", - "Shun ", - "Cong ", - "Lou ", - "Chi ", - "Man ", - "Piao ", - "Cheng ", - "Ji ", - "Meng ", - "[?] ", - "Run ", - "Pie ", - "Xi ", - "Qiao ", - "Pu ", - "Zhu ", - "Deng ", - "Shen ", - "Shun ", - "Liao ", - "Che ", - "Xian ", - "Kan ", - "Ye ", - "Xu ", - "Tong ", - "Mou ", - "Lin ", - "Kui ", - "Xian ", - "Ye ", - "Ai ", - "Hui ", - "Zhan ", - "Jian ", - "Gu ", - "Zhao ", - "Qu ", - "Wei ", - "Chou ", - "Sao ", - "Ning ", - "Xun ", - "Yao ", - "Huo ", - "Meng ", - "Mian ", - "Bin ", - "Mian ", - "Li ", - "Kuang ", - "Jue ", - "Xuan ", - "Mian ", - "Huo ", - "Lu ", - "Meng ", - "Long ", - "Guan ", - "Man ", - "Xi ", - "Chu ", - "Tang ", - "Kan ", - "Zhu ", - "Mao ", - "Jin ", - "Lin ", - "Yu ", - "Shuo ", - "Ce ", - "Jue ", - "Shi ", - "Yi ", - "Shen ", - "Zhi ", - "Hou ", - "Shen ", - "Ying ", - "Ju ", - "Zhou ", - "Jiao ", - "Cuo ", - "Duan ", - "Ai ", - "Jiao ", - "Zeng ", - "Huo ", - "Bai ", - "Shi ", - "Ding ", - "Qi ", - "Ji ", - "Zi ", - "Gan ", - "Wu ", - "Tuo ", - "Ku ", - "Qiang ", - "Xi ", - "Fan ", - "Kuang ", - "Dang ", - "Ma ", - "Sha ", - "Dan ", - "Jue ", - "Li ", - "Fu ", - "Min ", - "Nuo ", - "Huo ", - "Kang ", - "Zhi ", - "Qi ", - "Kan ", - "Jie ", - "Fen ", - "E ", - "Ya ", - "Pi ", - "Zhe ", - "Yan ", - "Sui ", - "Zhuan ", - "Che ", - "Dun ", - "Pan ", - "Yan ", - "[?] ", - "Feng ", - "Fa ", - "Mo ", - "Zha ", - "Qu ", - "Yu ", - "Luo ", - "Tuo ", - "Tuo ", - "Di ", - "Zhai ", - "Zhen ", - "Ai ", - "Fei ", - "Mu ", - "Zhu ", - "Li ", - "Bian ", - "Nu ", - "Ping ", - "Peng ", - "Ling ", - "Pao ", - "Le ", - "Po ", - "Bo ", - "Po ", - "Shen ", - "Za ", - "Nuo ", - "Li ", - "Long ", - "Tong ", - "[?] ", - "Li ", - "Aragane ", - "Chu ", - "Keng ", - "Quan ", - "Zhu ", - "Kuang ", - "Huo ", - "E ", - "Nao ", - "Jia ", - "Lu ", - "Wei ", - "Ai ", - "Luo ", - "Ken ", - "Xing ", - "Yan ", - "Tong ", - "Peng ", - "Xi ", - "[?] ", - "Hong ", - "Shuo ", - "Xia ", - "Qiao ", - "[?] ", - "Wei ", - "Qiao ", - "[?] ", - "Keng ", - "Xiao ", - "Que ", - "Chan ", - "Lang ", - "Hong ", - "Yu ", - "Xiao ", - "Xia ", - "Mang ", - "Long ", - "Iong ", - "Che ", - "Che ", - "E ", - "Liu ", - "Ying ", - "Mang ", - "Que ", - "Yan ", - "Sha ", - "Kun ", - "Yu ", - "[?] ", - "Kaki ", - "Lu ", - "Chen ", - "Jian ", - "Nue ", - "Song ", - "Zhuo ", - "Keng ", - "Peng ", - "Yan ", - "Zhui ", - "Kong ", - "Ceng ", - "Qi ", - "Zong ", - "Qing ", - "Lin ", - "Jun ", - "Bo ", - "Ding ", - "Min ", - "Diao ", - "Jian ", - "He ", - "Lu ", - "Ai ", - "Sui ", - "Que ", - "Ling ", - "Bei ", - "Yin ", - "Dui ", - "Wu ", - "Qi ", - "Lun ", - "Wan ", - "Dian ", - "Gang ", - "Pei ", - "Qi ", - "Chen ", - "Ruan ", - "Yan ", - "Die ", - "Ding ", - "Du ", - "Tuo ", - "Jie ", - "Ying ", - "Bian ", - "Ke ", - "Bi ", - "Wei ", - "Shuo ", - "Zhen ", - "Duan ", - "Xia ", - "Dang ", - "Ti ", - "Nao ", - "Peng ", - "Jian ", - "Di ", - "Tan ", - "Cha ", - "Seki ", - "Qi ", - "[?] ", - "Feng ", - "Xuan ", - "Que ", - "Que ", - "Ma ", - "Gong ", - "Nian ", - "Su ", - "E ", - "Ci ", - "Liu ", - "Si ", - "Tang ", - "Bang ", - "Hua ", - "Pi ", - "Wei ", - "Sang ", - "Lei ", - "Cuo ", - "Zhen ", - "Xia ", - "Qi ", - "Lian ", - "Pan ", - "Wei ", - "Yun ", - "Dui ", - "Zhe ", - "Ke ", - "La ", - "[?] ", - "Qing ", - "Gun ", - "Zhuan ", - "Chan ", - "Qi ", - "Ao ", - "Peng ", - "Lu ", - "Lu ", - "Kan ", - "Qiang ", - "Chen ", - "Yin ", - "Lei ", - "Biao ", - "Qi ", - "Mo ", - "Qi ", - "Cui ", - "Zong ", - "Qing ", - "Chuo ", - "[?] ", - "Ji ", - "Shan ", - "Lao ", - "Qu ", - "Zeng ", - "Deng ", - "Jian ", - "Xi ", - "Lin ", - "Ding ", - "Dian ", - "Huang ", - "Pan ", - "Za ", - "Qiao ", - "Di ", - "Li ", - "Tani ", - "Jiao ", - "[?] ", - "Zhang ", - "Qiao ", - "Dun ", - "Xian ", - "Yu ", - "Zhui ", - "He ", - "Huo ", - "Zhai ", - "Lei ", - "Ke ", - "Chu ", - "Ji ", - "Que ", - "Dang ", - "Yi ", - "Jiang ", - "Pi ", - "Pi ", - "Yu ", - "Pin ", - "Qi ", - "Ai ", - "Kai ", - "Jian ", - "Yu ", - "Ruan ", - "Meng ", - "Pao ", - "Ci ", - "[?] ", - "[?] ", - "Mie ", - "Ca ", - "Xian ", - "Kuang ", - "Lei ", - "Lei ", - "Zhi ", - "Li ", - "Li ", - "Fan ", - "Que ", - "Pao ", - "Ying ", - "Li ", - "Long ", - "Long ", - "Mo ", - "Bo ", - "Shuang ", - "Guan ", - "Lan ", - "Zan ", - "Yan ", - "Shi ", - "Shi ", - "Li ", - "Reng ", - "She ", - "Yue ", - "Si ", - "Qi ", - "Ta ", - "Ma ", - "Xie ", - "Xian ", - "Xian ", - "Zhi ", - "Qi ", - "Zhi ", - "Beng ", - "Dui ", - "Zhong ", - "[?] ", - "Yi ", - "Shi ", - "You ", - "Zhi ", - "Tiao ", - "Fu ", - "Fu ", - "Mi ", - "Zu ", - "Zhi ", - "Suan ", - "Mei ", - "Zuo ", - "Qu ", - "Hu ", - "Zhu ", - "Shen ", - "Sui ", - "Ci ", - "Chai ", - "Mi ", - "Lu ", - "Yu ", - "Xiang ", - "Wu ", - "Tiao ", - "Piao ", - "Zhu ", - "Gui ", - "Xia ", - "Zhi ", - "Ji ", - "Gao ", - "Zhen ", - "Gao ", - "Shui ", - "Jin ", - "Chen ", - "Gai ", - "Kun ", - "Di ", - "Dao ", - "Huo ", - "Tao ", - "Qi ", - "Gu ", - "Guan ", - "Zui ", - "Ling ", - "Lu ", - "Bing ", - "Jin ", - "Dao ", - "Zhi ", - "Lu ", - "Shan ", - "Bei ", - "Zhe ", - "Hui ", - "You ", - "Xi ", - "Yin ", - "Zi ", - "Huo ", - "Zhen ", - "Fu ", - "Yuan ", - "Wu ", - "Xian ", - "Yang ", - "Ti ", - "Yi ", - "Mei ", - "Si ", - "Di ", - "[?] ", - "Zhuo ", - "Zhen ", - "Yong ", - "Ji ", - "Gao ", - "Tang ", - "Si ", - "Ma ", - "Ta ", - "[?] ", - "Xuan ", - "Qi ", - "Yu ", - "Xi ", - "Ji ", - "Si ", - "Chan ", - "Tan ", - "Kuai ", - "Sui ", - "Li ", - "Nong ", - "Ni ", - "Dao ", - "Li ", - "Rang ", - "Yue ", - "Ti ", - "Zan ", - "Lei ", - "Rou ", - "Yu ", - "Yu ", - "Chi ", - "Xie ", - "Qin ", - "He ", - "Tu ", - "Xiu ", - "Si ", - "Ren ", - "Tu ", - "Zi ", - "Cha ", - "Gan ", - "Yi ", - "Xian ", - "Bing ", - "Nian ", - "Qiu ", - "Qiu ", - "Chong ", - "Fen ", - "Hao ", - "Yun ", - "Ke ", - "Miao ", - "Zhi ", - "Geng ", - "Bi ", - "Zhi ", - "Yu ", - "Mi ", - "Ku ", - "Ban ", - "Pi ", - "Ni ", - "Li ", - "You ", - "Zu ", - "Pi ", - "Ba ", - "Ling ", - "Mo ", - "Cheng ", - "Nian ", - "Qin ", - "Yang ", - "Zuo ", - "Zhi ", - "Zhi ", - "Shu ", - "Ju ", - "Zi ", - "Huo ", - "Ji ", - "Cheng ", - "Tong ", - "Zhi ", - "Huo ", - "He ", - "Yin ", - "Zi ", - "Zhi ", - "Jie ", - "Ren ", - "Du ", - "Yi ", - "Zhu ", - "Hui ", - "Nong ", - "Fu ", - "Xi ", - "Kao ", - "Lang ", - "Fu ", - "Ze ", - "Shui ", - "Lu ", - "Kun ", - "Gan ", - "Geng ", - "Ti ", - "Cheng ", - "Tu ", - "Shao ", - "Shui ", - "Ya ", - "Lun ", - "Lu ", - "Gu ", - "Zuo ", - "Ren ", - "Zhun ", - "Bang ", - "Bai ", - "Ji ", - "Zhi ", - "Zhi ", - "Kun ", - "Leng ", - "Peng ", - "Ke ", - "Bing ", - "Chou ", - "Zu ", - "Yu ", - "Su ", - "Lue ", - "[?] ", - "Yi ", - "Xi ", - "Bian ", - "Ji ", - "Fu ", - "Bi ", - "Nuo ", - "Jie ", - "Zhong ", - "Zong ", - "Xu ", - "Cheng ", - "Dao ", - "Wen ", - "Lian ", - "Zi ", - "Yu ", - "Ji ", - "Xu ", - "Zhen ", - "Zhi ", - "Dao ", - "Jia ", - "Ji ", - "Gao ", - "Gao ", - "Gu ", - "Rong ", - "Sui ", - "You ", - "Ji ", - "Kang ", - "Mu ", - "Shan ", - "Men ", - "Zhi ", - "Ji ", - "Lu ", - "Su ", - "Ji ", - "Ying ", - "Wen ", - "Qiu ", - "Se ", - "[?] ", - "Yi ", - "Huang ", - "Qie ", - "Ji ", - "Sui ", - "Xiao ", - "Pu ", - "Jiao ", - "Zhuo ", - "Tong ", - "Sai ", - "Lu ", - "Sui ", - "Nong ", - "Se ", - "Hui ", - "Rang ", - "Nuo ", - "Yu ", - "Bin ", - "Ji ", - "Tui ", - "Wen ", - "Cheng ", - "Huo ", - "Gong ", - "Lu ", - "Biao ", - "[?] ", - "Rang ", - "Zhuo ", - "Li ", - "Zan ", - "Xue ", - "Wa ", - "Jiu ", - "Qiong ", - "Xi ", - "Qiong ", - "Kong ", - "Yu ", - "Sen ", - "Jing ", - "Yao ", - "Chuan ", - "Zhun ", - "Tu ", - "Lao ", - "Qie ", - "Zhai ", - "Yao ", - "Bian ", - "Bao ", - "Yao ", - "Bing ", - "Wa ", - "Zhu ", - "Jiao ", - "Qiao ", - "Diao ", - "Wu ", - "Gui ", - "Yao ", - "Zhi ", - "Chuang ", - "Yao ", - "Tiao ", - "Jiao ", - "Chuang ", - "Jiong ", - "Xiao ", - "Cheng ", - "Kou ", - "Cuan ", - "Wo ", - "Dan ", - "Ku ", - "Ke ", - "Zhui ", - "Xu ", - "Su ", - "Guan ", - "Kui ", - "Dou ", - "[?] ", - "Yin ", - "Wo ", - "Wa ", - "Ya ", - "Yu ", - "Ju ", - "Qiong ", - "Yao ", - "Yao ", - "Tiao ", - "Chao ", - "Yu ", - "Tian ", - "Diao ", - "Ju ", - "Liao ", - "Xi ", - "Wu ", - "Kui ", - "Chuang ", - "Zhao ", - "[?] ", - "Kuan ", - "Long ", - "Cheng ", - "Cui ", - "Piao ", - "Zao ", - "Cuan ", - "Qiao ", - "Qiong ", - "Dou ", - "Zao ", - "Long ", - "Qie ", - "Li ", - "Chu ", - "Shi ", - "Fou ", - "Qian ", - "Chu ", - "Hong ", - "Qi ", - "Qian ", - "Gong ", - "Shi ", - "Shu ", - "Miao ", - "Ju ", - "Zhan ", - "Zhu ", - "Ling ", - "Long ", - "Bing ", - "Jing ", - "Jing ", - "Zhang ", - "Yi ", - "Si ", - "Jun ", - "Hong ", - "Tong ", - "Song ", - "Jing ", - "Diao ", - "Yi ", - "Shu ", - "Jing ", - "Qu ", - "Jie ", - "Ping ", - "Duan ", - "Shao ", - "Zhuan ", - "Ceng ", - "Deng ", - "Cui ", - "Huai ", - "Jing ", - "Kan ", - "Jing ", - "Zhu ", - "Zhu ", - "Le ", - "Peng ", - "Yu ", - "Chi ", - "Gan ", - "Mang ", - "Zhu ", - "Utsubo ", - "Du ", - "Ji ", - "Xiao ", - "Ba ", - "Suan ", - "Ji ", - "Zhen ", - "Zhao ", - "Sun ", - "Ya ", - "Zhui ", - "Yuan ", - "Hu ", - "Gang ", - "Xiao ", - "Cen ", - "Pi ", - "Bi ", - "Jian ", - "Yi ", - "Dong ", - "Shan ", - "Sheng ", - "Xia ", - "Di ", - "Zhu ", - "Na ", - "Chi ", - "Gu ", - "Li ", - "Qie ", - "Min ", - "Bao ", - "Tiao ", - "Si ", - "Fu ", - "Ce ", - "Ben ", - "Pei ", - "Da ", - "Zi ", - "Di ", - "Ling ", - "Ze ", - "Nu ", - "Fu ", - "Gou ", - "Fan ", - "Jia ", - "Ge ", - "Fan ", - "Shi ", - "Mao ", - "Po ", - "Sey ", - "Jian ", - "Qiong ", - "Long ", - "Souke ", - "Bian ", - "Luo ", - "Gui ", - "Qu ", - "Chi ", - "Yin ", - "Yao ", - "Xian ", - "Bi ", - "Qiong ", - "Gua ", - "Deng ", - "Jiao ", - "Jin ", - "Quan ", - "Sun ", - "Ru ", - "Fa ", - "Kuang ", - "Zhu ", - "Tong ", - "Ji ", - "Da ", - "Xing ", - "Ce ", - "Zhong ", - "Kou ", - "Lai ", - "Bi ", - "Shai ", - "Dang ", - "Zheng ", - "Ce ", - "Fu ", - "Yun ", - "Tu ", - "Pa ", - "Li ", - "Lang ", - "Ju ", - "Guan ", - "Jian ", - "Han ", - "Tong ", - "Xia ", - "Zhi ", - "Cheng ", - "Suan ", - "Shi ", - "Zhu ", - "Zuo ", - "Xiao ", - "Shao ", - "Ting ", - "Ce ", - "Yan ", - "Gao ", - "Kuai ", - "Gan ", - "Chou ", - "Kago ", - "Gang ", - "Yun ", - "O ", - "Qian ", - "Xiao ", - "Jian ", - "Pu ", - "Lai ", - "Zou ", - "Bi ", - "Bi ", - "Bi ", - "Ge ", - "Chi ", - "Guai ", - "Yu ", - "Jian ", - "Zhao ", - "Gu ", - "Chi ", - "Zheng ", - "Jing ", - "Sha ", - "Zhou ", - "Lu ", - "Bo ", - "Ji ", - "Lin ", - "Suan ", - "Jun ", - "Fu ", - "Zha ", - "Gu ", - "Kong ", - "Qian ", - "Quan ", - "Jun ", - "Chui ", - "Guan ", - "Yuan ", - "Ce ", - "Ju ", - "Bo ", - "Ze ", - "Qie ", - "Tuo ", - "Luo ", - "Dan ", - "Xiao ", - "Ruo ", - "Jian ", - "Xuan ", - "Bian ", - "Sun ", - "Xiang ", - "Xian ", - "Ping ", - "Zhen ", - "Sheng ", - "Hu ", - "Shi ", - "Zhu ", - "Yue ", - "Chun ", - "Lu ", - "Wu ", - "Dong ", - "Xiao ", - "Ji ", - "Jie ", - "Huang ", - "Xing ", - "Mei ", - "Fan ", - "Chui ", - "Zhuan ", - "Pian ", - "Feng ", - "Zhu ", - "Hong ", - "Qie ", - "Hou ", - "Qiu ", - "Miao ", - "Qian ", - "[?] ", - "Kui ", - "Sik ", - "Lou ", - "Yun ", - "He ", - "Tang ", - "Yue ", - "Chou ", - "Gao ", - "Fei ", - "Ruo ", - "Zheng ", - "Gou ", - "Nie ", - "Qian ", - "Xiao ", - "Cuan ", - "Gong ", - "Pang ", - "Du ", - "Li ", - "Bi ", - "Zhuo ", - "Chu ", - "Shai ", - "Chi ", - "Zhu ", - "Qiang ", - "Long ", - "Lan ", - "Jian ", - "Bu ", - "Li ", - "Hui ", - "Bi ", - "Di ", - "Cong ", - "Yan ", - "Peng ", - "Sen ", - "Zhuan ", - "Pai ", - "Piao ", - "Dou ", - "Yu ", - "Mie ", - "Zhuan ", - "Ze ", - "Xi ", - "Guo ", - "Yi ", - "Hu ", - "Chan ", - "Kou ", - "Cu ", - "Ping ", - "Chou ", - "Ji ", - "Gui ", - "Su ", - "Lou ", - "Zha ", - "Lu ", - "Nian ", - "Suo ", - "Cuan ", - "Sasara ", - "Suo ", - "Le ", - "Duan ", - "Yana ", - "Xiao ", - "Bo ", - "Mi ", - "Si ", - "Dang ", - "Liao ", - "Dan ", - "Dian ", - "Fu ", - "Jian ", - "Min ", - "Kui ", - "Dai ", - "Qiao ", - "Deng ", - "Huang ", - "Sun ", - "Lao ", - "Zan ", - "Xiao ", - "Du ", - "Shi ", - "Zan ", - "[?] ", - "Pai ", - "Hata ", - "Pai ", - "Gan ", - "Ju ", - "Du ", - "Lu ", - "Yan ", - "Bo ", - "Dang ", - "Sai ", - "Ke ", - "Long ", - "Qian ", - "Lian ", - "Bo ", - "Zhou ", - "Lai ", - "[?] ", - "Lan ", - "Kui ", - "Yu ", - "Yue ", - "Hao ", - "Zhen ", - "Tai ", - "Ti ", - "Mi ", - "Chou ", - "Ji ", - "[?] ", - "Hata ", - "Teng ", - "Zhuan ", - "Zhou ", - "Fan ", - "Sou ", - "Zhou ", - "Kuji ", - "Zhuo ", - "Teng ", - "Lu ", - "Lu ", - "Jian ", - "Tuo ", - "Ying ", - "Yu ", - "Lai ", - "Long ", - "Shinshi ", - "Lian ", - "Lan ", - "Qian ", - "Yue ", - "Zhong ", - "Qu ", - "Lian ", - "Bian ", - "Duan ", - "Zuan ", - "Li ", - "Si ", - "Luo ", - "Ying ", - "Yue ", - "Zhuo ", - "Xu ", - "Mi ", - "Di ", - "Fan ", - "Shen ", - "Zhe ", - "Shen ", - "Nu ", - "Xie ", - "Lei ", - "Xian ", - "Zi ", - "Ni ", - "Cun ", - "[?] ", - "Qian ", - "Kume ", - "Bi ", - "Ban ", - "Wu ", - "Sha ", - "Kang ", - "Rou ", - "Fen ", - "Bi ", - "Cui ", - "[?] ", - "Li ", - "Chi ", - "Nukamiso ", - "Ro ", - "Ba ", - "Li ", - "Gan ", - "Ju ", - "Po ", - "Mo ", - "Cu ", - "Nian ", - "Zhou ", - "Li ", - "Su ", - "Tiao ", - "Li ", - "Qi ", - "Su ", - "Hong ", - "Tong ", - "Zi ", - "Ce ", - "Yue ", - "Zhou ", - "Lin ", - "Zhuang ", - "Bai ", - "[?] ", - "Fen ", - "Ji ", - "[?] ", - "Sukumo ", - "Liang ", - "Xian ", - "Fu ", - "Liang ", - "Can ", - "Geng ", - "Li ", - "Yue ", - "Lu ", - "Ju ", - "Qi ", - "Cui ", - "Bai ", - "Zhang ", - "Lin ", - "Zong ", - "Jing ", - "Guo ", - "Kouji ", - "San ", - "San ", - "Tang ", - "Bian ", - "Rou ", - "Mian ", - "Hou ", - "Xu ", - "Zong ", - "Hu ", - "Jian ", - "Zan ", - "Ci ", - "Li ", - "Xie ", - "Fu ", - "Ni ", - "Bei ", - "Gu ", - "Xiu ", - "Gao ", - "Tang ", - "Qiu ", - "Sukumo ", - "Cao ", - "Zhuang ", - "Tang ", - "Mi ", - "San ", - "Fen ", - "Zao ", - "Kang ", - "Jiang ", - "Mo ", - "San ", - "San ", - "Nuo ", - "Xi ", - "Liang ", - "Jiang ", - "Kuai ", - "Bo ", - "Huan ", - "[?] ", - "Zong ", - "Xian ", - "Nuo ", - "Tuan ", - "Nie ", - "Li ", - "Zuo ", - "Di ", - "Nie ", - "Tiao ", - "Lan ", - "Mi ", - "Jiao ", - "Jiu ", - "Xi ", - "Gong ", - "Zheng ", - "Jiu ", - "You ", - "Ji ", - "Cha ", - "Zhou ", - "Xun ", - "Yue ", - "Hong ", - "Yu ", - "He ", - "Wan ", - "Ren ", - "Wen ", - "Wen ", - "Qiu ", - "Na ", - "Zi ", - "Tou ", - "Niu ", - "Fou ", - "Jie ", - "Shu ", - "Chun ", - "Pi ", - "Yin ", - "Sha ", - "Hong ", - "Zhi ", - "Ji ", - "Fen ", - "Yun ", - "Ren ", - "Dan ", - "Jin ", - "Su ", - "Fang ", - "Suo ", - "Cui ", - "Jiu ", - "Zha ", - "Kinu ", - "Jin ", - "Fu ", - "Zhi ", - "Ci ", - "Zi ", - "Chou ", - "Hong ", - "Zha ", - "Lei ", - "Xi ", - "Fu ", - "Xie ", - "Shen ", - "Bei ", - "Zhu ", - "Qu ", - "Ling ", - "Zhu ", - "Shao ", - "Gan ", - "Yang ", - "Fu ", - "Tuo ", - "Zhen ", - "Dai ", - "Zhuo ", - "Shi ", - "Zhong ", - "Xian ", - "Zu ", - "Jiong ", - "Ban ", - "Ju ", - "Mo ", - "Shu ", - "Zui ", - "Wata ", - "Jing ", - "Ren ", - "Heng ", - "Xie ", - "Jie ", - "Zhu ", - "Chou ", - "Gua ", - "Bai ", - "Jue ", - "Kuang ", - "Hu ", - "Ci ", - "Geng ", - "Geng ", - "Tao ", - "Xie ", - "Ku ", - "Jiao ", - "Quan ", - "Gai ", - "Luo ", - "Xuan ", - "Bing ", - "Xian ", - "Fu ", - "Gei ", - "Tong ", - "Rong ", - "Tiao ", - "Yin ", - "Lei ", - "Xie ", - "Quan ", - "Xu ", - "Lun ", - "Die ", - "Tong ", - "Si ", - "Jiang ", - "Xiang ", - "Hui ", - "Jue ", - "Zhi ", - "Jian ", - "Juan ", - "Chi ", - "Mian ", - "Zhen ", - "Lu ", - "Cheng ", - "Qiu ", - "Shu ", - "Bang ", - "Tong ", - "Xiao ", - "Wan ", - "Qin ", - "Geng ", - "Xiu ", - "Ti ", - "Xiu ", - "Xie ", - "Hong ", - "Xi ", - "Fu ", - "Ting ", - "Sui ", - "Dui ", - "Kun ", - "Fu ", - "Jing ", - "Hu ", - "Zhi ", - "Yan ", - "Jiong ", - "Feng ", - "Ji ", - "Sok ", - "Kase ", - "Zong ", - "Lin ", - "Duo ", - "Li ", - "Lu ", - "Liang ", - "Chou ", - "Quan ", - "Shao ", - "Qi ", - "Qi ", - "Zhun ", - "Qi ", - "Wan ", - "Qian ", - "Xian ", - "Shou ", - "Wei ", - "Qi ", - "Tao ", - "Wan ", - "Gang ", - "Wang ", - "Beng ", - "Zhui ", - "Cai ", - "Guo ", - "Cui ", - "Lun ", - "Liu ", - "Qi ", - "Zhan ", - "Bei ", - "Chuo ", - "Ling ", - "Mian ", - "Qi ", - "Qie ", - "Tan ", - "Zong ", - "Gun ", - "Zou ", - "Yi ", - "Zi ", - "Xing ", - "Liang ", - "Jin ", - "Fei ", - "Rui ", - "Min ", - "Yu ", - "Zong ", - "Fan ", - "Lu ", - "Xu ", - "Yingl ", - "Zhang ", - "Kasuri ", - "Xu ", - "Xiang ", - "Jian ", - "Ke ", - "Xian ", - "Ruan ", - "Mian ", - "Qi ", - "Duan ", - "Zhong ", - "Di ", - "Min ", - "Miao ", - "Yuan ", - "Xie ", - "Bao ", - "Si ", - "Qiu ", - "Bian ", - "Huan ", - "Geng ", - "Cong ", - "Mian ", - "Wei ", - "Fu ", - "Wei ", - "Yu ", - "Gou ", - "Miao ", - "Xie ", - "Lian ", - "Zong ", - "Bian ", - "Yun ", - "Yin ", - "Ti ", - "Gua ", - "Zhi ", - "Yun ", - "Cheng ", - "Chan ", - "Dai ", - "Xia ", - "Yuan ", - "Zong ", - "Xu ", - "Nawa ", - "Odoshi ", - "Geng ", - "Sen ", - "Ying ", - "Jin ", - "Yi ", - "Zhui ", - "Ni ", - "Bang ", - "Gu ", - "Pan ", - "Zhou ", - "Jian ", - "Cuo ", - "Quan ", - "Shuang ", - "Yun ", - "Xia ", - "Shuai ", - "Xi ", - "Rong ", - "Tao ", - "Fu ", - "Yun ", - "Zhen ", - "Gao ", - "Ru ", - "Hu ", - "Zai ", - "Teng ", - "Xian ", - "Su ", - "Zhen ", - "Zong ", - "Tao ", - "Horo ", - "Cai ", - "Bi ", - "Feng ", - "Cu ", - "Li ", - "Suo ", - "Yin ", - "Xi ", - "Zong ", - "Lei ", - "Zhuan ", - "Qian ", - "Man ", - "Zhi ", - "Lu ", - "Mo ", - "Piao ", - "Lian ", - "Mi ", - "Xuan ", - "Zong ", - "Ji ", - "Shan ", - "Sui ", - "Fan ", - "Shuai ", - "Beng ", - "Yi ", - "Sao ", - "Mou ", - "Zhou ", - "Qiang ", - "Hun ", - "Sem ", - "Xi ", - "Jung ", - "Xiu ", - "Ran ", - "Xuan ", - "Hui ", - "Qiao ", - "Zeng ", - "Zuo ", - "Zhi ", - "Shan ", - "San ", - "Lin ", - "Yu ", - "Fan ", - "Liao ", - "Chuo ", - "Zun ", - "Jian ", - "Rao ", - "Chan ", - "Rui ", - "Xiu ", - "Hui ", - "Hua ", - "Zuan ", - "Xi ", - "Qiang ", - "Un ", - "Da ", - "Sheng ", - "Hui ", - "Xi ", - "Se ", - "Jian ", - "Jiang ", - "Huan ", - "Zao ", - "Cong ", - "Jie ", - "Jiao ", - "Bo ", - "Chan ", - "Yi ", - "Nao ", - "Sui ", - "Yi ", - "Shai ", - "Xu ", - "Ji ", - "Bin ", - "Qian ", - "Lan ", - "Pu ", - "Xun ", - "Zuan ", - "Qi ", - "Peng ", - "Li ", - "Mo ", - "Lei ", - "Xie ", - "Zuan ", - "Kuang ", - "You ", - "Xu ", - "Lei ", - "Xian ", - "Chan ", - "Kou ", - "Lu ", - "Chan ", - "Ying ", - "Cai ", - "Xiang ", - "Xian ", - "Zui ", - "Zuan ", - "Luo ", - "Xi ", - "Dao ", - "Lan ", - "Lei ", - "Lian ", - "Si ", - "Jiu ", - "Yu ", - "Hong ", - "Zhou ", - "Xian ", - "He ", - "Yue ", - "Ji ", - "Wan ", - "Kuang ", - "Ji ", - "Ren ", - "Wei ", - "Yun ", - "Hong ", - "Chun ", - "Pi ", - "Sha ", - "Gang ", - "Na ", - "Ren ", - "Zong ", - "Lun ", - "Fen ", - "Zhi ", - "Wen ", - "Fang ", - "Zhu ", - "Yin ", - "Niu ", - "Shu ", - "Xian ", - "Gan ", - "Xie ", - "Fu ", - "Lian ", - "Zu ", - "Shen ", - "Xi ", - "Zhi ", - "Zhong ", - "Zhou ", - "Ban ", - "Fu ", - "Zhuo ", - "Shao ", - "Yi ", - "Jing ", - "Dai ", - "Bang ", - "Rong ", - "Jie ", - "Ku ", - "Rao ", - "Die ", - "Heng ", - "Hui ", - "Gei ", - "Xuan ", - "Jiang ", - "Luo ", - "Jue ", - "Jiao ", - "Tong ", - "Geng ", - "Xiao ", - "Juan ", - "Xiu ", - "Xi ", - "Sui ", - "Tao ", - "Ji ", - "Ti ", - "Ji ", - "Xu ", - "Ling ", - "[?] ", - "Xu ", - "Qi ", - "Fei ", - "Chuo ", - "Zhang ", - "Gun ", - "Sheng ", - "Wei ", - "Mian ", - "Shou ", - "Beng ", - "Chou ", - "Tao ", - "Liu ", - "Quan ", - "Zong ", - "Zhan ", - "Wan ", - "Lu ", - "Zhui ", - "Zi ", - "Ke ", - "Xiang ", - "Jian ", - "Mian ", - "Lan ", - "Ti ", - "Miao ", - "Qi ", - "Yun ", - "Hui ", - "Si ", - "Duo ", - "Duan ", - "Bian ", - "Xian ", - "Gou ", - "Zhui ", - "Huan ", - "Di ", - "Lu ", - "Bian ", - "Min ", - "Yuan ", - "Jin ", - "Fu ", - "Ru ", - "Zhen ", - "Feng ", - "Shuai ", - "Gao ", - "Chan ", - "Li ", - "Yi ", - "Jian ", - "Bin ", - "Piao ", - "Man ", - "Lei ", - "Ying ", - "Suo ", - "Mou ", - "Sao ", - "Xie ", - "Liao ", - "Shan ", - "Zeng ", - "Jiang ", - "Qian ", - "Zao ", - "Huan ", - "Jiao ", - "Zuan ", - "Fou ", - "Xie ", - "Gang ", - "Fou ", - "Que ", - "Fou ", - "Kaakeru ", - "Bo ", - "Ping ", - "Hou ", - "[?] ", - "Gang ", - "Ying ", - "Ying ", - "Qing ", - "Xia ", - "Guan ", - "Zun ", - "Tan ", - "Chang ", - "Qi ", - "Weng ", - "Ying ", - "Lei ", - "Tan ", - "Lu ", - "Guan ", - "Wang ", - "Wang ", - "Gang ", - "Wang ", - "Han ", - "[?] ", - "Luo ", - "Fu ", - "Mi ", - "Fa ", - "Gu ", - "Zhu ", - "Ju ", - "Mao ", - "Gu ", - "Min ", - "Gang ", - "Ba ", - "Gua ", - "Ti ", - "Juan ", - "Fu ", - "Lin ", - "Yan ", - "Zhao ", - "Zui ", - "Gua ", - "Zhuo ", - "Yu ", - "Zhi ", - "An ", - "Fa ", - "Nan ", - "Shu ", - "Si ", - "Pi ", - "Ma ", - "Liu ", - "Ba ", - "Fa ", - "Li ", - "Chao ", - "Wei ", - "Bi ", - "Ji ", - "Zeng ", - "Tong ", - "Liu ", - "Ji ", - "Juan ", - "Mi ", - "Zhao ", - "Luo ", - "Pi ", - "Ji ", - "Ji ", - "Luan ", - "Yang ", - "Mie ", - "Qiang ", - "Ta ", - "Mei ", - "Yang ", - "You ", - "You ", - "Fen ", - "Ba ", - "Gao ", - "Yang ", - "Gu ", - "Qiang ", - "Zang ", - "Gao ", - "Ling ", - "Yi ", - "Zhu ", - "Di ", - "Xiu ", - "Qian ", - "Yi ", - "Xian ", - "Rong ", - "Qun ", - "Qun ", - "Qian ", - "Huan ", - "Zui ", - "Xian ", - "Yi ", - "Yashinau ", - "Qiang ", - "Xian ", - "Yu ", - "Geng ", - "Jie ", - "Tang ", - "Yuan ", - "Xi ", - "Fan ", - "Shan ", - "Fen ", - "Shan ", - "Lian ", - "Lei ", - "Geng ", - "Nou ", - "Qiang ", - "Chan ", - "Yu ", - "Gong ", - "Yi ", - "Chong ", - "Weng ", - "Fen ", - "Hong ", - "Chi ", - "Chi ", - "Cui ", - "Fu ", - "Xia ", - "Pen ", - "Yi ", - "La ", - "Yi ", - "Pi ", - "Ling ", - "Liu ", - "Zhi ", - "Qu ", - "Xi ", - "Xie ", - "Xiang ", - "Xi ", - "Xi ", - "Qi ", - "Qiao ", - "Hui ", - "Hui ", - "Xiao ", - "Se ", - "Hong ", - "Jiang ", - "Di ", - "Cui ", - "Fei ", - "Tao ", - "Sha ", - "Chi ", - "Zhu ", - "Jian ", - "Xuan ", - "Shi ", - "Pian ", - "Zong ", - "Wan ", - "Hui ", - "Hou ", - "He ", - "He ", - "Han ", - "Ao ", - "Piao ", - "Yi ", - "Lian ", - "Qu ", - "[?] ", - "Lin ", - "Pen ", - "Qiao ", - "Ao ", - "Fan ", - "Yi ", - "Hui ", - "Xuan ", - "Dao ", - "Yao ", - "Lao ", - "[?] ", - "Kao ", - "Mao ", - "Zhe ", - "Qi ", - "Gou ", - "Gou ", - "Gou ", - "Die ", - "Die ", - "Er ", - "Shua ", - "Ruan ", - "Er ", - "Nai ", - "Zhuan ", - "Lei ", - "Ting ", - "Zi ", - "Geng ", - "Chao ", - "Hao ", - "Yun ", - "Pa ", - "Pi ", - "Chi ", - "Si ", - "Chu ", - "Jia ", - "Ju ", - "He ", - "Chu ", - "Lao ", - "Lun ", - "Ji ", - "Tang ", - "Ou ", - "Lou ", - "Nou ", - "Gou ", - "Pang ", - "Ze ", - "Lou ", - "Ji ", - "Lao ", - "Huo ", - "You ", - "Mo ", - "Huai ", - "Er ", - "Zhe ", - "Ting ", - "Ye ", - "Da ", - "Song ", - "Qin ", - "Yun ", - "Chi ", - "Dan ", - "Dan ", - "Hong ", - "Geng ", - "Zhi ", - "[?] ", - "Nie ", - "Dan ", - "Zhen ", - "Che ", - "Ling ", - "Zheng ", - "You ", - "Wa ", - "Liao ", - "Long ", - "Zhi ", - "Ning ", - "Tiao ", - "Er ", - "Ya ", - "Die ", - "Gua ", - "[?] ", - "Lian ", - "Hao ", - "Sheng ", - "Lie ", - "Pin ", - "Jing ", - "Ju ", - "Bi ", - "Di ", - "Guo ", - "Wen ", - "Xu ", - "Ping ", - "Cong ", - "Shikato ", - "[?] ", - "Ting ", - "Yu ", - "Cong ", - "Kui ", - "Tsuraneru ", - "Kui ", - "Cong ", - "Lian ", - "Weng ", - "Kui ", - "Lian ", - "Lian ", - "Cong ", - "Ao ", - "Sheng ", - "Song ", - "Ting ", - "Kui ", - "Nie ", - "Zhi ", - "Dan ", - "Ning ", - "Qie ", - "Ji ", - "Ting ", - "Ting ", - "Long ", - "Yu ", - "Yu ", - "Zhao ", - "Si ", - "Su ", - "Yi ", - "Su ", - "Si ", - "Zhao ", - "Zhao ", - "Rou ", - "Yi ", - "Le ", - "Ji ", - "Qiu ", - "Ken ", - "Cao ", - "Ge ", - "Di ", - "Huan ", - "Huang ", - "Yi ", - "Ren ", - "Xiao ", - "Ru ", - "Zhou ", - "Yuan ", - "Du ", - "Gang ", - "Rong ", - "Gan ", - "Cha ", - "Wo ", - "Chang ", - "Gu ", - "Zhi ", - "Han ", - "Fu ", - "Fei ", - "Fen ", - "Pei ", - "Pang ", - "Jian ", - "Fang ", - "Zhun ", - "You ", - "Na ", - "Hang ", - "Ken ", - "Ran ", - "Gong ", - "Yu ", - "Wen ", - "Yao ", - "Jin ", - "Pi ", - "Qian ", - "Xi ", - "Xi ", - "Fei ", - "Ken ", - "Jing ", - "Tai ", - "Shen ", - "Zhong ", - "Zhang ", - "Xie ", - "Shen ", - "Wei ", - "Zhou ", - "Die ", - "Dan ", - "Fei ", - "Ba ", - "Bo ", - "Qu ", - "Tian ", - "Bei ", - "Gua ", - "Tai ", - "Zi ", - "Ku ", - "Zhi ", - "Ni ", - "Ping ", - "Zi ", - "Fu ", - "Pang ", - "Zhen ", - "Xian ", - "Zuo ", - "Pei ", - "Jia ", - "Sheng ", - "Zhi ", - "Bao ", - "Mu ", - "Qu ", - "Hu ", - "Ke ", - "Yi ", - "Yin ", - "Xu ", - "Yang ", - "Long ", - "Dong ", - "Ka ", - "Lu ", - "Jing ", - "Nu ", - "Yan ", - "Pang ", - "Kua ", - "Yi ", - "Guang ", - "Gai ", - "Ge ", - "Dong ", - "Zhi ", - "Xiao ", - "Xiong ", - "Xiong ", - "Er ", - "E ", - "Xing ", - "Pian ", - "Neng ", - "Zi ", - "Gui ", - "Cheng ", - "Tiao ", - "Zhi ", - "Cui ", - "Mei ", - "Xie ", - "Cui ", - "Xie ", - "Mo ", - "Mai ", - "Ji ", - "Obiyaakasu ", - "[?] ", - "Kuai ", - "Sa ", - "Zang ", - "Qi ", - "Nao ", - "Mi ", - "Nong ", - "Luan ", - "Wan ", - "Bo ", - "Wen ", - "Guan ", - "Qiu ", - "Jiao ", - "Jing ", - "Rou ", - "Heng ", - "Cuo ", - "Lie ", - "Shan ", - "Ting ", - "Mei ", - "Chun ", - "Shen ", - "Xie ", - "De ", - "Zui ", - "Cu ", - "Xiu ", - "Xin ", - "Tuo ", - "Pao ", - "Cheng ", - "Nei ", - "Fu ", - "Dou ", - "Tuo ", - "Niao ", - "Noy ", - "Pi ", - "Gu ", - "Gua ", - "Li ", - "Lian ", - "Zhang ", - "Cui ", - "Jie ", - "Liang ", - "Zhou ", - "Pi ", - "Biao ", - "Lun ", - "Pian ", - "Guo ", - "Kui ", - "Chui ", - "Dan ", - "Tian ", - "Nei ", - "Jing ", - "Jie ", - "La ", - "Yi ", - "An ", - "Ren ", - "Shen ", - "Chuo ", - "Fu ", - "Fu ", - "Ju ", - "Fei ", - "Qiang ", - "Wan ", - "Dong ", - "Pi ", - "Guo ", - "Zong ", - "Ding ", - "Wu ", - "Mei ", - "Ruan ", - "Zhuan ", - "Zhi ", - "Cou ", - "Gua ", - "Ou ", - "Di ", - "An ", - "Xing ", - "Nao ", - "Yu ", - "Chuan ", - "Nan ", - "Yun ", - "Zhong ", - "Rou ", - "E ", - "Sai ", - "Tu ", - "Yao ", - "Jian ", - "Wei ", - "Jiao ", - "Yu ", - "Jia ", - "Duan ", - "Bi ", - "Chang ", - "Fu ", - "Xian ", - "Ni ", - "Mian ", - "Wa ", - "Teng ", - "Tui ", - "Bang ", - "Qian ", - "Lu ", - "Wa ", - "Sou ", - "Tang ", - "Su ", - "Zhui ", - "Ge ", - "Yi ", - "Bo ", - "Liao ", - "Ji ", - "Pi ", - "Xie ", - "Gao ", - "Lu ", - "Bin ", - "Ou ", - "Chang ", - "Lu ", - "Guo ", - "Pang ", - "Chuai ", - "Piao ", - "Jiang ", - "Fu ", - "Tang ", - "Mo ", - "Xi ", - "Zhuan ", - "Lu ", - "Jiao ", - "Ying ", - "Lu ", - "Zhi ", - "Tara ", - "Chun ", - "Lian ", - "Tong ", - "Peng ", - "Ni ", - "Zha ", - "Liao ", - "Cui ", - "Gui ", - "Xiao ", - "Teng ", - "Fan ", - "Zhi ", - "Jiao ", - "Shan ", - "Wu ", - "Cui ", - "Run ", - "Xiang ", - "Sui ", - "Fen ", - "Ying ", - "Tan ", - "Zhua ", - "Dan ", - "Kuai ", - "Nong ", - "Tun ", - "Lian ", - "Bi ", - "Yong ", - "Jue ", - "Chu ", - "Yi ", - "Juan ", - "La ", - "Lian ", - "Sao ", - "Tun ", - "Gu ", - "Qi ", - "Cui ", - "Bin ", - "Xun ", - "Ru ", - "Huo ", - "Zang ", - "Xian ", - "Biao ", - "Xing ", - "Kuan ", - "La ", - "Yan ", - "Lu ", - "Huo ", - "Zang ", - "Luo ", - "Qu ", - "Zang ", - "Luan ", - "Ni ", - "Zang ", - "Chen ", - "Qian ", - "Wo ", - "Guang ", - "Zang ", - "Lin ", - "Guang ", - "Zi ", - "Jiao ", - "Nie ", - "Chou ", - "Ji ", - "Gao ", - "Chou ", - "Mian ", - "Nie ", - "Zhi ", - "Zhi ", - "Ge ", - "Jian ", - "Die ", - "Zhi ", - "Xiu ", - "Tai ", - "Zhen ", - "Jiu ", - "Xian ", - "Yu ", - "Cha ", - "Yao ", - "Yu ", - "Chong ", - "Xi ", - "Xi ", - "Jiu ", - "Yu ", - "Yu ", - "Xing ", - "Ju ", - "Jiu ", - "Xin ", - "She ", - "She ", - "Yadoru ", - "Jiu ", - "Shi ", - "Tan ", - "Shu ", - "Shi ", - "Tian ", - "Dan ", - "Pu ", - "Pu ", - "Guan ", - "Hua ", - "Tan ", - "Chuan ", - "Shun ", - "Xia ", - "Wu ", - "Zhou ", - "Dao ", - "Gang ", - "Shan ", - "Yi ", - "[?] ", - "Pa ", - "Tai ", - "Fan ", - "Ban ", - "Chuan ", - "Hang ", - "Fang ", - "Ban ", - "Que ", - "Hesaki ", - "Zhong ", - "Jian ", - "Cang ", - "Ling ", - "Zhu ", - "Ze ", - "Duo ", - "Bo ", - "Xian ", - "Ge ", - "Chuan ", - "Jia ", - "Lu ", - "Hong ", - "Pang ", - "Xi ", - "[?] ", - "Fu ", - "Zao ", - "Feng ", - "Li ", - "Shao ", - "Yu ", - "Lang ", - "Ting ", - "[?] ", - "Wei ", - "Bo ", - "Meng ", - "Nian ", - "Ju ", - "Huang ", - "Shou ", - "Zong ", - "Bian ", - "Mao ", - "Die ", - "[?] ", - "Bang ", - "Cha ", - "Yi ", - "Sao ", - "Cang ", - "Cao ", - "Lou ", - "Dai ", - "Sori ", - "Yao ", - "Tong ", - "Yofune ", - "Dang ", - "Tan ", - "Lu ", - "Yi ", - "Jie ", - "Jian ", - "Huo ", - "Meng ", - "Qi ", - "Lu ", - "Lu ", - "Chan ", - "Shuang ", - "Gen ", - "Liang ", - "Jian ", - "Jian ", - "Se ", - "Yan ", - "Fu ", - "Ping ", - "Yan ", - "Yan ", - "Cao ", - "Cao ", - "Yi ", - "Le ", - "Ting ", - "Qiu ", - "Ai ", - "Nai ", - "Tiao ", - "Jiao ", - "Jie ", - "Peng ", - "Wan ", - "Yi ", - "Chai ", - "Mian ", - "Mie ", - "Gan ", - "Qian ", - "Yu ", - "Yu ", - "Shuo ", - "Qiong ", - "Tu ", - "Xia ", - "Qi ", - "Mang ", - "Zi ", - "Hui ", - "Sui ", - "Zhi ", - "Xiang ", - "Bi ", - "Fu ", - "Tun ", - "Wei ", - "Wu ", - "Zhi ", - "Qi ", - "Shan ", - "Wen ", - "Qian ", - "Ren ", - "Fou ", - "Kou ", - "Jie ", - "Lu ", - "Xu ", - "Ji ", - "Qin ", - "Qi ", - "Yuan ", - "Fen ", - "Ba ", - "Rui ", - "Xin ", - "Ji ", - "Hua ", - "Hua ", - "Fang ", - "Wu ", - "Jue ", - "Gou ", - "Zhi ", - "Yun ", - "Qin ", - "Ao ", - "Chu ", - "Mao ", - "Ya ", - "Fei ", - "Reng ", - "Hang ", - "Cong ", - "Yin ", - "You ", - "Bian ", - "Yi ", - "Susa ", - "Wei ", - "Li ", - "Pi ", - "E ", - "Xian ", - "Chang ", - "Cang ", - "Meng ", - "Su ", - "Yi ", - "Yuan ", - "Ran ", - "Ling ", - "Tai ", - "Tiao ", - "Di ", - "Miao ", - "Qiong ", - "Li ", - "Yong ", - "Ke ", - "Mu ", - "Pei ", - "Bao ", - "Gou ", - "Min ", - "Yi ", - "Yi ", - "Ju ", - "Pi ", - "Ruo ", - "Ku ", - "Zhu ", - "Ni ", - "Bo ", - "Bing ", - "Shan ", - "Qiu ", - "Yao ", - "Xian ", - "Ben ", - "Hong ", - "Ying ", - "Zha ", - "Dong ", - "Ju ", - "Die ", - "Nie ", - "Gan ", - "Hu ", - "Ping ", - "Mei ", - "Fu ", - "Sheng ", - "Gu ", - "Bi ", - "Wei ", - "Fu ", - "Zhuo ", - "Mao ", - "Fan ", - "Qie ", - "Mao ", - "Mao ", - "Ba ", - "Zi ", - "Mo ", - "Zi ", - "Di ", - "Chi ", - "Ji ", - "Jing ", - "Long ", - "[?] ", - "Niao ", - "[?] ", - "Xue ", - "Ying ", - "Qiong ", - "Ge ", - "Ming ", - "Li ", - "Rong ", - "Yin ", - "Gen ", - "Qian ", - "Chai ", - "Chen ", - "Yu ", - "Xiu ", - "Zi ", - "Lie ", - "Wu ", - "Ji ", - "Kui ", - "Ce ", - "Chong ", - "Ci ", - "Gou ", - "Guang ", - "Mang ", - "Chi ", - "Jiao ", - "Jiao ", - "Fu ", - "Yu ", - "Zhu ", - "Zi ", - "Jiang ", - "Hui ", - "Yin ", - "Cha ", - "Fa ", - "Rong ", - "Ru ", - "Chong ", - "Mang ", - "Tong ", - "Zhong ", - "[?] ", - "Zhu ", - "Xun ", - "Huan ", - "Kua ", - "Quan ", - "Gai ", - "Da ", - "Jing ", - "Xing ", - "Quan ", - "Cao ", - "Jing ", - "Er ", - "An ", - "Shou ", - "Chi ", - "Ren ", - "Jian ", - "Ti ", - "Huang ", - "Ping ", - "Li ", - "Jin ", - "Lao ", - "Shu ", - "Zhuang ", - "Da ", - "Jia ", - "Rao ", - "Bi ", - "Ze ", - "Qiao ", - "Hui ", - "Qi ", - "Dang ", - "[?] ", - "Rong ", - "Hun ", - "Ying ", - "Luo ", - "Ying ", - "Xun ", - "Jin ", - "Sun ", - "Yin ", - "Mai ", - "Hong ", - "Zhou ", - "Yao ", - "Du ", - "Wei ", - "Chu ", - "Dou ", - "Fu ", - "Ren ", - "Yin ", - "He ", - "Bi ", - "Bu ", - "Yun ", - "Di ", - "Tu ", - "Sui ", - "Sui ", - "Cheng ", - "Chen ", - "Wu ", - "Bie ", - "Xi ", - "Geng ", - "Li ", - "Fu ", - "Zhu ", - "Mo ", - "Li ", - "Zhuang ", - "Ji ", - "Duo ", - "Qiu ", - "Sha ", - "Suo ", - "Chen ", - "Feng ", - "Ju ", - "Mei ", - "Meng ", - "Xing ", - "Jing ", - "Che ", - "Xin ", - "Jun ", - "Yan ", - "Ting ", - "Diao ", - "Cuo ", - "Wan ", - "Han ", - "You ", - "Cuo ", - "Jia ", - "Wang ", - "You ", - "Niu ", - "Shao ", - "Xian ", - "Lang ", - "Fu ", - "E ", - "Mo ", - "Wen ", - "Jie ", - "Nan ", - "Mu ", - "Kan ", - "Lai ", - "Lian ", - "Shi ", - "Wo ", - "Usagi ", - "Lian ", - "Huo ", - "You ", - "Ying ", - "Ying ", - "Nuc ", - "Chun ", - "Mang ", - "Mang ", - "Ci ", - "Wan ", - "Jing ", - "Di ", - "Qu ", - "Dong ", - "Jian ", - "Zou ", - "Gu ", - "La ", - "Lu ", - "Ju ", - "Wei ", - "Jun ", - "Nie ", - "Kun ", - "He ", - "Pu ", - "Zi ", - "Gao ", - "Guo ", - "Fu ", - "Lun ", - "Chang ", - "Chou ", - "Song ", - "Chui ", - "Zhan ", - "Men ", - "Cai ", - "Ba ", - "Li ", - "Tu ", - "Bo ", - "Han ", - "Bao ", - "Qin ", - "Juan ", - "Xi ", - "Qin ", - "Di ", - "Jie ", - "Pu ", - "Dang ", - "Jin ", - "Zhao ", - "Tai ", - "Geng ", - "Hua ", - "Gu ", - "Ling ", - "Fei ", - "Jin ", - "An ", - "Wang ", - "Beng ", - "Zhou ", - "Yan ", - "Ju ", - "Jian ", - "Lin ", - "Tan ", - "Shu ", - "Tian ", - "Dao ", - "Hu ", - "Qi ", - "He ", - "Cui ", - "Tao ", - "Chun ", - "Bei ", - "Chang ", - "Huan ", - "Fei ", - "Lai ", - "Qi ", - "Meng ", - "Ping ", - "Wei ", - "Dan ", - "Sha ", - "Huan ", - "Yan ", - "Yi ", - "Tiao ", - "Qi ", - "Wan ", - "Ce ", - "Nai ", - "Kutabireru ", - "Tuo ", - "Jiu ", - "Tie ", - "Luo ", - "[?] ", - "[?] ", - "Meng ", - "[?] ", - "Yaji ", - "[?] ", - "Ying ", - "Ying ", - "Ying ", - "Xiao ", - "Sa ", - "Qiu ", - "Ke ", - "Xiang ", - "Wan ", - "Yu ", - "Yu ", - "Fu ", - "Lian ", - "Xuan ", - "Yuan ", - "Nan ", - "Ze ", - "Wo ", - "Chun ", - "Xiao ", - "Yu ", - "Pian ", - "Mao ", - "An ", - "E ", - "Luo ", - "Ying ", - "Huo ", - "Gua ", - "Jiang ", - "Mian ", - "Zuo ", - "Zuo ", - "Ju ", - "Bao ", - "Rou ", - "Xi ", - "Xie ", - "An ", - "Qu ", - "Jian ", - "Fu ", - "Lu ", - "Jing ", - "Pen ", - "Feng ", - "Hong ", - "Hong ", - "Hou ", - "Yan ", - "Tu ", - "Zhu ", - "Zi ", - "Xiang ", - "Shen ", - "Ge ", - "Jie ", - "Jing ", - "Mi ", - "Huang ", - "Shen ", - "Pu ", - "Gai ", - "Dong ", - "Zhou ", - "Qian ", - "Wei ", - "Bo ", - "Wei ", - "Pa ", - "Ji ", - "Hu ", - "Zang ", - "Jia ", - "Duan ", - "Yao ", - "Jun ", - "Cong ", - "Quan ", - "Wei ", - "Xian ", - "Kui ", - "Ting ", - "Hun ", - "Xi ", - "Shi ", - "Qi ", - "Lan ", - "Zong ", - "Yao ", - "Yuan ", - "Mei ", - "Yun ", - "Shu ", - "Di ", - "Zhuan ", - "Guan ", - "Sukumo ", - "Xue ", - "Chan ", - "Kai ", - "Kui ", - "[?] ", - "Jiang ", - "Lou ", - "Wei ", - "Pai ", - "[?] ", - "Sou ", - "Yin ", - "Shi ", - "Chun ", - "Shi ", - "Yun ", - "Zhen ", - "Lang ", - "Nu ", - "Meng ", - "He ", - "Que ", - "Suan ", - "Yuan ", - "Li ", - "Ju ", - "Xi ", - "Pang ", - "Chu ", - "Xu ", - "Tu ", - "Liu ", - "Wo ", - "Zhen ", - "Qian ", - "Zu ", - "Po ", - "Cuo ", - "Yuan ", - "Chu ", - "Yu ", - "Kuai ", - "Pan ", - "Pu ", - "Pu ", - "Na ", - "Shuo ", - "Xi ", - "Fen ", - "Yun ", - "Zheng ", - "Jian ", - "Ji ", - "Ruo ", - "Cang ", - "En ", - "Mi ", - "Hao ", - "Sun ", - "Zhen ", - "Ming ", - "Sou ", - "Xu ", - "Liu ", - "Xi ", - "Gu ", - "Lang ", - "Rong ", - "Weng ", - "Gai ", - "Cuo ", - "Shi ", - "Tang ", - "Luo ", - "Ru ", - "Suo ", - "Xian ", - "Bei ", - "Yao ", - "Gui ", - "Bi ", - "Zong ", - "Gun ", - "Za ", - "Xiu ", - "Ce ", - "Hai ", - "Lan ", - "[?] ", - "Ji ", - "Li ", - "Can ", - "Lang ", - "Yu ", - "[?] ", - "Ying ", - "Mo ", - "Diao ", - "Tiao ", - "Mao ", - "Tong ", - "Zhu ", - "Peng ", - "An ", - "Lian ", - "Cong ", - "Xi ", - "Ping ", - "Qiu ", - "Jin ", - "Chun ", - "Jie ", - "Wei ", - "Tui ", - "Cao ", - "Yu ", - "Yi ", - "Ji ", - "Liao ", - "Bi ", - "Lu ", - "Su ", - "Bu ", - "Zhang ", - "Luo ", - "Jiang ", - "Man ", - "Yan ", - "Ling ", - "Ji ", - "Piao ", - "Gun ", - "Han ", - "Di ", - "Su ", - "Lu ", - "She ", - "Shang ", - "Di ", - "Mie ", - "Xun ", - "Man ", - "Bo ", - "Di ", - "Cuo ", - "Zhe ", - "Sen ", - "Xuan ", - "Wei ", - "Hu ", - "Ao ", - "Mi ", - "Lou ", - "Cu ", - "Zhong ", - "Cai ", - "Po ", - "Jiang ", - "Mi ", - "Cong ", - "Niao ", - "Hui ", - "Jun ", - "Yin ", - "Jian ", - "Yan ", - "Shu ", - "Yin ", - "Kui ", - "Chen ", - "Hu ", - "Sha ", - "Kou ", - "Qian ", - "Ma ", - "Zang ", - "Sonoko ", - "Qiang ", - "Dou ", - "Lian ", - "Lin ", - "Kou ", - "Ai ", - "Bi ", - "Li ", - "Wei ", - "Ji ", - "Xun ", - "Sheng ", - "Fan ", - "Meng ", - "Ou ", - "Chan ", - "Dian ", - "Xun ", - "Jiao ", - "Rui ", - "Rui ", - "Lei ", - "Yu ", - "Qiao ", - "Chu ", - "Hua ", - "Jian ", - "Mai ", - "Yun ", - "Bao ", - "You ", - "Qu ", - "Lu ", - "Rao ", - "Hui ", - "E ", - "Teng ", - "Fei ", - "Jue ", - "Zui ", - "Fa ", - "Ru ", - "Fen ", - "Kui ", - "Shun ", - "Rui ", - "Ya ", - "Xu ", - "Fu ", - "Jue ", - "Dang ", - "Wu ", - "Tong ", - "Si ", - "Xiao ", - "Xi ", - "Long ", - "Yun ", - "[?] ", - "Qi ", - "Jian ", - "Yun ", - "Sun ", - "Ling ", - "Yu ", - "Xia ", - "Yong ", - "Ji ", - "Hong ", - "Si ", - "Nong ", - "Lei ", - "Xuan ", - "Yun ", - "Yu ", - "Xi ", - "Hao ", - "Bo ", - "Hao ", - "Ai ", - "Wei ", - "Hui ", - "Wei ", - "Ji ", - "Ci ", - "Xiang ", - "Luan ", - "Mie ", - "Yi ", - "Leng ", - "Jiang ", - "Can ", - "Shen ", - "Qiang ", - "Lian ", - "Ke ", - "Yuan ", - "Da ", - "Ti ", - "Tang ", - "Xie ", - "Bi ", - "Zhan ", - "Sun ", - "Lian ", - "Fan ", - "Ding ", - "Jie ", - "Gu ", - "Xie ", - "Shu ", - "Jian ", - "Kao ", - "Hong ", - "Sa ", - "Xin ", - "Xun ", - "Yao ", - "Hie ", - "Sou ", - "Shu ", - "Xun ", - "Dui ", - "Pin ", - "Wei ", - "Neng ", - "Chou ", - "Mai ", - "Ru ", - "Piao ", - "Tai ", - "Qi ", - "Zao ", - "Chen ", - "Zhen ", - "Er ", - "Ni ", - "Ying ", - "Gao ", - "Cong ", - "Xiao ", - "Qi ", - "Fa ", - "Jian ", - "Xu ", - "Kui ", - "Jie ", - "Bian ", - "Diao ", - "Mi ", - "Lan ", - "Jin ", - "Cang ", - "Miao ", - "Qiong ", - "Qie ", - "Xian ", - "[?] ", - "Ou ", - "Xian ", - "Su ", - "Lu ", - "Yi ", - "Xu ", - "Xie ", - "Li ", - "Yi ", - "La ", - "Lei ", - "Xiao ", - "Di ", - "Zhi ", - "Bei ", - "Teng ", - "Yao ", - "Mo ", - "Huan ", - "Piao ", - "Fan ", - "Sou ", - "Tan ", - "Tui ", - "Qiong ", - "Qiao ", - "Wei ", - "Liu ", - "Hui ", - "[?] ", - "Gao ", - "Yun ", - "[?] ", - "Li ", - "Shu ", - "Chu ", - "Ai ", - "Lin ", - "Zao ", - "Xuan ", - "Chen ", - "Lai ", - "Huo ", - "Tuo ", - "Wu ", - "Rui ", - "Rui ", - "Qi ", - "Heng ", - "Lu ", - "Su ", - "Tui ", - "Mang ", - "Yun ", - "Pin ", - "Yu ", - "Xun ", - "Ji ", - "Jiong ", - "Xian ", - "Mo ", - "Hagi ", - "Su ", - "Jiong ", - "[?] ", - "Nie ", - "Bo ", - "Rang ", - "Yi ", - "Xian ", - "Yu ", - "Ju ", - "Lian ", - "Lian ", - "Yin ", - "Qiang ", - "Ying ", - "Long ", - "Tong ", - "Wei ", - "Yue ", - "Ling ", - "Qu ", - "Yao ", - "Fan ", - "Mi ", - "Lan ", - "Kui ", - "Lan ", - "Ji ", - "Dang ", - "Katsura ", - "Lei ", - "Lei ", - "Hua ", - "Feng ", - "Zhi ", - "Wei ", - "Kui ", - "Zhan ", - "Huai ", - "Li ", - "Ji ", - "Mi ", - "Lei ", - "Huai ", - "Luo ", - "Ji ", - "Kui ", - "Lu ", - "Jian ", - "San ", - "[?] ", - "Lei ", - "Quan ", - "Xiao ", - "Yi ", - "Luan ", - "Men ", - "Bie ", - "Hu ", - "Hu ", - "Lu ", - "Nue ", - "Lu ", - "Si ", - "Xiao ", - "Qian ", - "Chu ", - "Hu ", - "Xu ", - "Cuo ", - "Fu ", - "Xu ", - "Xu ", - "Lu ", - "Hu ", - "Yu ", - "Hao ", - "Jiao ", - "Ju ", - "Guo ", - "Bao ", - "Yan ", - "Zhan ", - "Zhan ", - "Kui ", - "Ban ", - "Xi ", - "Shu ", - "Chong ", - "Qiu ", - "Diao ", - "Ji ", - "Qiu ", - "Cheng ", - "Shi ", - "[?] ", - "Di ", - "Zhe ", - "She ", - "Yu ", - "Gan ", - "Zi ", - "Hong ", - "Hui ", - "Meng ", - "Ge ", - "Sui ", - "Xia ", - "Chai ", - "Shi ", - "Yi ", - "Ma ", - "Xiang ", - "Fang ", - "E ", - "Pa ", - "Chi ", - "Qian ", - "Wen ", - "Wen ", - "Rui ", - "Bang ", - "Bi ", - "Yue ", - "Yue ", - "Jun ", - "Qi ", - "Ran ", - "Yin ", - "Qi ", - "Tian ", - "Yuan ", - "Jue ", - "Hui ", - "Qin ", - "Qi ", - "Zhong ", - "Ya ", - "Ci ", - "Mu ", - "Wang ", - "Fen ", - "Fen ", - "Hang ", - "Gong ", - "Zao ", - "Fu ", - "Ran ", - "Jie ", - "Fu ", - "Chi ", - "Dou ", - "Piao ", - "Xian ", - "Ni ", - "Te ", - "Qiu ", - "You ", - "Zha ", - "Ping ", - "Chi ", - "You ", - "He ", - "Han ", - "Ju ", - "Li ", - "Fu ", - "Ran ", - "Zha ", - "Gou ", - "Pi ", - "Bo ", - "Xian ", - "Zhu ", - "Diao ", - "Bie ", - "Bing ", - "Gu ", - "Ran ", - "Qu ", - "She ", - "Tie ", - "Ling ", - "Gu ", - "Dan ", - "Gu ", - "Ying ", - "Li ", - "Cheng ", - "Qu ", - "Mou ", - "Ge ", - "Ci ", - "Hui ", - "Hui ", - "Mang ", - "Fu ", - "Yang ", - "Wa ", - "Lie ", - "Zhu ", - "Yi ", - "Xian ", - "Kuo ", - "Jiao ", - "Li ", - "Yi ", - "Ping ", - "Ji ", - "Ha ", - "She ", - "Yi ", - "Wang ", - "Mo ", - "Qiong ", - "Qie ", - "Gui ", - "Gong ", - "Zhi ", - "Man ", - "Ebi ", - "Zhi ", - "Jia ", - "Rao ", - "Si ", - "Qi ", - "Xing ", - "Lie ", - "Qiu ", - "Shao ", - "Yong ", - "Jia ", - "Shui ", - "Che ", - "Bai ", - "E ", - "Han ", - "Shu ", - "Xuan ", - "Feng ", - "Shen ", - "Zhen ", - "Fu ", - "Xian ", - "Zhe ", - "Wu ", - "Fu ", - "Li ", - "Lang ", - "Bi ", - "Chu ", - "Yuan ", - "You ", - "Jie ", - "Dan ", - "Yan ", - "Ting ", - "Dian ", - "Shui ", - "Hui ", - "Gua ", - "Zhi ", - "Song ", - "Fei ", - "Ju ", - "Mi ", - "Qi ", - "Qi ", - "Yu ", - "Jun ", - "Zha ", - "Meng ", - "Qiang ", - "Si ", - "Xi ", - "Lun ", - "Li ", - "Die ", - "Tiao ", - "Tao ", - "Kun ", - "Gan ", - "Han ", - "Yu ", - "Bang ", - "Fei ", - "Pi ", - "Wei ", - "Dun ", - "Yi ", - "Yuan ", - "Su ", - "Quan ", - "Qian ", - "Rui ", - "Ni ", - "Qing ", - "Wei ", - "Liang ", - "Guo ", - "Wan ", - "Dong ", - "E ", - "Ban ", - "Di ", - "Wang ", - "Can ", - "Yang ", - "Ying ", - "Guo ", - "Chan ", - "[?] ", - "La ", - "Ke ", - "Ji ", - "He ", - "Ting ", - "Mai ", - "Xu ", - "Mian ", - "Yu ", - "Jie ", - "Shi ", - "Xuan ", - "Huang ", - "Yan ", - "Bian ", - "Rou ", - "Wei ", - "Fu ", - "Yuan ", - "Mei ", - "Wei ", - "Fu ", - "Ruan ", - "Xie ", - "You ", - "Qiu ", - "Mao ", - "Xia ", - "Ying ", - "Shi ", - "Chong ", - "Tang ", - "Zhu ", - "Zong ", - "Ti ", - "Fu ", - "Yuan ", - "Hui ", - "Meng ", - "La ", - "Du ", - "Hu ", - "Qiu ", - "Die ", - "Li ", - "Gua ", - "Yun ", - "Ju ", - "Nan ", - "Lou ", - "Qun ", - "Rong ", - "Ying ", - "Jiang ", - "[?] ", - "Lang ", - "Pang ", - "Si ", - "Xi ", - "Ci ", - "Xi ", - "Yuan ", - "Weng ", - "Lian ", - "Sou ", - "Ban ", - "Rong ", - "Rong ", - "Ji ", - "Wu ", - "Qiu ", - "Han ", - "Qin ", - "Yi ", - "Bi ", - "Hua ", - "Tang ", - "Yi ", - "Du ", - "Nai ", - "He ", - "Hu ", - "Hui ", - "Ma ", - "Ming ", - "Yi ", - "Wen ", - "Ying ", - "Teng ", - "Yu ", - "Cang ", - "So ", - "Ebi ", - "Man ", - "[?] ", - "Shang ", - "Zhe ", - "Cao ", - "Chi ", - "Di ", - "Ao ", - "Lu ", - "Wei ", - "Zhi ", - "Tang ", - "Chen ", - "Piao ", - "Qu ", - "Pi ", - "Yu ", - "Jian ", - "Luo ", - "Lou ", - "Qin ", - "Zhong ", - "Yin ", - "Jiang ", - "Shuai ", - "Wen ", - "Jiao ", - "Wan ", - "Zhi ", - "Zhe ", - "Ma ", - "Ma ", - "Guo ", - "Liu ", - "Mao ", - "Xi ", - "Cong ", - "Li ", - "Man ", - "Xiao ", - "Kamakiri ", - "Zhang ", - "Mang ", - "Xiang ", - "Mo ", - "Zui ", - "Si ", - "Qiu ", - "Te ", - "Zhi ", - "Peng ", - "Peng ", - "Jiao ", - "Qu ", - "Bie ", - "Liao ", - "Pan ", - "Gui ", - "Xi ", - "Ji ", - "Zhuan ", - "Huang ", - "Fei ", - "Lao ", - "Jue ", - "Jue ", - "Hui ", - "Yin ", - "Chan ", - "Jiao ", - "Shan ", - "Rao ", - "Xiao ", - "Mou ", - "Chong ", - "Xun ", - "Si ", - "[?] ", - "Cheng ", - "Dang ", - "Li ", - "Xie ", - "Shan ", - "Yi ", - "Jing ", - "Da ", - "Chan ", - "Qi ", - "Ci ", - "Xiang ", - "She ", - "Luo ", - "Qin ", - "Ying ", - "Chai ", - "Li ", - "Ze ", - "Xuan ", - "Lian ", - "Zhu ", - "Ze ", - "Xie ", - "Mang ", - "Xie ", - "Qi ", - "Rong ", - "Jian ", - "Meng ", - "Hao ", - "Ruan ", - "Huo ", - "Zhuo ", - "Jie ", - "Bin ", - "He ", - "Mie ", - "Fan ", - "Lei ", - "Jie ", - "La ", - "Mi ", - "Li ", - "Chun ", - "Li ", - "Qiu ", - "Nie ", - "Lu ", - "Du ", - "Xiao ", - "Zhu ", - "Long ", - "Li ", - "Long ", - "Feng ", - "Ye ", - "Beng ", - "Shang ", - "Gu ", - "Juan ", - "Ying ", - "[?] ", - "Xi ", - "Can ", - "Qu ", - "Quan ", - "Du ", - "Can ", - "Man ", - "Jue ", - "Jie ", - "Zhu ", - "Zha ", - "Xie ", - "Huang ", - "Niu ", - "Pei ", - "Nu ", - "Xin ", - "Zhong ", - "Mo ", - "Er ", - "Ke ", - "Mie ", - "Xi ", - "Xing ", - "Yan ", - "Kan ", - "Yuan ", - "[?] ", - "Ling ", - "Xuan ", - "Shu ", - "Xian ", - "Tong ", - "Long ", - "Jie ", - "Xian ", - "Ya ", - "Hu ", - "Wei ", - "Dao ", - "Chong ", - "Wei ", - "Dao ", - "Zhun ", - "Heng ", - "Qu ", - "Yi ", - "Yi ", - "Bu ", - "Gan ", - "Yu ", - "Biao ", - "Cha ", - "Yi ", - "Shan ", - "Chen ", - "Fu ", - "Gun ", - "Fen ", - "Shuai ", - "Jie ", - "Na ", - "Zhong ", - "Dan ", - "Ri ", - "Zhong ", - "Zhong ", - "Xie ", - "Qi ", - "Xie ", - "Ran ", - "Zhi ", - "Ren ", - "Qin ", - "Jin ", - "Jun ", - "Yuan ", - "Mei ", - "Chai ", - "Ao ", - "Niao ", - "Hui ", - "Ran ", - "Jia ", - "Tuo ", - "Ling ", - "Dai ", - "Bao ", - "Pao ", - "Yao ", - "Zuo ", - "Bi ", - "Shao ", - "Tan ", - "Ju ", - "He ", - "Shu ", - "Xiu ", - "Zhen ", - "Yi ", - "Pa ", - "Bo ", - "Di ", - "Wa ", - "Fu ", - "Gun ", - "Zhi ", - "Zhi ", - "Ran ", - "Pan ", - "Yi ", - "Mao ", - "Tuo ", - "Na ", - "Kou ", - "Xian ", - "Chan ", - "Qu ", - "Bei ", - "Gun ", - "Xi ", - "Ne ", - "Bo ", - "Horo ", - "Fu ", - "Yi ", - "Chi ", - "Ku ", - "Ren ", - "Jiang ", - "Jia ", - "Cun ", - "Mo ", - "Jie ", - "Er ", - "Luo ", - "Ru ", - "Zhu ", - "Gui ", - "Yin ", - "Cai ", - "Lie ", - "Kamishimo ", - "Yuki ", - "Zhuang ", - "Dang ", - "[?] ", - "Kun ", - "Ken ", - "Niao ", - "Shu ", - "Jia ", - "Kun ", - "Cheng ", - "Li ", - "Juan ", - "Shen ", - "Pou ", - "Ge ", - "Yi ", - "Yu ", - "Zhen ", - "Liu ", - "Qiu ", - "Qun ", - "Ji ", - "Yi ", - "Bu ", - "Zhuang ", - "Shui ", - "Sha ", - "Qun ", - "Li ", - "Lian ", - "Lian ", - "Ku ", - "Jian ", - "Fou ", - "Chan ", - "Bi ", - "Gun ", - "Tao ", - "Yuan ", - "Ling ", - "Chi ", - "Chang ", - "Chou ", - "Duo ", - "Biao ", - "Liang ", - "Chang ", - "Pei ", - "Pei ", - "Fei ", - "Yuan ", - "Luo ", - "Guo ", - "Yan ", - "Du ", - "Xi ", - "Zhi ", - "Ju ", - "Qi ", - "Ji ", - "Zhi ", - "Gua ", - "Ken ", - "Che ", - "Ti ", - "Ti ", - "Fu ", - "Chong ", - "Xie ", - "Bian ", - "Die ", - "Kun ", - "Duan ", - "Xiu ", - "Xiu ", - "He ", - "Yuan ", - "Bao ", - "Bao ", - "Fu ", - "Yu ", - "Tuan ", - "Yan ", - "Hui ", - "Bei ", - "Chu ", - "Lu ", - "Ena ", - "Hitoe ", - "Yun ", - "Da ", - "Gou ", - "Da ", - "Huai ", - "Rong ", - "Yuan ", - "Ru ", - "Nai ", - "Jiong ", - "Suo ", - "Ban ", - "Tun ", - "Chi ", - "Sang ", - "Niao ", - "Ying ", - "Jie ", - "Qian ", - "Huai ", - "Ku ", - "Lian ", - "Bao ", - "Li ", - "Zhe ", - "Shi ", - "Lu ", - "Yi ", - "Die ", - "Xie ", - "Xian ", - "Wei ", - "Biao ", - "Cao ", - "Ji ", - "Jiang ", - "Sen ", - "Bao ", - "Xiang ", - "Chihaya ", - "Pu ", - "Jian ", - "Zhuan ", - "Jian ", - "Zui ", - "Ji ", - "Dan ", - "Za ", - "Fan ", - "Bo ", - "Xiang ", - "Xin ", - "Bie ", - "Rao ", - "Man ", - "Lan ", - "Ao ", - "Duo ", - "Gui ", - "Cao ", - "Sui ", - "Nong ", - "Chan ", - "Lian ", - "Bi ", - "Jin ", - "Dang ", - "Shu ", - "Tan ", - "Bi ", - "Lan ", - "Pu ", - "Ru ", - "Zhi ", - "[?] ", - "Shu ", - "Wa ", - "Shi ", - "Bai ", - "Xie ", - "Bo ", - "Chen ", - "Lai ", - "Long ", - "Xi ", - "Xian ", - "Lan ", - "Zhe ", - "Dai ", - "Tasuki ", - "Zan ", - "Shi ", - "Jian ", - "Pan ", - "Yi ", - "Ran ", - "Ya ", - "Xi ", - "Xi ", - "Yao ", - "Feng ", - "Tan ", - "[?] ", - "Biao ", - "Fu ", - "Ba ", - "He ", - "Ji ", - "Ji ", - "Jian ", - "Guan ", - "Bian ", - "Yan ", - "Gui ", - "Jue ", - "Pian ", - "Mao ", - "Mi ", - "Mi ", - "Mie ", - "Shi ", - "Si ", - "Zhan ", - "Luo ", - "Jue ", - "Mi ", - "Tiao ", - "Lian ", - "Yao ", - "Zhi ", - "Jun ", - "Xi ", - "Shan ", - "Wei ", - "Xi ", - "Tian ", - "Yu ", - "Lan ", - "E ", - "Du ", - "Qin ", - "Pang ", - "Ji ", - "Ming ", - "Ying ", - "Gou ", - "Qu ", - "Zhan ", - "Jin ", - "Guan ", - "Deng ", - "Jian ", - "Luo ", - "Qu ", - "Jian ", - "Wei ", - "Jue ", - "Qu ", - "Luo ", - "Lan ", - "Shen ", - "Di ", - "Guan ", - "Jian ", - "Guan ", - "Yan ", - "Gui ", - "Mi ", - "Shi ", - "Zhan ", - "Lan ", - "Jue ", - "Ji ", - "Xi ", - "Di ", - "Tian ", - "Yu ", - "Gou ", - "Jin ", - "Qu ", - "Jiao ", - "Jiu ", - "Jin ", - "Cu ", - "Jue ", - "Zhi ", - "Chao ", - "Ji ", - "Gu ", - "Dan ", - "Zui ", - "Di ", - "Shang ", - "Hua ", - "Quan ", - "Ge ", - "Chi ", - "Jie ", - "Gui ", - "Gong ", - "Hong ", - "Jie ", - "Hun ", - "Qiu ", - "Xing ", - "Su ", - "Ni ", - "Ji ", - "Lu ", - "Zhi ", - "Zha ", - "Bi ", - "Xing ", - "Hu ", - "Shang ", - "Gong ", - "Zhi ", - "Xue ", - "Chu ", - "Xi ", - "Yi ", - "Lu ", - "Jue ", - "Xi ", - "Yan ", - "Xi ", - "Yan ", - "Yan ", - "Ding ", - "Fu ", - "Qiu ", - "Qiu ", - "Jiao ", - "Hong ", - "Ji ", - "Fan ", - "Xun ", - "Diao ", - "Hong ", - "Cha ", - "Tao ", - "Xu ", - "Jie ", - "Yi ", - "Ren ", - "Xun ", - "Yin ", - "Shan ", - "Qi ", - "Tuo ", - "Ji ", - "Xun ", - "Yin ", - "E ", - "Fen ", - "Ya ", - "Yao ", - "Song ", - "Shen ", - "Yin ", - "Xin ", - "Jue ", - "Xiao ", - "Ne ", - "Chen ", - "You ", - "Zhi ", - "Xiong ", - "Fang ", - "Xin ", - "Chao ", - "She ", - "Xian ", - "Sha ", - "Tun ", - "Xu ", - "Yi ", - "Yi ", - "Su ", - "Chi ", - "He ", - "Shen ", - "He ", - "Xu ", - "Zhen ", - "Zhu ", - "Zheng ", - "Gou ", - "Zi ", - "Zi ", - "Zhan ", - "Gu ", - "Fu ", - "Quan ", - "Die ", - "Ling ", - "Di ", - "Yang ", - "Li ", - "Nao ", - "Pan ", - "Zhou ", - "Gan ", - "Yi ", - "Ju ", - "Ao ", - "Zha ", - "Tuo ", - "Yi ", - "Qu ", - "Zhao ", - "Ping ", - "Bi ", - "Xiong ", - "Qu ", - "Ba ", - "Da ", - "Zu ", - "Tao ", - "Zhu ", - "Ci ", - "Zhe ", - "Yong ", - "Xu ", - "Xun ", - "Yi ", - "Huang ", - "He ", - "Shi ", - "Cha ", - "Jiao ", - "Shi ", - "Hen ", - "Cha ", - "Gou ", - "Gui ", - "Quan ", - "Hui ", - "Jie ", - "Hua ", - "Gai ", - "Xiang ", - "Wei ", - "Shen ", - "Chou ", - "Tong ", - "Mi ", - "Zhan ", - "Ming ", - "E ", - "Hui ", - "Yan ", - "Xiong ", - "Gua ", - "Er ", - "Beng ", - "Tiao ", - "Chi ", - "Lei ", - "Zhu ", - "Kuang ", - "Kua ", - "Wu ", - "Yu ", - "Teng ", - "Ji ", - "Zhi ", - "Ren ", - "Su ", - "Lang ", - "E ", - "Kuang ", - "E ", - "Shi ", - "Ting ", - "Dan ", - "Bo ", - "Chan ", - "You ", - "Heng ", - "Qiao ", - "Qin ", - "Shua ", - "An ", - "Yu ", - "Xiao ", - "Cheng ", - "Jie ", - "Xian ", - "Wu ", - "Wu ", - "Gao ", - "Song ", - "Pu ", - "Hui ", - "Jing ", - "Shuo ", - "Zhen ", - "Shuo ", - "Du ", - "Yasashi ", - "Chang ", - "Shui ", - "Jie ", - "Ke ", - "Qu ", - "Cong ", - "Xiao ", - "Sui ", - "Wang ", - "Xuan ", - "Fei ", - "Chi ", - "Ta ", - "Yi ", - "Na ", - "Yin ", - "Diao ", - "Pi ", - "Chuo ", - "Chan ", - "Chen ", - "Zhun ", - "Ji ", - "Qi ", - "Tan ", - "Zhui ", - "Wei ", - "Ju ", - "Qing ", - "Jian ", - "Zheng ", - "Ze ", - "Zou ", - "Qian ", - "Zhuo ", - "Liang ", - "Jian ", - "Zhu ", - "Hao ", - "Lun ", - "Shen ", - "Biao ", - "Huai ", - "Pian ", - "Yu ", - "Die ", - "Xu ", - "Pian ", - "Shi ", - "Xuan ", - "Shi ", - "Hun ", - "Hua ", - "E ", - "Zhong ", - "Di ", - "Xie ", - "Fu ", - "Pu ", - "Ting ", - "Jian ", - "Qi ", - "Yu ", - "Zi ", - "Chuan ", - "Xi ", - "Hui ", - "Yin ", - "An ", - "Xian ", - "Nan ", - "Chen ", - "Feng ", - "Zhu ", - "Yang ", - "Yan ", - "Heng ", - "Xuan ", - "Ge ", - "Nuo ", - "Qi ", - "Mou ", - "Ye ", - "Wei ", - "[?] ", - "Teng ", - "Zou ", - "Shan ", - "Jian ", - "Bo ", - "Ku ", - "Huang ", - "Huo ", - "Ge ", - "Ying ", - "Mi ", - "Xiao ", - "Mi ", - "Xi ", - "Qiang ", - "Chen ", - "Nue ", - "Ti ", - "Su ", - "Bang ", - "Chi ", - "Qian ", - "Shi ", - "Jiang ", - "Yuan ", - "Xie ", - "Xue ", - "Tao ", - "Yao ", - "Yao ", - "[?] ", - "Yu ", - "Biao ", - "Cong ", - "Qing ", - "Li ", - "Mo ", - "Mo ", - "Shang ", - "Zhe ", - "Miu ", - "Jian ", - "Ze ", - "Jie ", - "Lian ", - "Lou ", - "Can ", - "Ou ", - "Guan ", - "Xi ", - "Zhuo ", - "Ao ", - "Ao ", - "Jin ", - "Zhe ", - "Yi ", - "Hu ", - "Jiang ", - "Man ", - "Chao ", - "Han ", - "Hua ", - "Chan ", - "Xu ", - "Zeng ", - "Se ", - "Xi ", - "She ", - "Dui ", - "Zheng ", - "Nao ", - "Lan ", - "E ", - "Ying ", - "Jue ", - "Ji ", - "Zun ", - "Jiao ", - "Bo ", - "Hui ", - "Zhuan ", - "Mu ", - "Zen ", - "Zha ", - "Shi ", - "Qiao ", - "Tan ", - "Zen ", - "Pu ", - "Sheng ", - "Xuan ", - "Zao ", - "Tan ", - "Dang ", - "Sui ", - "Qian ", - "Ji ", - "Jiao ", - "Jing ", - "Lian ", - "Nou ", - "Yi ", - "Ai ", - "Zhan ", - "Pi ", - "Hui ", - "Hua ", - "Yi ", - "Yi ", - "Shan ", - "Rang ", - "Nou ", - "Qian ", - "Zhui ", - "Ta ", - "Hu ", - "Zhou ", - "Hao ", - "Ye ", - "Ying ", - "Jian ", - "Yu ", - "Jian ", - "Hui ", - "Du ", - "Zhe ", - "Xuan ", - "Zan ", - "Lei ", - "Shen ", - "Wei ", - "Chan ", - "Li ", - "Yi ", - "Bian ", - "Zhe ", - "Yan ", - "E ", - "Chou ", - "Wei ", - "Chou ", - "Yao ", - "Chan ", - "Rang ", - "Yin ", - "Lan ", - "Chen ", - "Huo ", - "Zhe ", - "Huan ", - "Zan ", - "Yi ", - "Dang ", - "Zhan ", - "Yan ", - "Du ", - "Yan ", - "Ji ", - "Ding ", - "Fu ", - "Ren ", - "Ji ", - "Jie ", - "Hong ", - "Tao ", - "Rang ", - "Shan ", - "Qi ", - "Tuo ", - "Xun ", - "Yi ", - "Xun ", - "Ji ", - "Ren ", - "Jiang ", - "Hui ", - "Ou ", - "Ju ", - "Ya ", - "Ne ", - "Xu ", - "E ", - "Lun ", - "Xiong ", - "Song ", - "Feng ", - "She ", - "Fang ", - "Jue ", - "Zheng ", - "Gu ", - "He ", - "Ping ", - "Zu ", - "Shi ", - "Xiong ", - "Zha ", - "Su ", - "Zhen ", - "Di ", - "Zou ", - "Ci ", - "Qu ", - "Zhao ", - "Bi ", - "Yi ", - "Yi ", - "Kuang ", - "Lei ", - "Shi ", - "Gua ", - "Shi ", - "Jie ", - "Hui ", - "Cheng ", - "Zhu ", - "Shen ", - "Hua ", - "Dan ", - "Gou ", - "Quan ", - "Gui ", - "Xun ", - "Yi ", - "Zheng ", - "Gai ", - "Xiang ", - "Cha ", - "Hun ", - "Xu ", - "Zhou ", - "Jie ", - "Wu ", - "Yu ", - "Qiao ", - "Wu ", - "Gao ", - "You ", - "Hui ", - "Kuang ", - "Shuo ", - "Song ", - "Ai ", - "Qing ", - "Zhu ", - "Zou ", - "Nuo ", - "Du ", - "Zhuo ", - "Fei ", - "Ke ", - "Wei ", - "Yu ", - "Shui ", - "Shen ", - "Diao ", - "Chan ", - "Liang ", - "Zhun ", - "Sui ", - "Tan ", - "Shen ", - "Yi ", - "Mou ", - "Chen ", - "Die ", - "Huang ", - "Jian ", - "Xie ", - "Nue ", - "Ye ", - "Wei ", - "E ", - "Yu ", - "Xuan ", - "Chan ", - "Zi ", - "An ", - "Yan ", - "Di ", - "Mi ", - "Pian ", - "Xu ", - "Mo ", - "Dang ", - "Su ", - "Xie ", - "Yao ", - "Bang ", - "Shi ", - "Qian ", - "Mi ", - "Jin ", - "Man ", - "Zhe ", - "Jian ", - "Miu ", - "Tan ", - "Zen ", - "Qiao ", - "Lan ", - "Pu ", - "Jue ", - "Yan ", - "Qian ", - "Zhan ", - "Chen ", - "Gu ", - "Qian ", - "Hong ", - "Xia ", - "Jue ", - "Hong ", - "Han ", - "Hong ", - "Xi ", - "Xi ", - "Huo ", - "Liao ", - "Han ", - "Du ", - "Long ", - "Dou ", - "Jiang ", - "Qi ", - "Shi ", - "Li ", - "Deng ", - "Wan ", - "Bi ", - "Shu ", - "Xian ", - "Feng ", - "Zhi ", - "Zhi ", - "Yan ", - "Yan ", - "Shi ", - "Chu ", - "Hui ", - "Tun ", - "Yi ", - "Tun ", - "Yi ", - "Jian ", - "Ba ", - "Hou ", - "E ", - "Cu ", - "Xiang ", - "Huan ", - "Jian ", - "Ken ", - "Gai ", - "Qu ", - "Fu ", - "Xi ", - "Bin ", - "Hao ", - "Yu ", - "Zhu ", - "Jia ", - "[?] ", - "Xi ", - "Bo ", - "Wen ", - "Huan ", - "Bin ", - "Di ", - "Zong ", - "Fen ", - "Yi ", - "Zhi ", - "Bao ", - "Chai ", - "Han ", - "Pi ", - "Na ", - "Pi ", - "Gou ", - "Na ", - "You ", - "Diao ", - "Mo ", - "Si ", - "Xiu ", - "Huan ", - "Kun ", - "He ", - "He ", - "Mo ", - "Han ", - "Mao ", - "Li ", - "Ni ", - "Bi ", - "Yu ", - "Jia ", - "Tuan ", - "Mao ", - "Pi ", - "Xi ", - "E ", - "Ju ", - "Mo ", - "Chu ", - "Tan ", - "Huan ", - "Jue ", - "Bei ", - "Zhen ", - "Yuan ", - "Fu ", - "Cai ", - "Gong ", - "Te ", - "Yi ", - "Hang ", - "Wan ", - "Pin ", - "Huo ", - "Fan ", - "Tan ", - "Guan ", - "Ze ", - "Zhi ", - "Er ", - "Zhu ", - "Shi ", - "Bi ", - "Zi ", - "Er ", - "Gui ", - "Pian ", - "Bian ", - "Mai ", - "Dai ", - "Sheng ", - "Kuang ", - "Fei ", - "Tie ", - "Yi ", - "Chi ", - "Mao ", - "He ", - "Bi ", - "Lu ", - "Ren ", - "Hui ", - "Gai ", - "Pian ", - "Zi ", - "Jia ", - "Xu ", - "Zei ", - "Jiao ", - "Gai ", - "Zang ", - "Jian ", - "Ying ", - "Xun ", - "Zhen ", - "She ", - "Bin ", - "Bin ", - "Qiu ", - "She ", - "Chuan ", - "Zang ", - "Zhou ", - "Lai ", - "Zan ", - "Si ", - "Chen ", - "Shang ", - "Tian ", - "Pei ", - "Geng ", - "Xian ", - "Mai ", - "Jian ", - "Sui ", - "Fu ", - "Tan ", - "Cong ", - "Cong ", - "Zhi ", - "Ji ", - "Zhang ", - "Du ", - "Jin ", - "Xiong ", - "Shun ", - "Yun ", - "Bao ", - "Zai ", - "Lai ", - "Feng ", - "Cang ", - "Ji ", - "Sheng ", - "Ai ", - "Zhuan ", - "Fu ", - "Gou ", - "Sai ", - "Ze ", - "Liao ", - "Wei ", - "Bai ", - "Chen ", - "Zhuan ", - "Zhi ", - "Zhui ", - "Biao ", - "Yun ", - "Zeng ", - "Tan ", - "Zan ", - "Yan ", - "[?] ", - "Shan ", - "Wan ", - "Ying ", - "Jin ", - "Gan ", - "Xian ", - "Zang ", - "Bi ", - "Du ", - "Shu ", - "Yan ", - "[?] ", - "Xuan ", - "Long ", - "Gan ", - "Zang ", - "Bei ", - "Zhen ", - "Fu ", - "Yuan ", - "Gong ", - "Cai ", - "Ze ", - "Xian ", - "Bai ", - "Zhang ", - "Huo ", - "Zhi ", - "Fan ", - "Tan ", - "Pin ", - "Bian ", - "Gou ", - "Zhu ", - "Guan ", - "Er ", - "Jian ", - "Bi ", - "Shi ", - "Tie ", - "Gui ", - "Kuang ", - "Dai ", - "Mao ", - "Fei ", - "He ", - "Yi ", - "Zei ", - "Zhi ", - "Jia ", - "Hui ", - "Zi ", - "Ren ", - "Lu ", - "Zang ", - "Zi ", - "Gai ", - "Jin ", - "Qiu ", - "Zhen ", - "Lai ", - "She ", - "Fu ", - "Du ", - "Ji ", - "Shu ", - "Shang ", - "Si ", - "Bi ", - "Zhou ", - "Geng ", - "Pei ", - "Tan ", - "Lai ", - "Feng ", - "Zhui ", - "Fu ", - "Zhuan ", - "Sai ", - "Ze ", - "Yan ", - "Zan ", - "Yun ", - "Zeng ", - "Shan ", - "Ying ", - "Gan ", - "Chi ", - "Xi ", - "She ", - "Nan ", - "Xiong ", - "Xi ", - "Cheng ", - "He ", - "Cheng ", - "Zhe ", - "Xia ", - "Tang ", - "Zou ", - "Zou ", - "Li ", - "Jiu ", - "Fu ", - "Zhao ", - "Gan ", - "Qi ", - "Shan ", - "Qiong ", - "Qin ", - "Xian ", - "Ci ", - "Jue ", - "Qin ", - "Chi ", - "Ci ", - "Chen ", - "Chen ", - "Die ", - "Ju ", - "Chao ", - "Di ", - "Se ", - "Zhan ", - "Zhu ", - "Yue ", - "Qu ", - "Jie ", - "Chi ", - "Chu ", - "Gua ", - "Xue ", - "Ci ", - "Tiao ", - "Duo ", - "Lie ", - "Gan ", - "Suo ", - "Cu ", - "Xi ", - "Zhao ", - "Su ", - "Yin ", - "Ju ", - "Jian ", - "Que ", - "Tang ", - "Chuo ", - "Cui ", - "Lu ", - "Qu ", - "Dang ", - "Qiu ", - "Zi ", - "Ti ", - "Qu ", - "Chi ", - "Huang ", - "Qiao ", - "Qiao ", - "Yao ", - "Zao ", - "Ti ", - "[?] ", - "Zan ", - "Zan ", - "Zu ", - "Pa ", - "Bao ", - "Ku ", - "Ke ", - "Dun ", - "Jue ", - "Fu ", - "Chen ", - "Jian ", - "Fang ", - "Zhi ", - "Sa ", - "Yue ", - "Pa ", - "Qi ", - "Yue ", - "Qiang ", - "Tuo ", - "Tai ", - "Yi ", - "Nian ", - "Ling ", - "Mei ", - "Ba ", - "Die ", - "Ku ", - "Tuo ", - "Jia ", - "Ci ", - "Pao ", - "Qia ", - "Zhu ", - "Ju ", - "Die ", - "Zhi ", - "Fu ", - "Pan ", - "Ju ", - "Shan ", - "Bo ", - "Ni ", - "Ju ", - "Li ", - "Gen ", - "Yi ", - "Ji ", - "Dai ", - "Xian ", - "Jiao ", - "Duo ", - "Zhu ", - "Zhuan ", - "Kua ", - "Zhuai ", - "Gui ", - "Qiong ", - "Kui ", - "Xiang ", - "Chi ", - "Lu ", - "Beng ", - "Zhi ", - "Jia ", - "Tiao ", - "Cai ", - "Jian ", - "Ta ", - "Qiao ", - "Bi ", - "Xian ", - "Duo ", - "Ji ", - "Ju ", - "Ji ", - "Shu ", - "Tu ", - "Chu ", - "Jing ", - "Nie ", - "Xiao ", - "Bo ", - "Chi ", - "Qun ", - "Mou ", - "Shu ", - "Lang ", - "Yong ", - "Jiao ", - "Chou ", - "Qiao ", - "[?] ", - "Ta ", - "Jian ", - "Qi ", - "Wo ", - "Wei ", - "Zhuo ", - "Jie ", - "Ji ", - "Nie ", - "Ju ", - "Ju ", - "Lun ", - "Lu ", - "Leng ", - "Huai ", - "Ju ", - "Chi ", - "Wan ", - "Quan ", - "Ti ", - "Bo ", - "Zu ", - "Qie ", - "Ji ", - "Cu ", - "Zong ", - "Cai ", - "Zong ", - "Peng ", - "Zhi ", - "Zheng ", - "Dian ", - "Zhi ", - "Yu ", - "Duo ", - "Dun ", - "Chun ", - "Yong ", - "Zhong ", - "Di ", - "Zhe ", - "Chen ", - "Chuai ", - "Jian ", - "Gua ", - "Tang ", - "Ju ", - "Fu ", - "Zu ", - "Die ", - "Pian ", - "Rou ", - "Nuo ", - "Ti ", - "Cha ", - "Tui ", - "Jian ", - "Dao ", - "Cuo ", - "Xi ", - "Ta ", - "Qiang ", - "Zhan ", - "Dian ", - "Ti ", - "Ji ", - "Nie ", - "Man ", - "Liu ", - "Zhan ", - "Bi ", - "Chong ", - "Lu ", - "Liao ", - "Cu ", - "Tang ", - "Dai ", - "Suo ", - "Xi ", - "Kui ", - "Ji ", - "Zhi ", - "Qiang ", - "Di ", - "Man ", - "Zong ", - "Lian ", - "Beng ", - "Zao ", - "Nian ", - "Bie ", - "Tui ", - "Ju ", - "Deng ", - "Ceng ", - "Xian ", - "Fan ", - "Chu ", - "Zhong ", - "Dun ", - "Bo ", - "Cu ", - "Zu ", - "Jue ", - "Jue ", - "Lin ", - "Ta ", - "Qiao ", - "Qiao ", - "Pu ", - "Liao ", - "Dun ", - "Cuan ", - "Kuang ", - "Zao ", - "Ta ", - "Bi ", - "Bi ", - "Zhu ", - "Ju ", - "Chu ", - "Qiao ", - "Dun ", - "Chou ", - "Ji ", - "Wu ", - "Yue ", - "Nian ", - "Lin ", - "Lie ", - "Zhi ", - "Li ", - "Zhi ", - "Chan ", - "Chu ", - "Duan ", - "Wei ", - "Long ", - "Lin ", - "Xian ", - "Wei ", - "Zuan ", - "Lan ", - "Xie ", - "Rang ", - "Xie ", - "Nie ", - "Ta ", - "Qu ", - "Jie ", - "Cuan ", - "Zuan ", - "Xi ", - "Kui ", - "Jue ", - "Lin ", - "Shen ", - "Gong ", - "Dan ", - "Segare ", - "Qu ", - "Ti ", - "Duo ", - "Duo ", - "Gong ", - "Lang ", - "Nerau ", - "Luo ", - "Ai ", - "Ji ", - "Ju ", - "Tang ", - "Utsuke ", - "[?] ", - "Yan ", - "Shitsuke ", - "Kang ", - "Qu ", - "Lou ", - "Lao ", - "Tuo ", - "Zhi ", - "Yagate ", - "Ti ", - "Dao ", - "Yagate ", - "Yu ", - "Che ", - "Ya ", - "Gui ", - "Jun ", - "Wei ", - "Yue ", - "Xin ", - "Di ", - "Xuan ", - "Fan ", - "Ren ", - "Shan ", - "Qiang ", - "Shu ", - "Tun ", - "Chen ", - "Dai ", - "E ", - "Na ", - "Qi ", - "Mao ", - "Ruan ", - "Ren ", - "Fan ", - "Zhuan ", - "Hong ", - "Hu ", - "Qu ", - "Huang ", - "Di ", - "Ling ", - "Dai ", - "Ao ", - "Zhen ", - "Fan ", - "Kuang ", - "Ang ", - "Peng ", - "Bei ", - "Gu ", - "Ku ", - "Pao ", - "Zhu ", - "Rong ", - "E ", - "Ba ", - "Zhou ", - "Zhi ", - "Yao ", - "Ke ", - "Yi ", - "Qing ", - "Shi ", - "Ping ", - "Er ", - "Qiong ", - "Ju ", - "Jiao ", - "Guang ", - "Lu ", - "Kai ", - "Quan ", - "Zhou ", - "Zai ", - "Zhi ", - "She ", - "Liang ", - "Yu ", - "Shao ", - "You ", - "Huan ", - "Yun ", - "Zhe ", - "Wan ", - "Fu ", - "Qing ", - "Zhou ", - "Ni ", - "Ling ", - "Zhe ", - "Zhan ", - "Liang ", - "Zi ", - "Hui ", - "Wang ", - "Chuo ", - "Guo ", - "Kan ", - "Yi ", - "Peng ", - "Qian ", - "Gun ", - "Nian ", - "Pian ", - "Guan ", - "Bei ", - "Lun ", - "Pai ", - "Liang ", - "Ruan ", - "Rou ", - "Ji ", - "Yang ", - "Xian ", - "Chuan ", - "Cou ", - "Qun ", - "Ge ", - "You ", - "Hong ", - "Shu ", - "Fu ", - "Zi ", - "Fu ", - "Wen ", - "Ben ", - "Zhan ", - "Yu ", - "Wen ", - "Tao ", - "Gu ", - "Zhen ", - "Xia ", - "Yuan ", - "Lu ", - "Jiu ", - "Chao ", - "Zhuan ", - "Wei ", - "Hun ", - "Sori ", - "Che ", - "Jiao ", - "Zhan ", - "Pu ", - "Lao ", - "Fen ", - "Fan ", - "Lin ", - "Ge ", - "Se ", - "Kan ", - "Huan ", - "Yi ", - "Ji ", - "Dui ", - "Er ", - "Yu ", - "Xian ", - "Hong ", - "Lei ", - "Pei ", - "Li ", - "Li ", - "Lu ", - "Lin ", - "Che ", - "Ya ", - "Gui ", - "Xuan ", - "Di ", - "Ren ", - "Zhuan ", - "E ", - "Lun ", - "Ruan ", - "Hong ", - "Ku ", - "Ke ", - "Lu ", - "Zhou ", - "Zhi ", - "Yi ", - "Hu ", - "Zhen ", - "Li ", - "Yao ", - "Qing ", - "Shi ", - "Zai ", - "Zhi ", - "Jiao ", - "Zhou ", - "Quan ", - "Lu ", - "Jiao ", - "Zhe ", - "Fu ", - "Liang ", - "Nian ", - "Bei ", - "Hui ", - "Gun ", - "Wang ", - "Liang ", - "Chuo ", - "Zi ", - "Cou ", - "Fu ", - "Ji ", - "Wen ", - "Shu ", - "Pei ", - "Yuan ", - "Xia ", - "Zhan ", - "Lu ", - "Che ", - "Lin ", - "Xin ", - "Gu ", - "Ci ", - "Ci ", - "Pi ", - "Zui ", - "Bian ", - "La ", - "La ", - "Ci ", - "Xue ", - "Ban ", - "Bian ", - "Bian ", - "Bian ", - "[?] ", - "Bian ", - "Ban ", - "Ci ", - "Bian ", - "Bian ", - "Chen ", - "Ru ", - "Nong ", - "Nong ", - "Zhen ", - "Chuo ", - "Chuo ", - "Suberu ", - "Reng ", - "Bian ", - "Bian ", - "Sip ", - "Ip ", - "Liao ", - "Da ", - "Chan ", - "Gan ", - "Qian ", - "Yu ", - "Yu ", - "Qi ", - "Xun ", - "Yi ", - "Guo ", - "Mai ", - "Qi ", - "Za ", - "Wang ", - "Jia ", - "Zhun ", - "Ying ", - "Ti ", - "Yun ", - "Jin ", - "Hang ", - "Ya ", - "Fan ", - "Wu ", - "Da ", - "E ", - "Huan ", - "Zhe ", - "Totemo ", - "Jin ", - "Yuan ", - "Wei ", - "Lian ", - "Chi ", - "Che ", - "Ni ", - "Tiao ", - "Zhi ", - "Yi ", - "Jiong ", - "Jia ", - "Chen ", - "Dai ", - "Er ", - "Di ", - "Po ", - "Wang ", - "Die ", - "Ze ", - "Tao ", - "Shu ", - "Tuo ", - "Kep ", - "Jing ", - "Hui ", - "Tong ", - "You ", - "Mi ", - "Beng ", - "Ji ", - "Nai ", - "Yi ", - "Jie ", - "Zhui ", - "Lie ", - "Xun ", - "Tui ", - "Song ", - "Gua ", - "Tao ", - "Pang ", - "Hou ", - "Ni ", - "Dun ", - "Jiong ", - "Xuan ", - "Xun ", - "Bu ", - "You ", - "Xiao ", - "Qiu ", - "Tou ", - "Zhu ", - "Qiu ", - "Di ", - "Di ", - "Tu ", - "Jing ", - "Ti ", - "Dou ", - "Yi ", - "Zhe ", - "Tong ", - "Guang ", - "Wu ", - "Shi ", - "Cheng ", - "Su ", - "Zao ", - "Qun ", - "Feng ", - "Lian ", - "Suo ", - "Hui ", - "Li ", - "Sako ", - "Lai ", - "Ben ", - "Cuo ", - "Jue ", - "Beng ", - "Huan ", - "Dai ", - "Lu ", - "You ", - "Zhou ", - "Jin ", - "Yu ", - "Chuo ", - "Kui ", - "Wei ", - "Ti ", - "Yi ", - "Da ", - "Yuan ", - "Luo ", - "Bi ", - "Nuo ", - "Yu ", - "Dang ", - "Sui ", - "Dun ", - "Sui ", - "Yan ", - "Chuan ", - "Chi ", - "Ti ", - "Yu ", - "Shi ", - "Zhen ", - "You ", - "Yun ", - "E ", - "Bian ", - "Guo ", - "E ", - "Xia ", - "Huang ", - "Qiu ", - "Dao ", - "Da ", - "Wei ", - "Appare ", - "Yi ", - "Gou ", - "Yao ", - "Chu ", - "Liu ", - "Xun ", - "Ta ", - "Di ", - "Chi ", - "Yuan ", - "Su ", - "Ta ", - "Qian ", - "[?] ", - "Yao ", - "Guan ", - "Zhang ", - "Ao ", - "Shi ", - "Ce ", - "Chi ", - "Su ", - "Zao ", - "Zhe ", - "Dun ", - "Di ", - "Lou ", - "Chi ", - "Cuo ", - "Lin ", - "Zun ", - "Rao ", - "Qian ", - "Xuan ", - "Yu ", - "Yi ", - "Wu ", - "Liao ", - "Ju ", - "Shi ", - "Bi ", - "Yao ", - "Mai ", - "Xie ", - "Sui ", - "Huan ", - "Zhan ", - "Teng ", - "Er ", - "Miao ", - "Bian ", - "Bian ", - "La ", - "Li ", - "Yuan ", - "Yao ", - "Luo ", - "Li ", - "Yi ", - "Ting ", - "Deng ", - "Qi ", - "Yong ", - "Shan ", - "Han ", - "Yu ", - "Mang ", - "Ru ", - "Qiong ", - "[?] ", - "Kuang ", - "Fu ", - "Kang ", - "Bin ", - "Fang ", - "Xing ", - "Na ", - "Xin ", - "Shen ", - "Bang ", - "Yuan ", - "Cun ", - "Huo ", - "Xie ", - "Bang ", - "Wu ", - "Ju ", - "You ", - "Han ", - "Tai ", - "Qiu ", - "Bi ", - "Pei ", - "Bing ", - "Shao ", - "Bei ", - "Wa ", - "Di ", - "Zou ", - "Ye ", - "Lin ", - "Kuang ", - "Gui ", - "Zhu ", - "Shi ", - "Ku ", - "Yu ", - "Gai ", - "Ge ", - "Xi ", - "Zhi ", - "Ji ", - "Xun ", - "Hou ", - "Xing ", - "Jiao ", - "Xi ", - "Gui ", - "Nuo ", - "Lang ", - "Jia ", - "Kuai ", - "Zheng ", - "Otoko ", - "Yun ", - "Yan ", - "Cheng ", - "Dou ", - "Chi ", - "Lu ", - "Fu ", - "Wu ", - "Fu ", - "Gao ", - "Hao ", - "Lang ", - "Jia ", - "Geng ", - "Jun ", - "Ying ", - "Bo ", - "Xi ", - "Bei ", - "Li ", - "Yun ", - "Bu ", - "Xiao ", - "Qi ", - "Pi ", - "Qing ", - "Guo ", - "Zhou ", - "Tan ", - "Zou ", - "Ping ", - "Lai ", - "Ni ", - "Chen ", - "You ", - "Bu ", - "Xiang ", - "Dan ", - "Ju ", - "Yong ", - "Qiao ", - "Yi ", - "Du ", - "Yan ", - "Mei ", - "Ruo ", - "Bei ", - "E ", - "Yu ", - "Juan ", - "Yu ", - "Yun ", - "Hou ", - "Kui ", - "Xiang ", - "Xiang ", - "Sou ", - "Tang ", - "Ming ", - "Xi ", - "Ru ", - "Chu ", - "Zi ", - "Zou ", - "Ju ", - "Wu ", - "Xiang ", - "Yun ", - "Hao ", - "Yong ", - "Bi ", - "Mo ", - "Chao ", - "Fu ", - "Liao ", - "Yin ", - "Zhuan ", - "Hu ", - "Qiao ", - "Yan ", - "Zhang ", - "Fan ", - "Qiao ", - "Xu ", - "Deng ", - "Bi ", - "Xin ", - "Bi ", - "Ceng ", - "Wei ", - "Zheng ", - "Mao ", - "Shan ", - "Lin ", - "Po ", - "Dan ", - "Meng ", - "Ye ", - "Cao ", - "Kuai ", - "Feng ", - "Meng ", - "Zou ", - "Kuang ", - "Lian ", - "Zan ", - "Chan ", - "You ", - "Qi ", - "Yan ", - "Chan ", - "Zan ", - "Ling ", - "Huan ", - "Xi ", - "Feng ", - "Zan ", - "Li ", - "You ", - "Ding ", - "Qiu ", - "Zhuo ", - "Pei ", - "Zhou ", - "Yi ", - "Hang ", - "Yu ", - "Jiu ", - "Yan ", - "Zui ", - "Mao ", - "Dan ", - "Xu ", - "Tou ", - "Zhen ", - "Fen ", - "Sakenomoto ", - "[?] ", - "Yun ", - "Tai ", - "Tian ", - "Qia ", - "Tuo ", - "Zuo ", - "Han ", - "Gu ", - "Su ", - "Po ", - "Chou ", - "Zai ", - "Ming ", - "Luo ", - "Chuo ", - "Chou ", - "You ", - "Tong ", - "Zhi ", - "Xian ", - "Jiang ", - "Cheng ", - "Yin ", - "Tu ", - "Xiao ", - "Mei ", - "Ku ", - "Suan ", - "Lei ", - "Pu ", - "Zui ", - "Hai ", - "Yan ", - "Xi ", - "Niang ", - "Wei ", - "Lu ", - "Lan ", - "Yan ", - "Tao ", - "Pei ", - "Zhan ", - "Chun ", - "Tan ", - "Zui ", - "Chuo ", - "Cu ", - "Kun ", - "Ti ", - "Mian ", - "Du ", - "Hu ", - "Xu ", - "Xing ", - "Tan ", - "Jiu ", - "Chun ", - "Yun ", - "Po ", - "Ke ", - "Sou ", - "Mi ", - "Quan ", - "Chou ", - "Cuo ", - "Yun ", - "Yong ", - "Ang ", - "Zha ", - "Hai ", - "Tang ", - "Jiang ", - "Piao ", - "Shan ", - "Yu ", - "Li ", - "Zao ", - "Lao ", - "Yi ", - "Jiang ", - "Pu ", - "Jiao ", - "Xi ", - "Tan ", - "Po ", - "Nong ", - "Yi ", - "Li ", - "Ju ", - "Jiao ", - "Yi ", - "Niang ", - "Ru ", - "Xun ", - "Chou ", - "Yan ", - "Ling ", - "Mi ", - "Mi ", - "Niang ", - "Xin ", - "Jiao ", - "Xi ", - "Mi ", - "Yan ", - "Bian ", - "Cai ", - "Shi ", - "You ", - "Shi ", - "Shi ", - "Li ", - "Zhong ", - "Ye ", - "Liang ", - "Li ", - "Jin ", - "Jin ", - "Qiu ", - "Yi ", - "Diao ", - "Dao ", - "Zhao ", - "Ding ", - "Po ", - "Qiu ", - "He ", - "Fu ", - "Zhen ", - "Zhi ", - "Ba ", - "Luan ", - "Fu ", - "Nai ", - "Diao ", - "Shan ", - "Qiao ", - "Kou ", - "Chuan ", - "Zi ", - "Fan ", - "Yu ", - "Hua ", - "Han ", - "Gong ", - "Qi ", - "Mang ", - "Ri ", - "Di ", - "Si ", - "Xi ", - "Yi ", - "Chai ", - "Shi ", - "Tu ", - "Xi ", - "Nu ", - "Qian ", - "Ishiyumi ", - "Jian ", - "Pi ", - "Ye ", - "Yin ", - "Ba ", - "Fang ", - "Chen ", - "Xing ", - "Tou ", - "Yue ", - "Yan ", - "Fu ", - "Pi ", - "Na ", - "Xin ", - "E ", - "Jue ", - "Dun ", - "Gou ", - "Yin ", - "Qian ", - "Ban ", - "Ji ", - "Ren ", - "Chao ", - "Niu ", - "Fen ", - "Yun ", - "Ji ", - "Qin ", - "Pi ", - "Guo ", - "Hong ", - "Yin ", - "Jun ", - "Shi ", - "Yi ", - "Zhong ", - "Nie ", - "Gai ", - "Ri ", - "Huo ", - "Tai ", - "Kang ", - "Habaki ", - "Irori ", - "Ngaak ", - "[?] ", - "Duo ", - "Zi ", - "Ni ", - "Tu ", - "Shi ", - "Min ", - "Gu ", - "E ", - "Ling ", - "Bing ", - "Yi ", - "Gu ", - "Ba ", - "Pi ", - "Yu ", - "Si ", - "Zuo ", - "Bu ", - "You ", - "Dian ", - "Jia ", - "Zhen ", - "Shi ", - "Shi ", - "Tie ", - "Ju ", - "Zhan ", - "Shi ", - "She ", - "Xuan ", - "Zhao ", - "Bao ", - "He ", - "Bi ", - "Sheng ", - "Chu ", - "Shi ", - "Bo ", - "Zhu ", - "Chi ", - "Za ", - "Po ", - "Tong ", - "Qian ", - "Fu ", - "Zhai ", - "Liu ", - "Qian ", - "Fu ", - "Li ", - "Yue ", - "Pi ", - "Yang ", - "Ban ", - "Bo ", - "Jie ", - "Gou ", - "Shu ", - "Zheng ", - "Mu ", - "Ni ", - "Nie ", - "Di ", - "Jia ", - "Mu ", - "Dan ", - "Shen ", - "Yi ", - "Si ", - "Kuang ", - "Ka ", - "Bei ", - "Jian ", - "Tong ", - "Xing ", - "Hong ", - "Jiao ", - "Chi ", - "Er ", - "Ge ", - "Bing ", - "Shi ", - "Mou ", - "Jia ", - "Yin ", - "Jun ", - "Zhou ", - "Chong ", - "Shang ", - "Tong ", - "Mo ", - "Lei ", - "Ji ", - "Yu ", - "Xu ", - "Ren ", - "Zun ", - "Zhi ", - "Qiong ", - "Shan ", - "Chi ", - "Xian ", - "Xing ", - "Quan ", - "Pi ", - "Tie ", - "Zhu ", - "Hou ", - "Ming ", - "Kua ", - "Yao ", - "Xian ", - "Xian ", - "Xiu ", - "Jun ", - "Cha ", - "Lao ", - "Ji ", - "Pi ", - "Ru ", - "Mi ", - "Yi ", - "Yin ", - "Guang ", - "An ", - "Diou ", - "You ", - "Se ", - "Kao ", - "Qian ", - "Luan ", - "Kasugai ", - "Ai ", - "Diao ", - "Han ", - "Rui ", - "Shi ", - "Keng ", - "Qiu ", - "Xiao ", - "Zhe ", - "Xiu ", - "Zang ", - "Ti ", - "Cuo ", - "Gua ", - "Gong ", - "Zhong ", - "Dou ", - "Lu ", - "Mei ", - "Lang ", - "Wan ", - "Xin ", - "Yun ", - "Bei ", - "Wu ", - "Su ", - "Yu ", - "Chan ", - "Ting ", - "Bo ", - "Han ", - "Jia ", - "Hong ", - "Cuan ", - "Feng ", - "Chan ", - "Wan ", - "Zhi ", - "Si ", - "Xuan ", - "Wu ", - "Wu ", - "Tiao ", - "Gong ", - "Zhuo ", - "Lue ", - "Xing ", - "Qian ", - "Shen ", - "Han ", - "Lue ", - "Xie ", - "Chu ", - "Zheng ", - "Ju ", - "Xian ", - "Tie ", - "Mang ", - "Pu ", - "Li ", - "Pan ", - "Rui ", - "Cheng ", - "Gao ", - "Li ", - "Te ", - "Pyeng ", - "Zhu ", - "[?] ", - "Tu ", - "Liu ", - "Zui ", - "Ju ", - "Chang ", - "Yuan ", - "Jian ", - "Gang ", - "Diao ", - "Tao ", - "Chang ", - "Lun ", - "Kua ", - "Ling ", - "Bei ", - "Lu ", - "Li ", - "Qiang ", - "Pou ", - "Juan ", - "Min ", - "Zui ", - "Peng ", - "An ", - "Pi ", - "Xian ", - "Ya ", - "Zhui ", - "Lei ", - "A ", - "Kong ", - "Ta ", - "Kun ", - "Du ", - "Wei ", - "Chui ", - "Zi ", - "Zheng ", - "Ben ", - "Nie ", - "Cong ", - "Qun ", - "Tan ", - "Ding ", - "Qi ", - "Qian ", - "Zhuo ", - "Qi ", - "Yu ", - "Jin ", - "Guan ", - "Mao ", - "Chang ", - "Tian ", - "Xi ", - "Lian ", - "Tao ", - "Gu ", - "Cuo ", - "Shu ", - "Zhen ", - "Lu ", - "Meng ", - "Lu ", - "Hua ", - "Biao ", - "Ga ", - "Lai ", - "Ken ", - "Kazari ", - "Bu ", - "Nai ", - "Wan ", - "Zan ", - "[?] ", - "De ", - "Xian ", - "[?] ", - "Huo ", - "Liang ", - "[?] ", - "Men ", - "Kai ", - "Ying ", - "Di ", - "Lian ", - "Guo ", - "Xian ", - "Du ", - "Tu ", - "Wei ", - "Cong ", - "Fu ", - "Rou ", - "Ji ", - "E ", - "Rou ", - "Chen ", - "Ti ", - "Zha ", - "Hong ", - "Yang ", - "Duan ", - "Xia ", - "Yu ", - "Keng ", - "Xing ", - "Huang ", - "Wei ", - "Fu ", - "Zhao ", - "Cha ", - "Qie ", - "She ", - "Hong ", - "Kui ", - "Tian ", - "Mou ", - "Qiao ", - "Qiao ", - "Hou ", - "Tou ", - "Cong ", - "Huan ", - "Ye ", - "Min ", - "Jian ", - "Duan ", - "Jian ", - "Song ", - "Kui ", - "Hu ", - "Xuan ", - "Duo ", - "Jie ", - "Zhen ", - "Bian ", - "Zhong ", - "Zi ", - "Xiu ", - "Ye ", - "Mei ", - "Pai ", - "Ai ", - "Jie ", - "[?] ", - "Mei ", - "Chuo ", - "Ta ", - "Bang ", - "Xia ", - "Lian ", - "Suo ", - "Xi ", - "Liu ", - "Zu ", - "Ye ", - "Nou ", - "Weng ", - "Rong ", - "Tang ", - "Suo ", - "Qiang ", - "Ge ", - "Shuo ", - "Chui ", - "Bo ", - "Pan ", - "Sa ", - "Bi ", - "Sang ", - "Gang ", - "Zi ", - "Wu ", - "Ying ", - "Huang ", - "Tiao ", - "Liu ", - "Kai ", - "Sun ", - "Sha ", - "Sou ", - "Wan ", - "Hao ", - "Zhen ", - "Zhen ", - "Luo ", - "Yi ", - "Yuan ", - "Tang ", - "Nie ", - "Xi ", - "Jia ", - "Ge ", - "Ma ", - "Juan ", - "Kasugai ", - "Habaki ", - "Suo ", - "[?] ", - "[?] ", - "[?] ", - "Na ", - "Lu ", - "Suo ", - "Ou ", - "Zu ", - "Tuan ", - "Xiu ", - "Guan ", - "Xuan ", - "Lian ", - "Shou ", - "Ao ", - "Man ", - "Mo ", - "Luo ", - "Bi ", - "Wei ", - "Liu ", - "Di ", - "Qiao ", - "Cong ", - "Yi ", - "Lu ", - "Ao ", - "Keng ", - "Qiang ", - "Cui ", - "Qi ", - "Chang ", - "Tang ", - "Man ", - "Yong ", - "Chan ", - "Feng ", - "Jing ", - "Biao ", - "Shu ", - "Lou ", - "Xiu ", - "Cong ", - "Long ", - "Zan ", - "Jian ", - "Cao ", - "Li ", - "Xia ", - "Xi ", - "Kang ", - "[?] ", - "Beng ", - "[?] ", - "[?] ", - "Zheng ", - "Lu ", - "Hua ", - "Ji ", - "Pu ", - "Hui ", - "Qiang ", - "Po ", - "Lin ", - "Suo ", - "Xiu ", - "San ", - "Cheng ", - "Kui ", - "Si ", - "Liu ", - "Nao ", - "Heng ", - "Pie ", - "Sui ", - "Fan ", - "Qiao ", - "Quan ", - "Yang ", - "Tang ", - "Xiang ", - "Jue ", - "Jiao ", - "Zun ", - "Liao ", - "Jie ", - "Lao ", - "Dui ", - "Tan ", - "Zan ", - "Ji ", - "Jian ", - "Zhong ", - "Deng ", - "Ya ", - "Ying ", - "Dui ", - "Jue ", - "Nou ", - "Ti ", - "Pu ", - "Tie ", - "[?] ", - "[?] ", - "Ding ", - "Shan ", - "Kai ", - "Jian ", - "Fei ", - "Sui ", - "Lu ", - "Juan ", - "Hui ", - "Yu ", - "Lian ", - "Zhuo ", - "Qiao ", - "Qian ", - "Zhuo ", - "Lei ", - "Bi ", - "Tie ", - "Huan ", - "Ye ", - "Duo ", - "Guo ", - "Dang ", - "Ju ", - "Fen ", - "Da ", - "Bei ", - "Yi ", - "Ai ", - "Zong ", - "Xun ", - "Diao ", - "Zhu ", - "Heng ", - "Zhui ", - "Ji ", - "Nie ", - "Ta ", - "Huo ", - "Qing ", - "Bin ", - "Ying ", - "Kui ", - "Ning ", - "Xu ", - "Jian ", - "Jian ", - "Yari ", - "Cha ", - "Zhi ", - "Mie ", - "Li ", - "Lei ", - "Ji ", - "Zuan ", - "Kuang ", - "Shang ", - "Peng ", - "La ", - "Du ", - "Shuo ", - "Chuo ", - "Lu ", - "Biao ", - "Bao ", - "Lu ", - "[?] ", - "[?] ", - "Long ", - "E ", - "Lu ", - "Xin ", - "Jian ", - "Lan ", - "Bo ", - "Jian ", - "Yao ", - "Chan ", - "Xiang ", - "Jian ", - "Xi ", - "Guan ", - "Cang ", - "Nie ", - "Lei ", - "Cuan ", - "Qu ", - "Pan ", - "Luo ", - "Zuan ", - "Luan ", - "Zao ", - "Nie ", - "Jue ", - "Tang ", - "Shu ", - "Lan ", - "Jin ", - "Qiu ", - "Yi ", - "Zhen ", - "Ding ", - "Zhao ", - "Po ", - "Diao ", - "Tu ", - "Qian ", - "Chuan ", - "Shan ", - "Ji ", - "Fan ", - "Diao ", - "Men ", - "Nu ", - "Xi ", - "Chai ", - "Xing ", - "Gai ", - "Bu ", - "Tai ", - "Ju ", - "Dun ", - "Chao ", - "Zhong ", - "Na ", - "Bei ", - "Gang ", - "Ban ", - "Qian ", - "Yao ", - "Qin ", - "Jun ", - "Wu ", - "Gou ", - "Kang ", - "Fang ", - "Huo ", - "Tou ", - "Niu ", - "Ba ", - "Yu ", - "Qian ", - "Zheng ", - "Qian ", - "Gu ", - "Bo ", - "E ", - "Po ", - "Bu ", - "Ba ", - "Yue ", - "Zuan ", - "Mu ", - "Dan ", - "Jia ", - "Dian ", - "You ", - "Tie ", - "Bo ", - "Ling ", - "Shuo ", - "Qian ", - "Liu ", - "Bao ", - "Shi ", - "Xuan ", - "She ", - "Bi ", - "Ni ", - "Pi ", - "Duo ", - "Xing ", - "Kao ", - "Lao ", - "Er ", - "Mang ", - "Ya ", - "You ", - "Cheng ", - "Jia ", - "Ye ", - "Nao ", - "Zhi ", - "Dang ", - "Tong ", - "Lu ", - "Diao ", - "Yin ", - "Kai ", - "Zha ", - "Zhu ", - "Xian ", - "Ting ", - "Diu ", - "Xian ", - "Hua ", - "Quan ", - "Sha ", - "Jia ", - "Yao ", - "Ge ", - "Ming ", - "Zheng ", - "Se ", - "Jiao ", - "Yi ", - "Chan ", - "Chong ", - "Tang ", - "An ", - "Yin ", - "Ru ", - "Zhu ", - "Lao ", - "Pu ", - "Wu ", - "Lai ", - "Te ", - "Lian ", - "Keng ", - "Xiao ", - "Suo ", - "Li ", - "Zheng ", - "Chu ", - "Guo ", - "Gao ", - "Tie ", - "Xiu ", - "Cuo ", - "Lue ", - "Feng ", - "Xin ", - "Liu ", - "Kai ", - "Jian ", - "Rui ", - "Ti ", - "Lang ", - "Qian ", - "Ju ", - "A ", - "Qiang ", - "Duo ", - "Tian ", - "Cuo ", - "Mao ", - "Ben ", - "Qi ", - "De ", - "Kua ", - "Kun ", - "Chang ", - "Xi ", - "Gu ", - "Luo ", - "Chui ", - "Zhui ", - "Jin ", - "Zhi ", - "Xian ", - "Juan ", - "Huo ", - "Pou ", - "Tan ", - "Ding ", - "Jian ", - "Ju ", - "Meng ", - "Zi ", - "Qie ", - "Ying ", - "Kai ", - "Qiang ", - "Song ", - "E ", - "Cha ", - "Qiao ", - "Zhong ", - "Duan ", - "Sou ", - "Huang ", - "Huan ", - "Ai ", - "Du ", - "Mei ", - "Lou ", - "Zi ", - "Fei ", - "Mei ", - "Mo ", - "Zhen ", - "Bo ", - "Ge ", - "Nie ", - "Tang ", - "Juan ", - "Nie ", - "Na ", - "Liu ", - "Hao ", - "Bang ", - "Yi ", - "Jia ", - "Bin ", - "Rong ", - "Biao ", - "Tang ", - "Man ", - "Luo ", - "Beng ", - "Yong ", - "Jing ", - "Di ", - "Zu ", - "Xuan ", - "Liu ", - "Tan ", - "Jue ", - "Liao ", - "Pu ", - "Lu ", - "Dui ", - "Lan ", - "Pu ", - "Cuan ", - "Qiang ", - "Deng ", - "Huo ", - "Lei ", - "Huan ", - "Zhuo ", - "Lian ", - "Yi ", - "Cha ", - "Biao ", - "La ", - "Chan ", - "Xiang ", - "Chang ", - "Chang ", - "Jiu ", - "Ao ", - "Die ", - "Qu ", - "Liao ", - "Mi ", - "Chang ", - "Men ", - "Ma ", - "Shuan ", - "Shan ", - "Huo ", - "Men ", - "Yan ", - "Bi ", - "Han ", - "Bi ", - "San ", - "Kai ", - "Kang ", - "Beng ", - "Hong ", - "Run ", - "San ", - "Xian ", - "Xian ", - "Jian ", - "Min ", - "Xia ", - "Yuru ", - "Dou ", - "Zha ", - "Nao ", - "Jian ", - "Peng ", - "Xia ", - "Ling ", - "Bian ", - "Bi ", - "Run ", - "He ", - "Guan ", - "Ge ", - "Ge ", - "Fa ", - "Chu ", - "Hong ", - "Gui ", - "Min ", - "Se ", - "Kun ", - "Lang ", - "Lu ", - "Ting ", - "Sha ", - "Ju ", - "Yue ", - "Yue ", - "Chan ", - "Qu ", - "Lin ", - "Chang ", - "Shai ", - "Kun ", - "Yan ", - "Min ", - "Yan ", - "E ", - "Hun ", - "Yu ", - "Wen ", - "Xiang ", - "Bao ", - "Xiang ", - "Qu ", - "Yao ", - "Wen ", - "Ban ", - "An ", - "Wei ", - "Yin ", - "Kuo ", - "Que ", - "Lan ", - "Du ", - "[?] ", - "Phwung ", - "Tian ", - "Nie ", - "Ta ", - "Kai ", - "He ", - "Que ", - "Chuang ", - "Guan ", - "Dou ", - "Qi ", - "Kui ", - "Tang ", - "Guan ", - "Piao ", - "Kan ", - "Xi ", - "Hui ", - "Chan ", - "Pi ", - "Dang ", - "Huan ", - "Ta ", - "Wen ", - "[?] ", - "Men ", - "Shuan ", - "Shan ", - "Yan ", - "Han ", - "Bi ", - "Wen ", - "Chuang ", - "Run ", - "Wei ", - "Xian ", - "Hong ", - "Jian ", - "Min ", - "Kang ", - "Men ", - "Zha ", - "Nao ", - "Gui ", - "Wen ", - "Ta ", - "Min ", - "Lu ", - "Kai ", - "Fa ", - "Ge ", - "He ", - "Kun ", - "Jiu ", - "Yue ", - "Lang ", - "Du ", - "Yu ", - "Yan ", - "Chang ", - "Xi ", - "Wen ", - "Hun ", - "Yan ", - "E ", - "Chan ", - "Lan ", - "Qu ", - "Hui ", - "Kuo ", - "Que ", - "Ge ", - "Tian ", - "Ta ", - "Que ", - "Kan ", - "Huan ", - "Fu ", - "Fu ", - "Le ", - "Dui ", - "Xin ", - "Qian ", - "Wu ", - "Yi ", - "Tuo ", - "Yin ", - "Yang ", - "Dou ", - "E ", - "Sheng ", - "Ban ", - "Pei ", - "Keng ", - "Yun ", - "Ruan ", - "Zhi ", - "Pi ", - "Jing ", - "Fang ", - "Yang ", - "Yin ", - "Zhen ", - "Jie ", - "Cheng ", - "E ", - "Qu ", - "Di ", - "Zu ", - "Zuo ", - "Dian ", - "Ling ", - "A ", - "Tuo ", - "Tuo ", - "Po ", - "Bing ", - "Fu ", - "Ji ", - "Lu ", - "Long ", - "Chen ", - "Xing ", - "Duo ", - "Lou ", - "Mo ", - "Jiang ", - "Shu ", - "Duo ", - "Xian ", - "Er ", - "Gui ", - "Yu ", - "Gai ", - "Shan ", - "Xun ", - "Qiao ", - "Xing ", - "Chun ", - "Fu ", - "Bi ", - "Xia ", - "Shan ", - "Sheng ", - "Zhi ", - "Pu ", - "Dou ", - "Yuan ", - "Zhen ", - "Chu ", - "Xian ", - "Tou ", - "Nie ", - "Yun ", - "Xian ", - "Pei ", - "Pei ", - "Zou ", - "Yi ", - "Dui ", - "Lun ", - "Yin ", - "Ju ", - "Chui ", - "Chen ", - "Pi ", - "Ling ", - "Tao ", - "Xian ", - "Lu ", - "Sheng ", - "Xian ", - "Yin ", - "Zhu ", - "Yang ", - "Reng ", - "Shan ", - "Chong ", - "Yan ", - "Yin ", - "Yu ", - "Ti ", - "Yu ", - "Long ", - "Wei ", - "Wei ", - "Nie ", - "Dui ", - "Sui ", - "An ", - "Huang ", - "Jie ", - "Sui ", - "Yin ", - "Gai ", - "Yan ", - "Hui ", - "Ge ", - "Yun ", - "Wu ", - "Wei ", - "Ai ", - "Xi ", - "Tang ", - "Ji ", - "Zhang ", - "Dao ", - "Ao ", - "Xi ", - "Yin ", - "[?] ", - "Rao ", - "Lin ", - "Tui ", - "Deng ", - "Pi ", - "Sui ", - "Sui ", - "Yu ", - "Xian ", - "Fen ", - "Ni ", - "Er ", - "Ji ", - "Dao ", - "Xi ", - "Yin ", - "E ", - "Hui ", - "Long ", - "Xi ", - "Li ", - "Li ", - "Li ", - "Zhui ", - "He ", - "Zhi ", - "Zhun ", - "Jun ", - "Nan ", - "Yi ", - "Que ", - "Yan ", - "Qian ", - "Ya ", - "Xiong ", - "Ya ", - "Ji ", - "Gu ", - "Huan ", - "Zhi ", - "Gou ", - "Jun ", - "Ci ", - "Yong ", - "Ju ", - "Chu ", - "Hu ", - "Za ", - "Luo ", - "Yu ", - "Chou ", - "Diao ", - "Sui ", - "Han ", - "Huo ", - "Shuang ", - "Guan ", - "Chu ", - "Za ", - "Yong ", - "Ji ", - "Xi ", - "Chou ", - "Liu ", - "Li ", - "Nan ", - "Xue ", - "Za ", - "Ji ", - "Ji ", - "Yu ", - "Yu ", - "Xue ", - "Na ", - "Fou ", - "Se ", - "Mu ", - "Wen ", - "Fen ", - "Pang ", - "Yun ", - "Li ", - "Li ", - "Ang ", - "Ling ", - "Lei ", - "An ", - "Bao ", - "Meng ", - "Dian ", - "Dang ", - "Xing ", - "Wu ", - "Zhao ", - "Xu ", - "Ji ", - "Mu ", - "Chen ", - "Xiao ", - "Zha ", - "Ting ", - "Zhen ", - "Pei ", - "Mei ", - "Ling ", - "Qi ", - "Chou ", - "Huo ", - "Sha ", - "Fei ", - "Weng ", - "Zhan ", - "Yin ", - "Ni ", - "Chou ", - "Tun ", - "Lin ", - "[?] ", - "Dong ", - "Ying ", - "Wu ", - "Ling ", - "Shuang ", - "Ling ", - "Xia ", - "Hong ", - "Yin ", - "Mo ", - "Mai ", - "Yun ", - "Liu ", - "Meng ", - "Bin ", - "Wu ", - "Wei ", - "Huo ", - "Yin ", - "Xi ", - "Yi ", - "Ai ", - "Dan ", - "Deng ", - "Xian ", - "Yu ", - "Lu ", - "Long ", - "Dai ", - "Ji ", - "Pang ", - "Yang ", - "Ba ", - "Pi ", - "Wei ", - "[?] ", - "Xi ", - "Ji ", - "Mai ", - "Meng ", - "Meng ", - "Lei ", - "Li ", - "Huo ", - "Ai ", - "Fei ", - "Dai ", - "Long ", - "Ling ", - "Ai ", - "Feng ", - "Li ", - "Bao ", - "[?] ", - "He ", - "He ", - "Bing ", - "Qing ", - "Qing ", - "Jing ", - "Tian ", - "Zhen ", - "Jing ", - "Cheng ", - "Qing ", - "Jing ", - "Jing ", - "Dian ", - "Jing ", - "Tian ", - "Fei ", - "Fei ", - "Kao ", - "Mi ", - "Mian ", - "Mian ", - "Pao ", - "Ye ", - "Tian ", - "Hui ", - "Ye ", - "Ge ", - "Ding ", - "Cha ", - "Jian ", - "Ren ", - "Di ", - "Du ", - "Wu ", - "Ren ", - "Qin ", - "Jin ", - "Xue ", - "Niu ", - "Ba ", - "Yin ", - "Sa ", - "Na ", - "Mo ", - "Zu ", - "Da ", - "Ban ", - "Yi ", - "Yao ", - "Tao ", - "Tuo ", - "Jia ", - "Hong ", - "Pao ", - "Yang ", - "Tomo ", - "Yin ", - "Jia ", - "Tao ", - "Ji ", - "Xie ", - "An ", - "An ", - "Hen ", - "Gong ", - "Kohaze ", - "Da ", - "Qiao ", - "Ting ", - "Wan ", - "Ying ", - "Sui ", - "Tiao ", - "Qiao ", - "Xuan ", - "Kong ", - "Beng ", - "Ta ", - "Zhang ", - "Bing ", - "Kuo ", - "Ju ", - "La ", - "Xie ", - "Rou ", - "Bang ", - "Yi ", - "Qiu ", - "Qiu ", - "He ", - "Xiao ", - "Mu ", - "Ju ", - "Jian ", - "Bian ", - "Di ", - "Jian ", - "On ", - "Tao ", - "Gou ", - "Ta ", - "Bei ", - "Xie ", - "Pan ", - "Ge ", - "Bi ", - "Kuo ", - "Tang ", - "Lou ", - "Gui ", - "Qiao ", - "Xue ", - "Ji ", - "Jian ", - "Jiang ", - "Chan ", - "Da ", - "Huo ", - "Xian ", - "Qian ", - "Du ", - "Wa ", - "Jian ", - "Lan ", - "Wei ", - "Ren ", - "Fu ", - "Mei ", - "Juan ", - "Ge ", - "Wei ", - "Qiao ", - "Han ", - "Chang ", - "[?] ", - "Rou ", - "Xun ", - "She ", - "Wei ", - "Ge ", - "Bei ", - "Tao ", - "Gou ", - "Yun ", - "[?] ", - "Bi ", - "Wei ", - "Hui ", - "Du ", - "Wa ", - "Du ", - "Wei ", - "Ren ", - "Fu ", - "Han ", - "Wei ", - "Yun ", - "Tao ", - "Jiu ", - "Jiu ", - "Xian ", - "Xie ", - "Xian ", - "Ji ", - "Yin ", - "Za ", - "Yun ", - "Shao ", - "Le ", - "Peng ", - "Heng ", - "Ying ", - "Yun ", - "Peng ", - "Yin ", - "Yin ", - "Xiang ", - "Hu ", - "Ye ", - "Ding ", - "Qing ", - "Pan ", - "Xiang ", - "Shun ", - "Han ", - "Xu ", - "Yi ", - "Xu ", - "Gu ", - "Song ", - "Kui ", - "Qi ", - "Hang ", - "Yu ", - "Wan ", - "Ban ", - "Dun ", - "Di ", - "Dan ", - "Pan ", - "Po ", - "Ling ", - "Ce ", - "Jing ", - "Lei ", - "He ", - "Qiao ", - "E ", - "E ", - "Wei ", - "Jie ", - "Gua ", - "Shen ", - "Yi ", - "Shen ", - "Hai ", - "Dui ", - "Pian ", - "Ping ", - "Lei ", - "Fu ", - "Jia ", - "Tou ", - "Hui ", - "Kui ", - "Jia ", - "Le ", - "Tian ", - "Cheng ", - "Ying ", - "Jun ", - "Hu ", - "Han ", - "Jing ", - "Tui ", - "Tui ", - "Pin ", - "Lai ", - "Tui ", - "Zi ", - "Zi ", - "Chui ", - "Ding ", - "Lai ", - "Yan ", - "Han ", - "Jian ", - "Ke ", - "Cui ", - "Jiong ", - "Qin ", - "Yi ", - "Sai ", - "Ti ", - "E ", - "E ", - "Yan ", - "Hun ", - "Kan ", - "Yong ", - "Zhuan ", - "Yan ", - "Xian ", - "Xin ", - "Yi ", - "Yuan ", - "Sang ", - "Dian ", - "Dian ", - "Jiang ", - "Ku ", - "Lei ", - "Liao ", - "Piao ", - "Yi ", - "Man ", - "Qi ", - "Rao ", - "Hao ", - "Qiao ", - "Gu ", - "Xun ", - "Qian ", - "Hui ", - "Zhan ", - "Ru ", - "Hong ", - "Bin ", - "Xian ", - "Pin ", - "Lu ", - "Lan ", - "Nie ", - "Quan ", - "Ye ", - "Ding ", - "Qing ", - "Han ", - "Xiang ", - "Shun ", - "Xu ", - "Xu ", - "Wan ", - "Gu ", - "Dun ", - "Qi ", - "Ban ", - "Song ", - "Hang ", - "Yu ", - "Lu ", - "Ling ", - "Po ", - "Jing ", - "Jie ", - "Jia ", - "Tian ", - "Han ", - "Ying ", - "Jiong ", - "Hai ", - "Yi ", - "Pin ", - "Hui ", - "Tui ", - "Han ", - "Ying ", - "Ying ", - "Ke ", - "Ti ", - "Yong ", - "E ", - "Zhuan ", - "Yan ", - "E ", - "Nie ", - "Man ", - "Dian ", - "Sang ", - "Hao ", - "Lei ", - "Zhan ", - "Ru ", - "Pin ", - "Quan ", - "Feng ", - "Biao ", - "Oroshi ", - "Fu ", - "Xia ", - "Zhan ", - "Biao ", - "Sa ", - "Ba ", - "Tai ", - "Lie ", - "Gua ", - "Xuan ", - "Shao ", - "Ju ", - "Bi ", - "Si ", - "Wei ", - "Yang ", - "Yao ", - "Sou ", - "Kai ", - "Sao ", - "Fan ", - "Liu ", - "Xi ", - "Liao ", - "Piao ", - "Piao ", - "Liu ", - "Biao ", - "Biao ", - "Biao ", - "Liao ", - "[?] ", - "Se ", - "Feng ", - "Biao ", - "Feng ", - "Yang ", - "Zhan ", - "Biao ", - "Sa ", - "Ju ", - "Si ", - "Sou ", - "Yao ", - "Liu ", - "Piao ", - "Biao ", - "Biao ", - "Fei ", - "Fan ", - "Fei ", - "Fei ", - "Shi ", - "Shi ", - "Can ", - "Ji ", - "Ding ", - "Si ", - "Tuo ", - "Zhan ", - "Sun ", - "Xiang ", - "Tun ", - "Ren ", - "Yu ", - "Juan ", - "Chi ", - "Yin ", - "Fan ", - "Fan ", - "Sun ", - "Yin ", - "Zhu ", - "Yi ", - "Zhai ", - "Bi ", - "Jie ", - "Tao ", - "Liu ", - "Ci ", - "Tie ", - "Si ", - "Bao ", - "Shi ", - "Duo ", - "Hai ", - "Ren ", - "Tian ", - "Jiao ", - "Jia ", - "Bing ", - "Yao ", - "Tong ", - "Ci ", - "Xiang ", - "Yang ", - "Yang ", - "Er ", - "Yan ", - "Le ", - "Yi ", - "Can ", - "Bo ", - "Nei ", - "E ", - "Bu ", - "Jun ", - "Dou ", - "Su ", - "Yu ", - "Shi ", - "Yao ", - "Hun ", - "Guo ", - "Shi ", - "Jian ", - "Zhui ", - "Bing ", - "Xian ", - "Bu ", - "Ye ", - "Tan ", - "Fei ", - "Zhang ", - "Wei ", - "Guan ", - "E ", - "Nuan ", - "Hun ", - "Hu ", - "Huang ", - "Tie ", - "Hui ", - "Jian ", - "Hou ", - "He ", - "Xing ", - "Fen ", - "Wei ", - "Gu ", - "Cha ", - "Song ", - "Tang ", - "Bo ", - "Gao ", - "Xi ", - "Kui ", - "Liu ", - "Sou ", - "Tao ", - "Ye ", - "Yun ", - "Mo ", - "Tang ", - "Man ", - "Bi ", - "Yu ", - "Xiu ", - "Jin ", - "San ", - "Kui ", - "Zhuan ", - "Shan ", - "Chi ", - "Dan ", - "Yi ", - "Ji ", - "Rao ", - "Cheng ", - "Yong ", - "Tao ", - "Hui ", - "Xiang ", - "Zhan ", - "Fen ", - "Hai ", - "Meng ", - "Yan ", - "Mo ", - "Chan ", - "Xiang ", - "Luo ", - "Zuan ", - "Nang ", - "Shi ", - "Ding ", - "Ji ", - "Tuo ", - "Xing ", - "Tun ", - "Xi ", - "Ren ", - "Yu ", - "Chi ", - "Fan ", - "Yin ", - "Jian ", - "Shi ", - "Bao ", - "Si ", - "Duo ", - "Yi ", - "Er ", - "Rao ", - "Xiang ", - "Jia ", - "Le ", - "Jiao ", - "Yi ", - "Bing ", - "Bo ", - "Dou ", - "E ", - "Yu ", - "Nei ", - "Jun ", - "Guo ", - "Hun ", - "Xian ", - "Guan ", - "Cha ", - "Kui ", - "Gu ", - "Sou ", - "Chan ", - "Ye ", - "Mo ", - "Bo ", - "Liu ", - "Xiu ", - "Jin ", - "Man ", - "San ", - "Zhuan ", - "Nang ", - "Shou ", - "Kui ", - "Guo ", - "Xiang ", - "Fen ", - "Ba ", - "Ni ", - "Bi ", - "Bo ", - "Tu ", - "Han ", - "Fei ", - "Jian ", - "An ", - "Ai ", - "Fu ", - "Xian ", - "Wen ", - "Xin ", - "Fen ", - "Bin ", - "Xing ", - "Ma ", - "Yu ", - "Feng ", - "Han ", - "Di ", - "Tuo ", - "Tuo ", - "Chi ", - "Xun ", - "Zhu ", - "Zhi ", - "Pei ", - "Xin ", - "Ri ", - "Sa ", - "Yin ", - "Wen ", - "Zhi ", - "Dan ", - "Lu ", - "You ", - "Bo ", - "Bao ", - "Kuai ", - "Tuo ", - "Yi ", - "Qu ", - "[?] ", - "Qu ", - "Jiong ", - "Bo ", - "Zhao ", - "Yuan ", - "Peng ", - "Zhou ", - "Ju ", - "Zhu ", - "Nu ", - "Ju ", - "Pi ", - "Zang ", - "Jia ", - "Ling ", - "Zhen ", - "Tai ", - "Fu ", - "Yang ", - "Shi ", - "Bi ", - "Tuo ", - "Tuo ", - "Si ", - "Liu ", - "Ma ", - "Pian ", - "Tao ", - "Zhi ", - "Rong ", - "Teng ", - "Dong ", - "Xun ", - "Quan ", - "Shen ", - "Jiong ", - "Er ", - "Hai ", - "Bo ", - "Zhu ", - "Yin ", - "Luo ", - "Shuu ", - "Dan ", - "Xie ", - "Liu ", - "Ju ", - "Song ", - "Qin ", - "Mang ", - "Liang ", - "Han ", - "Tu ", - "Xuan ", - "Tui ", - "Jun ", - "E ", - "Cheng ", - "Xin ", - "Ai ", - "Lu ", - "Zhui ", - "Zhou ", - "She ", - "Pian ", - "Kun ", - "Tao ", - "Lai ", - "Zong ", - "Ke ", - "Qi ", - "Qi ", - "Yan ", - "Fei ", - "Sao ", - "Yan ", - "Jie ", - "Yao ", - "Wu ", - "Pian ", - "Cong ", - "Pian ", - "Qian ", - "Fei ", - "Huang ", - "Jian ", - "Huo ", - "Yu ", - "Ti ", - "Quan ", - "Xia ", - "Zong ", - "Kui ", - "Rou ", - "Si ", - "Gua ", - "Tuo ", - "Kui ", - "Sou ", - "Qian ", - "Cheng ", - "Zhi ", - "Liu ", - "Pang ", - "Teng ", - "Xi ", - "Cao ", - "Du ", - "Yan ", - "Yuan ", - "Zou ", - "Sao ", - "Shan ", - "Li ", - "Zhi ", - "Shuang ", - "Lu ", - "Xi ", - "Luo ", - "Zhang ", - "Mo ", - "Ao ", - "Can ", - "Piao ", - "Cong ", - "Qu ", - "Bi ", - "Zhi ", - "Yu ", - "Xu ", - "Hua ", - "Bo ", - "Su ", - "Xiao ", - "Lin ", - "Chan ", - "Dun ", - "Liu ", - "Tuo ", - "Zeng ", - "Tan ", - "Jiao ", - "Tie ", - "Yan ", - "Luo ", - "Zhan ", - "Jing ", - "Yi ", - "Ye ", - "Tuo ", - "Bin ", - "Zou ", - "Yan ", - "Peng ", - "Lu ", - "Teng ", - "Xiang ", - "Ji ", - "Shuang ", - "Ju ", - "Xi ", - "Huan ", - "Li ", - "Biao ", - "Ma ", - "Yu ", - "Tuo ", - "Xun ", - "Chi ", - "Qu ", - "Ri ", - "Bo ", - "Lu ", - "Zang ", - "Shi ", - "Si ", - "Fu ", - "Ju ", - "Zou ", - "Zhu ", - "Tuo ", - "Nu ", - "Jia ", - "Yi ", - "Tai ", - "Xiao ", - "Ma ", - "Yin ", - "Jiao ", - "Hua ", - "Luo ", - "Hai ", - "Pian ", - "Biao ", - "Li ", - "Cheng ", - "Yan ", - "Xin ", - "Qin ", - "Jun ", - "Qi ", - "Qi ", - "Ke ", - "Zhui ", - "Zong ", - "Su ", - "Can ", - "Pian ", - "Zhi ", - "Kui ", - "Sao ", - "Wu ", - "Ao ", - "Liu ", - "Qian ", - "Shan ", - "Piao ", - "Luo ", - "Cong ", - "Chan ", - "Zou ", - "Ji ", - "Shuang ", - "Xiang ", - "Gu ", - "Wei ", - "Wei ", - "Wei ", - "Yu ", - "Gan ", - "Yi ", - "Ang ", - "Tou ", - "Xie ", - "Bao ", - "Bi ", - "Chi ", - "Ti ", - "Di ", - "Ku ", - "Hai ", - "Qiao ", - "Gou ", - "Kua ", - "Ge ", - "Tui ", - "Geng ", - "Pian ", - "Bi ", - "Ke ", - "Ka ", - "Yu ", - "Sui ", - "Lou ", - "Bo ", - "Xiao ", - "Pang ", - "Bo ", - "Ci ", - "Kuan ", - "Bin ", - "Mo ", - "Liao ", - "Lou ", - "Nao ", - "Du ", - "Zang ", - "Sui ", - "Ti ", - "Bin ", - "Kuan ", - "Lu ", - "Gao ", - "Gao ", - "Qiao ", - "Kao ", - "Qiao ", - "Lao ", - "Zao ", - "Biao ", - "Kun ", - "Kun ", - "Ti ", - "Fang ", - "Xiu ", - "Ran ", - "Mao ", - "Dan ", - "Kun ", - "Bin ", - "Fa ", - "Tiao ", - "Peng ", - "Zi ", - "Fa ", - "Ran ", - "Ti ", - "Pao ", - "Pi ", - "Mao ", - "Fu ", - "Er ", - "Rong ", - "Qu ", - "Gong ", - "Xiu ", - "Gua ", - "Ji ", - "Peng ", - "Zhua ", - "Shao ", - "Sha ", - "Ti ", - "Li ", - "Bin ", - "Zong ", - "Ti ", - "Peng ", - "Song ", - "Zheng ", - "Quan ", - "Zong ", - "Shun ", - "Jian ", - "Duo ", - "Hu ", - "La ", - "Jiu ", - "Qi ", - "Lian ", - "Zhen ", - "Bin ", - "Peng ", - "Mo ", - "San ", - "Man ", - "Man ", - "Seng ", - "Xu ", - "Lie ", - "Qian ", - "Qian ", - "Nong ", - "Huan ", - "Kuai ", - "Ning ", - "Bin ", - "Lie ", - "Rang ", - "Dou ", - "Dou ", - "Nao ", - "Hong ", - "Xi ", - "Dou ", - "Han ", - "Dou ", - "Dou ", - "Jiu ", - "Chang ", - "Yu ", - "Yu ", - "Li ", - "Juan ", - "Fu ", - "Qian ", - "Gui ", - "Zong ", - "Liu ", - "Gui ", - "Shang ", - "Yu ", - "Gui ", - "Mei ", - "Ji ", - "Qi ", - "Jie ", - "Kui ", - "Hun ", - "Ba ", - "Po ", - "Mei ", - "Xu ", - "Yan ", - "Xiao ", - "Liang ", - "Yu ", - "Tui ", - "Qi ", - "Wang ", - "Liang ", - "Wei ", - "Jian ", - "Chi ", - "Piao ", - "Bi ", - "Mo ", - "Ji ", - "Xu ", - "Chou ", - "Yan ", - "Zhan ", - "Yu ", - "Dao ", - "Ren ", - "Ji ", - "Eri ", - "Gong ", - "Tuo ", - "Diao ", - "Ji ", - "Xu ", - "E ", - "E ", - "Sha ", - "Hang ", - "Tun ", - "Mo ", - "Jie ", - "Shen ", - "Fan ", - "Yuan ", - "Bi ", - "Lu ", - "Wen ", - "Hu ", - "Lu ", - "Za ", - "Fang ", - "Fen ", - "Na ", - "You ", - "Namazu ", - "Todo ", - "He ", - "Xia ", - "Qu ", - "Han ", - "Pi ", - "Ling ", - "Tuo ", - "Bo ", - "Qiu ", - "Ping ", - "Fu ", - "Bi ", - "Ji ", - "Wei ", - "Ju ", - "Diao ", - "Bo ", - "You ", - "Gun ", - "Pi ", - "Nian ", - "Xing ", - "Tai ", - "Bao ", - "Fu ", - "Zha ", - "Ju ", - "Gu ", - "Kajika ", - "Tong ", - "[?] ", - "Ta ", - "Jie ", - "Shu ", - "Hou ", - "Xiang ", - "Er ", - "An ", - "Wei ", - "Tiao ", - "Zhu ", - "Yin ", - "Lie ", - "Luo ", - "Tong ", - "Yi ", - "Qi ", - "Bing ", - "Wei ", - "Jiao ", - "Bu ", - "Gui ", - "Xian ", - "Ge ", - "Hui ", - "Bora ", - "Mate ", - "Kao ", - "Gori ", - "Duo ", - "Jun ", - "Ti ", - "Man ", - "Xiao ", - "Za ", - "Sha ", - "Qin ", - "Yu ", - "Nei ", - "Zhe ", - "Gun ", - "Geng ", - "Su ", - "Wu ", - "Qiu ", - "Ting ", - "Fu ", - "Wan ", - "You ", - "Li ", - "Sha ", - "Sha ", - "Gao ", - "Meng ", - "Ugui ", - "Asari ", - "Subashiri ", - "Kazunoko ", - "Yong ", - "Ni ", - "Zi ", - "Qi ", - "Qing ", - "Xiang ", - "Nei ", - "Chun ", - "Ji ", - "Diao ", - "Qie ", - "Gu ", - "Zhou ", - "Dong ", - "Lai ", - "Fei ", - "Ni ", - "Yi ", - "Kun ", - "Lu ", - "Jiu ", - "Chang ", - "Jing ", - "Lun ", - "Ling ", - "Zou ", - "Li ", - "Meng ", - "Zong ", - "Zhi ", - "Nian ", - "Shachi ", - "Dojou ", - "Sukesou ", - "Shi ", - "Shen ", - "Hun ", - "Shi ", - "Hou ", - "Xing ", - "Zhu ", - "La ", - "Zong ", - "Ji ", - "Bian ", - "Bian ", - "Huan ", - "Quan ", - "Ze ", - "Wei ", - "Wei ", - "Yu ", - "Qun ", - "Rou ", - "Die ", - "Huang ", - "Lian ", - "Yan ", - "Qiu ", - "Qiu ", - "Jian ", - "Bi ", - "E ", - "Yang ", - "Fu ", - "Sai ", - "Jian ", - "Xia ", - "Tuo ", - "Hu ", - "Muroaji ", - "Ruo ", - "Haraka ", - "Wen ", - "Jian ", - "Hao ", - "Wu ", - "Fang ", - "Sao ", - "Liu ", - "Ma ", - "Shi ", - "Shi ", - "Yin ", - "Z ", - "Teng ", - "Ta ", - "Yao ", - "Ge ", - "Rong ", - "Qian ", - "Qi ", - "Wen ", - "Ruo ", - "Hatahata ", - "Lian ", - "Ao ", - "Le ", - "Hui ", - "Min ", - "Ji ", - "Tiao ", - "Qu ", - "Jian ", - "Sao ", - "Man ", - "Xi ", - "Qiu ", - "Biao ", - "Ji ", - "Ji ", - "Zhu ", - "Jiang ", - "Qiu ", - "Zhuan ", - "Yong ", - "Zhang ", - "Kang ", - "Xue ", - "Bie ", - "Jue ", - "Qu ", - "Xiang ", - "Bo ", - "Jiao ", - "Xun ", - "Su ", - "Huang ", - "Zun ", - "Shan ", - "Shan ", - "Fan ", - "Jue ", - "Lin ", - "Xun ", - "Miao ", - "Xi ", - "Eso ", - "Kyou ", - "Fen ", - "Guan ", - "Hou ", - "Kuai ", - "Zei ", - "Sao ", - "Zhan ", - "Gan ", - "Gui ", - "Sheng ", - "Li ", - "Chang ", - "Hatahata ", - "Shiira ", - "Mutsu ", - "Ru ", - "Ji ", - "Xu ", - "Huo ", - "Shiira ", - "Li ", - "Lie ", - "Li ", - "Mie ", - "Zhen ", - "Xiang ", - "E ", - "Lu ", - "Guan ", - "Li ", - "Xian ", - "Yu ", - "Dao ", - "Ji ", - "You ", - "Tun ", - "Lu ", - "Fang ", - "Ba ", - "He ", - "Bo ", - "Ping ", - "Nian ", - "Lu ", - "You ", - "Zha ", - "Fu ", - "Bo ", - "Bao ", - "Hou ", - "Pi ", - "Tai ", - "Gui ", - "Jie ", - "Kao ", - "Wei ", - "Er ", - "Tong ", - "Ze ", - "Hou ", - "Kuai ", - "Ji ", - "Jiao ", - "Xian ", - "Za ", - "Xiang ", - "Xun ", - "Geng ", - "Li ", - "Lian ", - "Jian ", - "Li ", - "Shi ", - "Tiao ", - "Gun ", - "Sha ", - "Wan ", - "Jun ", - "Ji ", - "Yong ", - "Qing ", - "Ling ", - "Qi ", - "Zou ", - "Fei ", - "Kun ", - "Chang ", - "Gu ", - "Ni ", - "Nian ", - "Diao ", - "Jing ", - "Shen ", - "Shi ", - "Zi ", - "Fen ", - "Die ", - "Bi ", - "Chang ", - "Shi ", - "Wen ", - "Wei ", - "Sai ", - "E ", - "Qiu ", - "Fu ", - "Huang ", - "Quan ", - "Jiang ", - "Bian ", - "Sao ", - "Ao ", - "Qi ", - "Ta ", - "Yin ", - "Yao ", - "Fang ", - "Jian ", - "Le ", - "Biao ", - "Xue ", - "Bie ", - "Man ", - "Min ", - "Yong ", - "Wei ", - "Xi ", - "Jue ", - "Shan ", - "Lin ", - "Zun ", - "Huo ", - "Gan ", - "Li ", - "Zhan ", - "Guan ", - "Niao ", - "Yi ", - "Fu ", - "Li ", - "Jiu ", - "Bu ", - "Yan ", - "Fu ", - "Diao ", - "Ji ", - "Feng ", - "Nio ", - "Gan ", - "Shi ", - "Feng ", - "Ming ", - "Bao ", - "Yuan ", - "Zhi ", - "Hu ", - "Qin ", - "Fu ", - "Fen ", - "Wen ", - "Jian ", - "Shi ", - "Yu ", - "Fou ", - "Yiao ", - "Jue ", - "Jue ", - "Pi ", - "Huan ", - "Zhen ", - "Bao ", - "Yan ", - "Ya ", - "Zheng ", - "Fang ", - "Feng ", - "Wen ", - "Ou ", - "Te ", - "Jia ", - "Nu ", - "Ling ", - "Mie ", - "Fu ", - "Tuo ", - "Wen ", - "Li ", - "Bian ", - "Zhi ", - "Ge ", - "Yuan ", - "Zi ", - "Qu ", - "Xiao ", - "Zhi ", - "Dan ", - "Ju ", - "You ", - "Gu ", - "Zhong ", - "Yu ", - "Yang ", - "Rong ", - "Ya ", - "Tie ", - "Yu ", - "Shigi ", - "Ying ", - "Zhui ", - "Wu ", - "Er ", - "Gua ", - "Ai ", - "Zhi ", - "Yan ", - "Heng ", - "Jiao ", - "Ji ", - "Lie ", - "Zhu ", - "Ren ", - "Yi ", - "Hong ", - "Luo ", - "Ru ", - "Mou ", - "Ge ", - "Ren ", - "Jiao ", - "Xiu ", - "Zhou ", - "Zhi ", - "Luo ", - "Chidori ", - "Toki ", - "Ten ", - "Luan ", - "Jia ", - "Ji ", - "Yu ", - "Huan ", - "Tuo ", - "Bu ", - "Wu ", - "Juan ", - "Yu ", - "Bo ", - "Xun ", - "Xun ", - "Bi ", - "Xi ", - "Jun ", - "Ju ", - "Tu ", - "Jing ", - "Ti ", - "E ", - "E ", - "Kuang ", - "Hu ", - "Wu ", - "Shen ", - "Lai ", - "Ikaruga ", - "Kakesu ", - "Lu ", - "Ping ", - "Shu ", - "Fu ", - "An ", - "Zhao ", - "Peng ", - "Qin ", - "Qian ", - "Bei ", - "Diao ", - "Lu ", - "Que ", - "Jian ", - "Ju ", - "Tu ", - "Ya ", - "Yuan ", - "Qi ", - "Li ", - "Ye ", - "Zhui ", - "Kong ", - "Zhui ", - "Kun ", - "Sheng ", - "Qi ", - "Jing ", - "Yi ", - "Yi ", - "Jing ", - "Zi ", - "Lai ", - "Dong ", - "Qi ", - "Chun ", - "Geng ", - "Ju ", - "Qu ", - "Isuka ", - "Kikuitadaki ", - "Ji ", - "Shu ", - "[?] ", - "Chi ", - "Miao ", - "Rou ", - "An ", - "Qiu ", - "Ti ", - "Hu ", - "Ti ", - "E ", - "Jie ", - "Mao ", - "Fu ", - "Chun ", - "Tu ", - "Yan ", - "He ", - "Yuan ", - "Pian ", - "Yun ", - "Mei ", - "Hu ", - "Ying ", - "Dun ", - "Mu ", - "Ju ", - "Tsugumi ", - "Cang ", - "Fang ", - "Gu ", - "Ying ", - "Yuan ", - "Xuan ", - "Weng ", - "Shi ", - "He ", - "Chu ", - "Tang ", - "Xia ", - "Ruo ", - "Liu ", - "Ji ", - "Gu ", - "Jian ", - "Zhun ", - "Han ", - "Zi ", - "Zi ", - "Ni ", - "Yao ", - "Yan ", - "Ji ", - "Li ", - "Tian ", - "Kou ", - "Ti ", - "Ti ", - "Ni ", - "Tu ", - "Ma ", - "Jiao ", - "Gao ", - "Tian ", - "Chen ", - "Li ", - "Zhuan ", - "Zhe ", - "Ao ", - "Yao ", - "Yi ", - "Ou ", - "Chi ", - "Zhi ", - "Liao ", - "Rong ", - "Lou ", - "Bi ", - "Shuang ", - "Zhuo ", - "Yu ", - "Wu ", - "Jue ", - "Yin ", - "Quan ", - "Si ", - "Jiao ", - "Yi ", - "Hua ", - "Bi ", - "Ying ", - "Su ", - "Huang ", - "Fan ", - "Jiao ", - "Liao ", - "Yan ", - "Kao ", - "Jiu ", - "Xian ", - "Xian ", - "Tu ", - "Mai ", - "Zun ", - "Yu ", - "Ying ", - "Lu ", - "Tuan ", - "Xian ", - "Xue ", - "Yi ", - "Pi ", - "Shu ", - "Luo ", - "Qi ", - "Yi ", - "Ji ", - "Zhe ", - "Yu ", - "Zhan ", - "Ye ", - "Yang ", - "Pi ", - "Ning ", - "Huo ", - "Mi ", - "Ying ", - "Meng ", - "Di ", - "Yue ", - "Yu ", - "Lei ", - "Bao ", - "Lu ", - "He ", - "Long ", - "Shuang ", - "Yue ", - "Ying ", - "Guan ", - "Qu ", - "Li ", - "Luan ", - "Niao ", - "Jiu ", - "Ji ", - "Yuan ", - "Ming ", - "Shi ", - "Ou ", - "Ya ", - "Cang ", - "Bao ", - "Zhen ", - "Gu ", - "Dong ", - "Lu ", - "Ya ", - "Xiao ", - "Yang ", - "Ling ", - "Zhi ", - "Qu ", - "Yuan ", - "Xue ", - "Tuo ", - "Si ", - "Zhi ", - "Er ", - "Gua ", - "Xiu ", - "Heng ", - "Zhou ", - "Ge ", - "Luan ", - "Hong ", - "Wu ", - "Bo ", - "Li ", - "Juan ", - "Hu ", - "E ", - "Yu ", - "Xian ", - "Ti ", - "Wu ", - "Que ", - "Miao ", - "An ", - "Kun ", - "Bei ", - "Peng ", - "Qian ", - "Chun ", - "Geng ", - "Yuan ", - "Su ", - "Hu ", - "He ", - "E ", - "Gu ", - "Qiu ", - "Zi ", - "Mei ", - "Mu ", - "Ni ", - "Yao ", - "Weng ", - "Liu ", - "Ji ", - "Ni ", - "Jian ", - "He ", - "Yi ", - "Ying ", - "Zhe ", - "Liao ", - "Liao ", - "Jiao ", - "Jiu ", - "Yu ", - "Lu ", - "Xuan ", - "Zhan ", - "Ying ", - "Huo ", - "Meng ", - "Guan ", - "Shuang ", - "Lu ", - "Jin ", - "Ling ", - "Jian ", - "Xian ", - "Cuo ", - "Jian ", - "Jian ", - "Yan ", - "Cuo ", - "Lu ", - "You ", - "Cu ", - "Ji ", - "Biao ", - "Cu ", - "Biao ", - "Zhu ", - "Jun ", - "Zhu ", - "Jian ", - "Mi ", - "Mi ", - "Wu ", - "Liu ", - "Chen ", - "Jun ", - "Lin ", - "Ni ", - "Qi ", - "Lu ", - "Jiu ", - "Jun ", - "Jing ", - "Li ", - "Xiang ", - "Yan ", - "Jia ", - "Mi ", - "Li ", - "She ", - "Zhang ", - "Lin ", - "Jing ", - "Ji ", - "Ling ", - "Yan ", - "Cu ", - "Mai ", - "Mai ", - "Ge ", - "Chao ", - "Fu ", - "Mian ", - "Mian ", - "Fu ", - "Pao ", - "Qu ", - "Qu ", - "Mou ", - "Fu ", - "Xian ", - "Lai ", - "Qu ", - "Mian ", - "[?] ", - "Feng ", - "Fu ", - "Qu ", - "Mian ", - "Ma ", - "Mo ", - "Mo ", - "Hui ", - "Ma ", - "Zou ", - "Nen ", - "Fen ", - "Huang ", - "Huang ", - "Jin ", - "Guang ", - "Tian ", - "Tou ", - "Heng ", - "Xi ", - "Kuang ", - "Heng ", - "Shu ", - "Li ", - "Nian ", - "Chi ", - "Hei ", - "Hei ", - "Yi ", - "Qian ", - "Dan ", - "Xi ", - "Tuan ", - "Mo ", - "Mo ", - "Qian ", - "Dai ", - "Chu ", - "You ", - "Dian ", - "Yi ", - "Xia ", - "Yan ", - "Qu ", - "Mei ", - "Yan ", - "Jing ", - "Yu ", - "Li ", - "Dang ", - "Du ", - "Can ", - "Yin ", - "An ", - "Yan ", - "Tan ", - "An ", - "Zhen ", - "Dai ", - "Can ", - "Yi ", - "Mei ", - "Dan ", - "Yan ", - "Du ", - "Lu ", - "Zhi ", - "Fen ", - "Fu ", - "Fu ", - "Min ", - "Min ", - "Yuan ", - "Cu ", - "Qu ", - "Chao ", - "Wa ", - "Zhu ", - "Zhi ", - "Mang ", - "Ao ", - "Bie ", - "Tuo ", - "Bi ", - "Yuan ", - "Chao ", - "Tuo ", - "Ding ", - "Mi ", - "Nai ", - "Ding ", - "Zi ", - "Gu ", - "Gu ", - "Dong ", - "Fen ", - "Tao ", - "Yuan ", - "Pi ", - "Chang ", - "Gao ", - "Qi ", - "Yuan ", - "Tang ", - "Teng ", - "Shu ", - "Shu ", - "Fen ", - "Fei ", - "Wen ", - "Ba ", - "Diao ", - "Tuo ", - "Tong ", - "Qu ", - "Sheng ", - "Shi ", - "You ", - "Shi ", - "Ting ", - "Wu ", - "Nian ", - "Jing ", - "Hun ", - "Ju ", - "Yan ", - "Tu ", - "Ti ", - "Xi ", - "Xian ", - "Yan ", - "Lei ", - "Bi ", - "Yao ", - "Qiu ", - "Han ", - "Wu ", - "Wu ", - "Hou ", - "Xi ", - "Ge ", - "Zha ", - "Xiu ", - "Weng ", - "Zha ", - "Nong ", - "Nang ", - "Qi ", - "Zhai ", - "Ji ", - "Zi ", - "Ji ", - "Ji ", - "Qi ", - "Ji ", - "Chi ", - "Chen ", - "Chen ", - "He ", - "Ya ", - "Ken ", - "Xie ", - "Pao ", - "Cuo ", - "Shi ", - "Zi ", - "Chi ", - "Nian ", - "Ju ", - "Tiao ", - "Ling ", - "Ling ", - "Chu ", - "Quan ", - "Xie ", - "Ken ", - "Nie ", - "Jiu ", - "Yao ", - "Chuo ", - "Kun ", - "Yu ", - "Chu ", - "Yi ", - "Ni ", - "Cuo ", - "Zou ", - "Qu ", - "Nen ", - "Xian ", - "Ou ", - "E ", - "Wo ", - "Yi ", - "Chuo ", - "Zou ", - "Dian ", - "Chu ", - "Jin ", - "Ya ", - "Chi ", - "Chen ", - "He ", - "Ken ", - "Ju ", - "Ling ", - "Pao ", - "Tiao ", - "Zi ", - "Ken ", - "Yu ", - "Chuo ", - "Qu ", - "Wo ", - "Long ", - "Pang ", - "Gong ", - "Pang ", - "Yan ", - "Long ", - "Long ", - "Gong ", - "Kan ", - "Ta ", - "Ling ", - "Ta ", - "Long ", - "Gong ", - "Kan ", - "Gui ", - "Qiu ", - "Bie ", - "Gui ", - "Yue ", - "Chui ", - "He ", - "Jue ", - "Xie ", - "Yu ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "it", - "ix", - "i", - "ip", - "iet", - "iex", - "ie", - "iep", - "at", - "ax", - "a", - "ap", - "uox", - "uo", - "uop", - "ot", - "ox", - "o", - "op", - "ex", - "e", - "wu", - "bit", - "bix", - "bi", - "bip", - "biet", - "biex", - "bie", - "biep", - "bat", - "bax", - "ba", - "bap", - "buox", - "buo", - "buop", - "bot", - "box", - "bo", - "bop", - "bex", - "be", - "bep", - "but", - "bux", - "bu", - "bup", - "burx", - "bur", - "byt", - "byx", - "by", - "byp", - "byrx", - "byr", - "pit", - "pix", - "pi", - "pip", - "piex", - "pie", - "piep", - "pat", - "pax", - "pa", - "pap", - "puox", - "puo", - "puop", - "pot", - "pox", - "po", - "pop", - "put", - "pux", - "pu", - "pup", - "purx", - "pur", - "pyt", - "pyx", - "py", - "pyp", - "pyrx", - "pyr", - "bbit", - "bbix", - "bbi", - "bbip", - "bbiet", - "bbiex", - "bbie", - "bbiep", - "bbat", - "bbax", - "bba", - "bbap", - "bbuox", - "bbuo", - "bbuop", - "bbot", - "bbox", - "bbo", - "bbop", - "bbex", - "bbe", - "bbep", - "bbut", - "bbux", - "bbu", - "bbup", - "bburx", - "bbur", - "bbyt", - "bbyx", - "bby", - "bbyp", - "nbit", - "nbix", - "nbi", - "nbip", - "nbiex", - "nbie", - "nbiep", - "nbat", - "nbax", - "nba", - "nbap", - "nbot", - "nbox", - "nbo", - "nbop", - "nbut", - "nbux", - "nbu", - "nbup", - "nburx", - "nbur", - "nbyt", - "nbyx", - "nby", - "nbyp", - "nbyrx", - "nbyr", - "hmit", - "hmix", - "hmi", - "hmip", - "hmiex", - "hmie", - "hmiep", - "hmat", - "hmax", - "hma", - "hmap", - "hmuox", - "hmuo", - "hmuop", - "hmot", - "hmox", - "hmo", - "hmop", - "hmut", - "hmux", - "hmu", - "hmup", - "hmurx", - "hmur", - "hmyx", - "hmy", - "hmyp", - "hmyrx", - "hmyr", - "mit", - "mix", - "mi", - "mip", - "miex", - "mie", - "miep", - "mat", - "max", - "ma", - "map", - "muot", - "muox", - "muo", - "muop", - "mot", - "mox", - "mo", - "mop", - "mex", - "me", - "mut", - "mux", - "mu", - "mup", - "murx", - "mur", - "myt", - "myx", - "my", - "myp", - "fit", - "fix", - "fi", - "fip", - "fat", - "fax", - "fa", - "fap", - "fox", - "fo", - "fop", - "fut", - "fux", - "fu", - "fup", - "furx", - "fur", - "fyt", - "fyx", - "fy", - "fyp", - "vit", - "vix", - "vi", - "vip", - "viet", - "viex", - "vie", - "viep", - "vat", - "vax", - "va", - "vap", - "vot", - "vox", - "vo", - "vop", - "vex", - "vep", - "vut", - "vux", - "vu", - "vup", - "vurx", - "vur", - "vyt", - "vyx", - "vy", - "vyp", - "vyrx", - "vyr", - "dit", - "dix", - "di", - "dip", - "diex", - "die", - "diep", - "dat", - "dax", - "da", - "dap", - "duox", - "duo", - "dot", - "dox", - "do", - "dop", - "dex", - "de", - "dep", - "dut", - "dux", - "du", - "dup", - "durx", - "dur", - "tit", - "tix", - "ti", - "tip", - "tiex", - "tie", - "tiep", - "tat", - "tax", - "ta", - "tap", - "tuot", - "tuox", - "tuo", - "tuop", - "tot", - "tox", - "to", - "top", - "tex", - "te", - "tep", - "tut", - "tux", - "tu", - "tup", - "turx", - "tur", - "ddit", - "ddix", - "ddi", - "ddip", - "ddiex", - "ddie", - "ddiep", - "ddat", - "ddax", - "dda", - "ddap", - "dduox", - "dduo", - "dduop", - "ddot", - "ddox", - "ddo", - "ddop", - "ddex", - "dde", - "ddep", - "ddut", - "ddux", - "ddu", - "ddup", - "ddurx", - "ddur", - "ndit", - "ndix", - "ndi", - "ndip", - "ndiex", - "ndie", - "ndat", - "ndax", - "nda", - "ndap", - "ndot", - "ndox", - "ndo", - "ndop", - "ndex", - "nde", - "ndep", - "ndut", - "ndux", - "ndu", - "ndup", - "ndurx", - "ndur", - "hnit", - "hnix", - "hni", - "hnip", - "hniet", - "hniex", - "hnie", - "hniep", - "hnat", - "hnax", - "hna", - "hnap", - "hnuox", - "hnuo", - "hnot", - "hnox", - "hnop", - "hnex", - "hne", - "hnep", - "hnut", - "nit", - "nix", - "ni", - "nip", - "niex", - "nie", - "niep", - "nax", - "na", - "nap", - "nuox", - "nuo", - "nuop", - "not", - "nox", - "no", - "nop", - "nex", - "ne", - "nep", - "nut", - "nux", - "nu", - "nup", - "nurx", - "nur", - "hlit", - "hlix", - "hli", - "hlip", - "hliex", - "hlie", - "hliep", - "hlat", - "hlax", - "hla", - "hlap", - "hluox", - "hluo", - "hluop", - "hlox", - "hlo", - "hlop", - "hlex", - "hle", - "hlep", - "hlut", - "hlux", - "hlu", - "hlup", - "hlurx", - "hlur", - "hlyt", - "hlyx", - "hly", - "hlyp", - "hlyrx", - "hlyr", - "lit", - "lix", - "li", - "lip", - "liet", - "liex", - "lie", - "liep", - "lat", - "lax", - "la", - "lap", - "luot", - "luox", - "luo", - "luop", - "lot", - "lox", - "lo", - "lop", - "lex", - "le", - "lep", - "lut", - "lux", - "lu", - "lup", - "lurx", - "lur", - "lyt", - "lyx", - "ly", - "lyp", - "lyrx", - "lyr", - "git", - "gix", - "gi", - "gip", - "giet", - "giex", - "gie", - "giep", - "gat", - "gax", - "ga", - "gap", - "guot", - "guox", - "guo", - "guop", - "got", - "gox", - "go", - "gop", - "get", - "gex", - "ge", - "gep", - "gut", - "gux", - "gu", - "gup", - "gurx", - "gur", - "kit", - "kix", - "ki", - "kip", - "kiex", - "kie", - "kiep", - "kat", - "kax", - "ka", - "kap", - "kuox", - "kuo", - "kuop", - "kot", - "kox", - "ko", - "kop", - "ket", - "kex", - "ke", - "kep", - "kut", - "kux", - "ku", - "kup", - "kurx", - "kur", - "ggit", - "ggix", - "ggi", - "ggiex", - "ggie", - "ggiep", - "ggat", - "ggax", - "gga", - "ggap", - "gguot", - "gguox", - "gguo", - "gguop", - "ggot", - "ggox", - "ggo", - "ggop", - "gget", - "ggex", - "gge", - "ggep", - "ggut", - "ggux", - "ggu", - "ggup", - "ggurx", - "ggur", - "mgiex", - "mgie", - "mgat", - "mgax", - "mga", - "mgap", - "mguox", - "mguo", - "mguop", - "mgot", - "mgox", - "mgo", - "mgop", - "mgex", - "mge", - "mgep", - "mgut", - "mgux", - "mgu", - "mgup", - "mgurx", - "mgur", - "hxit", - "hxix", - "hxi", - "hxip", - "hxiet", - "hxiex", - "hxie", - "hxiep", - "hxat", - "hxax", - "hxa", - "hxap", - "hxuot", - "hxuox", - "hxuo", - "hxuop", - "hxot", - "hxox", - "hxo", - "hxop", - "hxex", - "hxe", - "hxep", - "ngiex", - "ngie", - "ngiep", - "ngat", - "ngax", - "nga", - "ngap", - "nguot", - "nguox", - "nguo", - "ngot", - "ngox", - "ngo", - "ngop", - "ngex", - "nge", - "ngep", - "hit", - "hiex", - "hie", - "hat", - "hax", - "ha", - "hap", - "huot", - "huox", - "huo", - "huop", - "hot", - "hox", - "ho", - "hop", - "hex", - "he", - "hep", - "wat", - "wax", - "wa", - "wap", - "wuox", - "wuo", - "wuop", - "wox", - "wo", - "wop", - "wex", - "we", - "wep", - "zit", - "zix", - "zi", - "zip", - "ziex", - "zie", - "ziep", - "zat", - "zax", - "za", - "zap", - "zuox", - "zuo", - "zuop", - "zot", - "zox", - "zo", - "zop", - "zex", - "ze", - "zep", - "zut", - "zux", - "zu", - "zup", - "zurx", - "zur", - "zyt", - "zyx", - "zy", - "zyp", - "zyrx", - "zyr", - "cit", - "cix", - "ci", - "cip", - "ciet", - "ciex", - "cie", - "ciep", - "cat", - "cax", - "ca", - "cap", - "cuox", - "cuo", - "cuop", - "cot", - "cox", - "co", - "cop", - "cex", - "ce", - "cep", - "cut", - "cux", - "cu", - "cup", - "curx", - "cur", - "cyt", - "cyx", - "cy", - "cyp", - "cyrx", - "cyr", - "zzit", - "zzix", - "zzi", - "zzip", - "zziet", - "zziex", - "zzie", - "zziep", - "zzat", - "zzax", - "zza", - "zzap", - "zzox", - "zzo", - "zzop", - "zzex", - "zze", - "zzep", - "zzux", - "zzu", - "zzup", - "zzurx", - "zzur", - "zzyt", - "zzyx", - "zzy", - "zzyp", - "zzyrx", - "zzyr", - "nzit", - "nzix", - "nzi", - "nzip", - "nziex", - "nzie", - "nziep", - "nzat", - "nzax", - "nza", - "nzap", - "nzuox", - "nzuo", - "nzox", - "nzop", - "nzex", - "nze", - "nzux", - "nzu", - "nzup", - "nzurx", - "nzur", - "nzyt", - "nzyx", - "nzy", - "nzyp", - "nzyrx", - "nzyr", - "sit", - "six", - "si", - "sip", - "siex", - "sie", - "siep", - "sat", - "sax", - "sa", - "sap", - "suox", - "suo", - "suop", - "sot", - "sox", - "so", - "sop", - "sex", - "se", - "sep", - "sut", - "sux", - "su", - "sup", - "surx", - "sur", - "syt", - "syx", - "sy", - "syp", - "syrx", - "syr", - "ssit", - "ssix", - "ssi", - "ssip", - "ssiex", - "ssie", - "ssiep", - "ssat", - "ssax", - "ssa", - "ssap", - "ssot", - "ssox", - "sso", - "ssop", - "ssex", - "sse", - "ssep", - "ssut", - "ssux", - "ssu", - "ssup", - "ssyt", - "ssyx", - "ssy", - "ssyp", - "ssyrx", - "ssyr", - "zhat", - "zhax", - "zha", - "zhap", - "zhuox", - "zhuo", - "zhuop", - "zhot", - "zhox", - "zho", - "zhop", - "zhet", - "zhex", - "zhe", - "zhep", - "zhut", - "zhux", - "zhu", - "zhup", - "zhurx", - "zhur", - "zhyt", - "zhyx", - "zhy", - "zhyp", - "zhyrx", - "zhyr", - "chat", - "chax", - "cha", - "chap", - "chuot", - "chuox", - "chuo", - "chuop", - "chot", - "chox", - "cho", - "chop", - "chet", - "chex", - "che", - "chep", - "chux", - "chu", - "chup", - "churx", - "chur", - "chyt", - "chyx", - "chy", - "chyp", - "chyrx", - "chyr", - "rrax", - "rra", - "rruox", - "rruo", - "rrot", - "rrox", - "rro", - "rrop", - "rret", - "rrex", - "rre", - "rrep", - "rrut", - "rrux", - "rru", - "rrup", - "rrurx", - "rrur", - "rryt", - "rryx", - "rry", - "rryp", - "rryrx", - "rryr", - "nrat", - "nrax", - "nra", - "nrap", - "nrox", - "nro", - "nrop", - "nret", - "nrex", - "nre", - "nrep", - "nrut", - "nrux", - "nru", - "nrup", - "nrurx", - "nrur", - "nryt", - "nryx", - "nry", - "nryp", - "nryrx", - "nryr", - "shat", - "shax", - "sha", - "shap", - "shuox", - "shuo", - "shuop", - "shot", - "shox", - "sho", - "shop", - "shet", - "shex", - "she", - "shep", - "shut", - "shux", - "shu", - "shup", - "shurx", - "shur", - "shyt", - "shyx", - "shy", - "shyp", - "shyrx", - "shyr", - "rat", - "rax", - "ra", - "rap", - "ruox", - "ruo", - "ruop", - "rot", - "rox", - "ro", - "rop", - "rex", - "re", - "rep", - "rut", - "rux", - "ru", - "rup", - "rurx", - "rur", - "ryt", - "ryx", - "ry", - "ryp", - "ryrx", - "ryr", - "jit", - "jix", - "ji", - "jip", - "jiet", - "jiex", - "jie", - "jiep", - "juot", - "juox", - "juo", - "juop", - "jot", - "jox", - "jo", - "jop", - "jut", - "jux", - "ju", - "jup", - "jurx", - "jur", - "jyt", - "jyx", - "jy", - "jyp", - "jyrx", - "jyr", - "qit", - "qix", - "qi", - "qip", - "qiet", - "qiex", - "qie", - "qiep", - "quot", - "quox", - "quo", - "quop", - "qot", - "qox", - "qo", - "qop", - "qut", - "qux", - "qu", - "qup", - "qurx", - "qur", - "qyt", - "qyx", - "qy", - "qyp", - "qyrx", - "qyr", - "jjit", - "jjix", - "jji", - "jjip", - "jjiet", - "jjiex", - "jjie", - "jjiep", - "jjuox", - "jjuo", - "jjuop", - "jjot", - "jjox", - "jjo", - "jjop", - "jjut", - "jjux", - "jju", - "jjup", - "jjurx", - "jjur", - "jjyt", - "jjyx", - "jjy", - "jjyp", - "njit", - "njix", - "nji", - "njip", - "njiet", - "njiex", - "njie", - "njiep", - "njuox", - "njuo", - "njot", - "njox", - "njo", - "njop", - "njux", - "nju", - "njup", - "njurx", - "njur", - "njyt", - "njyx", - "njy", - "njyp", - "njyrx", - "njyr", - "nyit", - "nyix", - "nyi", - "nyip", - "nyiet", - "nyiex", - "nyie", - "nyiep", - "nyuox", - "nyuo", - "nyuop", - "nyot", - "nyox", - "nyo", - "nyop", - "nyut", - "nyux", - "nyu", - "nyup", - "xit", - "xix", - "xi", - "xip", - "xiet", - "xiex", - "xie", - "xiep", - "xuox", - "xuo", - "xot", - "xox", - "xo", - "xop", - "xyt", - "xyx", - "xy", - "xyp", - "xyrx", - "xyr", - "yit", - "yix", - "yi", - "yip", - "yiet", - "yiex", - "yie", - "yiep", - "yuot", - "yuox", - "yuo", - "yuop", - "yot", - "yox", - "yo", - "yop", - "yut", - "yux", - "yu", - "yup", - "yurx", - "yur", - "yyt", - "yyx", - "yy", - "yyp", - "yyrx", - "yyr", - "[?]", - "[?]", - "[?]", - "Qot", - "Li", - "Kit", - "Nyip", - "Cyp", - "Ssi", - "Ggop", - "Gep", - "Mi", - "Hxit", - "Lyr", - "Bbut", - "Mop", - "Yo", - "Put", - "Hxuo", - "Tat", - "Ga", - "[?]", - "[?]", - "Ddur", - "Bur", - "Gguo", - "Nyop", - "Tu", - "Op", - "Jjut", - "Zot", - "Pyt", - "Hmo", - "Yit", - "Vur", - "Shy", - "Vep", - "Za", - "Jo", - "[?]", - "Jjy", - "Got", - "Jjie", - "Wo", - "Du", - "Shur", - "Lie", - "Cy", - "Cuop", - "Cip", - "Hxop", - "Shat", - "[?]", - "Shop", - "Che", - "Zziet", - "[?]", - "Ke", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "ga", - "gag", - "gagg", - "gags", - "gan", - "ganj", - "ganh", - "gad", - "gal", - "galg", - "galm", - "galb", - "gals", - "galt", - "galp", - "galh", - "gam", - "gab", - "gabs", - "gas", - "gass", - "gang", - "gaj", - "gac", - "gak", - "gat", - "gap", - "gah", - "gae", - "gaeg", - "gaegg", - "gaegs", - "gaen", - "gaenj", - "gaenh", - "gaed", - "gael", - "gaelg", - "gaelm", - "gaelb", - "gaels", - "gaelt", - "gaelp", - "gaelh", - "gaem", - "gaeb", - "gaebs", - "gaes", - "gaess", - "gaeng", - "gaej", - "gaec", - "gaek", - "gaet", - "gaep", - "gaeh", - "gya", - "gyag", - "gyagg", - "gyags", - "gyan", - "gyanj", - "gyanh", - "gyad", - "gyal", - "gyalg", - "gyalm", - "gyalb", - "gyals", - "gyalt", - "gyalp", - "gyalh", - "gyam", - "gyab", - "gyabs", - "gyas", - "gyass", - "gyang", - "gyaj", - "gyac", - "gyak", - "gyat", - "gyap", - "gyah", - "gyae", - "gyaeg", - "gyaegg", - "gyaegs", - "gyaen", - "gyaenj", - "gyaenh", - "gyaed", - "gyael", - "gyaelg", - "gyaelm", - "gyaelb", - "gyaels", - "gyaelt", - "gyaelp", - "gyaelh", - "gyaem", - "gyaeb", - "gyaebs", - "gyaes", - "gyaess", - "gyaeng", - "gyaej", - "gyaec", - "gyaek", - "gyaet", - "gyaep", - "gyaeh", - "geo", - "geog", - "geogg", - "geogs", - "geon", - "geonj", - "geonh", - "geod", - "geol", - "geolg", - "geolm", - "geolb", - "geols", - "geolt", - "geolp", - "geolh", - "geom", - "geob", - "geobs", - "geos", - "geoss", - "geong", - "geoj", - "geoc", - "geok", - "geot", - "geop", - "geoh", - "ge", - "geg", - "gegg", - "gegs", - "gen", - "genj", - "genh", - "ged", - "gel", - "gelg", - "gelm", - "gelb", - "gels", - "gelt", - "gelp", - "gelh", - "gem", - "geb", - "gebs", - "ges", - "gess", - "geng", - "gej", - "gec", - "gek", - "get", - "gep", - "geh", - "gyeo", - "gyeog", - "gyeogg", - "gyeogs", - "gyeon", - "gyeonj", - "gyeonh", - "gyeod", - "gyeol", - "gyeolg", - "gyeolm", - "gyeolb", - "gyeols", - "gyeolt", - "gyeolp", - "gyeolh", - "gyeom", - "gyeob", - "gyeobs", - "gyeos", - "gyeoss", - "gyeong", - "gyeoj", - "gyeoc", - "gyeok", - "gyeot", - "gyeop", - "gyeoh", - "gye", - "gyeg", - "gyegg", - "gyegs", - "gyen", - "gyenj", - "gyenh", - "gyed", - "gyel", - "gyelg", - "gyelm", - "gyelb", - "gyels", - "gyelt", - "gyelp", - "gyelh", - "gyem", - "gyeb", - "gyebs", - "gyes", - "gyess", - "gyeng", - "gyej", - "gyec", - "gyek", - "gyet", - "gyep", - "gyeh", - "go", - "gog", - "gogg", - "gogs", - "gon", - "gonj", - "gonh", - "god", - "gol", - "golg", - "golm", - "golb", - "gols", - "golt", - "golp", - "golh", - "gom", - "gob", - "gobs", - "gos", - "goss", - "gong", - "goj", - "goc", - "gok", - "got", - "gop", - "goh", - "gwa", - "gwag", - "gwagg", - "gwags", - "gwan", - "gwanj", - "gwanh", - "gwad", - "gwal", - "gwalg", - "gwalm", - "gwalb", - "gwals", - "gwalt", - "gwalp", - "gwalh", - "gwam", - "gwab", - "gwabs", - "gwas", - "gwass", - "gwang", - "gwaj", - "gwac", - "gwak", - "gwat", - "gwap", - "gwah", - "gwae", - "gwaeg", - "gwaegg", - "gwaegs", - "gwaen", - "gwaenj", - "gwaenh", - "gwaed", - "gwael", - "gwaelg", - "gwaelm", - "gwaelb", - "gwaels", - "gwaelt", - "gwaelp", - "gwaelh", - "gwaem", - "gwaeb", - "gwaebs", - "gwaes", - "gwaess", - "gwaeng", - "gwaej", - "gwaec", - "gwaek", - "gwaet", - "gwaep", - "gwaeh", - "goe", - "goeg", - "goegg", - "goegs", - "goen", - "goenj", - "goenh", - "goed", - "goel", - "goelg", - "goelm", - "goelb", - "goels", - "goelt", - "goelp", - "goelh", - "goem", - "goeb", - "goebs", - "goes", - "goess", - "goeng", - "goej", - "goec", - "goek", - "goet", - "goep", - "goeh", - "gyo", - "gyog", - "gyogg", - "gyogs", - "gyon", - "gyonj", - "gyonh", - "gyod", - "gyol", - "gyolg", - "gyolm", - "gyolb", - "gyols", - "gyolt", - "gyolp", - "gyolh", - "gyom", - "gyob", - "gyobs", - "gyos", - "gyoss", - "gyong", - "gyoj", - "gyoc", - "gyok", - "gyot", - "gyop", - "gyoh", - "gu", - "gug", - "gugg", - "gugs", - "gun", - "gunj", - "gunh", - "gud", - "gul", - "gulg", - "gulm", - "gulb", - "guls", - "gult", - "gulp", - "gulh", - "gum", - "gub", - "gubs", - "gus", - "guss", - "gung", - "guj", - "guc", - "guk", - "gut", - "gup", - "guh", - "gweo", - "gweog", - "gweogg", - "gweogs", - "gweon", - "gweonj", - "gweonh", - "gweod", - "gweol", - "gweolg", - "gweolm", - "gweolb", - "gweols", - "gweolt", - "gweolp", - "gweolh", - "gweom", - "gweob", - "gweobs", - "gweos", - "gweoss", - "gweong", - "gweoj", - "gweoc", - "gweok", - "gweot", - "gweop", - "gweoh", - "gwe", - "gweg", - "gwegg", - "gwegs", - "gwen", - "gwenj", - "gwenh", - "gwed", - "gwel", - "gwelg", - "gwelm", - "gwelb", - "gwels", - "gwelt", - "gwelp", - "gwelh", - "gwem", - "gweb", - "gwebs", - "gwes", - "gwess", - "gweng", - "gwej", - "gwec", - "gwek", - "gwet", - "gwep", - "gweh", - "gwi", - "gwig", - "gwigg", - "gwigs", - "gwin", - "gwinj", - "gwinh", - "gwid", - "gwil", - "gwilg", - "gwilm", - "gwilb", - "gwils", - "gwilt", - "gwilp", - "gwilh", - "gwim", - "gwib", - "gwibs", - "gwis", - "gwiss", - "gwing", - "gwij", - "gwic", - "gwik", - "gwit", - "gwip", - "gwih", - "gyu", - "gyug", - "gyugg", - "gyugs", - "gyun", - "gyunj", - "gyunh", - "gyud", - "gyul", - "gyulg", - "gyulm", - "gyulb", - "gyuls", - "gyult", - "gyulp", - "gyulh", - "gyum", - "gyub", - "gyubs", - "gyus", - "gyuss", - "gyung", - "gyuj", - "gyuc", - "gyuk", - "gyut", - "gyup", - "gyuh", - "geu", - "geug", - "geugg", - "geugs", - "geun", - "geunj", - "geunh", - "geud", - "geul", - "geulg", - "geulm", - "geulb", - "geuls", - "geult", - "geulp", - "geulh", - "geum", - "geub", - "geubs", - "geus", - "geuss", - "geung", - "geuj", - "geuc", - "geuk", - "geut", - "geup", - "geuh", - "gyi", - "gyig", - "gyigg", - "gyigs", - "gyin", - "gyinj", - "gyinh", - "gyid", - "gyil", - "gyilg", - "gyilm", - "gyilb", - "gyils", - "gyilt", - "gyilp", - "gyilh", - "gyim", - "gyib", - "gyibs", - "gyis", - "gyiss", - "gying", - "gyij", - "gyic", - "gyik", - "gyit", - "gyip", - "gyih", - "gi", - "gig", - "gigg", - "gigs", - "gin", - "ginj", - "ginh", - "gid", - "gil", - "gilg", - "gilm", - "gilb", - "gils", - "gilt", - "gilp", - "gilh", - "gim", - "gib", - "gibs", - "gis", - "giss", - "ging", - "gij", - "gic", - "gik", - "git", - "gip", - "gih", - "gga", - "ggag", - "ggagg", - "ggags", - "ggan", - "gganj", - "gganh", - "ggad", - "ggal", - "ggalg", - "ggalm", - "ggalb", - "ggals", - "ggalt", - "ggalp", - "ggalh", - "ggam", - "ggab", - "ggabs", - "ggas", - "ggass", - "ggang", - "ggaj", - "ggac", - "ggak", - "ggat", - "ggap", - "ggah", - "ggae", - "ggaeg", - "ggaegg", - "ggaegs", - "ggaen", - "ggaenj", - "ggaenh", - "ggaed", - "ggael", - "ggaelg", - "ggaelm", - "ggaelb", - "ggaels", - "ggaelt", - "ggaelp", - "ggaelh", - "ggaem", - "ggaeb", - "ggaebs", - "ggaes", - "ggaess", - "ggaeng", - "ggaej", - "ggaec", - "ggaek", - "ggaet", - "ggaep", - "ggaeh", - "ggya", - "ggyag", - "ggyagg", - "ggyags", - "ggyan", - "ggyanj", - "ggyanh", - "ggyad", - "ggyal", - "ggyalg", - "ggyalm", - "ggyalb", - "ggyals", - "ggyalt", - "ggyalp", - "ggyalh", - "ggyam", - "ggyab", - "ggyabs", - "ggyas", - "ggyass", - "ggyang", - "ggyaj", - "ggyac", - "ggyak", - "ggyat", - "ggyap", - "ggyah", - "ggyae", - "ggyaeg", - "ggyaegg", - "ggyaegs", - "ggyaen", - "ggyaenj", - "ggyaenh", - "ggyaed", - "ggyael", - "ggyaelg", - "ggyaelm", - "ggyaelb", - "ggyaels", - "ggyaelt", - "ggyaelp", - "ggyaelh", - "ggyaem", - "ggyaeb", - "ggyaebs", - "ggyaes", - "ggyaess", - "ggyaeng", - "ggyaej", - "ggyaec", - "ggyaek", - "ggyaet", - "ggyaep", - "ggyaeh", - "ggeo", - "ggeog", - "ggeogg", - "ggeogs", - "ggeon", - "ggeonj", - "ggeonh", - "ggeod", - "ggeol", - "ggeolg", - "ggeolm", - "ggeolb", - "ggeols", - "ggeolt", - "ggeolp", - "ggeolh", - "ggeom", - "ggeob", - "ggeobs", - "ggeos", - "ggeoss", - "ggeong", - "ggeoj", - "ggeoc", - "ggeok", - "ggeot", - "ggeop", - "ggeoh", - "gge", - "ggeg", - "ggegg", - "ggegs", - "ggen", - "ggenj", - "ggenh", - "gged", - "ggel", - "ggelg", - "ggelm", - "ggelb", - "ggels", - "ggelt", - "ggelp", - "ggelh", - "ggem", - "ggeb", - "ggebs", - "gges", - "ggess", - "ggeng", - "ggej", - "ggec", - "ggek", - "gget", - "ggep", - "ggeh", - "ggyeo", - "ggyeog", - "ggyeogg", - "ggyeogs", - "ggyeon", - "ggyeonj", - "ggyeonh", - "ggyeod", - "ggyeol", - "ggyeolg", - "ggyeolm", - "ggyeolb", - "ggyeols", - "ggyeolt", - "ggyeolp", - "ggyeolh", - "ggyeom", - "ggyeob", - "ggyeobs", - "ggyeos", - "ggyeoss", - "ggyeong", - "ggyeoj", - "ggyeoc", - "ggyeok", - "ggyeot", - "ggyeop", - "ggyeoh", - "ggye", - "ggyeg", - "ggyegg", - "ggyegs", - "ggyen", - "ggyenj", - "ggyenh", - "ggyed", - "ggyel", - "ggyelg", - "ggyelm", - "ggyelb", - "ggyels", - "ggyelt", - "ggyelp", - "ggyelh", - "ggyem", - "ggyeb", - "ggyebs", - "ggyes", - "ggyess", - "ggyeng", - "ggyej", - "ggyec", - "ggyek", - "ggyet", - "ggyep", - "ggyeh", - "ggo", - "ggog", - "ggogg", - "ggogs", - "ggon", - "ggonj", - "ggonh", - "ggod", - "ggol", - "ggolg", - "ggolm", - "ggolb", - "ggols", - "ggolt", - "ggolp", - "ggolh", - "ggom", - "ggob", - "ggobs", - "ggos", - "ggoss", - "ggong", - "ggoj", - "ggoc", - "ggok", - "ggot", - "ggop", - "ggoh", - "ggwa", - "ggwag", - "ggwagg", - "ggwags", - "ggwan", - "ggwanj", - "ggwanh", - "ggwad", - "ggwal", - "ggwalg", - "ggwalm", - "ggwalb", - "ggwals", - "ggwalt", - "ggwalp", - "ggwalh", - "ggwam", - "ggwab", - "ggwabs", - "ggwas", - "ggwass", - "ggwang", - "ggwaj", - "ggwac", - "ggwak", - "ggwat", - "ggwap", - "ggwah", - "ggwae", - "ggwaeg", - "ggwaegg", - "ggwaegs", - "ggwaen", - "ggwaenj", - "ggwaenh", - "ggwaed", - "ggwael", - "ggwaelg", - "ggwaelm", - "ggwaelb", - "ggwaels", - "ggwaelt", - "ggwaelp", - "ggwaelh", - "ggwaem", - "ggwaeb", - "ggwaebs", - "ggwaes", - "ggwaess", - "ggwaeng", - "ggwaej", - "ggwaec", - "ggwaek", - "ggwaet", - "ggwaep", - "ggwaeh", - "ggoe", - "ggoeg", - "ggoegg", - "ggoegs", - "ggoen", - "ggoenj", - "ggoenh", - "ggoed", - "ggoel", - "ggoelg", - "ggoelm", - "ggoelb", - "ggoels", - "ggoelt", - "ggoelp", - "ggoelh", - "ggoem", - "ggoeb", - "ggoebs", - "ggoes", - "ggoess", - "ggoeng", - "ggoej", - "ggoec", - "ggoek", - "ggoet", - "ggoep", - "ggoeh", - "ggyo", - "ggyog", - "ggyogg", - "ggyogs", - "ggyon", - "ggyonj", - "ggyonh", - "ggyod", - "ggyol", - "ggyolg", - "ggyolm", - "ggyolb", - "ggyols", - "ggyolt", - "ggyolp", - "ggyolh", - "ggyom", - "ggyob", - "ggyobs", - "ggyos", - "ggyoss", - "ggyong", - "ggyoj", - "ggyoc", - "ggyok", - "ggyot", - "ggyop", - "ggyoh", - "ggu", - "ggug", - "ggugg", - "ggugs", - "ggun", - "ggunj", - "ggunh", - "ggud", - "ggul", - "ggulg", - "ggulm", - "ggulb", - "gguls", - "ggult", - "ggulp", - "ggulh", - "ggum", - "ggub", - "ggubs", - "ggus", - "gguss", - "ggung", - "gguj", - "gguc", - "gguk", - "ggut", - "ggup", - "gguh", - "ggweo", - "ggweog", - "ggweogg", - "ggweogs", - "ggweon", - "ggweonj", - "ggweonh", - "ggweod", - "ggweol", - "ggweolg", - "ggweolm", - "ggweolb", - "ggweols", - "ggweolt", - "ggweolp", - "ggweolh", - "ggweom", - "ggweob", - "ggweobs", - "ggweos", - "ggweoss", - "ggweong", - "ggweoj", - "ggweoc", - "ggweok", - "ggweot", - "ggweop", - "ggweoh", - "ggwe", - "ggweg", - "ggwegg", - "ggwegs", - "ggwen", - "ggwenj", - "ggwenh", - "ggwed", - "ggwel", - "ggwelg", - "ggwelm", - "ggwelb", - "ggwels", - "ggwelt", - "ggwelp", - "ggwelh", - "ggwem", - "ggweb", - "ggwebs", - "ggwes", - "ggwess", - "ggweng", - "ggwej", - "ggwec", - "ggwek", - "ggwet", - "ggwep", - "ggweh", - "ggwi", - "ggwig", - "ggwigg", - "ggwigs", - "ggwin", - "ggwinj", - "ggwinh", - "ggwid", - "ggwil", - "ggwilg", - "ggwilm", - "ggwilb", - "ggwils", - "ggwilt", - "ggwilp", - "ggwilh", - "ggwim", - "ggwib", - "ggwibs", - "ggwis", - "ggwiss", - "ggwing", - "ggwij", - "ggwic", - "ggwik", - "ggwit", - "ggwip", - "ggwih", - "ggyu", - "ggyug", - "ggyugg", - "ggyugs", - "ggyun", - "ggyunj", - "ggyunh", - "ggyud", - "ggyul", - "ggyulg", - "ggyulm", - "ggyulb", - "ggyuls", - "ggyult", - "ggyulp", - "ggyulh", - "ggyum", - "ggyub", - "ggyubs", - "ggyus", - "ggyuss", - "ggyung", - "ggyuj", - "ggyuc", - "ggyuk", - "ggyut", - "ggyup", - "ggyuh", - "ggeu", - "ggeug", - "ggeugg", - "ggeugs", - "ggeun", - "ggeunj", - "ggeunh", - "ggeud", - "ggeul", - "ggeulg", - "ggeulm", - "ggeulb", - "ggeuls", - "ggeult", - "ggeulp", - "ggeulh", - "ggeum", - "ggeub", - "ggeubs", - "ggeus", - "ggeuss", - "ggeung", - "ggeuj", - "ggeuc", - "ggeuk", - "ggeut", - "ggeup", - "ggeuh", - "ggyi", - "ggyig", - "ggyigg", - "ggyigs", - "ggyin", - "ggyinj", - "ggyinh", - "ggyid", - "ggyil", - "ggyilg", - "ggyilm", - "ggyilb", - "ggyils", - "ggyilt", - "ggyilp", - "ggyilh", - "ggyim", - "ggyib", - "ggyibs", - "ggyis", - "ggyiss", - "ggying", - "ggyij", - "ggyic", - "ggyik", - "ggyit", - "ggyip", - "ggyih", - "ggi", - "ggig", - "ggigg", - "ggigs", - "ggin", - "gginj", - "gginh", - "ggid", - "ggil", - "ggilg", - "ggilm", - "ggilb", - "ggils", - "ggilt", - "ggilp", - "ggilh", - "ggim", - "ggib", - "ggibs", - "ggis", - "ggiss", - "gging", - "ggij", - "ggic", - "ggik", - "ggit", - "ggip", - "ggih", - "na", - "nag", - "nagg", - "nags", - "nan", - "nanj", - "nanh", - "nad", - "nal", - "nalg", - "nalm", - "nalb", - "nals", - "nalt", - "nalp", - "nalh", - "nam", - "nab", - "nabs", - "nas", - "nass", - "nang", - "naj", - "nac", - "nak", - "nat", - "nap", - "nah", - "nae", - "naeg", - "naegg", - "naegs", - "naen", - "naenj", - "naenh", - "naed", - "nael", - "naelg", - "naelm", - "naelb", - "naels", - "naelt", - "naelp", - "naelh", - "naem", - "naeb", - "naebs", - "naes", - "naess", - "naeng", - "naej", - "naec", - "naek", - "naet", - "naep", - "naeh", - "nya", - "nyag", - "nyagg", - "nyags", - "nyan", - "nyanj", - "nyanh", - "nyad", - "nyal", - "nyalg", - "nyalm", - "nyalb", - "nyals", - "nyalt", - "nyalp", - "nyalh", - "nyam", - "nyab", - "nyabs", - "nyas", - "nyass", - "nyang", - "nyaj", - "nyac", - "nyak", - "nyat", - "nyap", - "nyah", - "nyae", - "nyaeg", - "nyaegg", - "nyaegs", - "nyaen", - "nyaenj", - "nyaenh", - "nyaed", - "nyael", - "nyaelg", - "nyaelm", - "nyaelb", - "nyaels", - "nyaelt", - "nyaelp", - "nyaelh", - "nyaem", - "nyaeb", - "nyaebs", - "nyaes", - "nyaess", - "nyaeng", - "nyaej", - "nyaec", - "nyaek", - "nyaet", - "nyaep", - "nyaeh", - "neo", - "neog", - "neogg", - "neogs", - "neon", - "neonj", - "neonh", - "neod", - "neol", - "neolg", - "neolm", - "neolb", - "neols", - "neolt", - "neolp", - "neolh", - "neom", - "neob", - "neobs", - "neos", - "neoss", - "neong", - "neoj", - "neoc", - "neok", - "neot", - "neop", - "neoh", - "ne", - "neg", - "negg", - "negs", - "nen", - "nenj", - "nenh", - "ned", - "nel", - "nelg", - "nelm", - "nelb", - "nels", - "nelt", - "nelp", - "nelh", - "nem", - "neb", - "nebs", - "nes", - "ness", - "neng", - "nej", - "nec", - "nek", - "net", - "nep", - "neh", - "nyeo", - "nyeog", - "nyeogg", - "nyeogs", - "nyeon", - "nyeonj", - "nyeonh", - "nyeod", - "nyeol", - "nyeolg", - "nyeolm", - "nyeolb", - "nyeols", - "nyeolt", - "nyeolp", - "nyeolh", - "nyeom", - "nyeob", - "nyeobs", - "nyeos", - "nyeoss", - "nyeong", - "nyeoj", - "nyeoc", - "nyeok", - "nyeot", - "nyeop", - "nyeoh", - "nye", - "nyeg", - "nyegg", - "nyegs", - "nyen", - "nyenj", - "nyenh", - "nyed", - "nyel", - "nyelg", - "nyelm", - "nyelb", - "nyels", - "nyelt", - "nyelp", - "nyelh", - "nyem", - "nyeb", - "nyebs", - "nyes", - "nyess", - "nyeng", - "nyej", - "nyec", - "nyek", - "nyet", - "nyep", - "nyeh", - "no", - "nog", - "nogg", - "nogs", - "non", - "nonj", - "nonh", - "nod", - "nol", - "nolg", - "nolm", - "nolb", - "nols", - "nolt", - "nolp", - "nolh", - "nom", - "nob", - "nobs", - "nos", - "noss", - "nong", - "noj", - "noc", - "nok", - "not", - "nop", - "noh", - "nwa", - "nwag", - "nwagg", - "nwags", - "nwan", - "nwanj", - "nwanh", - "nwad", - "nwal", - "nwalg", - "nwalm", - "nwalb", - "nwals", - "nwalt", - "nwalp", - "nwalh", - "nwam", - "nwab", - "nwabs", - "nwas", - "nwass", - "nwang", - "nwaj", - "nwac", - "nwak", - "nwat", - "nwap", - "nwah", - "nwae", - "nwaeg", - "nwaegg", - "nwaegs", - "nwaen", - "nwaenj", - "nwaenh", - "nwaed", - "nwael", - "nwaelg", - "nwaelm", - "nwaelb", - "nwaels", - "nwaelt", - "nwaelp", - "nwaelh", - "nwaem", - "nwaeb", - "nwaebs", - "nwaes", - "nwaess", - "nwaeng", - "nwaej", - "nwaec", - "nwaek", - "nwaet", - "nwaep", - "nwaeh", - "noe", - "noeg", - "noegg", - "noegs", - "noen", - "noenj", - "noenh", - "noed", - "noel", - "noelg", - "noelm", - "noelb", - "noels", - "noelt", - "noelp", - "noelh", - "noem", - "noeb", - "noebs", - "noes", - "noess", - "noeng", - "noej", - "noec", - "noek", - "noet", - "noep", - "noeh", - "nyo", - "nyog", - "nyogg", - "nyogs", - "nyon", - "nyonj", - "nyonh", - "nyod", - "nyol", - "nyolg", - "nyolm", - "nyolb", - "nyols", - "nyolt", - "nyolp", - "nyolh", - "nyom", - "nyob", - "nyobs", - "nyos", - "nyoss", - "nyong", - "nyoj", - "nyoc", - "nyok", - "nyot", - "nyop", - "nyoh", - "nu", - "nug", - "nugg", - "nugs", - "nun", - "nunj", - "nunh", - "nud", - "nul", - "nulg", - "nulm", - "nulb", - "nuls", - "nult", - "nulp", - "nulh", - "num", - "nub", - "nubs", - "nus", - "nuss", - "nung", - "nuj", - "nuc", - "nuk", - "nut", - "nup", - "nuh", - "nweo", - "nweog", - "nweogg", - "nweogs", - "nweon", - "nweonj", - "nweonh", - "nweod", - "nweol", - "nweolg", - "nweolm", - "nweolb", - "nweols", - "nweolt", - "nweolp", - "nweolh", - "nweom", - "nweob", - "nweobs", - "nweos", - "nweoss", - "nweong", - "nweoj", - "nweoc", - "nweok", - "nweot", - "nweop", - "nweoh", - "nwe", - "nweg", - "nwegg", - "nwegs", - "nwen", - "nwenj", - "nwenh", - "nwed", - "nwel", - "nwelg", - "nwelm", - "nwelb", - "nwels", - "nwelt", - "nwelp", - "nwelh", - "nwem", - "nweb", - "nwebs", - "nwes", - "nwess", - "nweng", - "nwej", - "nwec", - "nwek", - "nwet", - "nwep", - "nweh", - "nwi", - "nwig", - "nwigg", - "nwigs", - "nwin", - "nwinj", - "nwinh", - "nwid", - "nwil", - "nwilg", - "nwilm", - "nwilb", - "nwils", - "nwilt", - "nwilp", - "nwilh", - "nwim", - "nwib", - "nwibs", - "nwis", - "nwiss", - "nwing", - "nwij", - "nwic", - "nwik", - "nwit", - "nwip", - "nwih", - "nyu", - "nyug", - "nyugg", - "nyugs", - "nyun", - "nyunj", - "nyunh", - "nyud", - "nyul", - "nyulg", - "nyulm", - "nyulb", - "nyuls", - "nyult", - "nyulp", - "nyulh", - "nyum", - "nyub", - "nyubs", - "nyus", - "nyuss", - "nyung", - "nyuj", - "nyuc", - "nyuk", - "nyut", - "nyup", - "nyuh", - "neu", - "neug", - "neugg", - "neugs", - "neun", - "neunj", - "neunh", - "neud", - "neul", - "neulg", - "neulm", - "neulb", - "neuls", - "neult", - "neulp", - "neulh", - "neum", - "neub", - "neubs", - "neus", - "neuss", - "neung", - "neuj", - "neuc", - "neuk", - "neut", - "neup", - "neuh", - "nyi", - "nyig", - "nyigg", - "nyigs", - "nyin", - "nyinj", - "nyinh", - "nyid", - "nyil", - "nyilg", - "nyilm", - "nyilb", - "nyils", - "nyilt", - "nyilp", - "nyilh", - "nyim", - "nyib", - "nyibs", - "nyis", - "nyiss", - "nying", - "nyij", - "nyic", - "nyik", - "nyit", - "nyip", - "nyih", - "ni", - "nig", - "nigg", - "nigs", - "nin", - "ninj", - "ninh", - "nid", - "nil", - "nilg", - "nilm", - "nilb", - "nils", - "nilt", - "nilp", - "nilh", - "nim", - "nib", - "nibs", - "nis", - "niss", - "ning", - "nij", - "nic", - "nik", - "nit", - "nip", - "nih", - "da", - "dag", - "dagg", - "dags", - "dan", - "danj", - "danh", - "dad", - "dal", - "dalg", - "dalm", - "dalb", - "dals", - "dalt", - "dalp", - "dalh", - "dam", - "dab", - "dabs", - "das", - "dass", - "dang", - "daj", - "dac", - "dak", - "dat", - "dap", - "dah", - "dae", - "daeg", - "daegg", - "daegs", - "daen", - "daenj", - "daenh", - "daed", - "dael", - "daelg", - "daelm", - "daelb", - "daels", - "daelt", - "daelp", - "daelh", - "daem", - "daeb", - "daebs", - "daes", - "daess", - "daeng", - "daej", - "daec", - "daek", - "daet", - "daep", - "daeh", - "dya", - "dyag", - "dyagg", - "dyags", - "dyan", - "dyanj", - "dyanh", - "dyad", - "dyal", - "dyalg", - "dyalm", - "dyalb", - "dyals", - "dyalt", - "dyalp", - "dyalh", - "dyam", - "dyab", - "dyabs", - "dyas", - "dyass", - "dyang", - "dyaj", - "dyac", - "dyak", - "dyat", - "dyap", - "dyah", - "dyae", - "dyaeg", - "dyaegg", - "dyaegs", - "dyaen", - "dyaenj", - "dyaenh", - "dyaed", - "dyael", - "dyaelg", - "dyaelm", - "dyaelb", - "dyaels", - "dyaelt", - "dyaelp", - "dyaelh", - "dyaem", - "dyaeb", - "dyaebs", - "dyaes", - "dyaess", - "dyaeng", - "dyaej", - "dyaec", - "dyaek", - "dyaet", - "dyaep", - "dyaeh", - "deo", - "deog", - "deogg", - "deogs", - "deon", - "deonj", - "deonh", - "deod", - "deol", - "deolg", - "deolm", - "deolb", - "deols", - "deolt", - "deolp", - "deolh", - "deom", - "deob", - "deobs", - "deos", - "deoss", - "deong", - "deoj", - "deoc", - "deok", - "deot", - "deop", - "deoh", - "de", - "deg", - "degg", - "degs", - "den", - "denj", - "denh", - "ded", - "del", - "delg", - "delm", - "delb", - "dels", - "delt", - "delp", - "delh", - "dem", - "deb", - "debs", - "des", - "dess", - "deng", - "dej", - "dec", - "dek", - "det", - "dep", - "deh", - "dyeo", - "dyeog", - "dyeogg", - "dyeogs", - "dyeon", - "dyeonj", - "dyeonh", - "dyeod", - "dyeol", - "dyeolg", - "dyeolm", - "dyeolb", - "dyeols", - "dyeolt", - "dyeolp", - "dyeolh", - "dyeom", - "dyeob", - "dyeobs", - "dyeos", - "dyeoss", - "dyeong", - "dyeoj", - "dyeoc", - "dyeok", - "dyeot", - "dyeop", - "dyeoh", - "dye", - "dyeg", - "dyegg", - "dyegs", - "dyen", - "dyenj", - "dyenh", - "dyed", - "dyel", - "dyelg", - "dyelm", - "dyelb", - "dyels", - "dyelt", - "dyelp", - "dyelh", - "dyem", - "dyeb", - "dyebs", - "dyes", - "dyess", - "dyeng", - "dyej", - "dyec", - "dyek", - "dyet", - "dyep", - "dyeh", - "do", - "dog", - "dogg", - "dogs", - "don", - "donj", - "donh", - "dod", - "dol", - "dolg", - "dolm", - "dolb", - "dols", - "dolt", - "dolp", - "dolh", - "dom", - "dob", - "dobs", - "dos", - "doss", - "dong", - "doj", - "doc", - "dok", - "dot", - "dop", - "doh", - "dwa", - "dwag", - "dwagg", - "dwags", - "dwan", - "dwanj", - "dwanh", - "dwad", - "dwal", - "dwalg", - "dwalm", - "dwalb", - "dwals", - "dwalt", - "dwalp", - "dwalh", - "dwam", - "dwab", - "dwabs", - "dwas", - "dwass", - "dwang", - "dwaj", - "dwac", - "dwak", - "dwat", - "dwap", - "dwah", - "dwae", - "dwaeg", - "dwaegg", - "dwaegs", - "dwaen", - "dwaenj", - "dwaenh", - "dwaed", - "dwael", - "dwaelg", - "dwaelm", - "dwaelb", - "dwaels", - "dwaelt", - "dwaelp", - "dwaelh", - "dwaem", - "dwaeb", - "dwaebs", - "dwaes", - "dwaess", - "dwaeng", - "dwaej", - "dwaec", - "dwaek", - "dwaet", - "dwaep", - "dwaeh", - "doe", - "doeg", - "doegg", - "doegs", - "doen", - "doenj", - "doenh", - "doed", - "doel", - "doelg", - "doelm", - "doelb", - "doels", - "doelt", - "doelp", - "doelh", - "doem", - "doeb", - "doebs", - "does", - "doess", - "doeng", - "doej", - "doec", - "doek", - "doet", - "doep", - "doeh", - "dyo", - "dyog", - "dyogg", - "dyogs", - "dyon", - "dyonj", - "dyonh", - "dyod", - "dyol", - "dyolg", - "dyolm", - "dyolb", - "dyols", - "dyolt", - "dyolp", - "dyolh", - "dyom", - "dyob", - "dyobs", - "dyos", - "dyoss", - "dyong", - "dyoj", - "dyoc", - "dyok", - "dyot", - "dyop", - "dyoh", - "du", - "dug", - "dugg", - "dugs", - "dun", - "dunj", - "dunh", - "dud", - "dul", - "dulg", - "dulm", - "dulb", - "duls", - "dult", - "dulp", - "dulh", - "dum", - "dub", - "dubs", - "dus", - "duss", - "dung", - "duj", - "duc", - "duk", - "dut", - "dup", - "duh", - "dweo", - "dweog", - "dweogg", - "dweogs", - "dweon", - "dweonj", - "dweonh", - "dweod", - "dweol", - "dweolg", - "dweolm", - "dweolb", - "dweols", - "dweolt", - "dweolp", - "dweolh", - "dweom", - "dweob", - "dweobs", - "dweos", - "dweoss", - "dweong", - "dweoj", - "dweoc", - "dweok", - "dweot", - "dweop", - "dweoh", - "dwe", - "dweg", - "dwegg", - "dwegs", - "dwen", - "dwenj", - "dwenh", - "dwed", - "dwel", - "dwelg", - "dwelm", - "dwelb", - "dwels", - "dwelt", - "dwelp", - "dwelh", - "dwem", - "dweb", - "dwebs", - "dwes", - "dwess", - "dweng", - "dwej", - "dwec", - "dwek", - "dwet", - "dwep", - "dweh", - "dwi", - "dwig", - "dwigg", - "dwigs", - "dwin", - "dwinj", - "dwinh", - "dwid", - "dwil", - "dwilg", - "dwilm", - "dwilb", - "dwils", - "dwilt", - "dwilp", - "dwilh", - "dwim", - "dwib", - "dwibs", - "dwis", - "dwiss", - "dwing", - "dwij", - "dwic", - "dwik", - "dwit", - "dwip", - "dwih", - "dyu", - "dyug", - "dyugg", - "dyugs", - "dyun", - "dyunj", - "dyunh", - "dyud", - "dyul", - "dyulg", - "dyulm", - "dyulb", - "dyuls", - "dyult", - "dyulp", - "dyulh", - "dyum", - "dyub", - "dyubs", - "dyus", - "dyuss", - "dyung", - "dyuj", - "dyuc", - "dyuk", - "dyut", - "dyup", - "dyuh", - "deu", - "deug", - "deugg", - "deugs", - "deun", - "deunj", - "deunh", - "deud", - "deul", - "deulg", - "deulm", - "deulb", - "deuls", - "deult", - "deulp", - "deulh", - "deum", - "deub", - "deubs", - "deus", - "deuss", - "deung", - "deuj", - "deuc", - "deuk", - "deut", - "deup", - "deuh", - "dyi", - "dyig", - "dyigg", - "dyigs", - "dyin", - "dyinj", - "dyinh", - "dyid", - "dyil", - "dyilg", - "dyilm", - "dyilb", - "dyils", - "dyilt", - "dyilp", - "dyilh", - "dyim", - "dyib", - "dyibs", - "dyis", - "dyiss", - "dying", - "dyij", - "dyic", - "dyik", - "dyit", - "dyip", - "dyih", - "di", - "dig", - "digg", - "digs", - "din", - "dinj", - "dinh", - "did", - "dil", - "dilg", - "dilm", - "dilb", - "dils", - "dilt", - "dilp", - "dilh", - "dim", - "dib", - "dibs", - "dis", - "diss", - "ding", - "dij", - "dic", - "dik", - "dit", - "dip", - "dih", - "dda", - "ddag", - "ddagg", - "ddags", - "ddan", - "ddanj", - "ddanh", - "ddad", - "ddal", - "ddalg", - "ddalm", - "ddalb", - "ddals", - "ddalt", - "ddalp", - "ddalh", - "ddam", - "ddab", - "ddabs", - "ddas", - "ddass", - "ddang", - "ddaj", - "ddac", - "ddak", - "ddat", - "ddap", - "ddah", - "ddae", - "ddaeg", - "ddaegg", - "ddaegs", - "ddaen", - "ddaenj", - "ddaenh", - "ddaed", - "ddael", - "ddaelg", - "ddaelm", - "ddaelb", - "ddaels", - "ddaelt", - "ddaelp", - "ddaelh", - "ddaem", - "ddaeb", - "ddaebs", - "ddaes", - "ddaess", - "ddaeng", - "ddaej", - "ddaec", - "ddaek", - "ddaet", - "ddaep", - "ddaeh", - "ddya", - "ddyag", - "ddyagg", - "ddyags", - "ddyan", - "ddyanj", - "ddyanh", - "ddyad", - "ddyal", - "ddyalg", - "ddyalm", - "ddyalb", - "ddyals", - "ddyalt", - "ddyalp", - "ddyalh", - "ddyam", - "ddyab", - "ddyabs", - "ddyas", - "ddyass", - "ddyang", - "ddyaj", - "ddyac", - "ddyak", - "ddyat", - "ddyap", - "ddyah", - "ddyae", - "ddyaeg", - "ddyaegg", - "ddyaegs", - "ddyaen", - "ddyaenj", - "ddyaenh", - "ddyaed", - "ddyael", - "ddyaelg", - "ddyaelm", - "ddyaelb", - "ddyaels", - "ddyaelt", - "ddyaelp", - "ddyaelh", - "ddyaem", - "ddyaeb", - "ddyaebs", - "ddyaes", - "ddyaess", - "ddyaeng", - "ddyaej", - "ddyaec", - "ddyaek", - "ddyaet", - "ddyaep", - "ddyaeh", - "ddeo", - "ddeog", - "ddeogg", - "ddeogs", - "ddeon", - "ddeonj", - "ddeonh", - "ddeod", - "ddeol", - "ddeolg", - "ddeolm", - "ddeolb", - "ddeols", - "ddeolt", - "ddeolp", - "ddeolh", - "ddeom", - "ddeob", - "ddeobs", - "ddeos", - "ddeoss", - "ddeong", - "ddeoj", - "ddeoc", - "ddeok", - "ddeot", - "ddeop", - "ddeoh", - "dde", - "ddeg", - "ddegg", - "ddegs", - "dden", - "ddenj", - "ddenh", - "dded", - "ddel", - "ddelg", - "ddelm", - "ddelb", - "ddels", - "ddelt", - "ddelp", - "ddelh", - "ddem", - "ddeb", - "ddebs", - "ddes", - "ddess", - "ddeng", - "ddej", - "ddec", - "ddek", - "ddet", - "ddep", - "ddeh", - "ddyeo", - "ddyeog", - "ddyeogg", - "ddyeogs", - "ddyeon", - "ddyeonj", - "ddyeonh", - "ddyeod", - "ddyeol", - "ddyeolg", - "ddyeolm", - "ddyeolb", - "ddyeols", - "ddyeolt", - "ddyeolp", - "ddyeolh", - "ddyeom", - "ddyeob", - "ddyeobs", - "ddyeos", - "ddyeoss", - "ddyeong", - "ddyeoj", - "ddyeoc", - "ddyeok", - "ddyeot", - "ddyeop", - "ddyeoh", - "ddye", - "ddyeg", - "ddyegg", - "ddyegs", - "ddyen", - "ddyenj", - "ddyenh", - "ddyed", - "ddyel", - "ddyelg", - "ddyelm", - "ddyelb", - "ddyels", - "ddyelt", - "ddyelp", - "ddyelh", - "ddyem", - "ddyeb", - "ddyebs", - "ddyes", - "ddyess", - "ddyeng", - "ddyej", - "ddyec", - "ddyek", - "ddyet", - "ddyep", - "ddyeh", - "ddo", - "ddog", - "ddogg", - "ddogs", - "ddon", - "ddonj", - "ddonh", - "ddod", - "ddol", - "ddolg", - "ddolm", - "ddolb", - "ddols", - "ddolt", - "ddolp", - "ddolh", - "ddom", - "ddob", - "ddobs", - "ddos", - "ddoss", - "ddong", - "ddoj", - "ddoc", - "ddok", - "ddot", - "ddop", - "ddoh", - "ddwa", - "ddwag", - "ddwagg", - "ddwags", - "ddwan", - "ddwanj", - "ddwanh", - "ddwad", - "ddwal", - "ddwalg", - "ddwalm", - "ddwalb", - "ddwals", - "ddwalt", - "ddwalp", - "ddwalh", - "ddwam", - "ddwab", - "ddwabs", - "ddwas", - "ddwass", - "ddwang", - "ddwaj", - "ddwac", - "ddwak", - "ddwat", - "ddwap", - "ddwah", - "ddwae", - "ddwaeg", - "ddwaegg", - "ddwaegs", - "ddwaen", - "ddwaenj", - "ddwaenh", - "ddwaed", - "ddwael", - "ddwaelg", - "ddwaelm", - "ddwaelb", - "ddwaels", - "ddwaelt", - "ddwaelp", - "ddwaelh", - "ddwaem", - "ddwaeb", - "ddwaebs", - "ddwaes", - "ddwaess", - "ddwaeng", - "ddwaej", - "ddwaec", - "ddwaek", - "ddwaet", - "ddwaep", - "ddwaeh", - "ddoe", - "ddoeg", - "ddoegg", - "ddoegs", - "ddoen", - "ddoenj", - "ddoenh", - "ddoed", - "ddoel", - "ddoelg", - "ddoelm", - "ddoelb", - "ddoels", - "ddoelt", - "ddoelp", - "ddoelh", - "ddoem", - "ddoeb", - "ddoebs", - "ddoes", - "ddoess", - "ddoeng", - "ddoej", - "ddoec", - "ddoek", - "ddoet", - "ddoep", - "ddoeh", - "ddyo", - "ddyog", - "ddyogg", - "ddyogs", - "ddyon", - "ddyonj", - "ddyonh", - "ddyod", - "ddyol", - "ddyolg", - "ddyolm", - "ddyolb", - "ddyols", - "ddyolt", - "ddyolp", - "ddyolh", - "ddyom", - "ddyob", - "ddyobs", - "ddyos", - "ddyoss", - "ddyong", - "ddyoj", - "ddyoc", - "ddyok", - "ddyot", - "ddyop", - "ddyoh", - "ddu", - "ddug", - "ddugg", - "ddugs", - "ddun", - "ddunj", - "ddunh", - "ddud", - "ddul", - "ddulg", - "ddulm", - "ddulb", - "dduls", - "ddult", - "ddulp", - "ddulh", - "ddum", - "ddub", - "ddubs", - "ddus", - "dduss", - "ddung", - "dduj", - "dduc", - "dduk", - "ddut", - "ddup", - "dduh", - "ddweo", - "ddweog", - "ddweogg", - "ddweogs", - "ddweon", - "ddweonj", - "ddweonh", - "ddweod", - "ddweol", - "ddweolg", - "ddweolm", - "ddweolb", - "ddweols", - "ddweolt", - "ddweolp", - "ddweolh", - "ddweom", - "ddweob", - "ddweobs", - "ddweos", - "ddweoss", - "ddweong", - "ddweoj", - "ddweoc", - "ddweok", - "ddweot", - "ddweop", - "ddweoh", - "ddwe", - "ddweg", - "ddwegg", - "ddwegs", - "ddwen", - "ddwenj", - "ddwenh", - "ddwed", - "ddwel", - "ddwelg", - "ddwelm", - "ddwelb", - "ddwels", - "ddwelt", - "ddwelp", - "ddwelh", - "ddwem", - "ddweb", - "ddwebs", - "ddwes", - "ddwess", - "ddweng", - "ddwej", - "ddwec", - "ddwek", - "ddwet", - "ddwep", - "ddweh", - "ddwi", - "ddwig", - "ddwigg", - "ddwigs", - "ddwin", - "ddwinj", - "ddwinh", - "ddwid", - "ddwil", - "ddwilg", - "ddwilm", - "ddwilb", - "ddwils", - "ddwilt", - "ddwilp", - "ddwilh", - "ddwim", - "ddwib", - "ddwibs", - "ddwis", - "ddwiss", - "ddwing", - "ddwij", - "ddwic", - "ddwik", - "ddwit", - "ddwip", - "ddwih", - "ddyu", - "ddyug", - "ddyugg", - "ddyugs", - "ddyun", - "ddyunj", - "ddyunh", - "ddyud", - "ddyul", - "ddyulg", - "ddyulm", - "ddyulb", - "ddyuls", - "ddyult", - "ddyulp", - "ddyulh", - "ddyum", - "ddyub", - "ddyubs", - "ddyus", - "ddyuss", - "ddyung", - "ddyuj", - "ddyuc", - "ddyuk", - "ddyut", - "ddyup", - "ddyuh", - "ddeu", - "ddeug", - "ddeugg", - "ddeugs", - "ddeun", - "ddeunj", - "ddeunh", - "ddeud", - "ddeul", - "ddeulg", - "ddeulm", - "ddeulb", - "ddeuls", - "ddeult", - "ddeulp", - "ddeulh", - "ddeum", - "ddeub", - "ddeubs", - "ddeus", - "ddeuss", - "ddeung", - "ddeuj", - "ddeuc", - "ddeuk", - "ddeut", - "ddeup", - "ddeuh", - "ddyi", - "ddyig", - "ddyigg", - "ddyigs", - "ddyin", - "ddyinj", - "ddyinh", - "ddyid", - "ddyil", - "ddyilg", - "ddyilm", - "ddyilb", - "ddyils", - "ddyilt", - "ddyilp", - "ddyilh", - "ddyim", - "ddyib", - "ddyibs", - "ddyis", - "ddyiss", - "ddying", - "ddyij", - "ddyic", - "ddyik", - "ddyit", - "ddyip", - "ddyih", - "ddi", - "ddig", - "ddigg", - "ddigs", - "ddin", - "ddinj", - "ddinh", - "ddid", - "ddil", - "ddilg", - "ddilm", - "ddilb", - "ddils", - "ddilt", - "ddilp", - "ddilh", - "ddim", - "ddib", - "ddibs", - "ddis", - "ddiss", - "dding", - "ddij", - "ddic", - "ddik", - "ddit", - "ddip", - "ddih", - "ra", - "rag", - "ragg", - "rags", - "ran", - "ranj", - "ranh", - "rad", - "ral", - "ralg", - "ralm", - "ralb", - "rals", - "ralt", - "ralp", - "ralh", - "ram", - "rab", - "rabs", - "ras", - "rass", - "rang", - "raj", - "rac", - "rak", - "rat", - "rap", - "rah", - "rae", - "raeg", - "raegg", - "raegs", - "raen", - "raenj", - "raenh", - "raed", - "rael", - "raelg", - "raelm", - "raelb", - "raels", - "raelt", - "raelp", - "raelh", - "raem", - "raeb", - "raebs", - "raes", - "raess", - "raeng", - "raej", - "raec", - "raek", - "raet", - "raep", - "raeh", - "rya", - "ryag", - "ryagg", - "ryags", - "ryan", - "ryanj", - "ryanh", - "ryad", - "ryal", - "ryalg", - "ryalm", - "ryalb", - "ryals", - "ryalt", - "ryalp", - "ryalh", - "ryam", - "ryab", - "ryabs", - "ryas", - "ryass", - "ryang", - "ryaj", - "ryac", - "ryak", - "ryat", - "ryap", - "ryah", - "ryae", - "ryaeg", - "ryaegg", - "ryaegs", - "ryaen", - "ryaenj", - "ryaenh", - "ryaed", - "ryael", - "ryaelg", - "ryaelm", - "ryaelb", - "ryaels", - "ryaelt", - "ryaelp", - "ryaelh", - "ryaem", - "ryaeb", - "ryaebs", - "ryaes", - "ryaess", - "ryaeng", - "ryaej", - "ryaec", - "ryaek", - "ryaet", - "ryaep", - "ryaeh", - "reo", - "reog", - "reogg", - "reogs", - "reon", - "reonj", - "reonh", - "reod", - "reol", - "reolg", - "reolm", - "reolb", - "reols", - "reolt", - "reolp", - "reolh", - "reom", - "reob", - "reobs", - "reos", - "reoss", - "reong", - "reoj", - "reoc", - "reok", - "reot", - "reop", - "reoh", - "re", - "reg", - "regg", - "regs", - "ren", - "renj", - "renh", - "red", - "rel", - "relg", - "relm", - "relb", - "rels", - "relt", - "relp", - "relh", - "rem", - "reb", - "rebs", - "res", - "ress", - "reng", - "rej", - "rec", - "rek", - "ret", - "rep", - "reh", - "ryeo", - "ryeog", - "ryeogg", - "ryeogs", - "ryeon", - "ryeonj", - "ryeonh", - "ryeod", - "ryeol", - "ryeolg", - "ryeolm", - "ryeolb", - "ryeols", - "ryeolt", - "ryeolp", - "ryeolh", - "ryeom", - "ryeob", - "ryeobs", - "ryeos", - "ryeoss", - "ryeong", - "ryeoj", - "ryeoc", - "ryeok", - "ryeot", - "ryeop", - "ryeoh", - "rye", - "ryeg", - "ryegg", - "ryegs", - "ryen", - "ryenj", - "ryenh", - "ryed", - "ryel", - "ryelg", - "ryelm", - "ryelb", - "ryels", - "ryelt", - "ryelp", - "ryelh", - "ryem", - "ryeb", - "ryebs", - "ryes", - "ryess", - "ryeng", - "ryej", - "ryec", - "ryek", - "ryet", - "ryep", - "ryeh", - "ro", - "rog", - "rogg", - "rogs", - "ron", - "ronj", - "ronh", - "rod", - "rol", - "rolg", - "rolm", - "rolb", - "rols", - "rolt", - "rolp", - "rolh", - "rom", - "rob", - "robs", - "ros", - "ross", - "rong", - "roj", - "roc", - "rok", - "rot", - "rop", - "roh", - "rwa", - "rwag", - "rwagg", - "rwags", - "rwan", - "rwanj", - "rwanh", - "rwad", - "rwal", - "rwalg", - "rwalm", - "rwalb", - "rwals", - "rwalt", - "rwalp", - "rwalh", - "rwam", - "rwab", - "rwabs", - "rwas", - "rwass", - "rwang", - "rwaj", - "rwac", - "rwak", - "rwat", - "rwap", - "rwah", - "rwae", - "rwaeg", - "rwaegg", - "rwaegs", - "rwaen", - "rwaenj", - "rwaenh", - "rwaed", - "rwael", - "rwaelg", - "rwaelm", - "rwaelb", - "rwaels", - "rwaelt", - "rwaelp", - "rwaelh", - "rwaem", - "rwaeb", - "rwaebs", - "rwaes", - "rwaess", - "rwaeng", - "rwaej", - "rwaec", - "rwaek", - "rwaet", - "rwaep", - "rwaeh", - "roe", - "roeg", - "roegg", - "roegs", - "roen", - "roenj", - "roenh", - "roed", - "roel", - "roelg", - "roelm", - "roelb", - "roels", - "roelt", - "roelp", - "roelh", - "roem", - "roeb", - "roebs", - "roes", - "roess", - "roeng", - "roej", - "roec", - "roek", - "roet", - "roep", - "roeh", - "ryo", - "ryog", - "ryogg", - "ryogs", - "ryon", - "ryonj", - "ryonh", - "ryod", - "ryol", - "ryolg", - "ryolm", - "ryolb", - "ryols", - "ryolt", - "ryolp", - "ryolh", - "ryom", - "ryob", - "ryobs", - "ryos", - "ryoss", - "ryong", - "ryoj", - "ryoc", - "ryok", - "ryot", - "ryop", - "ryoh", - "ru", - "rug", - "rugg", - "rugs", - "run", - "runj", - "runh", - "rud", - "rul", - "rulg", - "rulm", - "rulb", - "ruls", - "rult", - "rulp", - "rulh", - "rum", - "rub", - "rubs", - "rus", - "russ", - "rung", - "ruj", - "ruc", - "ruk", - "rut", - "rup", - "ruh", - "rweo", - "rweog", - "rweogg", - "rweogs", - "rweon", - "rweonj", - "rweonh", - "rweod", - "rweol", - "rweolg", - "rweolm", - "rweolb", - "rweols", - "rweolt", - "rweolp", - "rweolh", - "rweom", - "rweob", - "rweobs", - "rweos", - "rweoss", - "rweong", - "rweoj", - "rweoc", - "rweok", - "rweot", - "rweop", - "rweoh", - "rwe", - "rweg", - "rwegg", - "rwegs", - "rwen", - "rwenj", - "rwenh", - "rwed", - "rwel", - "rwelg", - "rwelm", - "rwelb", - "rwels", - "rwelt", - "rwelp", - "rwelh", - "rwem", - "rweb", - "rwebs", - "rwes", - "rwess", - "rweng", - "rwej", - "rwec", - "rwek", - "rwet", - "rwep", - "rweh", - "rwi", - "rwig", - "rwigg", - "rwigs", - "rwin", - "rwinj", - "rwinh", - "rwid", - "rwil", - "rwilg", - "rwilm", - "rwilb", - "rwils", - "rwilt", - "rwilp", - "rwilh", - "rwim", - "rwib", - "rwibs", - "rwis", - "rwiss", - "rwing", - "rwij", - "rwic", - "rwik", - "rwit", - "rwip", - "rwih", - "ryu", - "ryug", - "ryugg", - "ryugs", - "ryun", - "ryunj", - "ryunh", - "ryud", - "ryul", - "ryulg", - "ryulm", - "ryulb", - "ryuls", - "ryult", - "ryulp", - "ryulh", - "ryum", - "ryub", - "ryubs", - "ryus", - "ryuss", - "ryung", - "ryuj", - "ryuc", - "ryuk", - "ryut", - "ryup", - "ryuh", - "reu", - "reug", - "reugg", - "reugs", - "reun", - "reunj", - "reunh", - "reud", - "reul", - "reulg", - "reulm", - "reulb", - "reuls", - "reult", - "reulp", - "reulh", - "reum", - "reub", - "reubs", - "reus", - "reuss", - "reung", - "reuj", - "reuc", - "reuk", - "reut", - "reup", - "reuh", - "ryi", - "ryig", - "ryigg", - "ryigs", - "ryin", - "ryinj", - "ryinh", - "ryid", - "ryil", - "ryilg", - "ryilm", - "ryilb", - "ryils", - "ryilt", - "ryilp", - "ryilh", - "ryim", - "ryib", - "ryibs", - "ryis", - "ryiss", - "rying", - "ryij", - "ryic", - "ryik", - "ryit", - "ryip", - "ryih", - "ri", - "rig", - "rigg", - "rigs", - "rin", - "rinj", - "rinh", - "rid", - "ril", - "rilg", - "rilm", - "rilb", - "rils", - "rilt", - "rilp", - "rilh", - "rim", - "rib", - "ribs", - "ris", - "riss", - "ring", - "rij", - "ric", - "rik", - "rit", - "rip", - "rih", - "ma", - "mag", - "magg", - "mags", - "man", - "manj", - "manh", - "mad", - "mal", - "malg", - "malm", - "malb", - "mals", - "malt", - "malp", - "malh", - "mam", - "mab", - "mabs", - "mas", - "mass", - "mang", - "maj", - "mac", - "mak", - "mat", - "map", - "mah", - "mae", - "maeg", - "maegg", - "maegs", - "maen", - "maenj", - "maenh", - "maed", - "mael", - "maelg", - "maelm", - "maelb", - "maels", - "maelt", - "maelp", - "maelh", - "maem", - "maeb", - "maebs", - "maes", - "maess", - "maeng", - "maej", - "maec", - "maek", - "maet", - "maep", - "maeh", - "mya", - "myag", - "myagg", - "myags", - "myan", - "myanj", - "myanh", - "myad", - "myal", - "myalg", - "myalm", - "myalb", - "myals", - "myalt", - "myalp", - "myalh", - "myam", - "myab", - "myabs", - "myas", - "myass", - "myang", - "myaj", - "myac", - "myak", - "myat", - "myap", - "myah", - "myae", - "myaeg", - "myaegg", - "myaegs", - "myaen", - "myaenj", - "myaenh", - "myaed", - "myael", - "myaelg", - "myaelm", - "myaelb", - "myaels", - "myaelt", - "myaelp", - "myaelh", - "myaem", - "myaeb", - "myaebs", - "myaes", - "myaess", - "myaeng", - "myaej", - "myaec", - "myaek", - "myaet", - "myaep", - "myaeh", - "meo", - "meog", - "meogg", - "meogs", - "meon", - "meonj", - "meonh", - "meod", - "meol", - "meolg", - "meolm", - "meolb", - "meols", - "meolt", - "meolp", - "meolh", - "meom", - "meob", - "meobs", - "meos", - "meoss", - "meong", - "meoj", - "meoc", - "meok", - "meot", - "meop", - "meoh", - "me", - "meg", - "megg", - "megs", - "men", - "menj", - "menh", - "med", - "mel", - "melg", - "melm", - "melb", - "mels", - "melt", - "melp", - "melh", - "mem", - "meb", - "mebs", - "mes", - "mess", - "meng", - "mej", - "mec", - "mek", - "met", - "mep", - "meh", - "myeo", - "myeog", - "myeogg", - "myeogs", - "myeon", - "myeonj", - "myeonh", - "myeod", - "myeol", - "myeolg", - "myeolm", - "myeolb", - "myeols", - "myeolt", - "myeolp", - "myeolh", - "myeom", - "myeob", - "myeobs", - "myeos", - "myeoss", - "myeong", - "myeoj", - "myeoc", - "myeok", - "myeot", - "myeop", - "myeoh", - "mye", - "myeg", - "myegg", - "myegs", - "myen", - "myenj", - "myenh", - "myed", - "myel", - "myelg", - "myelm", - "myelb", - "myels", - "myelt", - "myelp", - "myelh", - "myem", - "myeb", - "myebs", - "myes", - "myess", - "myeng", - "myej", - "myec", - "myek", - "myet", - "myep", - "myeh", - "mo", - "mog", - "mogg", - "mogs", - "mon", - "monj", - "monh", - "mod", - "mol", - "molg", - "molm", - "molb", - "mols", - "molt", - "molp", - "molh", - "mom", - "mob", - "mobs", - "mos", - "moss", - "mong", - "moj", - "moc", - "mok", - "mot", - "mop", - "moh", - "mwa", - "mwag", - "mwagg", - "mwags", - "mwan", - "mwanj", - "mwanh", - "mwad", - "mwal", - "mwalg", - "mwalm", - "mwalb", - "mwals", - "mwalt", - "mwalp", - "mwalh", - "mwam", - "mwab", - "mwabs", - "mwas", - "mwass", - "mwang", - "mwaj", - "mwac", - "mwak", - "mwat", - "mwap", - "mwah", - "mwae", - "mwaeg", - "mwaegg", - "mwaegs", - "mwaen", - "mwaenj", - "mwaenh", - "mwaed", - "mwael", - "mwaelg", - "mwaelm", - "mwaelb", - "mwaels", - "mwaelt", - "mwaelp", - "mwaelh", - "mwaem", - "mwaeb", - "mwaebs", - "mwaes", - "mwaess", - "mwaeng", - "mwaej", - "mwaec", - "mwaek", - "mwaet", - "mwaep", - "mwaeh", - "moe", - "moeg", - "moegg", - "moegs", - "moen", - "moenj", - "moenh", - "moed", - "moel", - "moelg", - "moelm", - "moelb", - "moels", - "moelt", - "moelp", - "moelh", - "moem", - "moeb", - "moebs", - "moes", - "moess", - "moeng", - "moej", - "moec", - "moek", - "moet", - "moep", - "moeh", - "myo", - "myog", - "myogg", - "myogs", - "myon", - "myonj", - "myonh", - "myod", - "myol", - "myolg", - "myolm", - "myolb", - "myols", - "myolt", - "myolp", - "myolh", - "myom", - "myob", - "myobs", - "myos", - "myoss", - "myong", - "myoj", - "myoc", - "myok", - "myot", - "myop", - "myoh", - "mu", - "mug", - "mugg", - "mugs", - "mun", - "munj", - "munh", - "mud", - "mul", - "mulg", - "mulm", - "mulb", - "muls", - "mult", - "mulp", - "mulh", - "mum", - "mub", - "mubs", - "mus", - "muss", - "mung", - "muj", - "muc", - "muk", - "mut", - "mup", - "muh", - "mweo", - "mweog", - "mweogg", - "mweogs", - "mweon", - "mweonj", - "mweonh", - "mweod", - "mweol", - "mweolg", - "mweolm", - "mweolb", - "mweols", - "mweolt", - "mweolp", - "mweolh", - "mweom", - "mweob", - "mweobs", - "mweos", - "mweoss", - "mweong", - "mweoj", - "mweoc", - "mweok", - "mweot", - "mweop", - "mweoh", - "mwe", - "mweg", - "mwegg", - "mwegs", - "mwen", - "mwenj", - "mwenh", - "mwed", - "mwel", - "mwelg", - "mwelm", - "mwelb", - "mwels", - "mwelt", - "mwelp", - "mwelh", - "mwem", - "mweb", - "mwebs", - "mwes", - "mwess", - "mweng", - "mwej", - "mwec", - "mwek", - "mwet", - "mwep", - "mweh", - "mwi", - "mwig", - "mwigg", - "mwigs", - "mwin", - "mwinj", - "mwinh", - "mwid", - "mwil", - "mwilg", - "mwilm", - "mwilb", - "mwils", - "mwilt", - "mwilp", - "mwilh", - "mwim", - "mwib", - "mwibs", - "mwis", - "mwiss", - "mwing", - "mwij", - "mwic", - "mwik", - "mwit", - "mwip", - "mwih", - "myu", - "myug", - "myugg", - "myugs", - "myun", - "myunj", - "myunh", - "myud", - "myul", - "myulg", - "myulm", - "myulb", - "myuls", - "myult", - "myulp", - "myulh", - "myum", - "myub", - "myubs", - "myus", - "myuss", - "myung", - "myuj", - "myuc", - "myuk", - "myut", - "myup", - "myuh", - "meu", - "meug", - "meugg", - "meugs", - "meun", - "meunj", - "meunh", - "meud", - "meul", - "meulg", - "meulm", - "meulb", - "meuls", - "meult", - "meulp", - "meulh", - "meum", - "meub", - "meubs", - "meus", - "meuss", - "meung", - "meuj", - "meuc", - "meuk", - "meut", - "meup", - "meuh", - "myi", - "myig", - "myigg", - "myigs", - "myin", - "myinj", - "myinh", - "myid", - "myil", - "myilg", - "myilm", - "myilb", - "myils", - "myilt", - "myilp", - "myilh", - "myim", - "myib", - "myibs", - "myis", - "myiss", - "mying", - "myij", - "myic", - "myik", - "myit", - "myip", - "myih", - "mi", - "mig", - "migg", - "migs", - "min", - "minj", - "minh", - "mid", - "mil", - "milg", - "milm", - "milb", - "mils", - "milt", - "milp", - "milh", - "mim", - "mib", - "mibs", - "mis", - "miss", - "ming", - "mij", - "mic", - "mik", - "mit", - "mip", - "mih", - "ba", - "bag", - "bagg", - "bags", - "ban", - "banj", - "banh", - "bad", - "bal", - "balg", - "balm", - "balb", - "bals", - "balt", - "balp", - "balh", - "bam", - "bab", - "babs", - "bas", - "bass", - "bang", - "baj", - "bac", - "bak", - "bat", - "bap", - "bah", - "bae", - "baeg", - "baegg", - "baegs", - "baen", - "baenj", - "baenh", - "baed", - "bael", - "baelg", - "baelm", - "baelb", - "baels", - "baelt", - "baelp", - "baelh", - "baem", - "baeb", - "baebs", - "baes", - "baess", - "baeng", - "baej", - "baec", - "baek", - "baet", - "baep", - "baeh", - "bya", - "byag", - "byagg", - "byags", - "byan", - "byanj", - "byanh", - "byad", - "byal", - "byalg", - "byalm", - "byalb", - "byals", - "byalt", - "byalp", - "byalh", - "byam", - "byab", - "byabs", - "byas", - "byass", - "byang", - "byaj", - "byac", - "byak", - "byat", - "byap", - "byah", - "byae", - "byaeg", - "byaegg", - "byaegs", - "byaen", - "byaenj", - "byaenh", - "byaed", - "byael", - "byaelg", - "byaelm", - "byaelb", - "byaels", - "byaelt", - "byaelp", - "byaelh", - "byaem", - "byaeb", - "byaebs", - "byaes", - "byaess", - "byaeng", - "byaej", - "byaec", - "byaek", - "byaet", - "byaep", - "byaeh", - "beo", - "beog", - "beogg", - "beogs", - "beon", - "beonj", - "beonh", - "beod", - "beol", - "beolg", - "beolm", - "beolb", - "beols", - "beolt", - "beolp", - "beolh", - "beom", - "beob", - "beobs", - "beos", - "beoss", - "beong", - "beoj", - "beoc", - "beok", - "beot", - "beop", - "beoh", - "be", - "beg", - "begg", - "begs", - "ben", - "benj", - "benh", - "bed", - "bel", - "belg", - "belm", - "belb", - "bels", - "belt", - "belp", - "belh", - "bem", - "beb", - "bebs", - "bes", - "bess", - "beng", - "bej", - "bec", - "bek", - "bet", - "bep", - "beh", - "byeo", - "byeog", - "byeogg", - "byeogs", - "byeon", - "byeonj", - "byeonh", - "byeod", - "byeol", - "byeolg", - "byeolm", - "byeolb", - "byeols", - "byeolt", - "byeolp", - "byeolh", - "byeom", - "byeob", - "byeobs", - "byeos", - "byeoss", - "byeong", - "byeoj", - "byeoc", - "byeok", - "byeot", - "byeop", - "byeoh", - "bye", - "byeg", - "byegg", - "byegs", - "byen", - "byenj", - "byenh", - "byed", - "byel", - "byelg", - "byelm", - "byelb", - "byels", - "byelt", - "byelp", - "byelh", - "byem", - "byeb", - "byebs", - "byes", - "byess", - "byeng", - "byej", - "byec", - "byek", - "byet", - "byep", - "byeh", - "bo", - "bog", - "bogg", - "bogs", - "bon", - "bonj", - "bonh", - "bod", - "bol", - "bolg", - "bolm", - "bolb", - "bols", - "bolt", - "bolp", - "bolh", - "bom", - "bob", - "bobs", - "bos", - "boss", - "bong", - "boj", - "boc", - "bok", - "bot", - "bop", - "boh", - "bwa", - "bwag", - "bwagg", - "bwags", - "bwan", - "bwanj", - "bwanh", - "bwad", - "bwal", - "bwalg", - "bwalm", - "bwalb", - "bwals", - "bwalt", - "bwalp", - "bwalh", - "bwam", - "bwab", - "bwabs", - "bwas", - "bwass", - "bwang", - "bwaj", - "bwac", - "bwak", - "bwat", - "bwap", - "bwah", - "bwae", - "bwaeg", - "bwaegg", - "bwaegs", - "bwaen", - "bwaenj", - "bwaenh", - "bwaed", - "bwael", - "bwaelg", - "bwaelm", - "bwaelb", - "bwaels", - "bwaelt", - "bwaelp", - "bwaelh", - "bwaem", - "bwaeb", - "bwaebs", - "bwaes", - "bwaess", - "bwaeng", - "bwaej", - "bwaec", - "bwaek", - "bwaet", - "bwaep", - "bwaeh", - "boe", - "boeg", - "boegg", - "boegs", - "boen", - "boenj", - "boenh", - "boed", - "boel", - "boelg", - "boelm", - "boelb", - "boels", - "boelt", - "boelp", - "boelh", - "boem", - "boeb", - "boebs", - "boes", - "boess", - "boeng", - "boej", - "boec", - "boek", - "boet", - "boep", - "boeh", - "byo", - "byog", - "byogg", - "byogs", - "byon", - "byonj", - "byonh", - "byod", - "byol", - "byolg", - "byolm", - "byolb", - "byols", - "byolt", - "byolp", - "byolh", - "byom", - "byob", - "byobs", - "byos", - "byoss", - "byong", - "byoj", - "byoc", - "byok", - "byot", - "byop", - "byoh", - "bu", - "bug", - "bugg", - "bugs", - "bun", - "bunj", - "bunh", - "bud", - "bul", - "bulg", - "bulm", - "bulb", - "buls", - "bult", - "bulp", - "bulh", - "bum", - "bub", - "bubs", - "bus", - "buss", - "bung", - "buj", - "buc", - "buk", - "but", - "bup", - "buh", - "bweo", - "bweog", - "bweogg", - "bweogs", - "bweon", - "bweonj", - "bweonh", - "bweod", - "bweol", - "bweolg", - "bweolm", - "bweolb", - "bweols", - "bweolt", - "bweolp", - "bweolh", - "bweom", - "bweob", - "bweobs", - "bweos", - "bweoss", - "bweong", - "bweoj", - "bweoc", - "bweok", - "bweot", - "bweop", - "bweoh", - "bwe", - "bweg", - "bwegg", - "bwegs", - "bwen", - "bwenj", - "bwenh", - "bwed", - "bwel", - "bwelg", - "bwelm", - "bwelb", - "bwels", - "bwelt", - "bwelp", - "bwelh", - "bwem", - "bweb", - "bwebs", - "bwes", - "bwess", - "bweng", - "bwej", - "bwec", - "bwek", - "bwet", - "bwep", - "bweh", - "bwi", - "bwig", - "bwigg", - "bwigs", - "bwin", - "bwinj", - "bwinh", - "bwid", - "bwil", - "bwilg", - "bwilm", - "bwilb", - "bwils", - "bwilt", - "bwilp", - "bwilh", - "bwim", - "bwib", - "bwibs", - "bwis", - "bwiss", - "bwing", - "bwij", - "bwic", - "bwik", - "bwit", - "bwip", - "bwih", - "byu", - "byug", - "byugg", - "byugs", - "byun", - "byunj", - "byunh", - "byud", - "byul", - "byulg", - "byulm", - "byulb", - "byuls", - "byult", - "byulp", - "byulh", - "byum", - "byub", - "byubs", - "byus", - "byuss", - "byung", - "byuj", - "byuc", - "byuk", - "byut", - "byup", - "byuh", - "beu", - "beug", - "beugg", - "beugs", - "beun", - "beunj", - "beunh", - "beud", - "beul", - "beulg", - "beulm", - "beulb", - "beuls", - "beult", - "beulp", - "beulh", - "beum", - "beub", - "beubs", - "beus", - "beuss", - "beung", - "beuj", - "beuc", - "beuk", - "beut", - "beup", - "beuh", - "byi", - "byig", - "byigg", - "byigs", - "byin", - "byinj", - "byinh", - "byid", - "byil", - "byilg", - "byilm", - "byilb", - "byils", - "byilt", - "byilp", - "byilh", - "byim", - "byib", - "byibs", - "byis", - "byiss", - "bying", - "byij", - "byic", - "byik", - "byit", - "byip", - "byih", - "bi", - "big", - "bigg", - "bigs", - "bin", - "binj", - "binh", - "bid", - "bil", - "bilg", - "bilm", - "bilb", - "bils", - "bilt", - "bilp", - "bilh", - "bim", - "bib", - "bibs", - "bis", - "biss", - "bing", - "bij", - "bic", - "bik", - "bit", - "bip", - "bih", - "bba", - "bbag", - "bbagg", - "bbags", - "bban", - "bbanj", - "bbanh", - "bbad", - "bbal", - "bbalg", - "bbalm", - "bbalb", - "bbals", - "bbalt", - "bbalp", - "bbalh", - "bbam", - "bbab", - "bbabs", - "bbas", - "bbass", - "bbang", - "bbaj", - "bbac", - "bbak", - "bbat", - "bbap", - "bbah", - "bbae", - "bbaeg", - "bbaegg", - "bbaegs", - "bbaen", - "bbaenj", - "bbaenh", - "bbaed", - "bbael", - "bbaelg", - "bbaelm", - "bbaelb", - "bbaels", - "bbaelt", - "bbaelp", - "bbaelh", - "bbaem", - "bbaeb", - "bbaebs", - "bbaes", - "bbaess", - "bbaeng", - "bbaej", - "bbaec", - "bbaek", - "bbaet", - "bbaep", - "bbaeh", - "bbya", - "bbyag", - "bbyagg", - "bbyags", - "bbyan", - "bbyanj", - "bbyanh", - "bbyad", - "bbyal", - "bbyalg", - "bbyalm", - "bbyalb", - "bbyals", - "bbyalt", - "bbyalp", - "bbyalh", - "bbyam", - "bbyab", - "bbyabs", - "bbyas", - "bbyass", - "bbyang", - "bbyaj", - "bbyac", - "bbyak", - "bbyat", - "bbyap", - "bbyah", - "bbyae", - "bbyaeg", - "bbyaegg", - "bbyaegs", - "bbyaen", - "bbyaenj", - "bbyaenh", - "bbyaed", - "bbyael", - "bbyaelg", - "bbyaelm", - "bbyaelb", - "bbyaels", - "bbyaelt", - "bbyaelp", - "bbyaelh", - "bbyaem", - "bbyaeb", - "bbyaebs", - "bbyaes", - "bbyaess", - "bbyaeng", - "bbyaej", - "bbyaec", - "bbyaek", - "bbyaet", - "bbyaep", - "bbyaeh", - "bbeo", - "bbeog", - "bbeogg", - "bbeogs", - "bbeon", - "bbeonj", - "bbeonh", - "bbeod", - "bbeol", - "bbeolg", - "bbeolm", - "bbeolb", - "bbeols", - "bbeolt", - "bbeolp", - "bbeolh", - "bbeom", - "bbeob", - "bbeobs", - "bbeos", - "bbeoss", - "bbeong", - "bbeoj", - "bbeoc", - "bbeok", - "bbeot", - "bbeop", - "bbeoh", - "bbe", - "bbeg", - "bbegg", - "bbegs", - "bben", - "bbenj", - "bbenh", - "bbed", - "bbel", - "bbelg", - "bbelm", - "bbelb", - "bbels", - "bbelt", - "bbelp", - "bbelh", - "bbem", - "bbeb", - "bbebs", - "bbes", - "bbess", - "bbeng", - "bbej", - "bbec", - "bbek", - "bbet", - "bbep", - "bbeh", - "bbyeo", - "bbyeog", - "bbyeogg", - "bbyeogs", - "bbyeon", - "bbyeonj", - "bbyeonh", - "bbyeod", - "bbyeol", - "bbyeolg", - "bbyeolm", - "bbyeolb", - "bbyeols", - "bbyeolt", - "bbyeolp", - "bbyeolh", - "bbyeom", - "bbyeob", - "bbyeobs", - "bbyeos", - "bbyeoss", - "bbyeong", - "bbyeoj", - "bbyeoc", - "bbyeok", - "bbyeot", - "bbyeop", - "bbyeoh", - "bbye", - "bbyeg", - "bbyegg", - "bbyegs", - "bbyen", - "bbyenj", - "bbyenh", - "bbyed", - "bbyel", - "bbyelg", - "bbyelm", - "bbyelb", - "bbyels", - "bbyelt", - "bbyelp", - "bbyelh", - "bbyem", - "bbyeb", - "bbyebs", - "bbyes", - "bbyess", - "bbyeng", - "bbyej", - "bbyec", - "bbyek", - "bbyet", - "bbyep", - "bbyeh", - "bbo", - "bbog", - "bbogg", - "bbogs", - "bbon", - "bbonj", - "bbonh", - "bbod", - "bbol", - "bbolg", - "bbolm", - "bbolb", - "bbols", - "bbolt", - "bbolp", - "bbolh", - "bbom", - "bbob", - "bbobs", - "bbos", - "bboss", - "bbong", - "bboj", - "bboc", - "bbok", - "bbot", - "bbop", - "bboh", - "bbwa", - "bbwag", - "bbwagg", - "bbwags", - "bbwan", - "bbwanj", - "bbwanh", - "bbwad", - "bbwal", - "bbwalg", - "bbwalm", - "bbwalb", - "bbwals", - "bbwalt", - "bbwalp", - "bbwalh", - "bbwam", - "bbwab", - "bbwabs", - "bbwas", - "bbwass", - "bbwang", - "bbwaj", - "bbwac", - "bbwak", - "bbwat", - "bbwap", - "bbwah", - "bbwae", - "bbwaeg", - "bbwaegg", - "bbwaegs", - "bbwaen", - "bbwaenj", - "bbwaenh", - "bbwaed", - "bbwael", - "bbwaelg", - "bbwaelm", - "bbwaelb", - "bbwaels", - "bbwaelt", - "bbwaelp", - "bbwaelh", - "bbwaem", - "bbwaeb", - "bbwaebs", - "bbwaes", - "bbwaess", - "bbwaeng", - "bbwaej", - "bbwaec", - "bbwaek", - "bbwaet", - "bbwaep", - "bbwaeh", - "bboe", - "bboeg", - "bboegg", - "bboegs", - "bboen", - "bboenj", - "bboenh", - "bboed", - "bboel", - "bboelg", - "bboelm", - "bboelb", - "bboels", - "bboelt", - "bboelp", - "bboelh", - "bboem", - "bboeb", - "bboebs", - "bboes", - "bboess", - "bboeng", - "bboej", - "bboec", - "bboek", - "bboet", - "bboep", - "bboeh", - "bbyo", - "bbyog", - "bbyogg", - "bbyogs", - "bbyon", - "bbyonj", - "bbyonh", - "bbyod", - "bbyol", - "bbyolg", - "bbyolm", - "bbyolb", - "bbyols", - "bbyolt", - "bbyolp", - "bbyolh", - "bbyom", - "bbyob", - "bbyobs", - "bbyos", - "bbyoss", - "bbyong", - "bbyoj", - "bbyoc", - "bbyok", - "bbyot", - "bbyop", - "bbyoh", - "bbu", - "bbug", - "bbugg", - "bbugs", - "bbun", - "bbunj", - "bbunh", - "bbud", - "bbul", - "bbulg", - "bbulm", - "bbulb", - "bbuls", - "bbult", - "bbulp", - "bbulh", - "bbum", - "bbub", - "bbubs", - "bbus", - "bbuss", - "bbung", - "bbuj", - "bbuc", - "bbuk", - "bbut", - "bbup", - "bbuh", - "bbweo", - "bbweog", - "bbweogg", - "bbweogs", - "bbweon", - "bbweonj", - "bbweonh", - "bbweod", - "bbweol", - "bbweolg", - "bbweolm", - "bbweolb", - "bbweols", - "bbweolt", - "bbweolp", - "bbweolh", - "bbweom", - "bbweob", - "bbweobs", - "bbweos", - "bbweoss", - "bbweong", - "bbweoj", - "bbweoc", - "bbweok", - "bbweot", - "bbweop", - "bbweoh", - "bbwe", - "bbweg", - "bbwegg", - "bbwegs", - "bbwen", - "bbwenj", - "bbwenh", - "bbwed", - "bbwel", - "bbwelg", - "bbwelm", - "bbwelb", - "bbwels", - "bbwelt", - "bbwelp", - "bbwelh", - "bbwem", - "bbweb", - "bbwebs", - "bbwes", - "bbwess", - "bbweng", - "bbwej", - "bbwec", - "bbwek", - "bbwet", - "bbwep", - "bbweh", - "bbwi", - "bbwig", - "bbwigg", - "bbwigs", - "bbwin", - "bbwinj", - "bbwinh", - "bbwid", - "bbwil", - "bbwilg", - "bbwilm", - "bbwilb", - "bbwils", - "bbwilt", - "bbwilp", - "bbwilh", - "bbwim", - "bbwib", - "bbwibs", - "bbwis", - "bbwiss", - "bbwing", - "bbwij", - "bbwic", - "bbwik", - "bbwit", - "bbwip", - "bbwih", - "bbyu", - "bbyug", - "bbyugg", - "bbyugs", - "bbyun", - "bbyunj", - "bbyunh", - "bbyud", - "bbyul", - "bbyulg", - "bbyulm", - "bbyulb", - "bbyuls", - "bbyult", - "bbyulp", - "bbyulh", - "bbyum", - "bbyub", - "bbyubs", - "bbyus", - "bbyuss", - "bbyung", - "bbyuj", - "bbyuc", - "bbyuk", - "bbyut", - "bbyup", - "bbyuh", - "bbeu", - "bbeug", - "bbeugg", - "bbeugs", - "bbeun", - "bbeunj", - "bbeunh", - "bbeud", - "bbeul", - "bbeulg", - "bbeulm", - "bbeulb", - "bbeuls", - "bbeult", - "bbeulp", - "bbeulh", - "bbeum", - "bbeub", - "bbeubs", - "bbeus", - "bbeuss", - "bbeung", - "bbeuj", - "bbeuc", - "bbeuk", - "bbeut", - "bbeup", - "bbeuh", - "bbyi", - "bbyig", - "bbyigg", - "bbyigs", - "bbyin", - "bbyinj", - "bbyinh", - "bbyid", - "bbyil", - "bbyilg", - "bbyilm", - "bbyilb", - "bbyils", - "bbyilt", - "bbyilp", - "bbyilh", - "bbyim", - "bbyib", - "bbyibs", - "bbyis", - "bbyiss", - "bbying", - "bbyij", - "bbyic", - "bbyik", - "bbyit", - "bbyip", - "bbyih", - "bbi", - "bbig", - "bbigg", - "bbigs", - "bbin", - "bbinj", - "bbinh", - "bbid", - "bbil", - "bbilg", - "bbilm", - "bbilb", - "bbils", - "bbilt", - "bbilp", - "bbilh", - "bbim", - "bbib", - "bbibs", - "bbis", - "bbiss", - "bbing", - "bbij", - "bbic", - "bbik", - "bbit", - "bbip", - "bbih", - "sa", - "sag", - "sagg", - "sags", - "san", - "sanj", - "sanh", - "sad", - "sal", - "salg", - "salm", - "salb", - "sals", - "salt", - "salp", - "salh", - "sam", - "sab", - "sabs", - "sas", - "sass", - "sang", - "saj", - "sac", - "sak", - "sat", - "sap", - "sah", - "sae", - "saeg", - "saegg", - "saegs", - "saen", - "saenj", - "saenh", - "saed", - "sael", - "saelg", - "saelm", - "saelb", - "saels", - "saelt", - "saelp", - "saelh", - "saem", - "saeb", - "saebs", - "saes", - "saess", - "saeng", - "saej", - "saec", - "saek", - "saet", - "saep", - "saeh", - "sya", - "syag", - "syagg", - "syags", - "syan", - "syanj", - "syanh", - "syad", - "syal", - "syalg", - "syalm", - "syalb", - "syals", - "syalt", - "syalp", - "syalh", - "syam", - "syab", - "syabs", - "syas", - "syass", - "syang", - "syaj", - "syac", - "syak", - "syat", - "syap", - "syah", - "syae", - "syaeg", - "syaegg", - "syaegs", - "syaen", - "syaenj", - "syaenh", - "syaed", - "syael", - "syaelg", - "syaelm", - "syaelb", - "syaels", - "syaelt", - "syaelp", - "syaelh", - "syaem", - "syaeb", - "syaebs", - "syaes", - "syaess", - "syaeng", - "syaej", - "syaec", - "syaek", - "syaet", - "syaep", - "syaeh", - "seo", - "seog", - "seogg", - "seogs", - "seon", - "seonj", - "seonh", - "seod", - "seol", - "seolg", - "seolm", - "seolb", - "seols", - "seolt", - "seolp", - "seolh", - "seom", - "seob", - "seobs", - "seos", - "seoss", - "seong", - "seoj", - "seoc", - "seok", - "seot", - "seop", - "seoh", - "se", - "seg", - "segg", - "segs", - "sen", - "senj", - "senh", - "sed", - "sel", - "selg", - "selm", - "selb", - "sels", - "selt", - "selp", - "selh", - "sem", - "seb", - "sebs", - "ses", - "sess", - "seng", - "sej", - "sec", - "sek", - "set", - "sep", - "seh", - "syeo", - "syeog", - "syeogg", - "syeogs", - "syeon", - "syeonj", - "syeonh", - "syeod", - "syeol", - "syeolg", - "syeolm", - "syeolb", - "syeols", - "syeolt", - "syeolp", - "syeolh", - "syeom", - "syeob", - "syeobs", - "syeos", - "syeoss", - "syeong", - "syeoj", - "syeoc", - "syeok", - "syeot", - "syeop", - "syeoh", - "sye", - "syeg", - "syegg", - "syegs", - "syen", - "syenj", - "syenh", - "syed", - "syel", - "syelg", - "syelm", - "syelb", - "syels", - "syelt", - "syelp", - "syelh", - "syem", - "syeb", - "syebs", - "syes", - "syess", - "syeng", - "syej", - "syec", - "syek", - "syet", - "syep", - "syeh", - "so", - "sog", - "sogg", - "sogs", - "son", - "sonj", - "sonh", - "sod", - "sol", - "solg", - "solm", - "solb", - "sols", - "solt", - "solp", - "solh", - "som", - "sob", - "sobs", - "sos", - "soss", - "song", - "soj", - "soc", - "sok", - "sot", - "sop", - "soh", - "swa", - "swag", - "swagg", - "swags", - "swan", - "swanj", - "swanh", - "swad", - "swal", - "swalg", - "swalm", - "swalb", - "swals", - "swalt", - "swalp", - "swalh", - "swam", - "swab", - "swabs", - "swas", - "swass", - "swang", - "swaj", - "swac", - "swak", - "swat", - "swap", - "swah", - "swae", - "swaeg", - "swaegg", - "swaegs", - "swaen", - "swaenj", - "swaenh", - "swaed", - "swael", - "swaelg", - "swaelm", - "swaelb", - "swaels", - "swaelt", - "swaelp", - "swaelh", - "swaem", - "swaeb", - "swaebs", - "swaes", - "swaess", - "swaeng", - "swaej", - "swaec", - "swaek", - "swaet", - "swaep", - "swaeh", - "soe", - "soeg", - "soegg", - "soegs", - "soen", - "soenj", - "soenh", - "soed", - "soel", - "soelg", - "soelm", - "soelb", - "soels", - "soelt", - "soelp", - "soelh", - "soem", - "soeb", - "soebs", - "soes", - "soess", - "soeng", - "soej", - "soec", - "soek", - "soet", - "soep", - "soeh", - "syo", - "syog", - "syogg", - "syogs", - "syon", - "syonj", - "syonh", - "syod", - "syol", - "syolg", - "syolm", - "syolb", - "syols", - "syolt", - "syolp", - "syolh", - "syom", - "syob", - "syobs", - "syos", - "syoss", - "syong", - "syoj", - "syoc", - "syok", - "syot", - "syop", - "syoh", - "su", - "sug", - "sugg", - "sugs", - "sun", - "sunj", - "sunh", - "sud", - "sul", - "sulg", - "sulm", - "sulb", - "suls", - "sult", - "sulp", - "sulh", - "sum", - "sub", - "subs", - "sus", - "suss", - "sung", - "suj", - "suc", - "suk", - "sut", - "sup", - "suh", - "sweo", - "sweog", - "sweogg", - "sweogs", - "sweon", - "sweonj", - "sweonh", - "sweod", - "sweol", - "sweolg", - "sweolm", - "sweolb", - "sweols", - "sweolt", - "sweolp", - "sweolh", - "sweom", - "sweob", - "sweobs", - "sweos", - "sweoss", - "sweong", - "sweoj", - "sweoc", - "sweok", - "sweot", - "sweop", - "sweoh", - "swe", - "sweg", - "swegg", - "swegs", - "swen", - "swenj", - "swenh", - "swed", - "swel", - "swelg", - "swelm", - "swelb", - "swels", - "swelt", - "swelp", - "swelh", - "swem", - "sweb", - "swebs", - "swes", - "swess", - "sweng", - "swej", - "swec", - "swek", - "swet", - "swep", - "sweh", - "swi", - "swig", - "swigg", - "swigs", - "swin", - "swinj", - "swinh", - "swid", - "swil", - "swilg", - "swilm", - "swilb", - "swils", - "swilt", - "swilp", - "swilh", - "swim", - "swib", - "swibs", - "swis", - "swiss", - "swing", - "swij", - "swic", - "swik", - "swit", - "swip", - "swih", - "syu", - "syug", - "syugg", - "syugs", - "syun", - "syunj", - "syunh", - "syud", - "syul", - "syulg", - "syulm", - "syulb", - "syuls", - "syult", - "syulp", - "syulh", - "syum", - "syub", - "syubs", - "syus", - "syuss", - "syung", - "syuj", - "syuc", - "syuk", - "syut", - "syup", - "syuh", - "seu", - "seug", - "seugg", - "seugs", - "seun", - "seunj", - "seunh", - "seud", - "seul", - "seulg", - "seulm", - "seulb", - "seuls", - "seult", - "seulp", - "seulh", - "seum", - "seub", - "seubs", - "seus", - "seuss", - "seung", - "seuj", - "seuc", - "seuk", - "seut", - "seup", - "seuh", - "syi", - "syig", - "syigg", - "syigs", - "syin", - "syinj", - "syinh", - "syid", - "syil", - "syilg", - "syilm", - "syilb", - "syils", - "syilt", - "syilp", - "syilh", - "syim", - "syib", - "syibs", - "syis", - "syiss", - "sying", - "syij", - "syic", - "syik", - "syit", - "syip", - "syih", - "si", - "sig", - "sigg", - "sigs", - "sin", - "sinj", - "sinh", - "sid", - "sil", - "silg", - "silm", - "silb", - "sils", - "silt", - "silp", - "silh", - "sim", - "sib", - "sibs", - "sis", - "siss", - "sing", - "sij", - "sic", - "sik", - "sit", - "sip", - "sih", - "ssa", - "ssag", - "ssagg", - "ssags", - "ssan", - "ssanj", - "ssanh", - "ssad", - "ssal", - "ssalg", - "ssalm", - "ssalb", - "ssals", - "ssalt", - "ssalp", - "ssalh", - "ssam", - "ssab", - "ssabs", - "ssas", - "ssass", - "ssang", - "ssaj", - "ssac", - "ssak", - "ssat", - "ssap", - "ssah", - "ssae", - "ssaeg", - "ssaegg", - "ssaegs", - "ssaen", - "ssaenj", - "ssaenh", - "ssaed", - "ssael", - "ssaelg", - "ssaelm", - "ssaelb", - "ssaels", - "ssaelt", - "ssaelp", - "ssaelh", - "ssaem", - "ssaeb", - "ssaebs", - "ssaes", - "ssaess", - "ssaeng", - "ssaej", - "ssaec", - "ssaek", - "ssaet", - "ssaep", - "ssaeh", - "ssya", - "ssyag", - "ssyagg", - "ssyags", - "ssyan", - "ssyanj", - "ssyanh", - "ssyad", - "ssyal", - "ssyalg", - "ssyalm", - "ssyalb", - "ssyals", - "ssyalt", - "ssyalp", - "ssyalh", - "ssyam", - "ssyab", - "ssyabs", - "ssyas", - "ssyass", - "ssyang", - "ssyaj", - "ssyac", - "ssyak", - "ssyat", - "ssyap", - "ssyah", - "ssyae", - "ssyaeg", - "ssyaegg", - "ssyaegs", - "ssyaen", - "ssyaenj", - "ssyaenh", - "ssyaed", - "ssyael", - "ssyaelg", - "ssyaelm", - "ssyaelb", - "ssyaels", - "ssyaelt", - "ssyaelp", - "ssyaelh", - "ssyaem", - "ssyaeb", - "ssyaebs", - "ssyaes", - "ssyaess", - "ssyaeng", - "ssyaej", - "ssyaec", - "ssyaek", - "ssyaet", - "ssyaep", - "ssyaeh", - "sseo", - "sseog", - "sseogg", - "sseogs", - "sseon", - "sseonj", - "sseonh", - "sseod", - "sseol", - "sseolg", - "sseolm", - "sseolb", - "sseols", - "sseolt", - "sseolp", - "sseolh", - "sseom", - "sseob", - "sseobs", - "sseos", - "sseoss", - "sseong", - "sseoj", - "sseoc", - "sseok", - "sseot", - "sseop", - "sseoh", - "sse", - "sseg", - "ssegg", - "ssegs", - "ssen", - "ssenj", - "ssenh", - "ssed", - "ssel", - "sselg", - "sselm", - "sselb", - "ssels", - "sselt", - "sselp", - "sselh", - "ssem", - "sseb", - "ssebs", - "sses", - "ssess", - "sseng", - "ssej", - "ssec", - "ssek", - "sset", - "ssep", - "sseh", - "ssyeo", - "ssyeog", - "ssyeogg", - "ssyeogs", - "ssyeon", - "ssyeonj", - "ssyeonh", - "ssyeod", - "ssyeol", - "ssyeolg", - "ssyeolm", - "ssyeolb", - "ssyeols", - "ssyeolt", - "ssyeolp", - "ssyeolh", - "ssyeom", - "ssyeob", - "ssyeobs", - "ssyeos", - "ssyeoss", - "ssyeong", - "ssyeoj", - "ssyeoc", - "ssyeok", - "ssyeot", - "ssyeop", - "ssyeoh", - "ssye", - "ssyeg", - "ssyegg", - "ssyegs", - "ssyen", - "ssyenj", - "ssyenh", - "ssyed", - "ssyel", - "ssyelg", - "ssyelm", - "ssyelb", - "ssyels", - "ssyelt", - "ssyelp", - "ssyelh", - "ssyem", - "ssyeb", - "ssyebs", - "ssyes", - "ssyess", - "ssyeng", - "ssyej", - "ssyec", - "ssyek", - "ssyet", - "ssyep", - "ssyeh", - "sso", - "ssog", - "ssogg", - "ssogs", - "sson", - "ssonj", - "ssonh", - "ssod", - "ssol", - "ssolg", - "ssolm", - "ssolb", - "ssols", - "ssolt", - "ssolp", - "ssolh", - "ssom", - "ssob", - "ssobs", - "ssos", - "ssoss", - "ssong", - "ssoj", - "ssoc", - "ssok", - "ssot", - "ssop", - "ssoh", - "sswa", - "sswag", - "sswagg", - "sswags", - "sswan", - "sswanj", - "sswanh", - "sswad", - "sswal", - "sswalg", - "sswalm", - "sswalb", - "sswals", - "sswalt", - "sswalp", - "sswalh", - "sswam", - "sswab", - "sswabs", - "sswas", - "sswass", - "sswang", - "sswaj", - "sswac", - "sswak", - "sswat", - "sswap", - "sswah", - "sswae", - "sswaeg", - "sswaegg", - "sswaegs", - "sswaen", - "sswaenj", - "sswaenh", - "sswaed", - "sswael", - "sswaelg", - "sswaelm", - "sswaelb", - "sswaels", - "sswaelt", - "sswaelp", - "sswaelh", - "sswaem", - "sswaeb", - "sswaebs", - "sswaes", - "sswaess", - "sswaeng", - "sswaej", - "sswaec", - "sswaek", - "sswaet", - "sswaep", - "sswaeh", - "ssoe", - "ssoeg", - "ssoegg", - "ssoegs", - "ssoen", - "ssoenj", - "ssoenh", - "ssoed", - "ssoel", - "ssoelg", - "ssoelm", - "ssoelb", - "ssoels", - "ssoelt", - "ssoelp", - "ssoelh", - "ssoem", - "ssoeb", - "ssoebs", - "ssoes", - "ssoess", - "ssoeng", - "ssoej", - "ssoec", - "ssoek", - "ssoet", - "ssoep", - "ssoeh", - "ssyo", - "ssyog", - "ssyogg", - "ssyogs", - "ssyon", - "ssyonj", - "ssyonh", - "ssyod", - "ssyol", - "ssyolg", - "ssyolm", - "ssyolb", - "ssyols", - "ssyolt", - "ssyolp", - "ssyolh", - "ssyom", - "ssyob", - "ssyobs", - "ssyos", - "ssyoss", - "ssyong", - "ssyoj", - "ssyoc", - "ssyok", - "ssyot", - "ssyop", - "ssyoh", - "ssu", - "ssug", - "ssugg", - "ssugs", - "ssun", - "ssunj", - "ssunh", - "ssud", - "ssul", - "ssulg", - "ssulm", - "ssulb", - "ssuls", - "ssult", - "ssulp", - "ssulh", - "ssum", - "ssub", - "ssubs", - "ssus", - "ssuss", - "ssung", - "ssuj", - "ssuc", - "ssuk", - "ssut", - "ssup", - "ssuh", - "ssweo", - "ssweog", - "ssweogg", - "ssweogs", - "ssweon", - "ssweonj", - "ssweonh", - "ssweod", - "ssweol", - "ssweolg", - "ssweolm", - "ssweolb", - "ssweols", - "ssweolt", - "ssweolp", - "ssweolh", - "ssweom", - "ssweob", - "ssweobs", - "ssweos", - "ssweoss", - "ssweong", - "ssweoj", - "ssweoc", - "ssweok", - "ssweot", - "ssweop", - "ssweoh", - "sswe", - "ssweg", - "sswegg", - "sswegs", - "sswen", - "sswenj", - "sswenh", - "sswed", - "sswel", - "sswelg", - "sswelm", - "sswelb", - "sswels", - "sswelt", - "sswelp", - "sswelh", - "sswem", - "ssweb", - "sswebs", - "sswes", - "sswess", - "ssweng", - "sswej", - "sswec", - "sswek", - "sswet", - "sswep", - "ssweh", - "sswi", - "sswig", - "sswigg", - "sswigs", - "sswin", - "sswinj", - "sswinh", - "sswid", - "sswil", - "sswilg", - "sswilm", - "sswilb", - "sswils", - "sswilt", - "sswilp", - "sswilh", - "sswim", - "sswib", - "sswibs", - "sswis", - "sswiss", - "sswing", - "sswij", - "sswic", - "sswik", - "sswit", - "sswip", - "sswih", - "ssyu", - "ssyug", - "ssyugg", - "ssyugs", - "ssyun", - "ssyunj", - "ssyunh", - "ssyud", - "ssyul", - "ssyulg", - "ssyulm", - "ssyulb", - "ssyuls", - "ssyult", - "ssyulp", - "ssyulh", - "ssyum", - "ssyub", - "ssyubs", - "ssyus", - "ssyuss", - "ssyung", - "ssyuj", - "ssyuc", - "ssyuk", - "ssyut", - "ssyup", - "ssyuh", - "sseu", - "sseug", - "sseugg", - "sseugs", - "sseun", - "sseunj", - "sseunh", - "sseud", - "sseul", - "sseulg", - "sseulm", - "sseulb", - "sseuls", - "sseult", - "sseulp", - "sseulh", - "sseum", - "sseub", - "sseubs", - "sseus", - "sseuss", - "sseung", - "sseuj", - "sseuc", - "sseuk", - "sseut", - "sseup", - "sseuh", - "ssyi", - "ssyig", - "ssyigg", - "ssyigs", - "ssyin", - "ssyinj", - "ssyinh", - "ssyid", - "ssyil", - "ssyilg", - "ssyilm", - "ssyilb", - "ssyils", - "ssyilt", - "ssyilp", - "ssyilh", - "ssyim", - "ssyib", - "ssyibs", - "ssyis", - "ssyiss", - "ssying", - "ssyij", - "ssyic", - "ssyik", - "ssyit", - "ssyip", - "ssyih", - "ssi", - "ssig", - "ssigg", - "ssigs", - "ssin", - "ssinj", - "ssinh", - "ssid", - "ssil", - "ssilg", - "ssilm", - "ssilb", - "ssils", - "ssilt", - "ssilp", - "ssilh", - "ssim", - "ssib", - "ssibs", - "ssis", - "ssiss", - "ssing", - "ssij", - "ssic", - "ssik", - "ssit", - "ssip", - "ssih", - "a", - "ag", - "agg", - "ags", - "an", - "anj", - "anh", - "ad", - "al", - "alg", - "alm", - "alb", - "als", - "alt", - "alp", - "alh", - "am", - "ab", - "abs", - "as", - "ass", - "ang", - "aj", - "ac", - "ak", - "at", - "ap", - "ah", - "ae", - "aeg", - "aegg", - "aegs", - "aen", - "aenj", - "aenh", - "aed", - "ael", - "aelg", - "aelm", - "aelb", - "aels", - "aelt", - "aelp", - "aelh", - "aem", - "aeb", - "aebs", - "aes", - "aess", - "aeng", - "aej", - "aec", - "aek", - "aet", - "aep", - "aeh", - "ya", - "yag", - "yagg", - "yags", - "yan", - "yanj", - "yanh", - "yad", - "yal", - "yalg", - "yalm", - "yalb", - "yals", - "yalt", - "yalp", - "yalh", - "yam", - "yab", - "yabs", - "yas", - "yass", - "yang", - "yaj", - "yac", - "yak", - "yat", - "yap", - "yah", - "yae", - "yaeg", - "yaegg", - "yaegs", - "yaen", - "yaenj", - "yaenh", - "yaed", - "yael", - "yaelg", - "yaelm", - "yaelb", - "yaels", - "yaelt", - "yaelp", - "yaelh", - "yaem", - "yaeb", - "yaebs", - "yaes", - "yaess", - "yaeng", - "yaej", - "yaec", - "yaek", - "yaet", - "yaep", - "yaeh", - "eo", - "eog", - "eogg", - "eogs", - "eon", - "eonj", - "eonh", - "eod", - "eol", - "eolg", - "eolm", - "eolb", - "eols", - "eolt", - "eolp", - "eolh", - "eom", - "eob", - "eobs", - "eos", - "eoss", - "eong", - "eoj", - "eoc", - "eok", - "eot", - "eop", - "eoh", - "e", - "eg", - "egg", - "egs", - "en", - "enj", - "enh", - "ed", - "el", - "elg", - "elm", - "elb", - "els", - "elt", - "elp", - "elh", - "em", - "eb", - "ebs", - "es", - "ess", - "eng", - "ej", - "ec", - "ek", - "et", - "ep", - "eh", - "yeo", - "yeog", - "yeogg", - "yeogs", - "yeon", - "yeonj", - "yeonh", - "yeod", - "yeol", - "yeolg", - "yeolm", - "yeolb", - "yeols", - "yeolt", - "yeolp", - "yeolh", - "yeom", - "yeob", - "yeobs", - "yeos", - "yeoss", - "yeong", - "yeoj", - "yeoc", - "yeok", - "yeot", - "yeop", - "yeoh", - "ye", - "yeg", - "yegg", - "yegs", - "yen", - "yenj", - "yenh", - "yed", - "yel", - "yelg", - "yelm", - "yelb", - "yels", - "yelt", - "yelp", - "yelh", - "yem", - "yeb", - "yebs", - "yes", - "yess", - "yeng", - "yej", - "yec", - "yek", - "yet", - "yep", - "yeh", - "o", - "og", - "ogg", - "ogs", - "on", - "onj", - "onh", - "od", - "ol", - "olg", - "olm", - "olb", - "ols", - "olt", - "olp", - "olh", - "om", - "ob", - "obs", - "os", - "oss", - "ong", - "oj", - "oc", - "ok", - "ot", - "op", - "oh", - "wa", - "wag", - "wagg", - "wags", - "wan", - "wanj", - "wanh", - "wad", - "wal", - "walg", - "walm", - "walb", - "wals", - "walt", - "walp", - "walh", - "wam", - "wab", - "wabs", - "was", - "wass", - "wang", - "waj", - "wac", - "wak", - "wat", - "wap", - "wah", - "wae", - "waeg", - "waegg", - "waegs", - "waen", - "waenj", - "waenh", - "waed", - "wael", - "waelg", - "waelm", - "waelb", - "waels", - "waelt", - "waelp", - "waelh", - "waem", - "waeb", - "waebs", - "waes", - "waess", - "waeng", - "waej", - "waec", - "waek", - "waet", - "waep", - "waeh", - "oe", - "oeg", - "oegg", - "oegs", - "oen", - "oenj", - "oenh", - "oed", - "oel", - "oelg", - "oelm", - "oelb", - "oels", - "oelt", - "oelp", - "oelh", - "oem", - "oeb", - "oebs", - "oes", - "oess", - "oeng", - "oej", - "oec", - "oek", - "oet", - "oep", - "oeh", - "yo", - "yog", - "yogg", - "yogs", - "yon", - "yonj", - "yonh", - "yod", - "yol", - "yolg", - "yolm", - "yolb", - "yols", - "yolt", - "yolp", - "yolh", - "yom", - "yob", - "yobs", - "yos", - "yoss", - "yong", - "yoj", - "yoc", - "yok", - "yot", - "yop", - "yoh", - "u", - "ug", - "ugg", - "ugs", - "un", - "unj", - "unh", - "ud", - "ul", - "ulg", - "ulm", - "ulb", - "uls", - "ult", - "ulp", - "ulh", - "um", - "ub", - "ubs", - "us", - "uss", - "ung", - "uj", - "uc", - "uk", - "ut", - "up", - "uh", - "weo", - "weog", - "weogg", - "weogs", - "weon", - "weonj", - "weonh", - "weod", - "weol", - "weolg", - "weolm", - "weolb", - "weols", - "weolt", - "weolp", - "weolh", - "weom", - "weob", - "weobs", - "weos", - "weoss", - "weong", - "weoj", - "weoc", - "weok", - "weot", - "weop", - "weoh", - "we", - "weg", - "wegg", - "wegs", - "wen", - "wenj", - "wenh", - "wed", - "wel", - "welg", - "welm", - "welb", - "wels", - "welt", - "welp", - "welh", - "wem", - "web", - "webs", - "wes", - "wess", - "weng", - "wej", - "wec", - "wek", - "wet", - "wep", - "weh", - "wi", - "wig", - "wigg", - "wigs", - "win", - "winj", - "winh", - "wid", - "wil", - "wilg", - "wilm", - "wilb", - "wils", - "wilt", - "wilp", - "wilh", - "wim", - "wib", - "wibs", - "wis", - "wiss", - "wing", - "wij", - "wic", - "wik", - "wit", - "wip", - "wih", - "yu", - "yug", - "yugg", - "yugs", - "yun", - "yunj", - "yunh", - "yud", - "yul", - "yulg", - "yulm", - "yulb", - "yuls", - "yult", - "yulp", - "yulh", - "yum", - "yub", - "yubs", - "yus", - "yuss", - "yung", - "yuj", - "yuc", - "yuk", - "yut", - "yup", - "yuh", - "eu", - "eug", - "eugg", - "eugs", - "eun", - "eunj", - "eunh", - "eud", - "eul", - "eulg", - "eulm", - "eulb", - "euls", - "eult", - "eulp", - "eulh", - "eum", - "eub", - "eubs", - "eus", - "euss", - "eung", - "euj", - "euc", - "euk", - "eut", - "eup", - "euh", - "yi", - "yig", - "yigg", - "yigs", - "yin", - "yinj", - "yinh", - "yid", - "yil", - "yilg", - "yilm", - "yilb", - "yils", - "yilt", - "yilp", - "yilh", - "yim", - "yib", - "yibs", - "yis", - "yiss", - "ying", - "yij", - "yic", - "yik", - "yit", - "yip", - "yih", - "i", - "ig", - "igg", - "igs", - "in", - "inj", - "inh", - "id", - "il", - "ilg", - "ilm", - "ilb", - "ils", - "ilt", - "ilp", - "ilh", - "im", - "ib", - "ibs", - "is", - "iss", - "ing", - "ij", - "ic", - "ik", - "it", - "ip", - "ih", - "ja", - "jag", - "jagg", - "jags", - "jan", - "janj", - "janh", - "jad", - "jal", - "jalg", - "jalm", - "jalb", - "jals", - "jalt", - "jalp", - "jalh", - "jam", - "jab", - "jabs", - "jas", - "jass", - "jang", - "jaj", - "jac", - "jak", - "jat", - "jap", - "jah", - "jae", - "jaeg", - "jaegg", - "jaegs", - "jaen", - "jaenj", - "jaenh", - "jaed", - "jael", - "jaelg", - "jaelm", - "jaelb", - "jaels", - "jaelt", - "jaelp", - "jaelh", - "jaem", - "jaeb", - "jaebs", - "jaes", - "jaess", - "jaeng", - "jaej", - "jaec", - "jaek", - "jaet", - "jaep", - "jaeh", - "jya", - "jyag", - "jyagg", - "jyags", - "jyan", - "jyanj", - "jyanh", - "jyad", - "jyal", - "jyalg", - "jyalm", - "jyalb", - "jyals", - "jyalt", - "jyalp", - "jyalh", - "jyam", - "jyab", - "jyabs", - "jyas", - "jyass", - "jyang", - "jyaj", - "jyac", - "jyak", - "jyat", - "jyap", - "jyah", - "jyae", - "jyaeg", - "jyaegg", - "jyaegs", - "jyaen", - "jyaenj", - "jyaenh", - "jyaed", - "jyael", - "jyaelg", - "jyaelm", - "jyaelb", - "jyaels", - "jyaelt", - "jyaelp", - "jyaelh", - "jyaem", - "jyaeb", - "jyaebs", - "jyaes", - "jyaess", - "jyaeng", - "jyaej", - "jyaec", - "jyaek", - "jyaet", - "jyaep", - "jyaeh", - "jeo", - "jeog", - "jeogg", - "jeogs", - "jeon", - "jeonj", - "jeonh", - "jeod", - "jeol", - "jeolg", - "jeolm", - "jeolb", - "jeols", - "jeolt", - "jeolp", - "jeolh", - "jeom", - "jeob", - "jeobs", - "jeos", - "jeoss", - "jeong", - "jeoj", - "jeoc", - "jeok", - "jeot", - "jeop", - "jeoh", - "je", - "jeg", - "jegg", - "jegs", - "jen", - "jenj", - "jenh", - "jed", - "jel", - "jelg", - "jelm", - "jelb", - "jels", - "jelt", - "jelp", - "jelh", - "jem", - "jeb", - "jebs", - "jes", - "jess", - "jeng", - "jej", - "jec", - "jek", - "jet", - "jep", - "jeh", - "jyeo", - "jyeog", - "jyeogg", - "jyeogs", - "jyeon", - "jyeonj", - "jyeonh", - "jyeod", - "jyeol", - "jyeolg", - "jyeolm", - "jyeolb", - "jyeols", - "jyeolt", - "jyeolp", - "jyeolh", - "jyeom", - "jyeob", - "jyeobs", - "jyeos", - "jyeoss", - "jyeong", - "jyeoj", - "jyeoc", - "jyeok", - "jyeot", - "jyeop", - "jyeoh", - "jye", - "jyeg", - "jyegg", - "jyegs", - "jyen", - "jyenj", - "jyenh", - "jyed", - "jyel", - "jyelg", - "jyelm", - "jyelb", - "jyels", - "jyelt", - "jyelp", - "jyelh", - "jyem", - "jyeb", - "jyebs", - "jyes", - "jyess", - "jyeng", - "jyej", - "jyec", - "jyek", - "jyet", - "jyep", - "jyeh", - "jo", - "jog", - "jogg", - "jogs", - "jon", - "jonj", - "jonh", - "jod", - "jol", - "jolg", - "jolm", - "jolb", - "jols", - "jolt", - "jolp", - "jolh", - "jom", - "job", - "jobs", - "jos", - "joss", - "jong", - "joj", - "joc", - "jok", - "jot", - "jop", - "joh", - "jwa", - "jwag", - "jwagg", - "jwags", - "jwan", - "jwanj", - "jwanh", - "jwad", - "jwal", - "jwalg", - "jwalm", - "jwalb", - "jwals", - "jwalt", - "jwalp", - "jwalh", - "jwam", - "jwab", - "jwabs", - "jwas", - "jwass", - "jwang", - "jwaj", - "jwac", - "jwak", - "jwat", - "jwap", - "jwah", - "jwae", - "jwaeg", - "jwaegg", - "jwaegs", - "jwaen", - "jwaenj", - "jwaenh", - "jwaed", - "jwael", - "jwaelg", - "jwaelm", - "jwaelb", - "jwaels", - "jwaelt", - "jwaelp", - "jwaelh", - "jwaem", - "jwaeb", - "jwaebs", - "jwaes", - "jwaess", - "jwaeng", - "jwaej", - "jwaec", - "jwaek", - "jwaet", - "jwaep", - "jwaeh", - "joe", - "joeg", - "joegg", - "joegs", - "joen", - "joenj", - "joenh", - "joed", - "joel", - "joelg", - "joelm", - "joelb", - "joels", - "joelt", - "joelp", - "joelh", - "joem", - "joeb", - "joebs", - "joes", - "joess", - "joeng", - "joej", - "joec", - "joek", - "joet", - "joep", - "joeh", - "jyo", - "jyog", - "jyogg", - "jyogs", - "jyon", - "jyonj", - "jyonh", - "jyod", - "jyol", - "jyolg", - "jyolm", - "jyolb", - "jyols", - "jyolt", - "jyolp", - "jyolh", - "jyom", - "jyob", - "jyobs", - "jyos", - "jyoss", - "jyong", - "jyoj", - "jyoc", - "jyok", - "jyot", - "jyop", - "jyoh", - "ju", - "jug", - "jugg", - "jugs", - "jun", - "junj", - "junh", - "jud", - "jul", - "julg", - "julm", - "julb", - "juls", - "jult", - "julp", - "julh", - "jum", - "jub", - "jubs", - "jus", - "juss", - "jung", - "juj", - "juc", - "juk", - "jut", - "jup", - "juh", - "jweo", - "jweog", - "jweogg", - "jweogs", - "jweon", - "jweonj", - "jweonh", - "jweod", - "jweol", - "jweolg", - "jweolm", - "jweolb", - "jweols", - "jweolt", - "jweolp", - "jweolh", - "jweom", - "jweob", - "jweobs", - "jweos", - "jweoss", - "jweong", - "jweoj", - "jweoc", - "jweok", - "jweot", - "jweop", - "jweoh", - "jwe", - "jweg", - "jwegg", - "jwegs", - "jwen", - "jwenj", - "jwenh", - "jwed", - "jwel", - "jwelg", - "jwelm", - "jwelb", - "jwels", - "jwelt", - "jwelp", - "jwelh", - "jwem", - "jweb", - "jwebs", - "jwes", - "jwess", - "jweng", - "jwej", - "jwec", - "jwek", - "jwet", - "jwep", - "jweh", - "jwi", - "jwig", - "jwigg", - "jwigs", - "jwin", - "jwinj", - "jwinh", - "jwid", - "jwil", - "jwilg", - "jwilm", - "jwilb", - "jwils", - "jwilt", - "jwilp", - "jwilh", - "jwim", - "jwib", - "jwibs", - "jwis", - "jwiss", - "jwing", - "jwij", - "jwic", - "jwik", - "jwit", - "jwip", - "jwih", - "jyu", - "jyug", - "jyugg", - "jyugs", - "jyun", - "jyunj", - "jyunh", - "jyud", - "jyul", - "jyulg", - "jyulm", - "jyulb", - "jyuls", - "jyult", - "jyulp", - "jyulh", - "jyum", - "jyub", - "jyubs", - "jyus", - "jyuss", - "jyung", - "jyuj", - "jyuc", - "jyuk", - "jyut", - "jyup", - "jyuh", - "jeu", - "jeug", - "jeugg", - "jeugs", - "jeun", - "jeunj", - "jeunh", - "jeud", - "jeul", - "jeulg", - "jeulm", - "jeulb", - "jeuls", - "jeult", - "jeulp", - "jeulh", - "jeum", - "jeub", - "jeubs", - "jeus", - "jeuss", - "jeung", - "jeuj", - "jeuc", - "jeuk", - "jeut", - "jeup", - "jeuh", - "jyi", - "jyig", - "jyigg", - "jyigs", - "jyin", - "jyinj", - "jyinh", - "jyid", - "jyil", - "jyilg", - "jyilm", - "jyilb", - "jyils", - "jyilt", - "jyilp", - "jyilh", - "jyim", - "jyib", - "jyibs", - "jyis", - "jyiss", - "jying", - "jyij", - "jyic", - "jyik", - "jyit", - "jyip", - "jyih", - "ji", - "jig", - "jigg", - "jigs", - "jin", - "jinj", - "jinh", - "jid", - "jil", - "jilg", - "jilm", - "jilb", - "jils", - "jilt", - "jilp", - "jilh", - "jim", - "jib", - "jibs", - "jis", - "jiss", - "jing", - "jij", - "jic", - "jik", - "jit", - "jip", - "jih", - "jja", - "jjag", - "jjagg", - "jjags", - "jjan", - "jjanj", - "jjanh", - "jjad", - "jjal", - "jjalg", - "jjalm", - "jjalb", - "jjals", - "jjalt", - "jjalp", - "jjalh", - "jjam", - "jjab", - "jjabs", - "jjas", - "jjass", - "jjang", - "jjaj", - "jjac", - "jjak", - "jjat", - "jjap", - "jjah", - "jjae", - "jjaeg", - "jjaegg", - "jjaegs", - "jjaen", - "jjaenj", - "jjaenh", - "jjaed", - "jjael", - "jjaelg", - "jjaelm", - "jjaelb", - "jjaels", - "jjaelt", - "jjaelp", - "jjaelh", - "jjaem", - "jjaeb", - "jjaebs", - "jjaes", - "jjaess", - "jjaeng", - "jjaej", - "jjaec", - "jjaek", - "jjaet", - "jjaep", - "jjaeh", - "jjya", - "jjyag", - "jjyagg", - "jjyags", - "jjyan", - "jjyanj", - "jjyanh", - "jjyad", - "jjyal", - "jjyalg", - "jjyalm", - "jjyalb", - "jjyals", - "jjyalt", - "jjyalp", - "jjyalh", - "jjyam", - "jjyab", - "jjyabs", - "jjyas", - "jjyass", - "jjyang", - "jjyaj", - "jjyac", - "jjyak", - "jjyat", - "jjyap", - "jjyah", - "jjyae", - "jjyaeg", - "jjyaegg", - "jjyaegs", - "jjyaen", - "jjyaenj", - "jjyaenh", - "jjyaed", - "jjyael", - "jjyaelg", - "jjyaelm", - "jjyaelb", - "jjyaels", - "jjyaelt", - "jjyaelp", - "jjyaelh", - "jjyaem", - "jjyaeb", - "jjyaebs", - "jjyaes", - "jjyaess", - "jjyaeng", - "jjyaej", - "jjyaec", - "jjyaek", - "jjyaet", - "jjyaep", - "jjyaeh", - "jjeo", - "jjeog", - "jjeogg", - "jjeogs", - "jjeon", - "jjeonj", - "jjeonh", - "jjeod", - "jjeol", - "jjeolg", - "jjeolm", - "jjeolb", - "jjeols", - "jjeolt", - "jjeolp", - "jjeolh", - "jjeom", - "jjeob", - "jjeobs", - "jjeos", - "jjeoss", - "jjeong", - "jjeoj", - "jjeoc", - "jjeok", - "jjeot", - "jjeop", - "jjeoh", - "jje", - "jjeg", - "jjegg", - "jjegs", - "jjen", - "jjenj", - "jjenh", - "jjed", - "jjel", - "jjelg", - "jjelm", - "jjelb", - "jjels", - "jjelt", - "jjelp", - "jjelh", - "jjem", - "jjeb", - "jjebs", - "jjes", - "jjess", - "jjeng", - "jjej", - "jjec", - "jjek", - "jjet", - "jjep", - "jjeh", - "jjyeo", - "jjyeog", - "jjyeogg", - "jjyeogs", - "jjyeon", - "jjyeonj", - "jjyeonh", - "jjyeod", - "jjyeol", - "jjyeolg", - "jjyeolm", - "jjyeolb", - "jjyeols", - "jjyeolt", - "jjyeolp", - "jjyeolh", - "jjyeom", - "jjyeob", - "jjyeobs", - "jjyeos", - "jjyeoss", - "jjyeong", - "jjyeoj", - "jjyeoc", - "jjyeok", - "jjyeot", - "jjyeop", - "jjyeoh", - "jjye", - "jjyeg", - "jjyegg", - "jjyegs", - "jjyen", - "jjyenj", - "jjyenh", - "jjyed", - "jjyel", - "jjyelg", - "jjyelm", - "jjyelb", - "jjyels", - "jjyelt", - "jjyelp", - "jjyelh", - "jjyem", - "jjyeb", - "jjyebs", - "jjyes", - "jjyess", - "jjyeng", - "jjyej", - "jjyec", - "jjyek", - "jjyet", - "jjyep", - "jjyeh", - "jjo", - "jjog", - "jjogg", - "jjogs", - "jjon", - "jjonj", - "jjonh", - "jjod", - "jjol", - "jjolg", - "jjolm", - "jjolb", - "jjols", - "jjolt", - "jjolp", - "jjolh", - "jjom", - "jjob", - "jjobs", - "jjos", - "jjoss", - "jjong", - "jjoj", - "jjoc", - "jjok", - "jjot", - "jjop", - "jjoh", - "jjwa", - "jjwag", - "jjwagg", - "jjwags", - "jjwan", - "jjwanj", - "jjwanh", - "jjwad", - "jjwal", - "jjwalg", - "jjwalm", - "jjwalb", - "jjwals", - "jjwalt", - "jjwalp", - "jjwalh", - "jjwam", - "jjwab", - "jjwabs", - "jjwas", - "jjwass", - "jjwang", - "jjwaj", - "jjwac", - "jjwak", - "jjwat", - "jjwap", - "jjwah", - "jjwae", - "jjwaeg", - "jjwaegg", - "jjwaegs", - "jjwaen", - "jjwaenj", - "jjwaenh", - "jjwaed", - "jjwael", - "jjwaelg", - "jjwaelm", - "jjwaelb", - "jjwaels", - "jjwaelt", - "jjwaelp", - "jjwaelh", - "jjwaem", - "jjwaeb", - "jjwaebs", - "jjwaes", - "jjwaess", - "jjwaeng", - "jjwaej", - "jjwaec", - "jjwaek", - "jjwaet", - "jjwaep", - "jjwaeh", - "jjoe", - "jjoeg", - "jjoegg", - "jjoegs", - "jjoen", - "jjoenj", - "jjoenh", - "jjoed", - "jjoel", - "jjoelg", - "jjoelm", - "jjoelb", - "jjoels", - "jjoelt", - "jjoelp", - "jjoelh", - "jjoem", - "jjoeb", - "jjoebs", - "jjoes", - "jjoess", - "jjoeng", - "jjoej", - "jjoec", - "jjoek", - "jjoet", - "jjoep", - "jjoeh", - "jjyo", - "jjyog", - "jjyogg", - "jjyogs", - "jjyon", - "jjyonj", - "jjyonh", - "jjyod", - "jjyol", - "jjyolg", - "jjyolm", - "jjyolb", - "jjyols", - "jjyolt", - "jjyolp", - "jjyolh", - "jjyom", - "jjyob", - "jjyobs", - "jjyos", - "jjyoss", - "jjyong", - "jjyoj", - "jjyoc", - "jjyok", - "jjyot", - "jjyop", - "jjyoh", - "jju", - "jjug", - "jjugg", - "jjugs", - "jjun", - "jjunj", - "jjunh", - "jjud", - "jjul", - "jjulg", - "jjulm", - "jjulb", - "jjuls", - "jjult", - "jjulp", - "jjulh", - "jjum", - "jjub", - "jjubs", - "jjus", - "jjuss", - "jjung", - "jjuj", - "jjuc", - "jjuk", - "jjut", - "jjup", - "jjuh", - "jjweo", - "jjweog", - "jjweogg", - "jjweogs", - "jjweon", - "jjweonj", - "jjweonh", - "jjweod", - "jjweol", - "jjweolg", - "jjweolm", - "jjweolb", - "jjweols", - "jjweolt", - "jjweolp", - "jjweolh", - "jjweom", - "jjweob", - "jjweobs", - "jjweos", - "jjweoss", - "jjweong", - "jjweoj", - "jjweoc", - "jjweok", - "jjweot", - "jjweop", - "jjweoh", - "jjwe", - "jjweg", - "jjwegg", - "jjwegs", - "jjwen", - "jjwenj", - "jjwenh", - "jjwed", - "jjwel", - "jjwelg", - "jjwelm", - "jjwelb", - "jjwels", - "jjwelt", - "jjwelp", - "jjwelh", - "jjwem", - "jjweb", - "jjwebs", - "jjwes", - "jjwess", - "jjweng", - "jjwej", - "jjwec", - "jjwek", - "jjwet", - "jjwep", - "jjweh", - "jjwi", - "jjwig", - "jjwigg", - "jjwigs", - "jjwin", - "jjwinj", - "jjwinh", - "jjwid", - "jjwil", - "jjwilg", - "jjwilm", - "jjwilb", - "jjwils", - "jjwilt", - "jjwilp", - "jjwilh", - "jjwim", - "jjwib", - "jjwibs", - "jjwis", - "jjwiss", - "jjwing", - "jjwij", - "jjwic", - "jjwik", - "jjwit", - "jjwip", - "jjwih", - "jjyu", - "jjyug", - "jjyugg", - "jjyugs", - "jjyun", - "jjyunj", - "jjyunh", - "jjyud", - "jjyul", - "jjyulg", - "jjyulm", - "jjyulb", - "jjyuls", - "jjyult", - "jjyulp", - "jjyulh", - "jjyum", - "jjyub", - "jjyubs", - "jjyus", - "jjyuss", - "jjyung", - "jjyuj", - "jjyuc", - "jjyuk", - "jjyut", - "jjyup", - "jjyuh", - "jjeu", - "jjeug", - "jjeugg", - "jjeugs", - "jjeun", - "jjeunj", - "jjeunh", - "jjeud", - "jjeul", - "jjeulg", - "jjeulm", - "jjeulb", - "jjeuls", - "jjeult", - "jjeulp", - "jjeulh", - "jjeum", - "jjeub", - "jjeubs", - "jjeus", - "jjeuss", - "jjeung", - "jjeuj", - "jjeuc", - "jjeuk", - "jjeut", - "jjeup", - "jjeuh", - "jjyi", - "jjyig", - "jjyigg", - "jjyigs", - "jjyin", - "jjyinj", - "jjyinh", - "jjyid", - "jjyil", - "jjyilg", - "jjyilm", - "jjyilb", - "jjyils", - "jjyilt", - "jjyilp", - "jjyilh", - "jjyim", - "jjyib", - "jjyibs", - "jjyis", - "jjyiss", - "jjying", - "jjyij", - "jjyic", - "jjyik", - "jjyit", - "jjyip", - "jjyih", - "jji", - "jjig", - "jjigg", - "jjigs", - "jjin", - "jjinj", - "jjinh", - "jjid", - "jjil", - "jjilg", - "jjilm", - "jjilb", - "jjils", - "jjilt", - "jjilp", - "jjilh", - "jjim", - "jjib", - "jjibs", - "jjis", - "jjiss", - "jjing", - "jjij", - "jjic", - "jjik", - "jjit", - "jjip", - "jjih", - "ca", - "cag", - "cagg", - "cags", - "can", - "canj", - "canh", - "cad", - "cal", - "calg", - "calm", - "calb", - "cals", - "calt", - "calp", - "calh", - "cam", - "cab", - "cabs", - "cas", - "cass", - "cang", - "caj", - "cac", - "cak", - "cat", - "cap", - "cah", - "cae", - "caeg", - "caegg", - "caegs", - "caen", - "caenj", - "caenh", - "caed", - "cael", - "caelg", - "caelm", - "caelb", - "caels", - "caelt", - "caelp", - "caelh", - "caem", - "caeb", - "caebs", - "caes", - "caess", - "caeng", - "caej", - "caec", - "caek", - "caet", - "caep", - "caeh", - "cya", - "cyag", - "cyagg", - "cyags", - "cyan", - "cyanj", - "cyanh", - "cyad", - "cyal", - "cyalg", - "cyalm", - "cyalb", - "cyals", - "cyalt", - "cyalp", - "cyalh", - "cyam", - "cyab", - "cyabs", - "cyas", - "cyass", - "cyang", - "cyaj", - "cyac", - "cyak", - "cyat", - "cyap", - "cyah", - "cyae", - "cyaeg", - "cyaegg", - "cyaegs", - "cyaen", - "cyaenj", - "cyaenh", - "cyaed", - "cyael", - "cyaelg", - "cyaelm", - "cyaelb", - "cyaels", - "cyaelt", - "cyaelp", - "cyaelh", - "cyaem", - "cyaeb", - "cyaebs", - "cyaes", - "cyaess", - "cyaeng", - "cyaej", - "cyaec", - "cyaek", - "cyaet", - "cyaep", - "cyaeh", - "ceo", - "ceog", - "ceogg", - "ceogs", - "ceon", - "ceonj", - "ceonh", - "ceod", - "ceol", - "ceolg", - "ceolm", - "ceolb", - "ceols", - "ceolt", - "ceolp", - "ceolh", - "ceom", - "ceob", - "ceobs", - "ceos", - "ceoss", - "ceong", - "ceoj", - "ceoc", - "ceok", - "ceot", - "ceop", - "ceoh", - "ce", - "ceg", - "cegg", - "cegs", - "cen", - "cenj", - "cenh", - "ced", - "cel", - "celg", - "celm", - "celb", - "cels", - "celt", - "celp", - "celh", - "cem", - "ceb", - "cebs", - "ces", - "cess", - "ceng", - "cej", - "cec", - "cek", - "cet", - "cep", - "ceh", - "cyeo", - "cyeog", - "cyeogg", - "cyeogs", - "cyeon", - "cyeonj", - "cyeonh", - "cyeod", - "cyeol", - "cyeolg", - "cyeolm", - "cyeolb", - "cyeols", - "cyeolt", - "cyeolp", - "cyeolh", - "cyeom", - "cyeob", - "cyeobs", - "cyeos", - "cyeoss", - "cyeong", - "cyeoj", - "cyeoc", - "cyeok", - "cyeot", - "cyeop", - "cyeoh", - "cye", - "cyeg", - "cyegg", - "cyegs", - "cyen", - "cyenj", - "cyenh", - "cyed", - "cyel", - "cyelg", - "cyelm", - "cyelb", - "cyels", - "cyelt", - "cyelp", - "cyelh", - "cyem", - "cyeb", - "cyebs", - "cyes", - "cyess", - "cyeng", - "cyej", - "cyec", - "cyek", - "cyet", - "cyep", - "cyeh", - "co", - "cog", - "cogg", - "cogs", - "con", - "conj", - "conh", - "cod", - "col", - "colg", - "colm", - "colb", - "cols", - "colt", - "colp", - "colh", - "com", - "cob", - "cobs", - "cos", - "coss", - "cong", - "coj", - "coc", - "cok", - "cot", - "cop", - "coh", - "cwa", - "cwag", - "cwagg", - "cwags", - "cwan", - "cwanj", - "cwanh", - "cwad", - "cwal", - "cwalg", - "cwalm", - "cwalb", - "cwals", - "cwalt", - "cwalp", - "cwalh", - "cwam", - "cwab", - "cwabs", - "cwas", - "cwass", - "cwang", - "cwaj", - "cwac", - "cwak", - "cwat", - "cwap", - "cwah", - "cwae", - "cwaeg", - "cwaegg", - "cwaegs", - "cwaen", - "cwaenj", - "cwaenh", - "cwaed", - "cwael", - "cwaelg", - "cwaelm", - "cwaelb", - "cwaels", - "cwaelt", - "cwaelp", - "cwaelh", - "cwaem", - "cwaeb", - "cwaebs", - "cwaes", - "cwaess", - "cwaeng", - "cwaej", - "cwaec", - "cwaek", - "cwaet", - "cwaep", - "cwaeh", - "coe", - "coeg", - "coegg", - "coegs", - "coen", - "coenj", - "coenh", - "coed", - "coel", - "coelg", - "coelm", - "coelb", - "coels", - "coelt", - "coelp", - "coelh", - "coem", - "coeb", - "coebs", - "coes", - "coess", - "coeng", - "coej", - "coec", - "coek", - "coet", - "coep", - "coeh", - "cyo", - "cyog", - "cyogg", - "cyogs", - "cyon", - "cyonj", - "cyonh", - "cyod", - "cyol", - "cyolg", - "cyolm", - "cyolb", - "cyols", - "cyolt", - "cyolp", - "cyolh", - "cyom", - "cyob", - "cyobs", - "cyos", - "cyoss", - "cyong", - "cyoj", - "cyoc", - "cyok", - "cyot", - "cyop", - "cyoh", - "cu", - "cug", - "cugg", - "cugs", - "cun", - "cunj", - "cunh", - "cud", - "cul", - "culg", - "culm", - "culb", - "culs", - "cult", - "culp", - "culh", - "cum", - "cub", - "cubs", - "cus", - "cuss", - "cung", - "cuj", - "cuc", - "cuk", - "cut", - "cup", - "cuh", - "cweo", - "cweog", - "cweogg", - "cweogs", - "cweon", - "cweonj", - "cweonh", - "cweod", - "cweol", - "cweolg", - "cweolm", - "cweolb", - "cweols", - "cweolt", - "cweolp", - "cweolh", - "cweom", - "cweob", - "cweobs", - "cweos", - "cweoss", - "cweong", - "cweoj", - "cweoc", - "cweok", - "cweot", - "cweop", - "cweoh", - "cwe", - "cweg", - "cwegg", - "cwegs", - "cwen", - "cwenj", - "cwenh", - "cwed", - "cwel", - "cwelg", - "cwelm", - "cwelb", - "cwels", - "cwelt", - "cwelp", - "cwelh", - "cwem", - "cweb", - "cwebs", - "cwes", - "cwess", - "cweng", - "cwej", - "cwec", - "cwek", - "cwet", - "cwep", - "cweh", - "cwi", - "cwig", - "cwigg", - "cwigs", - "cwin", - "cwinj", - "cwinh", - "cwid", - "cwil", - "cwilg", - "cwilm", - "cwilb", - "cwils", - "cwilt", - "cwilp", - "cwilh", - "cwim", - "cwib", - "cwibs", - "cwis", - "cwiss", - "cwing", - "cwij", - "cwic", - "cwik", - "cwit", - "cwip", - "cwih", - "cyu", - "cyug", - "cyugg", - "cyugs", - "cyun", - "cyunj", - "cyunh", - "cyud", - "cyul", - "cyulg", - "cyulm", - "cyulb", - "cyuls", - "cyult", - "cyulp", - "cyulh", - "cyum", - "cyub", - "cyubs", - "cyus", - "cyuss", - "cyung", - "cyuj", - "cyuc", - "cyuk", - "cyut", - "cyup", - "cyuh", - "ceu", - "ceug", - "ceugg", - "ceugs", - "ceun", - "ceunj", - "ceunh", - "ceud", - "ceul", - "ceulg", - "ceulm", - "ceulb", - "ceuls", - "ceult", - "ceulp", - "ceulh", - "ceum", - "ceub", - "ceubs", - "ceus", - "ceuss", - "ceung", - "ceuj", - "ceuc", - "ceuk", - "ceut", - "ceup", - "ceuh", - "cyi", - "cyig", - "cyigg", - "cyigs", - "cyin", - "cyinj", - "cyinh", - "cyid", - "cyil", - "cyilg", - "cyilm", - "cyilb", - "cyils", - "cyilt", - "cyilp", - "cyilh", - "cyim", - "cyib", - "cyibs", - "cyis", - "cyiss", - "cying", - "cyij", - "cyic", - "cyik", - "cyit", - "cyip", - "cyih", - "ci", - "cig", - "cigg", - "cigs", - "cin", - "cinj", - "cinh", - "cid", - "cil", - "cilg", - "cilm", - "cilb", - "cils", - "cilt", - "cilp", - "cilh", - "cim", - "cib", - "cibs", - "cis", - "ciss", - "cing", - "cij", - "cic", - "cik", - "cit", - "cip", - "cih", - "ka", - "kag", - "kagg", - "kags", - "kan", - "kanj", - "kanh", - "kad", - "kal", - "kalg", - "kalm", - "kalb", - "kals", - "kalt", - "kalp", - "kalh", - "kam", - "kab", - "kabs", - "kas", - "kass", - "kang", - "kaj", - "kac", - "kak", - "kat", - "kap", - "kah", - "kae", - "kaeg", - "kaegg", - "kaegs", - "kaen", - "kaenj", - "kaenh", - "kaed", - "kael", - "kaelg", - "kaelm", - "kaelb", - "kaels", - "kaelt", - "kaelp", - "kaelh", - "kaem", - "kaeb", - "kaebs", - "kaes", - "kaess", - "kaeng", - "kaej", - "kaec", - "kaek", - "kaet", - "kaep", - "kaeh", - "kya", - "kyag", - "kyagg", - "kyags", - "kyan", - "kyanj", - "kyanh", - "kyad", - "kyal", - "kyalg", - "kyalm", - "kyalb", - "kyals", - "kyalt", - "kyalp", - "kyalh", - "kyam", - "kyab", - "kyabs", - "kyas", - "kyass", - "kyang", - "kyaj", - "kyac", - "kyak", - "kyat", - "kyap", - "kyah", - "kyae", - "kyaeg", - "kyaegg", - "kyaegs", - "kyaen", - "kyaenj", - "kyaenh", - "kyaed", - "kyael", - "kyaelg", - "kyaelm", - "kyaelb", - "kyaels", - "kyaelt", - "kyaelp", - "kyaelh", - "kyaem", - "kyaeb", - "kyaebs", - "kyaes", - "kyaess", - "kyaeng", - "kyaej", - "kyaec", - "kyaek", - "kyaet", - "kyaep", - "kyaeh", - "keo", - "keog", - "keogg", - "keogs", - "keon", - "keonj", - "keonh", - "keod", - "keol", - "keolg", - "keolm", - "keolb", - "keols", - "keolt", - "keolp", - "keolh", - "keom", - "keob", - "keobs", - "keos", - "keoss", - "keong", - "keoj", - "keoc", - "keok", - "keot", - "keop", - "keoh", - "ke", - "keg", - "kegg", - "kegs", - "ken", - "kenj", - "kenh", - "ked", - "kel", - "kelg", - "kelm", - "kelb", - "kels", - "kelt", - "kelp", - "kelh", - "kem", - "keb", - "kebs", - "kes", - "kess", - "keng", - "kej", - "kec", - "kek", - "ket", - "kep", - "keh", - "kyeo", - "kyeog", - "kyeogg", - "kyeogs", - "kyeon", - "kyeonj", - "kyeonh", - "kyeod", - "kyeol", - "kyeolg", - "kyeolm", - "kyeolb", - "kyeols", - "kyeolt", - "kyeolp", - "kyeolh", - "kyeom", - "kyeob", - "kyeobs", - "kyeos", - "kyeoss", - "kyeong", - "kyeoj", - "kyeoc", - "kyeok", - "kyeot", - "kyeop", - "kyeoh", - "kye", - "kyeg", - "kyegg", - "kyegs", - "kyen", - "kyenj", - "kyenh", - "kyed", - "kyel", - "kyelg", - "kyelm", - "kyelb", - "kyels", - "kyelt", - "kyelp", - "kyelh", - "kyem", - "kyeb", - "kyebs", - "kyes", - "kyess", - "kyeng", - "kyej", - "kyec", - "kyek", - "kyet", - "kyep", - "kyeh", - "ko", - "kog", - "kogg", - "kogs", - "kon", - "konj", - "konh", - "kod", - "kol", - "kolg", - "kolm", - "kolb", - "kols", - "kolt", - "kolp", - "kolh", - "kom", - "kob", - "kobs", - "kos", - "koss", - "kong", - "koj", - "koc", - "kok", - "kot", - "kop", - "koh", - "kwa", - "kwag", - "kwagg", - "kwags", - "kwan", - "kwanj", - "kwanh", - "kwad", - "kwal", - "kwalg", - "kwalm", - "kwalb", - "kwals", - "kwalt", - "kwalp", - "kwalh", - "kwam", - "kwab", - "kwabs", - "kwas", - "kwass", - "kwang", - "kwaj", - "kwac", - "kwak", - "kwat", - "kwap", - "kwah", - "kwae", - "kwaeg", - "kwaegg", - "kwaegs", - "kwaen", - "kwaenj", - "kwaenh", - "kwaed", - "kwael", - "kwaelg", - "kwaelm", - "kwaelb", - "kwaels", - "kwaelt", - "kwaelp", - "kwaelh", - "kwaem", - "kwaeb", - "kwaebs", - "kwaes", - "kwaess", - "kwaeng", - "kwaej", - "kwaec", - "kwaek", - "kwaet", - "kwaep", - "kwaeh", - "koe", - "koeg", - "koegg", - "koegs", - "koen", - "koenj", - "koenh", - "koed", - "koel", - "koelg", - "koelm", - "koelb", - "koels", - "koelt", - "koelp", - "koelh", - "koem", - "koeb", - "koebs", - "koes", - "koess", - "koeng", - "koej", - "koec", - "koek", - "koet", - "koep", - "koeh", - "kyo", - "kyog", - "kyogg", - "kyogs", - "kyon", - "kyonj", - "kyonh", - "kyod", - "kyol", - "kyolg", - "kyolm", - "kyolb", - "kyols", - "kyolt", - "kyolp", - "kyolh", - "kyom", - "kyob", - "kyobs", - "kyos", - "kyoss", - "kyong", - "kyoj", - "kyoc", - "kyok", - "kyot", - "kyop", - "kyoh", - "ku", - "kug", - "kugg", - "kugs", - "kun", - "kunj", - "kunh", - "kud", - "kul", - "kulg", - "kulm", - "kulb", - "kuls", - "kult", - "kulp", - "kulh", - "kum", - "kub", - "kubs", - "kus", - "kuss", - "kung", - "kuj", - "kuc", - "kuk", - "kut", - "kup", - "kuh", - "kweo", - "kweog", - "kweogg", - "kweogs", - "kweon", - "kweonj", - "kweonh", - "kweod", - "kweol", - "kweolg", - "kweolm", - "kweolb", - "kweols", - "kweolt", - "kweolp", - "kweolh", - "kweom", - "kweob", - "kweobs", - "kweos", - "kweoss", - "kweong", - "kweoj", - "kweoc", - "kweok", - "kweot", - "kweop", - "kweoh", - "kwe", - "kweg", - "kwegg", - "kwegs", - "kwen", - "kwenj", - "kwenh", - "kwed", - "kwel", - "kwelg", - "kwelm", - "kwelb", - "kwels", - "kwelt", - "kwelp", - "kwelh", - "kwem", - "kweb", - "kwebs", - "kwes", - "kwess", - "kweng", - "kwej", - "kwec", - "kwek", - "kwet", - "kwep", - "kweh", - "kwi", - "kwig", - "kwigg", - "kwigs", - "kwin", - "kwinj", - "kwinh", - "kwid", - "kwil", - "kwilg", - "kwilm", - "kwilb", - "kwils", - "kwilt", - "kwilp", - "kwilh", - "kwim", - "kwib", - "kwibs", - "kwis", - "kwiss", - "kwing", - "kwij", - "kwic", - "kwik", - "kwit", - "kwip", - "kwih", - "kyu", - "kyug", - "kyugg", - "kyugs", - "kyun", - "kyunj", - "kyunh", - "kyud", - "kyul", - "kyulg", - "kyulm", - "kyulb", - "kyuls", - "kyult", - "kyulp", - "kyulh", - "kyum", - "kyub", - "kyubs", - "kyus", - "kyuss", - "kyung", - "kyuj", - "kyuc", - "kyuk", - "kyut", - "kyup", - "kyuh", - "keu", - "keug", - "keugg", - "keugs", - "keun", - "keunj", - "keunh", - "keud", - "keul", - "keulg", - "keulm", - "keulb", - "keuls", - "keult", - "keulp", - "keulh", - "keum", - "keub", - "keubs", - "keus", - "keuss", - "keung", - "keuj", - "keuc", - "keuk", - "keut", - "keup", - "keuh", - "kyi", - "kyig", - "kyigg", - "kyigs", - "kyin", - "kyinj", - "kyinh", - "kyid", - "kyil", - "kyilg", - "kyilm", - "kyilb", - "kyils", - "kyilt", - "kyilp", - "kyilh", - "kyim", - "kyib", - "kyibs", - "kyis", - "kyiss", - "kying", - "kyij", - "kyic", - "kyik", - "kyit", - "kyip", - "kyih", - "ki", - "kig", - "kigg", - "kigs", - "kin", - "kinj", - "kinh", - "kid", - "kil", - "kilg", - "kilm", - "kilb", - "kils", - "kilt", - "kilp", - "kilh", - "kim", - "kib", - "kibs", - "kis", - "kiss", - "king", - "kij", - "kic", - "kik", - "kit", - "kip", - "kih", - "ta", - "tag", - "tagg", - "tags", - "tan", - "tanj", - "tanh", - "tad", - "tal", - "talg", - "talm", - "talb", - "tals", - "talt", - "talp", - "talh", - "tam", - "tab", - "tabs", - "tas", - "tass", - "tang", - "taj", - "tac", - "tak", - "tat", - "tap", - "tah", - "tae", - "taeg", - "taegg", - "taegs", - "taen", - "taenj", - "taenh", - "taed", - "tael", - "taelg", - "taelm", - "taelb", - "taels", - "taelt", - "taelp", - "taelh", - "taem", - "taeb", - "taebs", - "taes", - "taess", - "taeng", - "taej", - "taec", - "taek", - "taet", - "taep", - "taeh", - "tya", - "tyag", - "tyagg", - "tyags", - "tyan", - "tyanj", - "tyanh", - "tyad", - "tyal", - "tyalg", - "tyalm", - "tyalb", - "tyals", - "tyalt", - "tyalp", - "tyalh", - "tyam", - "tyab", - "tyabs", - "tyas", - "tyass", - "tyang", - "tyaj", - "tyac", - "tyak", - "tyat", - "tyap", - "tyah", - "tyae", - "tyaeg", - "tyaegg", - "tyaegs", - "tyaen", - "tyaenj", - "tyaenh", - "tyaed", - "tyael", - "tyaelg", - "tyaelm", - "tyaelb", - "tyaels", - "tyaelt", - "tyaelp", - "tyaelh", - "tyaem", - "tyaeb", - "tyaebs", - "tyaes", - "tyaess", - "tyaeng", - "tyaej", - "tyaec", - "tyaek", - "tyaet", - "tyaep", - "tyaeh", - "teo", - "teog", - "teogg", - "teogs", - "teon", - "teonj", - "teonh", - "teod", - "teol", - "teolg", - "teolm", - "teolb", - "teols", - "teolt", - "teolp", - "teolh", - "teom", - "teob", - "teobs", - "teos", - "teoss", - "teong", - "teoj", - "teoc", - "teok", - "teot", - "teop", - "teoh", - "te", - "teg", - "tegg", - "tegs", - "ten", - "tenj", - "tenh", - "ted", - "tel", - "telg", - "telm", - "telb", - "tels", - "telt", - "telp", - "telh", - "tem", - "teb", - "tebs", - "tes", - "tess", - "teng", - "tej", - "tec", - "tek", - "tet", - "tep", - "teh", - "tyeo", - "tyeog", - "tyeogg", - "tyeogs", - "tyeon", - "tyeonj", - "tyeonh", - "tyeod", - "tyeol", - "tyeolg", - "tyeolm", - "tyeolb", - "tyeols", - "tyeolt", - "tyeolp", - "tyeolh", - "tyeom", - "tyeob", - "tyeobs", - "tyeos", - "tyeoss", - "tyeong", - "tyeoj", - "tyeoc", - "tyeok", - "tyeot", - "tyeop", - "tyeoh", - "tye", - "tyeg", - "tyegg", - "tyegs", - "tyen", - "tyenj", - "tyenh", - "tyed", - "tyel", - "tyelg", - "tyelm", - "tyelb", - "tyels", - "tyelt", - "tyelp", - "tyelh", - "tyem", - "tyeb", - "tyebs", - "tyes", - "tyess", - "tyeng", - "tyej", - "tyec", - "tyek", - "tyet", - "tyep", - "tyeh", - "to", - "tog", - "togg", - "togs", - "ton", - "tonj", - "tonh", - "tod", - "tol", - "tolg", - "tolm", - "tolb", - "tols", - "tolt", - "tolp", - "tolh", - "tom", - "tob", - "tobs", - "tos", - "toss", - "tong", - "toj", - "toc", - "tok", - "tot", - "top", - "toh", - "twa", - "twag", - "twagg", - "twags", - "twan", - "twanj", - "twanh", - "twad", - "twal", - "twalg", - "twalm", - "twalb", - "twals", - "twalt", - "twalp", - "twalh", - "twam", - "twab", - "twabs", - "twas", - "twass", - "twang", - "twaj", - "twac", - "twak", - "twat", - "twap", - "twah", - "twae", - "twaeg", - "twaegg", - "twaegs", - "twaen", - "twaenj", - "twaenh", - "twaed", - "twael", - "twaelg", - "twaelm", - "twaelb", - "twaels", - "twaelt", - "twaelp", - "twaelh", - "twaem", - "twaeb", - "twaebs", - "twaes", - "twaess", - "twaeng", - "twaej", - "twaec", - "twaek", - "twaet", - "twaep", - "twaeh", - "toe", - "toeg", - "toegg", - "toegs", - "toen", - "toenj", - "toenh", - "toed", - "toel", - "toelg", - "toelm", - "toelb", - "toels", - "toelt", - "toelp", - "toelh", - "toem", - "toeb", - "toebs", - "toes", - "toess", - "toeng", - "toej", - "toec", - "toek", - "toet", - "toep", - "toeh", - "tyo", - "tyog", - "tyogg", - "tyogs", - "tyon", - "tyonj", - "tyonh", - "tyod", - "tyol", - "tyolg", - "tyolm", - "tyolb", - "tyols", - "tyolt", - "tyolp", - "tyolh", - "tyom", - "tyob", - "tyobs", - "tyos", - "tyoss", - "tyong", - "tyoj", - "tyoc", - "tyok", - "tyot", - "tyop", - "tyoh", - "tu", - "tug", - "tugg", - "tugs", - "tun", - "tunj", - "tunh", - "tud", - "tul", - "tulg", - "tulm", - "tulb", - "tuls", - "tult", - "tulp", - "tulh", - "tum", - "tub", - "tubs", - "tus", - "tuss", - "tung", - "tuj", - "tuc", - "tuk", - "tut", - "tup", - "tuh", - "tweo", - "tweog", - "tweogg", - "tweogs", - "tweon", - "tweonj", - "tweonh", - "tweod", - "tweol", - "tweolg", - "tweolm", - "tweolb", - "tweols", - "tweolt", - "tweolp", - "tweolh", - "tweom", - "tweob", - "tweobs", - "tweos", - "tweoss", - "tweong", - "tweoj", - "tweoc", - "tweok", - "tweot", - "tweop", - "tweoh", - "twe", - "tweg", - "twegg", - "twegs", - "twen", - "twenj", - "twenh", - "twed", - "twel", - "twelg", - "twelm", - "twelb", - "twels", - "twelt", - "twelp", - "twelh", - "twem", - "tweb", - "twebs", - "twes", - "twess", - "tweng", - "twej", - "twec", - "twek", - "twet", - "twep", - "tweh", - "twi", - "twig", - "twigg", - "twigs", - "twin", - "twinj", - "twinh", - "twid", - "twil", - "twilg", - "twilm", - "twilb", - "twils", - "twilt", - "twilp", - "twilh", - "twim", - "twib", - "twibs", - "twis", - "twiss", - "twing", - "twij", - "twic", - "twik", - "twit", - "twip", - "twih", - "tyu", - "tyug", - "tyugg", - "tyugs", - "tyun", - "tyunj", - "tyunh", - "tyud", - "tyul", - "tyulg", - "tyulm", - "tyulb", - "tyuls", - "tyult", - "tyulp", - "tyulh", - "tyum", - "tyub", - "tyubs", - "tyus", - "tyuss", - "tyung", - "tyuj", - "tyuc", - "tyuk", - "tyut", - "tyup", - "tyuh", - "teu", - "teug", - "teugg", - "teugs", - "teun", - "teunj", - "teunh", - "teud", - "teul", - "teulg", - "teulm", - "teulb", - "teuls", - "teult", - "teulp", - "teulh", - "teum", - "teub", - "teubs", - "teus", - "teuss", - "teung", - "teuj", - "teuc", - "teuk", - "teut", - "teup", - "teuh", - "tyi", - "tyig", - "tyigg", - "tyigs", - "tyin", - "tyinj", - "tyinh", - "tyid", - "tyil", - "tyilg", - "tyilm", - "tyilb", - "tyils", - "tyilt", - "tyilp", - "tyilh", - "tyim", - "tyib", - "tyibs", - "tyis", - "tyiss", - "tying", - "tyij", - "tyic", - "tyik", - "tyit", - "tyip", - "tyih", - "ti", - "tig", - "tigg", - "tigs", - "tin", - "tinj", - "tinh", - "tid", - "til", - "tilg", - "tilm", - "tilb", - "tils", - "tilt", - "tilp", - "tilh", - "tim", - "tib", - "tibs", - "tis", - "tiss", - "ting", - "tij", - "tic", - "tik", - "tit", - "tip", - "tih", - "pa", - "pag", - "pagg", - "pags", - "pan", - "panj", - "panh", - "pad", - "pal", - "palg", - "palm", - "palb", - "pals", - "palt", - "palp", - "palh", - "pam", - "pab", - "pabs", - "pas", - "pass", - "pang", - "paj", - "pac", - "pak", - "pat", - "pap", - "pah", - "pae", - "paeg", - "paegg", - "paegs", - "paen", - "paenj", - "paenh", - "paed", - "pael", - "paelg", - "paelm", - "paelb", - "paels", - "paelt", - "paelp", - "paelh", - "paem", - "paeb", - "paebs", - "paes", - "paess", - "paeng", - "paej", - "paec", - "paek", - "paet", - "paep", - "paeh", - "pya", - "pyag", - "pyagg", - "pyags", - "pyan", - "pyanj", - "pyanh", - "pyad", - "pyal", - "pyalg", - "pyalm", - "pyalb", - "pyals", - "pyalt", - "pyalp", - "pyalh", - "pyam", - "pyab", - "pyabs", - "pyas", - "pyass", - "pyang", - "pyaj", - "pyac", - "pyak", - "pyat", - "pyap", - "pyah", - "pyae", - "pyaeg", - "pyaegg", - "pyaegs", - "pyaen", - "pyaenj", - "pyaenh", - "pyaed", - "pyael", - "pyaelg", - "pyaelm", - "pyaelb", - "pyaels", - "pyaelt", - "pyaelp", - "pyaelh", - "pyaem", - "pyaeb", - "pyaebs", - "pyaes", - "pyaess", - "pyaeng", - "pyaej", - "pyaec", - "pyaek", - "pyaet", - "pyaep", - "pyaeh", - "peo", - "peog", - "peogg", - "peogs", - "peon", - "peonj", - "peonh", - "peod", - "peol", - "peolg", - "peolm", - "peolb", - "peols", - "peolt", - "peolp", - "peolh", - "peom", - "peob", - "peobs", - "peos", - "peoss", - "peong", - "peoj", - "peoc", - "peok", - "peot", - "peop", - "peoh", - "pe", - "peg", - "pegg", - "pegs", - "pen", - "penj", - "penh", - "ped", - "pel", - "pelg", - "pelm", - "pelb", - "pels", - "pelt", - "pelp", - "pelh", - "pem", - "peb", - "pebs", - "pes", - "pess", - "peng", - "pej", - "pec", - "pek", - "pet", - "pep", - "peh", - "pyeo", - "pyeog", - "pyeogg", - "pyeogs", - "pyeon", - "pyeonj", - "pyeonh", - "pyeod", - "pyeol", - "pyeolg", - "pyeolm", - "pyeolb", - "pyeols", - "pyeolt", - "pyeolp", - "pyeolh", - "pyeom", - "pyeob", - "pyeobs", - "pyeos", - "pyeoss", - "pyeong", - "pyeoj", - "pyeoc", - "pyeok", - "pyeot", - "pyeop", - "pyeoh", - "pye", - "pyeg", - "pyegg", - "pyegs", - "pyen", - "pyenj", - "pyenh", - "pyed", - "pyel", - "pyelg", - "pyelm", - "pyelb", - "pyels", - "pyelt", - "pyelp", - "pyelh", - "pyem", - "pyeb", - "pyebs", - "pyes", - "pyess", - "pyeng", - "pyej", - "pyec", - "pyek", - "pyet", - "pyep", - "pyeh", - "po", - "pog", - "pogg", - "pogs", - "pon", - "ponj", - "ponh", - "pod", - "pol", - "polg", - "polm", - "polb", - "pols", - "polt", - "polp", - "polh", - "pom", - "pob", - "pobs", - "pos", - "poss", - "pong", - "poj", - "poc", - "pok", - "pot", - "pop", - "poh", - "pwa", - "pwag", - "pwagg", - "pwags", - "pwan", - "pwanj", - "pwanh", - "pwad", - "pwal", - "pwalg", - "pwalm", - "pwalb", - "pwals", - "pwalt", - "pwalp", - "pwalh", - "pwam", - "pwab", - "pwabs", - "pwas", - "pwass", - "pwang", - "pwaj", - "pwac", - "pwak", - "pwat", - "pwap", - "pwah", - "pwae", - "pwaeg", - "pwaegg", - "pwaegs", - "pwaen", - "pwaenj", - "pwaenh", - "pwaed", - "pwael", - "pwaelg", - "pwaelm", - "pwaelb", - "pwaels", - "pwaelt", - "pwaelp", - "pwaelh", - "pwaem", - "pwaeb", - "pwaebs", - "pwaes", - "pwaess", - "pwaeng", - "pwaej", - "pwaec", - "pwaek", - "pwaet", - "pwaep", - "pwaeh", - "poe", - "poeg", - "poegg", - "poegs", - "poen", - "poenj", - "poenh", - "poed", - "poel", - "poelg", - "poelm", - "poelb", - "poels", - "poelt", - "poelp", - "poelh", - "poem", - "poeb", - "poebs", - "poes", - "poess", - "poeng", - "poej", - "poec", - "poek", - "poet", - "poep", - "poeh", - "pyo", - "pyog", - "pyogg", - "pyogs", - "pyon", - "pyonj", - "pyonh", - "pyod", - "pyol", - "pyolg", - "pyolm", - "pyolb", - "pyols", - "pyolt", - "pyolp", - "pyolh", - "pyom", - "pyob", - "pyobs", - "pyos", - "pyoss", - "pyong", - "pyoj", - "pyoc", - "pyok", - "pyot", - "pyop", - "pyoh", - "pu", - "pug", - "pugg", - "pugs", - "pun", - "punj", - "punh", - "pud", - "pul", - "pulg", - "pulm", - "pulb", - "puls", - "pult", - "pulp", - "pulh", - "pum", - "pub", - "pubs", - "pus", - "puss", - "pung", - "puj", - "puc", - "puk", - "put", - "pup", - "puh", - "pweo", - "pweog", - "pweogg", - "pweogs", - "pweon", - "pweonj", - "pweonh", - "pweod", - "pweol", - "pweolg", - "pweolm", - "pweolb", - "pweols", - "pweolt", - "pweolp", - "pweolh", - "pweom", - "pweob", - "pweobs", - "pweos", - "pweoss", - "pweong", - "pweoj", - "pweoc", - "pweok", - "pweot", - "pweop", - "pweoh", - "pwe", - "pweg", - "pwegg", - "pwegs", - "pwen", - "pwenj", - "pwenh", - "pwed", - "pwel", - "pwelg", - "pwelm", - "pwelb", - "pwels", - "pwelt", - "pwelp", - "pwelh", - "pwem", - "pweb", - "pwebs", - "pwes", - "pwess", - "pweng", - "pwej", - "pwec", - "pwek", - "pwet", - "pwep", - "pweh", - "pwi", - "pwig", - "pwigg", - "pwigs", - "pwin", - "pwinj", - "pwinh", - "pwid", - "pwil", - "pwilg", - "pwilm", - "pwilb", - "pwils", - "pwilt", - "pwilp", - "pwilh", - "pwim", - "pwib", - "pwibs", - "pwis", - "pwiss", - "pwing", - "pwij", - "pwic", - "pwik", - "pwit", - "pwip", - "pwih", - "pyu", - "pyug", - "pyugg", - "pyugs", - "pyun", - "pyunj", - "pyunh", - "pyud", - "pyul", - "pyulg", - "pyulm", - "pyulb", - "pyuls", - "pyult", - "pyulp", - "pyulh", - "pyum", - "pyub", - "pyubs", - "pyus", - "pyuss", - "pyung", - "pyuj", - "pyuc", - "pyuk", - "pyut", - "pyup", - "pyuh", - "peu", - "peug", - "peugg", - "peugs", - "peun", - "peunj", - "peunh", - "peud", - "peul", - "peulg", - "peulm", - "peulb", - "peuls", - "peult", - "peulp", - "peulh", - "peum", - "peub", - "peubs", - "peus", - "peuss", - "peung", - "peuj", - "peuc", - "peuk", - "peut", - "peup", - "peuh", - "pyi", - "pyig", - "pyigg", - "pyigs", - "pyin", - "pyinj", - "pyinh", - "pyid", - "pyil", - "pyilg", - "pyilm", - "pyilb", - "pyils", - "pyilt", - "pyilp", - "pyilh", - "pyim", - "pyib", - "pyibs", - "pyis", - "pyiss", - "pying", - "pyij", - "pyic", - "pyik", - "pyit", - "pyip", - "pyih", - "pi", - "pig", - "pigg", - "pigs", - "pin", - "pinj", - "pinh", - "pid", - "pil", - "pilg", - "pilm", - "pilb", - "pils", - "pilt", - "pilp", - "pilh", - "pim", - "pib", - "pibs", - "pis", - "piss", - "ping", - "pij", - "pic", - "pik", - "pit", - "pip", - "pih", - "ha", - "hag", - "hagg", - "hags", - "han", - "hanj", - "hanh", - "had", - "hal", - "halg", - "halm", - "halb", - "hals", - "halt", - "halp", - "halh", - "ham", - "hab", - "habs", - "has", - "hass", - "hang", - "haj", - "hac", - "hak", - "hat", - "hap", - "hah", - "hae", - "haeg", - "haegg", - "haegs", - "haen", - "haenj", - "haenh", - "haed", - "hael", - "haelg", - "haelm", - "haelb", - "haels", - "haelt", - "haelp", - "haelh", - "haem", - "haeb", - "haebs", - "haes", - "haess", - "haeng", - "haej", - "haec", - "haek", - "haet", - "haep", - "haeh", - "hya", - "hyag", - "hyagg", - "hyags", - "hyan", - "hyanj", - "hyanh", - "hyad", - "hyal", - "hyalg", - "hyalm", - "hyalb", - "hyals", - "hyalt", - "hyalp", - "hyalh", - "hyam", - "hyab", - "hyabs", - "hyas", - "hyass", - "hyang", - "hyaj", - "hyac", - "hyak", - "hyat", - "hyap", - "hyah", - "hyae", - "hyaeg", - "hyaegg", - "hyaegs", - "hyaen", - "hyaenj", - "hyaenh", - "hyaed", - "hyael", - "hyaelg", - "hyaelm", - "hyaelb", - "hyaels", - "hyaelt", - "hyaelp", - "hyaelh", - "hyaem", - "hyaeb", - "hyaebs", - "hyaes", - "hyaess", - "hyaeng", - "hyaej", - "hyaec", - "hyaek", - "hyaet", - "hyaep", - "hyaeh", - "heo", - "heog", - "heogg", - "heogs", - "heon", - "heonj", - "heonh", - "heod", - "heol", - "heolg", - "heolm", - "heolb", - "heols", - "heolt", - "heolp", - "heolh", - "heom", - "heob", - "heobs", - "heos", - "heoss", - "heong", - "heoj", - "heoc", - "heok", - "heot", - "heop", - "heoh", - "he", - "heg", - "hegg", - "hegs", - "hen", - "henj", - "henh", - "hed", - "hel", - "helg", - "helm", - "helb", - "hels", - "helt", - "help", - "helh", - "hem", - "heb", - "hebs", - "hes", - "hess", - "heng", - "hej", - "hec", - "hek", - "het", - "hep", - "heh", - "hyeo", - "hyeog", - "hyeogg", - "hyeogs", - "hyeon", - "hyeonj", - "hyeonh", - "hyeod", - "hyeol", - "hyeolg", - "hyeolm", - "hyeolb", - "hyeols", - "hyeolt", - "hyeolp", - "hyeolh", - "hyeom", - "hyeob", - "hyeobs", - "hyeos", - "hyeoss", - "hyeong", - "hyeoj", - "hyeoc", - "hyeok", - "hyeot", - "hyeop", - "hyeoh", - "hye", - "hyeg", - "hyegg", - "hyegs", - "hyen", - "hyenj", - "hyenh", - "hyed", - "hyel", - "hyelg", - "hyelm", - "hyelb", - "hyels", - "hyelt", - "hyelp", - "hyelh", - "hyem", - "hyeb", - "hyebs", - "hyes", - "hyess", - "hyeng", - "hyej", - "hyec", - "hyek", - "hyet", - "hyep", - "hyeh", - "ho", - "hog", - "hogg", - "hogs", - "hon", - "honj", - "honh", - "hod", - "hol", - "holg", - "holm", - "holb", - "hols", - "holt", - "holp", - "holh", - "hom", - "hob", - "hobs", - "hos", - "hoss", - "hong", - "hoj", - "hoc", - "hok", - "hot", - "hop", - "hoh", - "hwa", - "hwag", - "hwagg", - "hwags", - "hwan", - "hwanj", - "hwanh", - "hwad", - "hwal", - "hwalg", - "hwalm", - "hwalb", - "hwals", - "hwalt", - "hwalp", - "hwalh", - "hwam", - "hwab", - "hwabs", - "hwas", - "hwass", - "hwang", - "hwaj", - "hwac", - "hwak", - "hwat", - "hwap", - "hwah", - "hwae", - "hwaeg", - "hwaegg", - "hwaegs", - "hwaen", - "hwaenj", - "hwaenh", - "hwaed", - "hwael", - "hwaelg", - "hwaelm", - "hwaelb", - "hwaels", - "hwaelt", - "hwaelp", - "hwaelh", - "hwaem", - "hwaeb", - "hwaebs", - "hwaes", - "hwaess", - "hwaeng", - "hwaej", - "hwaec", - "hwaek", - "hwaet", - "hwaep", - "hwaeh", - "hoe", - "hoeg", - "hoegg", - "hoegs", - "hoen", - "hoenj", - "hoenh", - "hoed", - "hoel", - "hoelg", - "hoelm", - "hoelb", - "hoels", - "hoelt", - "hoelp", - "hoelh", - "hoem", - "hoeb", - "hoebs", - "hoes", - "hoess", - "hoeng", - "hoej", - "hoec", - "hoek", - "hoet", - "hoep", - "hoeh", - "hyo", - "hyog", - "hyogg", - "hyogs", - "hyon", - "hyonj", - "hyonh", - "hyod", - "hyol", - "hyolg", - "hyolm", - "hyolb", - "hyols", - "hyolt", - "hyolp", - "hyolh", - "hyom", - "hyob", - "hyobs", - "hyos", - "hyoss", - "hyong", - "hyoj", - "hyoc", - "hyok", - "hyot", - "hyop", - "hyoh", - "hu", - "hug", - "hugg", - "hugs", - "hun", - "hunj", - "hunh", - "hud", - "hul", - "hulg", - "hulm", - "hulb", - "huls", - "hult", - "hulp", - "hulh", - "hum", - "hub", - "hubs", - "hus", - "huss", - "hung", - "huj", - "huc", - "huk", - "hut", - "hup", - "huh", - "hweo", - "hweog", - "hweogg", - "hweogs", - "hweon", - "hweonj", - "hweonh", - "hweod", - "hweol", - "hweolg", - "hweolm", - "hweolb", - "hweols", - "hweolt", - "hweolp", - "hweolh", - "hweom", - "hweob", - "hweobs", - "hweos", - "hweoss", - "hweong", - "hweoj", - "hweoc", - "hweok", - "hweot", - "hweop", - "hweoh", - "hwe", - "hweg", - "hwegg", - "hwegs", - "hwen", - "hwenj", - "hwenh", - "hwed", - "hwel", - "hwelg", - "hwelm", - "hwelb", - "hwels", - "hwelt", - "hwelp", - "hwelh", - "hwem", - "hweb", - "hwebs", - "hwes", - "hwess", - "hweng", - "hwej", - "hwec", - "hwek", - "hwet", - "hwep", - "hweh", - "hwi", - "hwig", - "hwigg", - "hwigs", - "hwin", - "hwinj", - "hwinh", - "hwid", - "hwil", - "hwilg", - "hwilm", - "hwilb", - "hwils", - "hwilt", - "hwilp", - "hwilh", - "hwim", - "hwib", - "hwibs", - "hwis", - "hwiss", - "hwing", - "hwij", - "hwic", - "hwik", - "hwit", - "hwip", - "hwih", - "hyu", - "hyug", - "hyugg", - "hyugs", - "hyun", - "hyunj", - "hyunh", - "hyud", - "hyul", - "hyulg", - "hyulm", - "hyulb", - "hyuls", - "hyult", - "hyulp", - "hyulh", - "hyum", - "hyub", - "hyubs", - "hyus", - "hyuss", - "hyung", - "hyuj", - "hyuc", - "hyuk", - "hyut", - "hyup", - "hyuh", - "heu", - "heug", - "heugg", - "heugs", - "heun", - "heunj", - "heunh", - "heud", - "heul", - "heulg", - "heulm", - "heulb", - "heuls", - "heult", - "heulp", - "heulh", - "heum", - "heub", - "heubs", - "heus", - "heuss", - "heung", - "heuj", - "heuc", - "heuk", - "heut", - "heup", - "heuh", - "hyi", - "hyig", - "hyigg", - "hyigs", - "hyin", - "hyinj", - "hyinh", - "hyid", - "hyil", - "hyilg", - "hyilm", - "hyilb", - "hyils", - "hyilt", - "hyilp", - "hyilh", - "hyim", - "hyib", - "hyibs", - "hyis", - "hyiss", - "hying", - "hyij", - "hyic", - "hyik", - "hyit", - "hyip", - "hyih", - "hi", - "hig", - "higg", - "higs", - "hin", - "hinj", - "hinh", - "hid", - "hil", - "hilg", - "hilm", - "hilb", - "hils", - "hilt", - "hilp", - "hilh", - "him", - "hib", - "hibs", - "his", - "hiss", - "hing", - "hij", - "hic", - "hik", - "hit", - "hip", - "hih", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "Kay ", - "Kayng ", - "Ke ", - "Ko ", - "Kol ", - "Koc ", - "Kwi ", - "Kwi ", - "Kyun ", - "Kul ", - "Kum ", - "Na ", - "Na ", - "Na ", - "La ", - "Na ", - "Na ", - "Na ", - "Na ", - "Na ", - "Nak ", - "Nak ", - "Nak ", - "Nak ", - "Nak ", - "Nak ", - "Nak ", - "Nan ", - "Nan ", - "Nan ", - "Nan ", - "Nan ", - "Nan ", - "Nam ", - "Nam ", - "Nam ", - "Nam ", - "Nap ", - "Nap ", - "Nap ", - "Nang ", - "Nang ", - "Nang ", - "Nang ", - "Nang ", - "Nay ", - "Nayng ", - "No ", - "No ", - "No ", - "No ", - "No ", - "No ", - "No ", - "No ", - "No ", - "No ", - "No ", - "No ", - "Nok ", - "Nok ", - "Nok ", - "Nok ", - "Nok ", - "Nok ", - "Non ", - "Nong ", - "Nong ", - "Nong ", - "Nong ", - "Noy ", - "Noy ", - "Noy ", - "Noy ", - "Nwu ", - "Nwu ", - "Nwu ", - "Nwu ", - "Nwu ", - "Nwu ", - "Nwu ", - "Nwu ", - "Nuk ", - "Nuk ", - "Num ", - "Nung ", - "Nung ", - "Nung ", - "Nung ", - "Nung ", - "Twu ", - "La ", - "Lak ", - "Lak ", - "Lan ", - "Lyeng ", - "Lo ", - "Lyul ", - "Li ", - "Pey ", - "Pen ", - "Pyen ", - "Pwu ", - "Pwul ", - "Pi ", - "Sak ", - "Sak ", - "Sam ", - "Sayk ", - "Sayng ", - "Sep ", - "Sey ", - "Sway ", - "Sin ", - "Sim ", - "Sip ", - "Ya ", - "Yak ", - "Yak ", - "Yang ", - "Yang ", - "Yang ", - "Yang ", - "Yang ", - "Yang ", - "Yang ", - "Yang ", - "Ye ", - "Ye ", - "Ye ", - "Ye ", - "Ye ", - "Ye ", - "Ye ", - "Ye ", - "Ye ", - "Ye ", - "Ye ", - "Yek ", - "Yek ", - "Yek ", - "Yek ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yel ", - "Yel ", - "Yel ", - "Yel ", - "Yel ", - "Yel ", - "Yem ", - "Yem ", - "Yem ", - "Yem ", - "Yem ", - "Yep ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yey ", - "Yey ", - "Yey ", - "Yey ", - "O ", - "Yo ", - "Yo ", - "Yo ", - "Yo ", - "Yo ", - "Yo ", - "Yo ", - "Yo ", - "Yo ", - "Yo ", - "Yong ", - "Wun ", - "Wen ", - "Yu ", - "Yu ", - "Yu ", - "Yu ", - "Yu ", - "Yu ", - "Yu ", - "Yu ", - "Yu ", - "Yu ", - "Yuk ", - "Yuk ", - "Yuk ", - "Yun ", - "Yun ", - "Yun ", - "Yun ", - "Yul ", - "Yul ", - "Yul ", - "Yul ", - "Yung ", - "I ", - "I ", - "I ", - "I ", - "I ", - "I ", - "I ", - "I ", - "I ", - "I ", - "I ", - "I ", - "I ", - "I ", - "Ik ", - "Ik ", - "In ", - "In ", - "In ", - "In ", - "In ", - "In ", - "In ", - "Im ", - "Im ", - "Im ", - "Ip ", - "Ip ", - "Ip ", - "Cang ", - "Cek ", - "Ci ", - "Cip ", - "Cha ", - "Chek ", - "Chey ", - "Thak ", - "Thak ", - "Thang ", - "Thayk ", - "Thong ", - "Pho ", - "Phok ", - "Hang ", - "Hang ", - "Hyen ", - "Hwak ", - "Wu ", - "Huo ", - "[?] ", - "[?] ", - "Zhong ", - "[?] ", - "Qing ", - "[?] ", - "[?] ", - "Xi ", - "Zhu ", - "Yi ", - "Li ", - "Shen ", - "Xiang ", - "Fu ", - "Jing ", - "Jing ", - "Yu ", - "[?] ", - "Hagi ", - "[?] ", - "Zhu ", - "[?] ", - "[?] ", - "Yi ", - "Du ", - "[?] ", - "[?] ", - "[?] ", - "Fan ", - "Si ", - "Guan ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "ff", - "fi", - "fl", - "ffi", - "ffl", - "st", - "st", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "mn", - "me", - "mi", - "vn", - "mkh", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "yi", - "", - "ay", - "`", - "", - "d", - "h", - "k", - "l", - "m", - "m", - "t", - "+", - "sh", - "s", - "sh", - "s", - "a", - "a", - "", - "b", - "g", - "d", - "h", - "v", - "z", - "[?]", - "t", - "y", - "k", - "k", - "l", - "[?]", - "l", - "[?]", - "n", - "n", - "[?]", - "p", - "p", - "[?]", - "ts", - "ts", - "r", - "sh", - "t", - "vo", - "b", - "k", - "p", - "l", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "~", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "..", - "--", - "-", - "_", - "_", - "(", - ") ", - "{", - "} ", - "[", - "] ", - "[(", - ")] ", - "<<", - ">> ", - "<", - "> ", - "[", - "] ", - "{", - "}", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - ",", - ",", - ".", - "", - ";", - ":", - "?", - "!", - "-", - "(", - ")", - "{", - "}", - "{", - "}", - "#", - "&", - "*", - "+", - "-", - "<", - ">", - "=", - "", - "\\", - "$", - "%", - "@", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "[?]", - "", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "", - "[?]", - "!", - '"', - "#", - "$", - "%", - "&", - "'", - "(", - ")", - "*", - "+", - ",", - "-", - ".", - "/", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - ":", - ";", - "<", - "=", - ">", - "?", - "@", - "A", - "B", - "C", - "D", - "E", - "F", - "G", - "H", - "I", - "J", - "K", - "L", - "M", - "N", - "O", - "P", - "Q", - "R", - "S", - "T", - "U", - "V", - "W", - "X", - "Y", - "Z", - "[", - "\\", - "]", - "^", - "_", - "`", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "{", - "|", - "}", - "~", - "[?]", - "[?]", - ".", - "[", - "]", - ",", - "*", - "wo", - "a", - "i", - "u", - "e", - "o", - "ya", - "yu", - "yo", - "tu", - "+", - "a", - "i", - "u", - "e", - "o", - "ka", - "ki", - "ku", - "ke", - "ko", - "sa", - "si", - "su", - "se", - "so", - "ta", - "ti", - "tu", - "te", - "to", - "na", - "ni", - "nu", - "ne", - "no", - "ha", - "hi", - "hu", - "he", - "ho", - "ma", - "mi", - "mu", - "me", - "mo", - "ya", - "yu", - "yo", - "ra", - "ri", - "ru", - "re", - "ro", - "wa", - "n", - ":", - ";", - "", - "g", - "gg", - "gs", - "n", - "nj", - "nh", - "d", - "dd", - "r", - "lg", - "lm", - "lb", - "ls", - "lt", - "lp", - "rh", - "m", - "b", - "bb", - "bs", - "s", - "ss", - "", - "j", - "jj", - "c", - "k", - "t", - "p", - "h", - "[?]", - "[?]", - "[?]", - "a", - "ae", - "ya", - "yae", - "eo", - "e", - "[?]", - "[?]", - "yeo", - "ye", - "o", - "wa", - "wae", - "oe", - "[?]", - "[?]", - "yo", - "u", - "weo", - "we", - "wi", - "yu", - "[?]", - "[?]", - "eu", - "yi", - "i", - "[?]", - "[?]", - "[?]", - "/C", - "PS", - "!", - "-", - "|", - "Y=", - "W=", - "[?]", - "|", - "-", - "|", - "-", - "|", - "#", - "O", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "{", - "|", - "}", - "", - "", - "", - "", -) diff --git a/.venv/lib/python3.12/site-packages/faker/documentor.py b/.venv/lib/python3.12/site-packages/faker/documentor.py deleted file mode 100644 index 0dbce60..0000000 --- a/.venv/lib/python3.12/site-packages/faker/documentor.py +++ /dev/null @@ -1,127 +0,0 @@ -import inspect -import warnings - -from enum import Enum, auto -from typing import Any, Dict, List, Optional, Tuple, Type, Union - -from .generator import Generator -from .providers import BaseProvider -from .proxy import Faker - - -class FakerEnum(Enum): - """Required for faker.providers.enum""" - - A = auto - B = auto - - -class Documentor: - def __init__(self, generator: Union[Generator, Faker]) -> None: - """ - :param generator: a localized Generator with providers filled, - for which to write the documentation - :type generator: faker.Generator() - """ - self.generator = generator - self.max_name_len: int = 0 - self.already_generated: List[str] = [] - - def get_formatters( - self, - locale: Optional[str] = None, - excludes: Optional[List[str]] = None, - **kwargs: Any, - ) -> List[Tuple[BaseProvider, Dict[str, str]]]: - self.max_name_len = 0 - self.already_generated = [] if excludes is None else excludes[:] - formatters = [] - providers: List[BaseProvider] = self.generator.get_providers() - for provider in providers[::-1]: # reverse - if locale and provider.__lang__ and provider.__lang__ != locale: - continue - formatters.append( - (provider, self.get_provider_formatters(provider, **kwargs)), - ) - return formatters - - def get_provider_formatters( - self, - provider: BaseProvider, - prefix: str = "fake.", - with_args: bool = True, - with_defaults: bool = True, - ) -> Dict[str, str]: - formatters = {} - - for name, method in inspect.getmembers(provider, inspect.ismethod): - # skip 'private' method and inherited methods - if name.startswith("_") or name in self.already_generated: - continue - - arguments = [] - faker_args: List[Union[str, Type[Enum]]] = [] - faker_kwargs = {} - - if name == "binary": - faker_kwargs["length"] = 1024 - elif name in ["zip", "tar"]: - faker_kwargs.update( - { - "uncompressed_size": 1024, - "min_file_size": 512, - } - ) - - if name == "enum": - faker_args = [FakerEnum] - - if with_args: - # retrieve all parameter - argspec = inspect.getfullargspec(method) - - lst = [x for x in argspec.args if x not in ["self", "cls"]] - for i, arg in enumerate(lst): - if argspec.defaults and with_defaults: - try: - default = argspec.defaults[i] - if isinstance(default, str): - default = repr(default) - else: - # TODO check default type - default = f"{default}" - - arg = f"{arg}={default}" - - except IndexError: - pass - - arguments.append(arg) - if with_args == "first": - break - - if with_args != "first": - if argspec.varargs: - arguments.append("*" + argspec.varargs) - if argspec.varkw: - arguments.append("**" + argspec.varkw) - - # build fake method signature - signature = f"{prefix}{name}({', '.join(arguments)})" - - try: - # make a fake example - example = self.generator.format(name, *faker_args, **faker_kwargs) - except (AttributeError, ValueError) as e: - warnings.warn(str(e)) - continue - formatters[signature] = example - - self.max_name_len = max(self.max_name_len, *(len(part) for part in signature.split())) - self.already_generated.append(name) - - return formatters - - @staticmethod - def get_provider_name(provider_class: BaseProvider) -> str: - return provider_class.__provider__ diff --git a/.venv/lib/python3.12/site-packages/faker/exceptions.py b/.venv/lib/python3.12/site-packages/faker/exceptions.py deleted file mode 100644 index 5aa0398..0000000 --- a/.venv/lib/python3.12/site-packages/faker/exceptions.py +++ /dev/null @@ -1,16 +0,0 @@ -class BaseFakerException(Exception): - """The base exception for all Faker exceptions.""" - - -class UniquenessException(BaseFakerException): - """To avoid infinite loops, after a certain number of attempts, - the "unique" attribute of the Proxy will throw this exception. - """ - - -class UnsupportedFeature(BaseFakerException): - """The requested feature is not available on this system.""" - - def __init__(self, msg: str, name: str) -> None: - self.name = name - super().__init__(msg) diff --git a/.venv/lib/python3.12/site-packages/faker/factory.py b/.venv/lib/python3.12/site-packages/faker/factory.py deleted file mode 100644 index 356e8d5..0000000 --- a/.venv/lib/python3.12/site-packages/faker/factory.py +++ /dev/null @@ -1,114 +0,0 @@ -import functools -import locale as pylocale -import logging -import sys - -from importlib import import_module -from typing import Any, List, Optional, Tuple - -from .config import AVAILABLE_LOCALES, DEFAULT_LOCALE, PROVIDERS -from .generator import Generator -from .utils.loading import list_module - -logger = logging.getLogger(__name__) - -# identify if python is being run in interactive mode. If so, disable logging. -inREPL = bool(getattr(sys, "ps1", False)) -if inREPL: - logger.setLevel(logging.CRITICAL) -else: - logger.debug("Not in REPL -> leaving logger event level as is.") - - -class Factory: - @classmethod - def create( - cls, - locale: Optional[str] = None, - providers: Optional[List[str]] = None, - generator: Optional[Generator] = None, - includes: Optional[List[str]] = None, - # Should we use weightings (more realistic) or weight every element equally (faster)? - # By default, use weightings for backwards compatibility & realism - use_weighting: bool = True, - **config: Any, - ) -> Generator: - if includes is None: - includes = [] - - # fix locale to package name - locale = locale.replace("-", "_") if locale else DEFAULT_LOCALE - locale = pylocale.normalize(locale).split(".")[0] - if locale not in AVAILABLE_LOCALES: - msg = f"Invalid configuration for faker locale `{locale}`" - raise AttributeError(msg) - - config["locale"] = locale - config["use_weighting"] = use_weighting - _providers = (providers or PROVIDERS) + includes - - faker = generator or Generator(**config) - - for prov_name in _providers: - if prov_name == "faker.providers": - continue - - prov_cls, lang_found, _ = cls._find_provider_class(prov_name, locale) - provider = prov_cls(faker) - provider.__use_weighting__ = use_weighting - provider.__provider__ = prov_name - provider.__lang__ = lang_found - faker.add_provider(provider) - - return faker - - @classmethod - @functools.lru_cache(maxsize=None) - def _find_provider_class( - cls, - provider_path: str, - locale: Optional[str] = None, - ) -> Tuple[Any, Optional[str], Optional[str]]: - provider_module = import_module(provider_path) - default_locale = getattr(provider_module, "default_locale", "") - - if getattr(provider_module, "localized", False): - logger.debug( - "Looking for locale `%s` in provider `%s`.", - locale, - provider_module.__name__, - ) - - available_locales = list_module(provider_module) - if not locale or locale not in available_locales: - unavailable_locale = locale - locale = default_locale or DEFAULT_LOCALE - logger.debug( - "Specified locale `%s` is not available for " - "provider `%s`. Locale reset to `%s` for this " - "provider.", - unavailable_locale, - provider_module.__name__, - locale, - ) - else: - logger.debug( - "Provider `%s` has been localized to `%s`.", - provider_module.__name__, - locale, - ) - - path = f"{provider_path}.{locale}" - provider_module = import_module(path) - - else: - if locale: - logger.debug( - "Provider `%s` does not feature localization. " - "Specified locale `%s` is not used for this provider.", - provider_module.__name__, - locale, - ) - locale = default_locale = None - - return provider_module.Provider, locale, default_locale # type: ignore diff --git a/.venv/lib/python3.12/site-packages/faker/generator.py b/.venv/lib/python3.12/site-packages/faker/generator.py deleted file mode 100644 index 5eda964..0000000 --- a/.venv/lib/python3.12/site-packages/faker/generator.py +++ /dev/null @@ -1,191 +0,0 @@ -import random as random_module -import re - -from typing import TYPE_CHECKING, Any, Callable, Dict, Hashable, List, Optional, Type, Union - -from .typing import SeedType - -if TYPE_CHECKING: - from .providers import BaseProvider - -_re_token = re.compile(r"\{\{\s*(\w+)(:\s*\w+?)?\s*\}\}") -random = random_module.Random() -mod_random = random # compat with name released in 0.8 - - -Sentinel = object() - - -class Generator: - __config: Dict[str, Dict[Hashable, Any]] = { - "arguments": {}, - } - - _is_seeded = False - _global_seed = Sentinel - - def __init__(self, **config: Dict) -> None: - self.providers: List["BaseProvider"] = [] - self.__config = dict(list(self.__config.items()) + list(config.items())) - self.__random = random - - def add_provider(self, provider: Union["BaseProvider", Type["BaseProvider"]]) -> None: - if isinstance(provider, type): - provider = provider(self) - - self.providers.insert(0, provider) - - for method_name in dir(provider): - # skip 'private' method - if method_name.startswith("_"): - continue - - faker_function = getattr(provider, method_name) - - if callable(faker_function): - # add all faker method to generator - self.set_formatter(method_name, faker_function) - - def provider(self, name: str) -> Optional["BaseProvider"]: - try: - lst = [p for p in self.get_providers() if hasattr(p, "__provider__") and p.__provider__ == name.lower()] - return lst[0] - except IndexError: - return None - - def get_providers(self) -> List["BaseProvider"]: - """Returns added providers.""" - return self.providers - - @property - def random(self) -> random_module.Random: - return self.__random - - @random.setter - def random(self, value: random_module.Random) -> None: - self.__random = value - - def seed_instance(self, seed: Optional[SeedType] = None) -> "Generator": - """Calls random.seed""" - if self.__random == random: - # create per-instance random obj when first time seed_instance() is - # called - self.__random = random_module.Random() - self.__random.seed(seed) - self._is_seeded = True - return self - - @classmethod - def seed(cls, seed: Optional[SeedType] = None) -> None: - random.seed(seed) - cls._global_seed = seed - cls._is_seeded = True - - def format(self, formatter: str, *args: Any, **kwargs: Any) -> str: - """ - This is a secure way to make a fake from another Provider. - """ - return self.get_formatter(formatter)(*args, **kwargs) - - def get_formatter(self, formatter: str) -> Callable: - try: - return getattr(self, formatter) - except AttributeError: - if "locale" in self.__config: - msg = f'Unknown formatter {formatter!r} with locale {self.__config["locale"]!r}' - else: - raise AttributeError(f"Unknown formatter {formatter!r}") - raise AttributeError(msg) - - def set_formatter(self, name: str, formatter: Callable) -> None: - """ - This method adds a provider method to generator. - Override this method to add some decoration or logging stuff. - """ - setattr(self, name, formatter) - - def set_arguments(self, group: str, argument: str, value: Optional[Any] = None) -> None: - """ - Creates an argument group, with an individual argument or a dictionary - of arguments. The argument groups is used to apply arguments to tokens, - when using the generator.parse() method. To further manage argument - groups, use get_arguments() and del_arguments() methods. - - generator.set_arguments('small', 'max_value', 10) - generator.set_arguments('small', {'min_value': 5, 'max_value': 10}) - """ - if group not in self.__config["arguments"]: - self.__config["arguments"][group] = {} - - if isinstance(argument, dict): - self.__config["arguments"][group] = argument - elif not isinstance(argument, str): - raise ValueError("Arguments must be either a string or dictionary") - else: - self.__config["arguments"][group][argument] = value - - def get_arguments(self, group: str, argument: Optional[str] = None) -> Any: - """ - Get the value of an argument configured within a argument group, or - the entire group as a dictionary. Used in conjunction with the - set_arguments() method. - - generator.get_arguments('small', 'max_value') - generator.get_arguments('small') - """ - if group in self.__config["arguments"] and argument: - result = self.__config["arguments"][group].get(argument) - else: - result = self.__config["arguments"].get(group) - - return result - - def del_arguments(self, group: str, argument: Optional[str] = None) -> Any: - """ - Delete an argument from an argument group or the entire argument group. - Used in conjunction with the set_arguments() method. - - generator.del_arguments('small') - generator.del_arguments('small', 'max_value') - """ - if group in self.__config["arguments"]: - if argument: - result = self.__config["arguments"][group].pop(argument) - else: - result = self.__config["arguments"].pop(group) - else: - result = None - - return result - - def parse(self, text: str) -> str: - """ - Replaces tokens like '{{ tokenName }}' or '{{tokenName}}' in a string with - the result from the token method call. Arguments can be parsed by using an - argument group. For more information on the use of argument groups, please - refer to the set_arguments() method. - - Example: - - generator.set_arguments('red_rgb', {'hue': 'red', 'color_format': 'rgb'}) - generator.set_arguments('small', 'max_value', 10) - - generator.parse('{{ color:red_rgb }} - {{ pyint:small }}') - """ - return _re_token.sub(self.__format_token, text) - - def __format_token(self, matches): - formatter, argument_group = list(matches.groups()) - argument_group = argument_group.lstrip(":").strip() if argument_group else "" - - if argument_group: - try: - arguments = self.__config["arguments"][argument_group] - except KeyError: - raise AttributeError(f"Unknown argument group {argument_group!r}") - - formatted = str(self.format(formatter, **arguments)) - else: - formatted = str(self.format(formatter)) - - return "".join(formatted) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/__init__.py deleted file mode 100644 index 037dc0b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/__init__.py +++ /dev/null @@ -1,742 +0,0 @@ -import re -import string - -from collections import OrderedDict -from typing import Any, Collection, List, Optional, Sequence, TypeVar, Union - -from ..generator import Generator -from ..typing import OrderedDictType -from ..utils.distribution import choices_distribution, choices_distribution_unique - -_re_hash = re.compile(r"#") -_re_perc = re.compile(r"%") -_re_dol = re.compile(r"\$") -_re_excl = re.compile(r"!") -_re_at = re.compile(r"@") -_re_qm = re.compile(r"\?") -_re_cir = re.compile(r"\^") - -T = TypeVar("T") -ElementsType = Union[Collection[T], OrderedDictType[T, float]] - - -class BaseProvider: - __provider__ = "base" - __lang__: Optional[str] = None - __use_weighting__ = False - - # Locales supported by Linux Mint from `/usr/share/i18n/SUPPORTED` - language_locale_codes = { - "aa": ("DJ", "ER", "ET"), - "af": ("ZA",), - "ak": ("GH",), - "am": ("ET",), - "an": ("ES",), - "apn": ("IN",), - "ar": ( - "AE", - "BH", - "DJ", - "DZ", - "EG", - "EH", - "ER", - "IL", - "IN", - "IQ", - "JO", - "KM", - "KW", - "LB", - "LY", - "MA", - "MR", - "OM", - "PS", - "QA", - "SA", - "SD", - "SO", - "SS", - "SY", - "TD", - "TN", - "YE", - ), - "as": ("IN",), - "ast": ("ES",), - "ayc": ("PE",), - "az": ("AZ", "IN"), - "be": ("BY",), - "bem": ("ZM",), - "ber": ("DZ", "MA"), - "bg": ("BG",), - "bhb": ("IN",), - "bho": ("IN",), - "bn": ("BD", "IN"), - "bo": ("CN", "IN"), - "br": ("FR",), - "brx": ("IN",), - "bs": ("BA",), - "byn": ("ER",), - "ca": ("AD", "ES", "FR", "IT"), - "ce": ("RU",), - "ckb": ("IQ",), - "cmn": ("TW",), - "crh": ("UA",), - "cs": ("CZ",), - "csb": ("PL",), - "cv": ("RU",), - "cy": ("GB",), - "da": ("DK",), - "de": ("AT", "BE", "CH", "DE", "LI", "LU"), - "doi": ("IN",), - "dv": ("MV",), - "dz": ("BT",), - "el": ("GR", "CY"), - "en": ( - "AG", - "AU", - "BD", - "BW", - "CA", - "DK", - "GB", - "HK", - "IE", - "IN", - "NG", - "NZ", - "PH", - "PK", - "SG", - "US", - "ZA", - "ZM", - "ZW", - "KE", - ), - "eo": ("US",), - "es": ( - "AR", - "BO", - "CL", - "CO", - "CR", - "CU", - "DO", - "EC", - "ES", - "GT", - "HN", - "MX", - "NI", - "PA", - "PE", - "PR", - "PY", - "SV", - "US", - "UY", - "VE", - ), - "et": ("EE",), - "eu": ("ES", "FR"), - "fa": ("IR",), - "ff": ("SN",), - "fi": ("FI",), - "fil": ("PH",), - "fo": ("FO",), - "fr": ("CA", "CH", "FR", "LU"), - "fur": ("IT",), - "fy": ("NL", "DE"), - "ga": ("IE",), - "gd": ("GB",), - "gez": ("ER", "ET"), - "gl": ("ES",), - "gu": ("IN",), - "gv": ("GB",), - "ha": ("NG",), - "hak": ("TW",), - "he": ("IL",), - "hi": ("IN",), - "hne": ("IN",), - "hr": ("HR",), - "hsb": ("DE",), - "ht": ("HT",), - "hu": ("HU",), - "hy": ("AM",), - "ia": ("FR",), - "id": ("ID",), - "ig": ("NG",), - "ik": ("CA",), - "is": ("IS",), - "it": ("CH", "IT"), - "iu": ("CA",), - "iw": ("IL",), - "ja": ("JP",), - "ka": ("GE",), - "kk": ("KZ",), - "kl": ("GL",), - "km": ("KH",), - "kn": ("IN",), - "ko": ("KR",), - "kok": ("IN",), - "ks": ("IN",), - "ku": ("TR",), - "kw": ("GB",), - "ky": ("KG",), - "lb": ("LU",), - "lg": ("UG",), - "li": ("BE", "NL"), - "lij": ("IT",), - "ln": ("CD",), - "lo": ("LA",), - "lt": ("LT",), - "lv": ("LV",), - "lzh": ("TW",), - "mag": ("IN",), - "mai": ("IN",), - "mg": ("MG",), - "mhr": ("RU",), - "mi": ("NZ",), - "mk": ("MK",), - "ml": ("IN",), - "mn": ("MN",), - "mni": ("IN",), - "mr": ("IN",), - "ms": ("MY",), - "mt": ("MT",), - "my": ("MM",), - "nan": ("TW",), - "nb": ("NO",), - "nds": ("DE", "NL"), - "ne": ("NP",), - "nhn": ("MX",), - "niu": ("NU", "NZ"), - "nl": ("AW", "BE", "NL"), - "nn": ("NO",), - "nr": ("ZA",), - "nso": ("ZA",), - "oc": ("FR",), - "om": ("ET", "KE"), - "or": ("IN",), - "os": ("RU",), - "pa": ("IN", "PK"), - "pap": ("AN", "AW", "CW"), - "pl": ("PL",), - "ps": ("AF",), - "pt": ("BR", "PT"), - "quz": ("PE",), - "raj": ("IN",), - "ro": ("RO",), - "ru": ("RU", "UA"), - "rw": ("RW",), - "sa": ("IN",), - "sat": ("IN",), - "sc": ("IT",), - "sd": ("IN", "PK"), - "se": ("NO",), - "shs": ("CA",), - "si": ("LK",), - "sid": ("ET",), - "sk": ("SK",), - "sl": ("SI",), - "so": ("DJ", "ET", "KE", "SO"), - "sq": ("AL", "ML"), - "sr": ("ME", "RS"), - "ss": ("ZA",), - "st": ("ZA",), - "sv": ("FI", "SE"), - "sw": ("KE", "TZ"), - "szl": ("PL",), - "ta": ("IN", "LK"), - "tcy": ("IN",), - "te": ("IN",), - "tg": ("TJ",), - "th": ("TH",), - "the": ("NP",), - "ti": ("ER", "ET"), - "tig": ("ER",), - "tk": ("TM",), - "tl": ("PH",), - "tn": ("ZA",), - "tr": ("CY", "TR"), - "ts": ("ZA",), - "tt": ("RU",), - "ug": ("CN",), - "uk": ("UA",), - "unm": ("US",), - "ur": ("IN", "PK"), - "uz": ("UZ",), - "ve": ("ZA",), - "vi": ("VN",), - "wa": ("BE",), - "wae": ("CH",), - "wal": ("ET",), - "wo": ("SN",), - "xh": ("ZA",), - "yi": ("US",), - "yo": ("NG",), - "yue": ("HK",), - "zh": ("CN", "HK", "SG", "TW"), - "zu": ("ZA",), - } - - def __init__(self, generator: Any) -> None: - """ - Base class for fake data providers - :param generator: `Generator` instance - """ - self.generator = generator - - def locale(self) -> str: - """Generate a random underscored i18n locale code (e.g. en_US).""" - - language_code = self.language_code() - return ( - language_code - + "_" - + self.random_element( - BaseProvider.language_locale_codes[language_code], - ) - ) - - def language_code(self) -> str: - """Generate a random i18n language code (e.g. en).""" - - return self.random_element(BaseProvider.language_locale_codes.keys()) - - def random_int(self, min: int = 0, max: int = 9999, step: int = 1) -> int: - """Generate a random integer between two integers ``min`` and ``max`` inclusive - while observing the provided ``step`` value. - - This method is functionally equivalent to randomly sampling an integer - from the sequence ``range(min, max + 1, step)``. - - :sample: min=0, max=15 - :sample: min=0, max=15, step=3 - """ - return self.generator.random.randrange(min, max + 1, step) - - def random_digit(self) -> int: - """Generate a random digit (0 to 9).""" - - return self.generator.random.randint(0, 9) - - def random_digit_not_null(self) -> int: - """Generate a random non-zero digit (1 to 9).""" - - return self.generator.random.randint(1, 9) - - def random_digit_above_two(self) -> int: - """Generate a random digit above value two (2 to 9).""" - - return self.generator.random.randint(2, 9) - - def random_digit_or_empty(self) -> Union[int, str]: - """Generate a random digit (0 to 9) or an empty string. - - This method will return an empty string 50% of the time, - and each digit has a 1/20 chance of being generated. - """ - - if self.generator.random.randint(0, 1): - return self.generator.random.randint(0, 9) - else: - return "" - - def random_digit_not_null_or_empty(self) -> Union[int, str]: - """Generate a random non-zero digit (1 to 9) or an empty string. - - This method will return an empty string 50% of the time, - and each digit has a 1/18 chance of being generated. - """ - - if self.generator.random.randint(0, 1): - return self.generator.random.randint(1, 9) - else: - return "" - - def random_number(self, digits: Optional[int] = None, fix_len: bool = False) -> int: - """Generate a random integer according to the following rules: - - - If ``digits`` is ``None`` (default), its value will be set to a random - integer from 1 to 9. - - If ``fix_len`` is ``False`` (default), all integers that do not exceed - the number of ``digits`` can be generated. - - If ``fix_len`` is ``True``, only integers with the exact number of - ``digits`` can be generated. - - :sample: fix_len=False - :sample: fix_len=True - :sample: digits=3 - :sample: digits=3, fix_len=False - :sample: digits=3, fix_len=True - """ - if digits is None: - digits = self.random_digit_not_null() - if digits < 0: - raise ValueError("The digit parameter must be greater than or equal to 0.") - if fix_len: - if digits > 0: - return self.generator.random.randint(pow(10, digits - 1), pow(10, digits) - 1) - else: - raise ValueError("A number of fixed length cannot have less than 1 digit in it.") - else: - return self.generator.random.randint(0, pow(10, digits) - 1) - - def random_letter(self) -> str: - """Generate a random ASCII letter (a-z and A-Z).""" - - return self.generator.random.choice(getattr(string, "letters", string.ascii_letters)) - - def random_letters(self, length: int = 16) -> Sequence[str]: - """Generate a list of random ASCII letters (a-z and A-Z) of the specified ``length``. - - :sample: length=10 - """ - return self.random_choices( - getattr(string, "letters", string.ascii_letters), - length=length, - ) - - def random_lowercase_letter(self) -> str: - """Generate a random lowercase ASCII letter (a-z).""" - - return self.generator.random.choice(string.ascii_lowercase) - - def random_uppercase_letter(self) -> str: - """Generate a random uppercase ASCII letter (A-Z).""" - - return self.generator.random.choice(string.ascii_uppercase) - - def random_elements( - self, - elements: ElementsType[T] = ("a", "b", "c"), # type: ignore[assignment] - length: Optional[int] = None, - unique: bool = False, - use_weighting: Optional[bool] = None, - ) -> Sequence[T]: - """Generate a list of randomly sampled objects from ``elements``. - - Set ``unique`` to ``False`` for random sampling with replacement, and set ``unique`` to - ``True`` for random sampling without replacement. - - If ``length`` is set to ``None`` or is omitted, ``length`` will be set to a random - integer from 1 to the size of ``elements``. - - The value of ``length`` cannot be greater than the number of objects - in ``elements`` if ``unique`` is set to ``True``. - - The value of ``elements`` can be any sequence type (``list``, ``tuple``, ``set``, - ``string``, etc) or an ``OrderedDict`` type. If it is the latter, the keys will be - used as the objects for sampling, and the values will be used as weighted probabilities - if ``unique`` is set to ``False``. For example: - - .. code-block:: python - - # Random sampling with replacement - fake.random_elements( - elements=OrderedDict([ - ("variable_1", 0.5), # Generates "variable_1" 50% of the time - ("variable_2", 0.2), # Generates "variable_2" 20% of the time - ("variable_3", 0.2), # Generates "variable_3" 20% of the time - ("variable_4": 0.1), # Generates "variable_4" 10% of the time - ]), unique=False - ) - - # Random sampling without replacement (defaults to uniform distribution) - fake.random_elements( - elements=OrderedDict([ - ("variable_1", 0.5), - ("variable_2", 0.2), - ("variable_3", 0.2), - ("variable_4": 0.1), - ]), unique=True - ) - - :sample: elements=('a', 'b', 'c', 'd'), unique=False - :sample: elements=('a', 'b', 'c', 'd'), unique=True - :sample: elements=('a', 'b', 'c', 'd'), length=10, unique=False - :sample: elements=('a', 'b', 'c', 'd'), length=4, unique=True - :sample: elements=OrderedDict([ - ("a", 0.45), - ("b", 0.35), - ("c", 0.15), - ("d", 0.05), - ]), length=20, unique=False - :sample: elements=OrderedDict([ - ("a", 0.45), - ("b", 0.35), - ("c", 0.15), - ("d", 0.05), - ]), unique=True - """ - use_weighting = use_weighting if use_weighting is not None else self.__use_weighting__ - - if isinstance(elements, dict) and not isinstance(elements, OrderedDict): - raise ValueError("Use OrderedDict only to avoid dependency on PYTHONHASHSEED (See #363).") - - fn = choices_distribution_unique if unique else choices_distribution - - if length is None: - length = self.generator.random.randint(1, len(elements)) - - if unique and length > len(elements): - raise ValueError("Sample length cannot be longer than the number of unique elements to pick from.") - - if isinstance(elements, dict): - if not hasattr(elements, "_key_cache"): - elements._key_cache = tuple(elements.keys()) # type: ignore - - choices = elements._key_cache # type: ignore[attr-defined, union-attr] - probabilities = tuple(elements.values()) if use_weighting else None - else: - if unique: - # shortcut - return self.generator.random.sample(elements, length) - choices = elements - probabilities = None - - return fn( - tuple(choices), - probabilities, - self.generator.random, - length=length, - ) - - def random_choices( - self, - elements: ElementsType[T] = ("a", "b", "c"), # type: ignore[assignment] - length: Optional[int] = None, - ) -> Sequence[T]: - """Generate a list of objects randomly sampled from ``elements`` with replacement. - - For information on the ``elements`` and ``length`` arguments, please refer to - :meth:`random_elements() ` which - is used under the hood with the ``unique`` argument explicitly set to ``False``. - - :sample: elements=('a', 'b', 'c', 'd') - :sample: elements=('a', 'b', 'c', 'd'), length=10 - :sample: elements=OrderedDict([ - ("a", 0.45), - ("b", 0.35), - ("c", 0.15), - ("d", 0.05), - ]) - :sample: elements=OrderedDict([ - ("a", 0.45), - ("b", 0.35), - ("c", 0.15), - ("d", 0.05), - ]), length=20 - """ - return self.random_elements(elements, length, unique=False) - - def random_element(self, elements: ElementsType[T] = ("a", "b", "c")) -> T: # type: ignore[assignment] - """Generate a randomly sampled object from ``elements``. - - For information on the ``elements`` argument, please refer to - :meth:`random_elements() ` which - is used under the hood with the ``unique`` argument set to ``False`` and the - ``length`` argument set to ``1``. - - :sample: elements=('a', 'b', 'c', 'd') - :sample size=10: elements=OrderedDict([ - ("a", 0.45), - ("b", 0.35), - ("c", 0.15), - ("d", 0.05), - ]) - """ - - return self.random_elements(elements, length=1)[0] - - def random_sample( - self, elements: ElementsType[T] = ("a", "b", "c"), length: Optional[int] = None # type: ignore[assignment] - ) -> Sequence[T]: - """Generate a list of objects randomly sampled from ``elements`` without replacement. - - For information on the ``elements`` and ``length`` arguments, please refer to - :meth:`random_elements() ` which - is used under the hood with the ``unique`` argument explicitly set to ``True``. - - :sample: elements=('a', 'b', 'c', 'd', 'e', 'f') - :sample: elements=('a', 'b', 'c', 'd', 'e', 'f'), length=3 - """ - return self.random_elements(elements, length, unique=True) - - def randomize_nb_elements( - self, - number: int = 10, - le: bool = False, - ge: bool = False, - min: Optional[int] = None, - max: Optional[int] = None, - ) -> int: - """Generate a random integer near ``number`` according to the following rules: - - - If ``le`` is ``False`` (default), allow generation up to 140% of ``number``. - If ``True``, upper bound generation is capped at 100%. - - If ``ge`` is ``False`` (default), allow generation down to 60% of ``number``. - If ``True``, lower bound generation is capped at 100%. - - If a numerical value for ``min`` is provided, generated values less than ``min`` - will be clamped at ``min``. - - If a numerical value for ``max`` is provided, generated values greater than - ``max`` will be clamped at ``max``. - - If both ``le`` and ``ge`` are ``True``, the value of ``number`` will automatically - be returned, regardless of the values supplied for ``min`` and ``max``. - - :sample: number=100 - :sample: number=100, ge=True - :sample: number=100, ge=True, min=120 - :sample: number=100, le=True - :sample: number=100, le=True, max=80 - :sample: number=79, le=True, ge=True, min=80 - """ - if le and ge: - return number - _min = 100 if ge else 60 - _max = 100 if le else 140 - nb = int(number * self.generator.random.randint(_min, _max) / 100) - if min is not None and nb < min: - nb = min - if max is not None and nb > max: - nb = max - return nb - - def numerify(self, text: str = "###") -> str: - """Generate a string with each placeholder in ``text`` replaced according - to the following rules: - - - Number signs ('#') are replaced with a random digit (0 to 9). - - Percent signs ('%') are replaced with a random non-zero digit (1 to 9). - - Dollar signs ('$') are replaced with a random digit above two (2 to 9). - - Exclamation marks ('!') are replaced with a random digit or an empty string. - - At symbols ('@') are replaced with a random non-zero digit or an empty string. - - Under the hood, this method uses :meth:`random_digit() `, - :meth:`random_digit_not_null() `, - :meth:`random_digit_or_empty() `, - and :meth:`random_digit_not_null_or_empty() ` - to generate the random values. - - :sample: text='Intel Core i%-%%##K vs AMD Ryzen % %%##X' - :sample: text='!!! !!@ !@! !@@ @!! @!@ @@! @@@' - """ - text = _re_hash.sub(lambda x: str(self.random_digit()), text) - text = _re_perc.sub(lambda x: str(self.random_digit_not_null()), text) - text = _re_dol.sub(lambda x: str(self.random_digit_above_two()), text) - text = _re_excl.sub(lambda x: str(self.random_digit_or_empty()), text) - text = _re_at.sub(lambda x: str(self.random_digit_not_null_or_empty()), text) - return text - - def lexify(self, text: str = "????", letters: str = string.ascii_letters) -> str: - """Generate a string with each question mark ('?') in ``text`` - replaced with a random character from ``letters``. - - By default, ``letters`` contains all ASCII letters, uppercase and lowercase. - - :sample: text='Random Identifier: ??????????' - :sample: text='Random Identifier: ??????????', letters='ABCDE' - """ - return _re_qm.sub(lambda x: self.random_element(letters), text) - - def bothify(self, text: str = "## ??", letters: str = string.ascii_letters) -> str: - """Generate a string with each placeholder in ``text`` replaced according to the following rules: - - - Number signs ('#') are replaced with a random digit (0 to 9). - - Percent signs ('%') are replaced with a random non-zero digit (1 to 9). - - Dollar signs ('$') are replaced with a random digit above two (2 to 9). - - Exclamation marks ('!') are replaced with a random digit or an empty string. - - At symbols ('@') are replaced with a random non-zero digit or an empty string. - - Question marks ('?') are replaced with a random character from ``letters``. - - By default, ``letters`` contains all ASCII letters, uppercase and lowercase. - - Under the hood, this method uses :meth:`numerify() ` and - and :meth:`lexify() ` to generate random values for number - signs and question marks respectively. - - :sample: letters='ABCDE' - :sample: text='Product Number: ????-########' - :sample: text='Product Number: ????-########', letters='ABCDE' - :sample: text='Order: ##??-$' - """ - return self.lexify(self.numerify(text), letters=letters) - - def hexify(self, text: str = "^^^^", upper: bool = False) -> str: - """Generate a string with each circumflex ('^') in ``text`` - replaced with a random hexadecimal character. - - By default, ``upper`` is set to False. If set to ``True``, output - will be formatted using uppercase hexadecimal characters. - - :sample: text='MAC Address: ^^:^^:^^:^^:^^:^^' - :sample: text='MAC Address: ^^:^^:^^:^^:^^:^^', upper=True - """ - letters = string.hexdigits[:-6] - if upper: - letters = letters.upper() - return _re_cir.sub(lambda x: self.random_element(letters), text) - - -class DynamicProvider(BaseProvider): - def __init__( - self, - provider_name: str, - elements: Optional[List] = None, - generator: Optional[Any] = None, - ): - """ - A faker Provider capable of getting a list of elements to randomly select from, - instead of using the predefined list of elements which exist in the default providers in faker. - - :param provider_name: Name of provider, which would translate into the function name e.g. faker.my_fun(). - :param elements: List of values to randomly select from - :param generator: Generator object. If missing, the default Generator is used. - - :example: - >>>from faker import Faker - >>>from faker.providers import DynamicProvider - - >>>medical_professions_provider = DynamicProvider( - >>> provider_name="medical_profession", - >>> elements=["dr.", "doctor", "nurse", "surgeon", "clerk"], - >>>) - >>>fake = Faker() - >>>fake.add_provider(medical_professions_provider) - - >>>fake.medical_profession() - "dr." - - """ - - if not generator: - generator = Generator() - super().__init__(generator) - if provider_name.startswith("__"): - raise ValueError("Provider name cannot start with __ as it would be ignored by Faker") - - self.provider_name = provider_name - - self.elements = [] - if elements: - self.elements = elements - - setattr(self, provider_name, self.get_random_value) # Add a method for the provider_name value - - def add_element(self, element: str) -> None: - """Add new element.""" - self.elements.append(element) - - def get_random_value(self, use_weighting: bool = True) -> Any: - """Returns a random value for this provider. - - :param use_weighting: boolean option to use weighting. Defaults to True - """ - if not self.elements or len(self.elements) == 0: - raise ValueError("Elements should be a list of values the provider samples from") - - return self.random_elements(self.elements, length=1, use_weighting=use_weighting)[0] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 69ccb85..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/__init__.py deleted file mode 100644 index dd040bf..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/__init__.py +++ /dev/null @@ -1,116 +0,0 @@ -from .. import BaseProvider, ElementsType, date_time - -localized = True - - -class Provider(BaseProvider): - city_suffixes: ElementsType[str] = ["Ville"] - street_suffixes: ElementsType[str] = ["Street"] - city_formats: ElementsType[str] = ("{{first_name}} {{city_suffix}}",) - street_name_formats: ElementsType[str] = ("{{last_name}} {{street_suffix}}",) - street_address_formats: ElementsType[str] = ("{{building_number}} {{street_name}}",) - address_formats: ElementsType[str] = ("{{street_address}} {{postcode}} {{city}}",) - building_number_formats: ElementsType[str] = ("##",) - postcode_formats: ElementsType[str] = ("#####",) - countries: ElementsType[str] = [country.name for country in date_time.Provider.countries] - - ALPHA_2 = "alpha-2" - ALPHA_3 = "alpha-3" - - alpha_2_country_codes: ElementsType[str] = [country.alpha_2_code for country in date_time.Provider.countries] - alpha_3_country_codes: ElementsType[str] = [country.alpha_3_code for country in date_time.Provider.countries] - - def city_suffix(self) -> str: - """ - :example: 'town' - """ - return self.random_element(self.city_suffixes) - - def street_suffix(self) -> str: - """ - :example: 'Avenue' - """ - return self.random_element(self.street_suffixes) - - def building_number(self) -> str: - """ - :example: '791' - """ - return self.numerify(self.random_element(self.building_number_formats)) - - def city(self) -> str: - """ - :example: 'Sashabury' - """ - pattern: str = self.random_element(self.city_formats) - return self.generator.parse(pattern) - - def street_name(self) -> str: - """ - :example: 'Crist Parks' - """ - pattern: str = self.random_element(self.street_name_formats) - return self.generator.parse(pattern) - - def street_address(self) -> str: - """ - :example: '791 Crist Parks' - """ - pattern: str = self.random_element(self.street_address_formats) - return self.generator.parse(pattern) - - def postcode(self) -> str: - """ - :example: 86039-9874 - """ - return self.bothify(self.random_element(self.postcode_formats)).upper() - - def address(self) -> str: - """ - :example: '791 Crist Parks, Sashabury, IL 86039-9874' - """ - pattern: str = self.random_element(self.address_formats) - return self.generator.parse(pattern) - - def country(self) -> str: - """ - :sample: - """ - return self.random_element(self.countries) - - def country_code(self, representation: str = ALPHA_2) -> str: - """ - :sample: - :sample: representation='alpha-2' - :sample: representation='alpha-3' - """ - if representation == self.ALPHA_2: - return self.random_element(self.alpha_2_country_codes) - elif representation == self.ALPHA_3: - return self.random_element(self.alpha_3_country_codes) - else: - raise ValueError("`representation` must be one of `alpha-2` or `alpha-3`.") - - def current_country_code(self) -> str: - """ - :sample: - """ - try: - return self.__lang__.split("_")[1] # type: ignore - except IndexError: - raise AttributeError("Country code cannot be determined from locale") - - def current_country(self) -> str: - """ - :sample: - """ - current_country_code = self.current_country_code() - current_country = [ - country.name for country in date_time.Provider.countries if country.alpha_2_code == current_country_code - ] - if len(current_country) == 1: - return current_country[0] # type: ignore - elif len(current_country) > 1: - raise ValueError(f"Ambiguous country for country code {current_country_code}: {current_country}") - else: - raise ValueError(f"No appropriate country for country code {current_country_code}") diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 9305fbf..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ar_DZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/ar_DZ/__init__.py deleted file mode 100644 index 6da746f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/ar_DZ/__init__.py +++ /dev/null @@ -1,347 +0,0 @@ -from typing import Tuple - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - """Address provider for ar_DZ locale.""" - - # Source: https://ar.wikipedia.org/wiki/ولايات_الجزائر - wilayas: Tuple[str, ...] = ( - "أدرار", - "الشلف", - "الأغواط", - "أم البواقي", - "باتنة", - "بجاية", - "بسكرة", - "بشار", - "البليدة", - "البويرة", - "تمنراست", - "تبسة", - "تلمسان", - "تيارت", - "تيزي وزو", - "الجزائر", - "الجلفة", - "جيجل", - "سطيف", - "سعيدة", - "سكيكدة", - "سيدي بلعباس", - "عنابة", - "قالمة", - "قسنطينة", - "المدية", - "مستغانم", - "المسيلة", - "معسكر", - "ورقلة", - "وهران", - "البيض", - "إليزي", - "برج بوعريريج", - "بومرداس", - "الطارف", - "تندوف", - "تيسمسيلت", - "الوادي", - "خنشلة", - "سوق أهراس", - "تيبازة", - "ميلة", - "عين الدفلى", - "النعامة", - "عين تموشنت", - "غرداية", - "غليزان", - "تيميمون", - "برج باجي مختار", - "أولاد جلال", - "بني عباس", - "عين صالح", - "عين قزام", - "تقرت", - "جانت", - "المغير", - "المنيعة", - ) - - # Source: https://github.com/othmanus/algeria-cities - cities: Tuple[str, ...] = ( - # Wilaya 01 - أدرار - "أدرار", - "رقان", - "أولف", - "تيميمون", - # Wilaya 02 - الشلف - "الشلف", - "تنس", - "بوقادير", - # Wilaya 03 - الأغواط - "الأغواط", - "أفلو", - "عين ماضي", - # Wilaya 04 - أم البواقي - "أم البواقي", - "عين مليلة", - "عين البيضاء", - # Wilaya 05 - باتنة - "باتنة", - "بريكة", - "عين التوتة", - "أريس", - "نقاوس", - # Wilaya 06 - بجاية - "بجاية", - "أقبو", - "خراطة", - "تاكسلانت", - "أميزور", - # Wilaya 07 - بسكرة - "بسكرة", - "طولقة", - "سيدي عقبة", - "زريبة الوادي", - # Wilaya 08 - بشار - "بشار", - "تاغيت", - "القنادسة", - # Wilaya 09 - البليدة - "البليدة", - "بوفاريك", - "الأربعاء", - "بوعينان", - # Wilaya 10 - البويرة - "البويرة", - "سور الغزلان", - "عين بسام", - # Wilaya 11 - تمنراست - "تمنراست", - "أبلسة", - # Wilaya 12 - تبسة - "تبسة", - "بئر العاتر", - "الونزة", - # Wilaya 13 - تلمسان - "تلمسان", - "مغنية", - "الغزوات", - "ندرومة", - "مرسى بن مهيدي", - # Wilaya 14 - تيارت - "تيارت", - "السوقر", - "فرندة", - "تاقدمت", - # Wilaya 15 - تيزي وزو - "تيزي وزو", - "ذراع بن خدة", - "أزفون", - "بوغني", - "تيقزيرت", - # Wilaya 16 - الجزائر - "الجزائر الوسطى", - "باب الوادي", - "القصبة", - "سيدي امحمد", - "حسين داي", - "القبة", - "الحراش", - "الرويبة", - "زرالدة", - "بئر مراد رايس", - "بوزريعة", - "الشراقة", - "الدرارية", - "باب الزوار", - "برج الكيفان", - "الدار البيضاء", - "عين طاية", - # Wilaya 17 - الجلفة - "الجلفة", - "مسعد", - "عين وسارة", - "حاسي بحبح", - # Wilaya 18 - جيجل - "جيجل", - "الطاهير", - "الميلية", - "زيامة منصورية", - # Wilaya 19 - سطيف - "سطيف", - "العلمة", - "جميلة", - "عين أرنات", - "قجال", - # Wilaya 20 - سعيدة - "سعيدة", - "عين الحجر", - # Wilaya 21 - سكيكدة - "سكيكدة", - "عزابة", - "الحروش", - "القل", - # Wilaya 22 - سيدي بلعباس - "سيدي بلعباس", - "عين البرد", - "مرحوم", - "تلموني", - # Wilaya 23 - عنابة - "عنابة", - "البوني", - "عين الباردة", - "سيدي عمار", - # Wilaya 24 - قالمة - "قالمة", - "بومهرة أحمد", - "حمام النبايل", - # Wilaya 25 - قسنطينة - "قسنطينة", - "الخروب", - "ديدوش مراد", - "زيغود يوسف", - "عين عبيد", - # Wilaya 26 - المدية - "المدية", - "قصر البخاري", - "البرواقية", - "بوغار", - # Wilaya 27 - مستغانم - "مستغانم", - "سيدي علي", - "عين تادلس", - "مزغران", - # Wilaya 28 - المسيلة - "المسيلة", - "بوسعادة", - "سيدي عيسى", - "عين الملح", - # Wilaya 29 - معسكر - "معسكر", - "تيغنيف", - "بوحنيفية", - "سيق", - # Wilaya 30 - ورقلة - "ورقلة", - "حاسي مسعود", - "عين البيضاء", - # Wilaya 31 - وهران - "وهران", - "أرزيو", - "عين الترك", - "بئر الجير", - "مرسى الحجاج", - "السانية", - # Wilaya 32 - البيض - "البيض", - "بريزينة", - # Wilaya 33 - إليزي - "إيليزي", - "إن أمناس", - # Wilaya 34 - برج بوعريريج - "برج بوعريرج", - "رأس الوادي", - "ثنية النصر", - # Wilaya 35 - بومرداس - "بومرداس", - "خميس الخشنة", - "برج منايل", - "دلس", - # Wilaya 36 - الطارف - "الطارف", - "القالة", - "بن مهيدي", - # Wilaya 37 - تندوف - "تندوف", - # Wilaya 38 - تيسمسيلت - "تيسمسيلت", - "خميستي", - # Wilaya 39 - الوادي - "الوادي", - "قمار", - "حاسي خليفة", - "الرقيبة", - # Wilaya 40 - خنشلة - "خنشلة", - "بابار", - # Wilaya 41 - سوق أهراس - "سوق أهراس", - "مداوروش", - "سدراتة", - # Wilaya 42 - تيبازة - "تيبازة", - "شرشال", - "بواسماعيل", - "القليعة", - # Wilaya 43 - ميلة - "ميلة", - "فرجيوة", - "شلغوم العيد", - # Wilaya 44 - عين الدفلى - "عين الدفلى", - "خميس مليانة", - "العطاف", - "مليانة", - # Wilaya 45 - النعامة - "النعامة", - "المشرية", - "عين الصفراء", - # Wilaya 46 - عين تموشنت - "عين تموشنت", - "بني صاف", - "حمام بوحجر", - # Wilaya 47 - غرداية - "غرداية", - "القرارة", - "متليلي", - "العطف", - # Wilaya 48 - غليزان - "غليزان", - "مازونة", - "عمي موسى", - # New wilayas (49–58) - "تيميمون", - "برج باجي مختار", - "أولاد جلال", - "بني عباس", - "عين صالح", - "عين قزام", - "تقرت", - "جانت", - "المغير", - "المنيعة", - ) - - street_prefixes: Tuple[str, ...] = ("شارع", "نهج", "طريق", "حي", "زنقة", "دوار", "بلدية") - - building_number_formats: Tuple[str, ...] = ("#", "##", "###") - - # Source: https://github.com/othmanus/algeria-cities - postcode_formats: Tuple[str, ...] = tuple(f"{i:02d}###" for i in range(1, 49)) - - street_name_formats: Tuple[str, ...] = ( - "{{street_prefix}} {{last_name}}", - "{{street_prefix}} {{first_name}} {{last_name}}", - ) - - street_address_formats: Tuple[str, ...] = ("{{building_number}} {{street_name}}",) - - address_formats: Tuple[str, ...] = ( - "{{street_address}} {{city}}", - "{{street_address}} - {{city}}", - "{{street_address}} {{city}} {{wilaya}}", - "{{street_address}} {{city}} - {{wilaya}}", - ) - - def street_prefix(self) -> str: - return self.random_element(self.street_prefixes) - - def city(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.wilayas) - - wilaya = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ar_DZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/ar_DZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 42e2001..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/ar_DZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/az_AZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/az_AZ/__init__.py deleted file mode 100644 index ec2e4de..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/az_AZ/__init__.py +++ /dev/null @@ -1,691 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{first_name}}",) - city_suffixes = ("şəhəri", "ş.") - street_suffixes = ("küçəsi", "küç.", "prospekti", "pr.") - village_suffixes = ("kəndi", "k.") - district_suffixes = ("rayonu", "ray.") - settlement_suffixes = ("qəsəbəsi", "qəs.") - - building_number_formats = ("#",) - house_number_formats = ("#", "##", "###") - address_formats = ( - "{{city}} {{city_suffix }}, {{street_name}} {{street_suffix}}, b. {{building_number}}, m. {{house_number}}", - "{{district}} {{district_suffix }}, {{street_name}} {{street_suffix}}, b. {{building_number}}," - " m. {{house_number}}", - "{{district}} {{district_suffix }}, {{village}} {{village_suffix}}, {{street_name}} {{street_suffix}}", - "{{district}} {{district_suffix }}, {{settlement}} {{settlement_suffix}}, {{street_name}} {{street_suffix}}," - " b. {{building_number}}, m. {{house_number}}", - ) - street_name_formats = ("{{street}}",) - cities = [ - "Bakı", - "Gəncə", - "Naxçıvan", - "Xankəndi", - "Lənkəran", - "Mingəçevir", - "Naftalan", - "Sumqayıt", - "Şəki", - "Şirvan", - "Yevlax", - ] - countries = [ - "Abxaziya", - "Akrotiri və Dekeliya", - "Aland adaları", - "Albaniya", - "Almaniya", - "Amerika Samoası", - "Andorra Knyazlığı", - "Angilya", - "Anqola", - "Antiqua və Barbuda", - "Argentina Respublikası", - "Aruba", - "Avstraliya", - "Avstriya", - "Azərbaycan", - "Baham adaları", - "Banqladeş", - "Barbados", - "Belçika", - "Beliz", - "Belarus", - "Benin", - "Bermud adaları", - "Birləşmiş Ərəb Əmirlikləri", - "ABŞ", - "Boliviya", - "Bolqarıstan", - "Bosniya və Herseqovina", - "Botsvana", - "Böyük Britaniya", - "Braziliya", - "Bruney", - "Burkina", - "Burundi", - "Butan", - "Bəhreyn", - "Cersi", - "Cəbəllütariq", - "Cənubi Afrika Respublikası", - "Cənubi Sudan", - "Cənubi Koreya", - "Cibuti", - "Çad", - "Çexiya", - "Monteneqro", - "Çili", - "Çin", - "Danimarka", - "Dominika", - "Dominikan", - "Efiopiya", - "Ekvador", - "Ekvatorial", - "Eritreya", - "Ermənistan", - "Estoniya", - "Əfqanıstan", - "Əlcəzair", - "Farer adaları", - "Fələstin", - "Fici", - "Fil Dişi Sahili", - "Filippin", - "Finlandiya", - "Folklend adaları", - "Fransa", - "Fransa Polineziyası", - "Gernsi", - "Gürcüstan", - "Haiti", - "Hindistan", - "Honduras", - "Honkonq", - "Xorvatiya", - "İndoneziya", - "İordaniya", - "İraq", - "İran", - "İrlandiya", - "İslandiya", - "İspaniya", - "İsrail", - "İsveç", - "İsveçrə", - "İtaliya", - "Kabo-Verde", - "Kamboca", - "Kamerun", - "Kanada", - "Kayman adaları", - "Keniya", - "Kipr", - "Kiribati", - "Kokos adaları", - "Kolumbiya", - "Komor adaları", - "Konqo Respublikası", - "Konqo Demokratik Respublikası", - "Kosovo", - "Kosta-Rika", - "Kuba", - "Kuk adaları", - "Küveyt", - "Qabon", - "Qambiya", - "Qana", - "Qətər", - "Qayana", - "Qazaxıstan", - "Qərbi Saxara", - "Qırğızıstan", - "Qrenada", - "Qrenlandiya", - "Quam", - "Qvatemala", - "Qvineya", - "Qvineya-Bisau", - "Laos", - "Latviya", - "Lesoto", - "Liberiya", - "Litva", - "Livan", - "Liviya", - "Lixtenşteyn", - "Lüksemburq", - "Macarıstan", - "Madaqaskar", - "Makao", - "Şimali Makedoniya", - "Malavi", - "Malayziya", - "Maldiv adaları", - "Mali", - "Malta", - "Marşall adaları", - "Mavriki", - "Mavritaniya", - "Mayotta", - "Meksika", - "Men adası", - "Mərakeş", - "Mərkəzi Afrika Respublikası", - "Mikroneziya", - "Milad adası", - "Misir", - "Myanma", - "Moldova", - "Monako", - "Monqolustan", - "Montserrat", - "Mozambik", - "Müqəddəs Yelena adası", - "Namibiya", - "Nauru", - "Nepal", - "Niderland", - "Niger", - "Nigeriya", - "Nikaraqua", - "Norveç", - "Oman", - "Özbəkistan", - "Pakistan", - "Palau", - "Panama", - "Papua", - "Paraqvay", - "Peru", - "Pitkern adaları", - "Polşa", - "Portuqaliya", - "Puerto-Riko", - "Ruanda", - "Rumıniya", - "Rusiya", - "Salvador", - "Samoa", - "San-Marino", - "San-Tome və Prinsipi", - "Seneqal", - "Sen-Bartelemi", - "Sent-Kits və Nevis", - "Sent-Lüsiya", - "Sen-Marten", - "Sen-Pyer və Mikelon", - "Sent-Vinsent və Qrenadin", - "Serbiya", - "Seyşel adaları", - "Səudiyyə Ərəbistanı", - "Sinqapur", - "Slovakiya", - "Sloveniya", - "Solomon adaları", - "Somali", - "Somalilend", - "Sudan", - "Surinam", - "Suriya", - "Esvatini", - "Syerra-Leone", - "Şərqi Timor", - "Şimali Kipr Türk Respublikası", - "Şimali Koreya", - "Şimali Marian adaları", - "Şri-Lanka", - "Tacikistan", - "Tanzaniya", - "Tailand", - "Tonqa", - "Toqo", - "Trinidad və Tobaqo", - "Tunis", - "Tuvalu", - "Türkiyə", - "Türkmənistan", - "Ukrayna", - "Uqanda", - "Uruqvay", - "Vanuatu", - "Vatikan", - "Venesuela", - "Vyetnam", - "Yamayka", - "Yaponiya", - "Yeni Kaledoniya", - "Yeni Zelandiya", - "Yəmən", - "Yunanıstan", - "Zambiya", - "Zimbabve", - ] - districts = [ - "Abşeron", - "Ağcabədi", - "Ağdam", - "Ağdaş", - "Ağstafa", - "Ağsu", - "Astara", - "Babək", - "Balakən", - "Beyləqan", - "Bərdə", - "Biləsuvar", - "Cəbrayıl", - "Cəlilabad", - "Culfa", - "Daşkəsən", - "Füzuli", - "Gədəbəy", - "Goranboy", - "Göyçay", - "Göygöl", - "Hacıqabul", - "Xaçmaz", - "Xızı", - "Xocalı", - "Xocavənd", - "İmişli", - "İsmayıllı", - "Kəlbəcər", - "Kəngərli", - "Kürdəmir", - "Qax", - "Qazax", - "Qəbələ", - "Qobustan", - "Quba", - "Qubadlı", - "Qusar", - "Laçın", - "Lerik", - "Lənkəran", - "Masallı", - "Neftçala", - "Oğuz", - "Ordubad*", - "Saatlı", - "Sabirabad", - "Salyan", - "Samux", - "Sədərək", - "Siyəzən", - "Şabran", - "Şahbuz", - "Şamaxı", - "Şəki", - "Şəmkir", - "Şərur", - "Şuşa", - "Tərtər", - "Tovuz", - "Ucar", - "Yardımlı", - "Yevlax", - "Zaqatala", - "Zəngilan", - "Zərdab", - ] - settlements = [ - "Ləki", - "Nehrəm", - "Soyuqbulaq", - "Şəkərli", - "Cəhri", - "Qarayazi", - "Həzi asalanov", - "Poylu", - "Ceyrançöl", - "Saloğlu", - "Vurğun", - "Qəhramanli", - "Yuxari aran", - "Mayak", - "Milabad", - "Örənqala", - "Baharabad", - "Günəş", - "Orconikidze", - "Digah", - "Güzdək", - "Hökməli", - "Qobu", - "Mehdiabad", - "Saray", - "Taxtakörpü", - "Hindarx", - "Şərq", - "Sarisu", - "Mil", - "Türklər", - "Bahar", - "Babək", - "Keşlə", - "Qabaqçöl", - "Xindiristan", - "Bənövşələr", - "Birinci alibəyli", - "Birinci baharli", - "Birinci dördyol", - "Birinci quzanli", - "İkinci alibəyli", - "İkinci baharli", - "İkinci dördyol", - "İmamqulubəyli", - "Qasimbəyli", - "Səfərli", - "Təzəkənd", - "Ergi", - "Yeni ergi", - "Aşaği qəsil kəndi", - "Orta qəsil kəndi", - "Türyançay", - "Yuxari qəsil kəndi", - "Birinci zobucuq", - "İkinci zobucuq", - "Üçüncü zobucuq", - "Dördüncü zobucuq", - "Beşinci zobucuq", - "Fin", - "Horadiz", - "Qayidiş 2", - "Hacikənd", - "Yuxari ağcakənd", - "Qizilhacili", - "Goran", - "Aşaği ağcakənd", - "Qazanbulaq", - "Kürəkçay", - "Ayaq qərvənd", - "Quzanli", - "Navahi", - "Pirsaat", - "Muğan", - "Padar", - "Navahi", - "Vətəgə", - "Bəhrəmtəpə", - "Lahic", - "Basqal", - "Şəfəq", - "Yeni mil", - "Xocahəsən", - "Sulutəpə", - "Biləcəri", - "Binəqədi", - "28 may", - "Rəsulzadə", - "Qumlaq", - "Xələfli", - "Xudafərin", - "Mahmudlu", - "Novoqolovka", - "Alunitdağ", - "Quşçu körpüsü", - "Daşkəsən", - "Quşçu", - "Yuxari daşkəsən", - "1 nömrəli qayidiş", - "2 nömrəli qayidiş", - ] - streets = [ - "A.AĞAYEV", - "A.M.CÜMƏ", - "TƏBRİZ", - "XALİQ ABBASOV", - "İSLAM ABIŞOV", - "HEYDƏR ƏLİYEV", - "XƏTAİ", - "GÖL ƏTRAFI", - "Z.XƏLİL", - "2-Cİ SÜLH", - "Q.PİRİMOV", - "ASİF MƏMMƏDOV", - "R.HACIYEV", - "FƏXRƏDDİN ƏSƏDOV", - "K.MARKS", - "OKTAY KƏRİMOV", - "Z.KAZIMZADƏ", - "HƏSƏNOĞLU", - "KAVEROÇKİN", - "P.ÇAYKOVSKİ", - "HÜSEYN ARİF", - "HACI MURAD", - "BAKI-BATUMİ", - "NEMƏT QULİYEV", - "R.AXUNDOV", - "AKAD.H.ƏLİYEV", - "RƏHİM ŞIXƏLİYEV", - "YUSİFZADƏ", - "E.QOCAYEV", - "TARZƏN H.MƏMMƏDOV", - "İ.HİDAYƏTZADƏ", - "T.ƏLİYEV", - "MƏMMƏD ARAZ", - "V.PLOTNİKOV", - "Ə.ORUCƏLİYEV", - "Z.BÜNYADOV", - "İ.DADAŞOV", - "ƏLƏSGƏR QAYIBOV", - "M.ARİF", - "M.QASQAY", - "Ə.ƏBDÜLRƏHİMOV", - "İZZƏT HƏMİDOV", - "AZADLIQ", - "ARİF HEYDƏROV", - "N.SÜLEYMANOV", - "ŞAHİN MUSTAFAYEV", - "Ə.VAHİD", - "Ü.BÜNYADZADƏ", - "NAZİM HACIYEV", - "24-CÜ KORPÜ", - "1-Cİ MƏDƏN", - "Y.HÜSEYNOV", - "22-Cİ DAĞLIQ", - "SÜD FERMASI", - "ÇAPAYEV", - "E. NƏCƏFOV", - "FAİQ RÜSTƏMOV", - "28 MAY", - "ZABİTLƏR EVİ", - "S.S. AXUNDOV", - "GƏNCLƏR DOSTLUĞU", - "H.SULTANOV", - "ƏHMƏD QASIMOV", - "XURŞUD AĞAYEV", - "NATƏVAN", - "YENİ MASSİV", - "MƏLİK ASLANOV KÜÇƏSİ,", - "VİDADİ", - "8 MART", - "İ.HACIYEV", - "Y. HƏSƏNOV", - ] - villages = [ - "Kələki", - "Binələr", - "Davudlu", - "Birinci aral", - "İkinci aral", - "Cardam", - "Qaradeyin", - "Qarağan şixlar", - "Qarağan sədi", - "Qəribli", - "Qolqəti", - "Mürsəl", - "Şordəhnə", - "Tofiqi", - "Yenicə", - "Ərəbocaği", - "Hapitli", - "Ovçulu", - "Şəkili", - "Yuxari ağcayazi", - "Aşaği ağcayazi", - "Yuxari ləki", - "Düzqişlaq", - "Kolayir", - "Koçvəlili", - "Xətai", - "Yenigün", - "Qaçaq kərəm", - "Poylu", - "Tatli", - "Yaradullu", - "Xilxina", - "Mollacəfərli", - "Ağgöl", - "Aşaği göycəli", - "Aşaği kəsəmən", - "Böyük kəsik", - "Dağ kəsəmən", - "Eynalli", - "Göycəli", - "Həsənsu", - "Kolxələfli", - "Koçəsgər", - "Köhnəqişlaq", - "Qarahəsənli", - "Soyuqbulaqlar", - "Qiraq kəsəmən", - "Didivar", - "Muğanli", - "Pirili", - "Sadiqli", - "Uzunoba", - "Qaraməmmədli", - "Navahi", - "Ülgüc", - "Ərəbmehdibəy", - "Dədəli", - "Qasimbəyli", - "Ərəbsarvan", - "Haciqədirli", - "Göydəlləkli", - "Ərəbuşaği", - "Ağalarbəyli", - "Maşadqanli", - "Aratli curuğlu", - "Keşdiməz", - "Bozavand", - "Ağarx", - "Qarabağli", - "Xanbulaq", - "Kəndaxan", - "Yenilik", - "Kövlüc", - "Elabad", - "Yenikənd", - "Hingar", - "Girdə", - "Gursulu", - "Qaraqoyunlu", - "Musabəyli", - "İlxiçi", - "Hacisəmədli", - "Qəşəd", - "Kəndoba", - "Cəfərli", - "Haciuşaği", - "Cəlayir", - "Abasxanli", - "Kalva", - "Suraxani", - "Dilman", - "Haciman", - "Xatman", - "Növcü", - "Axundlu", - "Məlikçobanli", - ] - - def house_number(self) -> str: - """ - :example: 'm. 49' - """ - return self.numerify(self.random_element(self.house_number_formats)) - - def city(self) -> str: - """ - :example: 'Xankəndi' - """ - return self.random_element(self.cities) - - def city_suffix(self) -> str: - """ - :example: 'ş.' - """ - return self.random_element(self.city_suffixes) - - def street(self) -> str: - """ - :example: 'A.AĞAYEV' - """ - return self.random_element(self.streets) - - def street_suffix(self) -> str: - """ - :example: 'küç.' - """ - return self.random_element(self.street_suffixes) - - def village(self) -> str: - """ - :example: 'Didivar' - """ - return self.random_element(self.villages) - - def village_suffix(self) -> str: - """ - :example: 'k.' - """ - return self.random_element(self.village_suffixes) - - def district(self) -> str: - """ - :example: 'Babək' - """ - return self.random_element(self.districts) - - def district_suffix(self) -> str: - """ - :example: 'r.' - """ - return self.random_element(self.district_suffixes) - - def settlement(self) -> str: - """ - :example: 'Horadiz' - """ - return self.random_element(self.settlements) - - def settlement_suffix(self) -> str: - """ - :example: 'qəs.' - """ - return self.random_element(self.settlement_suffixes) - - def administrative_unit(self) -> str: - """ - :example: 'Xankəndi' - """ - return self.random_element(self.districts + self.cities) - - def postcode(self) -> str: - """ - :example: 'AZ1027' - """ - index = self.generator.random.randint(900, 6600) - return "AZ%04d" % index if index > 999 else "AZ0%03d" % index - - def postalcode(self) -> str: - return self.postcode() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/az_AZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/az_AZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0c18ae6..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/az_AZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/bn_BD/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/bn_BD/__init__.py deleted file mode 100644 index 0aa5191..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/bn_BD/__init__.py +++ /dev/null @@ -1,547 +0,0 @@ -from faker.providers.person.bn_BD import translate_to_bengali_digits - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - area_names = ( - "আলি", - "আলম", - "অভয়", - "আনোয়ার", - "ব্রাহ্মণ", - "বটিয়া", - "বাঘার", - "বেগম", - "বিজয়", - "বন্দর", - "বালিয়া", - "বাজিত", - "বাকের", - "বোরহান", - "বকশী", - "বদর", - "বিরাম", - "বিশ্বনাথ", - "চৌদ্দ", - "চিতল", - "দাউদ", - "দৌলত", - "দেব", - "দেবী", - "ইসলাম", - "ফুল", - "ফকির", - "ফটিক", - "গোপাল", - "গৌর", - "হাজী", - "হরিরাম", - "হোসেন", - "হাকিম", - "জীবন", - "জগন্নাথ", - "কুমার", - "কালী", - "কেশব", - "কুতুব", - "কবির", - "কালিয়া", - "করিম", - "কাজী", - "কমল", - "লাল", - "মুরাদ", - "মনোহর", - "মির", - "মহেশ", - "মোড়ল", - "মোল্লা", - "মোহাম্মদ", - "মনিরাম", - "মানিক", - "মির্জা", - "মধু", - "মোহন", - "মহাদেব", - "মাধব", - "নাসির", - "নড়িয়া", - "নাজির", - "নালিতা", - "নন্দী", - "ওসমানী", - "পাইক", - "পলাশ", - "পার্বতী", - "রাম", - "রায়", - "রানী", - "সোনা", - "শরণ", - "শ্যাম", - "সুবর্ণ", - "সিরাজ", - "সখি", - "সদর", - "সুন্দর", - "সৈয়দ", - "শাজাহান", - "শান্তি", - "শিব", - "তের", - "তারা", - "উজির", - ) - - building_names = ( - "বাড়ী নং", - "বিল্ডিং নং", - "বাসা নং", - "হোল্ডিং নং", - ) - - building_number_formats = ("%", "%#", "%##") - - city_prefixes = ("উত্তর", "পূর্ব", "পশ্চিম", "দক্ষিণ", "মধ্য", "নতুন", "পুরাতন") - - city_suffixes = ( - "বাজার", - "বাড়ি", - "চর", - "দিয়া", - "ডাঙ্গা", - "গঞ্জ", - "গ্রাম", - "গাঁও", - "গাঁ", - "গড়", - "হাট", - "হার", - "খালি", - "মাটি", - "নগর", - "পুর", - "তলা", - ) - - cities = ( - "বরগুনা", - "বরিশাল", - "ভোলা", - "বান্দরবান", - "ব্রাহ্মণবাড়িয়া", - "বাগেরহাট", - "বগুড়া", - "চাঁদপুর", - "চট্টগ্রাম", - "কুমিল্লা", - "কক্সবাজার", - "চুয়াডাঙ্গা", - "ঢাকা", - "দিনাজপুর", - "ফরিদপুর", - "ফেনী", - "গাজীপুর", - "গোপালগঞ্জ", - "গাইবান্ধা", - "হবিগঞ্জ", - "ঝালকাঠি", - "যশোর", - "ঝিনাইদহ", - "জামালপুর", - "জয়পুরহাট", - "খাগড়াছড়ি", - "কিশোরগঞ্জ", - "খুলনা", - "কুষ্টিয়া", - "কুড়িগ্রাম", - "লক্ষ্মীপুর", - "লালমনিরহাট", - "মাদারীপুর", - "মানিকগঞ্জ", - "মুন্সীগঞ্জ", - "মাগুরা", - "মেহেরপুর", - "ময়মনসিংহ", - "মৌলভীবাজার", - "নোয়াখালী", - "নারায়ণগঞ্জ", - "নরসিংদী", - "নড়াইল", - "নেত্রকোণা", - "নওগাঁ", - "নাটোর", - "চাঁপাইনবাবগঞ্জ", - "নীলফামারী", - "পটুয়াখালী", - "পিরোজপুর", - "পাবনা", - "পঞ্চগড়", - "রাঙ্গামাটি", - "রাজবাড়ী", - "রাজশাহী", - "রংপুর", - "শরীয়তপুর", - "সাতক্ষীরা", - "শেরপুর", - "সিরাজগঞ্জ", - "সুনামগঞ্জ", - "সিলেট", - "টাঙ্গাইল", - "ঠাকুরগাঁও", - ) - - countries = ( - "আফগানিস্তান", - "আলবেনিয়া", - "আলজেরিয়া", - "আমেরিকান সামোয়া", - "অ্যান্ডোরা", - "অ্যাঙ্গোলা", - "অ্যাঙ্গুইলা", - "অ্যান্টার্কটিকা", - "অ্যান্টিগুয়া ও বার্বুডা", - "আর্জেন্টিনা", - "আর্মেনিয়া", - "আরুবা", - "অস্ট্রেলিয়া", - "অস্ট্রিয়া", - "আজারবাইজান", - "বাহামাস", - "বাহরাইন", - "বাংলাদেশ", - "বার্বাডোস", - "বেলারুশ", - "বেলজিয়াম", - "বেলিজ", - "বেনিন", - "বারমুডা", - "ভুটান", - "বলিভিয়া", - "বসনিয়া-হার্জেগোভিনা", - "বতসোয়ানা", - "বাউবে দ্বীপ", - "ব্রাজিল", - "ব্রিটিশ ভারত মহাসাগরীয় অঞ্চল", - "ব্রিটিশ ভার্জিন দ্বীপপুঞ্জ", - "ব্রুনাই", - "বুলগেরিয়া", - "বুর্কিনা ফাসো", - "বুরুন্ডি", - "কম্বোডিয়া", - "ক্যামেরুন", - "কানাডা", - "কেপ ভার্দে", - "কেম্যান দ্বীপপুঞ্জ", - "মধ্য আফ্রিকান প্রজাতন্ত্র", - "চাদ", - "চিলি", - "চীন", - "ক্রিস্টমাস দ্বীপ", - "কোকোস দ্বীপপুঞ্জ", - "কলাম্বিয়া", - "কোমোরোস", - "কঙ্গো প্রজাতন্ত্র", - "কুক দ্বীপপুঞ্জ", - "কোস্টারিকা", - "আইভরি কোট", - "ক্রোয়েশিয়া", - "কিউবা", - "সাইপ্রাস প্রজাতন্ত্র", - "চেক প্রজাতন্ত্র", - "ডেনমার্ক", - "জিবুতি প্রজাতন্ত্র", - "ডোমিনিকা", - "ডোমিনিকান প্রজাতন্ত্র", - "ইকুয়েডর", - "মিশর", - "এল সালভাদর", - "নিরক্ষীয় গিনি", - "ইরিত্রিয়া", - "এস্তোনিয়া", - "ইথিওপিয়া", - "ফারো দ্বীপপুঞ্জ", - "ফকল্যান্ড দ্বীপপুঞ্জ", - "ফিজি প্রজাতন্ত্র", - "ফিনল্যান্ড", - "ফ্রান্স", - "একটি দেশের নাম", - "ফরাসি পলিনেশিয়া", - "ফরাসি সুদূর দক্ষিণ দ্বীপপুঞ্জ", - "গ্যাবন", - "গাম্বিয়া", - "জর্জিয়া", - "জার্মানি", - "ঘানা", - "জিব্রাল্টার", - "গ্রীস", - "গ্রিনল্যান্ড", - "গ্রেনাডা", - "গুয়াডেলুপ", - "গুয়াম", - "গুয়াতেমালা", - "গার্নসি", - "গিনি", - "গিনি-বিসাউ", - "গিয়ানা", - "হাইতি", - "হার্ড আইল্যান্ড এবং ম্যাকডোনাল্ড দ্বীপপুঞ্জ", - "ভ্যাটিকান সিটি", - "হন্ডুরাস", - "হংকং", - "হাঙ্গেরি", - "আইসল্যান্ড", - "ভারত", - "ইন্দোনেশিয়া", - "ইরান", - "ইরাক", - "আপনি উত্তর দিবেন না", - "আইল অফ ম্যান", - "ইসরায়েল", - "ইতালি", - "জ্যামাইকা", - "জাপান", - "জার্সি", - "জর্ডান", - "কাজাখস্তান", - "কেনিয়া", - "কিরিবাতি", - "কোরিয়া", - "কোরিয়া", - "কুয়েত", - "কিরগিজস্তান প্রজাতন্ত্র", - "পিপলস ডেমোক্রেটিক রিপাবলিক অফ লাওস", - "লাটভিয়া", - "লেবানন", - "লেসোথো", - "লাইবেরিয়া", - "লিবিয়া", - "লিচেনস্টাইন", - "লিথুয়ানিয়া", - "লাক্সেমবার্গ", - "ম্যাকাও", - "উত্তর মেসিডোনিয়া প্রজাতন্ত্র", - "মাদাগাস্কার", - "মালাউই", - "মালয়েশিয়া", - "মালদ্বীপ", - "মালি", - "মাল্টা প্রজাতন্ত্র", - "মার্শাল দ্বীপপুঞ্জ", - "মার্টিনিক", - "ইসলামী প্রজাতন্ত্র মৌরিতানিয়া", - "মরিশাস", - "মায়োট", - "মেক্সিকো", - "মাইক্রোনেশিয়ার ফেডারেটেড স্টেটস", - "মোল্দোভা প্রজাতন্ত্র", - "মোনাকোর রাজত্ব", - "মঙ্গোলিয়া", - "মন্টিনিগ্রো প্রজাতন্ত্র", - "মন্টসেরাট", - "মরক্কো", - "মোজাম্বিক", - "মিয়ানমার", - "নামিবিয়া", - "নাউরু", - "নেপাল", - "নেদারল্যান্ডস এন্টিলস", - "নেদারল্যান্ডস", - "নতুন ক্যালেডোনিয়া", - "নিউজিল্যান্ড", - "নিকারাগুয়া", - "নাইজার", - "নাইজেরিয়া", - "সুন্দর", - "নরফোক দ্বীপ", - "উত্তর মারিয়ানা দ্বীপপুঞ্জ", - "নরওয়ে", - "ওমান", - "পাকিস্তান", - "পালাউ", - "ফিলিস্তিন অঞ্চল", - "পানামা", - "পাপুয়া নিউ গিনি", - "প্যারাগুয়ে", - "পেরু", - "ফিলিপাইন", - "পিটকের্ন দ্বীপপুঞ্জ", - "পোল্যান্ড", - "পর্তুগাল", - "পুয়ের্তো রিকো", - "কাতার", - "পুনর্মিলন", - "রোমানিয়া", - "রাশিয়া", - "রুয়ান্ডা", - "সেন্ট বার্থেলেমি", - "সেন্ট হেলেনা", - "সেন্ট কিটস ও নেভিস", - "সেন্ট লুসিয়া", - "সেন্ট মার্টিন", - "সেন্ট পিয়ের এবং মিকেলন", - "সেন্ট ভিনসেন্ট ও গ্রেনাডাইন দ্বীপপুঞ্জ", - "সামোয়া", - "সান মারিনো", - "স্যান্টোম প্রিন্সিপ", - "সৌদি আরব", - "সেনেগাল", - "সার্বিয়া", - "সেশেলস", - "সিয়েরা লিওন", - "সিঙ্গাপুর", - "স্লোভাকিয়া", - "স্লোভেনিয়া", - "সলোমান দ্বীপপুঞ্জ", - "সোমালিয়া", - "দক্ষিণ আফ্রিকা প্রজাতন্ত্র", - "দক্ষিণ জর্জিয়া এবং দক্ষিণ স্যান্ডউইচ দ্বীপপুঞ্জ", - "স্পেন", - "শ্রীলংকা", - "সুদান", - "সুরিনাম", - "স্বালবার্ড এবং জানমায়েন দ্বীপপুঞ্জ", - "সোয়াজিল্যান্ডের রাজ্য", - "সুইডেন", - "সুইজারল্যান্ড", - "সিরিয়া", - "তাইওয়ান", - "তাজিকিস্তান প্রজাতন্ত্র", - "তানজানিয়া", - "থাইল্যান্ড", - "পূর্ব তিমুর", - "যাও", - "টোকেলাউ", - "টোঙ্গা", - "ত্রিনিদাদ ও টোবাগো প্রজাতন্ত্র", - "তিউনিসিয়া", - "তুরস্ক", - "তুর্কমেনিস্তান", - "টার্কস্ ও কেইকোস দ্বীপপুঞ্জ", - "টুভালু", - "উগান্ডা", - "ইউক্রেন", - "সংযুক্ত আরব আমিরাত", - "ইংল্যান্ড", - "মার্কিন যুক্তরাষ্ট্র", - "ইউএস মাইনর আউটলি আইল্যান্ড", - "আমেরিকান ভার্জিন আইল্যান্ডস", - "উরুগুয়ে", - "উজবেকিস্তান", - "ভানুয়াতু", - "ভেনিজুয়েলা", - "ভিয়েতনাম", - "ওয়ালিস এবং ফুটুনা", - "পশ্চিম সাহারা", - "ইয়েমেন", - "জাম্বিয়া", - "জিম্বাবুয়ে", - ) - - secondary_address_formats = ( - "ফ্ল্যাট %", - "ফ্ল্যাট %#", - "ষ্টুডিও %", - "ষ্টুডিও %#", - "অ্যাপার্টমেন্ট %", - "অ্যাপার্টমেন্ট %#", - ) - - street_suffixes = ( - "এভিনিউ", - "সেন্টার", - "চত্বর", - "গলি", - "ঘাট", - "কর্নার", - "লেন", - "মহাসড়ক", - "মহল্লা", - "মোড়", - "পাড়া", - "পার্ক", - "প্লাজা", - "রাস্তা", - "রোড", - "সড়ক", - "স্টেশন", - "স্ট্যান্ড", - ) - - postcode_formats = ("%###",) - street_name_formats = ( - "{{area_name}}{{street_suffix}}", - "{{city_prefix}} {{area_name}}{{street_suffix}}", - "{{city_prefix}} {{area_name}}{{city_suffix}}", - "{{area_name}}{{city_suffix}}", - "{{area_name}}{{city_suffix}} {{street_suffix}}", - "{{city_prefix}} {{area_name}}{{city_suffix}} {{street_suffix}}", - ) - street_address_formats = ( - "{{building_name}} {{building_number}}, {{street_name}}", - "{{secondary_address}}, {{building_name}} {{building_number}}, {{street_name}}", - ) - town_formats = ("{{area_name}}{{city_suffix}}",) - address_formats = ("{{street_address}}, {{town}}, {{city}}, {{postcode}}",) - - def administrative_unit(self) -> str: - """ - :example: 'ঢাকা' - """ - return self.random_element(self.cities) - - def area_name(self) -> str: - """ - :example: 'উজির' - """ - return self.random_element(self.area_names) - - def building_name(self) -> str: - """ - :example: 'বাড়ী নং' - """ - return self.random_element(self.building_names) - - def building_number(self) -> str: - """ - :example: '791' to '৭৯১' - """ - return translate_to_bengali_digits(self.numerify(self.random_element(self.building_number_formats))) - - def city_prefix(self) -> str: - """ - :example: 'উত্তর' - """ - return self.random_element(self.city_prefixes) - - def city(self) -> str: - """ - :example: 'ঢাকা' - """ - return self.random_element(self.cities) - - def postcode(self) -> str: - """ - See - https://bdpost.portal.gov.bd/site/page/6aaeabe4-479b-4e5a-a671-e9e5b994bf9a - """ - return translate_to_bengali_digits(self.numerify(self.random_element(self.postcode_formats))) - - def secondary_address(self) -> str: - """ - As the generated string format is a Bengali word but English number so splitting the value by space - and then convert the English number to Bengali number and concat with generated Bengali word - and return - : example : 'অ্যাপার্টমেন্ট 14' to 'অ্যাপার্টমেন্ট ১৪' - """ - value = self.bothify(self.random_element(self.secondary_address_formats)) - word_list = value.split(" ") - return word_list[0] + " " + translate_to_bengali_digits(word_list[1]) - - def town(self) -> str: - """ - :example: 'নবাব' - """ - pattern: str = self.random_element(self.town_formats) - return self.generator.parse(pattern) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/bn_BD/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/bn_BD/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 512646d..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/bn_BD/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/cs_CZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/cs_CZ/__init__.py deleted file mode 100644 index 5b7722c..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/cs_CZ/__init__.py +++ /dev/null @@ -1,1202 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{city_name}}",) - - street_name_formats = ("{{street_name}}",) - street_address_formats = ("{{street_name}} {{building_number}}",) - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - building_number_formats = ("%", "%#", "%##") - - street_suffixes_long = ("ulice", "třída", "nábřeží", "náměstí") - street_suffixes_short = ("ul.", "tř.", "nábř.", "nám.") - - postcode_formats = ( - "1## ##", - "2## ##", - "3## ##", - "4## ##", - "5## ##", - "6## ##", - "7## ##", - ) - - cities = ( - "Abertamy", - "Adamov", - "Andělská Hora", - "Bakov nad Jizerou", - "Bavorov", - "Bechyně", - "Benešov nad Ploučnicí", - "Benátky nad Jizerou", - "Bezdružice", - "Bečov nad Teplou", - "Blatná", - "Blovice", - "Blšany", - "Bochov", - "Bohušovice nad Ohří", - "Bojkovice", - "Bor", - "Borohrádek", - "Borovany", - "Boží Dar", - "Brandýs nad Orlicí", - "Brno", - "Broumov", - "Brtnice", - "Brumov-Bylnice", - "Brušperk", - "Budišov nad Budišovkou", - "Budyně nad Ohří", - "Bučovice", - "Buštěhrad", - "Bystré", - "Bystřice", - "Bystřice nad Pernštejnem", - "Bystřice pod Hostýnem", - "Bzenec", - "Bílovec", - "Bělá nad Radbuzou", - "Bělá pod Bezdězem", - "Březnice", - "Březová", - "Březová nad Svitavou", - "Břidličná", - "Chabařovice", - "Chlumec", - "Chlumec nad Cidlinou", - "Choceň", - "Chomutov", - "Chotěboř", - "Chrast", - "Chrastava", - "Chropyně", - "Chvaletice", - "Chyše", - "Chýnov", - "Chřibská", - "Cvikov", - "Dačice", - "Dašice", - "Desná", - "Deštná", - "Dobrovice", - "Dobruška", - "Dobřany", - "Dobřichovice", - "Dobříš", - "Doksy", - "Dolní Benešov", - "Dolní Bousov", - "Dolní Kounice", - "Dolní Poustevna", - "Dubá", - "Dubí", - "Dubňany", - "Duchcov", - "Děčín", - "Františkovy Lázně", - "Fryšták", - "Frýdek-Místek", - "Frýdlant", - "Frýdlant nad Ostravicí", - "Fulnek", - "Golčův Jeníkov", - "Habartov", - "Habry", - "Hanušovice", - "Harrachov", - "Hartmanice", - "Havířov", - "Hejnice", - "Heřmanův Městec", - "Hlinsko", - "Hluboká nad Vltavou", - "Hluk", - "Hodkovice nad Mohelkou", - "Holice", - "Holýšov", - "Hora Svaté Kateřiny", - "Horažďovice", - "Horní Benešov", - "Horní Blatná", - "Horní Bříza", - "Horní Cerekev", - "Horní Jelení", - "Horní Jiřetín", - "Horní Planá", - "Horní Slavkov", - "Horšovský Týn", - "Hostinné", - "Hostivice", - "Hostomice", - "Hostouň", - "Hořice", - "Hořovice", - "Hoštka", - "Hradec Králové", - "Hradec nad Moravicí", - "Hranice (okres Cheb)", - "Hrob", - "Hrochův Týnec", - "Hronov", - "Hrotovice", - "Hroznětín", - "Hrušovany nad Jevišovkou", - "Hrádek", - "Hrádek nad Nisou", - "Hulín", - "Husinec", - "Hustopeče", - "Ivanovice na Hané", - "Ivančice", - "Jablonec nad Jizerou", - "Jablonec nad Nisou", - "Jablonné nad Orlicí", - "Jablonné v Podještědí", - "Jablunkov", - "Janov", - "Janovice nad Úhlavou", - "Janské Lázně", - "Jaroměřice nad Rokytnou", - "Javorník", - "Jemnice", - "Jesenice (okres Rakovník)", - "Jevišovice", - "Jevíčko", - "Jihlava", - "Jilemnice", - "Jistebnice", - "Jiříkov", - "Jáchymov", - "Jílové", - "Jílové u Prahy", - "Kamenice nad Lipou", - "Kamenický Šenov", - "Kaplice", - "Kardašova Řečice", - "Karlovy Vary", - "Karolinka", - "Karviná", - "Kasejovice", - "Kaznějov", - "Kašperské Hory", - "Kdyně", - "Kelč", - "Kladno", - "Kladruby", - "Klecany", - "Klimkovice", - "Klobouky u Brna", - "Kojetín", - "Konice", - "Kopidlno", - "Koryčany", - "Kosmonosy", - "Kostelec na Hané", - "Kostelec nad Labem", - "Kostelec nad Orlicí", - "Kostelec nad Černými lesy", - "Kouřim", - "Košťany", - "Kožlany", - "Kralovice", - "Kraslice", - "Kravaře", - "Kryry", - "Králíky", - "Králův Dvůr", - "Krásno", - "Krásná Hora nad Vltavou", - "Krásná Lípa", - "Krásné Údolí", - "Kunovice", - "Kunštát", - "Kynšperk nad Ohří", - "Lanžhot", - "Ledeč nad Sázavou", - "Ledvice", - "Letohrad", - "Letovice", - "Liberec", - "Libochovice", - "Libušín", - "Libáň", - "Libčice nad Vltavou", - "Liběchov", - "Lipník nad Bečvou", - "Litovel", - "Lišov", - "Loket", - "Lom", - "Lomnice nad Lužnicí", - "Lomnice nad Popelkou", - "Loučná pod Klínovcem", - "Lovosice", - "Loštice", - "Luby", - "Luhačovice", - "Lučany nad Nisou", - "Luže", - "Lysá nad Labem", - "Lázně Bohdaneč", - "Lázně Bělohrad", - "Lázně Kynžvart", - "Manětín", - "Mašťov", - "Meziboří", - "Meziměstí", - "Mikulov", - "Mikulášovice", - "Miletín", - "Milevsko", - "Milovice", - "Mimoň", - "Miroslav", - "Mirotice", - "Mirovice", - "Mirošov", - "Mladá Boleslav", - "Mladá Vožice", - "Mnichovice", - "Mnichovo Hradiště", - "Mníšek pod Brdy", - "Modřice", - "Mohelnice", - "Moravské Budějovice", - "Moravský Beroun", - "Moravský Krumlov", - "Morkovice-Slížany", - "Most", - "Mýto", - "Městec Králové", - "Město Albrechtice", - "Město Touškov", - "Měčín", - "Mšeno", - "Nalžovské Hory", - "Napajedla", - "Nasavrky", - "Nechanice", - "Nejdek", - "Nepomuk", - "Netolice", - "Neveklov", - "Nová Bystřice", - "Nová Paka", - "Nová Role", - "Nová Včelnice", - "Nové Hrady", - "Nové Město nad Metují", - "Nové Město pod Smrkem", - "Nové Sedlo", - "Nové Strašecí", - "Nový Bydžov", - "Nový Knín", - "Náměšť nad Oslavou", - "Nýrsko", - "Nýřany", - "Němčice nad Hanou", - "Odolena Voda", - "Odry", - "Olešnice", - "Olomouc", - "Oloví", - "Opava", - "Opočno", - "Osek", - "Osečná", - "Oslavany", - "Ostrava", - "Pacov", - "Pardubice", - "Paskov", - "Pec pod Sněžkou", - "Petřvald", - "Pečky", - "Pilníkov", - "Planá", - "Planá nad Lužnicí", - "Plasy", - "Plesná", - "Plumlov", - "Plzeň", - "Plánice", - "Poběžovice", - "Podbořany", - "Podivín", - "Pohořelice", - "Police nad Metují", - "Polička", - "Polná", - "Postoloprty", - "Potštát", - "Počátky", - "Praha", - "Proseč", - "Prostějov", - "Protivín", - "Pyšely", - "Přebuz", - "Přelouč", - "Přerov", - "Přeštice", - "Přibyslav", - "Přimda", - "Příbor", - "Rabí", - "Radnice", - "Rajhrad", - "Ralsko", - "Raspenava", - "Rejštejn", - "Rokytnice nad Jizerou", - "Rokytnice v Orlických horách", - "Ronov nad Doubravou", - "Rosice", - "Rotava", - "Rousínov", - "Rovensko pod Troskami", - "Roztoky", - "Rožmberk nad Vltavou", - "Rožmitál pod Třemšínem", - "Rožďalovice", - "Rtyně v Podkrkonoší", - "Rudná", - "Rudolfov", - "Rychnov u Jablonce nad Nisou", - "Rychvald", - "Rájec-Jestřebí", - "Rýmařov", - "Sadská", - "Sedlec-Prčice", - "Sedlice", - "Sedlčany", - "Semily", - "Sezemice", - "Sezimovo Ústí", - "Seč", - "Skalná", - "Skuteč", - "Slatiňany", - "Slavičín", - "Slavkov u Brna", - "Slavonice", - "Slušovice", - "Smečno", - "Smiřice", - "Smržovka", - "Sobotka", - "Soběslav", - "Solnice", - "Spálené Poříčí", - "Staré Město (okres Uherské Hradiště)", - "Staré Město (okres Šumperk)", - "Starý Plzenec", - "Staňkov", - "Stochov", - "Stod", - "Strmilov", - "Stráž nad Nežárkou", - "Stráž pod Ralskem", - "Strážnice", - "Strážov", - "Studénka", - "Stárkov", - "Stříbro", - "Suchdol nad Lužnicí", - "Svoboda nad Úpou", - "Svratka", - "Světlá nad Sázavou", - "Sázava", - "Tanvald", - "Telč", - "Teplice", - "Teplice nad Metují", - "Teplá", - "Terezín", - "Tišnov", - "Toužim", - "Tovačov", - "Trhové Sviny", - "Trhový Štěpánov", - "Trmice", - "Týn nad Vltavou", - "Týnec nad Labem", - "Týnec nad Sázavou", - "Týniště nad Orlicí", - "Třebechovice pod Orebem", - "Třebenice", - "Třeboň", - "Třemošnice", - "Třemošná", - "Třešť", - "Uherský Ostroh", - "Uhlířské Janovice", - "Unhošť", - "Valašské Klobouky", - "Valtice", - "Vamberk", - "Vejprty", - "Velešín", - "Velká Bystřice", - "Velká Bíteš", - "Velké Bílovice", - "Velké Hamry", - "Velké Opatovice", - "Velké Pavlovice", - "Velký Šenov", - "Veltrusy", - "Velvary", - "Verneřice", - "Veselí nad Lužnicí", - "Vidnava", - "Vimperk", - "Vizovice", - "Vlachovo Březí", - "Vodňany", - "Volary", - "Volyně", - "Votice", - "Vracov", - "Vratimov", - "Vrbno pod Pradědem", - "Vroutek", - "Vysoké Veselí", - "Vysoké nad Jizerou", - "Vyšší Brod", - "Vítkov", - "Výsluní", - "Všeruby", - "Zbiroh", - "Zbýšov", - "Zdice", - "Zlaté Hory", - "Zliv", - "Zlín", - "Zruč nad Sázavou", - "Zubří", - "Zákupy", - "Zásmuky", - "Újezd u Brna", - "Úpice", - "Úsov", - "Ústí nad Labem", - "Úterý", - "Úvaly", - "Úštěk", - "Černovice", - "Černošice", - "Černošín", - "Červená Řečice", - "Červený Kostelec", - "Česká Kamenice", - "Česká Skalice", - "České Budějovice", - "České Velenice", - "Český Brod", - "Český Dub", - "Řevnice", - "Šenov", - "Šlapanice", - "Šluknov", - "Špindlerův Mlýn", - "Štramberk", - "Štíty", - "Štětí", - "Švihov", - "Žacléř", - "Žamberk", - "Žandov", - "Ždánice", - "Ždírec nad Doubravou", - "Žebrák", - "Železnice", - "Železná Ruda", - "Železný Brod", - "Židlochovice", - "Žirovnice", - "Žlutice", - "Žulová", - ) - - streets = ( - "Horní Stromky", - "Vizovická", - "K Brusce", - "Mírová", - "Písnická", - "Durychova", - "Rašínská", - "Boušova", - "Pobřežní", - "Dolnobřežanská", - "Černá", - "Šůrova", - "Červenkova", - "Nad Mostem", - "Libuňská", - "Chotovická", - "Petříkova", - "Pod Vodárenskou Věží", - "Na Fišerce", - "Ke Březině", - "Za Lázeňkou", - "Nad Šafránkou", - "Na Laurové", - "Nám. Republiky", - "Vlašimská", - "Nad Rohatci", - "Tylišovská", - "Liškova", - "Kunratická", - "Branická", - "Na Strži", - "Višňová", - "Sulická", - "Zálesí", - "Vídeňská", - "Nábřeží Kapitána Jaroše", - "Lešovská", - "U Podjezdu", - "Průškova", - "Estonská", - "Máslova", - "K Otočce", - "Jižní", - "Švecova", - "Mongolská", - "Kalská", - "Nad Rokytkou", - "Malešovská", - "Plzeňská", - "V Hájkách", - "Úpská", - "Ambrožova", - "Pikovická", - "Neužilova", - "Na Staré Vinici", - "Vstupní", - "Nýdecká", - "U Společenské Zahrady", - "Ostrovského", - "Bazovského", - "Lešenská", - "Na Štamberku", - "Na Svahu", - "Výhledské Nám.", - "K Lipám", - "Za Stadionem", - "Opletalova", - "Nábřeží Ludvíka Svobody", - "Komenského Nám.", - "Křimická", - "Domkovská", - "Pyšelská", - "Štychova", - "Horákova", - "Nad Zavážkou", - "K Prelátům", - "Vašátkova", - "Benákova", - "Náměstí Prezidenta Masaryka", - "Mílovská", - "U Hostivařského Nádraží", - "Jihovýchodní I", - "Hostivařské Nám.", - "Zbynická", - "Heineho", - "U Dobešky", - "Doubická", - "Ke Břvům", - "Na Záhonech", - "Kloboukova", - "Kostnické Náměstí", - "Pelclova", - "Smotlachova", - "Pod Spiritkou", - "Hůlkova", - "Matenská", - "Do Zahrádek Ii", - "Dobrošovská", - "Lovčenská", - "Jasná I", - "Škrétova", - "Moravanů", - "Budapešťská", - "Kojetická", - "Náměstí I. P. Pavlova", - "Bajkalská", - "U Větrolamu", - "Vlčická", - "Jarešova", - "Sámova", - "Kotrčová", - "Musílkova", - "Ingrišova", - "U Nových Domů I", - "Dělostřelecká", - "Ke Hrázi", - "Mochovská", - "Rýmařovská", - "Dolní Chaloupky", - "Za Arielem", - "U Rajské Zahrady", - "K Šedivce", - "Březová", - "Doubravínova", - "Mládkova", - "Tachovské Náměstí", - "Lehárova", - "Severní X", - "V Tehovičkách", - "Bermanova", - "Grammova", - "Spojovací", - "Verdunská", - "Závrchy", - "Čerpadlová", - "Vítězná", - "Nad Plynovodem", - "Novodvorská", - "Budějovická", - "U Smíchovského Hřbitova", - "Nedvědovo Náměstí", - "Bachova", - "U Dálnice", - "Všejanská", - "Maňákova", - "Rokytnická", - "Loděnická", - "U Pumpy", - "Michnova", - "Záblatská", - "Poslední", - "Hněvkovského", - "Za Křížem", - "Nad Návsí", - "Jablonecká", - "Súdánská", - "Mazancova", - "Pod Čertovou Skalou", - "Weilova", - "Čajkovského", - "Nad Zátiším", - "Moldavská", - "Juarézova", - "Žižkova", - "Pod Lochkovem", - "Nad Vernerákem", - "Žherská", - "Prusíkova", - "Výtoňská", - "Na Srážku", - "Šachovská", - "Nučická", - "Novákovo Náměstí", - "Sitteho", - "U Vápenice", - "Na Kuthence", - "Čelakovského Sady", - "V Závitu", - "Na Vartě", - "Oválová", - "Machovická", - "Nad Olšinami", - "Vajgarská", - "Kulhavého", - "Kodaňská", - "Kralupská", - "Lednická", - "Pod Velkým Hájem", - "Hvězdonická", - "Na Kozinci", - "Semická", - "K Dálnici", - "Trytova", - "Vyhlídkova", - "Pohnertova", - "U Nového Dvora", - "K Vodě", - "Nad Libří", - "K Matěji", - "V Kotcích", - "Kohoutových", - "Na Cikánce", - "Chládkova", - "Slatiňanská", - "Pod Kostelem", - "Na Spojce", - "Na Zahrádkách", - "Nad Obcí", - "K Přehradám", - "Na Náspu", - "V Nížinách", - "Josefa Houdka", - "Na Pěšině", - "Hnězdenská", - "Za Statky", - "Kremnická", - "Čestmírova", - "U Rakovky", - "Kodicilova", - "K Lučinám", - "Nouzov", - "Krátký Lán", - "Anny Drabíkové", - "Kadaňská", - "Stroupežnického", - "Jírova", - "U Dětského Hřiště", - "Žofie Podlipské", - "Nad Šancemi", - "Lošáková", - "Roblínská", - "Mezi Sklady", - "Na Pomezí", - "U Mlýnského Rybníka", - "Makedonská", - "K Dýmači", - "V Zátiší", - "Pohořelec", - "Jiřinková", - "U Nové Dálnice", - "Čuprova", - "Vraňanská", - "Severovýchodní Vi", - "Petřínská", - "K Hořavce", - "Sádovská", - "Pod Průsekem", - "Konžská", - "Dřítenská", - "Pirinská", - "U Hřiště", - "Kukelská", - "Moravanská", - "Koclířova", - "Žilinská", - "Ve Žlíbku", - "Veronské Nám.", - "U Větrníku", - "Svojsíkova", - "Izraelská", - "Staňkovka", - "Na Viničních Horách", - "Čankovská", - "Na Špitálce", - "Valdovská", - "Rudoltická", - "Ke Strašnické", - "Paťanka", - "Panuškova", - "Pankrácké Nám.", - "Budčická", - "Šermířská", - "Medlovská", - "K Vidouli", - "Horní Chaloupky", - "V Americe", - "Dejvická", - "Klášterecká", - "Šárovo Kolo", - "Mladoboleslavská", - "Palackého", - "Lumiérů", - "Ivančická", - "Za Valem", - "Na Břevnovské Pláni", - "Tichonická", - "Náměstí Hrdinů", - "Mistřínská", - "Křížkovského", - "Tanvaldská", - "V Padolině", - "Před Skalkami Ii", - "Na Křivce", - "Nad Zámečkem", - "Nad Krocínkou", - "Podlešínská", - "Nad Popelkou", - "Oderská", - "Jeruzalémská", - "Smolenská", - "Lebeděvova", - "Libichovská", - "Na Šafránce", - "Průjezdná", - "Záluské", - "Branišovská", - "Spinozova", - "K Betáni", - "Machuldova", - "Podohradská", - "Cerhenická", - "V Brůdku", - "U Vlachovky", - "Pod Letištěm", - "Vlastislavova", - "Klecanská", - "Žinkovská", - "Maltézské Náměstí", - "Boršov", - "Mukařovského", - "Josefa Šimůnka", - "Suchdolská", - "Opočínská", - "Heydukova", - "Vršovka", - "Thurnova", - "Mezilesní", - "Za Pivovarem", - "Uljanovská", - "Panenská", - "Sladovnická", - "Plynární", - "Kozácká", - "Vlasákova", - "Javornická", - "Ševčíkova", - "Podle Náhonu", - "Doubravická", - "Františka Černého", - "Chotětovská", - "K Háječku", - "Pod Výšinkou", - "U Šesté Baterie", - "Drahanská", - "Augustova", - "U Balabenky", - "Boční I", - "Jirčanská", - "Na Šubě", - "Brixiho", - "Klímova", - "Kazín", - "Fügnerovo Náměstí", - "Na Příčné Mezi", - "Plánická", - "Africká", - "Vratislavova", - "Olympijská", - "Na Bojišti", - "K Nádrži", - "Vokrojova", - "Bořetínská", - "Kováříkova", - "Lánovská", - "U Staré Pošty", - "Na Poustkách", - "V Poli", - "Meziškolská", - "Pajerova", - "Habartovská", - "Mlékárenská", - "Dělnická", - "U Štěpu", - "Družná", - "Klouzková", - "Před Rybníkem", - "Nad Košinkou", - "Spolupráce", - "V Humenci", - "Adélčina", - "Březanova", - "Pod Kesnerkou", - "Kosmonoská", - "Do Dubin", - "Nad Lávkou", - "Mezi Lysinami", - "Na Topolce", - "Snopkova", - "Severní Viii", - "Okrová", - "Třebihošťská", - "Mádrova", - "Na Lázeňce", - "Slivenecká", - "Nám. Barikád", - "Nad Strouhou", - "Jindřicha Plachty", - "Pod Srázem", - "U Waltrovky", - "Bratří Čapků", - "Onšovecká", - "Machnova", - "Kostková", - "Rožmberská", - "Zapských", - "Přípřežní", - "Výravská", - "Podléšková", - "Štěchovická", - "Poleradská", - "Jilmová", - "Hostýnská", - "Otradovická", - "Cihlářova", - "Opavská", - "Hradecká", - "Vinohradská", - "Pařížská", - "Evropská", - "Mírová", - "Mlýnská", - "Pražská", - "Teplická", - "Tovární", - "V Lipách", - "Svatoplukova", - "Purkyňova", - "Na Letné", - "Bořivojova", - "U Hřbitova", - "Akátova", - "Plynárenská", - "Komenského", - "Havlíčkova", - "Husova", - "Na Nivách", - "Jandova", - "Jugoslávská", - "Pavlova", - "Kosmonautů", - "Svornosti", - "Moravská", - "Souběžná", - "Hasičská", - ) - - states = ( - "Hlavní město Praha", - "Středočeský kraj", - "Jihočeský kraj", - "Plzeňský kraj", - "Karlovarský kraj", - "Ústecký kraj", - "Liberecký kraj", - "Královéhradecký kraj", - "Pardubický kraj", - "Kraj Vysočina", - "Jihomoravský kraj", - "Olomoucký kraj", - "Moravskoslezský kraj", - "Zlínský kraj", - ) - - countries = ( - "Afghánistán", - "Albánie", - "Alžírsko", - "Andorra", - "Angola", - "Antigua a Barbuda", - "Argentina", - "Arménie", - "Austrálie", - "Bahamy", - "Bahrajn", - "Bangladéš", - "Barbados", - "Belgie", - "Belize", - "Benin", - "Bhútán", - "Bolívie", - "Bosna a Hercegovina", - "Botswana", - "Brazílie", - "Brunej", - "Bulharsko", - "Burkina Faso", - "Burundi", - "Bělorusko", - "Chile", - "Chorvatsko", - "Cookovy ostrovy", - "Demokratická republika Kongo", - "Dominika", - "Dominikánská republika", - "Dánsko", - "Džibutsko", - "Egypt", - "Ekvádor", - "Eritrea", - "Estonsko", - "Etiopie", - "Federativní státy Mikronésie", - "Fidži", - "Filipíny", - "Finsko", - "Francie", - "Gabon", - "Gambie", - "Ghana", - "Gruzie", - "Guatemala", - "Guinea", - "Guinea-Bissau", - "Guyana", - "Haiti", - "Honduras", - "Indie", - "Irsko", - "Irák", - "Island", - "Itálie", - "Izrael", - "Jamajka", - "Japonsko", - "Jemen", - "Jihoafrická republika", - "Jižní Súdán", - "Jordánsko", - "Kambodža", - "Kamerun", - "Kanada", - "Kapverdy", - "Katar", - "Kazachstán", - "Keňa", - "Kiribati", - "Kolumbie", - "Kostarika", - "Kuba", - "Kypr", - "Kyrgyzstán", - "Laos", - "Lesotho", - "Libanon", - "Libye", - "Lichtenštejnsko", - "Litva", - "Lotyšsko", - "Lucembursko", - "Madagaskar", - "Malajsie", - "Malawi", - "Maledivy", - "Mali", - "Malta", - "Maroko", - "Marshallovy ostrovy", - "Mauricius", - "Mauritánie", - "Maďarsko", - "Mexiko", - "Moldavsko", - "Monako", - "Mongolsko", - "Mosambik", - "Myanmar", - "Namibie", - "Nauru", - "Nepál", - "Niger", - "Nigérie", - "Nikaragua", - "Niue", - "Nizozemsko", - "Norsko", - "Nový Zéland", - "Německo", - "Omán", - "Palau", - "Panama", - "Papua-Nová Guinea", - "Paraguay", - "Peru", - "Pobřeží slonoviny", - "Polsko", - "Portugalsko", - "Pákistán", - "Rakousko", - "Republika Kongo", - "Rovníková Guinea", - "Rumunsko", - "Rusko", - "Rwanda", - "Salvador", - "Samoa", - "San Marino", - "Saúdská Arábie", - "Senegal", - "Severní Korea", - "Severní Makedonie", - "Seychely", - "Sierra Leone", - "Singapur", - "Slovensko", - "Slovinsko", - "Somálsko", - "Spojené arabské emiráty", - "Spojené království", - "Spojené státy americké", - "Srbsko", - "Středoafrická republika", - "Surinam", - "Svatá Lucie", - "Svatý Kryštof a Nevis", - "Svatý Tomáš a Princův ostrov", - "Svatý Vincenc a Grenadiny", - "Svazijsko", - "Súdán", - "Sýrie", - "Tanzanie", - "Thajsko", - "Togo", - "Tonga", - "Trinidad a Tobago", - "Tunisko", - "Turecko", - "Turkmenistán", - "Tuvalu", - "Tádžikistán", - "Uganda", - "Ukrajina", - "Uruguay", - "Uzbekistán", - "Vanuatu", - "Vatikán", - "Venezuela", - "Vietnam", - "Východní Timor", - "Zambie", - "Zimbabwe", - "Ázerbájdžán", - "Írán", - "Čad", - "Černá Hora", - "Česko", - "Čína", - "Řecko", - "Šalamounovy ostrovy", - "Španělsko", - "Srí Lanka", - "Švédsko", - "Švýcarsko", - ) - - def street_suffix_short(self) -> str: - return self.random_element(self.street_suffixes_short) - - def street_suffix_long(self) -> str: - return self.random_element(self.street_suffixes_long) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def street_name(self) -> str: - return self.random_element(self.streets) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit - - def city_with_postcode(self) -> str: - return self.postcode() + " " + self.random_element(self.cities) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/cs_CZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/cs_CZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 9df4b56..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/cs_CZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/da_DK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/da_DK/__init__.py deleted file mode 100644 index 1aae029..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/da_DK/__init__.py +++ /dev/null @@ -1,2522 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - # Building numbers don't go higher than a 1000 - building_number_formats = ("%##", "%#", "%") - - street_name_formats = ("{{dk_street_name}}{{street_suffix}}",) - - street_address_formats = ("{{street_name}} {{building_number}}",) - - street_names = ( - "Aberdeen", - "Dompap", - "Abildgaards", - "Skovhare", - "Svalehale", - "Abrikos", - "Absalons", - "Adel", - "Admiral", - "Adrians", - "Agerlands", - "Aggersborg", - "Aggersvold", - "Agger", - "Agnete", - "Ahlefeldts", - "Ahlmanns", - "Ahorns", - "Ahrenkildes", - "Albaniens", - "Aldersro", - "Allers", - "Alexandria", - "Alliance", - "Alperose", - "Als", - "Alsted", - "Amagerbro", - "Amagerfælled", - "Amager", - "Amagermotoren", - "Amager Strand", - "Amalie", - "Amalie Skrams", - "Amerika", - "Amsterdam", - "Angel", - "Anneberg", - "Anneke", - "Annex", - "Ansgars", - "Antoinette", - "Antoni", - "Apollo", - "Arabiens", - "Arendals", - "Arkona", - "Armeniens", - "Arne Jacobsens", - "Arnes", - "Arresø", - "Arsenal", - "Artilleri", - "Asger Jorns", - "Askø", - "Asminderød", - "Asnæs", - "Assens", - "Asters", - "Astrup", - "Asyl", - "Athens", - "Augusta", - "Australiens", - "Backers", - "Badens", - "Badstue", - "Bager", - "Baggesens", - "Bakke", - "Balders", - "Ballum", - "Baltika", - "Bandholm", - "Bangerts", - "Bangsbo", - "Bardenfleths", - "Søfly", - "Bartholins", - "Basnæs", - "Bastion", - "Bavnager", - "Bavnehøj", - "Beate", - "Bechgaards", - "Bedford", - "Beethovens", - "Beldringe", - "Belfast", - "Belgiens", - "Bellahøj", - "Belle de Boskoop", - "Bellida", - "Bellis", - "Bellmans", - "Bergens", - "Berggreens", - "Bergthoras", - "Bernstorffs", - "Bevtoft", - "Biens", - "Billed", - "Billesborg", - "Birkager", - "Birkedommer", - "Birke", - "Birkholm", - "Birma", - "Bisidder", - "Bispebjerg", - "Bispe", - "Bissens", - "Bjelkes", - "Bjergmarks", - "Bjergsted", - "Bjernede", - "Bjerregårds Side", - "Bjerregårds", - "Bjørneklo", - "Bjørnsons", - "Blanka", - "Blegdams", - "Blekinge", - "Blushøj", - "Blytækker", - "Blåbær", - "Blågårds", - "Blåmejse", - "Blåmunke", - "Bodils", - "Boeslunde", - "Bogense", - "Bogenæs", - "Bogfinke", - "Bogholder", - "Bogtrykker", - "Bohlendach", - "Bolands", - "Boldhus", - "Bolton", - "Bomhus", - "Bomslutter", - "Bomulds", - "Bordeaux", - "Borgbjergs", - "Borger", - "Borgmester Jensens", - "Borgskriver", - "Borneo", - "Bornholms", - "Borreby", - "Borthigs", - "Borups", - "Boserup", - "Botofte", - "Boyes", - "Brages", - "Bramminge", - "Bramslykke", - "Bratskov", - "Bredahls", - "Bredelands", - "Bred", - "Bregnerød", - "Breidablik", - "Bremens", - "Breslau", - "Brigården", - "Bri", - "Bristol", - "Broager", - "Brobergs", - "Brofoged", - "Brohus", - "Broksø", - "Brolægger", - "Brombær", - "Brorsons", - "Brydes", - "Brygger", - "Bryggeri", - "Brynhilde", - "Bryssel", - "Brøndkær", - "Brøndum", - "Brøndæble", - "Brønshøjgård", - "Brønshøjholms", - "Brønshøj Kirke", - "Brønshøj", - "Bulbjerg", - "Bulgariens", - "Buntmager", - "Burmeisters", - "Bustrup", - "Byager", - "Bygholm", - "Byglands", - "Bygmester", - "Bygård", - "Bykilde", - "Bymose", - "Bækkeskov", - "Bøhmens", - "Bøllegård", - "Bøllemosegårds", - "Børglum", - "Børs", - "Børskov", - "Bådehavns", - "Bådsmands", - "Calais", - "Capri", - "Carl Nielsens", - "Carls", - "Carstens", - "Castbergs", - "Ceylon", - "Christen Bergs", - "Christian II's", - "Christiansborg", - "Christianshavns Vold", - "Christiansminde", - "Classens", - "Clausholm", - "Clematis", - "Colbjørnsens", - "Collins", - "Container", - "Cox Orange", - "Cumberlands", - "Cyperns", - "Cæcilia", - "Dag Hammarskjölds", - "Dagmars", - "Dagø", - "Dahlerups", - "Dalby", - "Dalmose", - "Dalslands", - "Damager", - "Dampfærge", - "Dannebrogs", - "Danneskiold-Samsøes", - "Dannevirke", - "Danshøj", - "Danstrup", - "Degnemose", - "Degneæble", - "Delfin", - "Delos", - "Derby", - "Dige", - "Dirchs", - "Donau", - "Dorthea", - "Dovre", - "Dragsholm", - "Drechsels", - "Drejer", - "Drejø", - "Drogdens", - "Dronning Dagmars", - "Dronning Elisabeths", - "Dronningens", - "Dronningens Tvær", - "Dronninglund", - "Dublin", - "Dunhammer", - "Dunkerque", - "Dybbøls", - "Dybendals", - "Dybens", - "Dyvekes", - "Dønnerup", - "Ebbe Rodes", - "Eberts", - "Eckersbergs", - "Edel Sauntes", - "Edelsminde", - "Efterslægts", - "Egebæks", - "Ege", - "Egelykke", - "Egemarke", - "Egholm", - "Egils", - "Ehlers", - "Ejdersted", - "Ejler Billes", - "Ekvipagemester", - "Elba", - "Elias", - "Ellebjerg", - "Elme", - "Elmelunde", - "Elsdyrs", - "Elselille", - "Elstar", - "Elværks", - "Emblas", - "Emdrup Eng", - "Emdrupgårds", - "Emdrup Kær", - "Emdrup Mose", - "Emdrup", - "Enebær", - "Engblomme", - "Engdals", - "Engelholm", - "Engelsteds", - "Enghave", - "Englands", - "Engskifte", - "Eng", - "Enigheds", - "Enveloppe", - "Erantis", - "Eriks", - "Eriksholm", - "Eschrichts", - "Eskadre", - "Eskilds", - "Eskildstrup", - "Eskjær", - "Esrom", - "Esthers", - "Estlands", - "Eton", - "Ewalds", - "Fabrikmester", - "Fafners", - "Fajance", - "Fakse", - "Fakse Tvær", - "Faksinge", - "Falke", - "Fanø", - "Farum", - "Farver", - "Fehmerns", - "Femkløver", - "Fengers", - "Fenris", - "Fensmark", - "Ferring", - "Fersken", - "Finlands", - "Fiol", - "Firkløver", - "Fiskedams", - "Fjenneslev", - "Fladstjerne", - "Flaske", - "Flensborg", - "Flidsager", - "Flinterup", - "Floras", - "Florens", - "Florida", - "Flors", - "Folevads", - "Folke Bernadottes", - "Forbindelses", - "Fordresgård", - "Formosa", - "Fortun", - "Fossgårds", - "Fragt", - "Frankrigs", - "Fredensborg", - "Fredens", - "Fredenshøj", - "Fredericia", - "Frederiksberg", - "Frederiksborg", - "Frederiks", - "Frederiksgårds", - "Frederiksstads", - "Frederikssunds", - "Luftmarine", - "Frejas", - "Fremads", - "Freunds", - "Frilands", - "Frimester", - "Fruebjerg", - "Fuglager", - "Fuglefænger", - "Fuglsang", - "Funkia", - "Fussings", - "Fyens", - "Fyrbøder", - "Fyrtårn", - "Fælled", - "Fælledens Passage", - "Færgehavns", - "Følfod", - "Førslev", - "Fåborg", - "Gadekær", - "Gadstrup", - "Galions", - "Gamle Vasby", - "Gammel Jernbane", - "Gammel Konge", - "Gammel Køge Lande", - "Gammeltofts", - "Gartner", - "Gartneri", - "Gasværks", - "Gaunø", - "Gavlhus", - "Gearhals", - "Gefions", - "Geislers", - "Genua", - "Georgine", - "Gerbrands", - "Gerdas", - "Gerlev", - "Gerners", - "Gerts", - "Geysers", - "Gilbjerg", - "Gimles", - "Gislinge", - "Gitter", - "Gjorslev", - "Gladbo", - "Gladiolus", - "Glas", - "Glente", - "Glinkas", - "Glommens", - "Glucks", - "Glumsø", - "Glückstadts", - "Glænø", - "Godsbane", - "Godthåbs", - "Gorms", - "Gothers", - "Gransanger", - "Greis", - "Grenå", - "Grevinge", - "Gribskov", - "Griffenfelds", - "Grysgårds", - "Grækenlands", - "Grønager", - "Grøndals Park", - "Grøndalsvænge", - "Grønjords", - "Grønløkke", - "Grønne", - "Grønnehave", - "Grønnemose", - "Grønris", - "Gråbrødre", - "Gråbynke", - "Gråspurve", - "Gråstens", - "Gudenå", - "Guldager", - "Guldbergs", - "Guldstjerne", - "Gulkløver", - "Gullands", - "Gullfoss", - "Gunhilds", - "Gunløgs", - "Gyldenlak", - "Gyldenløves", - "Gyldenris", - "Gyrite", - "Gyrstinge", - "Gyvel", - "Gørtler", - "Gårdfæste", - "Gårdtofte", - "Gåsebæks", - "Gåse", - "Gåseurt", - "Haderslev", - "Hagbard", - "Hagested", - "Haifa", - "Haldager", - "Halfdans", - "Halgreens", - "Hallands", - "Hallins", - "Halsskov", - "Hambros", - "Hamlets", - "Hammelstrup", - "Hammerens", - "Hammerichs", - "Hammershus", - "Hannemanns", - "Hannover", - "Hans Bogbinders", - "Hanssted", - "Hanstholm", - "Haralds", - "Haraldsted", - "Harboøre", - "Hardanger", - "Hardenberg", - "Hare", - "Hareskov", - "Harrestrup", - "J.P.E. Hartmanns", - "Harwich", - "Hassel", - "Hastings", - "Hauser", - "Havdrup", - "Havkajak", - "Havne", - "Havre", - "Havsgårds", - "Haydns", - "Hedeby", - "Hedegaards", - "Hedemanns", - "Heibergs", - "Heils", - "Heimdals", - "Heines", - "Heises", - "Hejre", - "Heklas", - "Heldbo", - "Helgesens", - "Helgolands", - "Helikons", - "Hellas", - "Hellebæk", - "Helleliden", - "Hellested", - "Helsingborg", - "Helsingørmotoren", - "Hemsedals", - "Hendon", - "Henriks", - "Herbergen", - "Herfølge", - "Herholdts", - "Herjedal", - "Herlufsholm", - "Hermods", - "Herning", - "Herslev", - "Hesselø", - "Hessens", - "Hestemølle", - "Hildurs", - "Hillerød", - "Hillerødmotoren", - "Himmerlands", - "Hindbær", - "Hinde", - "Hindustan", - "Hirse", - "Hirtshals", - "Hjelms", - "Hjertensfryds", - "Hjerting", - "Hjortdals", - "Hjortholms", - "Hjortø", - "Hjørring", - "Hobro", - "Holbergs", - "Holbæk", - "Holbækmotoren", - "Hollands", - "Holmblads", - "Holstebro", - "Holsteinborg", - "Holsteins", - "Holte", - "Hornbæk", - "Hornemans", - "Horsekilde", - "Horsens", - "Horserød", - "Houmanns", - "Hovedvagts", - "Hovgaards", - "Hovmester", - "Hovmål", - "Hulgårds", - "Humlebæk", - "Hustofte", - "Husum", - "Hvalsø", - "Hvede", - "Hveens", - "Hvidbjerg", - "Hvidkilde", - "Hvidkløver", - "Hvidtjørne", - "Hyacint", - "Hyldebær", - "Hyltebjerg", - "Hysken", - "Hyttehus", - "Händels", - "Høffdings", - "Høgholt", - "Højbo", - "Højdevangs", - "Højde", - "Højmose", - "Højsager", - "Højstrup", - "Hørdums", - "Hørhus", - "Hørsholms", - "Hørtofte", - "Høsterkøb", - "Høstgilde", - "Høyens", - "Håbets", - "Ib Schønbergs", - "Ilford", - "India", - "Industri", - "Ingerslevs", - "Ingolfs", - "Ingrid Marie", - "Iran", - "Iris", - "Irlands", - "Irmingers", - "Isafjords", - "Islevhus", - "Istanbul", - "Isted", - "Italiens", - "Jagt", - "James Grieve", - "Jans", - "Japan", - "Java", - "Jellinge", - "Jemtelands", - "Jena", - "Jeppes", - "Jerichaus", - "Jernbane", - "Bilbao", - "Jernæble", - "Jolle", - "Jordbær", - "Joris", - "Judiths", - "Jupiter", - "Jyderup", - "Jyllinge", - "Jæger", - "Jægersborg", - "Jægerspris", - "Kabbeleje", - "Kaktus", - "Kaldæa", - "Kaliforniens", - "Kalkbrænderihavns", - "Kalø", - "Kampmanns", - "Kanada", - "Kanonbåds", - "Kansas", - "Kansler", - "Kapel", - "Kapsel", - "Kaprifolie", - "Karens", - "Karlskrona", - "Karlslunde", - "Karlstads", - "Kasemat", - "Kastanie", - "Kastels", - "Kastrup", - "Katholm", - "Katrinedals", - "Kattegat", - "Kattinge", - "Kejser", - "Keldsø", - "Kentia", - "Keplers", - "Kerteminde", - "Kildebrønde", - "Kildevælds", - "Kilholm", - "Kina", - "Kingos", - "Kingston", - "Kirkebjerg", - "Kirkegårds", - "Kirsteins", - "Kirstinedals", - "Kjeldsgårds", - "Kjærstrup", - "Klaipeda", - "Klaksvigs", - "Kleins", - "Klerke", - "Klingsey", - "Klinte", - "Klintholm", - "Klitmøller", - "Klostermarks", - "Klosterris", - "Kloster", - "Klubiens", - "Kløverblads", - "Kløvermarks", - "Knabro", - "Knabstrup", - "Knippelsbro", - "Knivholt", - "Knuthenborg", - "Kolding", - "Kompagni", - "Kongebro", - "Kongedybs", - "Kongelunds", - "Kongemarks", - "Kongeæble", - "Kongo", - "Kongsdal", - "Kongshøj", - "Kongsted", - "Korea", - "Korfu", - "Korinth", - "Kornblomst", - "Kornerup", - "Kornskyld", - "Korsager", - "Kors", - "Korsika", - "Korsør", - "Kortstilk", - "Krabbesholm", - "Kraftværks", - "Krauses", - "Kreta", - "Krims", - "Kristiania", - "Krogager", - "Krogerup", - "Kroghs", - "Krokodille", - "Kronborg", - "Kronprinsens", - "Kronprinsesse", - "Krudtløbs", - "Krudtmøllegårds", - "Krusemynte", - "Kruså", - "Krügers", - "Krystal", - "Kuglegårds", - "Kuhlaus", - "Kulbane", - "Kurlands", - "Kvintus", - "Kvægtorvs", - "Kvæsthus", - "Küchlers", - "Kyringe", - "Kæmner", - "Kærager", - "Kærsanger", - "Kærskifte", - "Købmager", - "Kålager", - "Kaalunds", - "Lager", - "Lakse", - "Landehjælp", - "Landfoged", - "Landgilde", - "Landlyst", - "Landsdommer", - "Landskrona", - "Landvindings", - "Langager", - "Langebro", - "Langelinie", - "Langhus", - "Langkær", - "Langø", - "Laplands", - "Larsbjørns", - "Larslejs", - "Laura", - "Lautrups", - "Lavendel", - "Ledager", - "Leifs", - "Lejre", - "Lemberg", - "Lemnos", - "Lerchenborg", - "Lerfos", - "Lergravs", - "Letlands", - "Lidemarks", - "Liflands", - "Lille Colbjørnsens", - "Lille Farimags", - "Lille Fredens", - "Lille", - "Lille Isted", - "Lille Kannike", - "Lille Kirke", - "Lille Kongens", - "Lille Strand", - "Lille Søndervold", - "Lille Thekla", - "Lilliendals", - "Limfjords", - "Linde", - "Lindenborg", - "Lindenovs", - "Lindgreens", - "Lindholms", - "Linnés", - "Lipkes", - "Liselund", - "Livjæger", - "Livorno", - "Livø", - "Lobelia", - "Lodi", - "Lombardi", - "Lotus", - "Lugano", - "Lukretia", - "Lundbyes", - "Lundeborg", - "Lundedals", - "Lundehus", - "Lundevangs", - "Lundings", - "Lundsfryd", - "Lunds", - "Lundtofte", - "Lupin", - "Lybæk", - "Helsinki", - "Lykkebo", - "Lyneborg", - "Lynette", - "Lyngby", - "Lyngholm", - "Lyngvig", - "Lynæs", - "Lyon", - "Lyrskov", - "Lysefjords", - "Lyshøj", - "Lyshøjgårds", - "Lystrup", - "Læder", - "Lærdals", - "Lærke", - "Læssøes", - "Cork", - "Løgstør", - "Løgæble", - "Løjtegårds", - "Lønborg", - "Løngang", - "Lønstrup", - "Løvetands", - "P.D. Løvs", - "Løv", - "Magdelone", - "Magister", - "Mag", - "Majrose", - "Malakka", - "Malmø", - "Malta", - "Mandals", - "Mandel", - "Mansas", - "Mantua", - "Manø", - "Marathon", - "Marbjerg", - "Marengo", - "Margretheholms", - "Maribo", - "Mariehamn", - "Markmands", - "Markskifte", - "Mark", - "Marmor", - "Marsala", - "Marskens", - "Marstals", - "Martha", - "Masnedø", - "Masteskurs", - "Matthæus", - "Meinungs", - "Meklenborg", - "Meldahls", - "Mellemforts", - "Mellemtofte", - "Merløse", - "Messina", - "Metro", - "Middelfart", - "Middelgrunds", - "Midgårds", - "Mikkel Skovs", - "Milano", - "Milos", - "Mimers", - "Mimosa", - "Mindstrup", - "Minør", - "Mirabelle", - "Mitchells", - "Mjøsens", - "Molbechs", - "Moldau", - "Monrads", - "Montagehals", - "Montagne", - "Morbær", - "Morgendug", - "Morsø", - "Mosedal", - "Mosel", - "Mozarts", - "Mullerup", - "Murcia", - "Murer", - "Musholm", - "Musvåge", - "Mutzu", - "Myggenæs", - "Mysunde", - "Møgeltønder", - "Mølle", - "Møllegårds", - "C.F. Møllers", - "Mønter", - "Møntmester", - "Mørkhøj", - "Måge", - "Mårum", - "Nakskov", - "Nannas", - "Nansens", - "Nattergale", - "Neapel", - "Nebraska", - "Nelson Mandelas", - "Nikolaj", - "Nivå", - "Njals", - "Nokken Forn", - "Nokken Hovedn", - "Nokken Strand", - "Nordbane", - "Nordborg", - "Nordby", - "Nordfeld", - "Skagerrak", - "Nordhavns", - "Nordlands", - "Nordmarks", - "Nordre", - "Nordre Dige", - "Nordre Fasan", - "Nordre Frihavns", - "Nordre Kongelunds", - "Nordrup", - "Nordsø", - "Norges", - "Norgesminde", - "Normandi", - "November", - "Ny Adel", - "Ny Blegdams", - "Nyborg", - "Nybo", - "Nybro", - "Ny", - "Nygårds", - "Ny Kongens", - "Nyminde", - "Nyrnberg", - "Nyrops", - "Nysted", - "Nysø", - "Ny Vester", - "Ny Øster", - "Nærum", - "Næsbyholm", - "Næstved", - "Nøddebo", - "Nøjsomheds", - "Nøkkerose", - "Nørager", - "Nørre", - "Nørrebro", - "Nørre Farimags", - "Nørre Sø", - "Nørretofte", - "Nørre Vold", - "Obdams", - "Ocean", - "Odense", - "Odins", - "Odins Tvær", - "Oehlenschlægers", - "Offenbachs", - "Oldermands", - "Oldfux", - "Oldenborg", - "Olieblads", - "Oliefabriks", - "Oliemølle", - "Olufs", - "Olympos", - "Omø", - "Orgelbygger", - "Orlogsværft", - "Ottilia", - "Otto Baches", - "Ourø", - "Overbys", - "Overdrevs", - "Overn Neden Vandet", - "Overn Oven Vandet", - "Overskous", - "Oxford", - "Padua", - "Pakhus", - "Palermo", - "Pakkeri", - "Palles", - "Palnatokes", - "Palæ", - "Panums", - "Parma", - "Parnas", - "Paros", - "Pasteurs", - "Peiters", - "Per Henrik Lings", - "Perlestikker", - "Pernille", - "Persiens", - "Persille", - "Peter Ipsens", - "Petersborg", - "Philip De Langes", - "Pile", - "Pindos", - "Pistol", - "Platan", - "Polens", - "Pommerns", - "Pomona", - "Poppel", - "Portlands", - "Portugals", - "Postholder", - "Pragtstjerne", - "Primula", - "Prinsesse", - "Prisholm", - "Provste", - "Præstegårds", - "Præstekær", - "Præstemarks", - "Præstø", - "Prøvestens", - "Puggaards", - "Thomas Koppels", - "Pæon", - "Radise", - "Rabarber", - "Raffinaderi", - "Ragna", - "Ragnhild", - "Rahbeks", - "Ramløse", - "Ramsings", - "Ramunds", - "Randbøl", - "Randers", - "Rantzaus", - "Raunstrup", - "Ravenna", - "Ravneholms", - "Ravnsborg", - "Ravnsborg Tvær", - "Rebekka", - "Reberbane", - "Rebild", - "Rebslager", - "Trelleborg", - "Gdansk", - "Reersø", - "Refshale", - "Refsnæs", - "Regitse", - "Reinette", - "Rejsby", - "Remise", - "Rentemester", - "Retort", - "Reventlows", - "Reverdils", - "Reykjaviks", - "Rialto", - "Ribe", - "Ridefoged", - "Riga", - "Rigens", - "Rindby", - "Ringholm", - "Ringkøbing", - "Ringsted", - "Risager", - "Risbyholm", - "Rismose", - "Rodos", - "Romsdals", - "Romsø", - "Rosbæks", - "Roselille", - "Rosenborg", - "Rosendals", - "Rosen", - "Rosenholms", - "Rosenlunds", - "Rosenvængets", - "Rosenvængets Hoved", - "Rosenørns", - "Roshage", - "Roskilde", - "Rosmarin", - "Rossinis", - "Rostgaards", - "Rostock", - "Rothes", - "Rovsings", - "Rubikon", - "Rubinola", - "Rubinsteins", - "Rugager", - "Rughave", - "Rug", - "Rumæniens", - "Rundholts", - "Ruths", - "Ryes", - "Rygårds", - "Rymarks", - "Rysensteens", - "Ryvangs", - "Ræve", - "Rødby", - "Rødding", - "Rødelands", - "Røde Mellem", - "Rødkilde", - "Rødkløver", - "Rødtjørne", - "Rømers", - "Rønnebær", - "Rønne", - "Rønnings", - "Rørholms", - "Rørmose", - "Rørsanger", - "Røså", - "Rådhus", - "Rådmands", - "Rådvads", - "Sadelmager", - "Sakskøbing", - "Salling", - "Saltholms", - "Saltø", - "Samos", - "Samsø", - "Sandbjerg", - "Sandbygård", - "Sandhus", - "Sankelmarks", - "Sankt Jørgens", - "Sassnitz", - "Saxhøj", - "Saxo", - "Saxtorphs", - "Scandia", - "Schacks", - "Scharlings", - "Scherfigs", - "Schleppegrells", - "Schuberts", - "Sejlklub", - "Sejrø", - "Seline", - "Selsø", - "Sele", - "Serbiens", - "Serridslev", - "Shetlands", - "Siam", - "Sibberns", - "Sibelius", - "Siciliens", - "Sigbrits", - "Sigersted", - "Signelil", - "Sigurds", - "Sigyns", - "Siljan", - "Silkeborg", - "Silke", - "Sions", - "Sixtus", - "Sjællands", - "Skaffer", - "Skanderborg", - "Skarø", - "Skelbæk", - "Skelmose", - "Skensved", - "Skibelund", - "Skinder", - "Skipper Clements", - "Skippinge", - "Skjulhøj", - "Skodsborg", - "Skole", - "Skoleholder", - "Flyhangar", - "Skotlands", - "Skotterup", - "Skoubo", - "Skovbogårds", - "Skovgaards", - "Skovløber", - "Skovstjerne", - "Skudehavns", - "Skydebane", - "Skyggelunds", - "Skytte", - "Skyttegård", - "Skåne", - "Slagelse", - "Slagtehus", - "Slangerup", - "Slejpners", - "Slesvigs", - "Slotsfoged", - "Slots", - "Slotsherrens", - "Slotsholms", - "Sluse", - "Slutteri", - "Slåen", - "Smede", - "Smyrna", - "Smørum", - "Smålands", - "Snare", - "H.C. Sneedorffs", - "Sneppe", - "Snertinge", - "Snorres", - "Sofie Brahes", - "Sofie", - "Sofienhøj", - "Sognefjords", - "Sokkelunds", - "Solitude", - "Solrød", - "Solsikke", - "Solskifte", - "Soltofte", - "Summerred", - "Sommersted", - "Sonnerup", - "Sorgenfri", - "Sorrento", - "Sorø", - "Southampton", - "Spanager", - "Spangbergs", - "Spaniens", - "Spanteloft", - "Sparresholm", - "Sparta", - "Speditør", - "Spinderi", - "Spiræa", - "Spontinis", - "Sporemager", - "Spøttrup", - "Stadfeldts", - "Stadil", - "Stald", - "Stampes", - "Statholder", - "Stavanger", - "Stavnstrup", - "Steenbergs", - "Stefans", - "Steins", - "Stemanns", - "Stenderup", - "Sten", - "Stenhugger", - "Stenkløver", - "Stenlands", - "Stenlille", - "Stenløse", - "Stenmagle", - "Stenos", - "Stenrose", - "Sternberg", - "Stevns", - "Stjerne", - "Stockholms", - "Stokhus", - "Stokrose", - "Stoltenbergs", - "Storegårds", - "Store Kannike", - "Store Kirke", - "Store Kongens", - "Store Regne", - "Store Strand", - "Store Søndervold", - "Storm", - "Stradellas", - "Strandager", - "Strand", - "Strandlods", - "Stranden", - "Stratford", - "Strauss", - "Strickers", - "Strindbergs", - "Struensee", - "Strynø", - "Strødam", - "Stubbeløb", - "Stubmølle", - "Studie", - "Studsgaards", - "Sturlas", - "Stære", - "Støberi", - "Støvnæs", - "Støvring", - "Suensons", - "Suhms", - "Sumatra", - "Sundbygårds", - "Sundby Park", - "Sundbyvester", - "Sundeveds", - "Sundholms", - "Sundkrogs", - "Svane", - "Svanemølle", - "Svankær", - "Svendborg", - "Svends", - "Svenstrup", - "Sverrigs", - "Svogerslev", - "Sværte", - "Sydhavns", - "Sydløbs", - "Sylvia", - "Syriens", - "Syvens", - "Syvstens", - "Sæby", - "Sæbyholms", - "Sætersdal", - "Søfort", - "Søllerød", - "Sølunds", - "Sølv", - "Sønderborg", - "Søndermarks", - "Søndervangs", - "Søndervig", - "Søndre", - "Søndre Fasan", - "Søren Norbys", - "Sørup", - "Saabyes", - "Taffelæble", - "Tagens", - "Takkelads", - "Takkelloft", - "Tallinn", - "Tartinis", - "Teglbrænder", - "Teglgård", - "Teglholm", - "Teglholms", - "Teglholm Tvær", - "Teglstrup", - "Teglværks", - "Telemarks", - "Tersløse", - "Theis", - "Thekla", - "Thingvalla", - "Thora", - "Thors", - "Thorshavns", - "Thorsminde", - "Thorupgård", - "Thorups", - "Thurebyholm", - "Thyras", - "Thyregods", - "Thy", - "Tibirke", - "Tietgens", - "Tiger", - "Tikøb", - "Timians", - "Tingskifte", - "Tingskriver", - "Ting", - "Tipsager", - "Tirsbæk", - "Titan", - "Tjæreby", - "Tjørne", - "Tjørnelunds", - "Todes", - "Toftager", - "Toftebakke", - "Toftegårds", - "Toftøje", - "Toldbod", - "Toldskriver", - "Tomat", - "Tomsgårds", - "Tonemester", - "Torbenfeldt", - "Torben Oxes", - "Tordenskjolds", - "Torfa", - "Tornebuske", - "Tornsanger", - "Torve", - "Toskifte", - "Tovelille", - "Tovværk", - "Tranehave", - "Trane", - "Trangravs", - "Traps", - "Trekløver", - "Trekroner", - "Trepkas", - "Troja", - "Tromsø", - "Trondhjems", - "Tryggevælde", - "Trøjborg", - "Tschernings", - "Tuborg", - "Tudseminde", - "Tudskær", - "Tuelands", - "Tulipan", - "Tullins", - "Turesens", - "Tustrup", - "Tuxens", - "Tværager", - "Kiel", - "Tybjerg", - "Tyborøn", - "Tycho Brahes", - "Tyrols", - "Tyttebær", - "Tøjhus", - "Tøjmester", - "Tølløse", - "Tømmergravs", - "Tømrer", - "Tøndebinder", - "Tønder", - "Tønnes", - "Tårnblæser", - "Tårnholms", - "Tårnhus", - "Tåsinge", - "Tåstrup", - "Udby", - "Uffes", - "Uggerløse", - "Ugle", - "Ullerup", - "Ulrik Birchs", - "Ulriksdal", - "Ulvefod", - "Ulvsund", - "Ungarns", - "Uplands", - "Upsala", - "Ural", - "Urbans", - "Utterslev", - "Wagners", - "Vagtmester", - "Valborg", - "Valbygårds", - "Valby Kirke", - "Valby Lang", - "Valby Maskinfabriks", - "Valby Torve", - "Valdemars", - "Valgårds", - "Valhals", - "Valhøj", - "Valkendorfs", - "Valkyrie", - "Vallekilde", - "Vallø", - "Valmue", - "Valnødde", - "Vangehus", - "Vangs", - "Vangså", - "Vanløse", - "Vanløse By", - "Varde", - "Vasby", - "Vatna", - "Webers", - "Vedbæk", - "Weidekamps", - "Weimar", - "Vejlands", - "Vejle", - "Vejrø", - "Veksø", - "Venders", - "Vendsyssel", - "Venedig", - "Vennely", - "Venneminde", - "Venø", - "Veras", - "Verdis", - "Vermlands", - "Vermunds", - "Verona", - "Wessels", - "Vestager", - "Vestbane", - "Vesterbro", - "Vester Farimags", - "Vesterfælled", - "Vester", - "Vestergårds", - "Vesterhavs", - "Vestermarks", - "Vester Sø", - "Vestervig", - "Vester Vold", - "Vestmanna", - "Vestre", - "Vestre Kirkegårds", - "Vestre Tegl", - "Weyses", - "Vibeke", - "Vibe", - "Viborg", - "Wibrandts", - "Wiedewelts", - "Vigerslev", - "Vigerslev Gods", - "Wiinblads", - "Viktoria", - "Vildande", - "Wilders", - "Vilhelm Thomsens", - "Willemoes", - "Willums", - "Vindebro", - "Vindinge", - "Vindmølle", - "Vindrue", - "Windsor", - "Vingård", - "Visby", - "Wittenberg", - "Vognborg", - "Vognmager", - "Vogter", - "Voldmester", - "Volos", - "Wolters", - "Vordingborg", - "Vulkan", - "Væbner", - "Værksted", - "Værnedams", - "Væver", - "Vølunds", - "Vånings", - "Yderlands", - "Yduns", - "Ystad", - "Zinns", - "Æbelø", - "Æble", - "Ægina", - "Ægirs", - "Ærtebjerg", - "Ærtelands", - "Ærte", - "Ætna", - "Ølands", - "Øresund Park", - "Øresundsmotoren", - "Øresunds", - "Ørevads", - "Ørhage", - "Ørholm", - "Ørne", - "Øsels", - "Østbane", - "Øster", - "Østerbro", - "Østerdals", - "Øster Farimags", - "Østergårds", - "Øster Sø", - "Østersø", - "Øster Vold", - "Østre Tegl", - "Østrigs", - "Åbakke", - "Åbjerg", - "Ådals", - "Å", - "Ågerup", - "Åkande", - "Ålands", - "Ålborg", - "Ålekiste", - "Ålholm", - "Ålstrup", - "Åløkke", - "Aarestrups", - "Århus", - "Mælkeen", - "Løvstikke", - "Murmansk", - "Antwerpen", - "Travemünde", - "Bohrs", - "Cylinder", - "Støbegods", - "Pladehals", - "Kul", - "Diesel", - "Gloster", - "Burgundy", - "Paradisæble", - ) - - street_suffixes = ( - # gade and vej are the most common so they should be oversampled - "gade", - "gade", - "stræde", - "vej", - "vej", - "vej", - " Allé", - ) - - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - # Postcode should be formatted as described in http://www.nr.dk/danmark.html - postcode_formats = ("%###",) - - city_formats = ("{{city_name}}",) - - cities = ( - "Allinge", - "Allingåbro", - "Almind", - "Anholt", - "Ans by", - "Ansager", - "Arden", - "Askeby", - "Asnæs", - "Asperup", - "Assens", - "Asaa", - "Augustenborg", - "Aulum", - "Auning", - "Bagenkop", - "Bagsværd", - "Balle", - "Ballerup", - "Bandholm", - "Barrit", - "Beder", - "Bedsted Thy", - "Bevtoft", - "Billum", - "Billund", - "Bindslev", - "Birkerød", - "Bjerringbro", - "Bjert", - "Bjæverskov", - "Blokhus", - "Blommenslyst", - "Blåvand", - "Boeslunde", - "Bogense", - "Bogø By", - "Bolderslev", - "Bording", - "Borre", - "Borup", - "Brabrand", - "Bramming", - "Brande", - "Branderup", - "Bredebro", - "Bredsten", - "Brenderup", - "Broager", - "Broby", - "Brovst", - "Bryrup", - "Brædstrup", - "Brøndby", - "Brøndby Strand", - "Brønderslev", - "Brønshøj", - "Brørup", - "Bylderup-Bov", - "Bække", - "Bækmarksbro", - "Bælum", - "Børkop", - "Bøvlingbjerg", - "Charlottenlund", - "Christiansfeld", - "Dalby", - "Dalmose", - "Dannemare", - "Daugård", - "Dianalund", - "Dragør", - "Dronninglund", - "Dronningmølle", - "Dybvad", - "Ebberup", - "Ebeltoft", - "Egernsund", - "Egtved", - "Egå", - "Ejby", - "Ejstrupholm", - "Engesvang", - "Errindlev", - "Erslev", - "Esbjerg", - "Eskebjerg", - "Eskilstrup", - "Espergærde", - "Fakse", - "Fakse Ladeplads", - "Fanø", - "Farsø", - "Farum", - "Fejø", - "Ferritslev Fyn", - "Fjenneslev", - "Fjerritslev", - "Flemming", - "Fredensborg", - "Fredericia", - "Frederiksberg", - "Frederikshavn", - "Frederikssund", - "Frederiksværk", - "Frørup", - "Frøstrup", - "Fuglebjerg", - "Fur", - "Føllenslev", - "Føvling", - "Faaborg", - "Fårevejle", - "Fårup", - "Fårvang", - "Gadbjerg", - "Gadstrup", - "Galten", - "Gandrup", - "Gedser", - "Gedsted", - "Gedved", - "Gelsted", - "Gentofte", - "Gesten", - "Gilleleje", - "Gislev", - "Gislinge", - "Gistrup", - "Give", - "Gjerlev", - "Gjern", - "Glamsbjerg", - "Glejbjerg", - "Glesborg", - "Glostrup", - "Glumsø", - "Gram", - "Gredstedbro", - "Grenaa", - "Greve", - "Greve Strand", - "Grevinge", - "Grindsted", - "Græsted", - "Gråsten", - "Gudbjerg", - "Gudhjem", - "Gudme", - "Guldborg", - "Gørding", - "Gørlev", - "Gørløse", - "Haderslev", - "Haderup", - "Hadsten", - "Hadsund", - "Hagersten", - "Hals", - "Hammel", - "Hampen", - "Hanstholm", - "Harboøre", - "Harlev", - "Harndrup", - "Harpelunde", - "Hasle", - "Haslev", - "Hasselager", - "Havdrup", - "Havndal", - "Hedehusene", - "Hedensted", - "Hejls", - "Hejnsvig", - "Hellebæk", - "Hellerup", - "Helsinge", - "Helsingør", - "Hemmet", - "Henne", - "Herfølge", - "Herlev", - "Herlufmagle", - "Herning", - "Hesselager", - "Hillerød", - "Hinnerup", - "Hirtshals", - "Hjallerup", - "Hjerm", - "Hjortshøj", - "Hjørring", - "Hobro", - "Holbæk", - "Holeby", - "Holme-Olstrup", - "Holstebro", - "Holsted", - "Holte", - "Horbelev", - "Hornbæk", - "Hornslet", - "Hornsyld", - "Horsens", - "Horslunde", - "Hovborg", - "Hovedgård", - "Humble", - "Humlebæk", - "Hundested", - "Hundslund", - "Hurup Thy", - "Hvalsø", - "Hvide Sande", - "Hvidovre", - "Højbjerg", - "Højby", - "Højer", - "Højslev", - "Høng", - "Hørning", - "Hørsholm", - "Hørve", - "Haarby", - "Hårlev", - "Idestrup", - "Ikast", - "Ishøj", - "Janderup", - "Jelling", - "Jerslev", - "Jerslev", - "Jerup", - "Jordrup", - "Juelsminde", - "Jyderup", - "Jyllinge", - "Jystrup", - "Jægerspris", - "Kalundborg", - "Kalvehave", - "Karby", - "Karise", - "Karlslunde", - "Karrebæksminde", - "Karup", - "Kastrup", - "Kerteminde", - "Kettinge", - "Kibæk", - "Kirke Eskilstrup", - "Kirke Hyllinge", - "Kirke Såby", - "Kjellerup", - "Klampenborg", - "Klarup", - "Klemensker", - "Klippinge", - "Klovborg", - "Knebel", - "Kokkedal", - "Kolding", - "Kolind", - "Kongens Lyngby", - "Kongerslev", - "Korsør", - "Kruså", - "Kvistgård", - "Kværndrup", - "København", - "Køge", - "Langebæk", - "Langeskov", - "Langå", - "Lejre", - "Lem", - "Lemming", - "Lemvig", - "Lille Skensved", - "Lintrup", - "Liseleje", - "Lundby", - "Lunderskov", - "Lynge", - "Lystrup", - "Læsø", - "Løgstrup", - "Løgstør", - "Løgumkloster", - "Løkken", - "Løsning", - "Låsby", - "Malling", - "Mariager", - "Maribo", - "Marslev", - "Marstal", - "Martofte", - "Melby", - "Mern", - "Mesinge", - "Middelfart", - "Millinge", - "Morud", - "Munke Bjergby", - "Munkebo", - "Møldrup", - "Mørke", - "Mørkøv", - "Måløv", - "Mårslet", - "Nakskov", - "Nexø", - "Nibe", - "Nimtofte", - "Nivå", - "Nordborg", - "Nyborg", - "Nykøbing F", - "Nykøbing M", - "Nykøbing Sj", - "Nyrup", - "Nysted", - "Nærum", - "Næstved", - "Nørager", - "Nørre Alslev", - "Nørre Asmindrup", - "Nørre Nebel", - "Nørre Snede", - "Nørre Aaby", - "Nørreballe", - "Nørresundby", - "Odder", - "Odense", - "Oksbøl", - "Otterup", - "Oure", - "Outrup", - "Padborg", - "Pandrup", - "Præstø", - "Randbøl", - "Randers", - "Ranum", - "Rask Mølle", - "Redsted", - "Regstrup", - "Ribe", - "Ringe", - "Ringkøbing", - "Ringsted", - "Risskov", - "Roskilde", - "Roslev", - "Rude", - "Rudkøbing", - "Ruds Vedby", - "Rungsted Kyst", - "Ry", - "Rynkeby", - "Ryomgård", - "Ryslinge", - "Rødby", - "Rødding", - "Rødekro", - "Rødkærsbro", - "Rødovre", - "Rødvig Stevns", - "Rømø", - "Rønde", - "Rønne", - "Rønnede", - "Rørvig", - "Sabro", - "Sakskøbing", - "Saltum", - "Samsø", - "Sandved", - "Sejerø", - "Silkeborg", - "Sindal", - "Sjællands Odde", - "Sjølund", - "Skagen", - "Skals", - "Skamby", - "Skanderborg", - "Skibby", - "Skive", - "Skjern", - "Skodsborg", - "Skovlunde", - "Skælskør", - "Skærbæk", - "Skævinge", - "Skødstrup", - "Skørping", - "Skårup", - "Slagelse", - "Slangerup", - "Smørum", - "Snedsted", - "Snekkersten", - "Snertinge", - "Solbjerg", - "Solrød Strand", - "Sommersted", - "Sorring", - "Sorø", - "Spenstrup", - "Spjald", - "Sporup", - "Spøttrup", - "Stakroge", - "Stege", - "Stenderup", - "Stenlille", - "Stenløse", - "Stenstrup", - "Stensved", - "Stoholm", - "Stokkemarke", - "Store Fuglede", - "Store Heddinge", - "Store Merløse", - "Storvorde", - "Stouby", - "Strandby", - "Struer", - "Strøby", - "Stubbekøbing", - "Støvring", - "Suldrup", - "Sulsted", - "Sunds", - "Svaneke", - "Svebølle", - "Svendborg", - "Svenstrup", - "Svinninge", - "Sydals", - "Sæby", - "Søborg", - "Søby Ærø", - "Søllested", - "Sønder Felding", - "Sønder Omme", - "Sønder Stenderup", - "Sønderborg", - "Søndersø", - "Sørvad", - "Tappernøje", - "Tarm", - "Terndrup", - "Them", - "Thisted", - "Thorsø", - "Thyborøn", - "Thyholm", - "Tikøb", - "Tilst", - "Tim", - "Tinglev", - "Tistrup", - "Tisvildeleje", - "Tjele", - "Tjæreborg", - "Toftlund", - "Tommerup", - "Toreby", - "Torrig", - "Tranbjerg J", - "Tranekær", - "Trige", - "Trustrup", - "Tureby", - "Tylstrup", - "Tølløse", - "Tønder", - "Tørring", - "Tårs", - "Taastrup", - "Ugerløse", - "Uldum", - "Ulfborg", - "Ullerslev", - "Ulstrup", - "Vadum", - "Valby", - "Vallensbæk", - "Vallensbæk Strand", - "Vamdrup", - "Vandel", - "Vanløse", - "Varde", - "Vedbæk", - "Veflinge", - "Vejby", - "Vejen", - "Vejers Strand", - "Vejle", - "Vejle Øst", - "Vejstrup", - "Veksø Sjælland", - "Vemb", - "Vemmelev", - "Vesløs", - "Vestbjerg", - "Vester Skerninge", - "Vesterborg", - "Vestervig", - "Viborg", - "Viby J", - "Viby Sjælland", - "Videbæk", - "Vig", - "Vildbjerg", - "Vils", - "Vinderup", - "Vipperød", - "Virum", - "Vissenbjerg", - "Viuf", - "Vodskov", - "Vojens", - "Vonge", - "Vorbasse", - "Vordingborg", - "Vrå", - "Væggerløse", - "Værløse", - "Ærøskøbing", - "Ølgod", - "Ølsted", - "Ølstykke", - "Ørbæk", - "Ørnhøj", - "Ørsted", - "Ørum Djurs", - "Østbirk", - "Øster Assels", - "Øster Ulslev", - "Øster Vrå", - "Østermarie", - "Aabenraa", - "Aabybro", - "Åbyhøj", - "Aakirkeby", - "Aalborg", - "Ålbæk", - "Aalestrup", - "Ålsgårde", - "Århus", - "Årre", - "Aars", - "Årslev", - "Aarup", - ) - - countries = ( - "Afghanistan", - "Albanien", - "Algeriet", - "Andorra", - "Angola", - "Antigua og Barbuda", - "Argentina", - "Armenien", - "Aserbajdsjan", - "Australien", - "Bahamas", - "Bahrain", - "Bangladesh", - "Barbados", - "Belgien", - "Belize", - "Benin", - "Bermuda", - "Bhutan", - "Bolivia", - "Bosnien og Hercegovina", - "Botswana", - "Brasilien", - "Brunei", - "Bulgarien", - "Burkina Faso", - "Burma", - "Burundi", - "Cambodja", - "Cameroun", - "Canada", - "Centralafrikanske Republik", - "Chile", - "Colombia", - "Comorerne", - "Republikken Congo", - "Den Demokratiske Republik Congo", - "Costa Rica", - "Cuba", - "Cypern", - "Danmark", - "Djibouti", - "Dominica", - "Dominikanske Republik", - "Ecuador", - "Egypten", - "El Salvador", - "Elfenbenskysten", - "Eritrea", - "Estland", - "Etiopien", - "Fiji", - "Filippinerne", - "Finland", - "Forenede Arabiske Emirater", - "Frankrig", - "Færøerne", - "Gabon", - "Gambia", - "Georgien", - "Ghana", - "Grenada", - "Grækenland", - "Grønland", - "Guatemala", - "Guinea", - "Guinea-Bissau", - "Guyana", - "Fransk Guiana", - "Haiti", - "Holland", - "Honduras", - "Hviderusland", - "Indien", - "Indonesien", - "Irak", - "Iran", - "Irland", - "Island", - "Israel", - "Italien", - "Jamaica", - "Japan", - "Jordan", - "Kap Verde", - "Kasakhstan", - "Kenya", - "Kina", - "Kirgisistan", - "Kiribati", - "Kroatien", - "Kuwait", - "Laos", - "Lesotho", - "Letland", - "Libanon", - "Liberia", - "Libyen", - "Liechtenstein", - "Litauen", - "Luxembourg", - "Madagaskar", - "Malawi", - "Malaysia", - "Maldiverne", - "Mali", - "Malta", - "Marokko", - "Marshall-øerne", - "Mauretanien", - "Mauritius", - "Mexico", - "Mikronesien", - "Moldova", - "Monaco", - "Mongoliet", - "Montenegro", - "Mozambique", - "Myanmar", - "Namibia", - "Nauru", - "Nederlandske Antiller", - "Nepal", - "New Zealand", - "Nicaragua", - "Niger", - "Nigeria", - "Niue", - "Nordkorea", - "Nordmakedonien", - "Norge", - "Oman", - "Pakistan", - "Palau", - "Palæstinensisk Selvstyreområde", - "Panama", - "Papua Ny Guinea", - "Paraguay", - "Peru", - "Pitcairn", - "Polen", - "Portugal", - "Puerto Rico", - "Qatar", - "Rumænien", - "Rusland", - "Rwanda", - "Saint Kitts and Nevis", - "Saint Lucia", - "Saint Vincent og Grenadinerne", - "Salomonøerne", - "Samoa", - "San Marino", - "São Tomé og Príncipe", - "Saudi-Arabien", - "Schweiz", - "Senegal", - "Serbien", - "Seychellerne", - "Sierra Leone", - "Singapore", - "Slovakiet", - "Slovenien", - "Somalia", - "Spanien", - "Sri Lanka", - "Storbritannien", - "Sudan", - "Surinam", - "Sverige", - "Swaziland", - "Sydafrika", - "Sydkorea", - "Syrien", - "Tadsjikistan", - "Taiwan", - "Tanzania", - "Tchad", - "Thailand", - "Tjekkiet", - "Tjetjenien", - "Togo", - "Tonga", - "Trinidad og Tobago", - "Tunesien", - "Turkmenistan", - "Tuvalu", - "Tyrkiet", - "Tyskland", - "Uganda", - "Ukraine", - "Ungarn", - "Uruguay", - "USA", - "Usbekistan", - "Vanuatu", - "Vatikanstaten", - "Venezuela", - "Vestsahara", - "Vietnam", - "Yemen", - "Zambia", - "Zimbabwe", - "Ækvatorialguinea", - "Østrig", - "Østtimor", - ) - - # Known as regions in Denmark - states = ( - "Hovedstaden", - "Midtjylland", - "Nordjylland", - "Sjælland", - "Syddanmark", - ) - - def dk_street_name(self) -> str: - """ - This returns the name of a street, without any suffix. - """ - return self.random_element(self.street_names) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/da_DK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/da_DK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 069c908..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/da_DK/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/de/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/de/__init__.py deleted file mode 100644 index d9f07fe..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/de/__init__.py +++ /dev/null @@ -1,253 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - countries = ( - "Afghanistan", - "Alandinseln", - "Albanien", - "Algerien", - "Amerikanisch-Ozeanien", - "Amerikanisch-Samoa", - "Amerikanische Jungferninseln", - "Andorra", - "Angola", - "Anguilla", - "Antarktis", - "Antigua und Barbuda", - "Argentinien", - "Armenien", - "Aruba", - "Aserbaidschan", - "Australien", - "Bahamas", - "Bahrain", - "Bangladesch", - "Barbados", - "Belarus", - "Belgien", - "Belize", - "Benin", - "Bermuda", - "Bhutan", - "Bolivien", - "Bosnien und Herzegowina", - "Botsuana", - "Bouvetinsel", - "Brasilien", - "Britische Jungferninseln", - "Britisches Territorium im Indischen Ozean", - "Brunei Darussalam", - "Bulgarien", - "Burkina Faso", - "Burundi", - "Chile", - "China", - "Cookinseln", - "Costa Rica", - "Côte d’Ivoire", - "Demokratische Republik Kongo", - "Demokratische Volksrepublik Korea", - "Deutschland", - "Dominica", - "Dominikanische Republik", - "Dschibuti", - "Dänemark", - "Ecuador", - "El Salvador", - "Eritrea", - "Estland", - "Falklandinseln", - "Fidschi", - "Finnland", - "Frankreich", - "Französisch-Guayana", - "Französisch-Polynesien", - "Färöer", - "Gabun", - "Gambia", - "Georgien", - "Ghana", - "Gibraltar", - "Grenada", - "Griechenland", - "Grönland", - "Guadeloupe", - "Guam", - "Guatemala", - "Guernsey", - "Guinea", - "Guinea-Bissau", - "Guyana", - "Haiti", - "Heard- und McDonald-Inseln", - "Honduras", - "Indien", - "Indonesien", - "Irak", - "Iran", - "Irland", - "Island", - "Isle of Man", - "Israel", - "Italien", - "Jamaika", - "Japan", - "Jemen", - "Jersey", - "Jordanien", - "Kaimaninseln", - "Kambodscha", - "Kamerun", - "Kanada", - "Kap Verde", - "Kasachstan", - "Katar", - "Kenia", - "Kirgisistan", - "Kiribati", - "Kokosinseln", - "Kolumbien", - "Komoren", - "Kongo", - "Kroatien", - "Kuba", - "Kuwait", - "Laos", - "Lesotho", - "Lettland", - "Libanon", - "Liberia", - "Libyen", - "Liechtenstein", - "Litauen", - "Luxemburg", - "Madagaskar", - "Malawi", - "Malaysia", - "Malediven", - "Mali", - "Malta", - "Marokko", - "Marshallinseln", - "Martinique", - "Mauretanien", - "Mauritius", - "Mayotte", - "Mexiko", - "Mikronesien", - "Monaco", - "Mongolei", - "Montenegro", - "Montserrat", - "Mosambik", - "Myanmar", - "Namibia", - "Nauru", - "Nepal", - "Neukaledonien", - "Neuseeland", - "Nicaragua", - "Niederlande", - "Niederländische Antillen", - "Niger", - "Nigeria", - "Niue", - "Nordmazedonien", - "Norfolkinsel", - "Norwegen", - "Nördliche Marianen", - "Oman", - "Osttimor", - "Pakistan", - "Palau", - "Palästinensische Gebiete", - "Panama", - "Papua-Neuguinea", - "Paraguay", - "Peru", - "Philippinen", - "Pitcairn", - "Polen", - "Portugal", - "Puerto Rico", - "Republik Korea", - "Republik Moldau", - "Ruanda", - "Rumänien", - "Russische Föderation", - "Réunion", - "Salomonen", - "Sambia", - "Samoa", - "San Marino", - "Saudi-Arabien", - "Schweden", - "Schweiz", - "Senegal", - "Serbien", - "Serbien und Montenegro", - "Seychellen", - "Sierra Leone", - "Simbabwe", - "Singapur", - "Slowakei", - "Slowenien", - "Somalia", - "Sonderverwaltungszone Hongkong", - "Sonderverwaltungszone Macao", - "Spanien", - "Sri Lanka", - "St. Barthélemy", - "St. Helena", - "St. Kitts und Nevis", - "St. Lucia", - "St. Martin", - "St. Pierre und Miquelon", - "St. Vincent und die Grenadinen", - "Sudan", - "Suriname", - "Svalbard und Jan Mayen", - "Swasiland", - "Syrien", - "São Tomé und Príncipe", - "Südafrika", - "Südgeorgien und die Südlichen Sandwichinseln", - "Tadschikistan", - "Taiwan", - "Tansania", - "Thailand", - "Togo", - "Tokelau", - "Tonga", - "Trinidad und Tobago", - "Tschad", - "Tschechische Republik", - "Tunesien", - "Turkmenistan", - "Turks- und Caicosinseln", - "Tuvalu", - "Türkei", - "Uganda", - "Ukraine", - "Ungarn", - "Uruguay", - "Usbekistan", - "Vanuatu", - "Vatikanstadt", - "Venezuela", - "Vereinigte Arabische Emirate", - "Vereinigte Staaten", - "Vereinigtes Königreich", - "Vietnam", - "Wallis und Futuna", - "Weihnachtsinsel", - "Westsahara", - "Zentralafrikanische Republik", - "Zypern", - "Ägypten", - "Äquatorialguinea", - "Äthiopien", - "Äußeres Ozeanien", - "Österreich", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/de/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/de/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2eef499..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/de/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/de_AT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/de_AT/__init__.py deleted file mode 100644 index 5cd3a94..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/de_AT/__init__.py +++ /dev/null @@ -1,280 +0,0 @@ -from ..de import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{city_name}}",) - - city_with_postcode_formats = ("{{postcode}} {{city}}",) - - street_name_formats = ( - "{{first_name}}-{{last_name}}-{{street_suffix_long}}", - "{{last_name}}{{street_suffix_short}}", - ) - street_address_formats = ("{{street_name}} {{building_number}}",) - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - building_number_formats = ("###", "##", "#", "#/#") - - street_suffixes_long = ( - "Gasse", - "Platz", - "Ring", - "Straße", - "Weg", - ) - street_suffixes_short = ( - "gasse", - "platz", - "ring", - "straße", - "str.", - "weg", - ) - - # https://en.wikipedia.org/wiki/List_of_postal_codes_in_Austria - postcode_formats = ( - "1###", - "2###", - "3###", - "4###", - "5###", - "6###", - "7###", - "8###", - "9###", - ) - - # https://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Austria - cities = ( - "Allentsteig", - "Altheim", - "Althofen", - "Amstetten", - "Ansfelden", - "Attnang-Puchheim", - "Bad Aussee", - "Bad Hall", - "Bad Ischl", - "Bad Leonfelden", - "Bad Radkersburg", - "Bad Sankt Leonhard im Lavanttal", - "Bad Vöslau", - "Baden", - "Bärnbach", - "Berndorf", - "Bischofshofen", - "Bleiburg", - "Bludenz", - "Braunau am Inn", - "Bregenz", - "Bruck an der Leitha", - "Bruck an der Mur", - "Deutsch-Wagram", - "Deutschlandsberg", - "Dornbirn", - "Drosendorf-Zissersdorf 1", - "Dürnstein", - "Ebenfurth", - "Ebreichsdorf", - "Eferding", - "Eggenburg", - "Eisenerz", - "Eisenstadt", - "Enns", - "Fehring", - "Feldbach", - "Feldkirch", - "Feldkirchen", - "Ferlach", - "Fischamend", - "Frauenkirchen", - "Freistadt", - "Friedberg", - "Friesach", - "Frohnleiten", - "Fürstenfeld", - "Gallneukirchen", - "Gänserndorf", - "Geras", - "Gerasdorf bei Wien", - "Gföhl", - "Gleisdorf", - "Gloggnitz", - "Gmünd", - "Gmünd in Kärnten", - "Gmunden", - "Graz", - "Grein", - "Grieskirchen", - "Groß-Enzersdorf", - "Groß-Gerungs", - "Groß-Siegharts", - "Güssing", - "Haag", - "Hainburg an der Donau", - "Hainfeld", - "Hall in Tirol", - "Hallein", - "Hardegg", - "Hartberg", - "Heidenreichstein", - "Herzogenburg", - "Imst", - "Innsbruck", - "Jennersdorf", - "Judenburg", - "Kapfenberg", - "Kindberg", - "Klagenfurt", - "Klosterneuburg", - "Knittelfeld", - "Köflach", - "Korneuburg", - "Krems an der Donau", - "Kufstein", - "Laa an der Thaya", - "Laakirchen", - "Landeck", - "Langenlois", - "Leibnitz", - "Leoben", - "Lienz", - "Liezen", - "Lilienfeld", - "Linz", - "Litschau", - "Maissau", - "Mank", - "Mannersdorf am Leithagebirge", - "Marchegg", - "Marchtrenk", - "Mariazell", - "Mattersburg", - "Mattighofen", - "Mautern an der Donau", - "Melk", - "Mistelbach an der Zaya", - "Mödling", - "Murau", - "Mureck", - "Mürzzuschlag", - "Neulengbach", - "Neumarkt am Wallersee", - "Neunkirchen", - "Neusiedl am See", - "Oberndorf bei Salzburg", - "Oberpullendorf", - "Oberwart", - "Oberwälz", - "Perg", - "Peuerbach", - "Pinkafeld", - "Pöchlarn", - "Poysdorf", - "Pregarten", - "Pulkau", - "Purbach am Neusiedler See", - "Purkersdorf", - "Raabs an der Thaya", - "Radenthein", - "Radstadt", - "Rattenberg", - "Retz", - "Ried im Innkreis", - "Rohrbach in Oberösterreich", - "Rottenmann", - "Rust", - "Saalfelden am Steinernen Meer", - "Salzburg", - "Sankt Andrä im Lavanttal", - "Sankt Johann im Pongau", - "Sankt Pölten", - "Sankt Valentin", - "Sankt Veit an der Glan", - "Schärding", - "Scheibbs", - "Schladming", - "Schrattenthal", - "Schrems", - "Schwanenstadt", - "Schwaz", - "Schwechat", - "Spittal an der Drau", - "Stadtschlaining", - "Steyr", - "Steyregg", - "Stockerau", - "Straßburg", - "Ternitz", - "Traiskirchen", - "Traismauer", - "Traun", - "Trieben", - "Trofaiach", - "Tulln an der Donau", - "Villach", - "Vils", - "Vöcklabruck", - "Voitsberg", - "Völkermarkt", - "Waidhofen an der Thaya", - "Waidhofen an der Ybbs", - "Weitra", - "Weiz", - "Wels", - "Wien", - "Wiener Neustadt", - "Wieselburg", - "Wilhelmsburg", - "Wolfsberg", - "Wolkersdorf", - "Wörgl", - "Ybbs an der Donau", - "Zell am See", - "Zeltweg", - "Zistersdorf", - "Zwettl", - ) - - # https://en.wikipedia.org/wiki/States_of_Austria - states = ( - "Wien", - "Steiermark", - "Burgenland", - "Tirol", - "Niederösterreich", - "Oberösterreich", - "Salzburg", - "Kärnten", - "Vorarlberg", - ) - - municipality_key_formats = ( - "1####", - "2####", - "3####", - "4####", - "5####", - "6####", - "7####", - "8####", - "9####", - ) - - def street_suffix_short(self) -> str: - return self.random_element(self.street_suffixes_short) - - def street_suffix_long(self) -> str: - return self.random_element(self.street_suffixes_long) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit - - def city_with_postcode(self) -> str: - pattern: str = self.random_element(self.city_with_postcode_formats) - return self.generator.parse(pattern) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/de_AT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/de_AT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b5cc428..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/de_AT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/de_CH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/de_CH/__init__.py deleted file mode 100644 index be38c10..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/de_CH/__init__.py +++ /dev/null @@ -1,247 +0,0 @@ -from typing import Tuple - -from ..de import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{city_name}}",) - building_number_formats = ("%", "%#", "%#", "%#", "%##") - street_suffixes = ["strasse"] - street_name_formats = ("{{last_name}}{{street_suffix}}",) - street_address_formats = ("{{street_name}} {{building_number}}",) - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - postcode_formats = ( - "1###", - "2###", - "3###", - "4###", - "5###", - "6###", - "7###", - "8###", - "9###", - ) - - cities = ( - "Aarau", - "Adliswil", - "Aesch", - "Affoltern", - "Aigle", - "Allschwil", - "Altstätten", - "Amriswil", - "Arbon", - "Arth", - "Baar", - "Baden", - "Basel", - "Bassersdorf", - "Bellinzona", - "Belp", - "Bern", - "Bernex", - "Biel/Bienne", - "Binningen", - "Birsfelden", - "Brig-Glis", - "Brugg", - "Buchs", - "Bülach", - "Bulle", - "Burgdorf", - "Carouge", - "Cham", - "Chêne-Bougeries", - "Chur", - "Crans-Montana", - "Davos", - "Delsberg", - "Dietikon", - "Dübendorf", - "Ebikon", - "Ecublens", - "Einsiedeln", - "Emmen", - "Flawil", - "Frauenfeld", - "Freiburg", - "Freienbach", - "Genf", - "Gland", - "Glarus", - "Glarus", - "Gossau", - "Gossau", - "Grenchen", - "Herisau", - "Hinwil", - "Horgen", - "Horw", - "Illnau-Effretikon", - "Ittigen", - "Kloten", - "Köniz", - "Kreuzlingen", - "Kriens", - "Küsnacht", - "Küssnacht", - "La Chaux-de-Fonds", - "La Tour-de-Peilz", - "Lancy", - "Langenthal", - "Lausanne", - "Le Grand-Saconnex", - "Lenzburg", - "Liestal", - "Locarno", - "Lugano", - "Lutry", - "Luzern", - "Lyss", - "Männedorf", - "Martigny", - "Maur", - "Meilen", - "Mendrisio", - "Meyrin", - "Möhlin", - "Monthey", - "Montreux", - "Morges", - "Münchenbuchsee", - "Münchenstein", - "Münsingen", - "Muri", - "Muttenz", - "Naters", - "Neuenburg", - "Neuhausen", - "Nyon", - "Oberwil", - "Oftringen", - "Olten", - "Onex", - "Opfikon", - "Ostermundigen", - "Payerne", - "Pfäffikon", - "Plan-les-Ouates", - "Pratteln", - "Prilly", - "Pully", - "Rapperswil-Jona", - "Regensdorf", - "Reinach", - "Renens", - "Rheinfelden", - "Richterswil", - "Riehen", - "Risch", - "Romanshorn", - "Rüti", - "Sarnen", - "Schaffhausen", - "Schlieren", - "Schwyz", - "Siders", - "Sitten", - "Solothurn", - "Spiez", - "Spreitenbach", - "St. Gallen", - "Stäfa", - "Steffisburg", - "Steinhausen", - "Suhr", - "Sursee", - "Thalwil", - "Thônex", - "Thun", - "Urdorf", - "Uster", - "Uzwil", - "Val-de-Ruz", - "Val-de-Travers", - "Vernier", - "Versoix", - "Vevey", - "Veyrier", - "Villars-sur-Glâne", - "Volketswil", - "Wädenswil", - "Wald", - "Wallisellen", - "Weinfelden", - "Wettingen", - "Wetzikon", - "Wil", - "Winterthur", - "Wohlen", - "Worb", - "Yverdon-les-Bains", - "Zofingen", - "Zollikofen", - "Zollikon", - "Zug", - "Zürich", - ) - - cantons = ( - ("AG", "Aargau"), - ("AI", "Appenzell Innerrhoden"), - ("AR", "Appenzell Ausserrhoden"), - ("BE", "Bern"), - ("BL", "Basel-Landschaft"), - ("BS", "Basel-Stadt"), - ("FR", "Freiburg"), - ("GE", "Genf"), - ("GL", "Glarus"), - ("GR", "Graubünden"), - ("JU", "Jura"), - ("LU", "Luzern"), - ("NE", "Neuenburg"), - ("NW", "Nidwalden"), - ("OW", "Obwalden"), - ("SG", "St. Gallen"), - ("SH", "Schaffhausen"), - ("SO", "Solothurn"), - ("SZ", "Schwyz"), - ("TG", "Thurgau"), - ("TI", "Tessin"), - ("UR", "Uri"), - ("VD", "Waadt"), - ("VS", "Wallis"), - ("ZG", "Zug"), - ("ZH", "Zürich"), - ) - - def canton(self) -> Tuple[str, str]: - """ - Randomly returns a swiss canton ('Abbreviated', 'Name'). - :example ('ZH', 'Zürich') - """ - return self.random_element(self.cantons) - - def city_name(self) -> str: - """ - Randomly returns a swiss city. - :example 'Zug' - """ - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - """ - Randomly returns a Swiss canton name. - :example 'Zürich' - """ - return self.canton()[1] - - canton_name = administrative_unit - - def canton_code(self) -> str: - """ - Randomly returns a Swiss canton code. - :example 'ZH' - """ - return self.canton()[0] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/de_CH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/de_CH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0e0b212..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/de_CH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/de_DE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/de_DE/__init__.py deleted file mode 100644 index cca8c86..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/de_DE/__init__.py +++ /dev/null @@ -1,470 +0,0 @@ -from ..de import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{city_name}}",) - - city_with_postcode_formats = ("{{postcode}} {{city}}",) - - street_name_formats = ( - "{{first_name}}-{{last_name}}-{{street_suffix_long}}", - "{{last_name}}{{street_suffix_short}}", - ) - street_address_formats = ("{{street_name}} {{building_number}}",) - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - # NOTE: Zero itself can be a valid building number in rare cases e.g., Wilhelm-Wisser-Str. 0, Heidhörn - # see: https://www.uniserv.com/wissen/magazin/article/besonderheiten-von-zustelladressen/ - building_number_formats = ("#", "%#", "%##", "%###", "%/%", "%#/%#", "%-%", "%#-%#") - - street_suffixes_long = ( - "Gasse", - "Platz", - "Ring", - "Straße", - "Weg", - "Allee", - ) - street_suffixes_short = ( - "gasse", - "platz", - "ring", - "straße", - "str.", - "weg", - "allee", - ) - - postcode_formats = ("#####",) - - cities = ( - "Aachen", - "Ahaus", - "Altentreptow", - "Altötting", - "Amberg", - "Angermünde", - "Anklam", - "Ansbach", - "Apolda", - "Arnstadt", - "Artern", - "Aschaffenburg", - "Aue", - "Auerbach", - "Augsburg", - "Aurich", - "Backnang", - "Bad Brückenau", - "Bad Freienwalde", - "Bad Kissingen", - "Bad Kreuznach", - "Bad Langensalza", - "Bad Liebenwerda", - "Bad Mergentheim", - "Badalzungen", - "Badibling", - "Badoberan", - "Bamberg", - "Bautzen", - "Bayreuth", - "Beeskow", - "Beilngries", - "Belzig", - "Berchtesgaden", - "Bergzabern", - "Berlin", - "Bernburg", - "Bersenbrück", - "Biedenkopf", - "Bischofswerda", - "Bitterfeld", - "Bogen", - "Borken", - "Borna", - "Brand", - "Brandenburg", - "Bremen", - "Bremervörde", - "Brilon", - "Bruchsal", - "Burg", - "Burgdorf", - "Burglengenfeld", - "Böblingen", - "Büsingen am Hochrhein", - "Bützow", - "Calau", - "Calw", - "Celle", - "Chemnitz", - "Cloppenburg", - "Coburg", - "Cottbus", - "Crailsheim", - "Cuxhaven", - "Dachau", - "Darmstadt", - "Deggendorf", - "Delitzsch", - "Demmin", - "Dessau", - "Dieburg", - "Diepholz", - "Dinkelsbühl", - "Dinslaken", - "Donaueschingen", - "Dresden", - "Duderstadt", - "Döbeln", - "Düren", - "Ebermannstadt", - "Ebern", - "Ebersberg", - "Eberswalde", - "Eckernförde", - "Eggenfelden", - "Eichstätt", - "Eilenburg", - "Einbeck", - "Eisenach", - "Eisenberg", - "Eisenhüttenstadt", - "Eisleben", - "Emmendingen", - "Erbisdorf", - "Erding", - "Erfurt", - "Erkelenz", - "Euskirchen", - "Eutin", - "Fallingbostel", - "Feuchtwangen", - "Finsterwalde", - "Flöha", - "Forchheim", - "Forst", - "Freising", - "Freital", - "Freudenstadt", - "Fulda", - "Fürstenfeldbruck", - "Fürstenwalde", - "Füssen", - "Gadebusch", - "Gardelegen", - "Garmisch-Partenkirchen", - "Geithain", - "Geldern", - "Gelnhausen", - "Genthin", - "Gera", - "Germersheim", - "Gerolzhofen", - "Gießen", - "Gifhorn", - "Goslar", - "Gotha", - "Grafenau", - "Gransee", - "Greifswald", - "Greiz", - "Grevenbroich", - "Grevesmühlen", - "Griesbach Rottal", - "Grimma", - "Grimmen", - "Groß-Gerau", - "Großenhain", - "Gräfenhainichen", - "Guben", - "Gunzenhausen", - "Göppingen", - "Görlitz", - "Göttingen", - "Günzburg", - "Güstrow", - "Gütersloh", - "Hagenow", - "Hainichen", - "Halberstadt", - "Haldensleben", - "Hamburg", - "Hammelburg", - "Hannover", - "Hannoversch Münden", - "Hansestadttralsund", - "Havelberg", - "Hechingen", - "Heiligenstadt", - "Heinsberg", - "Helmstedt", - "Herford", - "Hersbruck", - "Herzberg", - "Hettstedt", - "Hildburghausen", - "Hildesheim", - "Hofgeismar", - "Hohenmölsen", - "Hohenstein-Ernstthal", - "Holzminden", - "Hoyerswerda", - "Husum", - "Höxter", - "Hünfeld", - "Illertissen", - "Ilmenau", - "Ingolstadt", - "Iserlohn", - "Jena", - "Jessen", - "Jülich", - "Jüterbog", - "Kaiserslautern", - "Kamenz", - "Karlsruhe", - "Kassel", - "Kehl", - "Kelheim", - "Kemnath", - "Kitzingen", - "Kleve", - "Klötze", - "Koblenz", - "Konstanz", - "Kronach", - "Kulmbach", - "Kusel", - "Kyritz", - "Königs Wusterhausen", - "Kötzting", - "Leipziger Land", - "Lemgo", - "Lichtenfels", - "Lippstadt", - "Lobenstein", - "Luckau", - "Luckenwalde", - "Ludwigsburg", - "Ludwigslust", - "Lörrach", - "Lübben", - "Lübeck", - "Lübz", - "Lüdenscheid", - "Lüdinghausen", - "Lüneburg", - "Magdeburg", - "Main-Höchst", - "Mainburg", - "Malchin", - "Mallersdorf", - "Marienberg", - "Marktheidenfeld", - "Mayen", - "Meiningen", - "Meißen", - "Melle", - "Mellrichstadt", - "Melsungen", - "Meppen", - "Merseburg", - "Mettmann", - "Miesbach", - "Miltenberg", - "Mittweida", - "Moers", - "Monschau", - "Mühldorf am Inn", - "Mühlhausen", - "München", - "Nabburg", - "Naila", - "Nauen", - "Neu-Ulm", - "Neubrandenburg", - "Neunburg vorm Wald", - "Neuruppin", - "Neuss", - "Neustadt am Rübenberge", - "Neustadtner Waldnaab", - "Neustrelitz", - "Niesky", - "Norden", - "Nordhausen", - "Northeim", - "Nördlingen", - "Nürtingen", - "Oberviechtach", - "Ochsenfurt", - "Olpe", - "Oranienburg", - "Oschatz", - "Osterburg", - "Osterode am Harz", - "Paderborn", - "Parchim", - "Parsberg", - "Pasewalk", - "Passau", - "Pegnitz", - "Peine", - "Perleberg", - "Pfaffenhofen an der Ilm", - "Pinneberg", - "Pirmasens", - "Plauen", - "Potsdam", - "Prenzlau", - "Pritzwalk", - "Pößneck", - "Quedlinburg", - "Querfurt", - "Rastatt", - "Rathenow", - "Ravensburg", - "Recklinghausen", - "Regen", - "Regensburg", - "Rehau", - "Reutlingen", - "Ribnitz-Damgarten", - "Riesa", - "Rochlitz", - "Rockenhausen", - "Roding", - "Rosenheim", - "Rostock", - "Roth", - "Rothenburg ob der Tauber", - "Rottweil", - "Rudolstadt", - "Saarbrücken", - "Saarlouis", - "Sangerhausen", - "Sankt Goar", - "Sankt Goarshausen", - "Saulgau", - "Scheinfeld", - "Schleiz", - "Schlüchtern", - "Schmölln", - "Schongau", - "Schrobenhausen", - "Schwabmünchen", - "Schwandorf", - "Schwarzenberg", - "Schweinfurt", - "Schwerin", - "Schwäbisch Gmünd", - "Schwäbisch Hall", - "Sebnitz", - "Seelow", - "Senftenberg", - "Siegen", - "Sigmaringen", - "Soest", - "Soltau", - "Sondershausen", - "Sonneberg", - "Spremberg", - "Stade", - "Stadtroda", - "Stadtsteinach", - "Staffelstein", - "Starnberg", - "Staßfurt", - "Steinfurt", - "Stendal", - "Sternberg", - "Stollberg", - "Strasburg", - "Strausberg", - "Stuttgart", - "Suhl", - "Sulzbach-Rosenberg", - "Säckingen", - "Sömmerda", - "Tecklenburg", - "Teterow", - "Tirschenreuth", - "Torgau", - "Tuttlingen", - "Tübingen", - "Ueckermünde", - "Uelzen", - "Uffenheim", - "Vechta", - "Viechtach", - "Viersen", - "Vilsbiburg", - "Vohenstrauß", - "Waldmünchen", - "Wanzleben", - "Waren", - "Warendorf", - "Weimar", - "Weißenfels", - "Weißwasser", - "Werdau", - "Wernigerode", - "Wertingen", - "Wesel", - "Wetzlar", - "Wiedenbrück", - "Wismar", - "Wittenberg", - "Wittmund", - "Wittstock", - "Witzenhausen", - "Wolfach", - "Wolfenbüttel", - "Wolfratshausen", - "Wolgast", - "Wolmirstedt", - "Worbis", - "Wunsiedel", - "Wurzen", - "Zerbst", - "Zeulenroda", - "Zossen", - "Zschopau", - ) - - states = ( - "Baden-Württemberg", - "Bayern", - "Berlin", - "Brandenburg", - "Bremen", - "Hamburg", - "Hessen", - "Mecklenburg-Vorpommern", - "Niedersachsen", - "Nordrhein-Westfalen", - "Rheinland-Pfalz", - "Saarland", - "Sachsen", - "Sachsen-Anhalt", - "Schleswig-Holstein", - "Thüringen", - ) - - def street_suffix_short(self) -> str: - return self.random_element(self.street_suffixes_short) - - def street_suffix_long(self) -> str: - return self.random_element(self.street_suffixes_long) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit - - def city_with_postcode(self) -> str: - pattern: str = self.random_element(self.city_with_postcode_formats) - return self.generator.parse(pattern) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/de_DE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/de_DE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b764b68..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/de_DE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/el_GR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/el_GR/__init__.py deleted file mode 100644 index d787427..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/el_GR/__init__.py +++ /dev/null @@ -1,4952 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - building_number_formats = ( - "###", - "##", - "##", - "##", - "#", - "#", - "##-##", - "###-###", - ) - - street_prefixes_short = ( - "Πλ.", - "Πάρ.", - "Λεωφ.", - ) - - street_prefixes_long = ( - "Πλατεία", - "Πάροδος", - "Λεωφόρος", - ) - - street_name_formats = ( - "{{street_prefix}} {{street}}", - "{{street}}", - "{{street}}", - "{{street}}", - "{{last_name_female}}", - ) - - street_address_formats = ("{{street_name}} {{building_number}}",) - - postcode_formats = ( - "### ##", - "#####", - "#####", - "ΤΚ ### ##", - "ΤΚ #####", - ) - - address_formats = ("{{street_address}},\n{{postcode}} {{city}}",) - - line_address_formats = ("{{street_address}}, {{postcode}} {{city}}",) - - def line_address(self) -> str: - pattern: str = self.random_element(self.line_address_formats) - return self.generator.parse(pattern) - - def street_prefix(self) -> str: - return self.random_element(self.street_prefixes_short + self.street_prefixes_long) - - def street_prefix_short(self) -> str: - return self.random_element(self.street_prefixes_short) - - def street_prefix_long(self) -> str: - return self.random_element(self.street_prefixes_long) - - def street(self) -> str: - return self.random_element(self.localities) - - def city(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.regions) - - region = administrative_unit - - # Ονόματα πρωτευουσών νομών - cities = ( - "Άμφισσα", - "Άρτα", - "Έδεσσα", - "Αγ. Νικόλαος", - "Αθήνα", - "Αλεξανδρούπολη", - "Αργοστόλι", - "Βέροια", - "Βόλος", - "Γρεβενά", - "Δράμα", - "Ερμούπολη", - "Ζάκυνθος", - "Ηγουμενίτσα", - "Ηράκλειο", - "Θεσσαλονίκη", - "Ιωάννινα", - "Κέρκυρα", - "Καβάλα", - "Καλαμάτα", - "Καρδίτσα", - "Καρπενήσι", - "Καστοριά", - "Κατερίνη", - "Κιλκίς", - "Κοζάνη", - "Κομοτηνή", - "Κόρινθος", - "Λάρισα", - "Λαμία", - "Λευκάδα", - "Λιβαδιά", - "Μεσολόγγι", - "Μυτιλήνη", - "Ναύπλιο", - "Ξάνθη", - "Πάτρα", - "Πολύγυρος", - "Πρέβεζα", - "Πύργος", - "Ρέθυμνο", - "Ρόδος", - "Σάμος", - "Σέρρες", - "Σπάρτη", - "Τρίκαλα", - "Τρίπολη", - "Φλώρινα", - "Χίος", - "Χαλκίδα", - "Χανιά", - ) - - # Ονόματα νομών - regions = ( - "Αιτωλία & Ακαρνανία", - "Αργολίδα", - "Αρκαδία", - "Άρτα", - "Αττική", - "Αχαΐα", - "Βοιωτία", - "Γρεβενά", - "Δράμα", - "Δωδεκάνησσος", - "Έβρος", - "Ευρυτανία", - "Εύβοια", - "Ζάκυνθος", - "Ηλεία", - "Ημαθία", - "Ηράκλειο", - "Θεσπρωτία", - "Θεσσαλονίκη", - "Ιωάννινα", - "Κέρκυρα", - "Καβάλα", - "Καρδίτσα", - "Καστοριά", - "Κεφαλληνία", - "Κιλκίς", - "Κοζάνη", - "Κορινθία", - "Κυκλάδες", - "Λάρισσα", - "Λέσβος", - "Λακωνία", - "Λασσίθι", - "Λευκάδα", - "Μαγνησία", - "Μεσσηνία", - "Ξάνθη", - "Πέλλα", - "Πιερία", - "Πρέβεζα", - "Ρέθυμνο", - "Ροδόπη", - "Σάμος", - "Σέρρες", - "Τρίκαλα", - "Φθιώτιδα", - "Φλώρινα", - "Φωκίδα", - "Χίος", - "Χαλκιδική", - "Χανιά", - ) - - # Ονόματα χωρών - countries = ( - "Άγιος Βαρθολομαίος", - "Άγιος Βικέντιος και Γρεναδίνες", - "Άγιος Μαρίνος", - "Άγιος Μαρτίνος", - "Άγιος Μαρτίνος (Γαλλικό Κομμάτι)", - "Άγιος Πέτρος και Μικελόν", - "Άγιος Χριστόφορος και Νέβις", - "Αίγυπτος", - "Αγία Ελένη, Ασενσιόν και Τριστάν ντα Κούνια", - "Αγία Λουκία", - "Αζερμπαϊτζάν", - "Αιθιοπία", - "Ακτή Ελεφαντοστού", - "Αλβανία", - "Αλγερία", - "Αμερικανικές Παρθένοι Νήσοι", - "Αμερικανική Σαμόα", - "Ανατολικό Τιμόρ", - "Ανγκουίλα", - "Ανγκόλα", - "Ανδόρα", - "Αντίγκουα και Μπαρμπούντα", - "Ανταρκτική", - "Απομακρυσμένες Νησίδες των Ηνωμένων Πολιτειών", - "Αραβική Δημοκρατία της Λιβύης", - "Αργεντινή", - "Αρμενία", - "Αρούμπα", - "Αυστρία", - "Αυστραλία", - "Αφγανιστάν", - "Αϊτή", - "Βέλγιο", - "Βανουάτου", - "Βατικανό", - "Βενεζουέλα", - "Βερμούδες", - "Βιετνάμ", - "Βολιβία", - "Βοσνία-Ερζεγοβίνη", - "Βουλγαρία", - "Βραζιλία", - "Βρετανικές Παρθένοι Νήσοι", - "Βρετανικό Έδαφος Ινδικού Ωκεανού", - "Βόρειες Μαριάνες Νήσοι", - "Γαλλία", - "Γαλλικά Νότια και Ανταρκτικά Εδάφη", - "Γαλλική Γουιάνα", - "Γαλλική Πολυνησία", - "Γερμανία", - "Γεωργία", - "Γιβραλτάρ", - "Γκάμπια", - "Γκάνα", - "Γκέρνσεϊ", - "Γκαμπόν", - "Γκουάμ", - "Γουάλις και Φουτούνα", - "Γουαδελούπη", - "Γουατεμάλα", - "Γουιάνα", - "Γουινέα", - "Γουινέα-Μπισσάου", - "Γρενάδα", - "Γροιλανδία", - "Δανία", - "Δημοκρατία της Βόρειας Μακεδονίας", - "Δημοκρατία της Κορέας", - "Δομινίκα", - "Δομινικανή Δημοκρατία", - "Δυτική Σαχάρα", - "Ελ Σαλβαδόρ", - "Ελβετία", - "Ελλάδα", - "Ερυθραία", - "Εσθονία", - "Ζάμπια", - "Ζιμπάμπουε", - "Ηνωμένα Αραβικά Εμιράτα", - "Ηνωμένες Πολιτείες Αμερικής", - "Ηνωμένο Βασίλειο", - "Ιαπωνία", - "Ινδία", - "Ινδονησία", - "Ιορδανία", - "Ιράκ", - "Ιράν", - "Ιρλανδία", - "Ισημερινή Γουινέα", - "Ισημερινός", - "Ισλανδία", - "Ισπανία", - "Ισραήλ", - "Ιταλία", - "Κένυα", - "Κίνα", - "Καζακστάν", - "Καμερούν", - "Καμπότζη", - "Καναδάς", - "Κατάρ", - "Κεντροαφρικανική Δημοκρατία", - "Κιργιστάν", - "Κιριμπάτι", - "Κολομβία", - "Κομόρες", - "Κονγκό", - "Κουβέιτ", - "Κουρακάο", - "Κούβα", - "Κροατία", - "Κόστα Ρίκα", - "Κύπρος", - "Λίβανος", - "Λαοκρατική Δημοκρατία της Κορέας", - "Λαϊκή Δημοκρατία του Κονγκό", - "Λαϊκή Δημοκρατία του Λάος", - "Λεσότο", - "Λετονία", - "Λευκορωσία", - "Λιβερία", - "Λιθουανία", - "Λιχτενστάϊν", - "Λουξεμβούργο", - "Μάλι", - "Μάλτα", - "Μαγιότ", - "Μαδαγασκάρη", - "Μακάο", - "Μαλάουι", - "Μαλαισία", - "Μαλδίβες", - "Μαρτινίκη", - "Μαρόκο", - "Μαυρίκιος", - "Μαυριτανία", - "Μαυροβούνιο", - "Μεξικό", - "Μιανμάρ", - "Μικρονησία", - "Μογγολία", - "Μοζαμβίκη", - "Μολδαβία", - "Μονακό", - "Μονσεράτ", - "Μπαγκλαντές", - "Μπαρμπάντος", - "Μπαχάμες", - "Μπαχρέιν", - "Μπελίζ", - "Μπενίν", - "Μποτσουάνα", - "Μπουρκίνα Φάσο", - "Μπουρουντί", - "Μπουτάν", - "Μπρουνέι", - "Νέα Ζηλανδία", - "Νέα Καληδονία", - "Νήσοι Κουκ", - "Νήσοι Κόκος", - "Νήσοι Μάρσαλ", - "Νήσοι Πίτκαιρν", - "Νήσοι Σολομώντα", - "Νήσοι Φώκλαντ", - "Νήσοι Χερντ και Μακντόναλντ", - "Νήσοι Ώλαντ", - "Νήσος Μαν", - "Νήσος Μπουβέ", - "Νήσος των Χριστουγέννων", - "Νίγηρας", - "Ναμίμπια", - "Ναουρού", - "Νεπάλ", - "Νησί Νόρφολκ", - "Νησιά Καϋμάν", - "Νησιά Τερκς και Κάικος", - "Νησιά Φερόες", - "Νιγηρία", - "Νικαράγουα", - "Νιούε", - "Νορβηγία", - "Νότιος Αφρική", - "Νότιος Γεωργία και οι Νότιοι Σάντουιτς Νήσοι", - "Ολλανδία", - "Ολλανδικές Αντίλλες", - "Ομάν", - "Ονδούρα", - "Ουγγαρία", - "Ουγκάντα", - "Ουζμπεκιστάν", - "Ουκρανία", - "Ουρουγουάη", - "Πακιστάν", - "Παλάου", - "Παλαιστίνη", - "Παναμάς", - "Παπούα Νέα Γουινέα", - "Παραγουάη", - "Περού", - "Πολωνία", - "Πορτογαλία", - "Πουέρτο Ρίκο", - "Πράσινο Ακρωτήρι", - "Ρεϊνιόν", - "Ρουάντα", - "Ρουμανία", - "Ρωσία", - "Σάο Τομέ και Πρίνσιπε", - "Σαμόα", - "Σαουδική Αραβία", - "Σβάλμπαρντ και Γιαν Μαγιέν", - "Σενεγάλη", - "Σερβία", - "Σεϋχέλλες", - "Σιέρα Λεόνε", - "Σιγκαπούρη", - "Σλοβακία", - "Σλοβενία", - "Σομαλία", - "Σουαζιλάνδη", - "Σουδάν", - "Σουηδία", - "Σουρινάμ", - "Σρι Λάνκα", - "Συρία", - "Τανζανία", - "Τατζικιστάν", - "Ταϊβάν", - "Ταϊλάνδη", - "Τζέρσεϊ", - "Τζαμάικα", - "Τζιμπουτί", - "Τοκελάου", - "Τουβαλού", - "Τουρκία", - "Τουρκμενιστάν", - "Τρινιντάντ και Τομπάγκο", - "Τσαντ", - "Τσεχία", - "Τυνησία", - "Τόγκο", - "Τόνγκα", - "Υεμένη", - "Φίτζι", - "Φιλιππίνες", - "Φινλανδία", - "Χιλή", - "Χονγκ Κονγκ", - ) - - # Επίσημα τοπικά διαμερίσματα. - # Χρησιμοποιούνται ως ονόματα δρόμων (λόγω ανάγκης για γενική κλίση). - # Η λίστα είναι από το ΥΠ.ΕΣ. (μετά από επεξεργασία και μορφοποίηση) - localities = ( - "Άγρα", - "Άγρας", - "Άδελε", - "Άκρης", - "Άλλης Μεριάς", - "Άλσους", - "Άμμου", - "Άμπλιανης", - "Άνδρου", - "Άργους", - "Άργους Ορεστικού", - "Άρζου", - "Άρλας", - "Άρμπουνα", - "Άρνης", - "Άσκρης", - "Άσου", - "Άσπρου", - "Άσπρων Σπιτιών", - "Άσσου", - "Άστρους", - "Άτταλης", - "Άφρας", - "Έλους", - "Έμπωνα", - "Έρφων", - "Ήπιον", - "Ήρας", - "Ίδας", - "Ίμπρου", - "Ίσαρη", - "Αΐμονα", - "Αβάτου", - "Αβίας", - "Αβαρίκου", - "Αβγαριάς", - "Αβγού", - "Αβδέλλας", - "Αβδήρων", - "Αβδού", - "Αβρακόντε", - "Αβραμιού", - "Αβραμυλιάς", - "Αβόρανης", - "Αβόρου", - "Αγάπης", - "Αγία Βαρβάρα", - "Αγία Κυριακή", - "Αγία Παρασκευή", - "Αγίας Άννας", - "Αγίας Άννης", - "Αγίας Αναστασίας", - "Αγίας Βαρβάρας", - "Αγίας Βλαχέρνης", - "Αγίας Γαλήνης", - "Αγίας Ειρήνης", - "Αγίας Ελένης", - "Αγίας Ευθυμίας", - "Αγίας Ευφημίας", - "Αγίας Θέκλης", - "Αγίας Κυριακής", - "Αγίας Μαρίνης", - "Αγίας Μαύρας", - "Αγίας Παρασκευής", - "Αγίας Ρουμέλης", - "Αγίας Σοφίας", - "Αγίας Σωτήρας", - "Αγίου", - "Αγίου Αδριανού", - "Αγίου Αθανασίου", - "Αγίου Ακακίου", - "Αγίου Ανδρέου", - "Αγίου Αντωνίου", - "Αγίου Αρσενίου", - "Αγίου Αχιλλείου", - "Αγίου Βαρθολομαίου", - "Αγίου Βασιλείου", - "Αγίου Βασιλείου Κυνουρίας", - "Αγίου Βασιλείου Μαντινείας", - "Αγίου Βησσαρίου", - "Αγίου Βλασίου", - "Αγίου Γερμανού", - "Αγίου Γεωργίου", - "Αγίου Γεωργίου Δομοκού", - "Αγίου Γεωργίου Λαρίσης", - "Αγίου Γεωργίου Λασιθίου", - "Αγίου Γεωργίου Νηλείας", - "Αγίου Γεωργίου Σητείας", - "Αγίου Γεωργίου Συκούση", - "Αγίου Γεωργίου Φαρσάλων", - "Αγίου Γεωργίου Φερών", - "Αγίου Δημητρίου", - "Αγίου Δημητρίου Μονεμβασίας", - "Αγίου Δημητρίου Πηλίου", - "Αγίου Ευστρατίου", - "Αγίου Ηλία", - "Αγίου Ηλία Πηνηίων", - "Αγίου Ηλία Πύργου", - "Αγίου Θεοδώρου", - "Αγίου Θωμά", - "Αγίου Ισιδώρου", - "Αγίου Ιωάννη", - "Αγίου Ιωάννου", - "Αγίου Ιωάννου Αγίου Βασιλείου", - "Αγίου Ιωάννου Αμαρίου", - "Αγίου Ιωάννου Αρχαίας Ηραίας", - "Αγίου Ιωάννου Επιδαύρου Λιμήρας", - "Αγίου Ιωάννου Μυλοποτάμου", - "Αγίου Ιωάννου Ρέντη", - "Αγίου Κηρύκου", - "Αγίου Κοσμά", - "Αγίου Κυρίλλου", - "Αγίου Κωνσταντίνου", - "Αγίου Λαυρεντίου", - "Αγίου Λουκά", - "Αγίου Μάρκου", - "Αγίου Ματθαίου", - "Αγίου Μηνά", - "Αγίου Νικήτα", - "Αγίου Νικολάου", - "Αγίου Νικολάου Βοιών", - "Αγίου Νικολάου Βονίτσης και Ξηρομέρου", - "Αγίου Νικολάου Κράλης", - "Αγίου Νικολάου Μονεμβασίας", - "Αγίου Νικολάου Σπάτων", - "Αγίου Ονουφρίου", - "Αγίου Πέτρου", - "Αγίου Παντελεήμονα", - "Αγίου Παύλου", - "Αγίου Πολυκάρπου", - "Αγίου Προδρόμου", - "Αγίου Προκοπίου", - "Αγίου Σεραφείμ", - "Αγίου Στεφάνου", - "Αγίου Σύλλα", - "Αγίου Σώστου", - "Αγίου Φλώρου", - "Αγίου Χαραλάμπους", - "Αγίου Χριστοφόρου", - "Αγίων Αναργύρων", - "Αγίων Αποστόλων", - "Αγίων Δέκα", - "Αγίων Δούλων", - "Αγίων Θεοδώρων", - "Αγίων Πάντων", - "Αγίων Παρασκιών", - "Αγαθονησίου", - "Αγαθουπόλεως", - "Αγαλά", - "Αγαλιανής", - "Αγαλιανού", - "Αγγίστης", - "Αγγελιανών", - "Αγγελοκάστρου", - "Αγγελοχωρίου", - "Αγγελώνας", - "Αγδινών", - "Αγιάς", - "Αγιάσου", - "Αγιοβλασιτίκων", - "Αγιονερίου", - "Αγιονορίου", - "Αγιοπηγής", - "Αγιοφύλλου", - "Αγιοχωρίου", - "Αγιοχώριον", - "Αγιωργιτίκων", - "Αγκίστρου", - "Αγκαθιάς", - "Αγκαιριάς", - "Αγκαρυώνων", - "Αγκιστρίου", - "Αγκουσελιανών", - "Αγνάντης", - "Αγνάντων", - "Αγναντερής", - "Αγναντερού", - "Αγναντιάς", - "Αγοράς", - "Αγράφων", - "Αγρίλου", - "Αγραμπέλων", - "Αγραπιδεών", - "Αγραπιδιάς", - "Αγραπιδοχωρίου", - "Αγραφών", - "Αγρελιάς", - "Αγριάνων", - "Αγριάς", - "Αγριακόνας", - "Αγριανής", - "Αγριδίου", - "Αγριλιάς Μεσσήνης", - "Αγριλιάς Τριφυλίας", - "Αγριλοβούνου", - "Αγρινίου", - "Αγριοβοτάνου", - "Αγροσυκέας", - "Αγρού", - "Αγχιάλου", - "Αγόριανης", - "Αδάμ", - "Αδένδρου", - "Αδαμίου", - "Αδελφικού", - "Αδριανής", - "Αερινού", - "Αετολόφου", - "Αετομηλίτσης", - "Αετοπέτρας", - "Αετοπέτρας Δωδώνης", - "Αετοπέτρας Κονίτσης", - "Αετορράχη", - "Αετορράχης", - "Αετού", - "Αζώρου", - "Αηδονίων", - "Αηδονιάς", - "Αηδονοχωρίου", - "Αθαμανίας", - "Αθαμανίου", - "Αθανίου", - "Αθανασίου Διάκου", - "Αθηναίου", - "Αθηναίων", - "Αθικίων", - "Αθύρων", - "Αιανής", - "Αιαντείου", - "Αιγάλεω", - "Αιγάνης", - "Αιγίνης", - "Αιγίου", - "Αιγείρας", - "Αιγείρου", - "Αιγιάλης", - "Αιγινίου", - "Αιγιών", - "Αιγών", - "Αιθαίας", - "Αισύμης", - "Αιτωλικού", - "Ακοντίου", - "Ακουμίων", - "Ακράτας", - "Ακρίτα", - "Ακρίτας", - "Ακρίων", - "Ακραιφνίου", - "Ακρασίου", - "Ακρινής", - "Ακριτοχωρίου", - "Ακρολίμνης", - "Ακροποτάμου", - "Ακροποταμιάς", - "Ακρωτηρίου", - "Ακρών", - "Ακταίου", - "Ακόβου", - "Αλέας", - "Αλίκων", - "Αλίμου", - "Αλαγνίου", - "Αλαγονίας", - "Αλαλκομενών", - "Αλατόπετρας", - "Αλειμματάδων", - "Αλεξάνδρου", - "Αλεξανδρείας", - "Αλεξανδρουπόλεως", - "Αλεποχωρίου", - "Αλεποχωρίου Μπότσαρη", - "Αλεπούς", - "Αλεστίων", - "Αλεσταίνης", - "Αλευράδας", - "Αλευρούς", - "Αληθινής", - "Αλιάρτου", - "Αλιβερίου", - "Αλικάμπου", - "Αλικανά", - "Αλικαρνασσού", - "Αλικιανού", - "Αλισσού", - "Αλιστράτης", - "Αλιφείρας", - "Αλμυροποτάμου", - "Αλμυρού", - "Αλοίδων", - "Αλοννήσου", - "Αλποχωρίου", - "Αλτομιρών", - "Αλυφαντών", - "Αλφάς", - "Αλφειούσης", - "Αλωνίων", - "Αλωνακίων", - "Αλωνισταίνης", - "Αλώνων", - "Αλώρου", - "Αμάδων", - "Αμαλιαπόλεως", - "Αμαξάδων", - "Αμαράντου", - "Αμαράντων", - "Αμαρίου", - "Αμαριανού", - "Αμαρουσίου", - "Αμαρύνθου", - "Αμβρακίας", - "Αμβροσίας", - "Αμελάντων", - "Αμιρά", - "Αμισιανών", - "Αμμολόχου", - "Αμμοτόπου", - "Αμμουδάρας", - "Αμμουδιάς", - "Αμμουλιανής", - "Αμμοχωρίου", - "Αμνάτου", - "Αμορίου", - "Αμοργιανών", - "Αμοργού", - "Αμουρίου", - "Αμπέλου", - "Αμπέλων", - "Αμπελίων", - "Αμπελακίου", - "Αμπελακίων", - "Αμπελακιωτίσσης", - "Αμπελείας", - "Αμπελειών", - "Αμπελιάς", - "Αμπελικού", - "Αμπελιώνας", - "Αμπελοκάμπου", - "Αμπελοκήπων", - "Αμπελοφύτου", - "Αμπελοχωρίου", - "Αμπελούζου", - "Αμυγδαλέας", - "Αμυγδαλής", - "Αμυγδαλεών", - "Αμυγδαλιάς", - "Αμυγδαλοκεφαλίου", - "Αμυκλών", - "Αμυνταίου", - "Αμφία", - "Αμφίσσης", - "Αμφείας", - "Αμφιθέας", - "Αμφικλείας", - "Αμφιλοχίας", - "Αμφιπόλεως", - "Ανάβατου", - "Ανάβρας", - "Ανάφης", - "Ανέζης", - "Αναβρυτής", - "Αναβρυτού", - "Αναβρυτών", - "Αναβύσσου", - "Αναγεννήσεως", - "Ανακασιάς", - "Αναλήψεως", - "Αναργύρων", - "Αναρράχης", - "Αναστάσεως", - "Αναστασίας", - "Ανατολής", - "Ανατολικής", - "Ανατολικής Φραγκίστας", - "Ανατολικού", - "Αναφωνητρίας", - "Ανδανίας", - "Ανδρίτσης", - "Ανδραβίδας", - "Ανδριτσαίνης", - "Ανδρούσης", - "Ανδρωνιάνων", - "Ανεμοδουρίου", - "Ανεμομύλου", - "Ανεμορράχης", - "Ανεμοχωρίου", - "Ανεμότιας", - "Ανηλίου", - "Ανθήλης", - "Ανθής", - "Ανθείας", - "Ανθηρού", - "Ανθοτόπου", - "Ανθοφύτου", - "Ανθοχωρίου", - "Ανθοχωρίου Δωδώνης", - "Ανθοχωρίου Μετσόβου", - "Ανθοχώριον", - "Ανθούσης", - "Ανθρακίτη", - "Ανιάδας", - "Ανοίξεως", - "Ανοιξιάτικου", - "Αντίσσης", - "Ανταρτικού", - "Αντιγονείας", - "Αντικαλάμου", - "Αντικυθήρων", - "Αντικύρας", - "Αντιμαχείας", - "Αντιπάρου", - "Αντιπάτων Ερίσου", - "Αντιπερνών", - "Αντιρρίου", - "Αντισκαρίου", - "Αντιφιλίππων", - "Αντρωνίου", - "Ανυφίου", - "Ανωγής", - "Ανωγείου", - "Ανωγείων", - "Ανωπόλεως", - "Ανύδρου", - "Ανώσκελης", - "Αξιοκάστρου", - "Αξιουπόλεως", - "Αξιοχωρίου", - "Αξού", - "Απεράθου", - "Απερίου", - "Απεσωκαρίου", - "Απιδέα", - "Απιδέας", - "Απιδίων", - "Απλαδιανών", - "Αποδούλου", - "Αποικίων", - "Απολακκιάς", - "Απολλωνίας", - "Απολπαίνης", - "Αποστολιά", - "Αποστόλων", - "Απροβάτου", - "Απτέρων", - "Απόλλωνα", - "Αράξου", - "Αράχου", - "Αρήνης", - "Αρίας", - "Αρίσβη", - "Αρίσβης", - "Αρίστης", - "Αραβησσού", - "Αραχαμιτών", - "Αραχναίου", - "Αραχοβιτίκων", - "Αραχόβης", - "Αρβανίτη", - "Αργέννου", - "Αργίλου", - "Αργαλαστής", - "Αργασίου", - "Αργιθέας", - "Αργινίων", - "Αργολικού", - "Αργοστολίου", - "Αργυράδων", - "Αργυράς", - "Αργυρίου", - "Αργυρίων", - "Αργυροπουλείου", - "Αργυροτόπου", - "Αργυρουπόλεως", - "Αργυροχωρίου", - "Αργυρού", - "Αργυρού Πηγαδίου", - "Αργυρούπολης", - "Αργυρούπολις", - "Αρδάκτου", - "Αρδάσσης", - "Αρδαμερίου", - "Αρδανίου", - "Αρδείας", - "Αρδόσεως", - "Αρεθούσης", - "Αρεοπόλεως", - "Αρετής", - "Αριδαίας", - "Αριοχωρίου", - "Αριστοδημείου", - "Αριστομένους", - "Αρκάσας", - "Αρκίτσας", - "Αρκαδάδων", - "Αρκαδικού", - "Αρκαλοχωρίου", - "Αρκεσίνης", - "Αρκοχωρίου", - "Αρμάτων", - "Αρμένων", - "Αρματολικού", - "Αρμενάδων", - "Αρμενίου", - "Αρμενιών", - "Αρμενοχωρίου", - "Αρμολίων", - "Αρνά", - "Αρνίθας", - "Αρνίσσης", - "Αρναίας", - "Αροανίας", - "Αρραβωνίτσης", - "Αρριανά", - "Αρσενίου", - "Αρσινόης", - "Αρτάκης", - "Αρτέμιδας", - "Αρταίων", - "Αρτεμισίας", - "Αρτεμισίου", - "Αρτεσιανού", - "Αρτικίου", - "Αρτοπούλας", - "Αρτοτίνας", - "Αρφαρών", - "Αρχαίας Ήλιδας", - "Αρχαίας Ελεύθερνας", - "Αρχαίας Επιδαύρου", - "Αρχαίας Κορίνθου", - "Αρχαίας Μεσσήνης", - "Αρχαίας Νεμέας", - "Αρχαίας Ολυμπίας", - "Αρχαίας Πίσας", - "Αρχαίας Φενεού", - "Αρχαίων Κλεωνών", - "Αρχαγγέλου", - "Αρχανίου", - "Αρχανών", - "Αρχιλόχου", - "Αρχιπόλεως", - "Αρχοντικά", - "Αρχοντικής", - "Αρχοντικού", - "Αρχοντοχωρίου", - "Αρωγή", - "Αρωνά", - "Αρωνίου", - "Αρωνιαδίκων", - "Ασέας", - "Ασή Γωνιάς", - "Ασίνης", - "Ασβεστάδων", - "Ασβεστίου", - "Ασβεστοπέτρας", - "Ασβεστοχωρίου", - "Ασημένιου", - "Ασημίου", - "Ασημοχωρίου", - "Ασιτών", - "Ασκληπιείου", - "Ασκού", - "Ασκύφου", - "Ασκών", - "Ασμηνίου", - "Ασπραγγέλων", - "Ασπριάς", - "Ασπροβάλτας", - "Ασπρογείων", - "Ασπρογερακάτων", - "Ασπροκάμπου", - "Ασπροκκλησίου", - "Ασπροκκλησιάς", - "Ασπρονερίου", - "Ασπροπουλιάς", - "Ασπροπύργου", - "Ασπροχωρίου", - "Ασπρούλας", - "Ασσήρου", - "Αστακού", - "Αστερίου", - "Αστρά", - "Αστράκων", - "Αστρίτσης", - "Αστριτσίου", - "Αστροχωρίου", - "Αστυπαλαίας", - "Αστυρακίου", - "Ασφάκας", - "Ασφένδου", - "Ασφενδιού", - "Ασωμάτου", - "Ασωμάτων", - "Ασωπίας", - "Ασωπού", - "Ασώματα", - "Αταλάντης", - "Ατραπού", - "Ατσικής", - "Ατσιποπούλου", - "Ατσιχόλου", - "Αυγής", - "Αυγείου", - "Αυγενικής", - "Αυγερινού", - "Αυγώνυμων", - "Αυλής", - "Αυλακίου", - "Αυλιωτών", - "Αυλοτόπου", - "Αυλωναρίου", - "Αυλών", - "Αφάντου", - "Αφετών", - "Αφιδνών", - "Αφισίου", - "Αφράτου", - "Αφράτων", - "Αφρατίου", - "Αφροξυλιάς", - "Αφύτου", - "Αχαΐας", - "Αχαρνών", - "Αχαϊκού", - "Αχεντριά", - "Αχερουσίας", - "Αχιλλείου", - "Αχινού", - "Αχλάδας", - "Αχλαδέ", - "Αχλαδέας", - "Αχλαδίου", - "Αχλαδίων", - "Αχλαδερής", - "Αχλαδεών", - "Αχλαδινής", - "Αχλαδοκάμπου", - "Αχλαδοκάστρου", - "Αχλαδοχωρίου", - "Αχυρών", - "Αψάλου", - "Αϊδινίου", - "Αϊτανίων", - "Αύρας", - "Βάβδου", - "Βάγγου", - "Βάθειας", - "Βάθης", - "Βάλτας", - "Βάλτου", - "Βάμου", - "Βάρδας", - "Βάρης", - "Βάρνακα", - "Βάρους", - "Βάστα", - "Βάτου", - "Βάχλιας", - "Βάχου", - "Βέλου", - "Βέλους", - "Βέργας", - "Βέργης", - "Βέροιας", - "Βέσσης", - "Βήσσανης", - "Βίβλου", - "Βίγλας", - "Βίνιανης", - "Βίτολης", - "Βίτσης", - "Βαβιλών", - "Βαβουρίου", - "Βαγίων", - "Βαγενιτίου", - "Βαγιονιάς", - "Βαθέως", - "Βαθείας", - "Βαθυκοίλου", - "Βαθυλάκκου", - "Βαθυπέδου", - "Βαθυτόπου", - "Βαλανίδας", - "Βαλανείου", - "Βαλανιδιάς", - "Βαλανιδοράχης", - "Βαλανιδούσσας", - "Βαλαώρας", - "Βαλεριάνου", - "Βαλιμής", - "Βαλιμιτίκων", - "Βαλκάνου", - "Βαλσαμονέρου", - "Βαλτερού", - "Βαλτεσινίκου", - "Βαλτετσίου", - "Βαλτινού", - "Βαλτονέρων", - "Βαλτοτοπίου", - "Βαλτοχωρίου", - "Βαλύρας", - "Βαμβακιάς", - "Βαμβακοπούλου", - "Βαμβακοφύτου", - "Βαμβακούς", - "Βαμβακούσσης", - "Βανάδας", - "Βανάτου", - "Βαπτιστού", - "Βαρβάρας", - "Βαρβίτσης", - "Βαρβασαίνης", - "Βαργιάδων", - "Βαργιάνης", - "Βαρδάτων", - "Βαρδαλής", - "Βαρετάδας", - "Βαρθολομιού", - "Βαρικού", - "Βαρλαάμ", - "Βαρνάβα", - "Βαρυπατάδων", - "Βαρύπετρου", - "Βασαρά", - "Βασιλή", - "Βασιλακίου", - "Βασιλατίκων", - "Βασιλειών", - "Βασιλεωνοίκου", - "Βασιλικής", - "Βασιλικιάδων", - "Βασιλικού", - "Βασιλικών", - "Βασιλικών Ανωγείων", - "Βασιλιτσίου", - "Βασιλοπούλου", - "Βασιλουδίου", - "Βατίου", - "Βατατάδων", - "Βατερού", - "Βατολάκκου", - "Βατοχωρίου", - "Βατούσσης", - "Βατσουνιάς", - "Βαυκερής", - "Βαφέ", - "Βαφιοχωρίου", - "Βαχού", - "Βεγόρων", - "Βελάς", - "Βελίκας", - "Βελίνης", - "Βελανιδίου", - "Βελανιδίων", - "Βελανιδιάς", - "Βελβίνας", - "Βελβεντού", - "Βελεντζικού", - "Βελεσιωτών", - "Βελεστίνου", - "Βελημαχίου", - "Βελιγοστής", - "Βελιμαχίου", - "Βελιτσών", - "Βελιών", - "Βελονάδων", - "Βελωτών", - "Βενίου", - "Βενεράτου", - "Βερίνου", - "Βερβένων", - "Βερβεράτου", - "Βεργίνης", - "Βερδικούσσης", - "Βερενίκης", - "Βερμίου", - "Βερτίσκου", - "Βεύης", - "Βιάννου", - "Βιδιακίου", - "Βιζαρίου", - "Βικίου", - "Βιλίων", - "Βιλανδρέδου", - "Βιλιβίνης", - "Βιρού", - "Βισταγής", - "Βιτάλων", - "Βιταλάδων", - "Βιταλίου", - "Βλάση", - "Βλάστης", - "Βλάτους", - "Βλασίας", - "Βλασίου", - "Βλαχάβας", - "Βλαχάτων Εικοσιμίας", - "Βλαχέρνης", - "Βλαχατάνου", - "Βλαχερωνιτίσσης", - "Βλαχιάς", - "Βλαχιώτη", - "Βλαχογιαννίου", - "Βλαχοκερασέας", - "Βλαχομάνδρας", - "Βλαχοπούλου", - "Βλησιδιάς", - "Βλιζιανών", - "Βλοχού", - "Βλυχού", - "Βοβούσης", - "Βογατσικού", - "Βοθιανών", - "Βολιμών", - "Βολισσού", - "Βομβοκούς", - "Βορδονίας", - "Βορεινού", - "Βοριζίων", - "Βοσκοχωρίου", - "Βοτονοσίου", - "Βουβοποτάμου", - "Βουβών", - "Βουγιάτου", - "Βουζίου", - "Βουκολιών", - "Βουλγάρω", - "Βουλιάστης", - "Βουλιαγμένης", - "Βουλισμένης", - "Βουνάργου", - "Βουναίνων", - "Βουναρίων", - "Βουνιατάδων", - "Βουνιχώρας", - "Βουνοπλαγιάς", - "Βουνού", - "Βουρβούλου", - "Βουρβούρων", - "Βουργαρελίου", - "Βουρκωτής", - "Βουρλιωτών", - "Βουρνικά", - "Βουτά", - "Βουταίνης", - "Βουτιάνων", - "Βουτσίμου", - "Βουτσαρά", - "Βουτύρου", - "Βουτών", - "Βουχωρίνας", - "Βοχαϊκού", - "Βούλας", - "Βούλπης", - "Βούνων", - "Βούρμπιανης", - "Βούτση", - "Βράχας", - "Βράχου", - "Βρίας", - "Βρίνας", - "Βρίσας", - "Βραΐλας", - "Βραγγιανών", - "Βραγιά", - "Βραγκιανών", - "Βραδέτου", - "Βρασνών", - "Βραστάμων", - "Βραχασίου", - "Βραχατίου", - "Βραχιάς", - "Βραχναιίκων", - "Βρεσθένων", - "Βρεστού", - "Βριλησσίων", - "Βρομόβρυσης", - "Βροντάδου", - "Βροντής", - "Βρονταμά", - "Βροντερού", - "Βροντισμένης", - "Βροντούς", - "Βροσίνας", - "Βρουβιανών", - "Βρουστίου", - "Βρουχά", - "Βροχίτσης", - "Βρούτση", - "Βρυναίνης", - "Βρυοτόπου", - "Βρυσέλλας", - "Βρυσακίου", - "Βρυσικών", - "Βρυσιών", - "Βρυσουλών", - "Βρυσοχωρίου", - "Βρυσούλας", - "Βρυσών", - "Βρυσών Αποκορρώνου", - "Βρυσών Κυδωνίας", - "Βρυτών", - "Βρύσης", - "Βυζίτσης", - "Βυζικίου", - "Βυθού", - "Βυρωνείας", - "Βυσσινέας", - "Βυτίνης", - "Βυτιναιίκων", - "Βωλάδας", - "Βωλεώνων", - "Βόλβης", - "Βόλου", - "Βόνης", - "Βόνιτσας", - "Βύσσης", - "Βώρων", - "Γάβρου", - "Γέρακα", - "Γέργερης", - "Γέρμα", - "Γέρμας", - "Γέροντα", - "Γαΐου", - "Γαβαλά", - "Γαβαλοχωρίου", - "Γαβαλούς", - "Γαβρακίων", - "Γαβριάς", - "Γαβρισιών", - "Γαβρολίμνης", - "Γαζίου", - "Γαζώρου", - "Γαλάνης", - "Γαλάρου", - "Γαλήνης", - "Γαλίφας", - "Γαλανάδου", - "Γαλαναίϊκα", - "Γαλανόβρυσης", - "Γαλαξιδίου", - "Γαλαρινού", - "Γαλατά", - "Γαλατάδων", - "Γαλατίστης", - "Γαλατακίου", - "Γαλατείας", - "Γαλατινής", - "Γαλατσάδων", - "Γαλατσίου", - "Γαλατσώνας", - "Γαλησσά", - "Γαληψού", - "Γαλιάς", - "Γαλλικού", - "Γαναδιού", - "Γανοχώρας", - "Γαράζου", - "Γαρέας", - "Γαρίπας", - "Γαργαλιάνων", - "Γαρδελάδων", - "Γαρδικίου", - "Γαρδικίου Σούλι", - "Γαρεφείου", - "Γαρούνας", - "Γαστουρίου", - "Γαστούνης", - "Γαυρίου", - "Γαϊτανίου", - "Γαύδου", - "Γδοχίων", - "Γελάνθης", - "Γελινιατίκων", - "Γενεσίου", - "Γενισέας", - "Γενναδίου", - "Γερακίου", - "Γερακαρίου", - "Γερακαρούς", - "Γερακιούς", - "Γερακλίου", - "Γερανίου", - "Γερανίων", - "Γεροπλατάνου", - "Γεφυρίων", - "Γεφυρουδίου", - "Γεφύρας", - "Γεωργάνων", - "Γεωργανάδων", - "Γεωργιανής", - "Γεωργιανών", - "Γεωργικού", - "Γεωργιουπόλεως", - "Γεωργιτσίου", - "Γιάλτρων", - "Γιάννουλης", - "Γιαννάδων", - "Γιανναίων", - "Γιαννακοχωρίου", - "Γιαννιτσίου", - "Γιαννιτσοχωρίου", - "Γιαννιτσούς", - "Γιαννιτσών", - "Γιαννοπούλων", - "Γιαννωτών", - "Γιμαρίου", - "Γιουργάνιστας", - "Γιρομερίου", - "Γκαγκαλών", - "Γκανέϊκα", - "Γκοριτσάς", - "Γκούρας", - "Γκρίκας", - "Γκραίκα", - "Γκριμπόβου", - "Γλάστρας", - "Γλίνου", - "Γλαφυρών", - "Γλαύκης", - "Γλινάδου", - "Γλυκής", - "Γλυκομηλέας", - "Γλυκορριζίου", - "Γλυκόβρυσης", - "Γλυκών Νερών", - "Γλυφάδα", - "Γλυφάδας", - "Γλύφας", - "Γλώσσης", - "Γολάς", - "Γοματίου", - "Γονίμου", - "Γονούσσης", - "Γοράνων", - "Γοργοβιτών", - "Γοργογυρίου", - "Γοργομύλου", - "Γοργοποτάμου", - "Γοργόπη", - "Γορτυνίας", - "Γουβών", - "Γουλεδιανών", - "Γουλεμίου", - "Γουλών", - "Γουμένισσας", - "Γουμέρου", - "Γουριάς", - "Γουριωτίσσης", - "Γράμου", - "Γρίβας", - "Γραίκα", - "Γραβιάς", - "Γραβούνης", - "Γραικικού", - "Γραικοχωρίου", - "Γραικού", - "Γραμβουσής", - "Γραμμένης", - "Γραμμένης Οξυάς", - "Γραμμένου", - "Γραμματικού", - "Γραμματικούς", - "Γραμμενίτσης", - "Γραμμούσης", - "Γραμπιάς", - "Γρανίτου", - "Γρανίτσης", - "Γρανιτσαιίκων", - "Γρανιτσοπούλας", - "Γρατίνη", - "Γρεβενιτίου", - "Γρεβενών", - "Γρηγορίας", - "Γρηγορίου", - "Γρηγόρη", - "Γριζάνου", - "Γριζάτων", - "Γριμπόβου", - "Γρύλλου", - "Γυθείου", - "Γυμνοτόπου", - "Γυμνού", - "Γυναικοκάστρου", - "Γυρίου", - "Γωνιάς", - "Γωνιών Μαλεβιζίου", - "Γόμφων", - "Γόννων", - "Δάρα", - "Δάφνης", - "Δάφνου", - "Δένδρου", - "Δένδρων Τυρνάβου", - "Δένδρων Φαρσάλων", - "Δέσης", - "Δήμητρας", - "Δίβρης", - "Δίου", - "Δαδιάς", - "Δαιμονίας", - "Δαλαμανάρας", - "Δαμάστας", - "Δαμαβόλου", - "Δαμακινίου", - "Δαμανίων", - "Δαμασίου", - "Δαμασκηνιάς", - "Δαματρίας", - "Δαμουλιανάτων", - "Δανακού", - "Δαράτσου", - "Δαρμένη", - "Δασκίου", - "Δασολόφου", - "Δασοχωρίου", - "Δασυλλίου", - "Δασωτού", - "Δαυγάτων", - "Δαυλείας", - "Δαφίων", - "Δαφνέ", - "Δαφνίου", - "Δαφνιά", - "Δαφνιωτίσσης", - "Δαφνοσπηλιάς", - "Δαφνουδίου", - "Δαφνοφύτου", - "Δαφνούλας", - "Δαφνούσσης", - "Δαφνωτής", - "Δαφνών", - "Δειλινά", - "Δελβινακίου", - "Δελβινακοπούλου", - "Δελερίων", - "Δελιανών", - "Δελφίνου", - "Δελφών", - "Δεματίου", - "Δεμεστίχων", - "Δενδροχωρίου", - "Δερβενίου", - "Δερβιζιάνων", - "Δερματίου", - "Δεσινού", - "Δεσκάτης", - "Δεσποτικού", - "Δεσφίνης", - "Δεσύλλα", - "Δημαίνης", - "Δημαρίου", - "Δημητρητσίου", - "Δημητροπούλου", - "Δημητσάνης", - "Διάβας", - "Διάσελλου", - "Διαβατού", - "Διαβατών", - "Διαβολιτσίου", - "Διακοπίου", - "Διακοπτού", - "Διαλεκτού", - "Διασέλλου", - "Διασέλλων", - "Διασελλακίου", - "Διβαράτων", - "Διγελιωτίκων", - "Διδυμοτείχου", - "Διδύμας", - "Διδύμων", - "Διευχών", - "Δικάστρου", - "Δικαίων", - "Δικορύφου", - "Διλινάτων", - "Διλόφου", - "Διλόφου Λαρίσης", - "Διλόφου Φαρσάλων", - "Διμηνίου", - "Διμηνιού", - "Διμοκορίου", - "Διμυλιάς", - "Διοδίων", - "Διομηδείας", - "Διονυσίου", - "Διονύσου", - "Διπλατάνου", - "Διποτάμου", - "Διποταμιάς", - "Δισπηλίου", - "Διστράτου", - "Διστόμου", - "Διχειμάρρου", - "Διχομοιρίου", - "Διχωρίου", - "Δοβλά", - "Δοκιμίου", - "Δοκός", - "Δολίχης", - "Δολιανών", - "Δολού", - "Δολών", - "Δομίρου", - "Δομβραίνης", - "Δομενίκου", - "Δομιανών", - "Δομνίστης", - "Δομοκού", - "Δονούσης", - "Δοξάτου", - "Δοξαρά", - "Δοξαρού", - "Δορίσκου", - "Δορβιτσιάς", - "Δοτσικού", - "Δουκάδων", - "Δουκαναιίκων", - "Δουλίου", - "Δουμενών", - "Δουμπιών", - "Δουναίικων", - "Δούκα", - "Δράμας", - "Δρίμιτσας", - "Δραΐνας", - "Δραβήσκου", - "Δραγάνου", - "Δραγασιάς", - "Δραγοψάς", - "Δραγωγίου", - "Δρακαίων", - "Δρακείας", - "Δρακοβουνίου", - "Δρακόνας", - "Δρακότρυπας", - "Δραμεσιών", - "Δραπανιά", - "Δραπετσώνας", - "Δρεπάνου", - "Δριμίσκου", - "Δροσάτου", - "Δροσίνη", - "Δροσερού", - "Δροσιά", - "Δροσιάς", - "Δροσινή", - "Δροσοπηγής", - "Δροσοχωρίου", - "Δρυάλου", - "Δρυμάδων", - "Δρυμαίας", - "Δρυμού", - "Δρυοβούνου", - "Δρυοφύτου", - "Δρυόπης", - "Δρύμη", - "Δυρραχίου", - "Δυσβάτου", - "Δυτικής Φραγκίστας", - "Δυτικού", - "Δωδώνης", - "Δωματίων", - "Δωρίου", - "Δωρικού", - "Δωροθέας", - "Δόλιανης", - "Δόξης", - "Δόριζα", - "Δύο Βουνών", - "Δύο Χωρίων", - "Δύστου", - "Εβροπούλων", - "Εγγαρών", - "Εγκλουβής", - "Εδέσσης", - "Εθιάς", - "Εθνικού", - "Ειδομένης", - "Ειρηνικού", - "Εκάλης", - "Εκκάρας", - "Εκκλησιών", - "Εκκλησοχωρίου", - "Εκκλησούλας", - "Ελάτας", - "Ελάτειας", - "Ελάτης", - "Ελάτου", - "Ελάφου", - "Ελίκας", - "Ελίκης", - "Ελαίας", - "Ελαιοφύτου", - "Ελαιοχωρίου", - "Ελαιοχωρίων", - "Ελαταριάς", - "Ελατείας", - "Ελατοχωρίου", - "Ελατούς", - "Ελατόβρυσης", - "Ελαφονήσου", - "Ελαφοχωρίου", - "Ελαφότοπου", - "Ελενών", - "Ελεούσης", - "Ελευθέρνης", - "Ελευθέρου", - "Ελευθερίου", - "Ελευθερίου-Κορδελιού", - "Ελευθεριανής", - "Ελευθερουπόλεως", - "Ελευθεροχωρίου", - "Ελευθερών", - "Ελικίστρας", - "Ελληνίτσης", - "Ελληνικού", - "Ελληνικών", - "Ελληνοεκκλησίας", - "Ελληνοκάστρου", - "Ελληνοπύργου", - "Ελληνοχωρίου", - "Ελλοπίας", - "Ελούντας", - "Εμμανουήλ Παππά", - "Εμπάρου", - "Εμπεσού", - "Εμπορίου", - "Εμπορείου", - "Εμπορειού", - "Εμπροσνέρου", - "Ενορίας", - "Εξάρχου", - "Εξαλόφου", - "Εξαμιλίων", - "Εξανθείας", - "Εξαπλατάνου", - "Εξοχή", - "Εξοχής", - "Εξοχικού", - "Εξωγής", - "Εξωχωρίου", - "Επάνω Βαθείας", - "Επανομής", - "Επανωχωρίου", - "Επιβατών", - "Επιδαύρου", - "Επινιανών", - "Επισκέψεως", - "Επισκοπής", - "Επισκοπής Γωνιάς", - "Επισκοπής Νάουσας", - "Επισκοπικού", - "Επιταλίου", - "Επταλόφου", - "Επταμύλων", - "Επταχωρίου", - "Ερασμίου", - "Ερατεινής", - "Ερατεινού", - "Ερατύρας", - "Ερεικούσσης", - "Ερεσού", - "Ερετρίας", - "Ερινεού", - "Ερμακιάς", - "Ερμητσίου", - "Ερμιόνης", - "Ερμουπόλεως", - "Ερυθραίας", - "Ερυθρών", - "Ερυμανθείας", - "Εσοχή", - "Εσωβάλτων", - "Εσωχωρίων", - "Ευάνδρου", - "Ευαγγελισμού", - "Ευαγγελισμού Λαρίσης", - "Ευαγγελιστρίας", - "Ευγήρου", - "Ευδήλου", - "Ευζώνων", - "Ευηνοχωρίου", - "Ευκαρπίας", - "Ευλάλου", - "Ευμοίρου", - "Ευξεινουπόλεως", - "Ευπαλίου", - "Ευρωπού", - "Ευρωστίνης Ροζενών", - "Ευόσμου", - "Εφέσου", - "Εφύρας", - "Εχίνου", - "Εύας", - "Ζάκα", - "Ζάκρου", - "Ζάρκου", - "Ζήριας", - "Ζίρου", - "Ζίτσης", - "Ζίχνης", - "Ζαγκλιβερίου", - "Ζαγοράς", - "Ζακυνθίων", - "Ζαλόγγου", - "Ζαππείου", - "Ζαράκων", - "Ζαρκαδιάς", - "Ζαρού", - "Ζαρούχλης", - "Ζατούνης", - "Ζαχάρως", - "Ζαχλωριτίκων", - "Ζαχλωρούς", - "Ζαϊμίου", - "Ζελίου", - "Ζεμενού", - "Ζενίων", - "Ζερβοχωρίου", - "Ζερμπισίων", - "Ζευγαρακίου", - "Ζευγολατείου", - "Ζευγολατιού", - "Ζεφυρίου", - "Ζηλευτής", - "Ζηλευτού", - "Ζιγοβιστίου", - "Ζουνακίου", - "Ζουριδίου", - "Ζούζουλης", - "Ζυγού", - "Ζυμπραγού", - "Ζυφιά", - "Ζωής", - "Ζωγράφου", - "Ζωνιανών", - "Ζωοδόχου", - "Ζωοδόχου Πηγής", - "Ζωριάνου", - "Ζωτικού", - "Ζωφόρων", - "Ζόλων", - "Ζώνης", - "Ηγουμενίτσης", - "Ηλέκτρας", - "Ηλιοκάλης", - "Ηλιοκάστρου", - "Ηλιοκώμης", - "Ηλιορράχης", - "Ηλιοχωρίου", - "Ηλιούπολης", - "Ηλιόλουστο", - "Ημεροβιγλίου", - "Ηραίου", - "Ηρακλίτσης", - "Ηρακλείας", - "Ηρακλείου", - "Θάνα", - "Θάνους", - "Θάσου", - "Θέας", - "Θέρμης", - "Θέρμου", - "Θήρας", - "Θίσβης", - "Θαλαμών", - "Θαλερού", - "Θαρουνίων", - "Θαυμακού", - "Θεισόας", - "Θεμέλου", - "Θεοδοσίων", - "Θεοδωρακίου", - "Θεοδωρακείου", - "Θεοδωριάνων", - "Θεοδώρας", - "Θεοκτίστου", - "Θεολόγου", - "Θεοπέτρας", - "Θερίσου", - "Θεραπειό", - "Θεριακησίου", - "Θεριανού", - "Θερινού", - "Θερμησίας", - "Θερμοπυλών", - "Θερμών", - "Θεσπιών", - "Θεσπρωτικού", - "Θεσσαλονίκης", - "Θηβαίων", - "Θηναίας", - "Θηρασίας", - "Θηριοπέτρας", - "Θολαρίων", - "Θολοποταμίου", - "Θολού", - "Θουρίας", - "Θουρίου", - "Θούριο Θουρίου", - "Θρακομακεδόνων", - "Θραψανού", - "Θραψιμίου", - "Θροφαρίου", - "Θρυλορίου", - "Θρόνου", - "Θυμιανών", - "Θυρίου", - "Θωκνίας", - "Ιάσιον", - "Ιάσμου", - "Ιαλυσού", - "Ιβήρων", - "Ιεραπέτρας", - "Ιερισσού", - "Ιερομνήμης", - "Ιεροπηγής", - "Ιητών", - "Ιθάκης", - "Ιθώμης", - "Ικλαίνης", - "Ιλίου", - "Ιμέρου", - "Ιμέρων", - "Ινάχου", - "Ινίου", - "Ιππείου", - "Ιρίων", - "Ισαακίου", - "Ισθμίας", - "Ιστιαίας", - "Ιστρίου", - "Ισώματος Καρυών", - "Ιτέα", - "Ιτέας", - "Ιωαννίνων", - "Ιωαννιτών", - "Ιωνίας", - "Κάινας", - "Κάλφα", - "Κάμπου", - "Κάμπων", - "Κάπης", - "Κάρπης", - "Κάσου", - "Κάσπακα", - "Κάστρου", - "Κάψα", - "Κέδρου", - "Κέδρων", - "Κέλλης", - "Κέντρου", - "Κέχρου", - "Κήπων", - "Κίνυρα", - "Κίου", - "Κίρκης", - "Κίρρας", - "Καβάλας", - "Καβάλου", - "Καβάσιλα", - "Καβαλλαρίου", - "Καβαλλουρίου", - "Καβασίλων", - "Καββαδάδων", - "Καβησού", - "Καβουσίου", - "Καβύλης", - "Καγκαδίου", - "Καδίου", - "Καθενών", - "Καθολικού", - "Καινουργίου", - "Καινούργιου Χωρίου", - "Καισάρειας", - "Καισαρίου", - "Καισαριανής", - "Κακαλετρίου", - "Κακοβάτου", - "Κακοδικίου", - "Κακολάκκου", - "Κακοπέτρου", - "Κακοπλευρίου", - "Κακοταρίου", - "Κακουραίικων", - "Καλάθου", - "Καλάμου", - "Καλάνδρας", - "Καλάνου", - "Καλής", - "Καλής Βρύσης", - "Καλής Κώμης", - "Καλαβάρδα", - "Καλαβρούζης", - "Καλαβρύτων", - "Καλαθενών", - "Καλαμάτας", - "Καλαμίου", - "Καλαμακίου", - "Καλαμαρά", - "Καλαμαριάς", - "Καλαμαύκας", - "Καλαμιά", - "Καλαμιάς", - "Καλαμιτσίου", - "Καλαμιτσίου Αλεξάνδρου", - "Καλαμιτσίου Αμυγδαλίου", - "Καλαμπάκας", - "Καλαμπακίου", - "Καλαμωτής", - "Καλαμωτού", - "Καλανίστρας", - "Καλανδαρές", - "Καλαποδίου", - "Καλαρρυτών", - "Καλαφατιώνων", - "Καλεντίνης", - "Καλεντζίου", - "Καλεσιών", - "Καλεσμένου", - "Καλημεριάνων", - "Καληράχης", - "Καλιανών", - "Καλιδόνης", - "Καλιπάδου", - "Καλιτσαίνης", - "Καλλίου", - "Καλλίστη", - "Καλλίστης", - "Καλλεργιανών", - "Καλλιανίου", - "Καλλιανού", - "Καλλιδρόμου", - "Καλλιθέας", - "Καλλιθέας Σουλίου", - "Καλλιθέας Φαρσάλων", - "Καλλιθέας Φιλιατών", - "Καλλιθήρου", - "Καλλικράτειας", - "Καλλικώμου", - "Καλλιμασιάς", - "Καλλινίκης", - "Καλλιπεύκης", - "Καλλιπόλεως", - "Καλλιράχης", - "Καλλιρρόης", - "Καλλιφωνίου", - "Καλλιφύτου", - "Καλλιόπης", - "Καλλονής", - "Καλλυντήριον", - "Καλοβάτου", - "Καλογέρου", - "Καλογήρων", - "Καλογερεσίου", - "Καλογερικού", - "Καλογερόρραχης", - "Καλογριανής", - "Καλογριανών", - "Καλοκάστρου", - "Καλομοίρας", - "Καλονερίου", - "Καλονύκτου", - "Καλοσκοπής", - "Καλουδίου", - "Καλουδιανών", - "Καλουσίου", - "Καλουτά", - "Καλοχίου", - "Καλοχωρίου", - "Καλοχωρίου-Παντειχίου", - "Καλού Αγρού", - "Καλού Νερού", - "Καλού Χωρίου", - "Καλπακίου", - "Καλτεζών", - "Καλυβίων", - "Καλυβίων Θορικού", - "Καλυβίων Μυρτουντίων", - "Καλυβίων Σοχάς", - "Καλυβακίων", - "Καλυβών", - "Καλυδονίας", - "Καλυθιών", - "Καλυμνίων", - "Καλύβου", - "Καλών Δένδρων", - "Καλών Νερών", - "Καμάρας", - "Καμάρων", - "Καμένης", - "Καμένων Βούρλων", - "Καμήλας", - "Καμαρίνας", - "Καμαρίου", - "Καμαρίτσης", - "Καμαρίων", - "Καμαριώτου", - "Καμαρούλας", - "Καμαρωτού", - "Καμαρών", - "Καματερού", - "Καμενίτσης", - "Καμενιάνων", - "Καμηλαρίου", - "Καμινίων", - "Καμινακίου", - "Καμιναράτων", - "Καμισιανών", - "Καμπάνη", - "Καμπής", - "Καμπανού", - "Καμπιών", - "Καμποχωρίου", - "Κανακάδων", - "Καναλίου", - "Καναλίων", - "Καναλλακίου", - "Κανδάλου", - "Κανδάνου", - "Κανδήλας", - "Καπανδριτίου", - "Καπαρελλίου", - "Καπελέτου", - "Καπεσόβου", - "Καπλανίου", - "Καπνοφύτου", - "Καπνοχωρίου", - "Καππά", - "Καππαδοκικού", - "Καππαριάς", - "Καράνου", - "Καράτουλα", - "Καράτουλα Κυνουρίας", - "Καράτουλα Μεγαπόλεως", - "Καρέας", - "Καρές", - "Καρίτσης", - "Καρίτσης Δολόπων", - "Καρίτσης Καρπενησίου", - "Καραβά", - "Καραβάδου", - "Καραβομύλου", - "Καραβοστάμου", - "Καραιίκων", - "Καρατζά", - "Καραϊσκάκη", - "Καρβάλης", - "Καρβασαρά", - "Καρβελά", - "Καρβελίου", - "Καρβουνάδων", - "Καρβουναρίου", - "Καρδίας", - "Καρδίτσης", - "Καρδαμά", - "Καρδαμαίνης", - "Καρδαμύλης", - "Καρδαμύλων", - "Καρδαρά", - "Καρδαριτσίου", - "Καρδιάς", - "Καρδιακαυτίου", - "Καρδιανής", - "Καρδιτσομαγούλας", - "Καριανής", - "Καρινών", - "Καριταίνης", - "Καριωτίου", - "Καριωτών", - "Καρκιναγρίου", - "Καρλοβασίων", - "Καρνασίου", - "Καρνεζαίικων", - "Καροπλεσίου", - "Καρουζανών", - "Καρουσάδων", - "Καρουτών", - "Καρπάθου", - "Καρπασίου", - "Καρπενησίου", - "Καρπερής", - "Καρπερού", - "Καρποφόρων", - "Καρποχωρίου", - "Καρτεράδου", - "Καρτερίου", - "Καρτερολίου", - "Καρτερών", - "Καρυάς", - "Καρυδίου", - "Καρυδίου Μιραμπέλλου", - "Καρυδίτσας", - "Καρυδιάς", - "Καρυοβουνίου", - "Καρυουπόλεως", - "Καρυοφύτου", - "Καρυοχωρίου", - "Καρυωτίσσης", - "Καρυών", - "Καρωτής", - "Καρύστου", - "Καρών Αποκορρώνου", - "Καρών Κισσάμου", - "Κασάνου", - "Κασσανδρείας", - "Κασσανδρηνού", - "Κασσιόπης", - "Καστάνιανης", - "Καστέλλας", - "Καστέλλου", - "Κασταμονίτσης", - "Καστανέας", - "Καστανέας Επιδαύρου Λιμηράς", - "Καστανίτσης", - "Καστανίων", - "Καστανερής", - "Καστανεών", - "Καστανιάς", - "Καστανιωτίσσης", - "Καστανοφύτου", - "Καστανοχωρίου", - "Καστανούλας", - "Καστανούσσης", - "Καστανώνος Ζαγορίου", - "Καστελλάνων Γύρου", - "Καστελλάνων Μέσης", - "Καστελλίου", - "Καστελλίου Φουρνής", - "Καστελλίων", - "Καστελλιανών", - "Καστορίας", - "Καστορείου", - "Καστού", - "Καστρίου", - "Καστρίτσης", - "Καστρίων", - "Καστρακίου", - "Καστριτσίου", - "Καστριωτίσσης", - "Κατάκαλης", - "Καταβόθρας", - "Κατακαλίου", - "Κατακοίλου", - "Κατακόλου", - "Καταλάκκου", - "Καταλαγαρίου", - "Καταλωνίων", - "Καταμάχης", - "Καταπόλων", - "Καταρράκτου", - "Κατασταρίου", - "Καταφυγίου", - "Καταφυλλίου", - "Καταφύτου", - "Καταχά", - "Κατερίνης", - "Κατοχής", - "Κατούνας", - "Κατούνης", - "Κατσίμπαλη", - "Κατσαρού", - "Κατσαρωνίου", - "Κατσιδωνίου", - "Κατσικά", - "Κατταβίας", - "Κατωγής", - "Κατωμερίου", - "Κατωχωρίου", - "Καυκάσου", - "Καυκωνίας", - "Καψάλων", - "Καψοράχης", - "Κελεφά", - "Κεντρικής", - "Κεντρικού", - "Κεντροχωρίου", - "Κεράμου", - "Κεράς", - "Κερίου", - "Κεραμέ", - "Κεραμίου", - "Κεραμίτσης", - "Κεραματών", - "Κεραμείας", - "Κεραμείων", - "Κεραμειών", - "Κεραμιδίου", - "Κεραμιδιάς", - "Κεραμουτσίου", - "Κεραμωτής", - "Κερασέα", - "Κερασέας", - "Κερασίτσης", - "Κερασίων", - "Κερασεών", - "Κερασιάς", - "Κερασοχωρίου", - "Κεραστάρη", - "Κερασόβου", - "Κερατέας", - "Κερατσινίου", - "Κερδυλίων", - "Κερκίνης", - "Κερκυραίων", - "Κερπινής", - "Κερτέζης", - "Κερυνείας", - "Κεσσάνης", - "Κεστρίνης", - "Κεφάλου", - "Κεφαλά", - "Κεφαλίου", - "Κεφαλαρίου", - "Κεφαλινού", - "Κεφαλοβρυσίου", - "Κεφαλοβρύσου", - "Κεφαλοχωρίου", - "Κεφαλόβρυσης", - "Κεχρινιάς", - "Κεχριών", - "Κεχροκάμπου", - "Κηκίδιον", - "Κηπίων", - "Κηπουρείου", - "Κηρίνθου", - "Κηφισιάς", - "Κιβερίου", - "Κιβωτού", - "Κιζάριον", - "Κιλελέρ", - "Κιλκίς", - "Κιμμερίων", - "Κιμώλου", - "Κινιδάρου", - "Κιονίου", - "Κιρκιζατών", - "Κισσάμου", - "Κισσού", - "Κλένιας", - "Κλήματος Ευπαλίου", - "Κλαδά", - "Κλαδέου", - "Κλαδορράχης", - "Κλαυσίου", - "Κλείτου", - "Κλειδίου", - "Κλειδωνιάς", - "Κλεινού", - "Κλεινών", - "Κλειούς", - "Κλεισορρευμάτων", - "Κλεισούρας", - "Κλεισωρείας", - "Κλειτορίας", - "Κλειτσού", - "Κλεπάς", - "Κληματακίου", - "Κληματιάς", - "Κλημεντίου", - "Κλινδιάς", - "Κλοκοτού", - "Κλωνίου", - "Κνίδης", - "Κοίλων", - "Κοίτας", - "Κοζάνης", - "Κοθρέα", - "Κοιλαδίου", - "Κοιλιωμένου", - "Κοιμήσεως", - "Κοινής", - "Κοκκάλας", - "Κοκκίνου", - "Κοκκίνου Χωρίου", - "Κοκκαρίου", - "Κοκκινίου", - "Κοκκινιάς", - "Κοκκινογείου", - "Κοκκινογείων", - "Κοκκινολιθαρίου", - "Κοκκινομηλέας", - "Κοκκινοπηλού", - "Κοκκινορράχης", - "Κοκκινοχωρίου", - "Κοκκινόβρυσης", - "Κοκκορά", - "Κοκκωνίου", - "Κοκκωτών", - "Κολινδρού", - "Κολιρίου", - "Κολλινών", - "Κολοκυθιάς", - "Κολυμβαρίου", - "Κολχικής", - "Κολχικού", - "Κομάνου", - "Κομάρων", - "Κομίτου", - "Κομηλίου", - "Κομιτάτων", - "Κομμένου", - "Κομνίνης", - "Κομνηνάδων", - "Κομνηνών", - "Κομοτηνής", - "Κομπηγαδίου", - "Κομπιτσίου", - "Κομποτάδων", - "Κομποτίου", - "Κομπωτής", - "Κονίσκης", - "Κονίτσης", - "Κονακίων", - "Κονιάκου", - "Κονιδίτσης", - "Κονισκού", - "Κονιστρών", - "Κονοπίνας", - "Κονταιίκων", - "Κοντακαιίκων", - "Κονταραίνης", - "Κονταριωτίσσης", - "Κοντιά", - "Κοντοβαζαίνης", - "Κοντοβουνίου", - "Κοντογενάδας", - "Κοντοδεσποτίου", - "Κοντολιανίκων", - "Κοντομαρίου", - "Κοντοπουλίου", - "Κοντοπούλων", - "Κοξαρές", - "Κοπάνης", - "Κοπανακίου", - "Κοπανού", - "Κορίνθου", - "Κορίτιανης", - "Κορακιάνας", - "Κορακοβουνίου", - "Κορακοχωρίου", - "Κορησού", - "Κορησσίας", - "Κορθίου", - "Κορινού", - "Κορμίστης", - "Κορνοφωλεάς", - "Κορνού", - "Κοροίβου", - "Κορομηλέας", - "Κορυδαλλού", - "Κορυσχάδων", - "Κορυφής", - "Κορυφασίου", - "Κορυφούλας", - "Κορυφών", - "Κορφιωτίσσης", - "Κορφοβουνίου", - "Κορφών", - "Κορωνείας", - "Κορωνησίας", - "Κορωνούδας", - "Κορώνας", - "Κορώνης", - "Κορώνου", - "Κοσκίνων", - "Κοσκινά", - "Κοσκινού", - "Κοσμά", - "Κοσμαδαίων", - "Κοσματίου", - "Κοσμηράς", - "Κοτρωνίου", - "Κοτσανοπούλου", - "Κοτσικιάς", - "Κοτύλης", - "Κουβαλάτων", - "Κουβαρά", - "Κουβουκλίων", - "Κουδουνίου", - "Κουδουνίων", - "Κουκκουλίου", - "Κουκκουλίων", - "Κουκκουνάρας", - "Κουκλεσίου", - "Κουκλιών", - "Κουκουλιών", - "Κουκουναράς", - "Κουλεντίων", - "Κουλούρας", - "Κουμαιίκων", - "Κουμαραδαίων", - "Κουμαριάς", - "Κουμαριτσίου", - "Κουμπουριανών", - "Κουνάβων", - "Κουνινάς", - "Κουνουπίτσης", - "Κουνουπιάς", - "Κουνουπιδιανών", - "Κουπακίου", - "Κουπιών", - "Κουρέντων", - "Κουραμάδων", - "Κουρεμαδίου", - "Κουρκουλών", - "Κουρνά", - "Κουρουκλάτων", - "Κουρουνίου", - "Κουρουνίων", - "Κουρουνιού", - "Κουρουτών", - "Κουρτακίου", - "Κουρτεσίου", - "Κουσέ", - "Κουσπάδων", - "Κουτίφαρη", - "Κουταλά", - "Κουτρούφων", - "Κουτσίου", - "Κουτσελιού", - "Κουτσοποδίου", - "Κουτσοχέρας", - "Κουτσοχέρου", - "Κουτσού", - "Κουφαλίων", - "Κουφοβούνου", - "Κουφονησίων", - "Κουφοπούλου", - "Κουφού", - "Κοχύλου", - "Κούβελα", - "Κούκκου", - "Κούμανη", - "Κούμαρη", - "Κούμων", - "Κούνου", - "Κούταλης", - "Κούτελης", - "Κούφης", - "Κράψης", - "Κρήμνης", - "Κρήνης", - "Κρήνης Αιγιαλείας", - "Κρήνης Πατρών", - "Κρίνου", - "Κραθίου", - "Κρανέας", - "Κρανιδίου", - "Κρανιδίων", - "Κρανούλας", - "Κρασίου", - "Κρατερού", - "Κρεμαστής", - "Κρεμαστού", - "Κρεμμυδίων", - "Κρεστένων", - "Κρηνίδων", - "Κρηνίτσης", - "Κρηνών", - "Κρηστώνης", - "Κρητηνίας", - "Κριατσίου", - "Κριεζών", - "Κριθαρακίων", - "Κριθιάς", - "Κρικέλλου", - "Κριμηνίου", - "Κρινοφύτων", - "Κριτσάς", - "Κροκίου", - "Κροκεών", - "Κροκυλείου", - "Κρούστα", - "Κρυονέρου", - "Κρυονερίου", - "Κρυονερίου Ηλείας", - "Κρυονερίου Ολυμπίας", - "Κρυονερίτη", - "Κρυονερίων", - "Κρυοπηγής", - "Κρυσταλλοπηγής", - "Κρυσταλλόβρυσης", - "Κρυφοβού", - "Κρυόβρυση", - "Κρυόβρυσης", - "Κρυών", - "Κρωβύλης", - "Κρωπίας", - "Κρόκου", - "Κρύας", - "Κρύας Βρύσης", - "Κτένιον", - "Κτικάδου", - "Κτιμένης", - "Κτισμάτων", - "Κτιστάδων", - "Κυανής", - "Κυδωνέας", - "Κυδωνιών", - "Κυθήρων", - "Κυλλήνης", - "Κυμίνων", - "Κυνηγού", - "Κυνοπιαστών", - "Κυπαρίσσου", - "Κυπαρισσίας", - "Κυπαρισσίου", - "Κυπαρισσίων", - "Κυρά Βγένας", - "Κυρίων", - "Κυρακαλής", - "Κυριάννας", - "Κυριακής", - "Κυριακίου", - "Κυριακοχωρίου", - "Κυρτώνης", - "Κυψέλης", - "Κυψέλης Μεθάνων", - "Κυψελοχωρίου", - "Κω", - "Κωνσταντίας", - "Κωνσταντίνων", - "Κωνσταντινάτου", - "Κωστάνιανης", - "Κωστακιών", - "Κωσταλέξη", - "Κωσταραζίου", - "Κωτιλίου", - "Κωφών", - "Κόκκινων Λουριών", - "Κόκλα", - "Κόμπων", - "Κόντσικας", - "Κόξαρης", - "Κόρφου", - "Κόσμιον", - "Κότρωνα", - "Κύθνου", - "Κύμης", - "Κώμης", - "Κώστου", - "Κώτα", - "Λάβδα", - "Λάβδανης", - "Λάγιου", - "Λάγκας", - "Λάδης", - "Λάκκας", - "Λάκκων", - "Λάλα", - "Λάλουκα", - "Λάμπου Μύλων", - "Λάρδου", - "Λάστης", - "Λάστρου", - "Λάτα", - "Λέκας", - "Λέρου", - "Λίμνης", - "Λίνδου", - "Λίππας", - "Λίστας", - "Λαΐστης", - "Λαέρμων", - "Λαβάρων", - "Λαγίας", - "Λαγανά", - "Λαγκάδας", - "Λαγκαδά", - "Λαγκαδίων", - "Λαγκαδαιίκων", - "Λαγκαδακίων", - "Λαγκαδικίων", - "Λαγοβουνίου", - "Λαγολίου", - "Λαγορράχης", - "Λαγού", - "Λαγυνών", - "Λαγωπόδου", - "Λαδά", - "Λαδικούς", - "Λαδοχωρίου", - "Λαζαράτων", - "Λαζαρίνας", - "Λαιίκων", - "Λαιμού", - "Λακήθρας", - "Λακκοπέτρας", - "Λακκωμάτων", - "Λακκωνίων", - "Λακώνων", - "Λαλιώτου", - "Λαμιέων", - "Λαμπαίνης", - "Λαμπείας", - "Λαμπερού", - "Λαμπινής", - "Λαμπινούς", - "Λαμπιρίου", - "Λαμπιωτών", - "Λαμποκάμπου", - "Λαμπρόν", - "Λαμψάκου", - "Λαμύρων", - "Λανθίου", - "Λαντζουνάτου", - "Λαπαναγών", - "Λαρίσης", - "Λαρανίου", - "Λαρύμνης", - "Λασταιίκων", - "Λατζοΐου", - "Λατσίδας", - "Λαυκίου", - "Λαυρεωτικής", - "Λαφιώνας", - "Λαφυστίου", - "Λαχίου", - "Λαχανά", - "Λαχανάδας", - "Λαχανιάς", - "Λαψίστης", - "Λαύκας", - "Λαύκου", - "Λεήμονα", - "Λεβαίας", - "Λεβαδέων", - "Λεβεντοχωρίου", - "Λεβιδίου", - "Λειανοκλαδίου", - "Λειψυδρίου", - "Λειψών", - "Λεκάνης", - "Λεοντίου", - "Λεοντίτου", - "Λεονταρίου", - "Λεπενούς", - "Λεπετύμνου", - "Λεπιανών", - "Λεπούρων", - "Λεπρέου", - "Λεπτινίου", - "Λεπτοκαρυάς", - "Λεπτοκαρυάς Ζαγορίου", - "Λεπτοκαρυών", - "Λεπτοπόδων", - "Λεσινίου", - "Λευκάρων", - "Λευκίμμης", - "Λευκαδίων", - "Λευκαδιτίου", - "Λευκακίων", - "Λευκασίου", - "Λευκογείων", - "Λευκοθέας", - "Λευκοπηγής", - "Λευκοτόπου", - "Λευκοχωρίου", - "Λευκοχώρας", - "Λευκού", - "Λευκόβρυσης", - "Λευκών", - "Λεχαίου", - "Λεχαινών", - "Λεχουρίου", - "Λεχωνίων", - "Λεχόβου", - "Λεωνιδίου", - "Λεύκας", - "Λεύκης", - "Λεύκτρων", - "Λημερίου", - "Ληνός", - "Ληξουρίου", - "Λητής", - "Λιανοβεργίου", - "Λιαπάδων", - "Λιας", - "Λιβαδίου", - "Λιβαδίων", - "Λιβαδακίου", - "Λιβαδαρίου", - "Λιβαδερού", - "Λιβαδιάς", - "Λιβαδοχωρίου", - "Λιβανατών", - "Λιβαρτζίου", - "Λιβερών", - "Λιγκιάδων", - "Λιγορτύνου", - "Λιγοψάς", - "Λιδωρικίου", - "Λιθίνου", - "Λιθίου", - "Λιθακιάς", - "Λιθιάς", - "Λιθινών", - "Λιθοβουνίων", - "Λιθοτόπου", - "Λιθοχωρίου", - "Λικνάδων", - "Λιλαίας", - "Λιλιανού", - "Λιμένος Χερσονήσου", - "Λιμίνης", - "Λιμεναρίων", - "Λιμνίτσης", - "Λιμνιών", - "Λιμνοτόπου", - "Λιμνοχωρίου", - "Λιμνών", - "Λιναριάς", - "Λινισταίνης", - "Λιοδώρας", - "Λιοπράσου", - "Λιοσίων", - "Λιπαρού", - "Λιποχωρίου", - "Λιρών", - "Λισβορίου", - "Λιτοσέλου", - "Λιτοχώρου", - "Λογγάδων", - "Λογγάς", - "Λογγάστρας", - "Λογγιτσίου", - "Λογγού", - "Λογκανίκου", - "Λογοθετιανίκων", - "Λοξάδας", - "Λουκά", - "Λουκισίων", - "Λουκομίου", - "Λουρδάτων", - "Λουρών", - "Λουσακιών", - "Λουσικών", - "Λουσών", - "Λουτουφίου", - "Λουτρακίου", - "Λουτρακίου Περαχώρας", - "Λουτροπηγής", - "Λουτροπόλεως Θερμής", - "Λουτροπόλεως Μεθάνων", - "Λουτροτόπου", - "Λουτρού", - "Λουτρού Λαρίσης", - "Λουτρών", - "Λουτρών Αιδηψού", - "Λουτρών Ηραίας", - "Λουτρών Υπάτης", - "Λουτσίου", - "Λουτσών", - "Λοφίσκου", - "Λοφαρίου", - "Λοχριάς", - "Λούβρης", - "Λούβρου", - "Λούμα", - "Λούρου", - "Λούτσας", - "Λούτσης", - "Λούχας", - "Λυγαριάς", - "Λυγερέα", - "Λυγερής", - "Λυγιά", - "Λυγιάς", - "Λυδίας", - "Λυκίσσης", - "Λυκαίου", - "Λυκοβρύσεως", - "Λυκοποριάς", - "Λυκοσούρας", - "Λυκοστόμου", - "Λυκοτράφου", - "Λυκουδίου", - "Λυκουρίας", - "Λυκοχίων", - "Λυκούρεση", - "Λυκόγιαννης", - "Λυπουδεσίου", - "Λυρκείας", - "Λυσιμαχείας", - "Λυσσαρέας", - "Λυττού", - "Λυχνού", - "Λόγγου", - "Λόφου", - "Λόφων", - "Λύγγου", - "Λύκειον", - "Λύρας", - "Λύχνων", - "Μάγειρα", - "Μάζης", - "Μάζιας", - "Μάκρης", - "Μάλεμε", - "Μάλης", - "Μάλθης", - "Μάλτας", - "Μάναρη", - "Μάνδρας", - "Μάνεση", - "Μάνης", - "Μάννα", - "Μάννας", - "Μάραθα", - "Μάρθας", - "Μάρκου", - "Μάστρου", - "Μάχου", - "Μέγα Κάμπου", - "Μέγα Πιστόν", - "Μέρους", - "Μέρωνα", - "Μέσα Διδύμας", - "Μέσα Λακκωνίων", - "Μέσα Λασιθίου", - "Μέσα Μουλιανών", - "Μέση", - "Μέσης", - "Μέσης Συνοικίας Τρικάλων", - "Μέσου Γερακαρίου", - "Μήλου", - "Μίλα", - "Μίνας", - "Μίνθης", - "Μίστρου", - "Μαγαζιών", - "Μαγαρικαρίου", - "Μαγγάνων", - "Μαγγανίτου", - "Μαγγανιακού", - "Μαγικού", - "Μαγνησίας", - "Μαγουλάδων", - "Μαγουλίτσης", - "Μαγουλιάνων", - "Μαγούλας", - "Μαδένης", - "Μαδύτου", - "Μαζίου", - "Μαζαράκι", - "Μαζαρακίου", - "Μαζαρακιάς", - "Μαθίας", - "Μαθιάς", - "Μαθρακίου", - "Μαινάλου", - "Μακίστου", - "Μακράδων", - "Μακρίνου", - "Μακρίσης", - "Μακρακώμης", - "Μακρινής", - "Μακρινίτσης", - "Μακρινούς", - "Μακρισίων", - "Μακρολιβάδου", - "Μακροταντάλου", - "Μακροχωρίου", - "Μακρυγιάλου", - "Μακρυκάπας", - "Μακρυλιάς", - "Μακρυπλαγίου", - "Μακρυρράχης", - "Μακρυσίου", - "Μακρυχωρίου", - "Μακρυωτίκων", - "Μακυνείας", - "Μαλάξας", - "Μαλίων", - "Μαλαθύρου", - "Μαλακάσης", - "Μαλακίων", - "Μαλακασίου", - "Μαλαμάτων", - "Μαλανδρίνου", - "Μαλαντρενίου", - "Μαλγάρων", - "Μαλεσίνης", - "Μαλεσιάδας", - "Μαλετιάνων", - "Μαλλωτών", - "Μαλουνίου", - "Μαλυκρείου", - "Μαλών", - "Μαμουλάδας", - "Μαμουσιάς", - "Μαναγούλης", - "Μανασσή", - "Μανδάλου", - "Μανδηλίου", - "Μανδρακίου", - "Μανδρινής", - "Μανδρών", - "Μανεσίου Καλαβρύτων", - "Μανεσίου Πατρών", - "Μανθυρέας", - "Μανιάκων", - "Μανιακίου", - "Μανικίων", - "Μανολατών", - "Μανολιάσης", - "Μανολιοπούλου", - "Μανταμάδου", - "Μαντασιάς", - "Μαντείου", - "Μαντζαρίου", - "Μαντινείας", - "Μαντουδίου", - "Μαράθου", - "Μαρίνης", - "Μαρίου", - "Μαραθέας", - "Μαραθιά", - "Μαραθιάς", - "Μαραθοκάμπου", - "Μαραθοπόλεως", - "Μαραθούσσης", - "Μαραντοχωρίου", - "Μαρασίων", - "Μαργαριτίου", - "Μαργαριτών", - "Μαργελίου", - "Μαριολάτας", - "Μαριού", - "Μαριτσών", - "Μαριών", - "Μαρκινιάδας", - "Μαρκοπούλου", - "Μαρκοπούλου Μεσογαίας", - "Μαρκοπούλου Ωρωπού", - "Μαρμάρου", - "Μαρμάρων", - "Μαρμακέτου", - "Μαρμαρά", - "Μαρμαρίνης", - "Μαρμαρίου", - "Μαρουλά", - "Μαρπήσσης", - "Μαρτίνου", - "Μαρωνίας", - "Μαρωνείας", - "Μασάρων", - "Μασχολουρίου", - "Ματίου", - "Ματαράγκας", - "Ματεσίου", - "Ματονερίου", - "Ματσουκίου", - "Μαυράτων", - "Μαυρίλου", - "Μαυραναίων", - "Μαυρατζαίων", - "Μαυραχάδων", - "Μαυρελίου", - "Μαυρικίου", - "Μαυριών", - "Μαυροβάτου", - "Μαυροβουνίου", - "Μαυρογιάννη", - "Μαυροδενδρίου", - "Μαυροθαλάσσης", - "Μαυροκάμπου", - "Μαυροκκλησίου", - "Μαυρολεύκης", - "Μαυρολιθαρίου", - "Μαυρολόφου", - "Μαυρομμάτας", - "Μαυρομματίου", - "Μαυρομματίου Παμίσου", - "Μαυρονερίου", - "Μαυρονόρους", - "Μαυροπηγής", - "Μαυροπούλου", - "Μαυρουδίου", - "Μαυροχωρίου", - "Μαυρούδας", - "Μαχαιρά", - "Μαχαιράδου", - "Μαχαιρών", - "Μεγάλης Βρύσης", - "Μεγάλης Γότιστας", - "Μεγάλης Δοξιπάρας", - "Μεγάλης Κάψης", - "Μεγάλης Κερασέας", - "Μεγάλης Παναγίας", - "Μεγάλης Στέρνας", - "Μεγάλης Χώρας", - "Μεγάλου Βάλτου", - "Μεγάλου Γαρδικίου", - "Μεγάλου Δουκάτου", - "Μεγάλου Ελευθεροχωρίου", - "Μεγάλου Ευυδρίου", - "Μεγάλου Κεφαλοβρύσου", - "Μεγάλου Μοναστηρίου", - "Μεγάλου Περιστερίου", - "Μεγάλου Σειρηνίου", - "Μεγάλου Χωρίου", - "Μεγάλων Καλυβίων", - "Μεγάρου", - "Μεγάρχης", - "Μεγίστης", - "Μεγαλοβρύσου", - "Μεγαλοκάμπου", - "Μεγαλοπόλεως", - "Μεγαλοχωρίου", - "Μεγαλόχαρης", - "Μεγαπλατάνου", - "Μεγαρέων", - "Μεθώνης", - "Μελά", - "Μελάμπων", - "Μελάνων", - "Μελέτη", - "Μελίας", - "Μελίκης", - "Μελίσσα", - "Μελίσσης", - "Μελίτης", - "Μελανθίου", - "Μελανιού", - "Μελενικιτσίου", - "Μελεσών", - "Μελιάς", - "Μελιανών", - "Μελιβοίας", - "Μελιγαλά", - "Μελιγγών", - "Μελιγούς", - "Μελιδονίου", - "Μελισσίου", - "Μελισσίων", - "Μελισσοκομείου", - "Μελισσοπέτρας", - "Μελισσοτόπου", - "Μελισσουργακίου", - "Μελισσουργού", - "Μελισσουργών", - "Μελισσοχωρίου", - "Μελισσόπετρας", - "Μελιτίνης", - "Μελιταίας", - "Μελπείας", - "Μενδενίτσης", - "Μενεμένης", - "Μενετών", - "Μενιδίου", - "Μεξιατών", - "Μεράς", - "Μεριάς", - "Μερκάδας", - "Μερκοβουνίου", - "Μερόπης", - "Μεσαίας Κάψης", - "Μεσαίου", - "Μεσαγρού", - "Μεσαναγρού", - "Μεσαρίστης", - "Μεσαριάς", - "Μεσαριάς Άνδρου", - "Μεσελέρων", - "Μεσενικόλα", - "Μεσημβρίας", - "Μεσημερίου", - "Μεσιάς", - "Μεσιανής", - "Μεσιανού", - "Μεσινού", - "Μεσκλών", - "Μεσοβουνίου", - "Μεσοβουνίων", - "Μεσοβούνου", - "Μεσογείου", - "Μεσοκάμπου", - "Μεσοκώμης", - "Μεσολακκιάς", - "Μεσολογγίου", - "Μεσολουρίου", - "Μεσολόγγου", - "Μεσονησίου", - "Μεσοποτάμου", - "Μεσοποταμιάς", - "Μεσοπύργου", - "Μεσορράχης", - "Μεσορρουγίου", - "Μεσορόπης", - "Μεσοτόπου", - "Μεσοχωρίου", - "Μεσοχωρίου Υπάτης", - "Μεσοχωρίων", - "Μεσοχώρας", - "Μεσσήνης", - "Μεστών", - "Μετάλλων", - "Μεταγκιτσίου", - "Μεταμορφώσεως", - "Μεταμόρφωσης", - "Μεταξά", - "Μεταξάδας", - "Μεταξάδων", - "Μεταξάτων", - "Μεταξοχωρίου", - "Μετοχίου", - "Μετοχίου Διρφύων", - "Μετοχίου Κηρέως", - "Μετσόβου", - "Μετόχιο Προδρόμου", - "Μηθύμνης", - "Μηλέα", - "Μηλέας", - "Μηλίνης", - "Μηλίτσας", - "Μηλίτσης", - "Μηλεών", - "Μηλιάς", - "Μηλιανών", - "Μηλιωτίου", - "Μηλοχωρίου", - "Μητάτου", - "Μητάτων", - "Μητροπόλεως", - "Μητρουσίου", - "Μηχανιώνας", - "Μιαμούς", - "Μιδέας", - "Μικράς Γότιστας", - "Μικράς Μαντινείας", - "Μικροβάλτου", - "Μικροθηβών", - "Μικροκάμπου", - "Μικροκάστρου", - "Μικροκλεισούρας", - "Μικρολίμνης", - "Μικρολιβάδου", - "Μικρομάνης", - "Μικρομηλέας", - "Μικροπόλεως", - "Μικροσπηλιάς", - "Μικροχωρίου", - "Μικρού Βάλτου", - "Μικρού Βουνού", - "Μικρού Δάσους", - "Μικρού Δερείου", - "Μικρού Μοναστηρίου", - "Μικρού Περιβολακίου", - "Μικρού Περιστερίου", - "Μικρού Ποντιά", - "Μικρού Σουλίου", - "Μικρού Χωρίου", - "Μικρόν Πιστόν", - "Μιλάτου", - "Μιλλιαράδων", - "Μιντιλογλίου", - "Μιράνων", - "Μιραλίου", - "Μιστεγνών", - "Μιτοπόλεως", - "Μιχαλιτσίου", - "Μιχοΐου", - "Μοίρας", - "Μοδίου", - "Μοιρών", - "Μολάων", - "Μολίστης", - "Μολυβδοσκεπάστου", - "Μολόχας", - "Μονής", - "Μοναστηρίου", - "Μοναστηρακίου", - "Μοναχιτίου", - "Μονεμβασίας", - "Μονοδενδρίου", - "Μονοδρύου", - "Μονοκαρυάς", - "Μονοκκλησιάς", - "Μονολίθου", - "Μονολιθίου", - "Μονοπολάτων", - "Μονοσπίτων", - "Μονόβρυσης", - "Μοραΐτικων", - "Μορονίου", - "Μορφοβουνίου", - "Μοσιάς", - "Μοσχάτου", - "Μοσχοκαρυάς", - "Μοσχοποτάμου", - "Μοσχοφύτου", - "Μοσχοχωρίου", - "Μουδανιών", - "Μουζίλου", - "Μουζακίου", - "Μουζακαίων", - "Μουζακαιίκων", - "Μουζουρά", - "Μουλίων", - "Μουλιανών", - "Μουλκίου", - "Μουρεσίου", - "Μουριάς", - "Μουριατάδας", - "Μουρικίου", - "Μουριών", - "Μουρνές", - "Μουρνιών", - "Μουσάτων", - "Μουσθένης", - "Μουσιωτίτσης", - "Μουσουνίτσης", - "Μουσούρων", - "Μοχού", - "Μούδρου", - "Μούντρου", - "Μπάφρας", - "Μπαμπίνης", - "Μπαμπαλιού", - "Μπαουσιών", - "Μπατσίου", - "Μπελοκομίτης", - "Μπενιτσών", - "Μπεστιάς", - "Μπιζανίου", - "Μποζικά", - "Μπολατίου", - "Μπουλαριών", - "Μποχάλης", - "Μπράλου", - "Μπόρσα", - "Μπόρσιον", - "Μυγδαλιάς", - "Μυκηνών", - "Μυκονίων", - "Μυλοποτάμου", - "Μυλοτόπου", - "Μυξόρρουμα", - "Μυρίκης", - "Μυρίνης", - "Μυριναίων", - "Μυριοκεφάλων", - "Μυριοφύτου", - "Μυρκίνου", - "Μυρμηγκίου", - "Μυροδάφνης", - "Μυροφύλλου", - "Μυρρίνης", - "Μυρσίνης", - "Μυρσινοχωρίου", - "Μυρτέας", - "Μυρτιάς", - "Μυρτιδίων", - "Μυρτουντίων", - "Μυρτοφύτου", - "Μυρωδάτου", - "Μυρωνίων", - "Μυρόβρυσης", - "Μυστρά", - "Μυτιλήνης", - "Μυτιληνιών", - "Μυχού", - "Μόριας", - "Μόρφης", - "Μύθων", - "Μύκης", - "Μύλων", - "Μύρθιου", - "Μύρου", - "Μύρτου", - "Μύρων", - "Μύστακας", - "Μύτικα", - "Μώλου", - "Ν.Κερασιάς", - "Νάξου", - "Νάπης", - "Νέα Σάντα", - "Νίκης", - "Νίπους", - "Νίψης", - "Ναμάτων", - "Ναούσης", - "Ναρθακίου", - "Ναρκίσσου", - "Νασίων", - "Ναυπάκτου", - "Ναυπακτίας", - "Ναυπλιέων", - "Νεάπολης", - "Νεαπόλεως", - "Νεγάδων", - "Νεγράδων", - "Νεδούσης", - "Νεμέας", - "Νεμούτας", - "Νενήτων", - "Νενητουρίων", - "Νεοκάστρου", - "Νεοκαισαρείας", - "Νεοχωρίου", - "Νεοχωρακίου", - "Νεοχωροπούλου", - "Νεοχωρούδας", - "Νεράιδας", - "Νεράντζης", - "Νεραντζιών", - "Νεραϊδοχωρίου", - "Νεριανών", - "Νεροκούρου", - "Νερομάννας", - "Νερομύλου", - "Νερομύλων", - "Νεροτριβιάς", - "Νεροφράκτου", - "Νεροχωρίου", - "Νεστάνης", - "Νεστορίου", - "Νευροκοπίου", - "Νεύρα", - "Νησίου", - "Νησακίου", - "Νιάτων", - "Νιγρίτης", - "Νιθαύρεως", - "Νικήσιανης", - "Νικήτης", - "Νικαίας", - "Νικηθιανού", - "Νικηταί", - "Νικηφόρου", - "Νικιών", - "Νικοκλείας", - "Νικολή", - "Νικολαιίκων", - "Νικολιτσίου", - "Νικομηδείας", - "Νικομηδινού", - "Νικοπόλεως", - "Νικοτσάρας", - "Νικόπολης", - "Νιπιδιτού", - "Νιφοραιίκων", - "Νομής", - "Νομίων", - "Νομιτσή", - "Νοστίμου", - "Νοτίας", - "Νοχιών", - "Ντερέ", - "Νυβρίτου", - "Νυδρίου", - "Νυμφίου", - "Νυμφαίου", - "Νυμφασίας", - "Νυμφοπέτρας", - "Νυμφών", - "Νυφίου", - "Ξάνθης", - "Ξαμουδοχωρίου", - "Ξανθάτων", - "Ξανθοχωρίου", - "Ξενιάκου", - "Ξενιών", - "Ξενοπούλου", - "Ξεριά", - "Ξεχασμένης", - "Ξεχώρου", - "Ξηροκάμπου", - "Ξηροκαμπίου", - "Ξηροκαριταίνης", - "Ξηρολίμνης", - "Ξηρολόφου", - "Ξηρονομής", - "Ξηροπηγάδου", - "Ξηροποτάμου", - "Ξηροστερνίου", - "Ξηροχωρίου", - "Ξινονερίου", - "Ξινού Νερού", - "Ξινόβρυσης", - "Ξιφιανής", - "Ξορυχτίου", - "Ξυλαγανής", - "Ξυλικών", - "Ξυλοκάστρου", - "Ξυλοκέρας", - "Ξυλοκερίζης", - "Ξυλοκερατέας", - "Ξυλοπαροίκου", - "Ξυλοπόλεως", - "Οάσεως", - "Οίας", - "Οίτης", - "Οβριάς", - "Οθωνών", - "Οινουσσών", - "Οινοφύτων", - "Οινοχωρίου", - "Οινούσσας", - "Οινόης", - "Οιτύλου", - "Οιχαλίας", - "Οκτωνιάς", - "Ολβίου", - "Ολύμπου", - "Ολύμπων", - "Ολύνθου", - "Ομαλής", - "Ομαλών", - "Ομβριακής", - "Ομηρικόν", - "Ομολίου", - "Ομορφοκκλησιάς", - "Ομορφοχωρίου", - "Οξυάς", - "Οξυλίθου", - "Οξυνείας", - "Ορίου", - "Οργάνης", - "Ορεινής", - "Ορεινού", - "Ορεινού Ξηροβάλτου", - "Ορθέ", - "Ορθοβουνίου", - "Ορθονιών", - "Ορθουνίου", - "Ορμενίου", - "Ορμυλίας", - "Ορνές", - "Οροπεδίου", - "Ορφανίου", - "Ορφανών", - "Ορχομενού", - "Ουρανοπόλεως", - "Οφρυνίου", - "Οχθίων", - "Οχυρού", - "Πάγου", - "Πάγων", - "Πάδων", - "Πάου", - "Πάπαρη", - "Πάργας", - "Πάρου", - "Πάστρας", - "Πάτμου", - "Πέλεκα", - "Πέλλης", - "Πέντε Εκκλησιών", - "Πέπλου", - "Πέρα Μελάνων", - "Πέραν Τριοβασάλου", - "Πέρδικας", - "Πέρκου", - "Πέρνης", - "Πέτα", - "Πέτρα", - "Πέτρας", - "Παγκαλοχωρίου", - "Παγκρατίου", - "Παγκρατών", - "Παγονερίου", - "Παγουριών", - "Παγώνδου", - "Παγώντα", - "Παιανίας", - "Πακίων", - "Παλαίρου", - "Παλαίστρας", - "Παλαιάς Γιαννιτσούς", - "Παλαιάς Καβάλας", - "Παλαιάς Φωκαίας", - "Παλαικάστρου", - "Παλαιοβαρβασαίνης", - "Παλαιοβράχας", - "Παλαιοκάστρου", - "Παλαιοκήπου", - "Παλαιοκαρυάς", - "Παλαιοκατούνας", - "Παλαιοκατούνου", - "Παλαιοκερασέας", - "Παλαιοκκλησίου", - "Παλαιοκώμης", - "Παλαιομανίνας", - "Παλαιομοναστήρου", - "Παλαιοξαρίου", - "Παλαιοπαναγίας", - "Παλαιοπόλεως", - "Παλαιοπύργου", - "Παλαιοσελλίου", - "Παλαιοχούνης", - "Παλαιοχωρίου", - "Παλαιοχωρίου Δωριέων", - "Παλαιοχωρίου Μπότσαρη", - "Παλαιοχωρίου Σιράκου", - "Παλαιοχωρίου Τυμφρηστού", - "Παλαιοχωρακίου", - "Παλαιοχώρας", - "Παλαιού Αγιονερίου", - "Παλαιού Ελευθεροχωρίου", - "Παλαιού Κεραμιδίου", - "Παλαιού Λουτρού", - "Παλαιού Μυλοτόπου", - "Παλαιού Σκυλλιτσίου", - "Παλαιού Φαλήρου", - "Παλαιφύτου", - "Παλαιόβρυσης", - "Παλαιόστανης", - "Παλαιών Ρουμάτων", - "Παλαμά", - "Παλαμαρίου", - "Παλαμπά", - "Παλατίων", - "Παλατιτσίων", - "Παλιαμπέλων", - "Παλιουρίου", - "Παλιουριάς", - "Παλιούρα", - "Παλιούρης", - "Παλλήνης", - "Παλλαντίου", - "Παλούμπας", - "Παμφίλων", - "Παμφίου", - "Πανάσου", - "Παναγίας", - "Παναγίτσας", - "Παναγιούδας", - "Παναγούλας", - "Παναιτωλίου", - "Παναρίτη", - "Παναριτίου", - "Πανδρόσου", - "Πανεθήμου", - "Πανιπερίου", - "Πανουργιά", - "Παντανάσσης", - "Πανόρμου", - "Παπάγου", - "Παπίγκου", - "Παπαδιανίκων", - "Παπαφλέσσα", - "Παππά", - "Παππάδου", - "Παππάδων", - "Παππαγιάννη", - "Παππαγιαννάδων", - "Παππαδάτου", - "Παππαδατών", - "Παππαδιανών", - "Παππαρουσίου", - "Παππουλίων", - "Παραβόλας", - "Παραδείσου", - "Παραδεισίου", - "Παραδεισίων", - "Παρακαλάμου", - "Παρακοίλων", - "Παραλία Μέσης", - "Παραλίας", - "Παραλίας Πλατάνου", - "Παραλίου Άστρους", - "Παραλιμνίου", - "Παραλογγών", - "Παραμέρου", - "Παραμυθίας", - "Παρανεστίου", - "Παρανύμφων", - "Παραποτάμου", - "Παραπουγκίου", - "Παρασκευής", - "Παρδαλίτσης", - "Παρθενίου", - "Παρορίου", - "Παρορείου", - "Παρπαριάς", - "Παρτίρων", - "Πασίου", - "Πασαλιτών", - "Παστίδας", - "Πασχαλίτσης", - "Πασχαλιάς", - "Πατερμά", - "Πατιοπούλου", - "Πατουλιάς", - "Πατρέων", - "Πατρικάτων", - "Πατρικίου", - "Πατρικών", - "Πατσιανού", - "Πατσιδερού", - "Πατσού", - "Παυλιάνας", - "Παυλοπούλου", - "Παχείας Άμμου", - "Παχτουρίου", - "Παχυκαλάμου", - "Παϊδοχωρίου", - "Παύλιανης", - "Παύλιας", - "Παύλου", - "Πεδινής", - "Πεδινού", - "Πεδινών", - "Πεζούλας", - "Πεζών", - "Πεθελινού", - "Πειραιώς", - "Πελάγους", - "Πελαγίας", - "Πελαργού", - "Πελασγίας", - "Πελεκάνου", - "Πελεκανάδας", - "Πελετών", - "Πελλάνας", - "Πελλήνης", - "Πελοπίου", - "Πελόπης", - "Πεμονίων", - "Πεντέλης", - "Πενταβρύσου", - "Πενταγιών", - "Πεντακόρφου", - "Πενταλόφου", - "Πενταμοδίου", - "Πενταπόλεως", - "Πεντατίου", - "Πεντεορίων", - "Πεντολάκκου", - "Πεπονιάς", - "Περάμα", - "Περάμου", - "Περάνθης", - "Περάτη", - "Περίου", - "Περίστης", - "Περαίας", - "Περατάτων", - "Περατιάς", - "Περαχωρίου", - "Περβολακίων", - "Περδίκκα", - "Περδικίου", - "Περδικακίου", - "Περδικονερίου", - "Περδικόβρυσης", - "Περθωρίου", - "Περιβλέπτου", - "Περιβολίου", - "Περιβολίου Δομοκού", - "Περιβολίων", - "Περιβολίων Κισσάμου", - "Περιβολίων Κυδωνίας", - "Περιβολακίου", - "Περιβολακίων", - "Περιγιαλίου", - "Περιθείας", - "Περιθιωτίσσης", - "Περιθωρίου", - "Περικλείας", - "Περιστάσεως", - "Περιστέρας", - "Περιστεράς", - "Περιστερίου", - "Περιστερώνας", - "Περιχώρας", - "Περουλάδων", - "Περσαίνης", - "Περτουλίου", - "Πεσάδας", - "Πεστών", - "Πεταλείας", - "Πεταλιδίου", - "Πετουσίου", - "Πετράδων", - "Πετρίλου", - "Πετρίνας", - "Πετρίνου", - "Πετρίου", - "Πετραίας", - "Πετραλώνων", - "Πετρανών", - "Πετριτής", - "Πετριτσίου", - "Πετριών", - "Πετροβίτσας", - "Πετροβούνιον", - "Πετροκεράσων", - "Πετροκεφάλου", - "Πετροκεφαλίου", - "Πετροπηγής", - "Πετροπόρου", - "Πετροχωρίου", - "Πετρούπολης", - "Πετρούσσης", - "Πετρωτού", - "Πετρωτών", - "Πετρών", - "Πετρώνας", - "Πετσάκων", - "Πετσαλίου", - "Πευκοδάσους", - "Πευκοφύτου", - "Πευκοχωρίου", - "Πεύκης", - "Πεύκου", - "Πεύκων", - "Πηγής", - "Πηγαδίου", - "Πηγαδίτσης", - "Πηγαδίων", - "Πηγαδακίων", - "Πηγαδησάνων", - "Πηγαδούλια", - "Πηγαϊδακίων", - "Πηγών", - "Πηδάσου", - "Πηλίου", - "Πιάνας", - "Πιαλείας", - "Πικέρνη", - "Πικερμίου", - "Πιλαλίστρας", - "Πινακατών", - "Πινακοχωρίου", - "Πιπερίτσης", - "Πιπεριών", - "Πιραμάς", - "Πισίων", - "Πισκοκεφάλου", - "Πισοδερίου", - "Πιστιανών", - "Πιτίτσης", - "Πιτροφού", - "Πιτσίου", - "Πιτσιδίων", - "Πιτσιναιίκων", - "Πιτσιωτών", - "Πιτσών", - "Πλάκας", - "Πλάνου", - "Πλάτης", - "Πλάτσης", - "Πλαγίων", - "Πλαγιά", - "Πλαγιάς", - "Πλαγιαρίου", - "Πλαγιών", - "Πλαισίου", - "Πλαισίων Μαλακασίου", - "Πλακάδου", - "Πλακίδας", - "Πλακωτής", - "Πλανητέρου", - "Πλατάνας", - "Πλατάνης", - "Πλατάνου", - "Πλαταιών", - "Πλατανίου", - "Πλατανίων", - "Πλατανακίου", - "Πλατανακίων", - "Πλατανιά", - "Πλατανιάς", - "Πλατανιστού", - "Πλατανιωτίσσης", - "Πλατανοτόπου", - "Πλατανούσσης", - "Πλατανόβρυσης", - "Πλαταριάς", - "Πλατιάνας", - "Πλατρειθιά", - "Πλατυβόλας", - "Πλατυκάμπου", - "Πλατυστόμου", - "Πλατυστόμων", - "Πλεμενιανών", - "Πληκατίου", - "Πλουτοχωρίου", - "Πλωμαρίου", - "Πλώρας", - "Πογωνίας", - "Ποδογοράς", - "Ποδοχωρίου", - "Ποιμενικού", - "Ποκίστης", - "Πολίχνης", - "Πολεμαρχίου", - "Πολιανής", - "Πολιτικών", - "Πολιχνίτου", - "Πολοβίτσης", - "Πολυάνθου", - "Πολυανέμου", - "Πολυγύρου", - "Πολυδένδρου", - "Πολυδαμείου", - "Πολυδενδρίου", - "Πολυδρόσου", - "Πολυδώρου", - "Πολυθέας", - "Πολυκάρπης", - "Πολυκάστρου", - "Πολυκαρπίου", - "Πολυκαστάνου", - "Πολυκεράσου", - "Πολυλάκκου", - "Πολυλόφου", - "Πολυμύλου", - "Πολυνέρου", - "Πολυνερίου", - "Πολυπέτρου", - "Πολυπλατάνου", - "Πολυποτάμου", - "Πολυρράχου", - "Πολυρρηνίας", - "Πολυσίτου", - "Πολυσταφύλου", - "Πολυστύλου", - "Πολυφύτου", - "Πολυχρόνου", - "Ποντικατών", - "Ποντινής", - "Ποντισμένου", - "Ποντοηρακλείας", - "Ποντοκερασέας", - "Ποντοκώμης", - "Ποντολιβάδου", - "Ποροΐων", - "Ποροβίτσης", - "Πορτής", - "Πορτίτσης", - "Πορταριάς", - "Πορτιανού", - "Πορτοχελίου", - "Πορτών", - "Ποσειδωνίας", - "Ποτάμων", - "Ποταμίδας", - "Ποταμιά", - "Ποταμιάς", - "Ποταμιών", - "Ποταμού", - "Ποταμούλας Μεσολογγίου", - "Ποταμών", - "Ποτειδαίας", - "Ποτιδάνειας", - "Ποτιστικών", - "Πουγκακίων", - "Πουλάτων", - "Πουλίθρων", - "Πουλιτσίου", - "Πουλλίτσης", - "Πουλλακίδας", - "Πουρίου", - "Πουρναρίου", - "Πουρναριάς", - "Πουρνιάς", - "Πούρνου", - "Πρίνας", - "Πρίνου", - "Πραγγίου", - "Πραγματευτή", - "Πραισού", - "Πραιτωρίου", - "Πραιτωρίων", - "Πραμάντων", - "Πρασέ", - "Πρασίνου", - "Πρασιάς", - "Πρασιδακίου", - "Πρασινάδας", - "Πρασιών", - "Πραστού", - "Πρεβέζης", - "Πρινέ", - "Πρινιά", - "Πριολίθου", - "Προαστίου", - "Προβατά", - "Προδρομίου", - "Προδρόμου", - "Προκοπίου", - "Προμάχων", - "Προμυρίου", - "Προσβόρρου", - "Προσηλίου", - "Προσηλίων", - "Προσκυνά", - "Προσκυνητών", - "Προσοτσάνης", - "Προσύμνης", - "Προυσού", - "Προφήτη Ηλία", - "Προφήτης Ηλίας", - "Προφήτου", - "Προφήτου Ηλία", - "Προφήτου Ηλιού", - "Προφίλιας", - "Πρωτοκκλησίου", - "Πρωτοχωρίου", - "Πρωτόπαππα", - "Πρώτης", - "Πτέρης", - "Πτελέας", - "Πτελέας Πλατανιάς", - "Πτελεού", - "Πτελοπούλας", - "Πτεριάς", - "Πυθίου", - "Πυθαγορείου", - "Πυλίου", - "Πυλαίας", - "Πυλωρίου", - "Πυλωρών", - "Πυλών", - "Πυξαρίου", - "Πυράς", - "Πυργέλλας", - "Πυργίου", - "Πυργαδικίων", - "Πυργακίου", - "Πυργετού", - "Πυργιωτίκων", - "Πυργούς", - "Πυρρή", - "Πυρρίχου", - "Πυρσόγιαννης", - "Πωγωνιανής", - "Πόδου", - "Πόμπιας", - "Πόρου", - "Πόρπη", - "Πόρων", - "Πύδνας", - "Πύλας", - "Πύλης", - "Πύλου", - "Πύργου", - "Πύργου Διρού", - "Πύργου Ιθώμης", - "Πύργου Καλαμών", - "Πύργου Καλλίστης", - "Πύργου Κιερίου", - "Πύργου Τριφυλίας", - "Πύργων", - "Πύργων Θερμής", - "Πύρρας", - "Ράδου", - "Ράμιας", - "Ράξας", - "Ράφτη", - "Ράχη", - "Ράχης", - "Ρίγανης", - "Ρίζης", - "Ρίζου", - "Ρίου", - "Ραΐκου", - "Ραβδούχας", - "Ραβενής", - "Ραβενίων", - "Ραγάδα", - "Ραγίου", - "Ραδοβιζίου", - "Ραιδεστού", - "Ραμνής", - "Ραπτοπούλου", - "Ραφήνας", - "Ραφταναίων", - "Ραχούλας", - "Ραχτάδων", - "Ραχωνίου", - "Ραχών", - "Ραχώνας", - "Ραψάνης", - "Ραψομμάτη", - "Ρεγκινίου", - "Ρεθίου", - "Ρεθύμνης", - "Ρειχέας", - "Ρεντίνας", - "Ρεπανιδίου", - "Ρεπετίστης", - "Ρετσίνων", - "Ρετσιανών", - "Ρευματιάς", - "Ρητίνης", - "Ριαχόβου", - "Ριγανίου", - "Ριγκλίων", - "Ριζίων", - "Ριζαρίου", - "Ριζοβουνίου", - "Ριζομύλου", - "Ριζοσπηλιάς", - "Ριζού", - "Ριζωμάτων", - "Ριζών", - "Ριφίου", - "Ριόλου", - "Ροβίων", - "Ροβιάτας", - "Ροβιών", - "Ροβολιαρίου", - "Ρογιτίκων", - "Ρογών", - "Ροδίτου", - "Ροδίτσης", - "Ροδακίνου", - "Ροδαυγής", - "Ροδιάς", - "Ροδιανής", - "Ροδινών", - "Ροδοβανίου", - "Ροδοδάφνης", - "Ροδολίβους", - "Ροδοπόλεως", - "Ροδοτοπίου", - "Ροδοχωρίου", - "Ροδωνιάς", - "Ροδωπού", - "Ροεινού", - "Ρομιρίου", - "Ροποτού", - "Ροσκάς", - "Ρουμελής", - "Ρουπακίου", - "Ρουπακιάς", - "Ρουσσοπουλίου", - "Ρουσσοσπιτίου", - "Ρουστίκων", - "Ρουτσίου", - "Ρουφά", - "Ρουψιάς", - "Ρούσσας Εκκλησίας", - "Ρούσσου", - "Ρυακίου", - "Ρυακίων", - "Ρυζιών", - "Ρυμνίου", - "Ρυσίου", - "Ρωμαιίκου", - "Ρωμανού", - "Ρωμιάς", - "Ρόδου", - "Ρόδων", - "Ρόκκας", - "Σάγκα", - "Σάλπης", - "Σάμης", - "Σάντας", - "Σάρτης", - "Σάρχου", - "Σέκουλα", - "Σέμπρωνα", - "Σέρβου", - "Σέσκλου", - "Σέτας", - "Σίβα", - "Σίβας", - "Σίδερης", - "Σίλης", - "Σίμου", - "Σίνδου", - "Σίτσαινα", - "Σαβαλίων", - "Σαγαιίκων", - "Σαγιάδας", - "Σαγκρίου", - "Σακτουρίων", - "Σαλάκου", - "Σαλμενίκου", - "Σαλμώνης", - "Σαλονίκης", - "Σαμίων", - "Σαμαρίνης", - "Σαμικού", - "Σαμοθράκης", - "Σαμονίδας", - "Σαμπά", - "Σαντομερίου", - "Σανών", - "Σαπουνακαίϊκων", - "Σαπών", - "Σαραβαλίου", - "Σαρακήνας", - "Σαρακηνάδου", - "Σαρακηνών", - "Σαρακινίου", - "Σαρακινίου Ηραίας", - "Σαρανταπήχου", - "Σαρανταπόρου", - "Σαργιάδας", - "Σαρδινίων", - "Σαρδών", - "Σαρκίνης", - "Σασάλου", - "Σατρών", - "Σαϊδόνας", - "Σαϊτουρών", - "Σβορωνάτων", - "Σβορώνου", - "Σγουράδων", - "Σγουροκεφαλίου", - "Σεβαστής", - "Σεβαστιανών", - "Σεβαστού", - "Σειρών", - "Σελέρου", - "Σελίνου", - "Σελεγουδίου", - "Σελευκείας", - "Σεληνίων", - "Σελιάνας", - "Σελιανιτίκων", - "Σελλά", - "Σελλάδων", - "Σελλίου", - "Σελλίων", - "Σελλασίας", - "Σελλών", - "Σενίκου", - "Σερίφου", - "Σερβίων", - "Σερβιανών", - "Σερβωτών", - "Σεργούλας", - "Σεριζιανών", - "Σερνικακίου", - "Σερρών", - "Σημάντρου", - "Σημάντρων", - "Σηρικαρίου", - "Σησαμίας", - "Σητείας", - "Σιάμου", - "Σιάνων", - "Σιατίστης", - "Σιβίστης", - "Σιγουνίου", - "Σιγρίου", - "Σιδήρων", - "Σιδαρίου", - "Σιδερά", - "Σιδηράδες", - "Σιδηροκάστρου", - "Σιδηρονέρου", - "Σιδηροχωρίου", - "Σικίνου", - "Σιλάτων", - "Σιλίμνης", - "Σιμίζα", - "Σιμιάδων", - "Σιμοπούλου", - "Σιναράδων", - "Σινεβρού", - "Σινιών", - "Σινώπης", - "Σιριλίου", - "Σισανίου", - "Σιστρουνίου", - "Σισών", - "Σιταίνης", - "Σιταγρών", - "Σιταρά", - "Σιταραλώνων", - "Σιταριάς", - "Σιτομένων", - "Σιτοχωρίου", - "Σιτοχώρου", - "Σκάλας", - "Σκάλας Ωρωπού", - "Σκάλωμα", - "Σκάφης", - "Σκήτης", - "Σκαδού", - "Σκαλανίου", - "Σκαλοχωρίου", - "Σκαλωτής", - "Σκαμνακίου", - "Σκαμνελλίου", - "Σκανδάλου", - "Σκανδαλίου", - "Σκαρφείας", - "Σκαφιδακίου", - "Σκαφιδιάς", - "Σκαφιδωτής", - "Σκεπαρίου", - "Σκεπαστής", - "Σκεπαστού", - "Σκιάδα", - "Σκιάθου", - "Σκιαδά", - "Σκιλλουντίας", - "Σκινέ", - "Σκινέως", - "Σκινιά", - "Σκιώνης", - "Σκλήθρου", - "Σκλίβανης", - "Σκλίβας", - "Σκλαβοπούλας", - "Σκληρού", - "Σκοπέλου", - "Σκοπής", - "Σκοπιάς", - "Σκοπού", - "Σκορτσινού", - "Σκοτάνης", - "Σκοτίνης", - "Σκοτεινής", - "Σκοτούσσης", - "Σκουληκάδου", - "Σκουληκαριάς", - "Σκουλουφίων", - "Σκουραιίκων", - "Σκουρβούλων", - "Σκουροχωρίου", - "Σκουρτούς", - "Σκουτάρεως", - "Σκουτάρου", - "Σκουταρίου", - "Σκουτεράς", - "Σκουτεσιάδας", - "Σκούπας", - "Σκούρα", - "Σκούρας", - "Σκούρτων", - "Σκρα", - "Σκριπερού", - "Σκύδρας", - "Σκύρου", - "Σμέρνας", - "Σμέρτου", - "Σμίλας", - "Σμίξης", - "Σμαρίου", - "Σμυρτιάς", - "Σμύρνης", - "Σοκαρά", - "Σολακίου", - "Σολομού", - "Σοπίου", - "Σορωνής", - "Σουδεναιίκων", - "Σουλίου", - "Σουλαρίου", - "Σουληναρίου", - "Σουλλάρων", - "Σουλοπούλου", - "Σουνίου", - "Σουρωτής", - "Σουστιάνων", - "Σουφλίου", - "Σοφάδων", - "Σοφιάδας", - "Σοφιανών", - "Σοφικού", - "Σοφικό", - "Σοχού", - "Σούγιας", - "Σούδας", - "Σούλου", - "Σούρπης", - "Σπάθαρη", - "Σπάρτου", - "Σπάτων-Λούτσας", - "Σπήλιου", - "Σπαθάδων", - "Σπαθαρίου", - "Σπαθαραίων", - "Σπανοχωρίου", - "Σπαρτιά", - "Σπαρτιάς", - "Σπαρτιατών", - "Σπαρτιών", - "Σπαρτοχωρίου", - "Σπαρτύλα", - "Σπερχογείας", - "Σπετσών", - "Σπηλίου", - "Σπηλαίου", - "Σπηλαίων", - "Σπηλιάς", - "Σπιταλίου", - "Σπολαίτης", - "Σπόθων", - "Σπόων", - "Στάβλων", - "Στάθη", - "Στάνου", - "Στέρνας", - "Στίβου", - "Στίλιας", - "Στίρφακας", - "Σταβιών", - "Σταγίρων", - "Σταγιατών", - "Σταδίου", - "Σταθά", - "Σταθμού Αγγίστης", - "Σταθμού Μουριών", - "Σταλού", - "Σταμάτας", - "Σταματινού", - "Σταμνάς", - "Στανού", - "Σταροχωρίου", - "Στασίμου", - "Στασιού", - "Σταυρακίου", - "Σταυρακίων", - "Σταυρινήδων", - "Σταυροδρομίου", - "Σταυροπηγίου", - "Σταυροσκιαδίου", - "Σταυρουπόλεως", - "Σταυροχωρίου", - "Σταυρού", - "Σταυρωμένου", - "Σταφιδοκάμπου", - "Στειρίου", - "Στεμνίτσης", - "Στενής", - "Στενημάχου", - "Στενιών", - "Στενού", - "Στενυκλάρου", - "Στερνών", - "Στεφάνης", - "Στεφανίου", - "Στεφανιάς", - "Στεφανινών", - "Στεφανοβικείου", - "Στεφανοβούνου", - "Στιμάγκας", - "Στομίου", - "Στουππαίων", - "Στουρναραιίκων", - "Στράτου", - "Στρίγκου", - "Στρανώμης", - "Στρατινίστης", - "Στρατονίκης", - "Στρατωνίου", - "Στρεφίου", - "Στροβλών", - "Στρογγυλής", - "Στρογγυλοβουνίου", - "Στροπώνων", - "Στρουσίου", - "Στροφή", - "Στροφυλιάς", - "Στρυμονικού", - "Στρυμονοχωρίου", - "Στρόμης", - "Στρύμης", - "Στυλάριον", - "Στυλίων", - "Στυμφαλίας", - "Στόλου", - "Στόλων", - "Στύλιας", - "Στύλου", - "Στύρων", - "Στύψης", - "Συβότων", - "Συγκρέλλου", - "Συκά Υπάτης", - "Συκέας", - "Συκής", - "Συκαμίνου", - "Συκαμινέας", - "Συκεών", - "Συκιάδας", - "Συκολόγου", - "Συκορράχης", - "Συκουρίου", - "Συλιβαινιώτικων", - "Συμβολής", - "Συνδένδρου", - "Συνετίου", - "Συνοικίας Τρικάλων", - "Συρράκου", - "Συρρίζου", - "Σφάκας", - "Σφακερών", - "Σφακοπηγαδίου", - "Σφελινού", - "Σφενδαμίου", - "Σφηκιάς", - "Σφηνωτού", - "Σχίνων", - "Σχηματαρίου", - "Σχινοκαψάλων", - "Σχινοχωρίου", - "Σχοινούσσης", - "Σχολαρίου", - "Σωκρακίου", - "Σωληναρίου", - "Σωσάνδρας", - "Σωστίου", - "Σωτήρας", - "Σωταίνης", - "Σωτηρίου", - "Σωτηρίτσης", - "Σωτηριανίκων", - "Σύβρου", - "Σύμης", - "Σύρνας", - "Σύρου", - "Σώστης", - "Τέμενης", - "Τήνου", - "Ταγαράδων", - "Τακτικουπόλεως", - "Ταλάντων", - "Τανάγρας", - "Ταξιάρχου", - "Ταξιαρχών", - "Ταρσινών", - "Ταρσού", - "Ταυρωνίτου", - "Ταύρου", - "Τειχίου", - "Τεμενίων", - "Τεμπών", - "Τενέδου", - "Τεριαχίου", - "Τερπνής", - "Τερπύλλου", - "Τερψιθέας", - "Τερόβου", - "Τετρακώμου", - "Τετραλόφου", - "Τεφελίου", - "Τζίβα", - "Τζερμιάδου", - "Τζιτζιφέ", - "Τιθορέας", - "Τιθρωνίου", - "Τιτάνης", - "Τοιχίου", - "Τολού", - "Τοξοτών", - "Τοπολίων", - "Τοπολιάνων", - "Τουλιάτων", - "Τουρκολέκα", - "Τουρλάδας", - "Τουρλωτής", - "Τούμπας", - "Τρίκαστρον", - "Τρίτους", - "Τραγάνας", - "Τραγίλου", - "Τραγακίου", - "Τραγανού", - "Τρανοβάλτου", - "Τραπέζης", - "Τραπεζίτσης", - "Τραπεζαντής", - "Τραχήλας", - "Τραχειάς", - "Τραχηλίου", - "Τρεχλού", - "Τριανδρίας", - "Τριαντάρου", - "Τριανταφυλλέας", - "Τριανταφυλλιάς", - "Τριβούνου", - "Τριγλίας", - "Τριγωνικού", - "Τριδένδρου", - "Τριζονίων", - "Τρικάλων", - "Τρικερίου", - "Τρικκαίων", - "Τρικλίνου", - "Τρικοκκιάς", - "Τρικορύφου", - "Τρικόρφου", - "Τρικώμου", - "Τριλόφου", - "Τριοβασάλου", - "Τριποτάμου", - "Τριποταμιάς", - "Τριπόλεως", - "Τριπύλας", - "Τριστένου", - "Τριταίας", - "Τριφυλλίου", - "Τριχωνίου", - "Τριόδου", - "Τροβάτου", - "Τροπαίων", - "Τροπαιούχου", - "Τρυπητής", - "Τρυπών", - "Τρωιανάτων", - "Τρύγονα", - "Τρύπης", - "Τρύφου", - "Τσάκονης", - "Τσάκων", - "Τσαγγαρίου", - "Τσαγκαράδας", - "Τσαγκαροπούλου", - "Τσαμαντά", - "Τσαπουρνιάς", - "Τσαριτσάνης", - "Τσελεπάκου", - "Τσεπελόβου", - "Τσερίων", - "Τσικαλαριών", - "Τσικκαλιών", - "Τσιμανδρίων", - "Τσιπιανών", - "Τσιταλίων", - "Τσοτυλίου", - "Τσουκαλάδων", - "Τσουκαλαιίκων", - "Τσούκκας", - "Τυλίσου", - "Τυμπακίου", - "Τυμφρηστού", - "Τυρνάβου", - "Τυρολόης", - "Τυρού", - "Τυχερού", - "Τόρνου", - "Υαμείας", - "Υδρούσσης", - "Υμηττού", - "Υπάτης", - "Υπάτου", - "Υπερείας", - "Υστερνίων", - "Υψηλάντου", - "Υψηλής Ράχης", - "Υψηλομετώπου", - "Υψηλού Χωρίου", - "Φάρου", - "Φάρσων", - "Φήκης", - "Φίλια", - "Φίλιας", - "Φαβατάτων", - "Φαλάνθης", - "Φαλάννης", - "Φαλαισίας", - "Φαλατάδου", - "Φαλελιανών", - "Φαμίλας", - "Φαναρίου", - "Φανερωμένης", - "Φανού", - "Φανών", - "Φαράκλας", - "Φαραγγίου", - "Φαρακλάδας", - "Φαρακλάτων", - "Φαρακλού", - "Φαρσάλων", - "Φαρών", - "Φασκομηλιάς", - "Φελλίου", - "Φελλού", - "Φενεού", - "Φερών", - "Φιγαλείας", - "Φιδακίων", - "Φιλίας", - "Φιλίππων", - "Φιλίων", - "Φιλαδελφίου", - "Φιλαδελφείας", - "Φιλιατρών", - "Φιλιατών", - "Φιλιππαίων", - "Φιλλύρα", - "Φιλοθέης", - "Φιλοτίου", - "Φιλυρίας", - "Φιλωτείας", - "Φιλύρας", - "Φιλύρου", - "Φιλώτα", - "Φιολίτη", - "Φισίνης", - "Φισκάρδου", - "Φιχτίου", - "Φλαμουριάς", - "Φλαμπουραρίου", - "Φλαμπουρεσίου", - "Φλαμπούρου", - "Φλαμπούρων", - "Φλατσίων", - "Φλογητών", - "Φλωρίνης", - "Φλόκα", - "Φλόκας", - "Φοινίκης", - "Φοινικίου", - "Φολεγάνδρου", - "Φολόης", - "Φοναϊτίκων", - "Φορτοσίου", - "Φουντωτού", - "Φουρνάς", - "Φουρνέ", - "Φουρνής", - "Φουρφουρά", - "Φούρκας", - "Φούρνων", - "Φούστανης", - "Φούφα", - "Φράγκας", - "Φράγκου", - "Φρίξης", - "Φραγκάδων", - "Φραγκουλαιίκων", - "Φραντάτου", - "Φραντζή", - "Φραντζεσκιανών Μετοχίων", - "Φρατσίων", - "Φρε", - "Φρεγκαίνης", - "Φριλιγκιανίκων", - "Φροσύνης", - "Φρουσιούνας", - "Φτέρης", - "Φτελιάς", - "Φτερνού", - "Φυλάκης", - "Φυλής", - "Φυλακής", - "Φυλακίου", - "Φυλακτής", - "Φυλακτού", - "Φυτείας", - "Φυτειών", - "Φυτών", - "Φωκαίας", - "Φωλεάς", - "Φωσταίνης", - "Φωτάδας", - "Φωτεινού", - "Φωτεινών", - "Φωτολίβους", - "Φόδελε", - "Φύλλου", - "Φύλλων", - "Φύσκας", - "Χάλκης", - "Χέρσου", - "Χίνκας", - "Χίου", - "Χαβαρίου", - "Χαβδάτων", - "Χαβριάτων", - "Χαιρεθιανών", - "Χαιρωνείας", - "Χαλάνδρων", - "Χαλάρων", - "Χαλάστρας", - "Χαλαζονίου", - "Χαλανδρίου", - "Χαλανδρίτσης", - "Χαλικίου", - "Χαλικίου Αμβρακίας", - "Χαλιωτάτων", - "Χαλκείου", - "Χαλκερού", - "Χαλκιά", - "Χαλκιάδων", - "Χαλκιδέων", - "Χαλκιοπούλων", - "Χαμαλευρίου", - "Χαμεζίου", - "Χανίων", - "Χανδρά", - "Χανδρινού", - "Χανιώτη", - "Χαράδρου", - "Χαράς", - "Χαράσου", - "Χαραδιατίκων", - "Χαρακίου", - "Χαρακοπίου", - "Χαραυγής", - "Χαριάς", - "Χαριέσσης", - "Χαριτωμένης", - "Χαρκίων", - "Χαροκόπιον", - "Χαροπού", - "Χατζή", - "Χαϊδαρίου", - "Χαϊκαλίου", - "Χειμάρρου", - "Χειμαδιού", - "Χειμερινού", - "Χειμωνίου", - "Χελιδονίου", - "Χελυδορέου", - "Χερσονήσου", - "Χιδήρων", - "Χιλιοδένδρου", - "Χιλιομοδίου", - "Χιονάδου", - "Χιονάδων", - "Χιονάτων", - "Χιράδων", - "Χιόνας", - "Χλοματιανών", - "Χλομού", - "Χολαργού", - "Χορηγού", - "Χορτάτων", - "Χορτερού", - "Χορτιάτη", - "Χουδετσίου", - "Χουλιαράδων", - "Χουμερίου", - "Χουμεριάκου", - "Χουμνικού", - "Χουστουλιανών", - "Χούνης", - "Χράνων", - "Χρισσού", - "Χριστιανουπόλεως", - "Χριστού", - "Χρομοναστηρίου", - "Χρούσων", - "Χρυσάφων", - "Χρυσής", - "Χρυσανθίου", - "Χρυσαυγής", - "Χρυσοβίτσας", - "Χρυσοβίτσης", - "Χρυσοβεργίου", - "Χρυσοβιτσίου", - "Χρυσοκάστρου", - "Χρυσοκελλαριάς", - "Χρυσοκεφάλου", - "Χρυσομηλέας", - "Χρυσοπέτρας", - "Χρυσοπηγής", - "Χρυσορράχης", - "Χρυσοστόμου", - "Χρυσουπόλεως", - "Χρυσοχωράφων", - "Χρυσοχωρίου", - "Χρυσού", - "Χρωμίου", - "Χρύσως", - "Χωματάδας", - "Χωρέμη", - "Χωρίου", - "Χωρίου Αποκορρώνου", - "Χωρίου Κυδωνίας", - "Χωρδακίου", - "Χωρεπισκόπων", - "Χωριστής", - "Χωρυγίου", - "Χωσιαρίου", - "Χωστιά", - "Χωτούσσης", - "Χόβολης", - "Χόικας", - "Χόμορης", - "Χόνδρου", - "Χόχλιας", - "Χώνου", - "Χώρας", - "Χώρας Σφακίων", - "Ψάκας", - "Ψήνας", - "Ψίνθου", - "Ψαθογιάννου", - "Ψαθοπύργου", - "Ψαθοτοπίου", - "Ψαράδων", - "Ψαρίου", - "Ψαρών", - "Ψαχνών", - "Ψηλής Βρύσης", - "Ψηλοβράχου", - "Ψιανών", - "Ψυχικού", - "Ψυχρού", - "Ωλένης", - "Ωραίου", - "Ωραιοκάστρου", - "Ωρεών", - "Ωριάς", - "Ωρολογίου", - "Ωρωπού", - "Όθους", - "Όρμης", - "Όρμου Κορθίου", - "Όρους", - "Όσσης", - "Όχθιας", - "Ύδρας", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/el_GR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/el_GR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e874273..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/el_GR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/en/__init__.py deleted file mode 100644 index 7d2124d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/en/__init__.py +++ /dev/null @@ -1,251 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - countries = ( - "Afghanistan", - "Albania", - "Algeria", - "American Samoa", - "Andorra", - "Angola", - "Anguilla", - "Antarctica (the territory South of 60 deg S)", - "Antigua and Barbuda", - "Argentina", - "Armenia", - "Aruba", - "Australia", - "Austria", - "Azerbaijan", - "Bahamas", - "Bahrain", - "Bangladesh", - "Barbados", - "Belarus", - "Belgium", - "Belize", - "Benin", - "Bermuda", - "Bhutan", - "Bolivia", - "Bosnia and Herzegovina", - "Botswana", - "Bouvet Island (Bouvetoya)", - "Brazil", - "British Indian Ocean Territory (Chagos Archipelago)", - "British Virgin Islands", - "Brunei Darussalam", - "Bulgaria", - "Burkina Faso", - "Burundi", - "Cambodia", - "Cameroon", - "Canada", - "Cape Verde", - "Cayman Islands", - "Central African Republic", - "Chad", - "Chile", - "China", - "Christmas Island", - "Cocos (Keeling) Islands", - "Colombia", - "Comoros", - "Congo", - "Congo", - "Cook Islands", - "Costa Rica", - "Cote d'Ivoire", - "Croatia", - "Cuba", - "Cyprus", - "Czech Republic", - "Denmark", - "Djibouti", - "Dominica", - "Dominican Republic", - "Ecuador", - "Egypt", - "El Salvador", - "Equatorial Guinea", - "Eritrea", - "Estonia", - "Ethiopia", - "Faroe Islands", - "Falkland Islands (Malvinas)", - "Fiji", - "Finland", - "France", - "French Guiana", - "French Polynesia", - "French Southern Territories", - "Gabon", - "Gambia", - "Georgia", - "Germany", - "Ghana", - "Gibraltar", - "Greece", - "Greenland", - "Grenada", - "Guadeloupe", - "Guam", - "Guatemala", - "Guernsey", - "Guinea", - "Guinea-Bissau", - "Guyana", - "Haiti", - "Heard Island and McDonald Islands", - "Holy See (Vatican City State)", - "Honduras", - "Hong Kong", - "Hungary", - "Iceland", - "India", - "Indonesia", - "Iran", - "Iraq", - "Ireland", - "Isle of Man", - "Israel", - "Italy", - "Jamaica", - "Japan", - "Jersey", - "Jordan", - "Kazakhstan", - "Kenya", - "Kiribati", - "Korea", - "Korea", - "Kuwait", - "Kyrgyz Republic", - "Lao People's Democratic Republic", - "Latvia", - "Lebanon", - "Lesotho", - "Liberia", - "Libyan Arab Jamahiriya", - "Liechtenstein", - "Lithuania", - "Luxembourg", - "Macao", - "Madagascar", - "Malawi", - "Malaysia", - "Maldives", - "Mali", - "Malta", - "Marshall Islands", - "Martinique", - "Mauritania", - "Mauritius", - "Mayotte", - "Mexico", - "Micronesia", - "Moldova", - "Monaco", - "Mongolia", - "Montenegro", - "Montserrat", - "Morocco", - "Mozambique", - "Myanmar", - "Namibia", - "Nauru", - "Nepal", - "Netherlands Antilles", - "Netherlands", - "New Caledonia", - "New Zealand", - "Nicaragua", - "Niger", - "Nigeria", - "Niue", - "Norfolk Island", - "North Macedonia", - "Northern Mariana Islands", - "Norway", - "Oman", - "Pakistan", - "Palau", - "Palestinian Territory", - "Panama", - "Papua New Guinea", - "Paraguay", - "Peru", - "Philippines", - "Pitcairn Islands", - "Poland", - "Portugal", - "Puerto Rico", - "Qatar", - "Reunion", - "Romania", - "Russian Federation", - "Rwanda", - "Saint Barthelemy", - "Saint Helena", - "Saint Kitts and Nevis", - "Saint Lucia", - "Saint Martin", - "Saint Pierre and Miquelon", - "Saint Vincent and the Grenadines", - "Samoa", - "San Marino", - "Sao Tome and Principe", - "Saudi Arabia", - "Senegal", - "Serbia", - "Seychelles", - "Sierra Leone", - "Singapore", - "Slovakia (Slovak Republic)", - "Slovenia", - "Solomon Islands", - "Somalia", - "South Africa", - "South Georgia and the South Sandwich Islands", - "Spain", - "Sri Lanka", - "Sudan", - "Suriname", - "Svalbard & Jan Mayen Islands", - "Swaziland", - "Sweden", - "Switzerland", - "Syrian Arab Republic", - "Taiwan", - "Tajikistan", - "Tanzania", - "Thailand", - "Timor-Leste", - "Togo", - "Tokelau", - "Tonga", - "Trinidad and Tobago", - "Tunisia", - "Turkey", - "Turkmenistan", - "Turks and Caicos Islands", - "Tuvalu", - "Uganda", - "Ukraine", - "United Arab Emirates", - "United Kingdom", - "United States of America", - "United States Minor Outlying Islands", - "United States Virgin Islands", - "Uruguay", - "Uzbekistan", - "Vanuatu", - "Venezuela", - "Vietnam", - "Wallis and Futuna", - "Western Sahara", - "Yemen", - "Zambia", - "Zimbabwe", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4405afe..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/en/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_AU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/en_AU/__init__.py deleted file mode 100644 index 7b7c823..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/en_AU/__init__.py +++ /dev/null @@ -1,342 +0,0 @@ -from ..en import Provider as AddressProvider - - -class Provider(AddressProvider): - city_prefixes = ("North", "East", "West", "South", "New", "Lake", "Port", "St.") - - city_suffixes = ( - "town", - "ton", - "land", - "ville", - "berg", - "burgh", - "borough", - "bury", - "view", - "port", - "mouth", - "stad", - "furt", - "chester", - "mouth", - "fort", - "haven", - "side", - "shire", - ) - - building_number_formats = ("###", "##", "#") - - street_suffixes = ( - "Access", - "Alley", - "Alleyway", - "Amble", - "Anchorage", - "Approach", - "Arcade", - "Artery", - "Avenue", - "Basin", - "Beach", - "Bend", - "Block", - "Boulevard", - "Brace", - "Brae", - "Break", - "Bridge", - "Broadway", - "Brow", - "Bypass", - "Byway", - "Causeway", - "Centre", - "Centreway", - "Chase", - "Circle", - "Circlet", - "Circuit", - "Circus", - "Close", - "Colonnade", - "Common", - "Concourse", - "Copse", - "Corner", - "Corso", - "Court", - "Courtyard", - "Cove", - "Crescent", - "Crest", - "Cross", - "Crossing", - "Crossroad", - "Crossway", - "Cruiseway", - "Cul-de-sac", - "Cutting", - "Dale", - "Dell", - "Deviation", - "Dip", - "Distributor", - "Drive", - "Driveway", - "Edge", - "Elbow", - "End", - "Entrance", - "Esplanade", - "Estate", - "Expressway", - "Extension", - "Fairway", - "Fire Track", - "Firetrail", - "Flat", - "Follow", - "Footway", - "Foreshore", - "Formation", - "Freeway", - "Front", - "Frontage", - "Gap", - "Garden", - "Gardens", - "Gate", - "Gates", - "Glade", - "Glen", - "Grange", - "Green", - "Ground", - "Grove", - "Gully", - "Heights", - "Highroad", - "Highway", - "Hill", - "Interchange", - "Intersection", - "Junction", - "Key", - "Landing", - "Lane", - "Laneway", - "Lees", - "Line", - "Link", - "Little", - "Lookout", - "Loop", - "Lower", - "Mall", - "Meander", - "Mew", - "Mews", - "Motorway", - "Mount", - "Nook", - "Outlook", - "Parade", - "Park", - "Parklands", - "Parkway", - "Part", - "Pass", - "Path", - "Pathway", - "Piazza", - "Place", - "Plateau", - "Plaza", - "Pocket", - "Point", - "Port", - "Promenade", - "Quad", - "Quadrangle", - "Quadrant", - "Quay", - "Quays", - "Ramble", - "Ramp", - "Range", - "Reach", - "Reserve", - "Rest", - "Retreat", - "Ride", - "Ridge", - "Ridgeway", - "Right Of Way", - "Ring", - "Rise", - "River", - "Riverway", - "Riviera", - "Road", - "Roads", - "Roadside", - "Roadway", - "Ronde", - "Rosebowl", - "Rotary", - "Round", - "Route", - "Row", - "Rue", - "Run", - "Service Way", - "Siding", - "Slope", - "Sound", - "Spur", - "Square", - "Stairs", - "State Highway", - "Steps", - "Strand", - "Street", - "Strip", - "Subway", - "Tarn", - "Terrace", - "Thoroughfare", - "Tollway", - "Top", - "Tor", - "Towers", - "Track", - "Trail", - "Trailer", - "Triangle", - "Trunkway", - "Turn", - "Underpass", - "Upper", - "Vale", - "Viaduct", - "View", - "Villas", - "Vista", - "Wade", - "Walk", - "Walkway", - "Way", - "Wynd", - ) - - postcode_formats = ( - # as per https://en.wikipedia.org/wiki/Postcodes_in_Australia - # NSW - "1###", - "20##", - "21##", - "22##", - "23##", - "24##", - "25##", - "2619", - "262#", - "263#", - "264#", - "265#", - "266#", - "267#", - "268#", - "269#", - "27##", - "28##", - "292#", - "293#", - "294#", - "295#", - "296#", - "297#", - "298#", - "299#", - # ACT - "02##", - "260#", - "261#", - "290#", - "291#", - "2920", - # VIC - "3###", - "8###", - # QLD - "4###", - "9###", - # SA - "5###", - # WA - "6###", - # TAS - "7###", - # NT - "08##", - "09##", - ) - - states = ( - "Australian Capital Territory", - "New South Wales", - "Northern Territory", - "Queensland", - "South Australia", - "Tasmania", - "Victoria", - "Western Australia", - ) - - states_abbr = ("ACT", "NSW", "NT", "QLD", "SA", "TAS", "VIC", "WA") - - city_formats = ( - "{{city_prefix}} {{first_name}}{{city_suffix}}", - "{{city_prefix}} {{first_name}}", - "{{first_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - ) - - street_name_formats = ( - "{{first_name}} {{street_suffix}}", - "{{last_name}} {{street_suffix}}", - ) - - street_address_formats = ( - "{{building_number}} {{street_name}}", - "{{secondary_address}}{{building_number}} {{street_name}}", - ) - - address_formats = ("{{street_address}}\n{{city}}, {{state_abbr}}, {{postcode}}",) - - secondary_address_formats = ( - "Apt. ### ", - "Flat ## ", - "Suite ### ", - "Unit ## ", - "Level # ", - "###/", - "##/", - "#/", - ) - - def city_prefix(self) -> str: - return self.random_element(self.city_prefixes) - - def secondary_address(self) -> str: - return self.numerify(self.random_element(self.secondary_address_formats)) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit - - def state_abbr(self) -> str: - return self.random_element(self.states_abbr) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_AU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_AU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 688b4a6..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/en_AU/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_BD/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/en_BD/__init__.py deleted file mode 100644 index 49e0c07..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/en_BD/__init__.py +++ /dev/null @@ -1,547 +0,0 @@ -""" -Contributed by: @aamibhoot 🇧🇩 -""" - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - area_names = ( - "Ali", - "Alam", - "Abhay", - "Anwar", - "Brahmin", - "Botia", - "Baghar", - "Begum", - "Bijoy", - "Bandar", - "Balia", - "Bajit", - "Baker", - "Borhan", - "Bakhsh", - "Badr", - "Biram", - "Biswnath", - "Chouddah", - "Chital", - "Daud", - "Daulat", - "Dev", - "Devi", - "Islam", - "Ful", - "Fakir", - "Fatik", - "Gopal", - "Gour", - "Haji", - "Hariram", - "Hossain", - "Hakim", - "Jibon", - "Jagannath", - "Kumar", - "Kali", - "Keshav", - "Qutub", - "Kabi", - "Kalia", - "Karim", - "Kazi", - "Kamal", - "Lal", - "Murad", - "Manohar", - "Mir", - "Mahes", - "Moral", - "Molla", - "Mohammad", - "Maniram", - "Manik", - "Mirza", - "Mud", - "Mohan", - "Mahadev", - "Madhab", - "Nasir", - "Naria", - "Nazir", - "Nalitha", - "Nandi", - "Osmani", - "Pai", - "Palash", - "Parvati", - "Ram", - "Ray", - "Rani", - "Sona", - "Sharan", - "Shyam", - "Subarna", - "Siraj", - "Sakhi", - "Sadar", - "Sundar", - "Syed", - "Shahjahan", - "Shanti", - "Shib", - "Ter", - "Tara", - "Uzir", - ) - - building_names = ( - "House No.", - "Building No.", - "House No.", - "Holding No.", - ) - - building_number_formats = ("%", "%#", "%##") - - city_prefixes = ("North", "East", "West", "South", "Middle", "New", "Old") - - city_suffixes = ( - "Bazar", - "Bari", - "Char", - "Diya", - "Danga", - "Ganz", - "Gram", - "Gan", - "Gan", - "Garh", - "Hat", - "Har", - "Khali", - "Mati", - "Nagar", - "Pur", - "Tala", - ) - - cities = ( - "Barguna", - "Barisal", - "Bhola", - "Bandarban", - "Brahmanbaria", - "Bagherhat", - "Bogura", - "Chandpur", - "Chittagong", - "Cumilla", - "Cox's Bazar", - "Chuadanga", - "Dhaka", - "Dinajpur", - "Faripur", - "Feni", - "Gazipur", - "Gopalganj", - "Gaibandha", - "Habiganj", - "Jhalokati", - "Jessore", - "Jhenaidah", - "Jamalpur", - "Joypurhat", - "Khagrachhari", - "Kishoreganj", - "Khulna", - "Kushtia", - "Kurigram", - "Lakshmipur", - "Lalmonirhat", - "Madaripur", - "Manikganj", - "Munshiganj", - "Magura", - "Meherpur", - "Mymensingh", - "Maulvibazar", - "Noakhali", - "Narayanganj", - "Narsingdi", - "Narail", - "Netrokona", - "Naogaon", - "Naogaon", - "Chapainawabganj", - "Nilphamari", - "Patuakhali", - "Pirojpur", - "Pabna", - "Panchagarh", - "Rangpur", - "Shariatpur", - "Satkhira", - "Sherpur", - "Sirajganj", - "Sunamganj", - "Sylhet", - "Tangail", - "Thakurgaon", - ) - - countries = ( - "Afghanistan", - "Albania", - "Algeria", - "American Samoa", - "Andorra", - "Angola", - "Anguilla", - "Antarctica (the territory South of 60 deg S)", - "Antigua and Barbuda", - "Argentina", - "Armenia", - "Aruba", - "Australia", - "Austria", - "Azerbaijan", - "Bahamas", - "Bahrain", - "Bangladesh", - "Barbados", - "Belarus", - "Belgium", - "Belize", - "Benin", - "Bermuda", - "Bhutan", - "Bolivia", - "Bosnia and Herzegovina", - "Botswana", - "Bouvet Island (Bouvetoya)", - "Brazil", - "British Indian Ocean Territory (Chagos Archipelago)", - "British Virgin Islands", - "Brunei Darussalam", - "Bulgaria", - "Burkina Faso", - "Burundi", - "Cambodia", - "Cameroon", - "Canada", - "Cape Verde", - "Cayman Islands", - "Central African Republic", - "Chad", - "Chile", - "China", - "Christmas Island", - "Cocos (Keeling) Islands", - "Colombia", - "Comoros", - "Congo", - "Congo", - "Cook Islands", - "Costa Rica", - "Cote d'Ivoire", - "Croatia", - "Cuba", - "Cyprus", - "Czech Republic", - "Denmark", - "Djibouti", - "Dominica", - "Dominican Republic", - "Ecuador", - "Egypt", - "El Salvador", - "Equatorial Guinea", - "Eritrea", - "Estonia", - "Ethiopia", - "Faroe Islands", - "Falkland Islands (Malvinas)", - "Fiji", - "Finland", - "France", - "French Guiana", - "French Polynesia", - "French Southern Territories", - "Gabon", - "Gambia", - "Georgia", - "Germany", - "Ghana", - "Gibraltar", - "Greece", - "Greenland", - "Grenada", - "Guadeloupe", - "Guam", - "Guatemala", - "Guernsey", - "Guinea", - "Guinea-Bissau", - "Guyana", - "Haiti", - "Heard Island and McDonald Islands", - "Holy See (Vatican City State)", - "Honduras", - "Hong Kong", - "Hungary", - "Iceland", - "India", - "Indonesia", - "Iran", - "Iraq", - "Ireland", - "Isle of Man", - "Israel", - "Italy", - "Jamaica", - "Japan", - "Jersey", - "Jordan", - "Kazakhstan", - "Kenya", - "Kiribati", - "Korea", - "Korea", - "Kuwait", - "Kyrgyz Republic", - "Lao People's Democratic Republic", - "Latvia", - "Lebanon", - "Lesotho", - "Liberia", - "Libyan Arab Jamahiriya", - "Liechtenstein", - "Lithuania", - "Luxembourg", - "Macao", - "Madagascar", - "Malawi", - "Malaysia", - "Maldives", - "Mali", - "Malta", - "Marshall Islands", - "Martinique", - "Mauritania", - "Mauritius", - "Mayotte", - "Mexico", - "Micronesia", - "Moldova", - "Monaco", - "Mongolia", - "Montenegro", - "Montserrat", - "Morocco", - "Mozambique", - "Myanmar", - "Namibia", - "Nauru", - "Nepal", - "Netherlands Antilles", - "Netherlands", - "New Caledonia", - "New Zealand", - "Nicaragua", - "Niger", - "Nigeria", - "Niue", - "Norfolk Island", - "North Macedonia", - "Northern Mariana Islands", - "Norway", - "Oman", - "Pakistan", - "Palau", - "Palestinian Territory", - "Panama", - "Papua New Guinea", - "Paraguay", - "Peru", - "Philippines", - "Pitcairn Islands", - "Poland", - "Portugal", - "Puerto Rico", - "Qatar", - "Reunion", - "Romania", - "Russian Federation", - "Rwanda", - "Saint Barthelemy", - "Saint Helena", - "Saint Kitts and Nevis", - "Saint Lucia", - "Saint Martin", - "Saint Pierre and Miquelon", - "Saint Vincent and the Grenadines", - "Samoa", - "San Marino", - "Sao Tome and Principe", - "Saudi Arabia", - "Senegal", - "Serbia", - "Seychelles", - "Sierra Leone", - "Singapore", - "Slovakia (Slovak Republic)", - "Slovenia", - "Solomon Islands", - "Somalia", - "South Africa", - "South Georgia and the South Sandwich Islands", - "Spain", - "Sri Lanka", - "Sudan", - "Suriname", - "Svalbard & Jan Mayen Islands", - "Swaziland", - "Sweden", - "Switzerland", - "Syrian Arab Republic", - "Taiwan", - "Tajikistan", - "Tanzania", - "Thailand", - "Timor-Leste", - "Togo", - "Tokelau", - "Tonga", - "Trinidad and Tobago", - "Tunisia", - "Turkey", - "Turkmenistan", - "Turks and Caicos Islands", - "Tuvalu", - "Uganda", - "Ukraine", - "United Arab Emirates", - "United Kingdom", - "United States of America", - "United States Minor Outlying Islands", - "United States Virgin Islands", - "Uruguay", - "Uzbekistan", - "Vanuatu", - "Venezuela", - "Vietnam", - "Wallis and Futuna", - "Western Sahara", - "Yemen", - "Zambia", - "Zimbabwe", - ) - - secondary_address_formats = ( - "Flat %", - "Flat %#", - "Studio %", - "Studio %#", - "Apartment %", - "Apartment %#", - ) - - street_suffixes = ( - "Avenue", - "Center", - "Square", - "Lane", - "Ghat", - "Corner", - "Lane", - "Highway", - "Mohalla", - "Moor", - "Para", - "Park", - "Plaza", - "Road", - "Road", - "Sorok", - "Station", - "Stand", - ) - - postcode_formats = ("%###",) - street_name_formats = ( - "{{area_name}}{{street_suffix}}", - "{{city_prefix}} {{area_name}}{{street_suffix}}", - "{{city_prefix}} {{area_name}}{{city_suffix}}", - "{{area_name}}{{city_suffix}}", - "{{area_name}}{{city_suffix}} {{street_suffix}}", - "{{city_prefix}} {{area_name}}{{city_suffix}} {{street_suffix}}", - ) - street_address_formats = ( - "{{building_name}} {{building_number}}, {{street_name}}", - "{{secondary_address}}, {{building_name}} {{building_number}}, {{street_name}}", - ) - town_formats = ("{{area_name}}{{city_suffix}}",) - address_formats = ("{{street_address}}, {{town}}, {{city}}, {{postcode}}",) - - def administrative_unit(self) -> str: - """ - :example: 'Dhaka' - """ - return self.random_element(self.cities) - - def area_name(self) -> str: - """ - :example: 'Dhanmondi' - """ - return self.random_element(self.area_names) - - def building_name(self) -> str: - """ - :example: 'House No.' - """ - return self.random_element(self.building_names) - - def building_number(self) -> str: - """ - :example: '791' - """ - return self.numerify(self.random_element(self.building_number_formats)) - - def city_prefix(self) -> str: - """ - :example: 'North' - """ - return self.random_element(self.city_prefixes) - - def city(self) -> str: - """ - :example: 'Dhaka' - """ - return self.random_element(self.cities) - - def postcode(self) -> str: - """ - See - https://bdpost.portal.gov.bd/site/page/6aaeabe4-479b-4e5a-a671-e9e5b994bf9a - """ - return self.numerify(self.random_element(self.postcode_formats)) - - def secondary_address(self) -> str: - """ - As the generated string format is a Bengali word but English number so splitting the value by space - and then convert the English number to Bengali number and concat with generated Bengali word - and return - : example : 'Apartment 123' - """ - value = self.bothify(self.random_element(self.secondary_address_formats)) - word_list = value.split(" ") - return word_list[0] + " " + word_list[1] - - def town(self) -> str: - """ - :example: 'Dhanmondi' - """ - pattern: str = self.random_element(self.town_formats) - return self.generator.parse(pattern) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_BD/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_BD/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b2b9cdd..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/en_BD/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_CA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/en_CA/__init__.py deleted file mode 100644 index db6592f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/en_CA/__init__.py +++ /dev/null @@ -1,417 +0,0 @@ -import re - -from typing import Optional - -from faker.providers import ElementsType - -from ..en import Provider as AddressProvider - - -class Provider(AddressProvider): - # Source: https://www.canadapost.ca/tools/pg/manual/PGaddress-e.asp#1449294 - # - # 'W' and 'Z' are valid in non-initial position (easily verified in the - # wild), but online official documentation is hard to find, so just ignore - # them for now. - postal_code_letters = ( - "A", - "B", - "C", - "E", - "G", - "H", - "J", - "K", - "L", - "M", - "N", - "P", - "R", - "S", - "T", - "V", - "X", - "Y", - ) - - city_prefixes: ElementsType[str] = ("North", "East", "West", "South", "New", "Lake", "Port") - - city_suffixes: ElementsType[str] = ( - "town", - "ton", - "land", - "ville", - "berg", - "burgh", - "borough", - "bury", - "view", - "port", - "mouth", - "stad", - "furt", - "chester", - "mouth", - "fort", - "haven", - "side", - "shire", - ) - - building_number_formats = ("#####", "####", "###") - - street_suffixes = ( - "Alley", - "Avenue", - "Branch", - "Bridge", - "Brook", - "Brooks", - "Burg", - "Burgs", - "Bypass", - "Camp", - "Canyon", - "Cape", - "Causeway", - "Center", - "Centers", - "Circle", - "Circles", - "Cliff", - "Cliffs", - "Club", - "Common", - "Corner", - "Corners", - "Course", - "Court", - "Courts", - "Cove", - "Coves", - "Creek", - "Crescent", - "Crest", - "Crossing", - "Crossroad", - "Curve", - "Dale", - "Dam", - "Divide", - "Drive", - "Drive", - "Drives", - "Estate", - "Estates", - "Expressway", - "Extension", - "Extensions", - "Fall", - "Falls", - "Ferry", - "Field", - "Fields", - "Flat", - "Flats", - "Ford", - "Fords", - "Forest", - "Forge", - "Forges", - "Fork", - "Forks", - "Fort", - "Freeway", - "Garden", - "Gardens", - "Gateway", - "Glen", - "Glens", - "Green", - "Greens", - "Grove", - "Groves", - "Harbor", - "Harbors", - "Haven", - "Heights", - "Highway", - "Hill", - "Hills", - "Hollow", - "Inlet", - "Inlet", - "Island", - "Island", - "Islands", - "Islands", - "Isle", - "Isle", - "Junction", - "Junctions", - "Key", - "Keys", - "Knoll", - "Knolls", - "Lake", - "Lakes", - "Land", - "Landing", - "Lane", - "Light", - "Lights", - "Loaf", - "Lock", - "Locks", - "Locks", - "Lodge", - "Lodge", - "Loop", - "Mall", - "Manor", - "Manors", - "Meadow", - "Meadows", - "Mews", - "Mill", - "Mills", - "Mission", - "Mission", - "Motorway", - "Mount", - "Mountain", - "Mountain", - "Mountains", - "Mountains", - "Neck", - "Orchard", - "Oval", - "Overpass", - "Park", - "Parks", - "Parkway", - "Parkways", - "Pass", - "Passage", - "Path", - "Pike", - "Pine", - "Pines", - "Place", - "Plain", - "Plains", - "Plains", - "Plaza", - "Plaza", - "Point", - "Points", - "Port", - "Port", - "Ports", - "Ports", - "Prairie", - "Prairie", - "Radial", - "Ramp", - "Ranch", - "Rapid", - "Rapids", - "Rest", - "Ridge", - "Ridges", - "River", - "Road", - "Road", - "Roads", - "Roads", - "Route", - "Row", - "Rue", - "Run", - "Shoal", - "Shoals", - "Shore", - "Shores", - "Skyway", - "Spring", - "Springs", - "Springs", - "Spur", - "Spurs", - "Square", - "Square", - "Squares", - "Squares", - "Station", - "Station", - "Stravenue", - "Stravenue", - "Stream", - "Stream", - "Street", - "Street", - "Streets", - "Summit", - "Summit", - "Terrace", - "Throughway", - "Trace", - "Track", - "Trafficway", - "Trail", - "Trail", - "Tunnel", - "Tunnel", - "Turnpike", - "Turnpike", - "Underpass", - "Union", - "Unions", - "Valley", - "Valleys", - "Via", - "Viaduct", - "View", - "Views", - "Village", - "Village", - "Villages", - "Ville", - "Vista", - "Vista", - "Walk", - "Walks", - "Wall", - "Way", - "Ways", - "Well", - "Wells", - ) - - postal_code_formats = ("?%? %?%", "?%?%?%") - - provinces = ( - "Alberta", - "British Columbia", - "Manitoba", - "New Brunswick", - "Newfoundland and Labrador", - "Northwest Territories", - "Nova Scotia", - "Nunavut", - "Ontario", - "Prince Edward Island", - "Quebec", - "Saskatchewan", - "Yukon Territory", - ) - - provinces_abbr = ( - "AB", - "BC", - "MB", - "NB", - "NL", - "NT", - "NS", - "NU", - "ON", - "PE", - "QC", - "SK", - "YT", - ) - - provinces_postcode_prefixes = { - "NL": ["A"], - "NS": ["B"], - "PE": ["C"], - "NB": ["E"], - "QC": ["G", "H", "J"], - "ON": ["K", "L", "M", "N", "P"], - "MB": ["R"], - "SK": ["S"], - "AB": ["T"], - "BC": ["V"], - "NU": ["X"], - "NT": ["X"], - "YT": ["Y"], - } - - city_formats: ElementsType[str] = ( - "{{city_prefix}} {{first_name}}{{city_suffix}}", - "{{city_prefix}} {{first_name}}", - "{{first_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - ) - street_name_formats = ( - "{{first_name}} {{street_suffix}}", - "{{last_name}} {{street_suffix}}", - ) - street_address_formats = ( - "{{building_number}} {{street_name}}", - "{{building_number}} {{street_name}} {{secondary_address}}", - ) - address_formats = ("{{street_address}}\n{{city}}, {{province_abbr}} {{postalcode}}",) - secondary_address_formats = ("Apt. ###", "Suite ###") - - def administrative_unit(self) -> str: - """ """ - return self.random_element(self.provinces) - - province = administrative_unit - - def province_abbr(self) -> str: - return self.random_element(self.provinces_abbr) - - def city_prefix(self) -> str: - return self.random_element(self.city_prefixes) - - def secondary_address(self) -> str: - return self.numerify(self.random_element(self.secondary_address_formats)) - - def postal_code_letter(self) -> str: - """ - Returns a random letter from the list of allowable - letters in a canadian postal code - """ - return self.random_element(self.postal_code_letters) - - def _postcode_replace(self, postal_code_format: str) -> str: - """ - Replaces all question mark ('?') occurrences with a random letter - from given postal_code_format, then passes result to numerify to insert - numbers - """ - temp = re.sub(r"\?", lambda x: self.postal_code_letter(), postal_code_format) - return self.numerify(temp) - - def postcode(self) -> str: - """ - Returns a random postcode - """ - return self._postcode_replace(self.random_element(self.postal_code_formats)) - - def postcode_in_province(self, province_abbr: Optional[str] = None) -> str: - """ - Returns a random postcode within the provided province abbreviation - """ - if province_abbr is None: - province_abbr = self.random_element(self.provinces_abbr) - - if province_abbr in self.provinces_abbr: - postal_code_format: str = self.random_element(self.postal_code_formats) - postal_code_format = postal_code_format.replace( - "?", - self.generator.random_element(self.provinces_postcode_prefixes[province_abbr]), - 1, - ) - return self._postcode_replace(postal_code_format) - else: - raise Exception("Province Abbreviation not found in list") - - def postalcode_in_province(self, province_abbr: Optional[str] = None) -> str: - return self.postcode_in_province(province_abbr) - - def postalcode(self) -> str: - return self.postcode() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_CA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_CA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index da43929..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/en_CA/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_GB/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/en_GB/__init__.py deleted file mode 100644 index eeabd04..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/en_GB/__init__.py +++ /dev/null @@ -1,550 +0,0 @@ -from collections import OrderedDict - -from ..en import Provider as AddressProvider - - -class Provider(AddressProvider): - city_prefixes = ("North", "East", "West", "South", "New", "Lake", "Port") - city_suffixes = ( - "town", - "ton", - "land", - "ville", - "berg", - "burgh", - "borough", - "bury", - "view", - "port", - "mouth", - "stad", - "furt", - "chester", - "mouth", - "fort", - "haven", - "side", - "shire", - ) - counties = ( - "Bedfordshire", - "Buckinghamshire", - "Cambridgeshire", - "Cheshire", - "Cleveland", - "Cornwall", - "Cumbria", - "Derbyshire", - "Devon", - "Dorset", - "Durham", - "East Sussex", - "Essex", - "Gloucestershire", - "Greater London", - "Greater Manchester", - "Hampshire", - "Hertfordshire", - "Kent", - "Lancashire", - "Leicestershire", - "Lincolnshire", - "Merseyside", - "Norfolk", - "North Yorkshire", - "Northamptonshire", - "Northumberland", - "Nottinghamshire", - "Oxfordshire", - "Shropshire", - "Somerset", - "South Yorkshire", - "Staffordshire", - "Suffolk", - "Surrey", - "Tyne and Wear", - "Warwickshire", - "West Berkshire", - "West Midlands", - "West Sussex", - "West Yorkshire", - "Wiltshire", - "Worcestershire", - "Flintshire", - "Glamorgan", - "Merionethshire", - "Monmouthshire", - "Montgomeryshire", - "Pembrokeshire", - "Radnorshire", - "Anglesey", - "Breconshire", - "Caernarvonshire", - "Cardiganshire", - "Carmarthenshire", - "Denbighshire", - "Aberdeen City", - "Aberdeenshire", - "Angus", - "Argyll and Bute", - "City of Edinburgh", - "Clackmannanshire", - "Dumfries and Galloway", - "Dundee City", - "East Ayrshire", - "East Dunbartonshire", - "East Lothian", - "East Renfrewshire", - "Eilean Siar", - "Falkirk", - "Fife", - "Glasgow City", - "Highland", - "Inverclyde", - "Midlothian", - "Moray", - "North Ayrshire", - "North Lanarkshire", - "Orkney Islands", - "Perth and Kinross", - "Renfrewshire", - "Scottish Borders", - "Shetland Islands", - "South Ayrshire", - "South Lanarkshire", - "Stirling", - "West Dunbartonshire", - "West Lothian", - "Antrim", - "Armagh", - "Down", - "Fermanagh", - "Derry and Londonderry", - "Tyrone", - ) - building_number_formats = ("#", "##", "###") - street_suffixes = ( - "Alley", - "Avenue", - "Branch", - "Bridge", - "Brook", - "Brooks", - "Burg", - "Burgs", - "Bypass", - "Camp", - "Canyon", - "Cape", - "Causeway", - "Center", - "Centers", - "Circle", - "Circles", - "Cliff", - "Cliffs", - "Club", - "Common", - "Corner", - "Corners", - "Course", - "Court", - "Courts", - "Cove", - "Coves", - "Creek", - "Crescent", - "Crest", - "Crossing", - "Crossroad", - "Curve", - "Dale", - "Dam", - "Divide", - "Drive", - "Drive", - "Drives", - "Estate", - "Estates", - "Expressway", - "Extension", - "Extensions", - "Fall", - "Falls", - "Ferry", - "Field", - "Fields", - "Flat", - "Flats", - "Ford", - "Fords", - "Forest", - "Forge", - "Forges", - "Fork", - "Forks", - "Fort", - "Freeway", - "Garden", - "Gardens", - "Gateway", - "Glen", - "Glens", - "Green", - "Greens", - "Grove", - "Groves", - "Harbor", - "Harbors", - "Haven", - "Heights", - "Highway", - "Hill", - "Hills", - "Hollow", - "Inlet", - "Inlet", - "Island", - "Island", - "Islands", - "Islands", - "Isle", - "Isle", - "Junction", - "Junctions", - "Key", - "Keys", - "Knoll", - "Knolls", - "Lake", - "Lakes", - "Land", - "Landing", - "Lane", - "Light", - "Lights", - "Loaf", - "Lock", - "Locks", - "Locks", - "Lodge", - "Lodge", - "Loop", - "Mall", - "Manor", - "Manors", - "Meadow", - "Meadows", - "Mews", - "Mill", - "Mills", - "Mission", - "Mission", - "Motorway", - "Mount", - "Mountain", - "Mountain", - "Mountains", - "Mountains", - "Neck", - "Orchard", - "Oval", - "Overpass", - "Park", - "Parks", - "Parkway", - "Parkways", - "Pass", - "Passage", - "Path", - "Pike", - "Pine", - "Pines", - "Place", - "Plain", - "Plains", - "Plains", - "Plaza", - "Plaza", - "Point", - "Points", - "Port", - "Port", - "Ports", - "Ports", - "Prairie", - "Prairie", - "Radial", - "Ramp", - "Ranch", - "Rapid", - "Rapids", - "Rest", - "Ridge", - "Ridges", - "River", - "Road", - "Road", - "Roads", - "Roads", - "Route", - "Row", - "Rue", - "Run", - "Shoal", - "Shoals", - "Shore", - "Shores", - "Skyway", - "Spring", - "Springs", - "Springs", - "Spur", - "Spurs", - "Square", - "Square", - "Squares", - "Squares", - "Station", - "Station", - "Stravenue", - "Stravenue", - "Stream", - "Stream", - "Street", - "Street", - "Streets", - "Summit", - "Summit", - "Terrace", - "Throughway", - "Trace", - "Track", - "Trafficway", - "Trail", - "Trail", - "Tunnel", - "Tunnel", - "Turnpike", - "Turnpike", - "Underpass", - "Union", - "Unions", - "Valley", - "Valleys", - "Via", - "Viaduct", - "View", - "Views", - "Village", - "Village", - "Villages", - "Ville", - "Vista", - "Vista", - "Walk", - "Walks", - "Wall", - "Way", - "Ways", - "Well", - "Wells", - ) - - POSTAL_ZONES = ( - "AB", - "AL", - "B", - "BA", - "BB", - "BD", - "BH", - "BL", - "BN", - "BR", - "BS", - "BT", - "CA", - "CB", - "CF", - "CH", - "CM", - "CO", - "CR", - "CT", - "CV", - "CW", - "DA", - "DD", - "DE", - "DG", - "DH", - "DL", - "DN", - "DT", - "DY", - "E", - "EC", - "EH", - "EN", - "EX", - "FK", - "FY", - "G", - "GL", - "GY", - "GU", - "HA", - "HD", - "HG", - "HP", - "HR", - "HS", - "HU", - "HX", - "IG", - "IM", - "IP", - "IV", - "JE", - "KA", - "KT", - "KW", - "KY", - "L", - "LA", - "LD", - "LE", - "LL", - "LN", - "LS", - "LU", - "M", - "ME", - "MK", - "ML", - "N", - "NE", - "NG", - "NN", - "NP", - "NR", - "NW", - "OL", - "OX", - "PA", - "PE", - "PH", - "PL", - "PO", - "PR", - "RG", - "RH", - "RM", - "S", - "SA", - "SE", - "SG", - "SK", - "SL", - "SM", - "SN", - "SO", - "SP", - "SR", - "SS", - "ST", - "SW", - "SY", - "TA", - "TD", - "TF", - "TN", - "TQ", - "TR", - "TS", - "TW", - "UB", - "W", - "WA", - "WC", - "WD", - "WF", - "WN", - "WR", - "WS", - "WV", - "YO", - "ZE", - ) - - POSTAL_ZONES_ONE_CHAR = [zone for zone in POSTAL_ZONES if len(zone) == 1] - POSTAL_ZONES_TWO_CHARS = [zone for zone in POSTAL_ZONES if len(zone) == 2] - - postcode_formats = ( - "AN NEE", - "ANN NEE", - "PN NEE", - "PNN NEE", - "ANC NEE", - "PND NEE", - ) - - _postcode_sets = OrderedDict( - ( - (" ", " "), - ("N", [str(i) for i in range(0, 10)]), - ("A", POSTAL_ZONES_ONE_CHAR), - ("B", "ABCDEFGHKLMNOPQRSTUVWXY"), - ("C", "ABCDEFGHJKSTUW"), - ("D", "ABEHMNPRVWXY"), - ("E", "ABDEFGHJLNPQRSTUWXYZ"), - ("P", POSTAL_ZONES_TWO_CHARS), - ) - ) - - city_formats = ( - "{{city_prefix}} {{first_name}}{{city_suffix}}", - "{{city_prefix}} {{first_name}}", - "{{first_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - ) - street_name_formats = ( - "{{first_name}} {{street_suffix}}", - "{{last_name}} {{street_suffix}}", - ) - street_address_formats = ( - "{{building_number}} {{street_name}}", - "{{secondary_address}}\n{{street_name}}", - ) - address_formats = ("{{street_address}}\n{{city}}\n{{postcode}}",) - secondary_address_formats = ( - "Flat #", - "Flat ##", - "Flat ##?", - "Studio #", - "Studio ##", - "Studio ##?", - ) - - def postcode(self) -> str: - """ - See - http://web.archive.org/web/20090930140939/http://www.govtalk.gov.uk/gdsc/html/noframes/PostCode-2-1-Release.htm - """ - postcode = "" - pattern: str = self.random_element(self.postcode_formats) - for placeholder in pattern: - postcode += self.random_element(self._postcode_sets[placeholder]) - return postcode - - def city_prefix(self) -> str: - return self.random_element(self.city_prefixes) - - def secondary_address(self) -> str: - return self.bothify(self.random_element(self.secondary_address_formats)) - - def administrative_unit(self) -> str: - return self.random_element(self.counties) - - county = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_GB/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_GB/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index dd8729c..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/en_GB/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_IE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/en_IE/__init__.py deleted file mode 100644 index cc2f68b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/en_IE/__init__.py +++ /dev/null @@ -1,61 +0,0 @@ -from collections import OrderedDict - -from ..en import Provider as AddressProvider - - -class Provider(AddressProvider): - counties = ( - "Cork", - "Galway", - "Mayo", - "Donegal", - "Kerry", - "Tipperary", - "Clare", - "Tyrone", - "Antrim", - "Limerick", - "Roscommon", - "Down", - "Meath", - "Londonderry", - "Wexford", - "Kilkenny", - "Offaly", - "Cavan", - "Wicklow", - "Waterford", - "Sligo", - "Laois", - "Westmeath", - "Kildare", - "Leitrim", - "Armagh", - "Fermanagh", - "Monaghan", - "Dublin", - "Louth", - "Longford", - "Carlow", - ) - - _postcode_sets = OrderedDict( - ( - (" ", [" ", ""]), - ("N", [str(i) for i in range(0, 10)]), - ("L", "ACDEFHKNPRTVWXY"), - ("A", "ACDEFHKNPRTVWXY0123456789"), - ) - ) - postcode_pattern: str = "LNN AAAA" - - def postcode(self) -> str: - postcode = "" - for placeholder in self.postcode_pattern: - postcode += self.random_element(self._postcode_sets[placeholder]) - return postcode - - def administrative_unit(self) -> str: - return self.random_element(self.counties) - - county = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_IE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_IE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d8af8b7..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/en_IE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_IN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/en_IN/__init__.py deleted file mode 100644 index c517e6c..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/en_IN/__init__.py +++ /dev/null @@ -1,572 +0,0 @@ -from typing import Dict, List, Optional, Tuple - -from faker.providers.address import Provider as AddressProvider - -Range = Tuple[int, int] - - -class Provider(AddressProvider): - # City and States names taken from wikipedia - # Street format taken from some common famous places in India - # Link for cities: https://en.wikipedia.org/wiki/List_of_cities_in_India_by_population - # Link for States: https://en.wikipedia.org/wiki/States_and_union_territories_of_India - # Links for street name formats: https://www.mumbai77.com/city/3313/travel/old-new-street-names/ - - city_formats = ("{{city_name}}",) - - street_name_formats = ( - "{{last_name}} Nagar", - "{{last_name}} Zila", - "{{last_name}} Street", - "{{last_name}} Ganj", - "{{last_name}} Road", - "{{last_name}} Path", - "{{last_name}} Marg", - "{{last_name}} Chowk", - "{{last_name}} Circle", - "{{last_name}}", - ) - - street_address_formats = ( - "{{building_number}}, {{street_name}}", - "{{building_number}}\n{{street_name}}", - ) - - address_formats = ( - "{{street_address}}\n{{city}} {{postcode}}", - "{{street_address}}\n{{city}}-{{postcode}}", - "{{street_address}}, {{city}} {{postcode}}", - "{{street_address}}, {{city}}-{{postcode}}", - ) - - building_number_formats = ("H.No. ###", "###", "H.No. ##", "##", "##/##", "##/###") - - postcode_formats = ("######",) - - cities = ( - "Mumbai", - "Delhi", - "Kolkata", - "Chennai", - "Bangalore", - "Hyderabad", - "Ahmedabad", - "Kanpur", - "Pune", - "Surat", - "Jaipur", - "Lucknow", - "Nagpur", - "Indore", - "Bhopal", - "Ludhiana", - "Patna", - "Visakhapatnam", - "Vadodara", - "Agra", - "Thane", - "Kalyan-Dombivli", - "Varanasi", - "Ranchi", - "Nashik", - "Dhanbad", - "Faridabad", - "Meerut", - "Pimpri-Chinchwad", - "Howrah", - "Allahabad", - "Ghaziabad", - "Rajkot", - "Amritsar", - "Jabalpur", - "Coimbatore", - "Madurai", - "Srinagar", - "Aurangabad", - "Solapur", - "Vijayawada", - "Jodhpur", - "Gwalior", - "Guwahati", - "Chandigarh", - "Hubli–Dharwad", - "Mysore", - "Tiruchirappalli", - "Bareilly", - "Jalandhar", - "Navi Mumbai", - "Salem", - "Kota", - "Vasai-Virar", - "Aligarh", - "Moradabad", - "Bhubaneswar", - "Gorakhpur", - "Raipur", - "Bhiwandi", - "Kochi", - "Jamshedpur", - "Bhilai", - "Amravati", - "Cuttack", - "Warangal", - "Bikaner", - "Mira-Bhayandar", - "Guntur", - "Bhavnagar", - "Durgapur", - "Kolhapur", - "Ajmer", - "Asansol", - "Ulhasnagar", - "Siliguri", - "Jalgaon", - "Saharanpur", - "Jamnagar", - "Bhatpara", - "Sangli-Miraj & Kupwad", - "Kozhikode", - "Nanded", - "Ujjain", - "Dehradun", - "Rourkela", - "Gulbarga", - "Tirunelveli", - "Malegaon", - "Akola", - "Belgaum", - "Mangalore", - "Bokaro", - "South Dumdum", - "Udaipur", - "Gaya", - "Maheshtala", - "Jhansi", - "Nellore", - "Jammu", - "Thiruvananthapuram", - "Davanagere", - "Kollam", - "Panihati", - "Kurnool", - "Tiruppur", - "Dhule", - "Bhagalpur", - "Rajpur Sonarpur", - "Kakinada", - "Thrissur", - "Bellary", - "Muzaffarnagar", - "Korba", - "Rajahmundry", - "Kamarhati", - "Ambattur", - "Berhampur", - "Ahmednagar", - "Muzaffarpur", - "Noida", - "Patiala", - "Mathura", - "New Delhi", - "Latur", - "Sambalpur", - "Shahjahanpur", - "Kulti", - "Chandrapur", - "Nizamabad", - "Rohtak", - "Bardhaman", - "Rampur", - "Bhilwara", - "Firozabad", - "Bilaspur", - "Shimoga", - "Agartala", - "Gopalpur", - "Darbhanga", - "Panipat", - "Bally", - "Alwar", - "Parbhani", - "Ichalkaranji", - "Anantapuram", - "Baranagar", - "Tumkur", - "Ramagundam", - "Jalna", - "Durg", - "Sagar", - "Bihar Sharif", - "Dewas", - "Barasat", - "Avadi", - "Farrukhabad", - "Aizawl", - "Tirupati", - "Bijapur", - "Satara", - "Satna", - "Ratlam", - "Imphal", - "Pondicherry", - "North Dumdum", - "Anantapur", - "Khammam", - "Ozhukarai", - "Bathinda", - "Thoothukudi", - "Thanjavur", - "Naihati", - "Sonipat", - "Mau", - "Tiruvottiyur", - "Hapur", - "Sri Ganganagar", - "Karnal", - "Etawah", - "Nagercoil", - "Raichur", - "Raurkela Industrial Township", - "Secunderabad", - "Karimnagar", - "Mirzapur", - "Bharatpur", - "Ambarnath", - "Arrah", - "Uluberia", - "Serampore", - "Dindigul", - "Gandhinagar", - "Burhanpur", - "Nadiad", - "Eluru", - "Yamunanagar", - "Kharagpur", - "Munger", - "Pali", - "Katni", - "Singrauli", - "Tenali", - "Sikar", - "Silchar", - "Rewa", - "Sambhal", - "Machilipatnam", - "Vellore", - "Alappuzha", - "Bulandshahr", - "Haridwar", - "Vijayanagaram", - "Erode", - "Gurgaon", - "Bidar", - "Bhusawal", - "Khandwa", - "Purnia", - "Haldia", - "Chinsurah", - "Bhiwani", - "Raebareli", - "Junagadh", - "Bahraich", - "Gandhidham", - "Mango", - "Raiganj", - "Amroha", - "Sultan Pur Majra", - "Hospet", - "Bidhannagar", - "Malda", - "Sirsa", - "Berhampore", - "Jaunpur", - "Surendranagar Dudhrej", - "Madhyamgram", - "Kirari Suleman Nagar", - "Bhind", - "Nandyal", - "Chittoor", - "Bhalswa Jahangir Pur", - "Fatehpur", - "Morena", - "Nangloi Jat", - "Ongole", - "Karawal Nagar", - "Shivpuri", - "Morbi", - "Unnao", - "Pallavaram", - "Kumbakonam", - "Shimla", - "Mehsana", - "Panchkula", - "Orai", - "Ambala", - "Dibrugarh", - "Guna", - "Danapur", - "Sasaram", - "Anand", - "Kottayam", - "Hazaribagh", - "Kadapa", - "Saharsa", - "Nagaon", - "Loni", - "Hajipur", - "Dehri", - "Bettiah", - "Katihar", - "Deoghar", - "Jorhat", - "Siwan", - "Panvel", - "Hosur", - "Tinsukia", - "Bongaigaon", - "Motihari", - "Jamalpur", - "Suryapet", - "Begusarai", - "Miryalaguda", - "Proddatur", - "Karaikudi", - "Kishanganj", - "Phusro", - "Buxar", - "Tezpur", - "Jehanabad", - "Aurangabad", - "Chapra", - "Ramgarh", - "Gangtok", - "Adoni", - "Amaravati", - "Ballia", - "Bhimavaram", - "Dharmavaram", - "Giridih", - "Gudivada", - "Guntakal", - "Hindupur", - "Kavali", - "Khora ", - "Ghaziabad", - "Madanapalle", - "Mahbubnagar", - "Medininagar", - "Narasaraopet", - "Phagwara", - "Pudukkottai", - "Srikakulam", - "Tadepalligudem", - "Tadipatri", - "Udupi", - ) - - states = ( - "Andhra Pradesh", - "Arunachal Pradesh", - "Assam", - "Bihar", - "Chhattisgarh", - "Goa", - "Gujarat", - "Haryana", - "Himachal Pradesh", - "Jharkhand", - "Karnataka", - "Kerala", - "Madhya Pradesh", - "Maharashtra", - "Manipur", - "Meghalaya", - "Mizoram", - "Nagaland", - "Odisha", - "Punjab", - "Rajasthan", - "Sikkim", - "Tamil Nadu", - "Telangana", - "Tripura", - "Uttar Pradesh", - "Uttarakhand", - "West Bengal", - ) - - states_abbr: Tuple[str, ...] = ( - "AP", - "AR", - "AS", - "BR", - "CG", - "GA", - "GJ", - "HR", - "HP", - "JH", - "KA", - "KL", - "MP", - "MH", - "MN", - "ML", - "MZ", - "NL", - "OD", - "PB", - "RJ", - "SK", - "TN", - "TG", - "TR", - "UK", - "UP", - "WB", - ) - - union_territories = ( - ("Andaman and Nicobar Islands",), - ("Chandigarh",), - ("Dadra and Nagar Haveli, Dadra & Nagar Haveli",), - ("Daman and Diu",), - ("Delhi, National Capital Territory of Delhi",), - ("Jammu and Kashmir",), - ("Ladakh",), - ("Lakshadweep",), - ("Pondicherry",), - ("Puducherry",), - ) - - union_territories_abbr = ( - "AN", - "CH", - "DN", - "DD", - "DL", - "JK", - "LA", - "LD", - "PY", - ) - - # https://en.wikipedia.org/wiki/Postal_Index_Number - - # FIXME: Some states such as `BR/JH` / `UK/UP` have similar PIN code ranges - # FIXME: as mentioned in above link. - - state_pincode: Dict[str, List[Range]] = { - "AP": [(510_000, 539_999)], - "AR": [(790_000, 792_999)], - "AS": [(780_000, 789_999)], - "BR": [(800_000, 859_999)], - "CG": [(490_000, 499_999)], - "GA": [(403_000, 403_999)], - "GJ": [(360_000, 399_999)], - "HR": [(120_000, 139_999)], - "HP": [(170_000, 179_999)], - "JH": [(800_000, 859_999)], - "KA": [(560_000, 599_999)], - "KL": [(670_000, 681_999), (683_000, 699_999)], - "MP": [(450_000, 489_999)], - "MH": [(400_000, 402_999), (404_000, 449_999)], - "MN": [(795_000, 795_999)], - "ML": [(793_000, 794_999)], - "MZ": [(796_000, 796_999)], - "NL": [(797_000, 798_999)], - "OD": [(750_000, 779_999)], - "PB": [(140_000, 159_999)], - "RJ": [(300_000, 349_999)], - "SK": [(737_000, 737_999)], - "TN": [(600_000, 669_999)], - "TG": [(500_000, 509_999)], - "TR": [(799_000, 799_999)], - "UK": [(200_000, 289_999)], - "UP": [(200_000, 289_999)], - "WB": [(700_000, 736_999), (738_000, 743_999), (745_000, 749_999)], - } - - union_territories_pincode: Dict[str, List[Range]] = { - "AN": [(744_000, 744_999)], - "CH": [(160_000, 169_999)], - "DN": [(396_000, 396_999)], - "DD": [(396_000, 396_999)], - "DL": [(110_000, 119_999)], - "JK": [(180_000, 199_999)], - "LA": [(180_000, 199_999)], - "LD": [(682_000, 682_999)], - "PY": [(605_000, 605_999)], - } - - army_pincode: Dict[str, Range] = {"APS": (900_000, 999_999)} - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit - - def union_territory(self) -> str: - """Returns random union territory name""" - - return self.random_element(self.union_territories)[0] - - def pincode_in_state(self, state_abbr: Optional[str] = None, include_union_territories: bool = False) -> int: - """Random PIN Code within provided state abbreviation - - :param state_abbr: State Abbr, defaults to None - :param include_union_territories: Include Union Territories ?, defaults to False - :raises ValueError: If incorrect state abbr - :return: PIN Code - """ - - known_abbrs = self.states_abbr - if include_union_territories: - known_abbrs += self.union_territories_abbr - - if state_abbr is None: - state_abbr = self.random_element(known_abbrs) - - if state_abbr in known_abbrs: - codes = self.state_pincode - if include_union_territories: - codes.update(self.union_territories_pincode) - - pincode_range = self.random_element(codes[state_abbr]) - - return self.generator.random.randint(*pincode_range) - - raise ValueError("State Abbreviation not found in list") - - def pincode_in_military(self) -> int: - """Random PIN Code within Army Postal Service range""" - - key: str = self.random_element(self.army_pincode.keys()) - - return self.generator.random.randint(*self.army_pincode[key]) - - # Aliases - - def zipcode_in_state(self, state_abbr: Optional[str] = None, include_union_territories: bool = False) -> int: - return self.pincode_in_state(state_abbr, include_union_territories) - - def postcode_in_state(self, state_abbr: Optional[str] = None, include_union_territories: bool = False) -> int: - return self.pincode_in_state(state_abbr, include_union_territories) - - def pincode_in_army(self) -> int: - return self.pincode_in_military() - - def zipcode_in_military(self) -> int: - return self.pincode_in_military() - - def zipcode_in_army(self) -> int: - return self.pincode_in_military() - - def postcode_in_military(self) -> int: - return self.pincode_in_military() - - def postcode_in_army(self) -> int: - return self.pincode_in_military() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_IN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_IN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e6a8302..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/en_IN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_MS/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/en_MS/__init__.py deleted file mode 100644 index 0983ff6..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/en_MS/__init__.py +++ /dev/null @@ -1,486 +0,0 @@ -from collections import OrderedDict -from typing import Dict, List, Optional - -from ... import ElementsType -from ..en import Provider as AddressProvider - -# https://en.wikipedia.org/wiki/Addresses_in_Malaysia - - -class Provider(AddressProvider): - # 'Bandar' and 'Taman' are the most common township prefix - # https://en.wikipedia.org/wiki/Template:Greater_Kuala_Lumpur > Townships - # https://en.wikipedia.org/wiki/Template:Johor > Townships - # https://en.wikipedia.org/wiki/Template:Kedah > Townships - # https://en.wikipedia.org/wiki/Template:Kelantan > Townships - # https://en.wikipedia.org/wiki/Template:Melaka > Townships - # https://en.wikipedia.org/wiki/Template:Negeri_Sembilan > Townships - # https://en.wikipedia.org/wiki/Template:Perak > Townships - # https://en.wikipedia.org/wiki/Template:Penang > Townships - # https://en.wikipedia.org/wiki/Template:Selangor > Townships - # https://en.wikipedia.org/wiki/Template:Terengganu > Townships - - city_prefixes = ( - "Alam", - "Apartment", - "Ara", - "Bandar", - "Bandar", - "Bandar", - "Bandar", - "Bandar", - "Bandar", - "Bandar Bukit", - "Bandar Seri", - "Bandar Sri", - "Bandar Baru", - "Batu", - "Bukit", - "Desa", - "Damansara", - "Kampung", - "Kampung Baru", - "Kampung Baru", - "Kondominium", - "Kota", - "Laman", - "Lembah", - "Medan", - "Pandan", - "Pangsapuri", - "Petaling", - "Puncak", - "Seri", - "Sri", - "Taman", - "Taman", - "Taman", - "Taman", - "Taman", - "Taman", - "Taman Desa", - ) - - city_suffixes = ( - "Aman", - "Amanjaya", - "Anggerik", - "Angkasa", - "Antarabangsa", - "Awan", - "Bahagia", - "Bangsar", - "Baru", - "Belakong", - "Bendahara", - "Bestari", - "Bintang", - "Brickfields", - "Casa", - "Changkat", - "Country Heights", - "Damansara", - "Damai", - "Dato Harun", - "Delima", - "Duta", - "Flora", - "Gembira", - "Genting", - "Harmoni", - "Hartamas", - "Impian", - "Indah", - "Intan", - "Jasa", - "Jaya", - "Keramat", - "Kerinchi", - "Kiara", - "Kinrara", - "Kuchai", - "Laksamana", - "Mahkota", - "Maluri", - "Manggis", - "Maxwell", - "Medan", - "Melawati", - "Menjalara", - "Meru", - "Mulia", - "Mutiara", - "Pahlawan", - "Perdana", - "Pertama", - "Permai", - "Pelangi", - "Petaling", - "Pinang", - "Puchong", - "Puteri", - "Putra", - "Rahman", - "Rahmat", - "Raya", - "Razak", - "Ria", - "Saujana", - "Segambut", - "Selamat", - "Selatan", - "Semarak", - "Sentosa", - "Seputeh", - "Setapak", - "Setia Jaya", - "Sinar", - "Sungai Besi", - "Sungai Buaya", - "Sungai Long", - "Suria", - "Tasik Puteri", - "Tengah", - "Timur", - "Tinggi", - "Tropika", - "Tun Hussein Onn", - "Tun Perak", - "Tunku", - "Ulu", - "Utama", - "Utara", - "Wangi", - ) - - # https://en.wikipedia.org/wiki/States_and_federal_territories_of_Malaysia - states: Dict[str, List[str]] = { - "JHR": ["Johor Darul Ta'zim", "Johor"], - "KDH": ["Kedah Darul Aman", "Kedah"], - "KTN": ["Kelantan Darul Naim", "Kelantan"], - "KUL": ["KL", "Kuala Lumpur", "WP Kuala Lumpur"], - "LBN": ["Labuan"], - "MLK": ["Malacca", "Melaka"], - "NSN": ["Negeri Sembilan Darul Khusus", "Negeri Sembilan"], - "PHG": ["Pahang Darul Makmur", "Pahang"], - "PNG": ["Penang", "Pulau Pinang"], - "PRK": ["Perak Darul Ridzuan", "Perak"], - "PLS": ["Perlis Indera Kayangan", "Perlis"], - "PJY": ["Putrajaya"], - "SBH": ["Sabah"], - "SWK": ["Sarawak"], - "SGR": ["Selangor Darul Ehsan", "Selangor"], - "TRG": ["Terengganu Darul Iman", "Terengganu"], - } - - states_postcode = { - "PLS": [(1000, 2800)], - "KDH": [(5000, 9810)], - "PNG": [(10000, 14400)], - "KTN": [(15000, 18500)], - "TRG": [(20000, 24300)], - "PHG": [ - (25000, 28800), - (39000, 39200), - (49000, 69000), - ], - "PRK": [(30000, 36810)], - "SGR": [(40000, 48300), (63000, 68100)], - "KUL": [(50000, 60000)], - "PJY": [(62000, 62988)], - "NSN": [(70000, 73509)], - "MLK": [(75000, 78309)], - "JHR": [(79000, 86900)], - "LBN": [(87000, 87033)], - "SBH": [(88000, 91309)], - "SWK": [(93000, 98859)], - } - - city_prefix_abbrs: ElementsType[str] = ( - "SS", - "Seksyen ", - "PJS", - "PJU", - "USJ ", - ) - - def city_prefix_abbr(self) -> str: - return self.random_element(self.city_prefix_abbrs) - - city_formats: ElementsType[str] = ( - "{{city_prefix}} {{city_suffix}}", - "{{city_prefix}} {{city_suffix}}", - "{{city_prefix}} {{city_suffix}}", - "{{city_prefix}} {{city_suffix}}", - "{{city_prefix}} {{city_suffix}}", - "{{city_prefix}} {{city_suffix}}", - "{{city_prefix_abbr}}%", - "{{city_prefix_abbr}}%#", - "{{city_prefix_abbr}}%#?", - ) - - def city(self) -> str: - pattern: str = self.bothify(self.random_element(self.city_formats)) - return self.generator.parse(pattern) - - # https://en.wikipedia.org/wiki/List_of_roads_in_Kuala_Lumpur#Standard_translations - street_prefixes: ElementsType[str] = [ - "Jln", - "Jln", - "Jalan", - "Jalan", - "Jalan", - "Lorong", - ] - - def street_prefix(self) -> str: - return self.random_element(self.street_prefixes) - - # https://en.wikipedia.org/wiki/List_of_roads_in_Kuala_Lumpur - # https://en.wikipedia.org/wiki/List_of_roads_in_Ipoh - # https://en.wikipedia.org/wiki/Transportation_in_Seremban#Inner_city_roads - # https://en.wikipedia.org/wiki/List_of_streets_in_George_Town,_Penang - street_suffixes: ElementsType[str] = [ - "Air Itam", - "Alor", - "Ampang", - "Ampang Hilir", - "Anson", - "Ariffin", - "Bangsar", - "Baru", - "Bellamy", - "Birch", - "Bijih Timah", - "Bukit Aman", - "Bukit Bintang", - "Bukit Petaling", - "Bukit Tunku", - "Cantonment", - "Cenderawasih", - "Chan Sow Lin", - "Chow Kit", - "Cinta", - "Cochrane", - "Conlay", - "D. S. Ramanathan", - "Damansara", - "Dang Wangi", - "Davis", - "Dewan Bahasa", - "Dato Abdul Rahman", - "Dato'Keramat", - "Dato' Maharaja Lela", - "Doraisamy", - "Eaton", - "Faraday", - "Galloway", - "Genting Klang", - "Gereja", - "Hang Jebat", - "Hang Kasturi", - "Hang Lekir", - "Hang Lekiu", - "Hang Tuah", - "Hospital", - "Imbi", - "Istana", - "Jelutong", - "Kampung Attap", - "Kebun Bunga", - "Kedah", - "Keliling", - "Kia Peng", - "Kinabalu", - "Kuala Kangsar", - "Kuching", - "Ledang", - "Lembah Permai", - "Loke Yew", - "Lt. Adnan", - "Lumba Kuda", - "Madras", - "Magazine", - "Maharajalela", - "Masjid", - "Maxwell", - "Mohana Chandran", - "Muda", - "P. Ramlee", - "Padang Kota Lama", - "Pahang", - "Pantai Baharu", - "Parlimen", - "Pasar", - "Pasar Besar", - "Perak", - "Perdana", - "Petaling", - "Prangin", - "Pudu", - "Pudu Lama", - "Raja", - "Raja Abdullah", - "Raja Chulan", - "Raja Laut", - "Rakyat", - "Residensi", - "Robson", - "S.P. Seenivasagam", - "Samarahan 1", - "Selamat", - "Sempadan", - "Sentul", - "Serian 1", - "Sasaran", - "Sin Chee", - "Sultan Abdul Samad", - "Sultan Azlan Shah", - "Sultan Iskandar", - "Sultan Ismail", - "Sultan Sulaiman", - "Sungai Besi", - "Syed Putra", - "Tan Cheng Lock", - "Thambipillay", - "Tugu", - "Tuanku Abdul Halim", - "Tuanku Abdul Rahman", - "Tun Abdul Razak", - "Tun Dr Ismail", - "Tun H S Lee", - "Tun Ismail", - "Tun Perak", - "Tun Razak", - "Tun Sambanthan", - "U-Thant", - "Utama", - "Vermont", - "Vivekananda", - "Wan Kadir", - "Wesley", - "Wisma Putra", - "Yaacob Latif", - "Yap Ah Loy", - "Yap Ah Shak", - "Yap Kwan Seng", - "Yew", - "Zaaba", - "Zainal Abidin", - ] - - street_name_formats: ElementsType[str] = ( - "{{street_prefix}} %", - "{{street_prefix}} %/%", - "{{street_prefix}} %/%#", - "{{street_prefix}} %/%?", - "{{street_prefix}} %/%#?", - "{{street_prefix}} %?", - "{{street_prefix}} %#?", - "{{street_prefix}} {{street_suffix}}", - "{{street_prefix}} {{street_suffix}} %", - "{{street_prefix}} {{street_suffix}} %/%", - "{{street_prefix}} {{street_suffix}} %/%#", - "{{street_prefix}} {{street_suffix}} %/%?", - "{{street_prefix}} {{street_suffix}} %/%#?", - "{{street_prefix}} {{street_suffix}} %?", - "{{street_prefix}} {{street_suffix}} %#?", - ) - - def street_name(self) -> str: - """ - :example: 'Crist Parks' - """ - pattern: str = self.bothify(self.random_element(self.street_name_formats)) - return self.generator.parse(pattern) - - building_prefixes: ElementsType[str] = [ - "", - "", - "", - "", - "", - "", - "No. ", - "No. ", - "No. ", - "Lot ", - ] - - def building_prefix(self) -> str: - return self.random_element(self.building_prefixes) - - building_number_formats: ElementsType[str] = ( - "%", - "%", - "%", - "%#", - "%#", - "%#", - "%#", - "%##", - "%-%", - "?-##-##", - "%?-##", - ) - - def building_number(self) -> str: - return self.bothify(self.random_element(self.building_number_formats)) - - street_address_formats: ElementsType[str] = ("{{building_prefix}}{{building_number}}, {{street_name}}",) - - def city_state(self) -> str: - """Return the complete city address with matching postcode and state - - Example: 55100 Bukit Bintang, Kuala Lumpur - """ - state: str = self.random_element(self.states.keys()) - postcode = self.postcode_in_state(state) - city = self.city() - state_name: str = self.random_element(self.states[state]) - - return f"{postcode} {city}, {state_name}" - - # https://en.wikipedia.org/wiki/Addresses_in_Malaysia - # street number, street name, region, and town/city, state. - address_formats = OrderedDict((("{{street_address}}, {{city}}, {{city_state}}", 100.0),)) - - def city_prefix(self) -> str: - return self.random_element(self.city_prefixes) - - def administrative_unit(self) -> str: - return self.random_element(self.states[self.random_element(self.states.keys())]) - - state = administrative_unit - - def postcode_in_state(self, state_abbr: Optional[str] = None) -> str: - """ - :returns: A random postcode within the provided state - - :param state: A state - - Example: 55100 - https://en.wikipedia.org/wiki/Postal_codes_in_Malaysia#States - """ - - if state_abbr is None: - state_abbr = self.random_element(self.states.keys()) - - try: - # some states have multiple ranges so first pick one, then generate a random postcode - range = self.generator.random.choice(self.states_postcode[state_abbr]) - postcode = "%d" % (self.generator.random.randint(*range)) - - # zero left pad up until desired length (some have length 3 or 4) - target_postcode_len = 5 - current_postcode_len = len(postcode) - if current_postcode_len < target_postcode_len: - pad = target_postcode_len - current_postcode_len - postcode = f"{'0'*pad}{postcode}" - - return postcode - except KeyError as e: - raise KeyError("State Abbreviation not found in list") from e - - def postcode(self) -> str: - return self.postcode_in_state(None) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_MS/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_MS/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2311a54..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/en_MS/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_NZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/en_NZ/__init__.py deleted file mode 100644 index 4fb84ef..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/en_NZ/__init__.py +++ /dev/null @@ -1,340 +0,0 @@ -from ..en import Provider as AddressProvider - - -class Provider(AddressProvider): - city_prefixes = ( - "North", - "East", - "West", - "South", - "New", - "Lake", - "Port", - "Upper", - "Lower", - "High", - "Mount", - ) - - city_suffixes = ( - "town", - "ton", - "land", - "ville", - "berg", - "burgh", - "borough", - "bury", - "burn", - "ing", - "port", - "mouth", - "stone", - "ings", - "mouth", - "fort", - "haven", - "leigh", - "side", - "gate", - "neath", - "side", - " Flats", - " Hill", - ) - - building_number_formats = ("%##", "%#", "%") - - street_suffixes = ( - # Most common: - "Arcade", - "Arcade", - "Arcade", - "Avenue", - "Avenue", - "Avenue", - "Avenue", - "Avenue", - "Avenue", - "Avenue", - "Avenue", - "Beach Road", - "Beach Road", - "Beach Road", - "Beach Road", - "Crescent", - "Crescent", - "Crescent", - "Crescent", - "Crescent", - "Drive", - "Drive", - "Drive", - "Drive", - "Mews", - "Mews", - "Mews", - "Place", - "Place", - "Place", - "Place", - "Range Road", - "Range Road", - "Road", - "Road", - "Road", - "Road", - "Road", - "Road", - "Road", - "Road", - "Road", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Terrace", - "Terrace", - "Terrace", - "Way", - "Way", - "Way", - # Other: - "Access", - "Alley", - "Alleyway", - "Amble", - "Anchorage", - "Approach", - "Broadway", - "Bypass", - "Causeway", - "Centre", - "Circle", - "Circuit", - "Close", - "Concourse", - "Copse", - "Corner", - "Court", - "Cove", - "Crest", - "Cross", - "Crossing", - "Cutting", - "Esplanade", - "Flats", - "Gardens", - "Grove", - "Heights", - "Highway", - "Lane", - "Line", - "Keys", - "Parade", - "Park", - "Pass", - "Plaza", - "Point", - "Quay", - "Reserve", - "Ridge", - "Rise", - "Square", - "Track", - "Trail", - "View", - ) - - # Māori nouns commonly present in placenames. - te_reo_parts = ( - "ara", - "awa", - "horo", - "kawa", - "koro", - "kowhai", - "manawa", - "mata", - "maunga", - "moko", - "motu", - "ngauru", - "pa" "papa", - "po", - "puke", - "rangi", - "rohe", - "rongo", - "roto", - "tahi", - "tai", - "tangi", - "tau", - "tere", - "tipu", - "wai", - "waka", - "whaka", - "whanga", - "whare", - "weka", - ) - - # Māori endings (usually adjectives) commonly present in placenames. - te_reo_endings = ( - "hanga", - "hope", - "iti", - "iti", - "kiwi", - "makau", - "nui", - "nui", - "nui", - "nuku", - "roa", - "rua", - "tanga", - "tapu", - "toa", - "whenua", - "whero", - "whitu", - ) - - postcode_formats = ( - # as per https://en.wikipedia.org/wiki/Postcodes_in_New_Zealand - # Northland - "0%##", - # Auckland - "1###", - "20##", - "21##", - "22##", - "23##", - "24##", - "25##", - "26##", - # Central North Island - "3###", - "4###", - # Lower North Island - "50##", - "51##", - "52##", - "53##", - "55##", - "57##", - "58##", - # Wellington - "60##", - "61##", - "62##", - "64##", - "69##", - # Upper South Island - "7###", - # Christchurch - "80##", - "81##", - "82##", - "84##", - "85##", - "86##", - "88##", - "89##", - # Southland - "90##", - "92##", - "93##", - "94##", - "95##", - "96##", - "97##", - "98##", - ) - - city_formats = ( - "{{first_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - "{{city_prefix}} {{last_name}}{{city_suffix}}", - "{{te_reo_first}}{{te_reo_ending}}", - "{{te_reo_first}}{{te_reo_ending}}", - "{{te_reo_first}}{{te_reo_ending}}", - "{{te_reo_first}}{{te_reo_ending}}", - "{{te_reo_first}}{{te_reo_part}}{{te_reo_ending}}", - "{{te_reo_first}}{{te_reo_part}}{{te_reo_ending}}", - ) - - street_name_formats = ( - "{{first_name}} {{street_suffix}}", - "{{last_name}} {{street_suffix}}", - "{{last_name}} {{street_suffix}}", - "{{last_name}} {{street_suffix}}", - "{{last_name}}-{{last_name}} {{street_suffix}}", - "{{te_reo_first}}{{te_reo_ending}} {{street_suffix}}", - "{{te_reo_first}}{{te_reo_ending}} {{street_suffix}}", - "{{te_reo_first}}{{te_reo_part}}{{te_reo_ending}} {{street_suffix}}", - ) - - street_address_formats = ( - "{{building_number}} {{street_name}}", - "{{building_number}} {{street_name}}", - "{{building_number}} {{street_name}}", - "{{building_number}} {{street_name}}\nRD {{rd_number}}", - "{{secondary_address}}\n{{building_number}} {{street_name}}", - "PO Box {{building_number}}", - ) - - address_formats = ("{{street_address}}\n{{city}} {{postcode}}",) - - secondary_address_formats = ( - "Apt. %##", - "Flat %#", - "Suite %##", - "Unit %#", - "Level %", - ) - - def te_reo_part(self) -> str: - return self.random_element(self.te_reo_parts) - - def te_reo_first(self) -> str: - return str(self.random_element(self.te_reo_parts)).capitalize() - - def te_reo_ending(self) -> str: - return self.random_element(self.te_reo_parts + self.te_reo_endings) - - def city_prefix(self) -> str: - return self.random_element(self.city_prefixes) - - def city_suffix(self) -> str: - return self.random_element(self.city_suffixes) - - def rd_number(self) -> str: - return self.random_element([str(i) for i in range(1, 11)]) - - def secondary_address(self) -> str: - return self.numerify(self.random_element(self.secondary_address_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_NZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_NZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 091033f..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/en_NZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/en_PH/__init__.py deleted file mode 100644 index 6048494..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/en_PH/__init__.py +++ /dev/null @@ -1,1799 +0,0 @@ -from collections import OrderedDict -from string import ascii_uppercase -from typing import Sequence, Union - -from ... import ElementsType -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - """ - Provider for addresses for en_PH locale - - Like many things in the Philippines, even addresses are more complicated than necessary. This provider is already - a gross oversimplification, and it is still a lot more complicated VS providers from other locales despite taking - shortcuts. Below are some tidbits of information that, as a whole, shaped the design decisions of this provider. - - - There are many levels of geopolitical division, thus many levels of local government: - * There are three major island groups - Luzon, Visayas, Mindanao - * Those major groups are divided into 17 different regions. - * Each region is divided into provinces with the exception of the National Capital Region aka Metro Manila. - * Each province is composed of multiple cities/municipalities. - * Metro Manila, like a province, is composed of multiple cities/municipalities, but it is a region. - * Each city/municipality is composed of multiple smaller local government units called barangays. - * In some places, some barangays are divided further, and as of 2019, there are 42,045 barangays on record. - - Metro Manila is part of Luzon geographically, but it is almost always treated as a separate entity politically, - economically, statistically, and so on, since it is home to around 13% of the population despite being only around - 0.2% of the country's total land area. - - Names of cities, municipalities, and barangays vary a lot. Furthermore, if a place has a non-English name, there - will almost always be no English translation and vice-versa. It is essentially impossible to generate fake city, - municipality, and barangay names in a similar manner used in the other "en" locales while being locale specific. - - Subdivisions and other higher density housing (like high-rise condominiums) are popular in real estate. - - The 13th floor is omitted in buildings like in many parts of the world. - - The floor number distribution is partly based on the tallest buildings in the Philippines and partly anecdotal, - but the general idea is that the higher the floor number is, the lower probability of it appearing. Furthermore, - as the floor number approaches the highest floors of the tallest buildings, the probability plummets further. - - The address distribution is based on the official 2015 population census. - - Addresses should include a barangay, but it has been dropped to keep things sane, all things considered. - - In addition to numbered floors, buildings have ground floors and may have lower ground, upper ground, mezzanine, - and basement floors. Buildings may also have units on any of those floors, but the naming scheme varies, so they - have been dropped, again to keep things sane. - - Sources: - - https://en.wikipedia.org/wiki/Provinces_of_the_Philippines - - https://en.wikipedia.org/wiki/List_of_cities_and_municipalities_in_the_Philippines - - https://en.wikipedia.org/wiki/Barangay - - https://en.wikipedia.org/wiki/Postal_addresses_in_the_Philippines - - https://en.wikipedia.org/wiki/List_of_ZIP_codes_in_the_Philippines - - https://www.phlpost.gov.ph/ - - http://en.wikipedia.org/wiki/List_of_tallest_buildings_in_the_Philippines - - https://psa.gov.ph/sites/default/files/attachments/hsd/pressrelease/2015%20population%20counts%20Summary_0.xlsx - """ - - metro_manila_postcodes = tuple(x for x in range(400, 1849)) - luzon_province_postcodes = tuple(x for x in range(1850, 5000)) + tuple(x for x in range(5100, 5600)) - visayas_province_postcodes = ( - tuple(x for x in range(5000, 5100)) + tuple(x for x in range(5600, 5800)) + tuple(x for x in range(6000, 6900)) - ) - mindanao_province_postcodes = ( - tuple(x for x in range(7000, 7600)) + tuple(x for x in range(8000, 8900)) + tuple(x for x in range(9000, 9900)) - ) - postcodes = ( - metro_manila_postcodes + luzon_province_postcodes + visayas_province_postcodes + mindanao_province_postcodes - ) - metro_manila_lgus = ( - "Caloocan", - "Las Piñas", - "Makati", - "Malabon", - "Mandaluyong", - "Manila", - "Marikina", - "Muntinlupa", - "Navotas", - "Parañaque", - "Pasay", - "Pasig", - "Pateros", - "Quezon City", - "San Juan", - "Taguig", - "Valenzuela", - ) - province_lgus = ( - "Aborlan", - "Abra de Ilog", - "Abucay", - "Abulug", - "Abuyog", - "Adams", - "Agdangan", - "Aglipay", - "Agno", - "Agoncillo", - "Agoo", - "Aguilar", - "Aguinaldo", - "Agutaya", - "Ajuy", - "Akbar", - "Al-Barka", - "Alabat", - "Alabel", - "Alamada", - "Alaminos", - "Alangalang", - "Albuera", - "Alburquerque", - "Alcala", - "Alcantara", - "Alcoy", - "Alegria", - "Aleosan", - "Alfonso Castañeda", - "Alfonso Lista", - "Alfonso", - "Aliaga", - "Alicia", - "Alilem", - "Alimodian", - "Alitagtag", - "Allacapan", - "Allen", - "Almagro", - "Almeria", - "Aloguinsan", - "Aloran", - "Altavas", - "Alubijid", - "Amadeo", - "Amai Manabilang", - "Ambaguio", - "Amlan", - "Ampatuan", - "Amulung", - "Anahawan", - "Anao", - "Anda", - "Angadanan", - "Angat", - "Angeles", - "Angono", - "Anilao", - "Anini-y", - "Antequera", - "Antipas", - "Antipolo", - "Apalit", - "Aparri", - "Araceli", - "Arakan", - "Arayat", - "Argao", - "Aringay", - "Aritao", - "Aroroy", - "Arteche", - "Asingan", - "Asipulo", - "Asturias", - "Asuncion", - "Atimonan", - "Atok", - "Aurora", - "Ayungon", - "Baao", - "Babatngon", - "Bacacay", - "Bacarra", - "Baclayon", - "Bacnotan", - "Baco", - "Bacolod-Kalawi", - "Bacolod", - "Bacolor", - "Bacong", - "Bacoor", - "Bacuag", - "Badian", - "Badiangan", - "Badoc", - "Bagabag", - "Bagac", - "Bagamanoc", - "Baganga", - "Baggao", - "Bago", - "Baguio", - "Bagulin", - "Bagumbayan", - "Bais", - "Bakun", - "Balabac", - "Balabagan", - "Balagtas", - "Balamban", - "Balanga", - "Balangiga", - "Balangkayan", - "Balaoan", - "Balasan", - "Balatan", - "Balayan", - "Balbalan", - "Baleno", - "Baler", - "Balete", - "Baliangao", - "Baliguian", - "Balilihan", - "Balindong", - "Balingasag", - "Balingoan", - "Baliuag", - "Ballesteros", - "Baloi", - "Balud", - "Balungao", - "Bamban", - "Bambang", - "Banate", - "Banaue", - "Banaybanay", - "Banayoyo", - "Banga", - "Bangar", - "Bangued", - "Bangui", - "Banguingui", - "Bani", - "Banisilan", - "Banna", - "Bansalan", - "Bansud", - "Bantay", - "Bantayan", - "Banton", - "Baras", - "Barbaza", - "Barcelona", - "Barili", - "Barira", - "Barlig", - "Barobo", - "Barotac Nuevo", - "Barotac Viejo", - "Baroy", - "Barugo", - "Basay", - "Basco", - "Basey", - "Basilisa", - "Basista", - "Basud", - "Batac", - "Batad", - "Batan", - "Batangas City", - "Bataraza", - "Bato", - "Batuan", - "Bauan", - "Bauang", - "Bauko", - "Baungon", - "Bautista", - "Bay", - "Bayabas", - "Bayambang", - "Bayang", - "Bayawan", - "Baybay", - "Bayog", - "Bayombong", - "Bayugan", - "Belison", - "Benito Soliven", - "Besao", - "Bien Unido", - "Bilar", - "Biliran", - "Binalbagan", - "Binalonan", - "Biñan", - "Binangonan", - "Bindoy", - "Bingawan", - "Binidayan", - "Binmaley", - "Binuangan", - "Biri", - "Bislig", - "Boac", - "Bobon", - "Bocaue", - "Bogo", - "Bokod", - "Bolinao", - "Boliney", - "Boljoon", - "Bombon", - "Bongabon", - "Bongabong", - "Bongao", - "Bonifacio", - "Bontoc", - "Borbon", - "Borongan", - "Boston", - "Botolan", - "Braulio E. Dujali", - "Brooke's Point", - "Buadiposo-Buntong", - "Bubong", - "Bucay", - "Bucloc", - "Buenavista", - "Bugallon", - "Bugasong", - "Buguey", - "Buguias", - "Buhi", - "Bula", - "Bulakan", - "Bulalacao", - "Bulan", - "Buldon", - "Buluan", - "Bulusan", - "Bunawan", - "Burauen", - "Burdeos", - "Burgos", - "Buruanga", - "Bustos", - "Busuanga", - "Butig", - "Butuan", - "Buug", - "Caba", - "Cabadbaran", - "Cabagan", - "Cabanatuan", - "Cabangan", - "Cabanglasan", - "Cabarroguis", - "Cabatuan", - "Cabiao", - "Cabucgayan", - "Cabugao", - "Cabusao", - "Cabuyao", - "Cadiz", - "Cagayan de Oro", - "Cagayancillo", - "Cagdianao", - "Cagwait", - "Caibiran", - "Cainta", - "Cajidiocan", - "Calabanga", - "Calaca", - "Calamba", - "Calanasan", - "Calanogas", - "Calapan", - "Calape", - "Calasiao", - "Calatagan", - "Calatrava", - "Calauag", - "Calauan", - "Calayan", - "Calbayog", - "Calbiga", - "Calinog", - "Calintaan", - "Calubian", - "Calumpit", - "Caluya", - "Camalaniugan", - "Camalig", - "Camaligan", - "Camiling", - "Can-avid", - "Canaman", - "Candaba", - "Candelaria", - "Candijay", - "Candon", - "Candoni", - "Canlaon", - "Cantilan", - "Caoayan", - "Capalonga", - "Capas", - "Capoocan", - "Capul", - "Caraga", - "Caramoan", - "Caramoran", - "Carasi", - "Carcar", - "Cardona", - "Carigara", - "Carles", - "Carmen", - "Carmona", - "Carranglan", - "Carrascal", - "Casiguran", - "Castilla", - "Castillejos", - "Cataingan", - "Catanauan", - "Catarman", - "Catbalogan", - "Cateel", - "Catigbian", - "Catmon", - "Catubig", - "Cauayan", - "Cavinti", - "Cavite City", - "Cawayan", - "Cebu City", - "Cervantes", - "Clarin", - "Claver", - "Claveria", - "Columbio", - "Compostela", - "Concepcion", - "Conner", - "Consolacion", - "Corcuera", - "Cordon", - "Cordova", - "Corella", - "Coron", - "Cortes", - "Cotabato City", - "Cuartero", - "Cuenca", - "Culaba", - "Culasi", - "Culion", - "Currimao", - "Cuyapo", - "Cuyo", - "Daanbantayan", - "Daet", - "Dagami", - "Dagohoy", - "Daguioman", - "Dagupan", - "Dalaguete", - "Damulog", - "Danao", - "Dangcagan", - "Danglas", - "Dao", - "Dapa", - "Dapitan", - "Daraga", - "Daram", - "Dasmariñas", - "Dasol", - "Datu Abdullah Sangki", - "Datu Anggal Midtimbang", - "Datu Blah T. Sinsuat", - "Datu Hoffer Ampatuan", - "Datu Montawal", - "Datu Odin Sinsuat", - "Datu Paglas", - "Datu Piang", - "Datu Salibo", - "Datu Saudi-Ampatuan", - "Datu Unsay", - "Dauin", - "Dauis", - "Davao City", - "Del Carmen", - "Del Gallego", - "Delfin Albano", - "Diadi", - "Diffun", - "Digos", - "Dilasag", - "Dimasalang", - "Dimataling", - "Dimiao", - "Dinagat", - "Dinalungan", - "Dinalupihan", - "Dinapigue", - "Dinas", - "Dingalan", - "Dingle", - "Dingras", - "Dipaculao", - "Diplahan", - "Dipolog", - "Ditsaan-Ramain", - "Divilacan", - "Dolores", - "Don Carlos", - "Don Marcelino", - "Don Victoriano Chiongbian", - "Doña Remedios Trinidad", - "Donsol", - "Dueñas", - "Duero", - "Dulag", - "Dumaguete", - "Dumalag", - "Dumalinao", - "Dumalneg", - "Dumangas", - "Dumanjug", - "Dumaran", - "Dumarao", - "Dumingag", - "Dupax del Norte", - "Dupax del Sur", - "Echague", - "El Nido", - "El Salvador", - "Enrile", - "Enrique B. Magalona", - "Enrique Villanueva", - "Escalante", - "Esperanza", - "Estancia", - "Famy", - "Ferrol", - "Flora", - "Floridablanca", - "Gabaldon", - "Gainza", - "Galimuyod", - "Gamay", - "Gamu", - "Ganassi", - "Gandara", - "Gapan", - "Garchitorena", - "Garcia Hernandez", - "Gasan", - "Gattaran", - "General Emilio Aguinaldo", - "General Luna", - "General MacArthur", - "General Mamerto Natividad", - "General Mariano Alvarez", - "General Nakar", - "General Salipada K. Pendatun", - "General Santos", - "General Tinio", - "General Trias", - "Gerona", - "Getafe", - "Gigaquit", - "Gigmoto", - "Ginatilan", - "Gingoog", - "Giporlos", - "Gitagum", - "Glan", - "Gloria", - "Goa", - "Godod", - "Gonzaga", - "Governor Generoso", - "Gregorio del Pilar", - "Guagua", - "Gubat", - "Guiguinto", - "Guihulngan", - "Guimba", - "Guimbal", - "Guinayangan", - "Guindulman", - "Guindulungan", - "Guinobatan", - "Guinsiliban", - "Guipos", - "Guiuan", - "Gumaca", - "Gutalac", - "Hadji Mohammad Ajul", - "Hadji Muhtamad", - "Hadji Panglima Tahil", - "Hagonoy", - "Hamtic", - "Hermosa", - "Hernani", - "Hilongos", - "Himamaylan", - "Hinabangan", - "Hinatuan", - "Hindang", - "Hingyon", - "Hinigaran", - "Hinoba-an", - "Hinunangan", - "Hinundayan", - "Hungduan", - "Iba", - "Ibaan", - "Ibajay", - "Igbaras", - "Iguig", - "Ilagan", - "Iligan", - "Ilog", - "Iloilo City", - "Imelda", - "Impasugong", - "Imus", - "Inabanga", - "Indanan", - "Indang", - "Infanta", - "Initao", - "Inopacan", - "Ipil", - "Iriga", - "Irosin", - "Isabel", - "Isabela City", - "Isabela", - "Isulan", - "Itbayat", - "Itogon", - "Ivana", - "Ivisan", - "Jabonga", - "Jaen", - "Jagna", - "Jalajala", - "Jamindan", - "Janiuay", - "Jaro", - "Jasaan", - "Javier", - "Jiabong", - "Jimalalud", - "Jimenez", - "Jipapad", - "Jolo", - "Jomalig", - "Jones", - "Jordan", - "Jose Abad Santos", - "Jose Dalman", - "Jose Panganiban", - "Josefina", - "Jovellar", - "Juban", - "Julita", - "Kabacan", - "Kabankalan", - "Kabasalan", - "Kabayan", - "Kabugao", - "Kabuntalan", - "Kadingilan", - "Kalamansig", - "Kalawit", - "Kalayaan", - "Kalibo", - "Kalilangan", - "Kalingalan Caluang", - "Kananga", - "Kapai", - "Kapalong", - "Kapangan", - "Kapatagan", - "Kasibu", - "Katipunan", - "Kauswagan", - "Kawayan", - "Kawit", - "Kayapa", - "Kiamba", - "Kiangan", - "Kibawe", - "Kiblawan", - "Kibungan", - "Kidapawan", - "Kinoguitan", - "Kitaotao", - "Kitcharao", - "Kolambugan", - "Koronadal", - "Kumalarang", - "La Carlota", - "La Castellana", - "La Libertad", - "La Paz", - "La Trinidad", - "Laak", - "Labangan", - "Labason", - "Labo", - "Labrador", - "Lacub", - "Lagangilang", - "Lagawe", - "Lagayan", - "Lagonglong", - "Lagonoy", - "Laguindingan", - "Lake Sebu", - "Lakewood", - "Lal-lo", - "Lala", - "Lambayong", - "Lambunao", - "Lamitan", - "Lamut", - "Langiden", - "Languyan", - "Lantapan", - "Lantawan", - "Lanuza", - "Laoac", - "Laoag", - "Laoang", - "Lapinig", - "Lapu-Lapu", - "Lapuyan", - "Larena", - "Las Navas", - "Las Nieves", - "Lasam", - "Laua-an", - "Laur", - "Laurel", - "Lavezares", - "Lawaan", - "Lazi", - "Lebak", - "Leganes", - "Legazpi", - "Lemery", - "Leon B. Postigo", - "Leon", - "Leyte", - "Lezo", - "Lian", - "Lianga", - "Libacao", - "Libagon", - "Libertad", - "Libjo", - "Libmanan", - "Libon", - "Libona", - "Libungan", - "Licab", - "Licuan-Baay", - "Lidlidda", - "Ligao", - "Lila", - "Liliw", - "Liloan", - "Liloy", - "Limasawa", - "Limay", - "Linamon", - "Linapacan", - "Lingayen", - "Lingig", - "Lipa", - "Llanera", - "Llorente", - "Loay", - "Lobo", - "Loboc", - "Looc", - "Loon", - "Lope de Vega", - "Lopez Jaena", - "Lopez", - "Loreto", - "Los Baños", - "Luba", - "Lubang", - "Lubao", - "Lubuagan", - "Lucban", - "Lucena", - "Lugait", - "Lugus", - "Luisiana", - "Lumba-Bayabao", - "Lumbaca-Unayan", - "Lumban", - "Lumbatan", - "Lumbayanague", - "Luna", - "Lupao", - "Lupi", - "Lupon", - "Lutayan", - "Luuk", - "M'lang", - "Maasim", - "Maasin", - "Maayon", - "Mabalacat", - "Mabinay", - "Mabini", - "Mabitac", - "Mabuhay", - "Macabebe", - "Macalelon", - "MacArthur", - "Maco", - "Maconacon", - "Macrohon", - "Madalag", - "Madalum", - "Madamba", - "Maddela", - "Madrid", - "Madridejos", - "Magalang", - "Magallanes", - "Magarao", - "Magdalena", - "Magdiwang", - "Magpet", - "Magsaysay", - "Magsingal", - "Maguing", - "Mahaplag", - "Mahatao", - "Mahayag", - "Mahinog", - "Maigo", - "Maimbung", - "Mainit", - "Maitum", - "Majayjay", - "Makato", - "Makilala", - "Malabang", - "Malabuyoc", - "Malalag", - "Malangas", - "Malapatan", - "Malasiqui", - "Malay", - "Malaybalay", - "Malibcong", - "Malilipot", - "Malimono", - "Malinao", - "Malita", - "Malitbog", - "Mallig", - "Malolos", - "Malungon", - "Maluso", - "Malvar", - "Mamasapano", - "Mambajao", - "Mamburao", - "Mambusao", - "Manabo", - "Manaoag", - "Manapla", - "Manay", - "Mandaon", - "Mandaue", - "Mangaldan", - "Mangatarem", - "Mangudadatu", - "Manito", - "Manjuyod", - "Mankayan", - "Manolo Fortich", - "Mansalay", - "Manticao", - "Manukan", - "Mapanas", - "Mapandan", - "Mapun", - "Marabut", - "Maragondon", - "Maragusan", - "Maramag", - "Marantao", - "Marawi", - "Marcos", - "Margosatubig", - "Maria Aurora", - "Maria", - "Maribojoc", - "Marihatag", - "Marilao", - "Maripipi", - "Mariveles", - "Marogong", - "Masantol", - "Masbate City", - "Masinloc", - "Masiu", - "Maslog", - "Mataasnakahoy", - "Matag-ob", - "Matalam", - "Matalom", - "Matanao", - "Matanog", - "Mati", - "Matnog", - "Matuguinao", - "Matungao", - "Mauban", - "Mawab", - "Mayantoc", - "Maydolong", - "Mayorga", - "Mayoyao", - "Medellin", - "Medina", - "Mendez", - "Mercedes", - "Merida", - "Mexico", - "Meycauayan", - "Miagao", - "Midsalip", - "Midsayap", - "Milagros", - "Milaor", - "Mina", - "Minalabac", - "Minalin", - "Minglanilla", - "Moalboal", - "Mobo", - "Mogpog", - "Moises Padilla", - "Molave", - "Moncada", - "Mondragon", - "Monkayo", - "Monreal", - "Montevista", - "Morong", - "Motiong", - "Mulanay", - "Mulondo", - "Munai", - "Muñoz", - "Murcia", - "Mutia", - "Naawan", - "Nabas", - "Nabua", - "Nabunturan", - "Naga", - "Nagbukel", - "Nagcarlan", - "Nagtipunan", - "Naguilian", - "Naic", - "Nampicuan", - "Narra", - "Narvacan", - "Nasipit", - "Nasugbu", - "Natividad", - "Natonin", - "Naujan", - "Naval", - "New Bataan", - "New Corella", - "New Lucena", - "New Washington", - "Norala", - "Northern Kabuntalan", - "Norzagaray", - "Noveleta", - "Nueva Era", - "Nueva Valencia", - "Numancia", - "Nunungan", - "Oas", - "Obando", - "Ocampo", - "Odiongan", - "Old Panamao", - "Olongapo", - "Olutanga", - "Omar", - "Opol", - "Orani", - "Oras", - "Orion", - "Ormoc", - "Oroquieta", - "Oslob", - "Oton", - "Ozamiz", - "Padada", - "Padre Burgos", - "Padre Garcia", - "Paete", - "Pagadian", - "Pagalungan", - "Pagayawan", - "Pagbilao", - "Paglat", - "Pagsanghan", - "Pagsanjan", - "Pagudpud", - "Pakil", - "Palanan", - "Palanas", - "Palapag", - "Palauig", - "Palayan", - "Palimbang", - "Palo", - "Palompon", - "Paluan", - "Pambujan", - "Pamplona", - "Panabo", - "Panaon", - "Panay", - "Pandag", - "Pandami", - "Pandan", - "Pandi", - "Panganiban", - "Pangantucan", - "Pangil", - "Panglao", - "Panglima Estino", - "Panglima Sugala", - "Pangutaran", - "Paniqui", - "Panitan", - "Pantabangan", - "Pantao Ragat", - "Pantar", - "Pantukan", - "Panukulan", - "Paoay", - "Paombong", - "Paracale", - "Paracelis", - "Paranas", - "Parang", - "Pasacao", - "Pasil", - "Passi", - "Pastrana", - "Pasuquin", - "Pata", - "Patikul", - "Patnanungan", - "Patnongon", - "Pavia", - "Payao", - "Peñablanca", - "Peñaranda", - "Peñarrubia", - "Perez", - "Piagapo", - "Piat", - "Picong", - "Piddig", - "Pidigan", - "Pigcawayan", - "Pikit", - "Pila", - "Pilar", - "Pili", - "Pililla", - "Pinabacdao", - "Pinamalayan", - "Pinamungajan", - "Piñan", - "Pinili", - "Pintuyan", - "Pinukpuk", - "Pio Duran", - "Pio V. Corpuz", - "Pitogo", - "Placer", - "Plaridel", - "Pola", - "Polanco", - "Polangui", - "Polillo", - "Polomolok", - "Pontevedra", - "Poona Bayabao", - "Poona Piagapo", - "Porac", - "Poro", - "Pototan", - "Pozorrubio", - "Presentacion", - "President Carlos P. Garcia", - "President Manuel A. Roxas", - "President Quirino", - "President Roxas", - "Prieto Diaz", - "Prosperidad", - "Pualas", - "Pudtol", - "Puerto Galera", - "Puerto Princesa", - "Pugo", - "Pulilan", - "Pulupandan", - "Pura", - "Quezon", - "Quinapondan", - "Quirino", - "Ragay", - "Rajah Buayan", - "Ramon Magsaysay", - "Ramon", - "Ramos", - "Rapu-Rapu", - "Real", - "Reina Mercedes", - "Remedios T. Romualdez", - "Rizal", - "Rodriguez", - "Romblon", - "Ronda", - "Rosales", - "Rosario", - "Roseller Lim", - "Roxas City", - "Roxas", - "Sabangan", - "Sablan", - "Sablayan", - "Sabtang", - "Sadanga", - "Sagada", - "Sagay", - "Sagbayan", - "Sagñay", - "Saguday", - "Saguiaran", - "Saint Bernard", - "Salay", - "Salcedo", - "Sallapadan", - "Salug", - "Salvador Benedicto", - "Salvador", - "Samal", - "Samboan", - "Sampaloc", - "San Agustin", - "San Andres", - "San Antonio", - "San Benito", - "San Carlos", - "San Clemente", - "San Dionisio", - "San Emilio", - "San Enrique", - "San Esteban", - "San Fabian", - "San Felipe", - "San Fernando", - "San Francisco", - "San Gabriel", - "San Guillermo", - "San Ildefonso", - "San Isidro", - "San Jacinto", - "San Joaquin", - "San Jorge", - "San Jose de Buan", - "San Jose de Buenavista", - "San Jose del Monte", - "San Jose", - "San Juan", - "San Julian", - "San Leonardo", - "San Lorenzo Ruiz", - "San Lorenzo", - "San Luis", - "San Manuel", - "San Marcelino", - "San Mariano", - "San Mateo", - "San Miguel", - "San Narciso", - "San Nicolas", - "San Pablo", - "San Pascual", - "San Pedro", - "San Policarpo", - "San Quintin", - "San Rafael", - "San Remigio", - "San Ricardo", - "San Roque", - "San Sebastian", - "San Simon", - "San Teodoro", - "San Vicente", - "Sanchez-Mira", - "Santa Ana", - "Santa Barbara", - "Santa Catalina", - "Santa Cruz", - "Santa Elena", - "Santa Fe", - "Santa Ignacia", - "Santa Josefa", - "Santa Lucia", - "Santa Magdalena", - "Santa Marcela", - "Santa Margarita", - "Santa Maria", - "Santa Monica", - "Santa Praxedes", - "Santa Rita", - "Santa Rosa", - "Santa Teresita", - "Santa", - "Santander", - "Santiago", - "Santo Domingo", - "Santo Niño", - "Santo Tomas", - "Santol", - "Sapa-Sapa", - "Sapad", - "Sapang Dalaga", - "Sapian", - "Sara", - "Sarangani", - "Sariaya", - "Sarrat", - "Sasmuan", - "Sebaste", - "Senator Ninoy Aquino", - "Sergio Osmeña Sr.", - "Sevilla", - "Shariff Aguak", - "Shariff Saydona Mustapha", - "Siasi", - "Siaton", - "Siay", - "Siayan", - "Sibagat", - "Sibalom", - "Sibonga", - "Sibuco", - "Sibulan", - "Sibunag", - "Sibutad", - "Sibutu", - "Sierra Bullones", - "Sigay", - "Sigma", - "Sikatuna", - "Silago", - "Silang", - "Silay", - "Silvino Lobos", - "Simunul", - "Sinacaban", - "Sinait", - "Sindangan", - "Siniloan", - "Siocon", - "Sipalay", - "Sipocot", - "Siquijor", - "Sirawai", - "Siruma", - "Sison", - "Sitangkai", - "Socorro", - "Sofronio Española", - "Sogod", - "Solana", - "Solano", - "Solsona", - "Sominot", - "Sorsogon City", - "South Ubian", - "South Upi", - "Sual", - "Subic", - "Sudipen", - "Sugbongcogon", - "Sugpon", - "Sulat", - "Sulop", - "Sultan Dumalondong", - "Sultan Kudarat", - "Sultan Mastura", - "Sultan Naga Dimaporo", - "Sultan sa Barongis", - "Sultan Sumagka", - "Sumilao", - "Sumisip", - "Surallah", - "Surigao City", - "Suyo", - "T'Boli", - "Taal", - "Tabaco", - "Tabango", - "Tabina", - "Tabogon", - "Tabontabon", - "Tabuan-Lasa", - "Tabuelan", - "Tabuk", - "Tacloban", - "Tacurong", - "Tadian", - "Taft", - "Tagana-an", - "Tagapul-an", - "Tagaytay", - "Tagbilaran", - "Tagbina", - "Tagkawayan", - "Tago", - "Tagoloan II", - "Tagoloan", - "Tagudin", - "Tagum", - "Talacogon", - "Talaingod", - "Talakag", - "Talalora", - "Talavera", - "Talayan", - "Talibon", - "Talipao", - "Talisay", - "Talisayan", - "Talugtug", - "Talusan", - "Tambulig", - "Tampakan", - "Tamparan", - "Tampilisan", - "Tanauan", - "Tanay", - "Tandag", - "Tandubas", - "Tangalan", - "Tangcal", - "Tangub", - "Tanjay", - "Tantangan", - "Tanudan", - "Tanza", - "Tapaz", - "Tapul", - "Taraka", - "Tarangnan", - "Tarlac City", - "Tarragona", - "Tayabas", - "Tayasan", - "Taysan", - "Taytay", - "Tayug", - "Tayum", - "Teresa", - "Ternate", - "Tiaong", - "Tibiao", - "Tigaon", - "Tigbao", - "Tigbauan", - "Tinambac", - "Tineg", - "Tinglayan", - "Tingloy", - "Tinoc", - "Tipo-Tipo", - "Titay", - "Tiwi", - "Tobias Fornier", - "Toboso", - "Toledo", - "Tolosa", - "Tomas Oppus", - "Torrijos", - "Trece Martires", - "Trento", - "Trinidad", - "Tuao", - "Tuba", - "Tubajon", - "Tubao", - "Tubaran", - "Tubay", - "Tubigon", - "Tublay", - "Tubo", - "Tubod", - "Tubungan", - "Tuburan", - "Tudela", - "Tugaya", - "Tuguegarao", - "Tukuran", - "Tulunan", - "Tumauini", - "Tunga", - "Tungawan", - "Tupi", - "Turtle Islands", - "Tuy", - "Ubay", - "Umingan", - "Ungkaya Pukan", - "Unisan", - "Upi", - "Urbiztondo", - "Urdaneta", - "Uson", - "Uyugan", - "Valderrama", - "Valencia", - "Valladolid", - "Vallehermoso", - "Veruela", - "Victoria", - "Victorias", - "Viga", - "Vigan", - "Villaba", - "Villanueva", - "Villareal", - "Villasis", - "Villaverde", - "Villaviciosa", - "Vincenzo A. Sagun", - "Vintar", - "Vinzons", - "Virac", - "Wao", - "Zamboanga City", - "Zamboanguita", - "Zaragoza", - "Zarraga", - "Zumarraga", - ) - luzon_provinces = ( - "Abra", - "Albay", - "Apayao", - "Aurora", - "Bataan", - "Batanes", - "Batangas", - "Benguet", - "Bulacan", - "Cagayan", - "Camarines Norte", - "Camarines Sur", - "Catanduanes", - "Cavite", - "Ifugao", - "Ilocos Norte", - "Ilocos Sur", - "Isabela", - "Kalinga", - "La Union", - "Laguna", - "Marinduque", - "Masbate", - "Mountain Province", - "Nueva Ecija", - "Nueva Vizcaya", - "Occidental Mindoro", - "Oriental Mindoro", - "Palawan", - "Pampanga", - "Pangasinan", - "Quezon", - "Quirino", - "Rizal", - "Romblon", - "Sorsogon", - "Tarlac", - "Zambales", - ) - visayas_provinces = ( - "Aklan", - "Antique", - "Biliran", - "Bohol", - "Capiz", - "Cebu", - "Eastern Samar", - "Guimaras", - "Iloilo", - "Leyte", - "Negros Occidental", - "Negros Oriental", - "Northern Samar", - "Samar", - "Siquijor", - "Southern Leyte", - ) - mindanao_provinces = ( - "Agusan del Norte", - "Agusan del Sur", - "Basilan", - "Bukidnon", - "Camiguin", - "Compostela Valley", - "Cotabato", - "Davao del Norte", - "Davao del Sur", - "Davao Occidental", - "Davao Oriental", - "Dinagat Islands", - "Lanao del Norte", - "Lanao del Sur", - "Maguindanao", - "Misamis Occidental", - "Misamis Oriental", - "Sarangani", - "South Cotabato", - "Sultan Kudarat", - "Sulu", - "Surigao del Norte", - "Surigao del Sur", - "Tawi-Tawi", - "Zamboanga del Norte", - "Zamboanga del Sur", - "Zamboanga Sibugay", - ) - provinces = luzon_provinces + visayas_provinces + mindanao_provinces - - partitioned_building_number_formats = ( - "{{standalone_building_number}}?", - "{{standalone_building_number}} ?", - "{{standalone_building_number}}-?", - "{{standalone_building_number}} Unit ?", - ) - building_unit_number_formats = ( - "Unit {{floor_unit_number}}", - "Room {{floor_unit_number}}", - "{{floor_number}}F", - "{{ordinal_floor_number}} Floor", - ) - building_name_formats = ( - "{{last_name}} {{building_name_suffix}}", - "{{random_object_name}} {{building_name_suffix}}", - ) - building_name_suffixes = ( - "Apartment", - "Apartments", - "Building", - "Building %", - "Building Tower %", - "Condominiums", - "Condominiums %", - "Condominiums Tower %", - "Place", - "Place %", - "Place Tower %", - "Residences", - "Residences %", - "Residences Tower %", - "Suites", - "Suites %", - "Suites Tower %", - "Tower", - "Towers", - "Towers %", - ) - subdivision_unit_number_formats = ( - "B{{subdivision_block_number}} L{{subdivision_lot_number}}", - "Block {{subdivision_block_number}} Lot {{subdivision_lot_number}}", - ) - subdivision_name_formats = ( - "{{last_name}} {{subdivision_name_suffix}}", - "{{random_object_name}} {{subdivision_name_suffix}}", - ) - subdivision_name_suffixes = ( - "Cove", - "Cove %", - "Cove Phase %", - "Estates", - "Estates %", - "Estates Phase %", - "Grove", - "Grove %", - "Grove Phase %", - "Homes", - "Homes %", - "Homes Phase %", - "Subdivision", - "Subdivision %", - "Subdivision Phase %", - "Village", - "Village %", - "Village Phase %", - ) - floor_numbers = OrderedDict( - [(str(x), 0.08) for x in range(2, 5)] # Floors 2 to 4, 24% of the time - + [(str(x), 0.32356832089420257 / x) for x in range(5, 13)] # Floors 5 to 12, 33% of the time - + [(str(x), 0.30341265418486174 / (x - 1)) for x in range(14, 30)] # Floors 14 to 29, 25% of the time - + [(str(x), 0.30096338222652870 / (x - 1)) for x in range(30, 50)] # Floors 30 to 49, 16% of the time - + [(str(x), 0.04570476167856688 / (x - 1)) for x in range(50, 75)] # Floors 50 to 74, 1.9% of the time - + [(str(x), 0.003415677066138734 / (x - 1)) for x in range(75, 100)] # Floors 75 to 99, 0.1% of the time - ) - - street_suffixes = OrderedDict( - [ - ("Avenue", 0.12), - ("Avenue Extension", 0.01), - ("Boulevard", 0.05), - ("Boulevard Extension", 0.008), - ("Circle", 0.002), - ("Drive", 0.15), - ("Drive Extension", 0.03), - ("Expressway", 0.01), - ("Extension", 0.05), - ("Highway", 0.02), - ("Road", 0.2), - ("Road Extension", 0.04), - ("Service Road", 0.01), - ("Street", 0.3), - ] - ) - street_name_formats = ( - "{{last_name}} {{street_suffix}}", - "{{ordinal_street_number}} {{street_suffix}}", - "{{gemstone_name}} {{street_suffix}}", - "{{mountain_name}} {{street_suffix}}", - "{{plant_name}} {{street_suffix}}", - "{{space_object_name}} {{street_suffix}}", - ) - street_address_formats = ( - "{{standalone_building_number}} {{street_name}}", - "{{partitioned_building_number}} {{street_name}}", - "{{subdivision_unit_number}} {{subdivision_name}}, {{street_name}}", - "{{subdivision_unit_number}} {{street_name}}, {{subdivision_name}}", - "{{standalone_building_number}} {{street_name}}, {{subdivision_name}}", - "{{building_unit_number}} {{building_name}}, {{standalone_building_number}} {{street_name}}", - ) - - metro_manila_address_formats = ("{{street_address}}, {{metro_manila_lgu}}, {{metro_manila_postcode}} Metro Manila",) - luzon_province_address_formats = ( - "{{street_address}}, {{province_lgu}}, {{luzon_province_postcode}} {{luzon_province}}", - ) - visayas_province_address_formats = ( - "{{street_address}}, {{province_lgu}}, {{visayas_province_postcode}} {{visayas_province}}", - ) - mindanao_province_address_formats = ( - "{{street_address}}, {{province_lgu}}, {{mindanao_province_postcode}} {{mindanao_province}}", - ) - address_formats = OrderedDict( - [ - *[(fmt, 0.127524) for fmt in metro_manila_address_formats], - *[(fmt, 0.485317) for fmt in luzon_province_address_formats], - *[(fmt, 0.148142) for fmt in visayas_province_address_formats], - *[(fmt, 0.239017) for fmt in mindanao_province_address_formats], - ] - ) - - def _ordinal_string(self, num: Union[int, str]) -> str: - if isinstance(num, str): - num = int(num) - suffix = ["th", "st", "nd", "rd", "th"][min(num % 10, 4)] - if 11 <= num % 100 <= 13: - suffix = "th" - return str(num) + suffix - - def _create_postcode(self, postcodes: Sequence[int]) -> str: - return f"{self.random_element(postcodes):04d}" - - def _create_address(self, address_formats: ElementsType[str]) -> str: - return self.generator.parse(self.random_element(address_formats)) - - def metro_manila_postcode(self) -> str: - return self._create_postcode(self.metro_manila_postcodes) - - def luzon_province_postcode(self) -> str: - return self._create_postcode(self.luzon_province_postcodes) - - def visayas_province_postcode(self) -> str: - return self._create_postcode(self.visayas_province_postcodes) - - def mindanao_province_postcode(self) -> str: - return self._create_postcode(self.mindanao_province_postcodes) - - def postcode(self) -> str: - return self._create_postcode(self.postcodes) - - def luzon_province(self) -> str: - return self.random_element(self.luzon_provinces) - - def visayas_province(self) -> str: - return self.random_element(self.visayas_provinces) - - def mindanao_province(self) -> str: - return self.random_element(self.mindanao_provinces) - - def administrative_unit(self) -> str: - return self.random_element(self.provinces) - - province = administrative_unit - - def standalone_building_number(self) -> str: - return str(self.random_int(min=1)) - - def partitioned_building_number(self) -> str: - pattern: str = self.lexify( - self.random_element(self.partitioned_building_number_formats), - letters=ascii_uppercase[:10], - ) - return self.generator.parse(pattern) - - def building_number(self) -> str: - if self.random_int() % 2 == 0: - return self.standalone_building_number() - else: - return self.partitioned_building_number() - - def ordinal_street_number(self) -> str: - return self._ordinal_string(self.random_int(1, 99)) - - def floor_number(self) -> str: - return self.random_element(self.floor_numbers) - - def ordinal_floor_number(self) -> str: - return self._ordinal_string(self.floor_number()) - - def floor_unit_number(self) -> str: - return f"{self.floor_number()}{self.random_int(1, 40):02d}" - - def building_unit_number(self) -> str: - return self.generator.parse(self.random_element(self.building_unit_number_formats)) - - def building_name(self) -> str: - return self.generator.parse(self.random_element(self.building_name_formats)) - - def building_name_suffix(self) -> str: - return self.numerify(self.random_element(self.building_name_suffixes)) - - def subdivision_block_number(self) -> str: - return f"{self.random_int(1, 25):02d}" - - def subdivision_lot_number(self) -> str: - return f"{self.random_int(1, 99):02d}" - - def subdivision_unit_number(self) -> str: - return self.generator.parse(self.random_element(self.subdivision_unit_number_formats)) - - def subdivision_name(self) -> str: - return self.generator.parse(self.random_element(self.subdivision_name_formats)) - - def subdivision_name_suffix(self) -> str: - return self.numerify(self.random_element(self.subdivision_name_suffixes)) - - def metro_manila_lgu(self) -> str: - return self.random_element(self.metro_manila_lgus) - - def province_lgu(self) -> str: - return self.random_element(self.province_lgus) - - def metro_manila_address(self) -> str: - return self._create_address(self.metro_manila_address_formats) - - def luzon_province_address(self) -> str: - return self._create_address(self.luzon_province_address_formats) - - def visayas_province_address(self) -> str: - return self._create_address(self.visayas_province_address_formats) - - def mindanao_province_address(self) -> str: - return self._create_address(self.mindanao_province_address_formats) - - def address(self) -> str: - return self._create_address(self.address_formats) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0205305..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/en_PH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_US/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/en_US/__init__.py deleted file mode 100644 index 85bbb94..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/en_US/__init__.py +++ /dev/null @@ -1,599 +0,0 @@ -from collections import OrderedDict -from typing import Optional, Tuple - -from ..en import Provider as AddressProvider - - -class Provider(AddressProvider): - city_prefixes = ("North", "East", "West", "South", "New", "Lake", "Port") - - city_suffixes = ( - "town", - "ton", - "land", - "ville", - "berg", - "burgh", - "borough", - "bury", - "view", - "port", - "mouth", - "stad", - "furt", - "chester", - "mouth", - "fort", - "haven", - "side", - "shire", - ) - - building_number_formats = ("#####", "####", "###") - - street_suffixes = ( - "Alley", - "Avenue", - "Branch", - "Bridge", - "Brook", - "Brooks", - "Burg", - "Burgs", - "Bypass", - "Camp", - "Canyon", - "Cape", - "Causeway", - "Center", - "Centers", - "Circle", - "Circles", - "Cliff", - "Cliffs", - "Club", - "Common", - "Corner", - "Corners", - "Course", - "Court", - "Courts", - "Cove", - "Coves", - "Creek", - "Crescent", - "Crest", - "Crossing", - "Crossroad", - "Curve", - "Dale", - "Dam", - "Divide", - "Drive", - "Drive", - "Drives", - "Estate", - "Estates", - "Expressway", - "Extension", - "Extensions", - "Fall", - "Falls", - "Ferry", - "Field", - "Fields", - "Flat", - "Flats", - "Ford", - "Fords", - "Forest", - "Forge", - "Forges", - "Fork", - "Forks", - "Fort", - "Freeway", - "Garden", - "Gardens", - "Gateway", - "Glen", - "Glens", - "Green", - "Greens", - "Grove", - "Groves", - "Harbor", - "Harbors", - "Haven", - "Heights", - "Highway", - "Hill", - "Hills", - "Hollow", - "Inlet", - "Inlet", - "Island", - "Island", - "Islands", - "Islands", - "Isle", - "Isle", - "Junction", - "Junctions", - "Key", - "Keys", - "Knoll", - "Knolls", - "Lake", - "Lakes", - "Land", - "Landing", - "Lane", - "Light", - "Lights", - "Loaf", - "Lock", - "Locks", - "Locks", - "Lodge", - "Lodge", - "Loop", - "Mall", - "Manor", - "Manors", - "Meadow", - "Meadows", - "Mews", - "Mill", - "Mills", - "Mission", - "Mission", - "Motorway", - "Mount", - "Mountain", - "Mountain", - "Mountains", - "Mountains", - "Neck", - "Orchard", - "Oval", - "Overpass", - "Park", - "Parks", - "Parkway", - "Parkways", - "Pass", - "Passage", - "Path", - "Pike", - "Pine", - "Pines", - "Place", - "Plain", - "Plains", - "Plains", - "Plaza", - "Plaza", - "Point", - "Points", - "Port", - "Port", - "Ports", - "Ports", - "Prairie", - "Prairie", - "Radial", - "Ramp", - "Ranch", - "Rapid", - "Rapids", - "Rest", - "Ridge", - "Ridges", - "River", - "Road", - "Road", - "Roads", - "Roads", - "Route", - "Row", - "Rue", - "Run", - "Shoal", - "Shoals", - "Shore", - "Shores", - "Skyway", - "Spring", - "Springs", - "Springs", - "Spur", - "Spurs", - "Square", - "Square", - "Squares", - "Squares", - "Station", - "Station", - "Stravenue", - "Stravenue", - "Stream", - "Stream", - "Street", - "Street", - "Streets", - "Summit", - "Summit", - "Terrace", - "Throughway", - "Trace", - "Track", - "Trafficway", - "Trail", - "Trail", - "Tunnel", - "Tunnel", - "Turnpike", - "Turnpike", - "Underpass", - "Union", - "Unions", - "Valley", - "Valleys", - "Via", - "Viaduct", - "View", - "Views", - "Village", - "Village", - "Villages", - "Ville", - "Vista", - "Vista", - "Walk", - "Walks", - "Wall", - "Way", - "Ways", - "Well", - "Wells", - ) - - postcode_formats = ("#####", "#####-####") - - states = ( - "Alabama", - "Alaska", - "Arizona", - "Arkansas", - "California", - "Colorado", - "Connecticut", - "Delaware", - "Florida", - "Georgia", - "Hawaii", - "Idaho", - "Illinois", - "Indiana", - "Iowa", - "Kansas", - "Kentucky", - "Louisiana", - "Maine", - "Maryland", - "Massachusetts", - "Michigan", - "Minnesota", - "Mississippi", - "Missouri", - "Montana", - "Nebraska", - "Nevada", - "New Hampshire", - "New Jersey", - "New Mexico", - "New York", - "North Carolina", - "North Dakota", - "Ohio", - "Oklahoma", - "Oregon", - "Pennsylvania", - "Rhode Island", - "South Carolina", - "South Dakota", - "Tennessee", - "Texas", - "Utah", - "Vermont", - "Virginia", - "Washington", - "West Virginia", - "Wisconsin", - "Wyoming", - ) - states_abbr = ( - "AL", - "AK", - "AZ", - "AR", - "CA", - "CO", - "CT", - "DE", - "DC", - "FL", - "GA", - "HI", - "ID", - "IL", - "IN", - "IA", - "KS", - "KY", - "LA", - "ME", - "MD", - "MA", - "MI", - "MN", - "MS", - "MO", - "MT", - "NE", - "NV", - "NH", - "NJ", - "NM", - "NY", - "NC", - "ND", - "OH", - "OK", - "OR", - "PA", - "RI", - "SC", - "SD", - "TN", - "TX", - "UT", - "VT", - "VA", - "WA", - "WV", - "WI", - "WY", - ) - - states_postcode = { - "AL": (35004, 36925), - "AK": (99501, 99950), - "AZ": (85001, 86556), - "AR": (71601, 72959), - "CA": (90001, 96162), - "CO": (80001, 81658), - "CT": (6001, 6389), - "DE": (19701, 19980), - "DC": (20001, 20039), - "FL": (32004, 34997), - "GA": (30001, 31999), - "HI": (96701, 96898), - "ID": (83201, 83876), - "IL": (60001, 62999), - "IN": (46001, 47997), - "IA": (50001, 52809), - "KS": (66002, 67954), - "KY": (40003, 42788), - "LA": (70001, 71232), - "ME": (3901, 4992), - "MD": (20812, 21930), - "MA": (1001, 2791), - "MI": (48001, 49971), - "MN": (55001, 56763), - "MS": (38601, 39776), - "MO": (63001, 65899), - "MT": (59001, 59937), - "NE": (68001, 68118), - "NV": (88901, 89883), - "NH": (3031, 3897), - "NJ": (7001, 8989), - "NM": (87001, 88441), - "NY": (10001, 14905), - "NC": (27006, 28909), - "ND": (58001, 58856), - "OH": (43001, 45999), - "OK": (73001, 73199), - "OR": (97001, 97920), - "PA": (15001, 19640), - "RI": (2801, 2940), - "SC": (29001, 29948), - "SD": (57001, 57799), - "TN": (37010, 38589), - "TX": (75503, 79999), - "UT": (84001, 84784), - "VT": (5001, 5495), - "VA": (22001, 24658), - "WA": (98001, 99403), - "WV": (24701, 26886), - "WI": (53001, 54990), - "WY": (82001, 83128), - # Territories & freely-associated states - # incomplete ranges with accurate subsets - https://www.geonames.org/postalcode-search.html - "AS": (96799, 96799), - "FM": (96941, 96944), - "GU": (96910, 96932), - "MH": (96960, 96970), - "MP": (96950, 96952), - "PW": (96940, 96940), - "PR": (600, 799), - "VI": (801, 805), - } - - territories_abbr = ( - "AS", - "GU", - "MP", - "PR", - "VI", - ) - - # Freely-associated states (sovereign states; members of COFA) - # https://en.wikipedia.org/wiki/Compact_of_Free_Association - freely_associated_states_abbr = ( - "FM", - "MH", - "PW", - ) - - known_usps_abbr = states_abbr + territories_abbr + freely_associated_states_abbr - - military_state_abbr = ("AE", "AA", "AP") - - military_ship_prefix = ("USS", "USNS", "USNV", "USCGC") - - military_apo_format = "PSC ####, Box ####" - - military_dpo_format = "Unit #### Box ####" - - city_formats = ( - "{{city_prefix}} {{first_name}}{{city_suffix}}", - "{{city_prefix}} {{first_name}}", - "{{first_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - ) - - street_name_formats = ( - "{{first_name}} {{street_suffix}}", - "{{last_name}} {{street_suffix}}", - ) - - street_address_formats = ( - "{{building_number}} {{street_name}}", - "{{building_number}} {{street_name}} {{secondary_address}}", - ) - - address_formats = OrderedDict( - ( - ("{{street_address}}\n{{city}}, {{state_abbr}} {{postcode}}", 25.0), - # military address formatting. - ("{{military_apo}}\nAPO {{military_state}} {{postcode}}", 1.0), - ( - "{{military_ship}} {{last_name}}\nFPO {{military_state}} {{postcode}}", - 1.0, - ), - ("{{military_dpo}}\nDPO {{military_state}} {{postcode}}", 1.0), - ) - ) - - secondary_address_formats = ("Apt. ###", "Suite ###") - - def city_prefix(self) -> str: - return self.random_element(self.city_prefixes) - - def secondary_address(self) -> str: - return self.numerify(self.random_element(self.secondary_address_formats)) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit - - def state_abbr( - self, - include_territories: bool = True, - include_freely_associated_states: bool = True, - ) -> str: - """ - :returns: A random two-letter USPS postal code - - By default, the resulting code may abbreviate any of the fifty states, - five US territories, or three freely-associating sovereign states. - - :param include_territories: If True, territories will be included. - If False, US territories will be excluded. - :param include_freely_associated_states: If True, freely-associated states will be included. - If False, sovereign states in free association with the US will be excluded. - """ - abbreviations: Tuple[str, ...] = self.states_abbr - if include_territories: - abbreviations += self.territories_abbr - if include_freely_associated_states: - abbreviations += self.freely_associated_states_abbr - return self.random_element(abbreviations) - - def postcode(self) -> str: - return "%05d" % self.generator.random.randint(501, 99950) - - def zipcode_plus4(self) -> str: - return "%s-%04d" % (self.zipcode(), self.generator.random.randint(1, 9999)) - - def postcode_in_state(self, state_abbr: Optional[str] = None) -> str: - """ - :returns: A random postcode within the provided state abbreviation - - :param state_abbr: A state abbreviation - """ - if state_abbr is None: - state_abbr = self.random_element(self.states_abbr) - - if state_abbr in self.known_usps_abbr: - postcode = "%d" % ( - self.generator.random.randint( - self.states_postcode[state_abbr][0], - self.states_postcode[state_abbr][1], - ) - ) - - # zero left pad up until desired length (some have length 3 or 4) - target_postcode_len = 5 - current_postcode_len = len(postcode) - if current_postcode_len < target_postcode_len: - pad = target_postcode_len - current_postcode_len - postcode = f"{'0'*pad}{postcode}" - - return postcode - - else: - raise Exception("State Abbreviation not found in list") - - def military_ship(self) -> str: - """ - :example: 'USS' - """ - return self.random_element(self.military_ship_prefix) - - def military_state(self) -> str: - """ - :example: 'APO' - """ - return self.random_element(self.military_state_abbr) - - def military_apo(self) -> str: - """ - :example: 'PSC 5394 Box 3492 - """ - return self.numerify(self.military_apo_format) - - def military_dpo(self) -> str: - """ - :example: 'Unit 3333 Box 9342' - """ - return self.numerify(self.military_dpo_format) - - # Aliases - def zipcode(self) -> str: - return self.postcode() - - def zipcode_in_state(self, state_abbr: Optional[str] = None) -> str: - return self.postcode_in_state(state_abbr) - - def postalcode(self) -> str: - return self.postcode() - - def postalcode_in_state(self, state_abbr: Optional[str] = None) -> str: - return self.postcode_in_state(state_abbr) - - def postalcode_plus4(self) -> str: - return self.zipcode_plus4() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_US/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_US/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index bbd9160..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/en_US/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/es/__init__.py deleted file mode 100644 index 726975c..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/es/__init__.py +++ /dev/null @@ -1,200 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - # List of Countries https://www.un.org/es/members/ - countries = ( - "Afganistán", - "Albania", - "Alemania", - "Andorra", - "Angola", - "Antigua y Barbuda", - "Arabia Saudita", - "Argelia", - "Argentina", - "Armenia", - "Australia", - "Austria", - "Azerbaiyán", - "Bahamas", - "Bahrein", - "Bangladesh", - "Barbados", - "Belarús", - "Bélgica", - "Belice", - "Benin", - "Bhután", - "Bolivia", - "Bosnia y Herzegovina", - "Botswana", - "Brasil", - "Brunei Darussalam", - "Bulgaria", - "Burkina Faso", - "Burundi", - "Cabo Verde", - "Camboya", - "Camerún", - "Canadá", - "Chad", - "Chile", - "China", - "Chipre", - "Colombia", - "Comoras", - "Congo", - "Costa Rica", - "Côte d'Ivoire", - "Croacia", - "Cuba", - "Dinamarca", - "Djibouti", - "Dominicana", - "Ecuador", - "Egipto", - "El Salvador", - "Emiratos Árabes Unidos", - "Eritrea", - "Eslovaquia", - "Eslovenia", - "España", - "Estados Unidos de América", - "Estonia", - "Etiopía", - "Federación de Rusia", - "Fiji", - "Filipinas", - "Finlandia", - "Francia", - "Gabón", - "Gambia", - "Georgia", - "Ghana", - "Granada", - "Grecia", - "Guatemala", - "Guinea", - "Guinea Bissau", - "Guinea Ecuatorial", - "Guyana", - "Haití", - "Honduras", - "Hungría", - "India", - "Indonesia", - "Irán", - "Iraq", - "Irlanda", - "Islandia", - "Islas Marshall", - "Islas Salomón", - "Israel", - "Italia", - "Jamaica", - "Japón", - "Jordania", - "Kazajstán", - "Kenya", - "Kirguistán", - "Kiribati", - "Kuwait", - "Lesotho", - "Letonia", - "Líbano", - "Liberia", - "Libia", - "Liechtenstein", - "Lituania", - "Luxemburgo", - "Madagascar", - "Malasia", - "Malawi", - "Maldivas", - "Mali", - "Malta", - "Marruecos", - "Mauricio", - "Mauritania", - "México", - "Micronesia", - "Mónaco", - "Mongolia", - "Montenegro", - "Mozambique", - "Myanmar", - "Namibia", - "Nauru", - "Nicaragua", - "Niger", - "Nigeria", - "Noruega", - "Nueva Zelandia", - "Omán", - "Países Bajos", - "Pakistán", - "Palau", - "Panamá", - "Papua Nueva Guinea", - "Paraguay", - "Perú", - "Polonia", - "Portugal", - "Qatar", - "Reino Unido de Gran Bretaña e Irlanda del Norte", - "República Árabe Siria", - "República Centroafricana", - "República Checa", - "República de Corea", - "República de Macedonia del Norte", - "República de Moldova", - "República Democrática del Congo", - "República Democrática Popular Lao", - "República Dominicana", - "República Federal Democrática de Nepal", - "República Popular Democrática de Corea", - "República Unida de Tanzanía", - "Rumania", - "Rwanda", - "Saint Kitts y Nevis", - "Samoa", - "San Marino", - "Santa Lucía", - "Santo Tomé y Príncipe", - "San Vicente y las Granadinas", - "Senegal", - "Serbia", - "Seychelles", - "Sierra Leona", - "Singapur", - "Somalia", - "Sri Lanka", - "Sudáfrica", - "Sudán", - "Sudán del Sur", - "Suecia", - "Suiza", - "Suriname", - "Swazilandia", - "Tailandia", - "Tayikistán", - "Timor-Leste", - "Togo", - "Tonga", - "Trinidad y Tabago", - "Túnez", - "Turkmenistán", - "Turquía", - "Tuvalu", - "Ucrania", - "Uganda", - "Uruguay", - "Uzbekistán", - "Vanuatu", - "Venezuela", - "Vietman", - "Yemen", - "Zambia", - "Zimbabwe", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/es/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 228f302..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/es/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_AR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/es_AR/__init__.py deleted file mode 100644 index 4ac425b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/es_AR/__init__.py +++ /dev/null @@ -1,231 +0,0 @@ -from collections import OrderedDict -from typing import List, Tuple - -from ..es import Provider as AddressProvider - - -class Provider(AddressProvider): - provinces = { - "CABA": "Ciudad Autónoma de Buenos Aires", - "BA": "Buenos Aires", - "CA": "Catamarca", - "CH": "Chaco", - "CT": "Chubut", - "CB": "Córdoba", - "CR": "Corrientes", - "ER": "Entre Ríos", - "FO": "Formosa", - "JY": "Jujuy", - "LP": "La Pampa", - "LR": "La Rioja", - "MZ": "Mendoza", - "MI": "Misiones", - "NQN": "Neuquén", - "RN": "Río Negro", - "SA": "Salta", - "SJ": "San Juan", - "SL": "San Luis", - "SC": "Santa Cruz", - "SF": "Santa Fe", - "SE": "Santiago del Estero", - "TF": "Tierra del Fuego", - "TU": "Tucumán", - } - - municipalities: List[Tuple[str, str, str]] = [ - ("1004", "Constitución", "CABA"), - ("1900", "La Plata", "BA"), - ("7600", "Mar del Plata", "BA"), - ("8000", "Bahía Blanca", "BA"), - ("4700", "San Ferando del Valle de Catamarca", "CA"), - ("3500", "Resistencia", "CH"), - ("9103", "Rawson", "CT"), - ("9000", "Comodoro Rivadavia", "CT"), - ("5000", "Córdoba", "CB"), - ("3400", "Corrientes", "CR"), - ("3100", "Paraná", "ER"), - ("3600", "Formosa", "FO"), - ("4600", "San Salvador de Jujuy", "JY"), - ("6300", "Santa Rosa", "LP"), - ("5300", "La Rioja", "LR"), - ("5360", "Chilecito", "LR"), - ("5500", "Mendoza", "MZ"), - ("3300", "Posadas", "MI"), - ("8300", "Neuquén", "NQN"), - ("8500", "Viedma", "RN"), - ("4400", "Salta", "SA"), - ("5400", "San Juan", "SJ"), - ("5700", "San Luis", "SL"), - ("5881", "Merlo", "SL"), - ("9400", "Río Gallegos", "SC"), - ("3000", "Santa Fe", "SF"), - ("2000", "Rosario", "SF"), - ("4200", "Santiago del Estero", "SE"), - ("9410", "Ushuaia", "TF"), - ("4000", "San Miguel de Tucumán", "TU"), - ] - - street_prefixes = OrderedDict( - [ - ("Calle", 0.2), - ("Avenida", 0.2), - ("Av.", 0.2), - ("Diagonal", 0.2), - ("Diag.", 0.05), - ("Camino", 0.05), - ("Boulevard", 0.05), - ("Blv.", 0.05), - ] - ) - street_suffixes = ["A", "B", "Bis"] - - street_proceres = ( - "San Martin", - "Belgrano", - "Saavedra", - "Rivadavia", - "Güemes", - "G. Brown", - "J.B. Alberdi", - "J.M. de Rosas", - "J.J. Castelli", - "Mitre", - "Alem", - "Alvear", - "Malvinas Argentinas", - "Pte. Perón", - "Omar Nuñez", - ) - street_name_formats = OrderedDict( - [ - ("{{street_prefix}} %", 0.2), - ("{{street_prefix}} {{street_municipality}}", 0.2), - ("{{street_prefix}} {{street_province}}", 0.2), - ("{{street_prefix}} {{street_procer}}", 0.2), - ("{{street_prefix}} 1## {{street_suffix}}", 0.02), - ] - ) - building_number_formats = OrderedDict( - [ - ("%%", 0.2), - ("%%#", 0.2), - ("%#%", 0.2), - ("%#%#", 0.2), - ] - ) - secondary_address_formats = [ - "Piso % Dto. %", - "Dto. %", - "Torre % Dto. %", - "Local %!", - "Oficina %!", - ] - postcode_formats = ["{{municipality_code}}####"] - - def provinces_code(self) -> str: - """ - :example: "BA" - """ - return self.random_element(self.provinces.keys()) - - def province(self) -> str: - """ - :example: "Buenos Aires" - """ - return self.random_element(list(self.provinces.values())) - - administrative_unit = province - - def municipality_code(self) -> str: - """ - :example: "1900" - """ - return self.random_element(self.municipalities)[0] # type: ignore - - def municipality(self) -> str: - """ - :example: "La Plata" - """ - return self.random_element(self.municipalities)[1] # type: ignore - - city = municipality - - def street_prefix(self) -> str: - """ - :example: "Calle" - """ - return self.random_element(self.street_prefixes) - - def street_procer(self) -> str: - """ - :example: "Belgrano" - """ - return self.random_element(self.street_proceres) - - def street_municipality(self) -> str: - """ - :example: "La Plata" - """ - return self.random_element(self.municipalities)[1] - - def street_province(self) -> str: - """ - :example: "San Juan" - """ - return self.random_element(list(self.provinces.values())) - - def street_suffix(self) -> str: - """ - :example: "Sur" - """ - return self.generator.parse(self.random_element(self.street_suffixes)) - - def street_name(self) -> str: - """ - :example: "Calle 1" - """ - pattern: str = self.random_element(self.street_name_formats) - return self.numerify(self.generator.parse(pattern)) - - def building_number(self) -> str: - """ - :example: "23" - """ - return self.numerify(self.generator.parse(self.random_element(self.building_number_formats))) - - def secondary_address(self) -> str: - """ - :example: "Departamento 123" - """ - return self.numerify(self.random_element(self.secondary_address_formats)) - - def street_address(self) -> str: - """ - :example: "Calle 1 N° 23" - """ - return self.street_name() + " N° " + self.building_number() - - def postcode(self) -> str: - """ - :example: "1900" - """ - return self.numerify(self.generator.parse(self.random_element(self.postcode_formats))) - - def address(self) -> str: - """ - :example: "Calle 1 N° 23, La Plata 1900, Buenos Aires" - """ - municipality: Tuple[str, str, str] = self.random_element(self.municipalities) - municipality_code = municipality[0] - municipality_prov = municipality[2] - - secondary_address: str = self.random_element( - [ - " " + self.secondary_address(), - "", - ] - ) - postcode = "\n" + municipality[1] + " " + municipality_code - province_name = ", " + self.provinces[municipality_prov] - - return self.street_address() + secondary_address + postcode + province_name diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_AR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/es_AR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ac58e23..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/es_AR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_CL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/es_CL/__init__.py deleted file mode 100644 index c47dcb3..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/es_CL/__init__.py +++ /dev/null @@ -1,648 +0,0 @@ -from collections import OrderedDict -from typing import Dict, Tuple - -from ... import ElementsType -from ..es import Provider as AddressProvider - - -class Provider(AddressProvider): - # Source for regions, provinces and communes - # https://www.subdere.gov.cl/documentacion/c%C3%B3digos-%C3%BAnicos- - # territoriales-actualizados-al-06-de-septiembre-2018 - regions: Dict[str, str] = { - "TA": "Región de Tarapacá", - "AN": "Región de Antofagasta", - "AT": "Región de Atacama", - "CO": "Región de Coquimbo", - "VA": "Región de Valparaíso", - "LI": "Región del Libertador General Bernardo O'Higgins", - "ML": "Región del Maule", - "BI": "Región del Biobío", - "AR": "Región de La Araucanía", - "LL": "Región de Los Lagos", - "AI": "Región de Aysén del General Carlos Ibáñez del Campo", - "MA": "Región de Magallanes y de la Antártica Chilena", - "RM": "Región Metropolitana", - "LR": "Región de Los Ríos", - "AP": "Región de Arica y Parinacota", - "NB": "Región de Ñuble", - } - - provinces: Dict[str, str] = { - "011": "Iquique", - "014": "Tamarugal", - "021": "Antofagasta", - "022": "El Loa", - "023": "Tocopilla", - "031": "Copiapó", - "032": "Chañaral", - "033": "Huasco", - "041": "Elqui", - "042": "Choapa", - "043": "Limarí", - "051": "Valparaíso", - "052": "Isla de Pascua", - "053": "Los Andes", - "054": "Petorca", - "055": "Quillota", - "056": "San Antonio", - "057": "San Felipe de Aconcagua", - "058": "Marga Marga", - "061": "Cachapoal", - "062": "Cardenal Caro", - "063": "Colchagua", - "071": "Talca", - "072": "Cauquenes", - "073": "Curicó", - "074": "Linares", - "081": "Concepción", - "082": "Arauco", - "083": "Biobío", - "091": "Cautín", - "092": "Malleco", - "101": "Llanquihue", - "102": "Chiloé", - "103": "Osorno", - "104": "Palena", - "111": "Coyhaique", - "112": "Aysén", - "113": "Capitán Prat", - "114": "General Carrera", - "121": "Magallanes", - "122": "Antártica Chilena", - "123": "Tierra del Fuego", - "124": "Última Esperanza", - "131": "Santiago", - "132": "Cordillera", - "133": "Chacabuco", - "134": "Maipo", - "135": "Melipilla", - "136": "Talagante", - "141": "Valdivia", - "142": "Ranco", - "151": "Arica", - "152": "Parinacota", - "161": "Diguillín", - "162": "Itata", - "163": "Punilla", - } - - communes: Dict[str, str] = { - "15101": "Arica", - "15102": "Camarones", - "15201": "Putre", - "15202": "General Lagos", - "01101": "Iquique", - "01402": "Camiña", - "01403": "Colchane", - "01404": "Huara", - "01405": "Pica", - "01401": "Pozo Almonte", - "01107": "Alto Hospicio", - "02101": "Antofagasta", - "02102": "Mejillones", - "02103": "Sierra Gorda", - "02104": "Taltal", - "02201": "Calama", - "02202": "Ollagüe", - "02203": "San Pedro de Atacama", - "02301": "Tocopilla", - "02302": "María Elena", - "03101": "Copiapó", - "03102": "Caldera", - "03103": "Tierra Amarilla", - "03201": "Chañaral", - "03202": "Diego de Almagro", - "03301": "Vallenar", - "03302": "Alto del Carmen", - "03303": "Freirina", - "03304": "Huasco", - "04101": "La Serena", - "04102": "Coquimbo", - "04103": "Andacollo", - "04104": "La Higuera", - "04105": "Paiguano", - "04106": "Vicuña", - "04201": "Illapel", - "04202": "Canela", - "04203": "Los Vilos", - "04204": "Salamanca", - "04301": "Ovalle", - "04302": "Combarbalá", - "04303": "Monte Patria", - "04304": "Punitaqui", - "04305": "Río Hurtado", - "05101": "Valparaíso", - "05102": "Casablanca", - "05103": "Concón", - "05104": "Juan Fernández", - "05105": "Puchuncaví", - "05801": "Quilpué", - "05107": "Quintero", - "05804": "Villa Alemana", - "05109": "Viña del Mar", - "05201": "Isla de Pascua", - "05301": "Los Andes", - "05302": "Calle Larga", - "05303": "Rinconada", - "05304": "San Esteban", - "05401": "La Ligua", - "05402": "Cabildo", - "05403": "Papudo", - "05404": "Petorca", - "05405": "Zapallar", - "05501": "Quillota", - "05502": "Calera", - "05503": "Hijuelas", - "05504": "La Cruz", - "05802": "Limache", - "05506": "Nogales", - "05803": "Olmué", - "05601": "San Antonio", - "05602": "Algarrobo", - "05603": "Cartagena", - "05604": "El Quisco", - "05605": "El Tabo", - "05606": "Santo Domingo", - "05701": "San Felipe", - "05702": "Catemu", - "05703": "Llaillay", - "05704": "Panquehue", - "05705": "Putaendo", - "05706": "Santa María", - "06101": "Rancagua", - "06102": "Codegua", - "06103": "Coinco", - "06104": "Coltauco", - "06105": "Doñihue", - "06106": "Graneros", - "06107": "Las Cabras", - "06108": "Machalí", - "06109": "Malloa", - "06110": "Mostazal", - "06111": "Olivar", - "06112": "Peumo", - "06113": "Pichidegua", - "06114": "Quinta de Tilcoco", - "06115": "Rengo", - "06116": "Requínoa", - "06117": "San Vicente", - "06201": "Pichilemu", - "06202": "La Estrella", - "06203": "Litueche", - "06204": "Marchihue", - "06205": "Navidad", - "06206": "Paredones", - "06301": "San Fernando", - "06302": "Chépica", - "06303": "Chimbarongo", - "06304": "Lolol", - "06305": "Nancagua", - "06306": "Palmilla", - "06307": "Peralillo", - "06308": "Placilla", - "06309": "Pumanque", - "06310": "Santa Cruz", - "07101": "Talca", - "07102": "Constitución", - "07103": "Curepto", - "07104": "Empedrado", - "07105": "Maule", - "07106": "Pelarco", - "07107": "Pencahue", - "07108": "Río Claro", - "07109": "San Clemente", - "07110": "San Rafael", - "07201": "Cauquenes", - "07202": "Chanco", - "07203": "Pelluhue", - "07301": "Curicó", - "07302": "Hualañé", - "07303": "Licantén", - "07304": "Molina", - "07305": "Rauco", - "07306": "Romeral", - "07307": "Sagrada Familia", - "07308": "Teno", - "07309": "Vichuquén", - "07401": "Linares", - "07402": "Colbún", - "07403": "Longaví", - "07404": "Parral", - "07405": "Retiro", - "07406": "San Javier", - "07407": "Villa Alegre", - "07408": "Yerbas Buenas", - "08101": "Concepción", - "08102": "Coronel", - "08103": "Chiguayante", - "08104": "Florida", - "08105": "Hualqui", - "08106": "Lota", - "08107": "Penco", - "08108": "San Pedro de la Paz", - "08109": "Santa Juana", - "08110": "Talcahuano", - "08111": "Tomé", - "08112": "Hualpén", - "08201": "Lebu", - "08202": "Arauco", - "08203": "Cañete", - "08204": "Contulmo", - "08205": "Curanilahue", - "08206": "Los Álamos", - "08207": "Tirúa", - "08301": "Los Ángeles", - "08302": "Antuco", - "08303": "Cabrero", - "08304": "Laja", - "08305": "Mulchén", - "08306": "Nacimiento", - "08307": "Negrete", - "08308": "Quilaco", - "08309": "Quilleco", - "08310": "San Rosendo", - "08311": "Santa Bárbara", - "08312": "Tucapel", - "08313": "Yumbel", - "08314": "Alto Biobío", - "16101": "Chillán", - "16102": "Bulnes", - "16202": "Cobquecura", - "16203": "Coelemu", - "16302": "Coihueco", - "16103": "Chillán Viejo", - "16104": "El Carmen", - "16204": "Ninhue", - "16303": "Ñiquén", - "16105": "Pemuco", - "16106": "Pinto", - "16205": "Portezuelo", - "16107": "Quillón", - "16201": "Quirihue", - "16206": "Ránquil", - "16301": "San Carlos", - "16304": "San Fabián", - "16108": "San Ignacio", - "16305": "San Nicolás", - "16207": "Treguaco", - "16109": "Yungay", - "09101": "Temuco", - "09102": "Carahue", - "09103": "Cunco", - "09104": "Curarrehue", - "09105": "Freire", - "09106": "Galvarino", - "09107": "Gorbea", - "09108": "Lautaro", - "09109": "Loncoche", - "09110": "Melipeuco", - "09111": "Nueva Imperial", - "09112": "Padre Las Casas", - "09113": "Perquenco", - "09114": "Pitrufquén", - "09115": "Pucón", - "09116": "Saavedra", - "09117": "Teodoro Schmidt", - "09118": "Toltén", - "09119": "Vilcún", - "09120": "Villarrica", - "09121": "Cholchol", - "09201": "Angol", - "09202": "Collipulli", - "09203": "Curacautín", - "09204": "Ercilla", - "09205": "Lonquimay", - "09206": "Los Sauces", - "09207": "Lumaco", - "09208": "Purén", - "09209": "Renaico", - "09210": "Traiguén", - "09211": "Victoria", - "14101": "Valdivia", - "14102": "Corral", - "14202": "Futrono", - "14201": "La Unión", - "14203": "Lago Ranco", - "14103": "Lanco", - "14104": "Los Lagos", - "14105": "Máfil", - "14106": "Mariquina", - "14107": "Paillaco", - "14108": "Panguipulli", - "14204": "Río Bueno", - "10101": "Puerto Montt", - "10102": "Calbuco", - "10103": "Cochamó", - "10104": "Fresia", - "10105": "Frutillar", - "10106": "Los Muermos", - "10107": "Llanquihue", - "10108": "Maullín", - "10109": "Puerto Varas", - "10201": "Castro", - "10202": "Ancud", - "10203": "Chonchi", - "10204": "Curaco de Vélez", - "10205": "Dalcahue", - "10206": "Puqueldón", - "10207": "Queilén", - "10208": "Quellón", - "10209": "Quemchi", - "10210": "Quinchao", - "10301": "Osorno", - "10302": "Puerto Octay", - "10303": "Purranque", - "10304": "Puyehue", - "10305": "Río Negro", - "10306": "San Juan de la Costa", - "10307": "San Pablo", - "10401": "Chaitén", - "10402": "Futaleufú", - "10403": "Hualaihué", - "10404": "Palena", - "11101": "Coihaique", - "11102": "Lago Verde", - "11201": "Aisén", - "11202": "Cisnes", - "11203": "Guaitecas", - "11301": "Cochrane", - "11302": "O'Higgins", - "11303": "Tortel", - "11401": "Chile Chico", - "11402": "Río Ibáñez", - "12101": "Punta Arenas", - "12102": "Laguna Blanca", - "12103": "Río Verde", - "12104": "San Gregorio", - "12201": "Cabo de Hornos", - "12202": "Antártica", - "12301": "Porvenir", - "12302": "Primavera", - "12303": "Timaukel", - "12401": "Natales", - "12402": "Torres del Paine", - "13101": "Santiago", - "13102": "Cerrillos", - "13103": "Cerro Navia", - "13104": "Conchalí", - "13105": "El Bosque", - "13106": "Estación Central", - "13107": "Huechuraba", - "13108": "Independencia", - "13109": "La Cisterna", - "13110": "La Florida", - "13111": "La Granja", - "13112": "La Pintana", - "13113": "La Reina", - "13114": "Las Condes", - "13115": "Lo Barnechea", - "13116": "Lo Espejo", - "13117": "Lo Prado", - "13118": "Macul", - "13119": "Maipú", - "13120": "Ñuñoa", - "13121": "Pedro Aguirre Cerda", - "13122": "Peñalolén", - "13123": "Providencia", - "13124": "Pudahuel", - "13125": "Quilicura", - "13126": "Quinta Normal", - "13127": "Recoleta", - "13128": "Renca", - "13129": "San Joaquín", - "13130": "San Miguel", - "13131": "San Ramón", - "13132": "Vitacura", - "13201": "Puente Alto", - "13202": "Pirque", - "13203": "San José de Maipo", - "13301": "Colina", - "13302": "Lampa", - "13303": "Tiltil", - "13401": "San Bernardo", - "13402": "Buin", - "13403": "Calera de Tango", - "13404": "Paine", - "13501": "Melipilla", - "13502": "Alhué", - "13503": "Curacaví", - "13504": "María Pinto", - "13505": "San Pedro", - "13601": "Talagante", - "13602": "El Monte", - "13603": "Isla de Maipo", - "13604": "Padre Hurtado", - "13605": "Peñaflor", - } - - street_prefixes = OrderedDict( - [ - ("Calle", 0.6), - ("Avenida", 0.1), - ("Avda.", 0.1), - ("Av.", 0.1), - ("Pasaje", 0.04), - ("Psje.", 0.04), - ("Camino", 0.02), - ] - ) - - street_suffixes = ( - "Norte", - "Sur", - ) - - city_formats = ("{{city}}",) - - street_name_formats = ( - "{{street_prefix}} {{common_street_name}}", - "{{street_prefix}} {{historic_people_street_name}}", - "{{street_prefix}} {{first_name_male}} {{last_name}}", - "{{street_prefix}} {{first_name_female}} {{last_name}}", - "{{street_prefix}} {{plant_street_name}}", - "{{common_street_name}}", - "{{historic_people_street_name}}", - "{{plant_street_name}}", - "{{first_name_male}} {{last_name}}", - "{{first_name_female}} {{last_name}}", - ) - - building_number_formats = OrderedDict( - [ - ("%###", 0.35), - ("%##", 0.35), - ("%#", 0.25), - ("%", 0.05), - ] - ) - - street_address_formats = ( - "{{street_name}} {{building_number}}", - "{{street_name}} {{building_number}} {{secondary_address}}", - ) - - address_formats = OrderedDict( - [ - ("{{street_address}}\n{{commune_and_region}}, {{postcode}}", 0.4), - ("{{street_address}}\n{{commune_and_region}}", 0.4), - ("{{highway_name}}, km {{random_int:big_kilometer}}", 0.1), - ("{{road_name}}, km {{random_int:kilometer}}, {{region}}", 0.1), - ] - ) - - secondary_address_formats = ("Dpto. @@##", "Piso @#", "Of. %##@") - - common_street_names = OrderedDict( - [ - ("Arturo Prat", 0.118812), - ("Esmeralda", 0.107261), - ("Manuel Rodríguez", 0.105611), - ("Gabriela Mistral", 0.104785), - ("Los Aromos", 0.104785), - ("Las Rosas", 0.098185), - ("Caupolicán", 0.094884), - ("Lautaro", 0.094059), - ("Los Alerces", 0.086634), - ("Los Copihues", 0.084983), - ] - ) - - # Some chilean historic people. Full names come first, then its variants - historic_people_street_names = ( - ("Alonso de Ercilla",), - ("Alonso de Ribera",), - ("Álvaro Casanova", "Casanova"), - ("Aníbal Pinto Garmendia", "Aníbal Pinto"), - ("Antonio Varas",), - ("Arturo Alessandri Palma", "Arturo Alessandri"), - ("Benjamín Vicuña Mackenna", "Vicuña Mackenna", "Mackenna"), - ("Bernardo O'Higgins", "O'Higgins"), - ("Camilo Henríquez",), - ("Caupolicán",), - ("Colo Colo",), - ("Diego Barros Arana", "Barros Arana"), - ("Diego Portales", "Portales"), - ("Domingo Santa María", "Santa María"), - ("Eliodoro Yáñez",), - ("Enrique Mac Iver", "Mac Iver"), - ("Eusebio Lillo",), - ("Francisco Bilbao", "Bilbao"), - ("José de San Martín", "San Martín"), - ("José Manuel Balmaceda", "Balmaceda"), - ("José Miguel Carrera",), - ("José Victorino Lastarria", "Lastarria"), - ("Juan Mackenna",), - ("Lord Thomas Cochrane", "Lord Cochrane", "Cochrane"), - ("Los Carrera",), - ("Manuel Antonio Matta", "Matta"), - ("Manuel Bulnes", "Bulnes"), - ("Manuel José Irarrázaval", "Irarrázabal"), - ("Manuel Montt",), - ("Manuel Rodríguez",), - ("Manuel Baquedano", "Baquedano"), - ("Michimalonco",), - ("Padre Alberto Hurtado", "Alberto Hurtado"), - ("Patricio Lynch", "Lynch"), - ("Paula Jaraquemada",), - ("Pedro Aguirre Cerda",), - ("Pedro de Valdivia",), - ("Pedro Montt",), - ("Ramón Barros Luco", "Barros Luco"), - ("Ramón Carnicer",), - ("Ramón Freire", "Freire"), - ("Ramón Picarte", "Picarte"), - ("Salvador Allende Gossens", "Salvador Allende"), - ("Santa Rosa",), - ) - - # Some streets are named by plants - plant_street_names: ElementsType[str] = ( - "Los Cactus", - "Los Laureles", - "Los Piñones", - "Los Helechos", - "Los Higos", - "Los Abedules", - "Los Encinos", - "Los Palmitos", - "Los Naranjos", - "Los Robles", - "Los Pinos", - "Los Coihues", - "Los Calafates", - "Los Digitales", - "Los Lirios", - "Los Tilos", - "Los Girasoles", - "Las Azucenas", - "Las Lilas", - "Las Hortensias", - "Las Margaritas", - "Las Maravillas", - "Las Manzanillas", - "Las Mandarinas", - "Las Araucarias", - "Las Mosquetas", - "Las Malvas", - "Las Mosquetas", - ) - - road_names = ("Ruta T-%#", "Ruta U-%##", "Ruta %##-CH") - highway_names = ("Ruta 5 Norte", "Ruta 5 Sur") - - def commune(self) -> str: - return self.random_element(self.communes.values()) - - def province(self) -> str: - return self.random_element(self.provinces.values()) - - def region(self) -> str: - return self.random_element(self.regions.values()) - - def commune_code(self) -> str: - return self.random_element(self.communes.keys()) - - def province_code(self) -> str: - return self.random_element(self.provinces.keys()) - - def region_code(self) -> str: - return self.random_element(self.regions.keys()) - - def common_street_name(self) -> str: - return self.random_element(self.common_street_names) - - def plant_street_name(self) -> str: - return self.random_element(self.plant_street_names) - - def historic_people_street_name(self) -> str: - person_names: Tuple[str, ...] = self.random_element(self.historic_people_street_names) - return self.random_element(person_names) - - def street_prefix(self) -> str: - return self.random_element(self.street_prefixes) - - def secondary_address(self) -> str: - return self.numerify(self.random_element(self.secondary_address_formats)) - - def commune_and_region(self) -> str: - commune_code = self.commune_code() - commune_name = self.communes[commune_code] - region_index = int(commune_code[0:2]) - 1 - region_name = tuple(self.regions.values())[region_index] - - return f"{commune_name:s}, {region_name:s}" - - def road_name(self) -> str: - self.generator.set_arguments("kilometer", {"min": 1, "max": 35}) - return self.numerify(self.generator.parse(self.random_element(self.road_names))) - - def highway_name(self) -> str: - self.generator.set_arguments("big_kilometer", {"min": 1, "max": 1000}) - return self.numerify(self.generator.parse(self.random_element(self.highway_names))) - - def postcode(self) -> str: - return self.numerify("######0") - - administrative_unit = region - city = commune diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_CL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/es_CL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ec03774..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/es_CL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_CO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/es_CO/__init__.py deleted file mode 100644 index 65a8292..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/es_CO/__init__.py +++ /dev/null @@ -1,1334 +0,0 @@ -from collections import OrderedDict -from typing import List, Tuple - -from ..es import Provider as AddressProvider - - -class Provider(AddressProvider): - departments = { - "05": "Antioquia", - "08": "Atlántico", - "11": "Bogotá, D.C.", - "13": "Bolívar", - "15": "Boyacá", - "17": "Caldas", - "18": "Caquetá", - "19": "Cauca", - "20": "Cesar", - "23": "Córdoba", - "25": "Cundinamarca", - "27": "Chocó", - "41": "Huila", - "44": "La Guajira", - "47": "Magdalena", - "50": "Meta", - "52": "Nariño", - "54": "Norte de Santander", - "63": "Quindío", - "66": "Risaralda", - "68": "Santander", - "70": "Sucre", - "73": "Tolima", - "76": "Valle del Cauca", - "81": "Arauca", - "85": "Casanare", - "86": "Putumayo", - "88": "Archipiélago de San Andrés, Providencia y Santa Catalina", - "91": "Amazonas", - "94": "Guainía", - "95": "Guaviare", - "97": "Vaupés", - "99": "Vichada", - } - - municipalities: List[Tuple[str, str]] = [ - ("05001", "Medellín"), - ("05002", "Abejorral"), - ("05004", "Abriaquí"), - ("05021", "Alejandría"), - ("05030", "Amagá"), - ("05031", "Amalfi"), - ("05034", "Andes"), - ("05036", "Angelópolis"), - ("05038", "Angostura"), - ("05040", "Anorí"), - ("05042", "Santa Fé de Antioquia"), - ("05044", "Anzá"), - ("05045", "Apartadó"), - ("05051", "Arboletes"), - ("05055", "Argelia"), - ("05059", "Armenia"), - ("05079", "Barbosa"), - ("05086", "Belmira"), - ("05088", "Bello"), - ("05091", "Betania"), - ("05093", "Betulia"), - ("05101", "Ciudad Bolívar"), - ("05107", "Briceño"), - ("05113", "Buriticá"), - ("05120", "Cáceres"), - ("05125", "Caicedo"), - ("05129", "Caldas"), - ("05134", "Campamento"), - ("05138", "Cañasgordas"), - ("05142", "Caracolí"), - ("05145", "Caramanta"), - ("05147", "Carepa"), - ("05148", "El Carmen de Viboral"), - ("05150", "Carolina"), - ("05154", "Caucasia"), - ("05172", "Chigorodó"), - ("05190", "Cisneros"), - ("05197", "Cocorná"), - ("05206", "Concepción"), - ("05209", "Concordia"), - ("05212", "Copacabana"), - ("05234", "Dabeiba"), - ("05237", "Donmatías"), - ("05240", "Ebéjico"), - ("05250", "El Bagre"), - ("05264", "Entrerríos"), - ("05266", "Envigado"), - ("05282", "Fredonia"), - ("05284", "Frontino"), - ("05306", "Giraldo"), - ("05308", "Girardota"), - ("05310", "Gómez Plata"), - ("05313", "Granada"), - ("05315", "Guadalupe"), - ("05318", "Guarne"), - ("05321", "Guatapé"), - ("05347", "Heliconia"), - ("05353", "Hispania"), - ("05360", "Itagüí"), - ("05361", "Ituango"), - ("05364", "Jardín"), - ("05368", "Jericó"), - ("05376", "La Ceja"), - ("05380", "La Estrella"), - ("05390", "La Pintada"), - ("05400", "La Unión"), - ("05411", "Liborina"), - ("05425", "Maceo"), - ("05440", "Marinilla"), - ("05467", "Montebello"), - ("05475", "Murindó"), - ("05480", "Mutatá"), - ("05483", "Nariño"), - ("05490", "Necoclí"), - ("05495", "Nechí"), - ("05501", "Olaya"), - ("05541", "Peñol"), - ("05543", "Peque"), - ("05576", "Pueblorrico"), - ("05579", "Puerto Berrío"), - ("05585", "Puerto Nare"), - ("05591", "Puerto Triunfo"), - ("05604", "Remedios"), - ("05607", "Retiro"), - ("05615", "Rionegro"), - ("05628", "Sabanalarga"), - ("05631", "Sabaneta"), - ("05642", "Salgar"), - ("05647", "San Andrés de Cuerquía"), - ("05649", "San Carlos"), - ("05652", "San Francisco"), - ("05656", "San Jerónimo"), - ("05658", "San José de la Montaña"), - ("05659", "San Juan de Urabá"), - ("05660", "San Luis"), - ("05664", "San Pedro de los Milagros"), - ("05665", "San Pedro de Urabá"), - ("05667", "San Rafael"), - ("05670", "San Roque"), - ("05674", "San Vicente Ferrer"), - ("05679", "Santa Bárbara"), - ("05686", "Santa Rosa de Osos"), - ("05690", "Santo Domingo"), - ("05697", "El Santuario"), - ("05736", "Segovia"), - ("05756", "Sonsón"), - ("05761", "Sopetrán"), - ("05789", "Támesis"), - ("05790", "Tarazá"), - ("05792", "Tarso"), - ("05809", "Titiribí"), - ("05819", "Toledo"), - ("05837", "Turbo"), - ("05842", "Uramita"), - ("05847", "Urrao"), - ("05854", "Valdivia"), - ("05856", "Valparaíso"), - ("05858", "Vegachí"), - ("05861", "Venecia"), - ("05873", "Vigía del Fuerte"), - ("05885", "Yalí"), - ("05887", "Yarumal"), - ("05890", "Yolombó"), - ("05893", "Yondó"), - ("05895", "Zaragoza"), - ("08001", "Barranquilla"), - ("08078", "Baranoa"), - ("08137", "Campo de la Cruz"), - ("08141", "Candelaria"), - ("08296", "Galapa"), - ("08372", "Juan de Acosta"), - ("08421", "Luruaco"), - ("08433", "Malambo"), - ("08436", "Manatí"), - ("08520", "Palmar de Varela"), - ("08549", "Piojó"), - ("08558", "Polonuevo"), - ("08560", "Ponedera"), - ("08573", "Puerto Colombia"), - ("08606", "Repelón"), - ("08634", "Sabanagrande"), - ("08638", "Sabanalarga"), - ("08675", "Santa Lucía"), - ("08685", "Santo Tomás"), - ("08758", "Soledad"), - ("08770", "Suan"), - ("08832", "Tubará"), - ("08849", "Usiacurí"), - ("11001", "Bogotá, D.C."), - ("13001", "Cartagena de Indias"), - ("13006", "Achí"), - ("13030", "Altos del Rosario"), - ("13042", "Arenal"), - ("13052", "Arjona"), - ("13062", "Arroyohondo"), - ("13074", "Barranco de Loba"), - ("13140", "Calamar"), - ("13160", "Cantagallo"), - ("13188", "Cicuco"), - ("13212", "Córdoba"), - ("13222", "Clemencia"), - ("13244", "El Carmen de Bolívar"), - ("13248", "El Guamo"), - ("13268", "El Peñón"), - ("13300", "Hatillo de Loba"), - ("13430", "Magangué"), - ("13433", "Mahates"), - ("13440", "Margarita"), - ("13442", "María la Baja"), - ("13458", "Montecristo"), - ("13468", "Santa Cruz de Mompox"), - ("13473", "Morales"), - ("13490", "Norosí"), - ("13549", "Pinillos"), - ("13580", "Regidor"), - ("13600", "Río Viejo"), - ("13620", "San Cristóbal"), - ("13647", "San Estanislao"), - ("13650", "San Fernando"), - ("13654", "San Jacinto"), - ("13655", "San Jacinto del Cauca"), - ("13657", "San Juan Nepomuceno"), - ("13667", "San Martín de Loba"), - ("13670", "San Pablo"), - ("13673", "Santa Catalina"), - ("13683", "Santa Rosa"), - ("13688", "Santa Rosa del Sur"), - ("13744", "Simití"), - ("13760", "Soplaviento"), - ("13780", "Talaigua Nuevo"), - ("13810", "Tiquisio"), - ("13836", "Turbaco"), - ("13838", "Turbaná"), - ("13873", "Villanueva"), - ("13894", "Zambrano"), - ("15001", "Tunja"), - ("15022", "Almeida"), - ("15047", "Aquitania"), - ("15051", "Arcabuco"), - ("15087", "Belén"), - ("15090", "Berbeo"), - ("15092", "Betéitiva"), - ("15097", "Boavita"), - ("15104", "Boyacá"), - ("15106", "Briceño"), - ("15109", "Buenavista"), - ("15114", "Busbanzá"), - ("15131", "Caldas"), - ("15135", "Campohermoso"), - ("15162", "Cerinza"), - ("15172", "Chinavita"), - ("15176", "Chiquinquirá"), - ("15180", "Chiscas"), - ("15183", "Chita"), - ("15185", "Chitaraque"), - ("15187", "Chivatá"), - ("15189", "Ciénega"), - ("15204", "Cómbita"), - ("15212", "Coper"), - ("15215", "Corrales"), - ("15218", "Covarachía"), - ("15223", "Cubará"), - ("15224", "Cucaita"), - ("15226", "Cuítiva"), - ("15232", "Chíquiza"), - ("15236", "Chivor"), - ("15238", "Duitama"), - ("15244", "El Cocuy"), - ("15248", "El Espino"), - ("15272", "Firavitoba"), - ("15276", "Floresta"), - ("15293", "Gachantivá"), - ("15296", "Gámeza"), - ("15299", "Garagoa"), - ("15317", "Guacamayas"), - ("15322", "Guateque"), - ("15325", "Guayatá"), - ("15332", "Güicán de la Sierra"), - ("15362", "Iza"), - ("15367", "Jenesano"), - ("15368", "Jericó"), - ("15377", "Labranzagrande"), - ("15380", "La Capilla"), - ("15401", "La Victoria"), - ("15403", "La Uvita"), - ("15407", "Villa de Leyva"), - ("15425", "Macanal"), - ("15442", "Maripí"), - ("15455", "Miraflores"), - ("15464", "Mongua"), - ("15466", "Monguí"), - ("15469", "Moniquirá"), - ("15476", "Motavita"), - ("15480", "Muzo"), - ("15491", "Nobsa"), - ("15494", "Nuevo Colón"), - ("15500", "Oicatá"), - ("15507", "Otanche"), - ("15511", "Pachavita"), - ("15514", "Páez"), - ("15516", "Paipa"), - ("15518", "Pajarito"), - ("15522", "Panqueba"), - ("15531", "Pauna"), - ("15533", "Paya"), - ("15537", "Paz de Río"), - ("15542", "Pesca"), - ("15550", "Pisba"), - ("15572", "Puerto Boyacá"), - ("15580", "Quípama"), - ("15599", "Ramiriquí"), - ("15600", "Ráquira"), - ("15621", "Rondón"), - ("15632", "Saboyá"), - ("15638", "Sáchica"), - ("15646", "Samacá"), - ("15660", "San Eduardo"), - ("15664", "San José de Pare"), - ("15667", "San Luis de Gaceno"), - ("15673", "San Mateo"), - ("15676", "San Miguel de Sema"), - ("15681", "San Pablo de Borbur"), - ("15686", "Santana"), - ("15690", "Santa María"), - ("15693", "Santa Rosa de Viterbo"), - ("15696", "Santa Sofía"), - ("15720", "Sativanorte"), - ("15723", "Sativasur"), - ("15740", "Siachoque"), - ("15753", "Soatá"), - ("15755", "Socotá"), - ("15757", "Socha"), - ("15759", "Sogamoso"), - ("15761", "Somondoco"), - ("15762", "Sora"), - ("15763", "Sotaquirá"), - ("15764", "Soracá"), - ("15774", "Susacón"), - ("15776", "Sutamarchán"), - ("15778", "Sutatenza"), - ("15790", "Tasco"), - ("15798", "Tenza"), - ("15804", "Tibaná"), - ("15806", "Tibasosa"), - ("15808", "Tinjacá"), - ("15810", "Tipacoque"), - ("15814", "Toca"), - ("15816", "Togüí"), - ("15820", "Tópaga"), - ("15822", "Tota"), - ("15832", "Tununguá"), - ("15835", "Turmequé"), - ("15837", "Tuta"), - ("15839", "Tutazá"), - ("15842", "Úmbita"), - ("15861", "Ventaquemada"), - ("15879", "Viracachá"), - ("15897", "Zetaquira"), - ("17001", "Manizales"), - ("17013", "Aguadas"), - ("17042", "Anserma"), - ("17050", "Aranzazu"), - ("17088", "Belalcázar"), - ("17174", "Chinchiná"), - ("17272", "Filadelfia"), - ("17380", "La Dorada"), - ("17388", "La Merced"), - ("17433", "Manzanares"), - ("17442", "Marmato"), - ("17444", "Marquetalia"), - ("17446", "Marulanda"), - ("17486", "Neira"), - ("17495", "Norcasia"), - ("17513", "Pácora"), - ("17524", "Palestina"), - ("17541", "Pensilvania"), - ("17614", "Riosucio"), - ("17616", "Risaralda"), - ("17653", "Salamina"), - ("17662", "Samaná"), - ("17665", "San José"), - ("17777", "Supía"), - ("17867", "Victoria"), - ("17873", "Villamaría"), - ("17877", "Viterbo"), - ("18001", "Florencia"), - ("18029", "Albania"), - ("18094", "Belén de los Andaquíes"), - ("18150", "Cartagena del Chairá"), - ("18205", "Curillo"), - ("18247", "El Doncello"), - ("18256", "El Paujíl"), - ("18410", "La Montañita"), - ("18460", "Milán"), - ("18479", "Morelia"), - ("18592", "Puerto Rico"), - ("18610", "San José del Fragua"), - ("18753", "San Vicente del Caguán"), - ("18756", "Solano"), - ("18785", "Solita"), - ("18860", "Valparaíso"), - ("19001", "Popayán"), - ("19022", "Almaguer"), - ("19050", "Argelia"), - ("19075", "Balboa"), - ("19100", "Bolívar"), - ("19110", "Buenos Aires"), - ("19130", "Cajibío"), - ("19137", "Caldono"), - ("19142", "Caloto"), - ("19212", "Corinto"), - ("19256", "El Tambo"), - ("19290", "Florencia"), - ("19300", "Guachené"), - ("19318", "Guapi"), - ("19355", "Inzá"), - ("19364", "Jambaló"), - ("19392", "La Sierra"), - ("19397", "La Vega"), - ("19418", "López de Micay"), - ("19450", "Mercaderes"), - ("19455", "Miranda"), - ("19473", "Morales"), - ("19513", "Padilla"), - ("19517", "Páez"), - ("19532", "Patía"), - ("19533", "Piamonte"), - ("19548", "Piendamó - Tunía"), - ("19573", "Puerto Tejada"), - ("19585", "Puracé"), - ("19622", "Rosas"), - ("19693", "San Sebastián"), - ("19698", "Santander de Quilichao"), - ("19701", "Santa Rosa"), - ("19743", "Silvia"), - ("19760", "Sotará Paispamba"), - ("19780", "Suárez"), - ("19785", "Sucre"), - ("19807", "Timbío"), - ("19809", "Timbiquí"), - ("19821", "Toribío"), - ("19824", "Totoró"), - ("19845", "Villa Rica"), - ("20001", "Valledupar"), - ("20011", "Aguachica"), - ("20013", "Agustín Codazzi"), - ("20032", "Astrea"), - ("20045", "Becerril"), - ("20060", "Bosconia"), - ("20175", "Chimichagua"), - ("20178", "Chiriguaná"), - ("20228", "Curumaní"), - ("20238", "El Copey"), - ("20250", "El Paso"), - ("20295", "Gamarra"), - ("20310", "González"), - ("20383", "La Gloria"), - ("20400", "La Jagua de Ibirico"), - ("20443", "Manaure Balcón del Cesar"), - ("20517", "Pailitas"), - ("20550", "Pelaya"), - ("20570", "Pueblo Bello"), - ("20614", "Río de Oro"), - ("20621", "La Paz"), - ("20710", "San Alberto"), - ("20750", "San Diego"), - ("20770", "San Martín"), - ("20787", "Tamalameque"), - ("23001", "Montería"), - ("23068", "Ayapel"), - ("23079", "Buenavista"), - ("23090", "Canalete"), - ("23162", "Cereté"), - ("23168", "Chimá"), - ("23182", "Chinú"), - ("23189", "Ciénaga de Oro"), - ("23300", "Cotorra"), - ("23350", "La Apartada"), - ("23417", "Lorica"), - ("23419", "Los Córdobas"), - ("23464", "Momil"), - ("23466", "Montelíbano"), - ("23500", "Moñitos"), - ("23555", "Planeta Rica"), - ("23570", "Pueblo Nuevo"), - ("23574", "Puerto Escondido"), - ("23580", "Puerto Libertador"), - ("23586", "Purísima de la Concepción"), - ("23660", "Sahagún"), - ("23670", "San Andrés de Sotavento"), - ("23672", "San Antero"), - ("23675", "San Bernardo del Viento"), - ("23678", "San Carlos"), - ("23682", "San José de Uré"), - ("23686", "San Pelayo"), - ("23807", "Tierralta"), - ("23815", "Tuchín"), - ("23855", "Valencia"), - ("25001", "Agua de Dios"), - ("25019", "Albán"), - ("25035", "Anapoima"), - ("25040", "Anolaima"), - ("25053", "Arbeláez"), - ("25086", "Beltrán"), - ("25095", "Bituima"), - ("25099", "Bojacá"), - ("25120", "Cabrera"), - ("25123", "Cachipay"), - ("25126", "Cajicá"), - ("25148", "Caparrapí"), - ("25151", "Cáqueza"), - ("25154", "Carmen de Carupa"), - ("25168", "Chaguaní"), - ("25175", "Chía"), - ("25178", "Chipaque"), - ("25181", "Choachí"), - ("25183", "Chocontá"), - ("25200", "Cogua"), - ("25214", "Cota"), - ("25224", "Cucunubá"), - ("25245", "El Colegio"), - ("25258", "El Peñón"), - ("25260", "El Rosal"), - ("25269", "Facatativá"), - ("25279", "Fómeque"), - ("25281", "Fosca"), - ("25286", "Funza"), - ("25288", "Fúquene"), - ("25290", "Fusagasugá"), - ("25293", "Gachalá"), - ("25295", "Gachancipá"), - ("25297", "Gachetá"), - ("25299", "Gama"), - ("25307", "Girardot"), - ("25312", "Granada"), - ("25317", "Guachetá"), - ("25320", "Guaduas"), - ("25322", "Guasca"), - ("25324", "Guataquí"), - ("25326", "Guatavita"), - ("25328", "Guayabal de Síquima"), - ("25335", "Guayabetal"), - ("25339", "Gutiérrez"), - ("25368", "Jerusalén"), - ("25372", "Junín"), - ("25377", "La Calera"), - ("25386", "La Mesa"), - ("25394", "La Palma"), - ("25398", "La Peña"), - ("25402", "La Vega"), - ("25407", "Lenguazaque"), - ("25426", "Machetá"), - ("25430", "Madrid"), - ("25436", "Manta"), - ("25438", "Medina"), - ("25473", "Mosquera"), - ("25483", "Nariño"), - ("25486", "Nemocón"), - ("25488", "Nilo"), - ("25489", "Nimaima"), - ("25491", "Nocaima"), - ("25506", "Venecia"), - ("25513", "Pacho"), - ("25518", "Paime"), - ("25524", "Pandi"), - ("25530", "Paratebueno"), - ("25535", "Pasca"), - ("25572", "Puerto Salgar"), - ("25580", "Pulí"), - ("25592", "Quebradanegra"), - ("25594", "Quetame"), - ("25596", "Quipile"), - ("25599", "Apulo"), - ("25612", "Ricaurte"), - ("25645", "San Antonio del Tequendama"), - ("25649", "San Bernardo"), - ("25653", "San Cayetano"), - ("25658", "San Francisco"), - ("25662", "San Juan de Rioseco"), - ("25718", "Sasaima"), - ("25736", "Sesquilé"), - ("25740", "Sibaté"), - ("25743", "Silvania"), - ("25745", "Simijaca"), - ("25754", "Soacha"), - ("25758", "Sopó"), - ("25769", "Subachoque"), - ("25772", "Suesca"), - ("25777", "Supatá"), - ("25779", "Susa"), - ("25781", "Sutatausa"), - ("25785", "Tabio"), - ("25793", "Tausa"), - ("25797", "Tena"), - ("25799", "Tenjo"), - ("25805", "Tibacuy"), - ("25807", "Tibirita"), - ("25815", "Tocaima"), - ("25817", "Tocancipá"), - ("25823", "Topaipí"), - ("25839", "Ubalá"), - ("25841", "Ubaque"), - ("25843", "Villa de San Diego de Ubaté"), - ("25845", "Une"), - ("25851", "Útica"), - ("25862", "Vergara"), - ("25867", "Vianí"), - ("25871", "Villagómez"), - ("25873", "Villapinzón"), - ("25875", "Villeta"), - ("25878", "Viotá"), - ("25885", "Yacopí"), - ("25898", "Zipacón"), - ("25899", "Zipaquirá"), - ("27001", "Quibdó"), - ("27006", "Acandí"), - ("27025", "Alto Baudó"), - ("27050", "Atrato"), - ("27073", "Bagadó"), - ("27075", "Bahía Solano"), - ("27077", "Bajo Baudó"), - ("27099", "Bojayá"), - ("27135", "El Cantón del San Pablo"), - ("27150", "Carmen del Darién"), - ("27160", "Cértegui"), - ("27205", "Condoto"), - ("27245", "El Carmen de Atrato"), - ("27250", "El Litoral del San Juan"), - ("27361", "Istmina"), - ("27372", "Juradó"), - ("27413", "Lloró"), - ("27425", "Medio Atrato"), - ("27430", "Medio Baudó"), - ("27450", "Medio San Juan"), - ("27491", "Nóvita"), - ("27495", "Nuquí"), - ("27580", "Río Iró"), - ("27600", "Río Quito"), - ("27615", "Riosucio"), - ("27660", "San José del Palmar"), - ("27745", "Sipí"), - ("27787", "Tadó"), - ("27800", "Unguía"), - ("27810", "Unión Panamericana"), - ("41001", "Neiva"), - ("41006", "Acevedo"), - ("41013", "Agrado"), - ("41016", "Aipe"), - ("41020", "Algeciras"), - ("41026", "Altamira"), - ("41078", "Baraya"), - ("41132", "Campoalegre"), - ("41206", "Colombia"), - ("41244", "Elías"), - ("41298", "Garzón"), - ("41306", "Gigante"), - ("41319", "Guadalupe"), - ("41349", "Hobo"), - ("41357", "Íquira"), - ("41359", "Isnos"), - ("41378", "La Argentina"), - ("41396", "La Plata"), - ("41483", "Nátaga"), - ("41503", "Oporapa"), - ("41518", "Paicol"), - ("41524", "Palermo"), - ("41530", "Palestina"), - ("41548", "Pital"), - ("41551", "Pitalito"), - ("41615", "Rivera"), - ("41660", "Saladoblanco"), - ("41668", "San Agustín"), - ("41676", "Santa María"), - ("41770", "Suaza"), - ("41791", "Tarqui"), - ("41797", "Tesalia"), - ("41799", "Tello"), - ("41801", "Teruel"), - ("41807", "Timaná"), - ("41872", "Villavieja"), - ("41885", "Yaguará"), - ("44001", "Riohacha"), - ("44035", "Albania"), - ("44078", "Barrancas"), - ("44090", "Dibulla"), - ("44098", "Distracción"), - ("44110", "El Molino"), - ("44279", "Fonseca"), - ("44378", "Hatonuevo"), - ("44420", "La Jagua del Pilar"), - ("44430", "Maicao"), - ("44560", "Manaure"), - ("44650", "San Juan del Cesar"), - ("44847", "Uribia"), - ("44855", "Urumita"), - ("44874", "Villanueva"), - ("47001", "Santa Marta"), - ("47030", "Algarrobo"), - ("47053", "Aracataca"), - ("47058", "Ariguaní"), - ("47161", "Cerro de San Antonio"), - ("47170", "Chivolo"), - ("47189", "Ciénaga"), - ("47205", "Concordia"), - ("47245", "El Banco"), - ("47258", "El Piñón"), - ("47268", "El Retén"), - ("47288", "Fundación"), - ("47318", "Guamal"), - ("47460", "Nueva Granada"), - ("47541", "Pedraza"), - ("47545", "Pijiño del Carmen"), - ("47551", "Pivijay"), - ("47555", "Plato"), - ("47570", "Puebloviejo"), - ("47605", "Remolino"), - ("47660", "Sabanas de San Ángel"), - ("47675", "Salamina"), - ("47692", "San Sebastián de Buenavista"), - ("47703", "San Zenón"), - ("47707", "Santa Ana"), - ("47720", "Santa Bárbara de Pinto"), - ("47745", "Sitionuevo"), - ("47798", "Tenerife"), - ("47960", "Zapayán"), - ("47980", "Zona Bananera"), - ("50001", "Villavicencio"), - ("50006", "Acacías"), - ("50110", "Barranca de Upía"), - ("50124", "Cabuyaro"), - ("50150", "Castilla la Nueva"), - ("50223", "Cubarral"), - ("50226", "Cumaral"), - ("50245", "El Calvario"), - ("50251", "El Castillo"), - ("50270", "El Dorado"), - ("50287", "Fuente de Oro"), - ("50313", "Granada"), - ("50318", "Guamal"), - ("50325", "Mapiripán"), - ("50330", "Mesetas"), - ("50350", "La Macarena"), - ("50370", "Uribe"), - ("50400", "Lejanías"), - ("50450", "Puerto Concordia"), - ("50568", "Puerto Gaitán"), - ("50573", "Puerto López"), - ("50577", "Puerto Lleras"), - ("50590", "Puerto Rico"), - ("50606", "Restrepo"), - ("50680", "San Carlos de Guaroa"), - ("50683", "San Juan de Arama"), - ("50686", "San Juanito"), - ("50689", "San Martín"), - ("50711", "Vistahermosa"), - ("52001", "Pasto"), - ("52019", "Albán"), - ("52022", "Aldana"), - ("52036", "Ancuya"), - ("52051", "Arboleda"), - ("52079", "Barbacoas"), - ("52083", "Belén"), - ("52110", "Buesaco"), - ("52203", "Colón"), - ("52207", "Consacá"), - ("52210", "Contadero"), - ("52215", "Córdoba"), - ("52224", "Cuaspud Carlosama"), - ("52227", "Cumbal"), - ("52233", "Cumbitara"), - ("52240", "Chachagüí"), - ("52250", "El Charco"), - ("52254", "El Peñol"), - ("52256", "El Rosario"), - ("52258", "El Tablón de Gómez"), - ("52260", "El Tambo"), - ("52287", "Funes"), - ("52317", "Guachucal"), - ("52320", "Guaitarilla"), - ("52323", "Gualmatán"), - ("52352", "Iles"), - ("52354", "Imués"), - ("52356", "Ipiales"), - ("52378", "La Cruz"), - ("52381", "La Florida"), - ("52385", "La Llanada"), - ("52390", "La Tola"), - ("52399", "La Unión"), - ("52405", "Leiva"), - ("52411", "Linares"), - ("52418", "Los Andes"), - ("52427", "Magüí"), - ("52435", "Mallama"), - ("52473", "Mosquera"), - ("52480", "Nariño"), - ("52490", "Olaya Herrera"), - ("52506", "Ospina"), - ("52520", "Francisco Pizarro"), - ("52540", "Policarpa"), - ("52560", "Potosí"), - ("52565", "Providencia"), - ("52573", "Puerres"), - ("52585", "Pupiales"), - ("52612", "Ricaurte"), - ("52621", "Roberto Payán"), - ("52678", "Samaniego"), - ("52683", "Sandoná"), - ("52685", "San Bernardo"), - ("52687", "San Lorenzo"), - ("52693", "San Pablo"), - ("52694", "San Pedro de Cartago"), - ("52696", "Santa Bárbara"), - ("52699", "Santacruz"), - ("52720", "Sapuyes"), - ("52786", "Taminango"), - ("52788", "Tangua"), - ("52835", "San Andrés de Tumaco"), - ("52838", "Túquerres"), - ("52885", "Yacuanquer"), - ("54001", "San José de Cúcuta"), - ("54003", "Ábrego"), - ("54051", "Arboledas"), - ("54099", "Bochalema"), - ("54109", "Bucarasica"), - ("54125", "Cácota"), - ("54128", "Cáchira"), - ("54172", "Chinácota"), - ("54174", "Chitagá"), - ("54206", "Convención"), - ("54223", "Cucutilla"), - ("54239", "Durania"), - ("54245", "El Carmen"), - ("54250", "El Tarra"), - ("54261", "El Zulia"), - ("54313", "Gramalote"), - ("54344", "Hacarí"), - ("54347", "Herrán"), - ("54377", "Labateca"), - ("54385", "La Esperanza"), - ("54398", "La Playa"), - ("54405", "Los Patios"), - ("54418", "Lourdes"), - ("54480", "Mutiscua"), - ("54498", "Ocaña"), - ("54518", "Pamplona"), - ("54520", "Pamplonita"), - ("54553", "Puerto Santander"), - ("54599", "Ragonvalia"), - ("54660", "Salazar"), - ("54670", "San Calixto"), - ("54673", "San Cayetano"), - ("54680", "Santiago"), - ("54720", "Sardinata"), - ("54743", "Silos"), - ("54800", "Teorama"), - ("54810", "Tibú"), - ("54820", "Toledo"), - ("54871", "Villa Caro"), - ("54874", "Villa del Rosario"), - ("63001", "Armenia"), - ("63111", "Buenavista"), - ("63130", "Calarcá"), - ("63190", "Circasia"), - ("63212", "Córdoba"), - ("63272", "Filandia"), - ("63302", "Génova"), - ("63401", "La Tebaida"), - ("63470", "Montenegro"), - ("63548", "Pijao"), - ("63594", "Quimbaya"), - ("63690", "Salento"), - ("66001", "Pereira"), - ("66045", "Apía"), - ("66075", "Balboa"), - ("66088", "Belén de Umbría"), - ("66170", "Dosquebradas"), - ("66318", "Guática"), - ("66383", "La Celia"), - ("66400", "La Virginia"), - ("66440", "Marsella"), - ("66456", "Mistrató"), - ("66572", "Pueblo Rico"), - ("66594", "Quinchía"), - ("66682", "Santa Rosa de Cabal"), - ("66687", "Santuario"), - ("68001", "Bucaramanga"), - ("68013", "Aguada"), - ("68020", "Albania"), - ("68051", "Aratoca"), - ("68077", "Barbosa"), - ("68079", "Barichara"), - ("68081", "Barrancabermeja"), - ("68092", "Betulia"), - ("68101", "Bolívar"), - ("68121", "Cabrera"), - ("68132", "California"), - ("68147", "Capitanejo"), - ("68152", "Carcasí"), - ("68160", "Cepitá"), - ("68162", "Cerrito"), - ("68167", "Charalá"), - ("68169", "Charta"), - ("68176", "Chima"), - ("68179", "Chipatá"), - ("68190", "Cimitarra"), - ("68207", "Concepción"), - ("68209", "Confines"), - ("68211", "Contratación"), - ("68217", "Coromoro"), - ("68229", "Curití"), - ("68235", "El Carmen de Chucurí"), - ("68245", "El Guacamayo"), - ("68250", "El Peñón"), - ("68255", "El Playón"), - ("68264", "Encino"), - ("68266", "Enciso"), - ("68271", "Florián"), - ("68276", "Floridablanca"), - ("68296", "Galán"), - ("68298", "Gámbita"), - ("68307", "Girón"), - ("68318", "Guaca"), - ("68320", "Guadalupe"), - ("68322", "Guapotá"), - ("68324", "Guavatá"), - ("68327", "Güepsa"), - ("68344", "Hato"), - ("68368", "Jesús María"), - ("68370", "Jordán"), - ("68377", "La Belleza"), - ("68385", "Landázuri"), - ("68397", "La Paz"), - ("68406", "Lebrija"), - ("68418", "Los Santos"), - ("68425", "Macaravita"), - ("68432", "Málaga"), - ("68444", "Matanza"), - ("68464", "Mogotes"), - ("68468", "Molagavita"), - ("68498", "Ocamonte"), - ("68500", "Oiba"), - ("68502", "Onzaga"), - ("68522", "Palmar"), - ("68524", "Palmas del Socorro"), - ("68533", "Páramo"), - ("68547", "Piedecuesta"), - ("68549", "Pinchote"), - ("68572", "Puente Nacional"), - ("68573", "Puerto Parra"), - ("68575", "Puerto Wilches"), - ("68615", "Rionegro"), - ("68655", "Sabana de Torres"), - ("68669", "San Andrés"), - ("68673", "San Benito"), - ("68679", "San Gil"), - ("68682", "San Joaquín"), - ("68684", "San José de Miranda"), - ("68686", "San Miguel"), - ("68689", "San Vicente de Chucurí"), - ("68705", "Santa Bárbara"), - ("68720", "Santa Helena del Opón"), - ("68745", "Simacota"), - ("68755", "Socorro"), - ("68770", "Suaita"), - ("68773", "Sucre"), - ("68780", "Suratá"), - ("68820", "Tona"), - ("68855", "Valle de San José"), - ("68861", "Vélez"), - ("68867", "Vetas"), - ("68872", "Villanueva"), - ("68895", "Zapatoca"), - ("70001", "Sincelejo"), - ("70110", "Buenavista"), - ("70124", "Caimito"), - ("70204", "Colosó"), - ("70215", "Corozal"), - ("70221", "Coveñas"), - ("70230", "Chalán"), - ("70233", "El Roble"), - ("70235", "Galeras"), - ("70265", "Guaranda"), - ("70400", "La Unión"), - ("70418", "Los Palmitos"), - ("70429", "Majagual"), - ("70473", "Morroa"), - ("70508", "Ovejas"), - ("70523", "Palmito"), - ("70670", "Sampués"), - ("70678", "San Benito Abad"), - ("70702", "San Juan de Betulia"), - ("70708", "San Marcos"), - ("70713", "San Onofre"), - ("70717", "San Pedro"), - ("70742", "San Luis de Sincé"), - ("70771", "Sucre"), - ("70820", "Santiago de Tolú"), - ("70823", "San José de Toluviejo"), - ("73001", "Ibagué"), - ("73024", "Alpujarra"), - ("73026", "Alvarado"), - ("73030", "Ambalema"), - ("73043", "Anzoátegui"), - ("73055", "Armero"), - ("73067", "Ataco"), - ("73124", "Cajamarca"), - ("73148", "Carmen de Apicalá"), - ("73152", "Casabianca"), - ("73168", "Chaparral"), - ("73200", "Coello"), - ("73217", "Coyaima"), - ("73226", "Cunday"), - ("73236", "Dolores"), - ("73268", "Espinal"), - ("73270", "Falan"), - ("73275", "Flandes"), - ("73283", "Fresno"), - ("73319", "Guamo"), - ("73347", "Herveo"), - ("73349", "Honda"), - ("73352", "Icononzo"), - ("73408", "Lérida"), - ("73411", "Líbano"), - ("73443", "San Sebastián de Mariquita"), - ("73449", "Melgar"), - ("73461", "Murillo"), - ("73483", "Natagaima"), - ("73504", "Ortega"), - ("73520", "Palocabildo"), - ("73547", "Piedras"), - ("73555", "Planadas"), - ("73563", "Prado"), - ("73585", "Purificación"), - ("73616", "Rioblanco"), - ("73622", "Roncesvalles"), - ("73624", "Rovira"), - ("73671", "Saldaña"), - ("73675", "San Antonio"), - ("73678", "San Luis"), - ("73686", "Santa Isabel"), - ("73770", "Suárez"), - ("73854", "Valle de San Juan"), - ("73861", "Venadillo"), - ("73870", "Villahermosa"), - ("73873", "Villarrica"), - ("76001", "Cali"), - ("76020", "Alcalá"), - ("76036", "Andalucía"), - ("76041", "Ansermanuevo"), - ("76054", "Argelia"), - ("76100", "Bolívar"), - ("76109", "Buenaventura"), - ("76111", "Guadalajara de Buga"), - ("76113", "Bugalagrande"), - ("76122", "Caicedonia"), - ("76126", "Calima"), - ("76130", "Candelaria"), - ("76147", "Cartago"), - ("76233", "Dagua"), - ("76243", "El Águila"), - ("76246", "El Cairo"), - ("76248", "El Cerrito"), - ("76250", "El Dovio"), - ("76275", "Florida"), - ("76306", "Ginebra"), - ("76318", "Guacarí"), - ("76364", "Jamundí"), - ("76377", "La Cumbre"), - ("76400", "La Unión"), - ("76403", "La Victoria"), - ("76497", "Obando"), - ("76520", "Palmira"), - ("76563", "Pradera"), - ("76606", "Restrepo"), - ("76616", "Riofrío"), - ("76622", "Roldanillo"), - ("76670", "San Pedro"), - ("76736", "Sevilla"), - ("76823", "Toro"), - ("76828", "Trujillo"), - ("76834", "Tuluá"), - ("76845", "Ulloa"), - ("76863", "Versalles"), - ("76869", "Vijes"), - ("76890", "Yotoco"), - ("76892", "Yumbo"), - ("76895", "Zarzal"), - ("81001", "Arauca"), - ("81065", "Arauquita"), - ("81220", "Cravo Norte"), - ("81300", "Fortul"), - ("81591", "Puerto Rondón"), - ("81736", "Saravena"), - ("81794", "Tame"), - ("85001", "Yopal"), - ("85010", "Aguazul"), - ("85015", "Chámeza"), - ("85125", "Hato Corozal"), - ("85136", "La Salina"), - ("85139", "Maní"), - ("85162", "Monterrey"), - ("85225", "Nunchía"), - ("85230", "Orocué"), - ("85250", "Paz de Ariporo"), - ("85263", "Pore"), - ("85279", "Recetor"), - ("85300", "Sabanalarga"), - ("85315", "Sácama"), - ("85325", "San Luis de Palenque"), - ("85400", "Támara"), - ("85410", "Tauramena"), - ("85430", "Trinidad"), - ("85440", "Villanueva"), - ("86001", "Mocoa"), - ("86219", "Colón"), - ("86320", "Orito"), - ("86568", "Puerto Asís"), - ("86569", "Puerto Caicedo"), - ("86571", "Puerto Guzmán"), - ("86573", "Puerto Leguízamo"), - ("86749", "Sibundoy"), - ("86755", "San Francisco"), - ("86757", "San Miguel"), - ("86760", "Santiago"), - ("86865", "Valle del Guamuez"), - ("86885", "Villagarzón"), - ("88001", "San Andrés"), - ("88564", "Providencia"), - ("91001", "Leticia"), - ("91263", "El Encanto"), - ("91405", "La Chorrera"), - ("91407", "La Pedrera"), - ("91430", "La Victoria"), - ("91460", "Mirití - Paraná"), - ("91530", "Puerto Alegría"), - ("91536", "Puerto Arica"), - ("91540", "Puerto Nariño"), - ("91669", "Puerto Santander"), - ("91798", "Tarapacá"), - ("94001", "Inírida"), - ("94343", "Barrancominas"), - ("94883", "San Felipe"), - ("94884", "Puerto Colombia"), - ("94885", "La Guadalupe"), - ("94886", "Cacahual"), - ("94887", "Pana Pana"), - ("94888", "Morichal"), - ("95001", "San José del Guaviare"), - ("95015", "Calamar"), - ("95025", "El Retorno"), - ("95200", "Miraflores"), - ("97001", "Mitú"), - ("97161", "Carurú"), - ("97511", "Pacoa"), - ("97666", "Taraira"), - ("97777", "Papunahua"), - ("97889", "Yavaraté"), - ("99001", "Puerto Carreño"), - ("99524", "La Primavera"), - ("99624", "Santa Rosalía"), - ("99773", "Cumaribo"), - ] - - street_prefixes = OrderedDict( - [ - ("Calle", 0.2), - ("Cl.", 0.2), - ("Carrera", 0.2), - ("Cr.", 0.2), - ("Diagonal", 0.05), - ("Dg.", 0.05), - ("Transversal", 0.05), - ("Tr.", 0.05), - ] - ) - street_suffixes = ["Sur", "Este", "Bis", "Bis {{random_uppercase_letter}}"] - street_name_formats = OrderedDict( - [ - ("{{street_prefix}} %ª", 0.1), - ("{{street_prefix}} %#", 0.3), - ("{{street_prefix}} 1##", 0.1), - ("{{street_prefix}} % {{street_suffix}}", 0.02), - ("{{street_prefix}} %# {{street_suffix}}", 0.02), - ("{{street_prefix}} 1## {{street_suffix}}", 0.02), - ("{{street_prefix}} %{{random_uppercase_letter}}", 0.06), - ("{{street_prefix}} %#{{random_uppercase_letter}}", 0.06), - ("{{street_prefix}} 1##{{random_uppercase_letter}}", 0.06), - ("{{street_prefix}} %{{random_uppercase_letter}} {{street_suffix}}", 0.02), - ("{{street_prefix}} %#{{random_uppercase_letter}} {{street_suffix}}", 0.02), - ( - "{{street_prefix}} 1##{{random_uppercase_letter}} {{street_suffix}}", - 0.02, - ), - ("Avenida {{last_name}}", 0.01), - ("Avenida calle %ª", 0.01), - ("Avenida calle %#", 0.01), - ("Avenida calle 1##", 0.01), - ("Avenida carrera %ª", 0.01), - ("Avenida carrera %#", 0.01), - ("Avenida carrera 1##", 0.01), - ("Avenida {{name}}", 0.01), - ("Avenida {{city}}", 0.01), - ("Avenida {{department}}", 0.01), - ("Av. {{last_name}}", 0.01), - ("Av. calle %ª", 0.01), - ("Av. calle %#", 0.01), - ("Av. calle 1##", 0.01), - ("Av. carrera %ª", 0.01), - ("Av. carrera %#", 0.01), - ("Av. carrera 1##", 0.01), - ("Av. {{name}}", 0.01), - ("Av. {{city}}", 0.01), - ("Av. {{department}}", 0.01), - ] - ) - building_number_formats = OrderedDict( - [ - ("%-%", 0.2), - ("%-%#", 0.2), - ("%#-%", 0.2), - ("%#-%#", 0.2), - ("%{{random_uppercase_letter}}-%", 0.05), - ("%{{random_uppercase_letter}}-%#", 0.05), - ("%#{{random_uppercase_letter}}-%", 0.05), - ("%#{{random_uppercase_letter}}-%#", 0.05), - ] - ) - secondary_address_formats = [ - "Apartamento %!!", - "Apto. %!!", - "Casa %!", - "Torre % apartamento %!!", - "Etapa % apartamento %!!", - "Local %!!", - "Oficina %!!", - "Bodega %!!", - ] - postcode_formats = ["{{department_code}}####"] - - def department_code(self) -> str: - """ - :example: "11" - """ - return self.random_element(self.departments.keys()) - - def department(self) -> str: - """ - :example: "Bogotá, D.C." - """ - return self.random_element(list(self.departments.values())) - - administrative_unit = department - - def municipality_code(self) -> str: - """ - :example: "11001" - """ - return self.random_element(self.municipalities)[0] # type: ignore - - def municipality(self) -> str: - """ - :example: "Bogotá, D.C." - """ - return self.random_element(self.municipalities)[1] # type: ignore - - city = municipality - - def street_prefix(self) -> str: - """ - :example: "Calle" - """ - return self.random_element(self.street_prefixes) - - def street_suffix(self) -> str: - """ - :example: "Sur" - """ - return self.generator.parse(self.random_element(self.street_suffixes)) - - def street_name(self) -> str: - """ - :example: "Calle 1" - """ - pattern: str = self.random_element(self.street_name_formats) - return self.numerify(self.generator.parse(pattern)) - - def building_number(self) -> str: - """ - :example: "2-3" - """ - return self.numerify(self.generator.parse(self.random_element(self.building_number_formats))) - - def secondary_address(self) -> str: - """ - :example: "Apartamento 123" - """ - return self.numerify(self.random_element(self.secondary_address_formats)) - - def street_address(self) -> str: - """ - :example: "Calle 1 # 2-3" - """ - return self.street_name() + " # " + self.building_number() + self.random_element(("", " Sur", " Este")) - - def postcode(self) -> str: - """ - :example: "11001" - """ - return self.numerify(self.generator.parse(self.random_element(self.postcode_formats))) - - def address(self) -> str: - """ - :example: "Calle 1 # 2-3\n11001\nBogotá D.C." - """ - municipality: Tuple[str, str] = self.random_element(self.municipalities) - municipality_code = municipality[0] - department_code = municipality_code[0:2] - is_department_capital = municipality_code[-3:] == "001" - - secondary_address: str = self.random_element( - [ - "\n" + self.secondary_address(), - "", - ] - ) - postcode = "\n" + department_code + self.numerify("####") - municipality_name = "\n" + municipality[1] - department_name = ", " + self.departments[department_code] if not is_department_capital else "" - - return self.street_address() + secondary_address + postcode + municipality_name + department_name diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_CO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/es_CO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d2e8ab7..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/es_CO/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_ES/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/es_ES/__init__.py deleted file mode 100644 index 7ac8a01..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/es_ES/__init__.py +++ /dev/null @@ -1,140 +0,0 @@ -from ..es import Provider as AddressProvider - - -class Provider(AddressProvider): - building_number_formats = ("%", "%#", "%#", "%#", "%##") - street_prefixes = ( - "Plaza", - "Calle", - "Avenida", - "Via", - "Vial", - "Rambla", - "Glorieta", - "Urbanización", - "Callejón", - "Cañada", - "Alameda", - "Acceso", - "C.", - "Ronda", - "Pasaje", - "Cuesta", - "Pasadizo", - "Paseo", - "Camino", - ) - states = ( - "Álava", - "Albacete", - "Alicante", - "Almería", - "Asturias", - "Ávila", - "Badajoz", - "Baleares", - "Barcelona", - "Burgos", - "Cáceres", - "Cádiz", - "Cantabria", - "Castellón", - "Ceuta", - "Ciudad", - "Córdoba", - "Cuenca", - "Girona", - "Granada", - "Guadalajara", - "Guipúzcoa", - "Huelva", - "Huesca", - "Jaén", - "La Coruña", - "La Rioja", - "Las Palmas", - "León", - "Lleida", - "Lugo", - "Madrid", - "Málaga", - "Melilla", - "Murcia", - "Navarra", - "Ourense", - "Palencia", - "Pontevedra", - "Salamanca", - "Santa Cruz de Tenerife", - "Segovia", - "Sevilla", - "Soria", - "Tarragona", - "Teruel", - "Toledo", - "Valencia", - "Valladolid", - "Vizcaya", - "Zamora", - "Zaragoza", - ) - - # Source: - # https://administracionelectronica.gob.es/ctt/resources/Soluciones - # /238/Descargas/Catalogo-de-Comunidades-Autonomas.xlsx - regions = ( - "Andalucía", - "Aragón", - "Principado de Asturias", - "Illes Balears", - "Canarias", - "Cantabria", - "Castilla y León", - "Castilla-La Mancha", - "Cataluña", - "Comunitat Valenciana", - "Extremadura", - "Galicia", - "Comunidad de Madrid", - "Región de Murcia", - "Comunidad Foral de Navarra", - "País Vasco", - "La Rioja", - "Ciudad Autónoma de Ceuta", - "Ciudad Autónoma de Melilla", - ) - - city_formats = ("{{state_name}}",) - - street_name_formats = ( - "{{street_prefix}} {{first_name}} {{last_name}}", - "{{street_prefix}} de {{first_name}} {{last_name}}", - ) - street_address_formats = ( - "{{street_name}} {{building_number}}", - "{{street_name}} {{building_number}} {{secondary_address}} ", - ) - address_formats = ("{{street_address}}\n{{city}}, {{postcode}}",) - secondary_address_formats = ("Apt. ##", "Piso #", "Puerta #") - - def state_name(self) -> str: - return self.random_element(self.states) - - def street_prefix(self) -> str: - return self.random_element(self.street_prefixes) - - def secondary_address(self) -> str: - return self.numerify(self.random_element(self.secondary_address_formats)) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit - - def region(self) -> str: - return self.random_element(self.regions) - - def postcode(self) -> str: - return str(self.generator.random.randint(1000, 52100)).zfill(5) - - autonomous_community = region diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_ES/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/es_ES/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2de7b80..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/es_ES/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_MX/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/es_MX/__init__.py deleted file mode 100644 index c51b6a7..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/es_MX/__init__.py +++ /dev/null @@ -1,163 +0,0 @@ -from collections import OrderedDict - -from ..es import Provider as AddressProvider - - -class Provider(AddressProvider): - city_prefixes = ("Sur", "Norte") - city_adjectives = ("Nueva", "Vieja") - city_suffixes = ("de la Montaña", "los bajos", "los altos") - street_prefixes = ( - "Ampliación", - "Andador", - "Avenida", - "Boulevard", - "Calle", - "Callejón", - "Calzada", - "Cerrada", - "Circuito", - "Circunvalación", - "Continuación", - "Corredor", - "Diagonal", - "Eje vial", - "Pasaje", - "Peatonal", - "Periférico", - "Privada", - "Prolongación", - "Retorno", - "Viaducto", - ) - building_number_formats = ("#####", "####", "###") - postcode_formats = ("#####", "#####-####") - - # States and abbrs from Mexico from INEGI - # http://www.inegi.org.mx/geo/contenidos/geoestadistica/CatalogoClaves.aspx - states = ( - ("AGS", "Aguascalientes"), - ("BC", "Baja California"), - ("BCS", "Baja California Sur"), - ("CAMP", "Campeche"), - ("COAH", "Coahuila de Zaragoza"), - ("COL", "Colima"), - ("CHIS", "Chiapas"), - ("CHIH", "Chihuahua"), - ("DF", "Distrito Federal"), - ("DGO", "Durango"), - ("GTO", "Guanajuato"), - ("GRO", "Guerrero"), - ("HGO", "Hidalgo"), - ("JAL", "Jalisco"), - ("MEX", "México"), - ("MICH", "Michoacán de Ocampo"), - ("MOR", "Morelos"), - ("NAY", "Nayarit"), - ("NL", "Nuevo León"), - ("OAX", "Oaxaca"), - ("PUE", "Puebla"), - ("QRO", "Querétaro"), - ("Q. ROO", "Quintana Roo"), - ("SLP", "San Luis Potosí"), - ("SIN", "Sinaloa"), - ("SON", "Sonora"), - ("TAB", "Tabasco"), - ("TAMPS", "Tamaulipas"), - ("TLAX", "Tlaxcala"), - ("VER", "Veracruz de Ignacio de la Llave"), - ("YUC", "Yucatán"), - ("ZAC", "Zacatecas"), - ) - - zip_codes = OrderedDict( - ( - # The ZipCodes has a begin & final range - # Source: Norma Técnica de Domicilios INEGI - ("AGS", (20000, 20999)), - ("BC", (21000, 22999)), - ("BCS", (23000, 23999)), - ("CAMP", (24000, 24999)), - ("COAH", (25000, 27999)), - ("COL", (28000, 28999)), - ("CHIS", (29000, 30999)), - ("CHIH", (31000, 33999)), - ("DF", (1000, 19999)), - ("DGO", (36000, 35999)), - ("GTO", (36000, 38999)), - ("GRO", (39000, 41999)), - ("HGO", (42000, 43999)), - ("JAL", (44000, 49999)), - ("MEX", (50000, 57999)), - ("MICH", (58000, 61999)), - ("MOR", (62000, 62999)), - ("NAY", (63000, 63999)), - ("NL", (64000, 67999)), - ("OAX", (68000, 71999)), - ("PUE", (72000, 75999)), - ("QRO", (76000, 76999)), - ("Q. ROO", (77000, 75999)), - ("SLP", (78000, 79999)), - ("SIN", (80000, 82999)), - ("SON", (83000, 85999)), - ("TAB", (86000, 86999)), - ("TAMPS", (87000, 89999)), - ("TLAX", (90000, 90999)), - ("VER", (91000, 97999)), - ("YUC", (97000, 97999)), - ("ZAC", (98000, 99999)), - ) - ) - - city_formats = ( - "{{city_adjective}} {{country}}", - "San {{first_name}} {{city_suffix}}", - ) - street_name_formats = ( - "{{street_prefix}} {{last_name}}", - "{{street_prefix}} {{country}}", - "{{street_prefix}} {{state}}", - "{{street_prefix}} {{city_prefix}} {{last_name}}", - ) - street_address_formats = ("{{street_name}} {{secondary_address}}",) - address_formats = ("{{street_address}}\n{{city}}, {{state_abbr}} {{postcode}}",) - secondary_address_formats = ( - "### ###", - "### Interior ###", - "### Edif. ### , Depto. ###", - ) - - def city_prefix(self) -> str: - return self.random_element(self.city_prefixes) - - def city_suffix(self) -> str: - return self.random_element(self.city_suffixes) - - def city_adjective(self) -> str: - return self.random_element(self.city_adjectives) - - def street_prefix(self) -> str: - """ - :example 'Avenida' - """ - return self.random_element(self.street_prefixes) - - def secondary_address(self) -> str: - """ - :example '020 Interior 999' - """ - return self.numerify(self.random_element(self.secondary_address_formats)) - - def administrative_unit(self) -> str: - """ - example: u'Guerrero' - """ - return self.random_element(self.states)[1] # type: ignore - - state = administrative_unit - - def state_abbr(self) -> str: - """ - example: u'GRO' - """ - return self.random_element(self.states)[0] # type: ignore diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_MX/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/es_MX/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a3e4c1c..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/es_MX/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fa_IR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/fa_IR/__init__.py deleted file mode 100644 index c21889d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/fa_IR/__init__.py +++ /dev/null @@ -1,296 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_prefixes = ( - "شمال", - "غرب", - "شرق", - "جنوب", - "بندر", - "شهر", - "روستای", - "دهستان", - "شهرستان", - "باغات", - "استان", - ) - building_number_formats = ("#####", "####", "###") - street_suffixes = ( - "کوچه", - "خیابان", - "پل", - "دره", - "میدان", - "چهار راه", - "بن بست", - "بلوار", - "جنب", - "تقاطع", - "آزاد راه", - "بزرگ راه", - "جزیره", - "کوه", - "جاده", - "تونل", - ) - postcode_formats = ("###", "####", "#####", "######", "##########") - states = ( - "آذربایجان شرقی", - "آذربایجان غربی", - "اردبیل", - "خراسان", - "کردستان", - "گیلان", - "اصفهان", - "البرز", - "ایلام", - "بوشهر", - "تهران", - "چهارمحال و بختیاری", - "خراسان جنوبی", - "خراسان رضوی", - "خراسان شمالی", - "خوزستان", - "زنجان", - "سمنان", - "سیستان و بلوچستان", - "فارس", - "قزوین", - "قم", - "کرمان", - "کرمانشاه", - "کهگیلویه و بویراحمد", - "گلستان", - "لرستان", - "مازندران", - "مرکزی", - "هرمزگان", - "همدان", - "یزد", - ) - countries = ( - "جمهوری آذربایجان", - "آرژانتین", - "آفریقای جنوبی", - "جمهوری آفریقای مرکزی", - "آلبانی", - "آلمان", - "آنتیگوا و باربودا", - "آندورا", - "آنگولا", - "اتریش", - "اتیوپی", - "اردن", - "ارمنستان", - "اروگوئه", - "اریتره", - "ازبکستان", - "اسپانیا", - "استرالیا", - "استونی", - "اسرائیل", - "اسلواکی", - "اسلوونی", - "افغانستان", - "اکوادور", - "الجزایر", - "السالوادور", - "امارات متحده عربی", - "اندونزی", - "اوکراین", - "اوگاندا", - "ایالات متحده آمریکا", - "ایتالیا", - "ایران", - "جمهوری ایرلند", - "ایسلند", - "باربادوس", - "باهاما", - "بحرین", - "برزیل", - "برونئی", - "بریتانیا", - "بلاروس", - "بلژیک", - "بلغارستان", - "بلیز", - "بنگلادش", - "بنین", - "پادشاهی بوتان", - "بوتسوانا", - "بورکینافاسو", - "بوروندی", - "بوسنی و هرزگوین", - "بولیوی", - "پاپوآ گینه نو", - "پاراگوئه", - "پاناما", - "پاکستان", - "پرتغال", - "پرو", - "پورتوریکو", - "تاجیکستان", - "تانزانیا", - "تایلند", - "جمهوری چین", - "ترکمنستان", - "ترکیه", - "ترینیداد و توباگو", - "توگو", - "تونس", - "تونگا", - "تووالو", - "تیمور شرقی", - "جامائیکا", - "جزایر سلیمان", - "جزایر مارشال", - "جمهوری چک", - "جمهوری دومینیکن", - "جیبوتی", - "چاد", - "چین", - "دانمارک", - "دومینیکا", - "جمهوری دومینیکن", - "رواندا", - "روسیه", - "رومانی", - "زامبیا", - "نیوزیلند", - "زیمباوه", - "جمهوری دموکراتیک کنگو (زئیر)", - "ژاپن", - "سائوتومه و پرینسیپ", - "ساحل عاج", - "ساموآی غربی", - "سن مارینو", - "سری‌لانکا", - "سنت کیتس و نویس", - "سنت لوسیا", - "سنت وینسنت و گرنادین‌ها", - "سنگاپور", - "سنگال", - "سوئد", - "سوئیس", - "سوازیلند", - "سودان", - "سودان جنوبی", - "سورینام", - "سوریه", - "سومالی", - "سیرالئون", - "سیشل", - "شیلی", - "صربستان", - "عراق", - "عربستان سعودی", - "عمان", - "غنا", - "فرانسه", - "فلسطین", - "فنلاند", - "فیجی", - "فیلیپین", - "قبرس", - "قرقیزستان", - "قزاقستان", - "قطر", - "کامبوج", - "کامرون", - "کانادا", - "کره جنوبی", - "کره شمالی", - "کرواسی", - "کاستاریکا", - "کلمبیا", - "جمهوری کنگو", - "جمهوری دموکراتیک کنگو", - "کنیا", - "کوبا", - "کوزوو", - "مجمع‌الجزایر قمر", - "کویت", - "کیپ ورد", - "کیریباتی", - "گابن", - "گامبیا", - "گرجستان", - "گرنادا", - "گرینلند(از مستعمرات دانمارک)", - "گواتمالا", - "گویان", - "گینه", - "گینه استوایی", - "گینه بیسائو", - "لائوس", - "لبنان", - "لتونی", - "لسوتو", - "لهستان", - "لوکزامبورگ", - "لیبریا", - "لیبی", - "لیتوانی", - "لیختن‌اشتاین", - "ماداگاسکار", - "مالاوی", - "مالت", - "مالدیو", - "مالزی", - "مالی", - "مجارستان", - "مراکش", - "مصر", - "مغولستان", - "مقدونیه شمالی", - "مکزیک", - "موریتانی", - "موریس", - "موزامبیک", - "مولداوی", - "موناکو", - "مونته‌نگرو", - "میانمار", - "ایالات فدرال میکرونزی", - "نائورو", - "نامیبیا", - "نپال", - "نروژ", - "نیجریه", - "نیکاراگوئه", - "نیوزیلند", - "واتیکان", - "وانواتو", - "ونزوئلا", - "ویتنام", - "هائیتی", - "هلند", - "هندوراس", - "هند", - "یمن", - "یونان", - ) - - city_formats = ("{{city_prefix}} {{first_name}}",) - street_name_formats = ( - "{{first_name}} {{street_suffix}}", - "{{last_name}} {{street_suffix}}", - ) - street_address_formats = ( - "{{building_number}} {{street_name}}", - "{{building_number}} {{street_name}} {{secondary_address}}", - ) - address_formats = ("{{street_address}}\n{{city}}, {{state}} {{postcode}}",) - secondary_address_formats = ("سوئیت ###", "واحد ###") - - def city_prefix(self) -> str: - return self.random_element(self.city_prefixes) - - def secondary_address(self) -> str: - return self.numerify(self.random_element(self.secondary_address_formats)) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fa_IR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/fa_IR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4ef73de..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/fa_IR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fi_FI/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/fi_FI/__init__.py deleted file mode 100644 index 4b05d39..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/fi_FI/__init__.py +++ /dev/null @@ -1,800 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - building_number_formats = ("###", "##", "#") - - postcode_formats = ("#####",) - - city_formats = ("{{city_name}}",) - - street_name_formats = ("{{street_prefix}}{{street_suffix}}",) - - street_address_formats = ("{{street_name}} {{building_number}}",) - - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - # Data from: - # https://www.avoindata.fi/data/en/dataset/kunnat/resource/b1cb9870-191f-4616-9c53-5388b7ca6beb - cities = ( - "Alajärvi", - "Alavieska", - "Alavus", - "Asikkala", - "Askola", - "Aura", - "Akaa", - "Brändö", - "Eckerö", - "Enonkoski", - "Enontekiö", - "Espoo", - "Eura", - "Eurajoki", - "Evijärvi", - "Finström", - "Forssa", - "Föglö", - "Geta", - "Haapajärvi", - "Haapavesi", - "Hailuoto", - "Halsua", - "Hamina", - "Hammarland", - "Hankasalmi", - "Hanko", - "Harjavalta", - "Hartola", - "Hattula", - "Hausjärvi", - "Heinävesi", - "Helsinki", - "Vantaa", - "Hirvensalmi", - "Hollola", - "Honkajoki", - "Huittinen", - "Humppila", - "Hyrynsalmi", - "Hyvinkää", - "Hämeenkyrö", - "Hämeenlinna", - "Heinola", - "Ii", - "Iisalmi", - "Iitti", - "Ikaalinen", - "Ilmajoki", - "Ilomantsi", - "Inari", - "Inkoo", - "Isojoki", - "Isokyrö", - "Imatra", - "Janakkala", - "Joensuu", - "Jokioinen", - "Jomala", - "Joroinen", - "Joutsa", - "Juuka", - "Juupajoki", - "Juva", - "Jyväskylä", - "Jämijärvi", - "Jämsä", - "Järvenpää", - "Kaarina", - "Kaavi", - "Kajaani", - "Kalajoki", - "Kangasala", - "Kangasniemi", - "Kankaanpää", - "Kannonkoski", - "Kannus", - "Karijoki", - "Karkkila", - "Karstula", - "Karvia", - "Kaskinen", - "Kauhajoki", - "Kauhava", - "Kauniainen", - "Kaustinen", - "Keitele", - "Kemi", - "Keminmaa", - "Kempele", - "Kerava", - "Keuruu", - "Kihniö", - "Kinnula", - "Kirkkonummi", - "Kitee", - "Kittilä", - "Kiuruvesi", - "Kivijärvi", - "Kokemäki", - "Kokkola", - "Kolari", - "Konnevesi", - "Kontiolahti", - "Korsnäs", - "Koski Tl", - "Kotka", - "Kouvola", - "Kristiinankaupunki", - "Kruunupyy", - "Kuhmo", - "Kuhmoinen", - "Kumlinge", - "Kuopio", - "Kuortane", - "Kurikka", - "Kustavi", - "Kuusamo", - "Outokumpu", - "Kyyjärvi", - "Kärkölä", - "Kärsämäki", - "Kökar", - "Kemijärvi", - "Kemiönsaari", - "Lahti", - "Laihia", - "Laitila", - "Lapinlahti", - "Lappajärvi", - "Lappeenranta", - "Lapinjärvi", - "Lapua", - "Laukaa", - "Lemi", - "Lemland", - "Lempäälä", - "Leppävirta", - "Lestijärvi", - "Lieksa", - "Lieto", - "Liminka", - "Liperi", - "Loimaa", - "Loppi", - "Loviisa", - "Luhanka", - "Lumijoki", - "Lumparland", - "Luoto", - "Luumäki", - "Lohja", - "Parainen", - "Maalahti", - "Maarianhamina", - "Marttila", - "Masku", - "Merijärvi", - "Merikarvia", - "Miehikkälä", - "Mikkeli", - "Muhos", - "Multia", - "Muonio", - "Mustasaari", - "Muurame", - "Mynämäki", - "Myrskylä", - "Mäntsälä", - "Mäntyharju", - "Mänttä-Vilppula", - "Naantali", - "Nakkila", - "Nivala", - "Nokia", - "Nousiainen", - "Nurmes", - "Nurmijärvi", - "Närpiö", - "Orimattila", - "Oripää", - "Orivesi", - "Oulainen", - "Oulu", - "Padasjoki", - "Paimio", - "Paltamo", - "Parikkala", - "Parkano", - "Pelkosenniemi", - "Perho", - "Pertunmaa", - "Petäjävesi", - "Pieksämäki", - "Pielavesi", - "Pietarsaari", - "Pedersören kunta", - "Pihtipudas", - "Pirkkala", - "Polvijärvi", - "Pomarkku", - "Pori", - "Pornainen", - "Posio", - "Pudasjärvi", - "Pukkila", - "Punkalaidun", - "Puolanka", - "Puumala", - "Pyhtää", - "Pyhäjoki", - "Pyhäjärvi", - "Pyhäntä", - "Pyhäranta", - "Pälkäne", - "Pöytyä", - "Porvoo", - "Raahe", - "Raisio", - "Rantasalmi", - "Ranua", - "Rauma", - "Rautalampi", - "Rautavaara", - "Rautjärvi", - "Reisjärvi", - "Riihimäki", - "Ristijärvi", - "Rovaniemi", - "Ruokolahti", - "Ruovesi", - "Rusko", - "Rääkkylä", - "Raasepori", - "Saarijärvi", - "Salla", - "Salo", - "Saltvik", - "Sauvo", - "Savitaipale", - "Savonlinna", - "Savukoski", - "Seinäjoki", - "Sievi", - "Siikainen", - "Siikajoki", - "Siilinjärvi", - "Simo", - "Sipoo", - "Siuntio", - "Sodankylä", - "Soini", - "Somero", - "Sonkajärvi", - "Sotkamo", - "Sottunga", - "Sulkava", - "Sund", - "Suomussalmi", - "Suonenjoki", - "Sysmä", - "Säkylä", - "Vaala", - "Sastamala", - "Siikalatva", - "Taipalsaari", - "Taivalkoski", - "Taivassalo", - "Tammela", - "Tampere", - "Tervo", - "Tervola", - "Teuva", - "Tohmajärvi", - "Toholampi", - "Toivakka", - "Tornio", - "Turku", - "Pello", - "Tuusniemi", - "Tuusula", - "Tyrnävä", - "Ulvila", - "Urjala", - "Utajärvi", - "Utsjoki", - "Uurainen", - "Uusikaarlepyy", - "Uusikaupunki", - "Vaasa", - "Valkeakoski", - "Valtimo", - "Varkaus", - "Vehmaa", - "Vesanto", - "Vesilahti", - "Veteli", - "Vieremä", - "Vihti", - "Viitasaari", - "Vimpeli", - "Virolahti", - "Virrat", - "Värdö", - "Vöyri", - "Ylitornio", - "Ylivieska", - "Ylöjärvi", - "Ypäjä", - "Ähtäri", - "Äänekoski", - ) - - countries = ( - "Afganistan", - "Alankomaat", - "Albania", - "Algeria", - "Andorra", - "Angola", - "Antigua ja Barbuda", - "Argentiina", - "Armenia", - "Australia", - "Azerbaidžan", - "Bahama", - "Bahrain", - "Bangladesh", - "Barbados", - "Belgia", - "Belize", - "Benin", - "Bhutan", - "Bolivia", - "Bosnia ja Hertsegovina", - "Botswana", - "Brasilia", - "Brunei", - "Bulgaria", - "Burkina", - "Faso", - "Burundi", - "Chile", - "Costa", - "Rica", - "Djibouti", - "Dominica", - "Dominikaaninen tasavalta", - "Ecuador", - "Egypti", - "El", - "Salvador", - "Eritrea", - "Espanja", - "Etelä-Afrikka", - "Korean tasavalta", - "Etelä-Sudan", - "Etiopia", - "Fidži", - "Filippiinit", - "Gabon", - "Gambia", - "Georgia", - "Ghana", - "Grenada", - "Guatemala", - "Guinea-Bissau", - "Guinea", - "Guyana", - "Haiti", - "Honduras", - "Indonesia", - "Intia", - "Irak", - "Iran", - "Irlanti", - "Islanti", - "Israel", - "Italia", - "Itä-Timor", - "Itävalta", - "Jamaika", - "Japani", - "Jemen", - "Jordania", - "Kambodža", - "Kamerun", - "Kanada", - "Kap", - "Verde", - "Kazakstan", - "Kenia", - "Keski-Afrikan tasavalta", - "Kiina", - "Kirgisia", - "Kiribati", - "Kolumbia", - "Komorit", - "Kongon demokraattinen tasavalta", - "Kongon tasavalta", - "Kosovo", - "Kreikka", - "Kroatia", - "Kuuba", - "Kuwait", - "Kypros", - "Laos", - "Latvia", - "Lesotho", - "Libanon", - "Liberia", - "Libya", - "Liechtenstein", - "Liettua", - "Luxemburg", - "Madagaskar", - "Malawi", - "Malediivit", - "Malesia", - "Mali", - "Malta", - "Marokko", - "Marshallinsaaret", - "Mauritania", - "Mauritius", - "Meksiko", - "Mikronesia", - "Moldova", - "Monaco", - "Mongolia", - "Montenegro", - "Mosambik", - "Myanmar", - "Namibia", - "Nauru", - "Nepal", - "Nicaragua", - "Nigeria", - "Niger", - "Norja", - "Norsunluurannikko", - "Oman", - "Pakistan", - "Palau", - "Panama", - "Papua-Uusi-Guinea", - "Paraguay", - "Peru", - "Pohjois-Makedonia", - "Korean demokraattinen kansantasavalta", - "Portugali", - "Puola", - "Päiväntasaajan Guinea", - "Qatar", - "Ranska", - "Romania", - "Ruanda", - "Ruotsi", - "Saint Kitts ja Nevis", - "Saint Lucia", - "Saint Vincent ja Grenadiinit", - "Saksa", - "Salomonsaaret", - "Sambia", - "Samoa", - "San Marino", - "São Tomé ja Príncipe", - "Saudi-Arabia", - "Senegal", - "Serbia", - "Seychellit", - "Sierra", - "Leone", - "Singapore", - "Slovakia", - "Slovenia", - "Somalia", - "Sri", - "Lanka", - "Sudan", - "Suomi", - "Suriname", - "Swazimaa", - "Sveitsi", - "Syyria", - "Tadžikistan", - "Tansania", - "Tanska", - "Thaimaa", - "Togo", - "Tonga", - "Trinidad ja Tobago", - "Tšad", - "Tšekki", - "Tunisia", - "Turkki", - "Turkmenistan", - "Tuvalu", - "Uganda", - "Ukraina", - "Unkari", - "Uruguay", - "Uusi-Seelanti", - "Uzbekistan", - "Valko-Venäjä", - "Vanuatu", - "Vatikaanivaltio", - "Venezuela", - "Venäjä", - "Vietnam", - "Viro", - "Yhdistyneet arabiemiirikunnat", - "Yhdistynyt kuningaskunta", - "Yhdysvallat", - "Zimbabwe", - ) - - # Data from Finnish legislation: - # https://www.finlex.fi/fi/laki/alkup/2019/20190978 - states = ( - "Ahvenanmaa", - "Etelä-Karjala", - "Etelä-Pohjanmaa", - "Etelä-Savo", - "Kainuu", - "Kanta-Häme", - "Keski-Pohjanmaa", - "Keski-Suomi", - "Kymenlaakso", - "Lappi", - "Pirkanmaa", - "Pohjanmaa", - "Pohjois-Karjala", - "Pohjois-Pohjanmaa", - "Pohjois-Savo", - "Päijät-Häme", - "Satakunta", - "Uusimaa", - "Varsinais-Suomi", - ) - - street_suffixes = ("tie", "katu", "polku", "kuja", "bulevardi") - - # Prefixes parsed from a street list of Helsinki: - # http://kartta.hel.fi/ws/geoserver/avoindata/wfs?outputFormat=application/json&REQUEST=GetFeature&typeNames=avoindata:Helsinki_osoiteluettelo - - street_prefixes = ( - "Adolf Lindforsin ", - "Agnes Sjöbergin ", - "Agnetan", - "Agricolan", - "Ahomäen", - "Ahvenkosken", - "Aidasmäen", - "Agroksen", - "Agronomin", - "Ahdekaunokin", - "Bertel Jungin ", - "Bertha Pauligin ", - "Betlehemin", - "Betoni", - "Biologin", - "Birger Kaipiaisen ", - "Bysantin", - "Böstaksen", - "Bengalin", - "Benktan", - "Bergan", - "Caloniuksen", - "Capellan puisto", - "Castrénin", - "Chydeniuksen", - "Cygnaeuksen", - "Dagmarin", - "Damaskuksen", - "Degermosan", - "Disan", - "Dosentin", - "Dunckerin", - "Döbelnin", - "Ehrensvärdin", - "Eino Leinon ", - "Elimäen", - "Elisabeth Kochin ", - "Eljaksen", - "Elon", - "Elon", - "Edelfeltin", - "Eduskunta", - "Eerik Pyhän ", - "Franzénin", - "Fredrikin", - "Freesen", - "Fabianin", - "Fagotti", - "Fahlanderin puisto", - "Fallin", - "Fallkullan", - "Fallpakan", - "Fastbölen", - "Gadolinin", - "Gneissi", - "Granfeltin", - "Gunillan", - "Gunnel Nymanin ", - "Graniitti", - "Gustav Pauligin ", - "Gyldénin", - "Gotlannin", - "Haapa", - "Haagan pappilan", - "Haahka", - "Haakoninlahden", - "Haaksi", - "Hankasuon", - "Hannukselan", - "Harakkamyllyn", - "Harava", - "Harbon", - "Ilmattaren", - "Ilomäen", - "Ilotulitus", - "Iltaruskon", - "Iltatähden", - "Ilves", - "Immolan", - "Ilkan", - "Ida Ekmanin ", - "Ies", - "Jälsi", - "Jämsän", - "Jänkä", - "Jänne", - "Järkäle", - "Jätkäsaaren", - "Jättiläisen", - "Jyvä", - "Jägerhornin", - "Jäkälä", - "Kukkaniityn", - "Kolsin", - "Kolu", - "Kolvi", - "Kuhankeittäjän", - "Katajaharjun", - "Kiitäjän", - "Kilpolan", - "Kimalais", - "Kimmon", - "Laajasalon", - "Laakavuoren", - "Lemun", - "Lentokapteenin ", - "Lepolan", - "Louhen", - "Louhikko", - "Lukkarimäen", - "Laurinniityn", - "Lautamiehen", - "Mamsellimyllyn", - "Mannerheimin", - "Maanmittarin", - "Maapadon", - "Maa", - "Maasalon", - "Maasälvän", - "Maatullin", - "Malminkartanon", - "Maneesi", - "Niittylän", - "Niemi", - "Niitynperän", - "Nikon", - "Nils Westermarckin ", - "Nordenskiöldin", - "Nelikko", - "Neon", - "Nervanderin", - "Neulapadon", - "Ostos", - "Orapihlaja", - "Oras", - "Orava", - "Osmon", - "Osuuskunnan", - "Orisaaren", - "Ormus", - "Orvokki", - "Oterman", - "Pore", - "Porin", - "Porkkalan", - "Pyörökiven", - "Puusepän", - "Puuska", - "Pohjolan", - "Poikasaarten", - "Purjetuulen", - "Puroniityn", - "Rukkilan", - "Ruko", - "Rukoushuoneen", - "Runebergin", - "Runoilijan", - "Runokylän", - "Runonlaulajan", - "Rantavaraston", - "Rapakiven", - "Rapolan", - "Santerlan", - "Saparon", - "Sapilas", - "Saramäen", - "Saanatunturin", - "Sade", - "Sahaajan", - "Salakka", - "Salama", - "Salava", - "Tuomarinkylän", - "Tuulilasin", - "Taavetti Laitisen ", - "Taavin", - "Tahti", - "Taimiston", - "Tukkisillan", - "Tuohikoivun", - "Tyynelän", - "Tyynylaavan", - "Uussillan", - "Urheilu", - "Urkurin", - "Urpu", - "Uskalikon", - "Usva", - "Uudenkaupungin", - "Uunilinnun", - "Uunisepän", - "Uurtajan", - "Vanha Raja", - "Veropellon", - "Veräjämäen", - "Vesakko", - "Vesalan", - "Vellikellon", - "Verkko", - "Verso", - "Vaakalinnun", - "Vaarna", - "Wavulinin", - "Walentin Chorellin ", - "Wallinin", - "Waseniuksen puisto", - "Wecksellin", - "Willebrandin", - "Winqvistin", - "Wäinö Aaltosen ", - "Werner Wirénin ", - "Yhteiskoulun", - "Ylipalon", - "Yllästunturin", - "Ylä-Fallin ", - "Yläkasken", - "Ylänkö", - "Ylätuvan", - "Yrjö-Koskisen ", - "Yrjön", - "Yrttimaan", - "Zaidan", - ) - - def street_prefix(self) -> str: - return self.random_element(self.street_prefixes) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fi_FI/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/fi_FI/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e2f3437..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/fi_FI/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fil_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/fil_PH/__init__.py deleted file mode 100644 index da54e58..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/fil_PH/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from ..en_PH import Provider as EnPhAddressProvider - - -class Provider(EnPhAddressProvider): - """No difference from Address Provider for en_PH locale""" - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fil_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/fil_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f71e9a6..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/fil_PH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CA/__init__.py deleted file mode 100644 index 40a5ba1..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CA/__init__.py +++ /dev/null @@ -1,81 +0,0 @@ -from typing import Any - -from ..en_CA import Provider as EnCaProvider - - -class Provider(EnCaProvider): - # Most of the parts are identical to en_CA, we simply override those who are not shared between the two. - - city_prefixes = ( - "Ville", - "Baie", - "Saint-", - "Sainte-", - "Mont-", - "La", - "Lac-", - "L'", - "L'Île-", - ) - - city_suffixes = ( - "Est", - "Ouest", - "-sur-Mer", - ) - - street_prefixes = ( - "rue", - "rue", - "chemin", - "avenue", - "boulevard", - "route", - "rang", - "allé", - "montée", - ) - - provinces = ( - "Alberta", - "Colombie-Britannique", - "Manitoba", - "Nouveau-Brunswick", - "Terre-Neuve-et-Labrador", - "Territoires du Nord-Ouest", - "Nouvelle-Écosse", - "Nunavut", - "Ontario", - "Île-du-Prince-Édouard", - "Québec", - "Saskatchewan", - "Yukon", - ) - - street_name_formats = ( - "{{street_prefix}} {{first_name}}", - "{{street_prefix}} {{last_name}}", - ) - - city_formats = ( - "{{city_prefix}} {{last_name}}", - "{{city_prefix}} {{last_name}}", - "{{city_prefix}}-{{city_prefix}}-{{last_name}}", - "{{city_prefix}} {{first_name}} {{city_suffix}}", - "{{city_prefix}} {{first_name}}", - "{{city_prefix}} {{first_name}}", - "{{city_prefix}} {{first_name}}", - "{{last_name}}", - "{{last_name}}", - "{{first_name}} {{city_suffix}}", - "{{last_name}} {{city_suffix}}", - ) - - def __init__(self, *args: Any, **kwargs: Any) -> None: - super().__init__(*args, **kwargs) - - def street_prefix(self) -> str: - """ - :example: 'rue' - """ - return self.random_element(self.street_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f66e91e..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CA/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CH/__init__.py deleted file mode 100644 index 8899604..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CH/__init__.py +++ /dev/null @@ -1,367 +0,0 @@ -from typing import Tuple - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_suffixes = ( - "-des-Bois", - "-les-Bains", - "-la-Ville", - "-Dessus", - "-Dessous", - " am Rhein", - " am See", - " am Albis", - " an der Aare", - ) - city_prefixes = ("Saint ", "Sainte ", "San ", "Ober", "Unter") - street_prefixes = ("rue", "rue", "chemin", "avenue", "boulevard") - - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - building_number_formats = ("%", "%#", "%#", "%#", "%##") - - city_formats = ( - "{{last_name}}", - "{{last_name}}", - "{{last_name}}", - "{{last_name}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}-près-{{last_name}}", - "{{last_name}}-sur-{{last_name}}", - "{{city_prefix}}{{last_name}}", - "{{last_name}} ({{canton_code}})", - ) - - street_address_formats = ( - "{{street_name}}", - "{{street_name}} {{building_number}}", - "{{street_name}} {{building_number}}", - "{{street_name}} {{building_number}}", - "{{street_name}} {{building_number}}", - "{{street_name}} {{building_number}}", - ) - street_name_formats = ( - "{{street_prefix}} {{last_name}}", - "{{street_prefix}} {{first_name}} {{last_name}}", - "{{street_prefix}} de {{last_name}}", - ) - - postcode_formats = ( - "1###", - "2###", - "3###", - "4###", - "5###", - "6###", - "7###", - "8###", - "9###", - ) - - cantons = ( - ("AG", "Argovie"), - ("AI", "Appenzell Rhodes-Intérieures"), - ("AR", "Appenzell Rhodes-Extérieures"), - ("BE", "Berne"), - ("BL", "Bâle-Campagne"), - ("BS", "Bâle-Ville"), - ("FR", "Fribourg"), - ("GE", "Genève"), - ("GL", "Glaris"), - ("GR", "Grisons"), - ("JU", "Jura"), - ("LU", "Lucerne"), - ("NE", "Neuchâtel"), - ("NW", "Nidwald"), - ("OW", "Obwald"), - ("SG", "Saint-Gall"), - ("SH", "Schaffhouse"), - ("SO", "Soleure"), - ("SZ", "Schwytz"), - ("TG", "Thurgovie"), - ("TI", "Tessin"), - ("UR", "Uri"), - ("VD", "Vaud"), - ("VS", "Valais"), - ("ZG", "Zoug"), - ("ZH", "Zurich"), - ) - - countries = ( - "Afghanistan", - "Afrique du sud", - "Albanie", - "Algérie", - "Allemagne", - "Andorre", - "Angola", - "Anguilla", - "Antarctique", - "Antigua et Barbuda", - "Antilles néerlandaises", - "Arabie saoudite", - "Argentine", - "Arménie", - "Aruba", - "Australie", - "Autriche", - "Azerbaïdjan", - "Bahamas", - "Bahrain", - "Bangladesh", - "Belgique", - "Belize", - "Benin", - "Bermudes (Les)", - "Bhoutan", - "Biélorussie", - "Bolivie", - "Bosnie-Herzégovine", - "Botswana", - "Bouvet (Îles)", - "Brunei", - "Brésil", - "Bulgarie", - "Burkina Faso", - "Burundi", - "Cambodge", - "Cameroun", - "Canada", - "Cap Vert", - "Cayman (Îles)", - "Chili", - "Chine (Rép. pop.)", - "Christmas (Île)", - "Chypre", - "Cocos (Îles)", - "Colombie", - "Comores", - "Cook (Îles)", - "Corée du Nord", - "Corée, Sud", - "Costa Rica", - "Croatie", - "Cuba", - "Côte d'Ivoire", - "Danemark", - "Djibouti", - "Dominique", - "Égypte", - "El Salvador", - "Émirats arabes unis", - "Équateur", - "Érythrée", - "Espagne", - "Estonie", - "États-Unis", - "Ethiopie", - "Falkland (Île)", - "Fidji (République des)", - "Finlande", - "France", - "Féroé (Îles)", - "Gabon", - "Gambie", - "Ghana", - "Gibraltar", - "Grenade", - "Groenland", - "Grèce", - "Guadeloupe", - "Guam", - "Guatemala", - "Guinée", - "Guinée Equatoriale", - "Guinée-Bissau", - "Guyane", - "Guyane française", - "Géorgie", - "Géorgie du Sud et Sandwich du Sud (Îles)", - "Haïti", - "Heard et McDonald (Îles)", - "Honduras", - "Hong Kong", - "Hongrie", - "Îles Mineures Éloignées des États-Unis", - "Inde", - "Indonésie", - "Irak", - "Iran", - "Irlande", - "Islande", - "Israël", - "Italie", - "Jamaïque", - "Japon", - "Jordanie", - "Kazakhstan", - "Kenya", - "Kirghizistan", - "Kiribati", - "Koweit", - "La Barbad", - "Laos", - "Lesotho", - "Lettonie", - "Liban", - "Libye", - "Libéria", - "Liechtenstein", - "Lithuanie", - "Luxembourg", - "Macau", - "Macédoine du Nord", - "Madagascar", - "Malaisie", - "Malawi", - "Maldives (Îles)", - "Mali", - "Malte", - "Mariannes du Nord (Îles)", - "Maroc", - "Marshall (Îles)", - "Martinique", - "Maurice", - "Mauritanie", - "Mayotte", - "Mexique", - "Micronésie (États fédérés de)", - "Moldavie", - "Monaco", - "Mongolie", - "Montserrat", - "Mozambique", - "Myanmar", - "Namibie", - "Nauru", - "Nepal", - "Nicaragua", - "Niger", - "Nigeria", - "Niue", - "Norfolk (Îles)", - "Norvège", - "Nouvelle Calédonie", - "Nouvelle-Zélande", - "Oman", - "Ouganda", - "Ouzbékistan", - "Pakistan", - "Palau", - "Panama", - "Papouasie-Nouvelle-Guinée", - "Paraguay", - "Pays-Bas", - "Philippines", - "Pitcairn (Îles)", - "Pologne", - "Polynésie française", - "Porto Rico", - "Portugal", - "Pérou", - "Qatar", - "Roumanie", - "Royaume-Uni", - "Russie", - "Rwanda", - "Rép. Dém. du Congo", - "République centrafricaine", - "République Dominicaine", - "République tchèque", - "Réunion (La)", - "Sahara Occidental", - "Saint Pierre et Miquelon", - "Saint Vincent et les Grenadines", - "Saint-Kitts et Nevis", - "Saint-Marin (Rép. de)", - "Sainte Hélène", - "Sainte Lucie", - "Samoa", - "Samoa", - "Seychelles", - "Sierra Leone", - "Singapour", - "Slovaquie", - "Slovénie", - "Somalie", - "Soudan", - "Sri Lanka", - "Suisse", - "Suriname", - "Suède", - "Svalbard et Jan Mayen (Îles)", - "Swaziland", - "Syrie", - "São Tomé et Príncipe (Rép.)", - "Sénégal", - "Tadjikistan", - "Taiwan", - "Tanzanie", - "Tchad", - "Territoire britannique de l'océan Indien", - "Territoires français du sud", - "Thailande", - "Timor", - "Togo", - "Tokelau", - "Tonga", - "Trinité et Tobago", - "Tunisie", - "Turkménistan", - "Turks et Caïques (Îles)", - "Turquie", - "Tuvalu", - "Ukraine", - "Uruguay", - "Vanuatu", - "Vatican (Etat du)", - "Venezuela", - "Vierges (Îles)", - "Vierges britanniques (Îles)", - "Vietnam", - "Wallis et Futuna (Îles)", - "Yemen", - "Yougoslavie", - "Zambie", - "Zaïre", - "Zimbabwe", - ) - - def street_prefix(self) -> str: - """ - :example: 'rue' - """ - return self.random_element(self.street_prefixes) - - def city_prefix(self) -> str: - """ - :example: 'rue' - """ - return self.random_element(self.city_prefixes) - - def canton(self) -> Tuple[str, str]: - """ - Randomly returns a swiss canton ('Abbreviated' , 'Name'). - :example: ('VD' . 'Vaud') - """ - return self.random_element(self.cantons) - - def administrative_unit(self) -> str: - """ - Randomly returns a Swiss canton name. - :example: 'Vaud' - """ - return self.canton()[1] - - canton_name = administrative_unit - - def canton_code(self) -> str: - """ - Randomly returns a Swiss canton code. - :example: 'VD' - """ - return self.canton()[0] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 8b3c3e6..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_DZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/fr_DZ/__init__.py deleted file mode 100644 index b93b028..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_DZ/__init__.py +++ /dev/null @@ -1,355 +0,0 @@ -from typing import Tuple - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - """Address provider for fr_DZ locale.""" - - # Source: https://fr.wikipedia.org/wiki/Wilayas_d%27Alg%C3%A9rie - wilayas: Tuple[str, ...] = ( - "Adrar", - "Chlef", - "Laghouat", - "Oum El Bouaghi", - "Batna", - "Béjaïa", - "Biskra", - "Béchar", - "Blida", - "Bouira", - "Tamanrasset", - "Tébessa", - "Tlemcen", - "Tiaret", - "Tizi Ouzou", - "Alger", - "Djelfa", - "Jijel", - "Sétif", - "Saïda", - "Skikda", - "Sidi Bel Abbès", - "Annaba", - "Guelma", - "Constantine", - "Médéa", - "Mostaganem", - "M'Sila", - "Mascara", - "Ouargla", - "Oran", - "El Bayadh", - "Illizi", - "Bordj Bou Arreridj", - "Boumerdès", - "El Tarf", - "Tindouf", - "Tissemsilt", - "El Oued", - "Khenchela", - "Souk Ahras", - "Tipaza", - "Mila", - "Aïn Defla", - "Naâma", - "Aïn Témouchent", - "Ghardaïa", - "Relizane", - "Timimoun", - "Bordj Badji Mokhtar", - "Ouled Djellal", - "Béni Abbès", - "In Salah", - "In Guezzam", - "Touggourt", - "Djanet", - "El Meghaier", - "El Menia", - ) - - # Source: https://github.com/othmanus/algeria-cities - cities: Tuple[str, ...] = ( - # Wilaya 01 - Adrar - "Adrar", - "Reggane", - "Aoulef", - "Timimoun", - # Wilaya 02 - Chlef - "Chlef", - "Ténès", - "Boukadir", - # Wilaya 03 - Laghouat - "Laghouat", - "Aflou", - "Aïn Madhi", - # Wilaya 04 - Oum El Bouaghi - "Oum El Bouaghi", - "Aïn Mlila", - "Aïn Beïda", - # Wilaya 05 - Batna - "Batna", - "Barika", - "Aïn Touta", - "Arris", - "N'Gaous", - # Wilaya 06 - Béjaïa - "Béjaïa", - "Akbou", - "Kherrata", - "Taklast", - "Amizour", - # Wilaya 07 - Biskra - "Biskra", - "Tolga", - "Sidi Okba", - "Zéribet El Oued", - # Wilaya 08 - Béchar - "Béchar", - "Taghit", - "Kenadsa", - # Wilaya 09 - Blida - "Blida", - "Boufarik", - "Larbaa", - "Bouinan", - # Wilaya 10 - Bouira - "Bouira", - "Sour El Ghozlane", - "Aïn Bessem", - # Wilaya 11 - Tamanrasset - "Tamanrasset", - "Ablessa", - # Wilaya 12 - Tébessa - "Tébessa", - "Bir El Ater", - "El Aouinet", - # Wilaya 13 - Tlemcen - "Tlemcen", - "Maghnia", - "Ghazaouet", - "Nedroma", - "Marsa Ben M'Hidi", - # Wilaya 14 - Tiaret - "Tiaret", - "Sougueur", - "Frenda", - "Takhmaret", - # Wilaya 15 - Tizi Ouzou - "Tizi Ouzou", - "Draa Ben Khedda", - "Azeffoun", - "Boughni", - "Tigzirt", - # Wilaya 16 - Alger - "Alger Centre", - "Bab El Oued", - "La Casbah", - "Sidi M'Hamed", - "Hussein Dey", - "El Harrach", - "Rouiba", - "Zéralda", - "Bir Mourad Raïs", - "Bouzaréah", - "Chéraga", - "Draria", - "Bab Ezzouar", - "Bordj El Kiffan", - "Dar El Beïda", - "Aïn Taya", - # Wilaya 17 - Djelfa - "Djelfa", - "Messaad", - "Aïn Oussera", - "Hassi Bahbah", - # Wilaya 18 - Jijel - "Jijel", - "El Milia", - "Taher", - "Ziama Mansouriah", - # Wilaya 19 - Sétif - "Sétif", - "El Eulma", - "Djemila", - "Aïn Arnat", - "Bougaa", - # Wilaya 20 - Saïda - "Saïda", - "Aïn El Hadjar", - # Wilaya 21 - Skikda - "Skikda", - "Azzaba", - "El Harrouch", - "Collo", - # Wilaya 22 - Sidi Bel Abbès - "Sidi Bel Abbès", - "Aïn El Berd", - "Marhoum", - "Tlemnia", - # Wilaya 23 - Annaba - "Annaba", - "El Bouni", - "Aïn Berda", - "Sidi Amar", - # Wilaya 24 - Guelma - "Guelma", - "Bouchegouf", - "Hammam Debagh", - # Wilaya 25 - Constantine - "Constantine", - "El Khroub", - "Didouche Mourad", - "Zighoud Youcef", - "Aïn Abid", - # Wilaya 26 - Médéa - "Médéa", - "Ksar El Boukhari", - "Berrouaghia", - "Boughzoul", - # Wilaya 27 - Mostaganem - "Mostaganem", - "Sidi Ali", - "Aïn Tédeles", - "Mazagran", - # Wilaya 28 - M'Sila - "M'Sila", - "Bou Saâda", - "Sidi Aïssa", - "Aïn El Melh", - # Wilaya 29 - Mascara - "Mascara", - "Tighennif", - "Bouhanifia", - "Sig", - # Wilaya 30 - Ouargla - "Ouargla", - "Hassi Messaoud", - "Aïn El Beïda", - # Wilaya 31 - Oran - "Oran", - "Arzew", - "Aïn El Turk", - "Bir El Djir", - "Mers El Hadjadj", - "Es Sénia", - # Wilaya 32 - El Bayadh - "El Bayadh", - "Brezina", - # Wilaya 33 - Illizi - "Illizi", - "In Amenas", - # Wilaya 34 - Bordj Bou Arreridj - "Bordj Bou Arreridj", - "Ras El Oued", - "Aïn Taghrout", - # Wilaya 35 - Boumerdès - "Boumerdès", - "Khemis El Khechna", - "Bordj Menaïel", - "Dellys", - # Wilaya 36 - El Tarf - "El Tarf", - "El Kala", - "Ben M'Hidi", - # Wilaya 37 - Tindouf - "Tindouf", - # Wilaya 38 - Tissemsilt - "Tissemsilt", - "Khemisti", - # Wilaya 39 - El Oued - "El Oued", - "Guemar", - "Hassi Khalifa", - "Reguiba", - # Wilaya 40 - Khenchela - "Khenchela", - "Babar", - # Wilaya 41 - Souk Ahras - "Souk Ahras", - "Mdaourouch", - "Sedrata", - # Wilaya 42 - Tipaza - "Tipaza", - "Cherchell", - "Bou Ismaïl", - "Koléa", - # Wilaya 43 - Mila - "Mila", - "Ferdjioua", - "Chelghoum Laïd", - # Wilaya 44 - Aïn Defla - "Aïn Defla", - "Khemis Miliana", - "El Attaf", - "Miliana", - # Wilaya 45 - Naâma - "Naâma", - "Mecheria", - "Aïn Sefra", - # Wilaya 46 - Aïn Témouchent - "Aïn Témouchent", - "Béni Saf", - "Hammam Bou Hadjar", - # Wilaya 47 - Ghardaïa - "Ghardaïa", - "Guerrara", - "Metlili", - "El Atteuf", - # Wilaya 48 - Relizane - "Relizane", - "Mazouna", - "Oued Rhiou", - # New wilayas - "Timimoun", - "Bordj Badji Mokhtar", - "Ouled Djellal", - "Béni Abbès", - "In Salah", - "In Guezzam", - "Touggourt", - "Djanet", - "El Meghaier", - "El Menia", - ) - - street_prefixes: Tuple[str, ...] = ( - "rue", - "avenue", - "boulevard", - "chemin", - ) - - building_number_formats: Tuple[str, ...] = ("%", "%#", "%#", "%##") - - postcode_formats: Tuple[str, ...] = tuple(f"{i:02d}###" for i in range(1, 49)) - - street_name_formats: Tuple[str, ...] = ( - "{{street_prefix}} {{last_name}}", - "{{street_prefix}} {{first_name}} {{last_name}}", - "{{street_prefix}} de {{last_name}}", - ) - - street_address_formats: Tuple[str, ...] = ( - "{{building_number}} {{street_name}}", - "{{building_number}}, {{street_name}}", - ) - - address_formats: Tuple[str, ...] = ( - "{{street_address}} {{city}}", - "{{street_address}} - {{city}}", - "{{street_address}} {{city}}, {{administrative_unit}}", - "{{street_address}}, {{city}}, {{administrative_unit}}", - "{{street_address}} {{city}} - {{administrative_unit}}", - ) - - def street_prefix(self) -> str: - return self.random_element(self.street_prefixes) - - def city(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.wilayas) - - wilaya = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_DZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/fr_DZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index cb5d331..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_DZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_FR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/fr_FR/__init__.py deleted file mode 100644 index 2ee2330..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_FR/__init__.py +++ /dev/null @@ -1,478 +0,0 @@ -from typing import Tuple - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_suffixes = ( - "Ville", - "Bourg", - "-les-Bains", - "-sur-Mer", - "-la-Forêt", - "boeuf", - "nec", - "dan", - ) - city_prefixes = ("Saint", "Sainte") - street_prefixes = ("rue", "rue", "chemin", "avenue", "boulevard") - city_formats = ( - "{{city_prefix}} {{first_name}}", - "{{city_prefix}} {{first_name}}{{city_suffix}}", - "{{last_name}}", - "{{last_name}}", - "{{last_name}}", - "{{last_name}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}-sur-{{last_name}}", - ) - street_name_formats = ( - "{{street_prefix}} {{last_name}}", - "{{street_prefix}} {{first_name}} {{last_name}}", - "{{street_prefix}} de {{last_name}}", - ) - - street_address_formats = ( - "{{street_name}}", - "{{building_number}}, {{street_name}}", - "{{building_number}}, {{street_name}}", - "{{building_number}}, {{street_name}}", - "{{building_number}}, {{street_name}}", - "{{building_number}}, {{street_name}}", - ) - - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - building_number_formats = ("%", "%#", "%#", "%#", "%##") - countries = ( - "Afghanistan", - "Afrique du sud", - "Albanie", - "Algérie", - "Allemagne", - "Andorre", - "Angola", - "Anguilla", - "Antarctique", - "Antigua et Barbuda", - "Antilles néerlandaises", - "Arabie saoudite", - "Argentine", - "Arménie", - "Aruba", - "Australie", - "Autriche", - "Azerbaïdjan", - "Bahamas", - "Bahrain", - "Bangladesh", - "Belgique", - "Belize", - "Benin", - "Bermudes (Les)", - "Bhoutan", - "Biélorussie", - "Bolivie", - "Bosnie-Herzégovine", - "Botswana", - "Bouvet (Îles)", - "Brunei", - "Brésil", - "Bulgarie", - "Burkina Faso", - "Burundi", - "Cambodge", - "Cameroun", - "Canada", - "Cap Vert", - "Cayman (Îles)", - "Chili", - "Chine (Rép. pop.)", - "Christmas (Île)", - "Chypre", - "Cocos (Îles)", - "Colombie", - "Comores", - "Cook (Îles)", - "Corée du Nord", - "Corée, Sud", - "Costa Rica", - "Croatie", - "Cuba", - "Côte d'Ivoire", - "Danemark", - "Djibouti", - "Dominique", - "Égypte", - "El Salvador", - "Émirats arabes unis", - "Équateur", - "Érythrée", - "Espagne", - "Estonie", - "États-Unis", - "Ethiopie", - "Falkland (Île)", - "Fidji (République des)", - "Finlande", - "France", - "Féroé (Îles)", - "Gabon", - "Gambie", - "Ghana", - "Gibraltar", - "Grenade", - "Groenland", - "Grèce", - "Guadeloupe", - "Guam", - "Guatemala", - "Guinée", - "Guinée Equatoriale", - "Guinée-Bissau", - "Guyane", - "Guyane française", - "Géorgie", - "Géorgie du Sud et Sandwich du Sud (Îles)", - "Haïti", - "Heard et McDonald (Îles)", - "Honduras", - "Hong Kong", - "Hongrie", - "Îles Mineures Éloignées des États-Unis", - "Inde", - "Indonésie", - "Irak", - "Iran", - "Irlande", - "Islande", - "Israël", - "Italie", - "Jamaïque", - "Japon", - "Jordanie", - "Kazakhstan", - "Kenya", - "Kirghizistan", - "Kiribati", - "Koweit", - "La Barbad", - "Laos", - "Lesotho", - "Lettonie", - "Liban", - "Libye", - "Libéria", - "Liechtenstein", - "Lithuanie", - "Luxembourg", - "Macau", - "Macédoine du Nord", - "Madagascar", - "Malaisie", - "Malawi", - "Maldives (Îles)", - "Mali", - "Malte", - "Mariannes du Nord (Îles)", - "Maroc", - "Marshall (Îles)", - "Martinique", - "Maurice", - "Mauritanie", - "Mayotte", - "Mexique", - "Micronésie (États fédérés de)", - "Moldavie", - "Monaco", - "Mongolie", - "Montserrat", - "Mozambique", - "Myanmar", - "Namibie", - "Nauru", - "Nepal", - "Nicaragua", - "Niger", - "Nigeria", - "Niue", - "Norfolk (Îles)", - "Norvège", - "Nouvelle Calédonie", - "Nouvelle-Zélande", - "Oman", - "Ouganda", - "Ouzbékistan", - "Pakistan", - "Palau", - "Panama", - "Papouasie-Nouvelle-Guinée", - "Paraguay", - "Pays-Bas", - "Philippines", - "Pitcairn (Îles)", - "Pologne", - "Polynésie française", - "Porto Rico", - "Portugal", - "Pérou", - "Qatar", - "Roumanie", - "Royaume-Uni", - "Russie", - "Rwanda", - "Rép. Dém. du Congo", - "République centrafricaine", - "République Dominicaine", - "République tchèque", - "Réunion (La)", - "Sahara Occidental", - "Saint Pierre et Miquelon", - "Saint Vincent et les Grenadines", - "Saint-Kitts et Nevis", - "Saint-Marin (Rép. de)", - "Sainte Hélène", - "Sainte Lucie", - "Samoa", - "Samoa", - "Seychelles", - "Sierra Leone", - "Singapour", - "Slovaquie", - "Slovénie", - "Somalie", - "Soudan", - "Sri Lanka", - "Suisse", - "Suriname", - "Suède", - "Svalbard et Jan Mayen (Îles)", - "Swaziland", - "Syrie", - "São Tomé et Príncipe (Rép.)", - "Sénégal", - "Tadjikistan", - "Taiwan", - "Tanzanie", - "Tchad", - "Territoire britannique de l'océan Indien", - "Territoires français du sud", - "Thailande", - "Timor", - "Togo", - "Tokelau", - "Tonga", - "Trinité et Tobago", - "Tunisie", - "Turkménistan", - "Turks et Caïques (Îles)", - "Turquie", - "Tuvalu", - "Ukraine", - "Uruguay", - "Vanuatu", - "Vatican (Etat du)", - "Venezuela", - "Vierges (Îles)", - "Vierges britanniques (Îles)", - "Vietnam", - "Wallis et Futuna (Îles)", - "Yemen", - "Yougoslavie", - "Zambie", - "Zaïre", - "Zimbabwe", - ) - regions = ( - "Alsace", - "Aquitaine", - "Auvergne", - "Bourgogne", - "Bretagne", - "Centre", - "Champagne-Ardenne", - "Corse", - "Franche-Comté", - "Île-de-France", - "Languedoc-Roussillon", - "Limousin", - "Lorraine", - "Midi-Pyrénées", - "Nord-Pas-de-Calais", - "Basse-Normandie", - "Haute-Normandie", - "Pays-de-Loire", - "Picardie", - "Poitou-Charentes", - "Province-Alpes-Côte d'Azur", - "Rhone-Alpes", - "Guadeloupe", - "Martinique", - "Guyane", - "Réunion", - "Saint-Pierre-et-Miquelon", - "Mayotte", - "Saint-Barthélémy", - "Saint-Martin", - "Wallis-et-Futuna", - "Polynésie française", - "Nouvelle-Calédonie", - ) - - departments = ( - ("01", "Ain"), - ("02", "Aisne"), - ("03", "Allier"), - ("04", "Alpes-de-Haute-Provence"), - ("05", "Hautes-Alpes"), - ("06", "Alpes-Maritimes"), - ("07", "Ardèche"), - ("08", "Ardennes"), - ("09", "Ariège"), - ("10", "Aube"), - ("11", "Aude"), - ("12", "Aveyron"), - ("13", "Bouches-du-Rhône"), - ("14", "Calvados"), - ("15", "Cantal"), - ("16", "Charente"), - ("17", "Charente-Maritime"), - ("18", "Cher"), - ("19", "Corrèze"), - ("2A", "Corse-du-Sud"), - ("2B", "Haute-Corse"), - ("21", "Côte-d'Or"), - ("22", "Côtes-d'Armor"), - ("23", "Creuse"), - ("24", "Dordogne"), - ("25", "Doubs"), - ("26", "Drôme"), - ("27", "Eure"), - ("28", "Eure-et-Loir"), - ("29", "Finistère"), - ("30", "Gard"), - ("31", "Haute-Garonne"), - ("32", "Gers"), - ("33", "Gironde"), - ("34", "Hérault"), - ("35", "Ille-et-Vilaine"), - ("36", "Indre"), - ("37", "Indre-et-Loire"), - ("38", "Isère"), - ("39", "Jura"), - ("40", "Landes"), - ("41", "Loir-et-Cher"), - ("42", "Loire"), - ("43", "Haute-Loire"), - ("44", "Loire-Atlantique"), - ("45", "Loiret"), - ("46", "Lot"), - ("47", "Lot-et-Garonne"), - ("48", "Lozère"), - ("49", "Maine-et-Loire"), - ("50", "Manche"), - ("51", "Marne"), - ("52", "Haute-Marne"), - ("53", "Mayenne"), - ("54", "Meurthe-et-Moselle"), - ("55", "Meuse"), - ("56", "Morbihan"), - ("57", "Moselle"), - ("58", "Nièvre"), - ("59", "Nord"), - ("60", "Oise"), - ("61", "Orne"), - ("62", "Pas-de-Calais"), - ("63", "Puy-de-Dôme"), - ("64", "Pyrénées-Atlantiques"), - ("65", "Hautes-Pyrénées"), - ("66", "Pyrénées-Orientales"), - ("67", "Bas-Rhin"), - ("68", "Haut-Rhin"), - ("69", "Rhône"), - ("70", "Haute-Saône"), - ("71", "Saône-et-Loire"), - ("72", "Sarthe"), - ("73", "Savoie"), - ("74", "Haute-Savoie"), - ("75", "Paris"), - ("76", "Seine-Maritime"), - ("77", "Seine-et-Marne"), - ("78", "Yvelines"), - ("79", "Deux-Sèvres"), - ("80", "Somme"), - ("81", "Tarn"), - ("82", "Tarn-et-Garonne"), - ("83", "Var"), - ("84", "Vaucluse"), - ("85", "Vendée"), - ("86", "Vienne"), - ("87", "Haute-Vienne"), - ("88", "Vosges"), - ("89", "Yonne"), - ("90", "Territoire de Belfort"), - ("91", "Essonne"), - ("92", "Hauts-de-Seine"), - ("93", "Seine-Saint-Denis"), - ("94", "Val-de-Marne"), - ("95", "Val-d'Oise"), - ("971", "Guadeloupe"), - ("972", "Martinique"), - ("973", "Guyane"), - ("974", "La Réunion"), - ("976", "Mayotte"), - ) - - def street_prefix(self) -> str: - """ - :example: 'rue' - """ - return self.random_element(self.street_prefixes) - - def city_prefix(self) -> str: - """ - :example: 'rue' - """ - return self.random_element(self.city_prefixes) - - def administrative_unit(self) -> str: - """ - :example: 'Guadeloupe' - """ - return self.random_element(self.regions) - - region = administrative_unit - - def department(self) -> Tuple[str, str]: - """ - Randomly returns a french department ('departmentNumber' , 'departmentName'). - :example: ('2B' . 'Haute-Corse') - """ - return self.random_element(self.departments) - - def department_name(self) -> str: - """ - Randomly returns a french department name. - :example: 'Ardèche' - """ - return self.department()[1] - - def department_number(self) -> str: - """ - Randomly returns a french department number. - - :example: '59' - """ - return self.department()[0] - - def postcode(self) -> str: - """ - Randomly returns a postcode generated from existing french department number. - exemple: '33260' - """ - department = self.department_number() - if department in ["2A", "2B"]: - department = "20" - return f"{department}{self.random_number(digits=5 - len(department), fix_len=True)}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_FR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/fr_FR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3959cdf..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_FR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/he_IL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/he_IL/__init__.py deleted file mode 100644 index 7d95940..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/he_IL/__init__.py +++ /dev/null @@ -1,871 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{city_name}}",) - street_name_formats = ("{{street_title}}",) - street_address_formats = ("{{street_name}} {{building_number}}",) - address_formats = ("{{street_address}}, {{city}}, {{postcode}}",) - postcode_formats = ("#######",) - - # Data sourced from data.gov.il - # https://data.gov.il/dataset/321 - - street_titles = ( - "אביב", - "אביגיל", - "אבן מסעוד", - "אברבנאל", - "אברהם ברזילי", - "אגוז", - "אדמון", - "אהרון מאיר מזיא", - "אהרונוביץ", - "אולפן", - "אורנים", - "אזור בית הקברות", - "אזור תעשיה א'", - "אזור תעשיה הר יונה", - "אזור תעשייה", - "אזור תעשייה מזרח", - 'אח"י אילת', - "אייזיק ניוטון", - "איילת השחר )מ ק(", - "אייר", - "אילניה", - "אימבר", - "אירוס", - "אירוס", - "אל הודא סמ3", - "אלוורוד", - "אלול", - "אלומה", - "אלזאבוד", - "אל-זהרא'", - "אל זיתון סמ2", - "אלזיתונה סמ7", - "אל חגאג בן יוסף", - "אל-חראיק סמ3", - "אלחרש", - "אל-ט'הרה סמ7", - "אלישר", - "אלכנסת", - "אלכסנדר ינאי", - "אלכרום", - "אלכתאב", - "אל-לימון", - "אלמזדלפה", - "אל-מחאג'ר סמ3", - "אל-מחאג'ר סמ4", - "אלמנשיה-מושירפה", - "אל-מקפה סמ9", - "אל-סביל סמ6", - "אלסלילמה", - "אלסריס", - "אלעמשקה", - "אלעקבה", - "אל-פארוק סמ2", - "אלפג'ר", - "אלרשיד", - "אלתין", - "אלתרמן", - "אסא המלך", - "אפעל", - "ארבל", - "אשדוד", - "אשל", - "אתגר", - "אתר חפץ חיים", - "בועז", - "בורסת היהלומים", - "ביכורים", - 'ביל"ו', - "בילינסון", - "בית אבות", - "בית היוצר", - "בית יצחק-שער חפר", - "בית ראשון במולדת", - "בן יהודה", - "בן ישי", - "בן לברט", - "בן צבי יצחק", - "בן צבי יצחק", - "בן צבי שמעון", - "בקעת הירח", - "ברגמן אליעזר", - "ברוריה", - "ברזיל", - "ברקת", - "בשמת", - "בשמת", - "גבע", - "גבע", - "גבעת חיים )מאוחד(", - "גובר רבקה", - "גוטמכר", - "גולדה מאיר", - "ג'ו עמר", - "גיבתון חנוך", - "גינוסר", - "גפן", - "גפן", - "גרטרוד קראוס", - "גרינבוים", - "דבורה", - "דודו דותן", - "דולב", - "דולצ'ין אריה", - "דחי", - "דיה", - "דימיטר פשב", - "דרב אלברג'", - "דרומית-מג'ד אלכרום", - "דריפוס", - "דרך הארץ", - "דרך הגן", - "דרך חברון", - "דרך חלמית", - "דרך שועפאט סמ4", - "האדמו\"ר מויז'ניץ", - "האודם", - "האורן", - "האורנים", - "האחים בז'רנו", - "האילן", - "האילנות", - "האילתית", - "האלונים", - "האמוראים", - "האצטדיון", - 'האצ"ל', - "הברדלס", - "הברוש", - "הבריגדה", - "הגבורה", - "הגפן", - "הגפן", - "הדגניות", - "הדולב", - "הדייגים", - "הדרך האמריקאית סמ12", - "ההגנה", - "ההגנה", - "הולצברג שמחה", - "הופרט יעקב", - "הורדים", - "הורקנוס יוחנן", - "הזיתים", - "הזמיר", - "החבל", - "החותרים", - "החלוצים", - "החליל", - "החמנית", - "החסידה", - "החצב", - "החצב", - "החרוב", - "החרובים", - "החרמון", - "החשמל", - "היוזם", - "הינשוף", - "היקינטון", - 'הל"ה', - "המאה ואחד", - "המבריא", - "המברק", - "המגינים", - "המגינים", - "המורד", - "המייסדים", - "המלאכה", - "המלאכה", - "המלכים", - "הממונה", - "המנוע", - "המסגר", - "המעיין", - "המפרש", - "המצודה", - "המרגנית", - "המשור", - "הנוטר", - "הנורית", - "הנורית", - "הנקר", - "הנרד", - "הסיגלית", - "הסיפון", - "העבודה", - "העבודה", - "העצמון", - "הפעמון", - "הפרדס", - "הפרדס", - "הפרדס", - "הפרדס", - "הצאלון", - "הצבעוני", - "הקישון", - "הראשונים", - "הרב בידאני עובדיה", - "הרב וולף", - "הרב חכם שמעון", - "הרבי מליובאוויטש", - "הרב ניסים", - "הרב עוזיאל", - "הרב רפאל עבו", - "הרדוף", - "הרדוף", - "הרדוף", - "הרותם", - "הרי גולן", - "הר יהל", - "הרימון", - "הר כנען", - "הרליץ יוסף", - "הר סיני", - "הר עצמון", - "הר צרור", - "הרקפת", - "הרשקו אברהם", - "הרשת", - "השדות", - "השחר", - "השיזף", - "השיח", - "השיטה", - "השעורה", - "השר ברזילי", - "התאנה", - "התבור", - "התקוה", - "ויקטור ויוליוס", - "וערת סעד", - "ז'בוטינסקי", - "זגגי", - "זיגורד", - "זיו", - "ז'ילבר", - "זית", - "זכרון יעקב", - "חוחית", - "חוף הים", - "חושן", - "חזון איש", - "חזן יעקב", - "חיטה", - "חיים וייצמן", - "חלמיש", - "חצב", - "חרת א בוס", - "חתוכה יורם", - "טאבליא", - "טאחונת אלראהיב", - "טביב", - "טופז", - 'י"א באדר', - "יאפא", - "יד העפלה ממרוקו", - "ידידה", - "יהודה הלוי", - "יהודה המכבי", - "יהודה המכבי", - "יואב", - "יונה", - "יזרעאל", - "יחזקאל הנביא", - "יכין", - "ירושלים", - "ירקון", - "ישועת דוד", - "יששכר", - "כאבול", - "כהן אלי", - "כהנא", - "כוכב הצפון", - "כזיב", - "כיסופים", - "ככר ירדן", - "ככר נחשון", - "כנרת", - "כפר ילדים נרדים", - "כרם חמד", - "לב הקריה", - "לביא אריק", - "לבקוביץ", - "לוד הצעירה", - "לוטם", - "לוין מיכאל וחנה", - "לוין שמריהו", - "לוריא", - 'לח"י', - "לילינבלום", - "לכיש", - "לסקוב חיים", - "מבוא הדס", - "מבוא הזיתים", - "מבוא חיים מקובנה", - "מבוא חמה", - "מבצע הראל", - "מבצע חירם", - "מבצע עובדה", - "מגלן", - "מוסיוף שלמה", - "מופק דיאב", - "מוצא", - "מורדי הגטאות", - "מורן", - "מזל שור", - "מזרחי יוסף", - "מיכה", - "מירון", - "מישאל", - "מלון רויאל פארק", - "מנזר המארונים", - "מעבר לים", - "מעוז חיים", - "מעונות ים", - "מעלה כגן הלנה", - "מענית", - "מצדה", - "מצפה גילה", - "מרגיל מחוור", - "מרווה", - "מרחביה )מושב(", - "מרכז", - "משה דיין", - "משואות יצחק", - "משעול אבוקדו", - "משעול האלה", - "משעול המחתרות", - "משעול הסיפן", - "משעול הצופית", - "משעול התפוח", - "משעול מוריה", - "משעול נקר", - "משעול פארן", - "נאות אביבים", - "נאות אשכול", - "נאות הדקל", - "נדב יצחק", - "נהריה", - "נוה עוז", - "נוף כנרת", - "נורית", - "נחל נחשון", - "נחל סרפד", - 'נחל ערוגות מ"ר', - "נחל פארן", - "נחלת צדוק", - "ניר עם", - 'נעמ"ת', - "נצרת עילית", - "נשר", - "נתיב הפורצים", - "נתן", - "סביונים מכבים רעות", - "סומך עובדיה", - "סיתוונית", - "סלא איירין", - "סלעית", - "סמ 20 20", - "סמבורסקי דניאל", - "סמ בני ברית", - "סמ הבוסתן", - "סמ הרכבת", - "סמ השחף", - "סמטת השחר", - "סמ מאלה", - "סמ מסילה א", - "סמ עין גנים", - "סמ עינב", - "סמ שפיפון", - "סנט הלנה", - "עבד אל-גני", - "עגור", - "ע הלל", - "עובדי הנמל", - "עוגן", - "עולש מצוי", - "עומר", - "עידו הנביא", - "עין שביב", - "עירית", - "עמוס", - "עמוס הנביא", - "עמנואל )רינגלבלום(", - "ענזה", - "עפולה", - "עקבת א תות", - "פדויים", - "פטדה", - "פנינה", - "פקוד מרכז", - "פרומקין גד", - "פרופ' בירק יהודית", - "פרופס", - "פרי חדש", - "צדוק הכהן", - "צובה", - "צופית", - "צוקית", - "צור", - "צמחי היהודים", - "צפרירים", - "צפת", - "צפת", - "קבועה )שבט(", - "קדמת צבי", - "קישון אפרים", - "קנין הארץ", - "קרית עקרון", - "קרל נטר", - "קרן היסוד", - "רביבים", - "רבנו תם", - "רבקה אמנו", - "רח 101", - "רח 1043", - "רח 1060", - "רח 12", - "רח 1238", - "רח 124", - "רח 135", - "רח 14", - "רח 16", - "רח 16", - "רח 2001", - "רח 2306", - "רח 5041", - "רח 6020", - "רח 6073", - "רח 6087", - "רח 68", - "רח 7035", - "רח 7038", - "רח 7069", - "רח 71", - "רחבת פנינה", - "רח ה", - "רח מו כ שלם", - "רח רז", - "ריחאניה", - 'רלב"ג', - 'רמב"ם', - 'רמב"ן', - "רמת האירוסים", - "רמת כרמים", - "רקפת", - 'רש"י', - "ש אסבסטונים", - "ש אסבסט צפון", - "שאר ישוב", - "ש בבלי", - "שבזי", - "שבזי", - "שבטי ישראל", - "שבט ראובן", - "שביל הרקפות", - "שביל קליפות התפוזים", - "שד גאולים", - "שד גת", - "שד העצמאות", - 'שד ח"ן', - "שד יוספטל גיורא", - "ש הפועלים", - "שוהם", - "שומרון", - "שושנה דמארי", - "שושנת הכרמל", - 'שז"ר זלמן', - "שיזף", - "שכ 14", - "שכ החלוצים", - "שכ היובל", - "שכ הפועל המזרחי ג'", - "שכ הרכבת", - "שכ זאב", - "שכ חפצי בה", - "שכ מחניים", - "שכ נווה הדקל", - "שכ עראק אלשבאב", - "שכ קחאוש", - "שכ רסקו", - "שלדג", - "שמחוני", - "שמחוני אסף", - "שמעון המכבי", - "שני", - "ש סלע חדש", - "ש פועלים", - 'ש"ץ גרשון', - "ש ציונים כלליים", - "שקד", - "ש קואפרטיבים", - "שריג", - "ש רמת אביב", - "תאנה", - "תל חי", - "תפארת ישראל", - 'תרס"ח', - 'תרצ"ו', - ) - - city_names = ( - "אבו רובייעה )שבט(", - "אביבים", - "אביחיל", - "אודם", - "אור הנר", - "אורטל", - "אטרש )שבט(", - "אליקים", - "אל סייד", - "באר מילכה", - "בית ברל", - "בית הלוי", - "בית חנן", - "בית חנניה", - "בית חשמונאי", - "בני ציון", - "ברקאי", - "ברקת", - "גבעת השלושה", - 'גבעת ח"ן', - 'גבעת כ"ח', - "גדות", - "גונן", - "גינתון", - "גיתית", - "גן שורק", - "גנות הדר", - "גני מודיעין", - "גרופית", - 'דוב"ב', - "דולב", - "האון", - "הסוללים", - "העוגן", - "הר אדר", - "ורד יריחו", - "זוהר", - "חיננית", - "חצור-אשדוד", - "חצור הגלילית", - "חשמונאים", - "טל-אל", - 'יד רמב"ם', - "כסלון", - "כפר אחים", - "כפר הנוער הדתי", - "כפר יונה", - "כפר מסריק", - "כפר סירקין", - "לוזית", - "לקיה", - "מגאר", - "מגן", - "מזכרת בתיה", - "מירון", - "מכמורת", - "מלאה", - "מסד", - "מעונה", - "מרחביה )מושב(", - "משמר העמק", - "נווה חריף", - "נוקדים", - "נורדיה", - "נחלה", - "נטע", - "נירן", - "נתיב השיירה", - "סגולה", - "סער", - "עדי", - "עזר", - "עין אל-אסד", - "עין השופט", - "עין צורים", - "עלי זהב", - "עמוקה", - "עמיר", - "עמקה", - "עספיא", - "עצמון שגב", - "פוריה - נווה עובד", - "פוריידיס", - "פקיעין חדשה", - "צורית", - "צפרירים", - "רגבה", - "רחוב", - "ריינה", - "רימונים", - "רמות מנשה", - "שדה אליהו", - "שדות מיכה", - "שדי תרומות", - "שומרה", - "שיטים", - "שעב", - "שפר", - "שתולים", - "תלמי אליהו", - ) - - countries = ( - "אוגנדה", - "אוזבקיסטן", - "אוסטריה", - "אוסטרליה", - "אוקראינה", - "אורוגוואי", - "אזרבייג'ן", - "אי חג המולד", - "איחוד האמירויות הערביות", - "איטליה", - "איי הבתולה הבריטיים", - "איי הבתולה של ארצות הברית", - "איי הרד ומקדונלד", - "איי טורקס וקייקוס", - "איי מריאנה הצפוניים", - "איי מרשל", - "איי סוולברד ויאן מאיין", - "איי פארו", - "איי פוקלנד (מלווינאס)", - "איי פיטקרן", - "איי קוק", - "איי קוקוס (קילינג)", - "איי קיימן", - "איי שלמה", - "אינדונזיה", - "איסלנד", - "איראן", - "אירלנד", - "אל סלבדור", - "אלבניה", - "אלג'יריה", - "אנגווילה", - "אנגולה", - "אנדורה", - "אנטארקטיקה (השטח מדרום ל-60 מעלות S)", - "אנטיגואה וברבודה", - "אסטוניה", - "אפגניסטן", - "אקוודור", - "ארגנטינה", - "ארובה", - "אריתריאה", - "ארמניה", - "ארצות הברית של אמריקה", - "אתיופיה", - "בהאמה", - "בהוטן", - "בולגריה", - "בוליביה", - "בוסניה והרצגובינה", - "בוצואנה", - "בורונדי", - "בורקינה פאסו", - "בחריין", - "בלארוס", - "בלגיה", - "בליז", - "בנגלדש", - "בנין", - "ברבדוס", - "ברוני דרוסלם", - "ברזיל", - "בריטניה", - "ברמודה", - "ג'ורג'יה הדרומית ואיי סנדוויץ' הדרומיים", - "ג'יבוטי", - "ג'מהירייה ערבית לוב", - "ג'מייקה", - "ג'רזי", - "גאורגיה", - "גאנה", - "גבון", - "גואטמלה", - "גואם", - "גוואדלופ", - "גיאנה הצרפתית", - "גיאנה", - "גיברלטר", - "גינאה המשוונית", - "גינאה-ביסאו", - "גינאה", - "גמביה", - "גרינלנד", - "גרמניה", - "גרנדה", - "גרנזי", - "דומיניקה", - "דנמרק", - "דרום אפריקה", - "האי בובט (בובטואה)", - "האי מאן", - "האי נורפוק", - "האיטי", - "האיים הקטנים של ארצות הברית", - "האנטילים ההולנדיים", - "הודו", - "הולנד", - "הונג קונג", - "הונגריה", - "הונדורס", - "הטריטוריה הפלסטינית", - "הטריטוריות הדרומיות של צרפת", - "הכס הקדוש (קריית הוותיקן)", - "המלדיביים", - "הפדרציה הרוסית", - "הפיליפינים", - "הרפובליקה הדומיניקנית", - "הרפובליקה הדמוקרטית העממית של לאו", - "הרפובליקה המרכז אפריקאית", - "הרפובליקה הערבית הסורית", - "הרפובליקה הקירגיזית", - "ואליס ופוטונה", - "וייטנאם", - "ונואטו", - "ונצואלה", - "זימבבואה", - "זמביה", - "חוף השנהב", - "טג'יקיסטן", - "טובאלו", - "טוגו", - "טונגה", - "טוקלאו", - "טורקיה", - "טורקמניסטן", - "טייוואן", - "טימור-לסטה", - "טנזניה", - "טריטוריית האוקיינוס ​​ההודי הבריטי (ארכיפלג צ'אגוס)", - "טרינידד וטובגו", - "יוון", - "יפן", - "ירדן", - "ישראל", - "כווית", - "לבנון", - "לוקסמבורג", - "לטביה", - "ליבריה", - "ליטא", - "ליכטנשטיין", - "לסוטו", - "מאוריטניה", - "מאוריציוס", - "מדגסקר", - "מוזמביק", - "מולדובה", - "מונגוליה", - "מונטנגרו", - "מונסראט", - "מונקו", - "מיאנמר", - "מיוט", - "מיקרונזיה", - "מלאווי", - "מלזיה", - "מלטה", - "מלי", - "מצרים", - "מקאו", - "מקדוניה הצפונית", - "מקסיקו", - "מרוקו", - "מרטיניק", - "נאורו", - "נורבגיה", - "ניגר", - "ניגריה", - "ניו זילנד", - "ניואה", - "ניקרגואה", - "נמיביה", - "נפאל", - "סאו טומה ופרינסיפה", - "סהרה המערבית", - "סודן", - "סווזילנד", - "סומליה", - "סורינאם", - "סיירה לאון", - "סיישל", - "סין", - "סינגפור", - "סלובניה", - "סלובקיה (הרפובליקה הסלובקית)", - "סמואה אמריקאית", - "סמואה", - "סן מרינו", - "סנגל", - "סנט ברתלמי", - "סנט הלנה", - "סנט וינסנט והגרנדינים", - "סנט לוסיה", - "סנט מרטין", - "סנט פייר ומיקלון", - "סנט קיטס ונוויס", - "ספרד", - "סרביה", - "סרי לנקה", - "עומאן", - "עיראק", - "ערב הסעודית", - "פולין", - "פולינזיה הצרפתית", - "פורטו ריקו", - "פורטוגל", - "פיג'י", - "פינלנד", - "פלאו", - "פנמה", - "פפואה גינאה החדשה", - "פקיסטן", - "פרגוואי", - "פרו", - "צ'אד", - "צ'ילה", - "צ'כיה", - "צרפת", - "קובה", - "קולומביה", - "קומורו", - "קונגו", - "קונגו", - "קוסטה ריקה", - "קוריאה", - "קוריאה", - "קזחסטן", - "קטאר", - "קייפ ורדה", - "קיריבטי", - "קלדוניה החדשה", - "קמבודיה", - "קמרון", - "קנדה", - "קניה", - "קַפרִיסִין", - "קרואטיה", - "ראוניון", - "רואנדה", - "רומניה", - "שוודיה", - "שוויץ", - "תאילנד", - "תוניסיה", - "תימן", - ) - - def city_name(self) -> str: - return self.random_element(self.city_names) - - def street_title(self) -> str: - return self.random_element(self.street_titles) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/he_IL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/he_IL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ad7431a..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/he_IL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/hi_IN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/hi_IN/__init__.py deleted file mode 100644 index 303f6c8..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/hi_IN/__init__.py +++ /dev/null @@ -1,244 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{city_name}}",) - - street_name_formats = ( - "{{first_name}} {{last_name}}", - "{{last_name}}", - ) - - street_address_formats = ("{{building_number}} {{street_name}}",) - - address_formats = ( - "{{street_address}}\n{{city}} {{postcode}}", - "{{street_address}}\n{{city}}-{{postcode}}", - ) - - building_number_formats = ( - "####", - "###", - "##", - "#", - "#/#", - "##/##", - "##/###", - "##/####", - ) - - postcode_formats = ("######",) - - cities = ( - "आदिलाबाद", - "अगरतला", - "अहमदाबाद", - "अहमदनगर", - "अजमेर", - "अम्बाजी", - "अमरपुर", - "इलाहाबाद", - "अकोला", - "अखनूर", - "अन्तर्गत", - "अलांग", - "अलीगढ", - "दादरा और नगर हवेली", - "अमरावती", - "अमरोहा", - "अनन्तपुर", - "करना", - "जिससेबेलारी", - "अनंतनाग", - "भागलपुर", - "भद्रक", - "बचेली", - "बहादुरगंज", - "बहादुरगढ", - "चिरमिरी", - "चिराला", - "चित्रदुर्ग", - "चित्तूर", - "चित्रकूट", - "देवगढ़", - "दालखोला", - "देवास", - "चंडीगढ", - "चिपलुन", - "चक्रधरपुर", - "चंबा", - "फतहपुर", - "फतेहपुर", - "फतेहगढ", - "सभापतिने", - "देवगढ़", - "धर्मापुरी", - "पाकाला", - "धारवाड", - "असम", - "देहरा", - "रानीताल", - "खडगपुर", - "मोकामा", - "मोकोकचुंग", - "जिलोंपर", - "विस्तारण", - "मोतिहारी", - "लखनऊ", - "मुंबई", - "हैदराबाद", - ) - - states = ( - "अरूणाचल प्रदेश", - "बिहार", - "असम", - "आंध्र प्रदेश", - "छत्तीसगढ", - "हरियाणा", - "गुजरात", - "हिमाचल प्रदेश", - "गोवा", - "मध्य प्रदेश", - "महाराष्ट्र", - "जम्मू और कश्मीर", - "केरल", - "कर्नाटक", - "मणिपुर", - "मिजोरम", - "मेघालय", - "सिक्किम", - "राजस्थान", - "पंजाब", - "उडीसा", - "उत्तरांचल", - "उत्तर प्रदेश", - "तमिलनाडु", - "त्रिपुरा", - "पश्चिमी बंगाल", - "अंडमान और निकोबार", - "दमन और दीव", - "दादरा और नगर हवेली", - "दिल्ली", - "पांडिचेरी", - "लक्षद्वीप", - ) - - countries = ( - "आर्मीनिया", - "यू.के.", - "फ्रांस", - "फलस्तीन", - "मिस्र", - "ब्राज़ील", - "ईरान", - "यूनान", - "स्पेन", - "जॉर्जिया", - "लेबनान", - "सायप्रस", - "सीरिया", - "कनाडा", - "रूस", - "संयुक्त राज्य अमरीका", - "नेदर्लान्ड", - "ऑस्ट्रेलिया", - "एंटीगुआ", - "बार्बुडा", - "ऑस्ट्रिया", - "अज़रबाइजान", - "बारबाडोस", - "बेलारूस", - "बेल्जियम", - "बेलीज़", - "बेनिन", - "बहामास", - "बहरीन", - "बांग्लादेश", - "भूटान", - "बोलिविया", - "बोस्निया", - "हर्जेगोविना", - "बोत्सवाना", - "ब्रुनेई", - "बुल्गारिया", - "बुर्किना फ़ासो", - "बर्मा", - "बुरूंडी", - "डोमिनिकन रिपब्लिक", - "गिनिया", - "टीमोर", - "फ़िनलैंड", - "गेबोन", - "गाम्बिया", - "जर्मनी", - "ग्रेनेडा", - "घाना", - "ग्रेट ब्रिटेन", - "हंगरी", - "भारत", - "हिन्दुस्तान", - "इराक", - "आयरलैंड", - "इंडोनेशिया", - "इटली", - "जमैका", - "जॉर्डन", - "जापान", - "क़जाख़स्तान", - "केन्या", - "किरिबाती", - "दक्षिण कोरिया", - "लातविया", - "लाओस", - "उत्तर कोरिया", - "कोसोवो", - "कुवैत", - "लेबनान", - "लिचटीनस्टीन", - "लिथुआनिया", - "लक्समबर्ग", - "लीबिया", - "लाइबेरिया", - "लेसोथो", - "नेपाल", - "न्यूज़ीलैण्ड", - "निकारागुआ", - "नाइजर", - "नाउरू", - "सेंट लुसिया", - "रोमानिया", - "अरब अमीरात", - "यूएई", - "युगांडा", - "यूक्रेन", - "उरूग्वे", - "उज़बेकिस्तान", - "यूनाइटेड किंगडम", - "वानुआतू", - "वेटिकन सिटी", - "वेनेजुएला", - "पश्चिमी सहारा", - "वियतनाम", - "यमन", - "ज़ायर", - "ज़ाम्बिया", - "ज़िम्बाब्वे", - "पाकिस्तान", - "सउदी अरब", - "ओमान", - "क़तर", - "ट्यूनीशिया", - "मोरक्को", - "तुर्की", - "श्रीलंका", - "अफ़ग़ानिस्तान", - ) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/hi_IN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/hi_IN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index df23ab0..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/hi_IN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/hr_HR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/hr_HR/__init__.py deleted file mode 100644 index b3ae4ba..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/hr_HR/__init__.py +++ /dev/null @@ -1,588 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{city_name}}",) - - street_name_formats = ("{{street_name}}",) - street_address_formats = ("{{street_name}} {{building_number}}",) - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - building_number_formats = ( - "###", - "##", - "#", - "#a", - "#b", - "#c", - "#a/#", - "#b/#", - "#c/#", - ) - - postcode_formats = ("#####",) - - street_suffixes_long = ( - "", - "ulica", - "cesta", - "put", - "avenija", - ) - street_suffixes_short = ( - "", - "ul.", - "c.", - "a.", - ) - - cities = ( - "Bakar", - "Beli Manastir", - "Belišće", - "Benkovac", - "Biograd na Moru", - "Bjelovar", - "Buje", - "Buzet", - "Cres", - "Crikvenica", - "Čabar", - "Čakovec", - "Čazma", - "Daruvar", - "Delnice", - "Donja Stubica", - "Donji Miholjac", - "Drniš", - "Dubrovnik", - "Duga Resa", - "Dugo Selo", - "Đakovo", - "Đurđevac", - "Garešnica", - "Glina", - "Gospić", - "Grubišno Polje", - "Hrvatska Kostajnica", - "Hvar", - "Ilok", - "Imotski", - "Ivanec", - "Ivanić-Grad", - "Jastrebarsko", - "Karlovac", - "Kastav", - "Kaštela", - "Klanjec", - "Knin", - "Komiža", - "Koprivnica", - "Korčula", - "Kraljevica", - "Krapina", - "Križevci", - "Krk", - "Kutina", - "Kutjevo", - "Labin", - "Lepoglava", - "Lipik", - "Ludbreg", - "Makarska", - "Mali Lošinj", - "Metković", - "Mursko Središće", - "Našice", - "Nin", - "Nova Gradiška", - "Novalja", - "Novi Marof", - "Novi Vinodolski", - "Novigrad", - "Novska", - "Obrovac", - "Ogulin", - "Omiš", - "Opatija", - "Opuzen", - "Orahovica", - "Oroslavje", - "Osijek", - "Otočac", - "Otok", - "Ozalj", - "Pag", - "Pakrac", - "Pazin", - "Petrinja", - "Pleternica", - "Ploče", - "Popovača", - "Poreč", - "Požega", - "Pregrada", - "Prelog", - "Pula", - "Rab", - "Rijeka", - "Rovinj", - "Samobor", - "Senj", - "Sinj", - "Sisak", - "Skradin", - "Slatina", - "Slavonski Brod", - "Slunj", - "Solin", - "Split", - "Stari Grad", - "Supetar", - "Sveta Nedelja", - "Sveti Ivan Zelina", - "Šibenik", - "Trilj", - "Trogir", - "Umag", - "Valpovo", - "Varaždin", - "Varaždinske Toplice", - "Velika Gorica", - "Vinkovci", - "Virovitica", - "Vis", - "Vodice", - "Vodnjan", - "Vrbovec", - "Vrbovsko", - "Vrgorac", - "Vrlika", - "Vukovar", - "Zabok", - "Zadar", - "Zagreb", - "Zaprešić", - "Zlatar", - ) - - streets = ( - "Arnoldova", - "Bakačeva", - "Bijenička", - "Bosanska", - "Bučarova", - "Cmrok", - "Čačkovićeva", - "Davor", - "Demetrova", - "Dolac", - "Donje Prekrižje", - "Draškovićeva", - "Dubravkin", - "Dverce", - "Dvoranski prečac", - "Glogovac", - "Golubovac", - "Goljačke", - "Goljak", - "Gornje Prekrižje", - "Gračanska", - "Gradec", - "Grič", - "Gupčeva zvijezda", - "Harmica", - "Hercegovačka", - "Horvatovac", - "Ilica", - "Istarska", - "Jabukovac", - "Jadranska", - "Jagodnjak", - "Javorovac", - "Jezuitski trg", - "Jurišićeva", - "Jurjeve", - "Jurjevska", - "Jurkovićeva", - "Kamaufova", - "Kamenita", - "Kamenjak", - "Kaptol", - "Kapucinske", - "Klanac Grgura Tepečića", - "Klenovac", - "Klesarski put", - "Kozarčev vijenac", - "Kožarska", - "Kraljevec", - "Kraljevec II.", - "Kraljevečki odvojak", - "Kraljevečki ogranak", - "Krležin gvozd", - "Krvavi most", - "Ksaver", - "Ksaverska", - "Kurelčeva", - "Lisinskoga", - "Lobmayerove", - "Ljubinkovac", - "Magdićeve", - "Mala", - "Male", - "Mašekova", - "Medvedgradska", - "Medveščak", - "Mesnička", - "Mihaljevac", - "Mirogojska", - "Mletačka", - "Mlinarska", - "Mlinovi", - "Mlinske", - "Naumovac", - "Nemetova", - "Nova Ves", - "Novi Goljak", - "Opatička", - "Opatovina", - "Orlovac", - "Palmotićeva", - "Pantovčak", - "Paunovac", - "Perivoj biskupa Stjepana II.", - "Perivoj srpanjskih žrtava", - "Petrova", - "Pod zidom", - "Podgaj", - "Radnički dol", - "Remetska", - "Ribnjak", - "Rikardove", - "Rockefellerova", - "Rokov perivoj", - "Rokova", - "Ružičnjak", - "Skalinska", - "Slavujevac", - "Splavnica", - "Srebrnjak", - "Streljačka", - "Strossmayerovo šetalište", - "Svibovac", - "Svibovac", - "Šalata", - "Šestinski vijenac", - "Šestinski vrh", - "Šilobodov put", - "Šumski prečac", - "Tkalčićeva", - "Tošovac", - "Tuškanac", - "Vijenac", - "Vinogradska", - "Visoka", - "Višnjica", - "Višnjičke", - "Vitezovićeva", - "Vlaška", - "Voćarska", - "Voćarsko naselje", - "Vončinina", - "Vrazovo šetalište", - "Wickerhauserova", - "Zamenhofova", - "Zamenhofove", - "Zavojna", - "Zelengaj", - "Zeleni dol", - "Zelenjak", - "Zmajevac", - "Zvonarnička", - ) - - states = ( - "Zagrebačka", - "Krapinsko-zagorska", - "Sisačko-moslavačka", - "Karlovačka", - "Varaždinska", - "Koprivničko-križevačka", - "Bjelovarsko-bilogorska", - "Primorsko-goranska", - "Ličko-senjska", - "Virovitičko-podravska", - "Požeško-slavonska", - "Brodsko-posavska", - "Zadarska", - "Osječko-baranjska", - "Šibensko-kninska", - "Vukovarsko-srijemska", - "Splitsko-dalmatinska", - "Istarska", - "Dubrovačko-neretvanska", - "Međimurska", - "Grad Zagreb", - ) - - countries = ( - "Afganistan", - "Alandski otoci", - "Albanija", - "Alžir", - "Američka Samoa", - "Američki Djevičanski Otoci", - "Andora", - "Angola", - "Anguila", - "Antarktik", - "Antigua i Barbuda", - "Argentina", - "Armenija", - "Aruba", - "Australija", - "Austrija", - "Azerbajdžan", - "Bahami", - "Bahrein", - "Bangladeš", - "Barbados", - "Belgija", - "Belize", - "Benin", - "Bermuda", - "Bjelorusija", - "Bocvana", - "Bolivija", - "Bosna i Hercegovina", - "Božićni Otok", - "Brazil", - "Britanski Djevičanski Otoci", - "Britanski Teritorij Indijskog Oceana", - "Brunei Darussalam", - "Bugarska", - "Burkina Faso", - "Burundi", - "Butan", - "Cipar", - "Crna Gora", - "Curacao", - "Čad", - "Čile", - "Danska", - "Dominika", - "Dominikanska Republika", - "Džibuti", - "Egipat", - "Ekvador", - "Ekvatorska Gvineja", - "El Salvador", - "Eritreja", - "Estonija", - "Etiopija", - "Falklandi", - "Farski Otoci", - "Fidži", - "Filipini", - "Finska", - "Francuska", - "Francuska Gvajana", - "Francuska Polinezija", - "Francuski Južni Teritoriji", - "Gabon", - "Gambija", - "Gana", - "Gibraltar", - "Vatikan", - "Grčka", - "Grenada", - "Grenland", - "Gruzija", - "Guadeloupe", - "Guam", - "Guernsey", - "Gvajana", - "Gvatemala", - "Gvineja", - "Gvineja Bisau", - "Haiti", - "Honduras", - "Hong Kong", - "Hrvatska", - "Indija", - "Indonezija", - "Irak", - "Iran, Islamska Republika", - "Irska", - "Island", - "Isle Of Man", - "Istočni Timor", - "Italija", - "Izrael", - "Jamajka", - "Japan", - "Jemen", - "Jersey", - "Jordan", - "Južna Afrika", - "Južna Gruzija i Južni Sendvič Otoci", - "Kajmanski Otoci", - "Kambodža", - "Kamerun", - "Kanada", - "Katar", - "Kazakstan", - "Kenija", - "Kina", - "Kirgistan", - "Kiribati", - "Kokosovi Otoci", - "Kolumbija", - "Komori", - "Kongo", - "Kongo, Demokratska Republika", - "Koreja, Južna", - "Koreja, Sjeverna", - "Kosovo", - "Kostarika", - "Kuba", - "Kukovi Otoci", - "Kuvajt", - "Laoska Narodna Demokratska Republika", - "Latvija", - "Lesoto", - "Libanon", - "Liberija", - "Libijska Arapska Džamahirija", - "Lihtenštajn", - "Litva", - "Luksemburg", - "Madagaskar", - "Mađarska", - "Majote", - "Makao", - "Malavi", - "Maldivi Maldives", - "Malezija", - "Mali", - "Malta", - "Maroko", - "Maršalovi Otoci", - "Martinik", - "Mauricijus", - "Mauritanija", - "Meksiko", - "Mijanmar", - "Mikronezija", - "Moldavija, Republika", - "Monako", - "Mongolija", - "Montserat", - "Mozambik", - "Namibija", - "Nauru", - "Nepal", - "Niger", - "Nigerija", - "Nikaragva", - "Niue", - "Nizozemska", - "Norveška", - "Nova Kaledonija", - "Novi Zeland", - "Njemačka", - "Obala Slonovače", - "Oman", - "Otok Bouvet", - "Otok Heard i Otoci McDonald", - "Otok Norfolk", - "Pakistan", - "Palau", - "Palestinsko Područje", - "Panama", - "Papua Nova Gvineja", - "Paragvaj", - "Peru", - "Pitcairn", - "Poljska Poland", - "Portoriko", - "Portugal", - "Republika Češka", - "Reunion", - "Ruanda", - "Rumunjska", - "Rusija", - "Salamunovi Otoci", - "Samoa", - "San Marino", - "São Tomé ai Príncipe", - "Saudijska Arabija", - "Sejšeli", - "Senegal", - "Sijera Leone", - "Singapur", - "Sint Maarten", - "Sirija", - "Sjedinjene Američke Države", - "Sjeverna Makedonija", - "Sjeverni Marijanski Otoci", - "Slovačka", - "Slovenija", - "Somalija", - "Južni Sudan", - "Srbija", - "Srednjoafrička Republika", - "Sudan", - "Surinam", - "Svalbard i Jan Mayen", - "Svaziland", - "Sveta Helena", - "Sveti Bartolomej", - "Sveti Martin", - "Sveti Petar i Miguel", - "Sv. Kristofor i Nevis", - "Sv. Lucija", - "Sv. Vincent i Grenadini", - "Španjolska", - "Šri Lanka", - "Švedska", - "Švicarska", - "Tadžikistan", - "Tajland", - "Tajvan", - "Tanzanija", - "Togo", - "Tokelau", - "Tonga", - "Trinidad i Tobago", - "Tunis", - "Turkmenistan", - "Turkski i Kaikos Otoci", - "Turska", - "Tuvalu", - "Uganda", - "Ujedinjene Države Manjih Pacifičkih Otoka", - "Ujedinjeni Arapski Emirati", - "Ukrajina", - "Urugvaj", - "Uzbekistan", - "Vanuatu", - "Velika Britanija", - "Venezuela", - "Vijetnam", - "Wallis i Futuna", - "Zambija", - "Zapadna Sahara", - "Zeleni Rt", - ) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def street_name(self) -> str: - return self.random_element(self.streets) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/hr_HR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/hr_HR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 218438b..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/hr_HR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/hu_HU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/hu_HU/__init__.py deleted file mode 100644 index 54c7150..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/hu_HU/__init__.py +++ /dev/null @@ -1,479 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - street_suffixes = OrderedDict( - ( - ("utca", 0.75), - ("út", 0.1), - ("tér", 0.1), - ("köz", 0.001), - ("körút", 0.001), - ("sétány", 0.001), - ) - ) - - street_name_formats = ( - "{{frequent_street_name}} {{street_suffix}}", - "{{real_city_name}}i {{street_suffix}}", - "{{city_part}}{{city_suffix}}i {{street_suffix}}", - "{{city_prefix}}{{city_part}}i {{street_suffix}}", - ) - - # Currently deprecated. - # secondary_address_formats = ("#.em #.", "##. em. #.") - - city_formats = ( - "{{city_prefix}}{{city_part}}{{city_suffix}}", - "{{city_part}}{{city_suffix}}", - "{{real_city_name}}", - ) - - street_address_formats = ("{{street_name}} {{building_number}}",) - - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - frequent_street_names = ( - "Ady Endre", - "Dózsa György", - "Petőfi", - "Petőfi Sándor", - "Arany János", - "Béke", - "Szabadság", - "Kossuth", - "József Attila", - ) - - # The 'real city name' generator includes a number of real cities of - # Hungary that no generator could feasibly dispense. Please note that the - # post code generator is, at this point, not capable of generating a - # fitting post code. In Hungary, post codes are determined by the county of - # the place (see the county generator), and for this reason, often there - # will be a discrepancy. A patch is in the works - until then, use - # Wikipedia to resolve postcode issues. - # - # This generator was created by collecting the 30 largest Hungarian places - # by population, based on the Hungarian Gazetteer generated with effect as - # of 01 January 2016 (http://www.ksh.hu/docs/hun/hnk/hnk_2016.pdf). - - real_city_names = ( - "Budapest", - "Debrecen", - "Szeged", - "Miskolc", - "Pécs", - "Győr", - "Nyíregyháza", - "Kecskemét", - "Székesfehérvár", - "Szombathely", - "Szolnok", - "Tatabánya", - "Érd", - "Kaposvár", - "Sopron", - "Veszprém", - "Békéscsaba", - "Zalaegerszeg", - "Eger", - "Nagykanizsa", - "Dunaújváros", - "Hódmezővásárhely", - "Dunakeszi", - "Szigetszentmiklós", - "Cegléd", - "Baja", - "Salgótarján", - "Ózd", - "Vác", - "Mosonmagyaróvár", - ) - - city_prefs = ( - "kis", - "nagy", - "szent", - "duna", - "tisza", - "alsó", - "felső", - "belső", - "bakony", - "vác", - "mező", - "nyék", - "nyír", - "balaton", - "borsod", - "buda", - "hajdú", - "kun", - "moson", - "pilis", - "új", - "egyházas", - "dráva", - "magyar", - "mátra", - "somogy", - "lajos", - "bács", - "békés", - "puszta", - "orosz", - "rác", - "szerb", - "német", - "török", - ) - - city_parts = ( - "híd", - "györgy", - "mindszent", - "kereszt", - "márton", - "hát", - "hetven", - "mellék", - "tamási", - "tapolca", - "fürdő", - "liget", - "szék", - "tót", - "", - ) - - city_suffixes = ( - "háza", - "németi", - "devecser", - "fa", - "nádasd", - "apáti", - "falu", - "falva", - "vég", - "vár", - "vára", - "várad", - "hida", - "kövesd", - "bánya", - "halas", - "berény", - "kőrös", - "haraszti", - "város", - ) - - counties = ( - "Bács-Kiskun", - "Baranya", - "Békés", - "Borsod-Abaúj-Zemplén", - "Csongrád", - "Fejér", - "Győr-Moson-Sopron", - "Hajdú-Bihar", - "Heves", - "Jász-Nagykun-Szolnok", - "Komárom-Esztergom", - "Nógrád", - "Pest", - "Somogy", - "Szabolcs-Szatmár-Bereg", - "Tolna", - "Vas", - "Veszprém", - "Zala", - ) - - countries = ( - "Afganisztán", - "Aland-szigetek", - "Albánia", - "Algéria", - "Amerikai Szamoa", - "Amerikai Virgin-szigetek", - "Andorra", - "Angola", - "Anguilla", - "Antarktisz", - "Antigua és Barbuda", - "Apostoli Szentszék", - "Argentína", - "Aruba", - "Ausztrália", - "Ausztria", - "Amerikai Egyesült Államok Külső Szigetei", - "Azerbajdzsán", - "Bahama-szigetek", - "Bahrein", - "Banglades", - "Barbados", - "Fehéroroszország", - "Belgium", - "Belize", - "Benin", - "Bermuda", - "Bhután", - "Bissa -Guinea", - "Bolívia", - "Bosznia-Hercegovina", - "Botswana", - "Bouvet-sziget", - "Brazília", - "Brit Indiai-óceáni Terület", - "Brit Virgin - szigetek", - "Brunei", - "Bulgária", - "Burkina Faso", - "Burundi", - "Chile", - "Ciprus", - "Comore-szigetek", - "Cook-szigetek", - "Costa Rica", - "Csád", - "Csehország", - "Dánia", - "Dél-Afrika", - "Dél-Korea", - "Dominika", - "Dominikai Köztársaság", - "Dzsibuti", - "Ecuador", - "Egyenlítői-Guinea", - "Egyesült Államok", - "Egyesült Arab Emírségek", - "Egyesült Királyság", - "Egyiptom", - "Elefántcsontpart", - "Eritrea", - "Északi Mariana-szigetek", - "Észak-Korea", - "Észak-Macedónia", - "Észtország", - "Etiópia", - "Falkland-szigetek", - "Feröer szigetek", - "Fidzsi-szigetek", - "Finnország", - "Francia Déli Területek", - "Francia Guyana", - "Francia Polinézia", - "Franciaország", - "Fülöp-szigetek", - "Gabon", - "Gambia", - "Ghána", - "Gibraltár", - "Görögország", - "Grenada", - "Grönland", - "Grúzia", - "Guadeloupe", - "Guam", - "Guatemala", - "Guinea", - "Guyana", - "Haiti", - "Holland Antillák", - "Hollandia", - "Honduras", - "Hongkong", - "Horvátország", - "India", - "Indonézia", - "Irak", - "Irán", - "Írország", - "Izland", - "Izrael", - "Jamaica", - "Japán", - "Jemen", - "Jordánia", - "Kajmán-szigetek", - "Kambodzsa", - "Kamerun", - "Kanada", - "Karácsony-sziget", - "Katar", - "Kazahsztán", - "Kelet-Timor", - "Kenya", - "Kína", - "Kirgizisztán", - "Kiribati", - "Keeling-szigetek", - "Kolumbia", - "Kongó", - "Kongói Demokratikus Köztársaság", - "Közép-afrikai Köztársaság", - "Kuba", - "Kuvait", - "Laosz", - "Lengyelország", - "Lesotho", - "Lettország", - "Libanon", - "Libéria", - "Líbia", - "Liechtenstein", - "Litvánia", - "Luxemburg", - "Madagaszkár", - "Magyarország", - "Makaó", - "Malajzia", - "Malawi", - "Maldív-szigetek", - "Mali", - "Málta", - "Marokkó", - "Marshall-szigetek", - "Martinique", - "Mauritánia", - "Mauritius", - "Mayotte", - "Mexikó", - "Mianmar", - "Mikronézia", - "Moldova", - "Monaco", - "Mongólia", - "Montenegró", - "Montserrat", - "Mozambik", - "Namíbia", - "Nauru", - "Németország", - "Nepál", - "Nicaragua", - "Niger", - "Nigéria", - "Niue", - "Norfolk-sziget", - "Norvégia", - "Nyugat-Szahara", - "Olaszország", - "Omán", - "Oroszország", - "Örményország", - "Pakisztán", - "Palau", - "Panama", - "Pápua", - "Új-Guinea", - "Paraguay", - "Peru", - "Pitcairn-szigetek", - "Portugália", - "Puerto Rico", - "Réunion", - "Románia", - "Ruanda", - "Saint Kitts és Nevis", - "Saint Lucia", - "Saint-Pierre és Miquelon", - "Saint Vincent és Grenadine-szigetek", - "Salamon-szigetek", - "Salvador", - "San Marino", - "São Tomé és Príncipe", - "Seychelle-szigetek", - "Sierra Leone", - "Spanyolország", - "Srí Lanka", - "Suriname", - "Svájc", - "Svalbard szigetek", - "Svédország", - "Szamoa", - "Szaúdi-Arábia", - "Szenegál", - "Szent Ilona", - "Szerbia", - "Szingapúr", - "Szíria", - "Szlovákia", - "Szlovénia", - "Szomália", - "Szudán", - "Szváziföld", - "Tádzsikisztán", - "Tajvan", - "Tanzánia", - "Thaiföld", - "Togo", - "Tokelau-szigetek", - "Tonga", - "Törökország", - "Trinidad és Tobago", - "Tunézia", - "Turks- és Caicos-szigetek", - "Tuvalu", - "Türkmenisztán", - "Uganda", - "Új-Kaledónia", - "Új-Zéland", - "Ukrajna", - "Uruguay", - "Üzbegisztán", - "Vanuatu", - "Venezuela", - "Vietnam", - "Wallis és Futuna", - "Zambia", - "Zimbabwe", - "Zöld-foki szigetek", - ) - - def administrative_unit(self) -> str: - return self.random_element(self.counties) - - county = administrative_unit - - def street_address_with_county(self) -> str: - return f"{self.street_address()}\n{self.county()} megye\n{self.postcode()} {self.city().capitalize()}" - - def city_prefix(self) -> str: - return self.random_element(self.city_prefs) - - def city_part(self) -> str: - return self.random_element(self.city_parts) - - def real_city_name(self) -> str: - return self.random_element(self.real_city_names) - - def frequent_street_name(self) -> str: - return self.random_element(self.frequent_street_names) - - def postcode(self) -> str: - return ( - f"H-{super().random_digit_not_null()}{super().random_digit()}" - f"{super().random_digit()}{super().random_digit()}" - ) - - def street_name(self) -> str: - return super().street_name().capitalize() - - def building_number(self) -> str: - numeric_part = super().random_int(1, 250) - return str(numeric_part) + "." - - # method added to fix #1996: - # for hu_Hu locale city_part could be first or second component of city, - # so city_parts tuple should contain lower-cased strings. Thus city might be lower-cased and should be capitalized - def city(self) -> str: - """ - :example: 'Györgyháza' - """ - pattern: str = self.random_element(self.city_formats) - return self.generator.parse(pattern).capitalize() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/hu_HU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/hu_HU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 02bbb51..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/hu_HU/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/hy_AM/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/hy_AM/__init__.py deleted file mode 100644 index 3f4c951..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/hy_AM/__init__.py +++ /dev/null @@ -1,686 +0,0 @@ -from typing import Optional - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{first_name}}",) - city_prefixes = ("ք.",) - city_suffixes = ("",) - street_prefixes = ("փողոց", "պողոտա") - street_suffixes = ("",) - village_prefixes = ("գ.",) - - address_formats = ( - "{{city_prefix}} {{city}}, {{street_name}} {{building_number}}", - "{{city_prefix}} {{city}}, {{street_name}} {{building_number}}, {{secondary_address}}", - "{{city_prefix}} {{city}}, {{postcode}}, {{street_name}} {{building_number}}", - "{{city_prefix}} {{city}}, {{postcode}}, {{street_name}} {{building_number}}, {{secondary_address}}", - "{{village_prefix}} {{village}}, {{state}}ի մարզ, {{postcode}}, {{street_name}} {{building_number}}", - ) - building_number_formats = ("#", "##", "###") - postcode_formats = ("0###", "1###", "2###", "3###", "4###") - secondary_address_formats = ("բն. #", "բն. ##", "բն. ##") - street_address_formats = ("{{street_name}} {{building_number}}",) - street_name_formats = ("{{street}}",) - - # Source: List of cities and towns in Armenia (Wikipedia) - # https://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Armenia - cities = ( - "Աբովյան", - "Ագարակ", - "Ալավերդի", - "Ախթալա", - "Այրում", - "Աշտարակ", - "Ապարան", - "Արարատ", - "Արթիկ", - "Արմավիր", - "Արտաշատ", - "Բերդ", - "Բյուրեղավան", - "Գավառ", - "Գյումրի", - "Գորիս", - "Դաստակերտ", - "Դիլիջան", - "Եղեգնաձոր", - "Եղվարդ", - "Երևան", - "Վաղարշապատ", - "Թալին", - "Թումանյան", - "Իջևան", - "Ծաղկաձոր", - "Կապան", - "Հրազդան", - "Ճամբարակ", - "Մասիս", - "Մարալիկ", - "Մարտունի", - "Մեծամոր", - "Մեղրի", - "Նոր Հաճն", - "Նոյեմբերյան", - "Շամլուղ", - "Չարենցավան", - "Ջերմուկ", - "Սիսիան", - "Սպիտակ", - "Ստեփանավան", - "Սևան", - "Վայք", - "Վանաձոր", - "Վարդենիս", - "Վեդի", - "Տաշիր", - "Քաջարան", - ) - - # Source: Wikipedia's list of sovereign states - # https://en.wikipedia.org/wiki/List_of_sovereign_states - countries = ( - "Աֆղանստան", - "Ալբանիա", - "Ալժիր", - "Ամերիկյան Սամոա", - "Անդորրա", - "Անգոլա", - "Անգիլիա", - "Անտարկտիկա", - "Անտիգուա և Բարբուդա", - "Արգենտինա", - "Հայաստան", - "Արուբա", - "Ավստրալիա", - "Ավստրիա", - "Ադրբեջան", - "Բահամներ", - "Բահրեյն", - "Բանգլադեշ", - "Բարբադոս", - "Բելառուս", - "Բելգիա", - "Բելիզ", - "Բենին", - "Բերմուդա", - "Բութան", - "Բոլիվիա", - "Բոսնիա և Հերցեգովինա", - "Բոտսվանա", - "Բրազիլիա", - "Բրունեյ Դարուսսալամ", - "Բուլղարիա", - "Բուրկինա Ֆասո", - "Բուրունդի", - "Կամբոջա", - "Կամերուն", - "Կանադա", - "Կաբո Վերդե", - "Կայման Կղզիներ", - "Կենտրոնական Աֆրիկյան Հանրապետություն", - "Չադ", - "Չիլի", - "Չինաստան", - "Սուրբ Ծննդյան Կղզի", - "Կոկոս Կղզիներ", - "Կոլումբիա", - "Կոմորյան Կղզիներ", - "Կոնգո", - "Կուկի Կղզիներ", - "Կոստա Ռիկա", - "Կոտ դ'Իվուար", - "Խորվաթիա", - "Կուբա", - "Կիպրոս", - "Չեխիայի Հանրապետություն", - "Դանիա", - "Ջիբութի", - "Դոմինիկա", - "Դոմինիկյան Հանրապետություն", - "Էկվադոր", - "Եգիպտոս", - "Սալվադոր", - "Հասարակածային Գվինեա", - "Էրիտրեա", - "Էստոնիա", - "Եթովպիա", - "Ֆարերյան Կղզիներ", - "Ֆոլկլենդյան Կղզիներ", - "Ֆիջի", - "Ֆինլանդիա", - "Ֆրանսիա", - "Ֆրանսիական Գվիանա", - "Ֆրանսիական Պոլինեզիա", - "Ֆրանսիական Հարավային Տարածքներ", - "Գաբոն", - "Գամբիա", - "Վրաստան", - "Գերմանիա", - "Գանա", - "Ջիբրալթար", - "Հունաստան", - "Գրենլանդիա", - "Գրենադա", - "Գվադելուպա", - "Գուամ", - "Գվատեմալա", - "Գերնսի", - "Գվինեա", - "Գվինեա Բիսաու", - "Գայանա", - "Հաիթի", - "Վատիկան", - "Հոնդուրաս", - "Հոնգ Կոնգ", - "Հունգարիա", - "Իսլանդիա", - "Հնդկաստան", - "Ինդոնեզիա", - "Իրան", - "Իրաք", - "Իռլանիա", - "Իսրայել", - "Իտալիա", - "Ջամայկա", - "Ճապոնիա", - "Հորդանան", - "Ղազախստան", - "Քենիա", - "Կիրիբատի", - "Հյուսիսային Կորեա", - "Հարավային Կորեա", - "Կոսովո", - "Քուվեյթ", - "Ղրղզստան", - "Լաոս", - "Լատվիա", - "Լիբանան", - "Լեսոտո", - "Լիբերիա", - "Լիբիական Արաբական Ջամահիրիա", - "Լիխտենշտեյն", - "Լիտվա", - "Լյուքսեմբուրգ", - "Մակաո", - "Հյուսիսային Մակեդոնիա", - "Մադագասկար", - "Մալավի", - "Մալազիա", - "Մալդիվներ", - "Մալի", - "Մալթա", - "Մարշալյան Կղզիներ", - "Մարտինիկ", - "Մավրիտանիա", - "Մավրիկիոս", - "Մայոտտե", - "Մեքսիկա", - "Միկրոնեզիա", - "Մոլդովա", - "Մոնակո", - "Մոնղոլիա", - "Չեռնոգորիա", - "Մոնսերատ", - "Մարոկկո", - "Մոզամբիկ", - "Մյանմա", - "Նամիբիա", - "Նաուրու", - "Նեպալ", - "Նիդեռլանդական Անտիլներ", - "Նիդերլանդներ", - "Նոր Կալեդոնիա", - "Նոր Զելանդիա", - "Նիկարագուա", - "Նիգեր", - "Նիգերիա", - "Նիուե", - "Նորֆոլկ Կղզի", - "Հյուսիսային Մարիանյան Կղզիներ", - "Նորվեգիա", - "Օման", - "Պակիստան", - "Պալաու", - "Պաղեստին", - "Պանամա", - "Պապուա Նոր Գվինեա", - "Պարագվայ", - "Պերու", - "Ֆիլիպիններ", - "Պիտկիրնյան Կղզիներ", - "Լեհաստան", - "Պորտուգալիա", - "Պուերտո Ռիկո", - "Կատար", - "Ռումինիա", - "Ռուսաստանի Դաշնություն", - "Ռուանդա", - "Սուրբ Բարդուղիմեոս", - "Սուրբ Հելենա", - "Սենտ Կիտս և Նևիս", - "Սուրբ Լուչիա", - "Սուրբ Մարտին", - "Սեն Պիեռ և Միկելոն", - "Սենթ Վինսենթ և Գրենադիններ", - "Սամոա", - "Սան Մարինո", - "Սաուդյան Արաբիա", - "Սենեգալ", - "Սերբիա", - "Սեյշելներ", - "Սիերա Լեոնե", - "Սինգապուր", - "Սլովակիա", - "Սլովենիա", - "Սողոմոնյան Կղզիներ", - "Սոմալի", - "Հարավային Աֆրիկա", - "Իսպանիա", - "Շրի Լանկա", - "Սուդան", - "Սուրինամ", - "Սվալբարդ և Յան Մայենյան Կղզիներ", - "Սվազիլենդ", - "Շվեդիա", - "Շվեյցարիա", - "Սիրիայի Արաբական Հանրապետություն", - "Թայվան", - "Տաջիկստան", - "Տանզանիա", - "Թաիլանդ", - "Տոգո", - "Տոկելաու", - "Տոնգա", - "Տրինիդադ և Տոբագո", - "Թունիս", - "Թուրքիա", - "Թուրքմենստան", - "Տուվալու", - "Ուգանդա", - "Ուկրաինա", - "Արաբական Միացյալ Էմիրություններ", - "Մեծ Բրիտանիա", - "Ամերիկայի Միացյալ Նահանգներ", - "Ուրուգվայ", - "Ուզբեկստան", - "Վենեսուելա", - "Վիետնամ", - "Ուոլիս և Ֆուտունա", - "Արևմտյան Սահարա", - "Եմեն", - "Զամբիա", - "Զիմբաբվե", - ) - - # Source: Administrative divisions of Armenia (Wikipedia) - # https://en.wikipedia.org/wiki/Administrative_divisions_of_Armenia - states = ( - "Արագածոտն", - "Արարատ", - "Արմավիր", - "Գեղարքունիք", - "Լոռի", - "Կոտայք", - "Շիրակ", - "Սյունիք", - "Տավուշ", - "Վայոց Ձոր", - ) - - states_abbr = ( - "ԱԳ", - "ԱՐ", - "ԱՄ", - "ԳՂ", - "ԼՌ", - "ԿՏ", - "ՇԿ", - "ՍՅ", - "ՎՁ", - "ՏՎ", - ) - - # Source: Postal codes in Armenia (Wikipedia) - # https://en.wikipedia.org/wiki/Postal_codes_in_Armenia - states_postcode = { - "ԱԳ": (200, 599), - "ԱՐ": (600, 899), - "ԱՄ": (900, 1199), - "ԳՂ": (1200, 1699), - "ԼՌ": (1700, 2199), - "ԿՏ": (2200, 2599), - "ՇԿ": (2600, 3199), - "ՍՅ": (3200, 3599), - "ՎՁ": (3600, 3899), - "ՏՎ": (3900, 4299), - } - - streets = ( - "Ազատության", - "Արշակունյաց", - "Արցախի", - "Գայի", - "Ծովակալ Իսակովի", - "Կոմիտասի", - "Հյուսիսային", - "Մաշտոցի", - "Մարշալ Բաղրամյան", - "Մյասնիկյան", - "Սայաթ-Նովայի", - "Տիգրան Մեծի", - "Աբելյան", - "Աբովյան", - "Ագաթանգեղոսի", - "Ազատամարտիկների", - "Աթենքի", - "Աթոյան", - "Ալեք Մանուկյան", - "Ալիխանյան", - "Աղայան", - "Աղյուսագործների", - "Ամիրյան", - "Այասի", - "Անտառային", - "Անրի Վեռնոյի", - "Ավագ Պետրոսյան", - "Արամ Խաչատրյան", - "Արամի", - "Արգիշտիի", - "Արմենակյան", - "Բայրոնի", - "Բարձրաբերդի", - "Բելինսկու", - "Բեյրութի", - "Բուդապեշտի", - "Բուռնազյան", - "Բրյուսովի", - "Գալոյան Եղբայրների", - "Գարեգին Նժդեհի", - "Գետառի", - "Գլինկայի", - "Գյուլբենկյան", - "Գրիգոր Լուսավորչի", - "Գրիգոր Հարությունյան", - "Գրիգոր Տեր-Գրիգորյան", - "Գևորգ Էմինի", - "Գևորգ Հովսեփյան", - "Գևորգ Քոչարի", - "Դեղատան", - "Դերենիկ Դեմիրճյան", - "Եզնիկ Կողբացու", - "Եկմալյան", - "Երվանդ Քոչարի", - "Զավարյան", - "Զարոբյան", - "Զաքյան", - "Էրեբունու", - "Թաիրովի", - "Թամանյան", - "Թորամանյան", - "Թումանյան", - "Իսահակյան", - "Իսրայելյան", - "Իտալիայի", - "Լամբրոնի", - "Լենինգրադյան", - "Լեոյի", - "Լեոնիդ Ազգալդյան", - "Լեռ Կամսարի", - "Լիսինյան", - "Լոմոնոսովի", - "Լոռիս-Մելիքովի", - "Լուսինյանց", - "Խանզադյան", - "Խանջյան", - "Ծատուրյան", - "Ծխախոտագործների", - "Կալենցի", - "Կասյան", - "Կարեն Դեմիրճյան", - "Կիևյան", - "Կոնդի", - "Կորի", - "Կորյունի", - "Կուստոյի", - "Կռիլովի", - "Հալաբյան", - "Հակոբ Հակոբյան", - "Հայրիկ Մուրադյան", - "Հանրապետության", - "Հերացու", - "Հին Երևանցու", - "Հնդկաստանի", - "Հովհաննես Կոզեռնի", - "Հրանտ Շահինյան", - "Հրաչյա Քոչարի", - "Ձորափի", - "Ղազար Փարպեցու", - "Մայիսյան", - "Մարկ Գրիգորյան", - "Մարտի 8-ի", - "Մելիք-Ադամյան", - "Միչուրինի", - "Մհեր Մկրտչյան", - "Մոնթե Մելքոնյան", - "Մոսկովյան", - "Մովսես Խորենացու", - "Մուրացանի", - "Նալբանդյան", - "Նար-Դոսի", - "Նորքի", - "Շարա Տալյան", - "Շարիմանյան", - "Շուկայի", - "Ոսկերիչների", - "Չայկովսկու", - "Չարենցի", - "Չեռնիշևսկու", - "Պարոնյան", - "Պետրոս Ադամյան", - "Պուշկինի", - "Պռոշյան", - "Պրահայի", - "Ռոստոմի", - "Ռոստովյան", - "Ռուսթավելու", - "Սասունցի Դավթի", - "Սարալանջի", - "Սարմենի", - "Սարյան", - "Սեբաստիայի", - "Սերգեյ Փարաջանովի", - "Սիլվա Կապուտիկյան", - "Սիմեոն Երևանցու", - "Սիսվանի", - "Սոսեի", - "Սուվորովի", - "Սուրբ Հովհաննեսի", - "Սպենդիարյան", - "Ստեփան Զորյան", - "Սևանի", - "Վազգեն Սարգսյան", - "Վահրամ Փափազյան", - "Վաղարշյան", - "Վարդան Աճեմյան", - "Վարդանանց", - "Վերֆելի", - "Վրացյան", - "Տարսոնի", - "Տերյան", - "Տոլստոյի", - "Տպագրիչների", - "Ցախի", - "Փավստոս Բուզանդի", - "Քաջազնունու", - "Քոչինյան", - "Քրիստափորի", - "Օստրովսկու", - "Օրբելի Եղբայրների", - "Ֆիզկուլտուրնիկների", - "Ֆիրդուսու", - "Ֆրիկի", - ) - - # Source: Villages in Armenia (Wikipedia) - # http://www.armeniapedia.org/wiki/Armenian_Towns_and_Villages - villages = ( - "Ագարակ", - "Անտառուտ", - "Բերքառատ", - "Գեղաձոր", - "Գետափ", - "Զովասար", - "Լեռնապար", - "Լուսագյուղ", - "Կաթնաղբյուր", - "Կաքավաձոր", - "Հացաշեն", - "Նորաշեն", - "Շենավան", - "Ոսկեվազ", - "Ցամաքասար", - "Այգեզարդ", - "Բարձրաշեն", - "Բերքանուշ", - "Լանջանիստ", - "Լուսաշող", - "Ջրաշեն", - "Քաղցրաշեն", - "Այգեկ", - "Առատաշեն", - "Բամբակաշատ", - "Գեղակերտ", - "Լեռնամերձ", - "Ծաղկալանջ", - "Հացիկ", - "Մերձավան", - "Քարակերտ", - "Անտառամեջ", - "Արծվաշեն", - "Գեղաքար", - "Զովաբեր", - "Լանջաղբյուր", - "Շատջրեք", - "Այգեհատ", - "Դարպաս", - "Լեռնահովիտ", - "Հարթագյուղ", - "Պաղաղբյուր", - "Սարամեջ", - "Քարաձոր", - "Զովք", - "Լեռնանիստ", - "Մեղրաձոր", - "Այգաբաց", - "Թավշուտ", - "Լանջիկ", - "Կարմրավան", - "Հայկասար", - "Նահապետավան", - "Վարդաղբյուր", - "Քարաբերդ", - "Արծվանիկ", - "Բարձրավան", - "Կաղնուտ", - "Հացավան", - "Նռնաձոր", - "Սառնակունք", - "Աղավնաձոր", - "Սևաժայռ", - "Վերնաշեն", - "Այգեհովիտ", - "Արծվաբերդ", - "Բերքաբեր", - "Գետահովիտ", - "Ծաղկավան", - "Հաղթանակ", - "Ոսկեպար", - "Սարիգյուղ", - ) - - def city(self) -> str: - """ - :example: 'Բյուրեղավան' - """ - return self.random_element(self.cities) - - def city_prefix(self) -> str: - """ - :example: 'ք.' - """ - return self.random_element(self.city_prefixes) - - def postcode(self) -> str: - """ - :example: '3159' - """ - return "%04d" % self.generator.random.randint(200, 4299) - - def postcode_in_state(self, state_abbr: Optional[str] = None) -> str: - """ - :example: '4703' - """ - if state_abbr is None: - state_abbr = self.random_element(self.states_abbr) - - if state_abbr in self.states_abbr: - postcode = "%d" % ( - self.generator.random.randint( - self.states_postcode[state_abbr][0], - self.states_postcode[state_abbr][1], - ) - ) - - if len(postcode) == 3: - postcode = "0%s" % postcode - - return postcode - - else: - raise Exception("State Abbreviation not found in list") - - def secondary_address(self) -> str: - """ - :example: 'բն. 49' - """ - return self.numerify(self.random_element(self.secondary_address_formats)) - - def administrative_unit(self) -> str: - """ - :example: 'Կոտայք' - """ - return self.random_element(self.states) - - state = administrative_unit - - def state_abbr(self) -> str: - """ - :example: 'ՎՁ' - """ - return self.random_element(self.states_abbr) - - def street(self) -> str: - """ - :example: 'Ոսկերիչների' - """ - return self.random_element(self.streets) - - def street_prefix(self) -> str: - """ - :example: 'փողոց' - """ - return self.random_element(self.street_prefixes) - - def village(self) -> str: - """ - :example: 'Ոսկեվազ' - """ - return self.random_element(self.villages) - - def village_prefix(self) -> str: - """ - :example: 'գ.' - """ - return self.random_element(self.village_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/hy_AM/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/hy_AM/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3050835..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/hy_AM/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/id_ID/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/id_ID/__init__.py deleted file mode 100644 index 35781ad..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/id_ID/__init__.py +++ /dev/null @@ -1,526 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - building_number_formats = ("###", "##", "#") - - city_formats = ("{{city_name}}",) - - postcode_formats = ("#####",) - - street_name_formats = ( - "{{street_prefix_short}} {{street}}", - "{{street_prefix_long}} {{street}}", - ) - - street_address_formats = ("{{street_name}} No. {{building_number}}",) - - address_formats = ( - "{{street_address}}\n{{city}}, {{state}} {{postcode}}", - "{{street_address}}\n{{city}}, {{state_abbr}} {{postcode}}", - ) - - # From - # http://elibrary.dephub.go.id/elibrary/media/catalog/0010-021500000000135/swf/618/Lampiran%20E%20Data%20Bandung.pdf - # https://www.surabaya.go.id/id/info-penting/47601/daftar-nama-jalan-dan-status-ja - # https://www.streetdirectory.com/indonesia/jakarta/asia_travel/street/popular/ - streets = ( - "Abdul Muis", - "Antapani Lama", - "Asia Afrika", - "Astana Anyar", - "BKR", - "Cihampelas", - "Cikapayang", - "Cikutra Barat", - "Cikutra Timur", - "Ciumbuleuit", - "Ciwastra", - "Dipatiukur", - "Dipenogoro", - "Dr. Djunjunan", - "Gardujati", - "Gedebage Selatan", - "Gegerkalong Hilir", - "HOS. Cokroaminoto", - "Ir. H. Djuanda", - "Jakarta", - "Jamika", - "Jend. A. Yani", - "Jend. Sudirman", - "K.H. Wahid Hasyim", - "Kebonjati", - "Kiaracondong", - "Laswi", - "Lembong", - "Merdeka", - "Moch. Ramdan", - "Moch. Toha", - "Pacuan Kuda", - "Pasir Koja", - "Pasirkoja", - "Pasteur", - "Pelajar Pejuang", - "Peta", - "PHH. Mustofa", - "Rajawali Barat", - "Rajawali Timur", - "Raya Setiabudhi", - "Raya Ujungberung", - "Rumah Sakit", - "Sadang Serang", - "Sentot Alibasa", - "Setiabudhi", - "Siliwangi", - "Soekarno Hatta", - "Sukabumi", - "Sukajadi", - "Suniaraja", - "Surapati", - "Tubagus Ismail", - "Veteran", - "W.R. Supratman", - "Bangka Raya", - "Cempaka", - "Cihampelas", - "Erlangga", - "Rawamangun", - "Waringin", - "Ronggowarsito", - "Rajiman", - "Yos Sudarso", - "S. Parman", - "Monginsidi", - "M.T Haryono", - "Ahmad Dahlan", - "Jayawijaya", - "R.E Martadinata", - "M.H Thamrin", - "Stasiun Wonokromo", - "Ahmad Yani", - "Joyoboyo", - "Indragiri", - "Kutai", - "Kutisari Selatan", - "Rungkut Industri", - "Kendalsari", - "Wonoayu", - "Medokan Ayu", - "KH Amin Jasuta", - "H.J Maemunah", - "Suryakencana", - "Kapten Muslihat", - "Otto Iskandardinata", - "Tebet Barat Dalam", - ) - - street_prefixes_long = ( - "Jalan", - "Gang", - ) - - street_prefixes_short = ( - "Jl.", - "Gg.", - ) - - # From - # https://id.wikipedia.org/wiki/Daftar_kabupaten_dan_kota_di_Indonesia#Daftar_kota - cities = ( - "Ambon", - "Balikpapan", - "Banda Aceh", - "Bandar Lampung", - "Bandung", - "Banjar", - "Banjarbaru", - "Banjarmasin", - "Batam", - "Batu", - "Bau-Bau", - "Bekasi", - "Bengkulu", - "Bima", - "Binjai", - "Bitung", - "Blitar", - "Bogor", - "Bontang", - "Bukittinggi", - "Cilegon", - "Cimahi", - "Cirebon", - "Denpasar", - "Depok", - "Dumai", - "Gorontalo", - "Jambi", - "Jayapura", - "Kediri", - "Kendari", - "Kota Administrasi Jakarta Barat", - "Kota Administrasi Jakarta Pusat", - "Kota Administrasi Jakarta Selatan", - "Kota Administrasi Jakarta Timur", - "Kota Administrasi Jakarta Utara", - "Kotamobagu", - "Kupang", - "Langsa", - "Lhokseumawe", - "Lubuklinggau", - "Madiun", - "Magelang", - "Makassar", - "Malang", - "Manado", - "Mataram", - "Medan", - "Metro", - "Meulaboh", - "Mojokerto", - "Padang", - "Padang Sidempuan", - "Padangpanjang", - "Pagaralam", - "Palangkaraya", - "Palembang", - "Palopo", - "Palu", - "Pangkalpinang", - "Parepare", - "Pariaman", - "Pasuruan", - "Payakumbuh", - "Pekalongan", - "Pekanbaru", - "Pematangsiantar", - "Pontianak", - "Prabumulih", - "Probolinggo", - "Purwokerto", - "Sabang", - "Salatiga", - "Samarinda", - "Sawahlunto", - "Semarang", - "Serang", - "Sibolga", - "Singkawang", - "Solok", - "Sorong", - "Subulussalam", - "Sukabumi", - "Sungai Penuh", - "Surabaya", - "Surakarta", - "Tangerang", - "Tangerang Selatan", - "Tanjungbalai", - "Tanjungpinang", - "Tarakan", - "Tasikmalaya", - "Tebingtinggi", - "Tegal", - "Ternate", - "Tidore Kepulauan", - "Tomohon", - "Tual", - "Yogyakarta", - ) - - # From https://id.wikipedia.org/wiki/Daftar_provinsi_di_Indonesia - states = ( - "Aceh", - "Bali", - "Banten", - "Bengkulu", - "DI Yogyakarta", - "DKI Jakarta", - "Gorontalo", - "Jambi", - "Jawa Barat", - "Jawa Tengah", - "Jawa Timur", - "Kalimantan Barat", - "Kalimantan Selatan", - "Kalimantan Tengah", - "Kalimantan Timur", - "Kalimantan Utara", - "Kepulauan Bangka Belitung", - "Kepulauan Riau", - "Lampung", - "Maluku", - "Maluku Utara", - "Nusa Tenggara Barat", - "Nusa Tenggara Timur", - "Papua", - "Papua Barat", - "Riau", - "Sulawesi Barat", - "Sulawesi Selatan", - "Sulawesi Tengah", - "Sulawesi Tenggara", - "Sulawesi Utara", - "Sumatera Barat", - "Sumatera Selatan", - "Sumatera Utara", - ) - - # https://id.wikipedia.org/wiki/Daftar_provinsi_di_Indonesia - states_abbr = ( - "AC", - "BA", - "BT", - "BE", - "YO", - "JK", - "GO", - "JA", - "JB", - "JT", - "JI", - "KB", - "KS", - "KT", - "KI", - "KU", - "BB", - "KR", - "LA", - "MA", - "MU", - "NB", - "NT", - "PA", - "PB", - "RI", - "SR", - "SN", - "ST", - "SG", - "SU", - "SB", - "SS", - "SU", - ) - - # From https://id.wikipedia.org/wiki/Daftar_negara-negara_di_dunia - countries = ( - "Afganistan", - "Afrika Selatan", - "Afrika Tengah", - "Albania", - "Aljazair", - "Amerika Serikat", - "Andorra", - "Angola", - "Antigua dan Barbuda", - "Arab Saudi", - "Argentina", - "Armenia", - "Australia", - "Austria", - "Azerbaijan", - "Bahama", - "Bahrain", - "Bangladesh", - "Barbados", - "Belanda", - "Belarus", - "Belgia", - "Belize", - "Benin", - "Bhutan", - "Bolivia", - "Bosnia dan Herzegovina", - "Botswana", - "Brasil", - "Britania Raya", - "Brunei", - "Bulgaria", - "Burkina Faso", - "Burundi", - "Ceko", - "Chad", - "Chili", - "Denmark", - "Djibouti", - "Dominika", - "Ekuador", - "El Salvador", - "Eritrea", - "Estonia", - "Ethiopia", - "Federasi Mikronesia", - "Fiji", - "Filipina", - "Finlandia", - "Gabon", - "Gambia", - "Georgia", - "Ghana", - "Grenada", - "Guatemala", - "Guinea", - "Guinea Khatulistiwa", - "Guinea-Bissau", - "Guyana", - "Haiti", - "Honduras", - "Hongaria", - "India", - "Indonesia", - "Irak", - "Iran", - "Islandia", - "Israel", - "Italia", - "Jamaika", - "Jepang", - "Jerman", - "Kamboja", - "Kamerun", - "Kanada", - "Kazakhstan", - "Kenya", - "Kepulauan Marshall", - "Kepulauan Solomon", - "Kirgizstan", - "Kiribati", - "Kolombia", - "Komoro", - "Korea Selatan", - "Korea Utara", - "Kosta Rika", - "Kroasia", - "Kuba", - "Kuwait", - "Laos", - "Latvia", - "Lebanon", - "Lesotho", - "Liberia", - "Libya", - "Liechtenstein", - "Lituania", - "Luksemburg", - "Madagaskar", - "Makedonia Utara", - "Maladewa", - "Malawi", - "Malaysia", - "Mali", - "Malta", - "Maroko", - "Mauritania", - "Mauritius", - "Meksiko", - "Mesir", - "Moldova", - "Monako", - "Mongolia", - "Montenegro", - "Mozambik", - "Myanmar", - "Namibia", - "Nauru", - "Nepal", - "Niger", - "Nigeria", - "Nikaragua", - "Norwegia", - "Oman", - "Pakistan", - "Palau", - "Panama", - "Pantai Gading", - "Papua Nugini", - "Paraguay", - "Perancis", - "Peru", - "Polandia", - "Portugal", - "Qatar", - "Republik Demokratik Kongo", - "Republik Dominika", - "Republik Irlandia", - "Republik Kongo", - "Republik Rakyat Tiongkok", - "Rumania", - "Rusia", - "Rwanda", - "Saint Kitts dan Nevis", - "Saint Lucia", - "Saint Vincent dan Grenadine", - "Samoa", - "San Marino", - "São Tomé dan Príncipe", - "Selandia Baru", - "Senegal", - "Serbia", - "Seychelles", - "Sierra Leone", - "Singapura", - "Siprus", - "Slovenia", - "Slowakia", - "Somalia", - "Spanyol", - "Sri Lanka", - "Sudan", - "Sudan Selatan", - "Suriah", - "Suriname", - "Swaziland", - "Swedia", - "Swiss", - "Tajikistan", - "Tanjung Verde", - "Tanzania", - "Thailand", - "Timor Leste", - "Togo", - "Tonga", - "Trinidad dan Tobago", - "Tunisia", - "Turki", - "Turkmenistan", - "Tuvalu", - "Uganda", - "Ukraina", - "Uni Emirat Arab", - "Uruguay", - "Uzbekistan", - "Vanuatu", - "Vatikan", - "Venezuela", - "Vietnam", - "Yaman", - "Yordania", - "Yunani", - "Zambia", - "Zimbabwe", - ) - - def street(self) -> str: - return self.random_element(self.streets) - - def street_prefix_short(self) -> str: - return self.random_element(self.street_prefixes_short) - - def street_prefix_long(self) -> str: - return self.random_element(self.street_prefixes_long) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit - - def state_abbr(self) -> str: - return self.random_element(self.states_abbr) - - def country(self) -> str: - return self.random_element(self.countries) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/id_ID/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/id_ID/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 268bc5e..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/id_ID/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/it_IT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/it_IT/__init__.py deleted file mode 100644 index 35de91f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/it_IT/__init__.py +++ /dev/null @@ -1,17659 +0,0 @@ -from typing import List - -from .. import Provider as AddressProvider - - -def getcities(fulldict): - return list({c[0] for _cap, cities in fulldict.items() for c in cities}) - - -class Provider(AddressProvider): - # Converted from: https://download.geonames.org/export/zip/IT.zip - cap_city_province = { - "67010": [["Barete", "AQ"]], - "67012": [["San Giovanni", "AQ"], ["Cagnano Amiterno", "AQ"]], - "67013": [["Mascioni", "AQ"], ["Campotosto", "AQ"], ["Ortolano", "AQ"], ["Poggio Cancelli", "AQ"]], - "67014": [["Capitignano", "AQ"]], - "67015": [ - ["Marana Di Montereale", "AQ"], - ["Marana", "AQ"], - ["Cesaproba", "AQ"], - ["Aringo", "AQ"], - ["Ville Di Fano", "AQ"], - ["Montereale", "AQ"], - ["San Giovanni Paganica", "AQ"], - ], - "67017": [["Pizzoli", "AQ"], ["Marruci", "AQ"], ["San Lorenzo Di Pizzoli", "AQ"]], - "67019": [["Sella Di Corno", "AQ"], ["Vigliano", "AQ"], ["Scoppito", "AQ"]], - "67020": [ - ["Castelnuovo Di San Pio Delle Camere", "AQ"], - ["Villa Santa Lucia Degli Abruzzi", "AQ"], - ["Santo Stefano Di Sessanio", "AQ"], - ["Castelnuovo", "AQ"], - ["Castelvecchio Calvisio", "AQ"], - ["Beffi", "AQ"], - ["Castel Di Ieri", "AQ"], - ["Fagnano Alto", "AQ"], - ["Calascio", "AQ"], - ["Acciano", "AQ"], - ["Tussio", "AQ"], - ["San Benedetto In Perillis", "AQ"], - ["Navelli", "AQ"], - ["Collepietro", "AQ"], - ["Molina Aterno", "AQ"], - ["Civitaretenga", "AQ"], - ["San Pio Delle Camere", "AQ"], - ["Gagliano Aterno", "AQ"], - ["Fossa", "AQ"], - ["Goriano Valli", "AQ"], - ["Fontecchio", "AQ"], - ["Prata D'Ansidonia", "AQ"], - ["Roccapreturo", "AQ"], - ["Tione Degli Abruzzi", "AQ"], - ["Carapelle Calvisio", "AQ"], - ["Carrufo", "AQ"], - ["Sant'Eusanio Forconese", "AQ"], - ["Caporciano", "AQ"], - ["Villa Sant'Angelo", "AQ"], - ], - "67021": [["Barisciano", "AQ"], ["Picenze", "AQ"]], - "67022": [["Capestrano", "AQ"]], - "67023": [["Castel Del Monte", "AQ"]], - "67024": [["Castelvecchio Subequo", "AQ"]], - "67025": [["Ofena", "AQ"]], - "67026": [["Poggio Picenze", "AQ"]], - "67027": [["Raiano", "AQ"]], - "67028": [["San Demetrio Ne' Vestini", "AQ"]], - "67029": [["Secinaro", "AQ"]], - "67030": [ - ["Barrea", "AQ"], - ["Villalago", "AQ"], - ["Alfedena", "AQ"], - ["Anversa Degli Abruzzi", "AQ"], - ["Villetta Barrea", "AQ"], - ["Torre Dei Nolfi", "AQ"], - ["Corfinio", "AQ"], - ["Civitella Alfedena", "AQ"], - ["Cansano", "AQ"], - ["Rocca Pia", "AQ"], - ["Castrovalva", "AQ"], - ["Bugnara", "AQ"], - ["Introdacqua", "AQ"], - ["Ateleta", "AQ"], - ["Scontrone", "AQ"], - ["Pacentro", "AQ"], - ["Vittorito", "AQ"], - ["Prezza", "AQ"], - ["Campo Di Fano", "AQ"], - ["Cocullo", "AQ"], - ["Campo Di Giove", "AQ"], - ["Villa Scontrone", "AQ"], - ["Roccacasale", "AQ"], - ["Opi", "AQ"], - ["Goriano Sicoli", "AQ"], - ], - "67031": [["Castel Di Sangro", "AQ"], ["Roccacinquemiglia", "AQ"]], - "67032": [["Pescasseroli", "AQ"]], - "67033": [["Pescocostanzo", "AQ"]], - "67034": [["Pettorano Sul Gizio", "AQ"]], - "67035": [["Bagnaturo", "AQ"], ["Pratola Peligna", "AQ"]], - "67036": [["Rivisondoli", "AQ"]], - "67037": [["Roccaraso", "AQ"], ["Pietransieri", "AQ"], ["Aremogna", "AQ"]], - "67038": [["Scanno", "AQ"], ["Frattura Di Scanno", "AQ"], ["Frattura", "AQ"]], - "67039": [ - ["Torrone Di Sulmona", "AQ"], - ["Cavate", "AQ"], - ["Albanese", "AQ"], - ["Sulmona", "AQ"], - ["Torrone", "AQ"], - ["Marane", "AQ"], - ["Arabona", "AQ"], - ["Abazia Di Sulmona", "AQ"], - ], - "67040": [["Collarmele", "AQ"], ["Ocre", "AQ"], ["San Martino D'Ocre", "AQ"]], - "67041": [["Aielli Stazione", "AQ"], ["Aielli", "AQ"]], - "67043": [["Celano", "AQ"]], - "67044": [["Cerchio", "AQ"]], - "67045": [["Lucoli", "AQ"], ["Casamaina Di Lucoli", "AQ"], ["Casamaina", "AQ"], ["Ville Di Lucoli", "AQ"]], - "67046": [["San Potito", "AQ"], ["Santo Iona", "AQ"], ["Ovindoli", "AQ"]], - "67047": [["Rocca Di Cambio", "AQ"]], - "67048": [["Rocca Di Mezzo", "AQ"], ["Rovere", "AQ"], ["Rovere Di Rocca Di Mezzo", "AQ"]], - "67049": [ - ["Rocca Santo Stefano", "AQ"], - ["San Nicola Di Tornimparte", "AQ"], - ["Villagrande", "AQ"], - ["Rocca Santo Stefano Di Tornimparte", "AQ"], - ["Tornimparte", "AQ"], - ["San Nicola", "AQ"], - ], - "67050": [ - ["Ortucchio", "AQ"], - ["Roccavivi", "AQ"], - ["Castellafiume", "AQ"], - ["Lecce Nei Marsi", "AQ"], - ["Forme", "AQ"], - ["Villavallelonga", "AQ"], - ["Canistro Inferiore", "AQ"], - ["Collelongo", "AQ"], - ["Pagliara", "AQ"], - ["San Vincenzo Valle Roveto", "AQ"], - ["Civita D'Antino", "AQ"], - ["Corona", "AQ"], - ["Bisegna", "AQ"], - ["Canistro", "AQ"], - ["Ortona Dei Marsi", "AQ"], - ["San Vincenzo Valle Roveto Superiore", "AQ"], - ["Albe", "AQ"], - ["Castronovo", "AQ"], - ["Pagliara Dei Marsi", "AQ"], - ["Canistro Superiore", "AQ"], - ["San Sebastiano", "AQ"], - ["Morino", "AQ"], - ["Pero Dei Santi", "AQ"], - ["Rendinara", "AQ"], - ["Grancia", "AQ"], - ["Carrito", "AQ"], - ["San Vincenzo Vecchio", "AQ"], - ["Massa D'Albe", "AQ"], - ], - "67051": [ - ["San Pelino", "AQ"], - ["Cese", "AQ"], - ["Antrosano", "AQ"], - ["Santuario Di Pietracquaria", "AQ"], - ["Avezzano", "AQ"], - ["Paterno", "AQ"], - ], - "67052": [["Balsorano Nuovo", "AQ"], ["Ridotti", "AQ"], ["Ridotti Di Balsorano", "AQ"], ["Balsorano", "AQ"]], - "67053": [ - ["Capistrello", "AQ"], - ["Corcumello", "AQ"], - ["Pescocanale", "AQ"], - ["Pescocanale Di Capistrello", "AQ"], - ], - "67054": [["Meta", "AQ"], ["Civitella Roveto", "AQ"]], - "67055": [["Gioia Dei Marsi", "AQ"], ["Casali D'Aschi", "AQ"]], - "67056": [["Luco Dei Marsi", "AQ"]], - "67057": [["Venere", "AQ"], ["Pescina", "AQ"]], - "67058": [["San Benedetto Dei Marsi", "AQ"]], - "67059": [["Trasacco", "AQ"]], - "67060": [["Cappadocia", "AQ"], ["Petrella Liri", "AQ"], ["Verrecchie", "AQ"]], - "67061": [ - ["Villa Romana", "AQ"], - ["Pietrasecca", "AQ"], - ["Montesabinese", "AQ"], - ["Tufo Di Carsoli", "AQ"], - ["Carsoli", "AQ"], - ["Colli Di Montebove", "AQ"], - ["Poggio Cinolfo", "AQ"], - ], - "67062": [ - ["Magliano De' Marsi", "AQ"], - ["Marano Dei Marsi", "AQ"], - ["Rosciolo", "AQ"], - ["Rosciolo Dei Marsi", "AQ"], - ], - "67063": [["Oricola", "AQ"], ["Civita", "AQ"]], - "67064": [["Pereto", "AQ"]], - "67066": [["Rocca Di Botte", "AQ"]], - "67067": [ - ["Scanzano", "AQ"], - ["Santo Stefano", "AQ"], - ["Santo Stefano Di Sante Marie", "AQ"], - ["Sante Marie", "AQ"], - ], - "67068": [["Scurcola Marsicana", "AQ"], ["Cappelle", "AQ"], ["Cappelle Dei Marsi", "AQ"]], - "67069": [ - ["San Donato Di Tagliacozzo", "AQ"], - ["Villa San Sebastiano", "AQ"], - ["Sorbo Di Tagliacozzo", "AQ"], - ["Gallo", "AQ"], - ["Tremonti", "AQ"], - ["San Donato", "AQ"], - ["Tagliacozzo", "AQ"], - ["Sorbo", "AQ"], - ["Poggetello Di Tagliacozzo", "AQ"], - ["Gallo Di Tagliacozzo", "AQ"], - ["Poggetello", "AQ"], - ["Poggio Filippo", "AQ"], - ["Roccacerro", "AQ"], - ], - "67100": [ - ["Pagliare", "AQ"], - ["Arischia", "AQ"], - ["Monticchio", "AQ"], - ["San Gregorio", "AQ"], - ["San Vittorino", "AQ"], - ["Tempera", "AQ"], - ["Bagno", "AQ"], - ["Preturo", "AQ"], - ["Pile", "AQ"], - ["Aragno", "AQ"], - ["Colle Brincioni", "AQ"], - ["Pianola", "AQ"], - ["Colle Di Roio", "AQ"], - ["Poggio Di Roio", "AQ"], - ["Coppito", "AQ"], - ["Assergi", "AQ"], - ["Forcella", "AQ"], - ["Onna", "AQ"], - ["Santi", "AQ"], - ["L'Aquila", "AQ"], - ["Paganica", "AQ"], - ["Roio Piano", "AQ"], - ["San Benedetto", "AQ"], - ["Collebrincioni", "AQ"], - ["Campo Imperatore", "AQ"], - ["Bazzano", "AQ"], - ["San Vittorino Amiterno", "AQ"], - ["Camarda", "AQ"], - ["Sassa", "AQ"], - ], - "66010": [ - ["Gessopalena", "CH"], - ["Pennapiedimonte", "CH"], - ["Ari", "CH"], - ["Ripa Teatina", "CH"], - ["Canosa Sannita", "CH"], - ["Tollo", "CH"], - ["Roccamontepiano", "CH"], - ["San Rocco", "CH"], - ["Pretoro", "CH"], - ["Lama Dei Peligni", "CH"], - ["Montenerodomo", "CH"], - ["Semivicoli", "CH"], - ["San Martino Sulla Marrucina", "CH"], - ["Lettopalena", "CH"], - ["San Pietro", "CH"], - ["Vacri", "CH"], - ["Civitella Messer Raimondo", "CH"], - ["Terranova", "CH"], - ["Giuliano Teatino", "CH"], - ["Rapino", "CH"], - ["Fara Filiorum Petri", "CH"], - ["Torrevecchia Teatina", "CH"], - ["Miglianico", "CH"], - ["Casacanditella", "CH"], - ["Castelferrato", "CH"], - ["Palombaro", "CH"], - ["Colledimacine", "CH"], - ["Villamagna", "CH"], - ], - "66011": [["Colle Sant'Antonio", "CH"], ["Bucchianico", "CH"]], - "66012": [["Casalincontrada", "CH"]], - "66014": [["Villa Tucci", "CH"], ["Crecchio", "CH"]], - "66015": [["Fara San Martino", "CH"]], - "66016": [ - ["Villa San Vincenzo", "CH"], - ["Comino", "CH"], - ["Piano Delle Fonti", "CH"], - ["Caporosso", "CH"], - ["Guardiagrele", "CH"], - ], - "66017": [["Palena", "CH"]], - "66018": [["Taranta Peligna", "CH"]], - "66019": [["Fallascoso", "CH"], ["Torricella Peligna", "CH"]], - "66020": [ - ["Torino Di Sangro Stazione", "CH"], - ["Pollutri", "CH"], - ["Villalfonsina", "CH"], - ["San Giacomo Di Scerni", "CH"], - ["Sambuceto", "CH"], - ["San Giovanni Teatino", "CH"], - ["Torino Di Sangro", "CH"], - ["Paglieta", "CH"], - ["Rocca San Giovanni", "CH"], - ["Sant'Egidio", "CH"], - ["Scerni", "CH"], - ], - "66021": [["Miracoli", "CH"], ["Casalbordino Stazione", "CH"], ["Casalbordino", "CH"]], - "66022": [["Villascorciosa", "CH"], ["Scorciosa", "CH"], ["Fossacesia Marina", "CH"], ["Fossacesia", "CH"]], - "66023": [["Francavilla Al Mare", "CH"], ["Francavilla Al Mare Rione Foro", "CH"]], - "66026": [ - ["Ortona", "CH"], - ["Ortona Foro", "CH"], - ["San Nicola", "CH"], - ["Villa San Leonardo", "CH"], - ["Ortona Porto", "CH"], - ["Villa Grande", "CH"], - ["San Leonardo", "CH"], - ["Villa Caldari", "CH"], - ["Villa San Nicola", "CH"], - ], - "66030": [ - ["Montazzoli", "CH"], - ["Filetto", "CH"], - ["Villa Romagnoli", "CH"], - ["Santa Maria Imbaro", "CH"], - ["Arielli", "CH"], - ["Guastameroli", "CH"], - ["Poggiofiorito", "CH"], - ["Treglio", "CH"], - ["Frisa", "CH"], - ["Carpineto Sinello", "CH"], - ["Mozzagrogna", "CH"], - ], - "66031": [["Casalanguida", "CH"]], - "66032": [["Castel Frentano", "CH"]], - "66033": [["Castiglione Messer Marino", "CH"]], - "66034": [ - ["Rizzacorno", "CH"], - ["Madonna Del Carmine", "CH"], - ["Lanciano", "CH"], - ["Nasuti", "CH"], - ["Sant'Amato", "CH"], - ["Villa Elce", "CH"], - ], - "66036": [["Orsogna", "CH"]], - "66037": [["Sant'Eusanio Del Sangro", "CH"]], - "66038": [["Marina Di San Vito", "CH"], ["Sant'Apollinare Chietino", "CH"], ["San Vito Chietino", "CH"]], - "66040": [ - ["Pennadomo", "CH"], - ["Roccascalegna", "CH"], - ["Pietraferrazzana", "CH"], - ["Quadri", "CH"], - ["Civitaluparella", "CH"], - ["Rosello", "CH"], - ["Giuliopoli", "CH"], - ["Selva", "CH"], - ["Pizzoferrato", "CH"], - ["Selva Di Altino", "CH"], - ["Altino", "CH"], - ["Monteferrante", "CH"], - ["Perano", "CH"], - ["Montelapiano", "CH"], - ["Buonanotte", "CH"], - ["Colledimezzo", "CH"], - ["Fallo", "CH"], - ["Roio Del Sangro", "CH"], - ["Montebello Sul Sangro", "CH"], - ["Gamberale", "CH"], - ["Borrello", "CH"], - ["Castelguidone", "CH"], - ], - "66041": [ - ["Piana La Fara", "CH"], - ["Atessa", "CH"], - ["Monte Marcone", "CH"], - ["Piazzano Di Atessa", "CH"], - ["Piazzano", "CH"], - ], - "66042": [["Bomba", "CH"]], - "66043": [["Casoli", "CH"], ["Selva Piana", "CH"]], - "66044": [["Piane D'Archi", "CH"], ["Archi", "CH"]], - "66045": [["Schiavi Di Abruzzo", "CH"], ["Taverna Di Schiavi Di Abruzzo", "CH"]], - "66046": [["San Giovanni", "CH"], ["Tornareccio", "CH"]], - "66047": [["Villa Santa Maria", "CH"]], - "66050": [ - ["Lentella", "CH"], - ["Guardiabruna", "CH"], - ["Tufillo", "CH"], - ["Torrebruna", "CH"], - ["San Buono", "CH"], - ["San Giovanni Lipioni", "CH"], - ["Roccaspinalveti", "CH"], - ["Furci", "CH"], - ["Guilmi", "CH"], - ["Dogliola", "CH"], - ["Olmi", "CH"], - ["Celenza Sul Trigno", "CH"], - ["Fraine", "CH"], - ["Liscia", "CH"], - ["Monteodorisio", "CH"], - ["San Salvo", "CH"], - ["Carunchio", "CH"], - ["Fresagrandinaria", "CH"], - ["San Salvo Marina", "CH"], - ["Palmoli", "CH"], - ], - "66051": [["Cupello", "CH"]], - "66052": [["Gissi", "CH"]], - "66054": [ - ["San Lorenzo Di Vasto", "CH"], - ["Incoronata Di Vasto", "CH"], - ["Vasto", "CH"], - ["Marina Di Vasto", "CH"], - ["Vasto Marina", "CH"], - ], - "66100": [ - ["Brecciarola", "CH"], - ["Tricalle", "CH"], - ["Chieti", "CH"], - ["Chieti Scalo", "CH"], - ["Chieti Stazione", "CH"], - ], - "65010": [ - ["Santa Lucia Di Collecorvino", "PE"], - ["Moscufo", "PE"], - ["Montebello Di Bertona", "PE"], - ["Carpineto Della Nora", "PE"], - ["Elice", "PE"], - ["Piccianello", "PE"], - ["Vicoli", "PE"], - ["Civitella Casanova", "PE"], - ["Collecorvino", "PE"], - ["Villa Celiera", "PE"], - ["Caprara D'Abruzzo", "PE"], - ["Spoltore", "PE"], - ["Barberi", "PE"], - ["Farindola", "PE"], - ["Vestea", "PE"], - ["Santa Lucia", "PE"], - ["Congiunti", "PE"], - ["Brittoli", "PE"], - ["Cappelle Sul Tavo", "PE"], - ["Civitaquana", "PE"], - ["Villa Raspa", "PE"], - ["Nocciano", "PE"], - ["Picciano", "PE"], - ["Santa Teresa", "PE"], - ], - "65011": [["Catignano", "PE"]], - "65012": [ - ["Villareia", "PE"], - ["Vallemare Di Cepagatti", "PE"], - ["Vallemare", "PE"], - ["Villanova", "PE"], - ["Cepagatti", "PE"], - ], - "65013": [ - ["Marina", "PE"], - ["San Martino Bassa", "PE"], - ["Citta' Sant'Angelo", "PE"], - ["Villa Cipresso", "PE"], - ], - "65014": [["Loreto Aprutino", "PE"]], - "65015": [ - ["Montesilvano Colle", "PE"], - ["Villa Carmine", "PE"], - ["Montesilvano", "PE"], - ["Montesilvano Spiaggia", "PE"], - ["Montesilvano Marina", "PE"], - ], - "65017": [["Penne", "PE"], ["Roccafinadamo", "PE"]], - "65019": [["Pianella", "PE"], ["Cerratina", "PE"], ["Castellana", "PE"]], - "65020": [ - ["Bolognano", "PE"], - ["Cugnoli", "PE"], - ["Sant'Eufemia A Maiella", "PE"], - ["Alanno", "PE"], - ["Corvara", "PE"], - ["Salle", "PE"], - ["Villa San Giovanni", "PE"], - ["Castiglione A Casauria", "PE"], - ["Pietranico", "PE"], - ["Ticchione", "PE"], - ["Lettomanoppello", "PE"], - ["Musellaro", "PE"], - ["Roccamorice", "PE"], - ["Villa Badessa", "PE"], - ["Rosciano", "PE"], - ["Villa Oliveti", "PE"], - ["Abbateggio", "PE"], - ["San Valentino In Abruzzo Citeriore", "PE"], - ["Pescosansonesco", "PE"], - ["Turrivalignani", "PE"], - ["Pesconuovo", "PE"], - ["Piano D'Orta", "PE"], - ["Alanno Scalo", "PE"], - ["Alanno Stazione", "PE"], - ], - "65022": [["Bussi Officine", "PE"], ["Bussi Sul Tirino", "PE"]], - "65023": [["Caramanico Terme", "PE"], ["San Tommaso", "PE"]], - "65024": [ - ["Ripacorbaria", "PE"], - ["Manoppello", "PE"], - ["Manoppello Stazione", "PE"], - ["Manoppello Scalo", "PE"], - ], - "65025": [["Serramonacesca", "PE"]], - "65026": [["Popoli", "PE"]], - "65027": [["Scafa", "PE"], ["Decontra", "PE"]], - "65028": [["Tocco Da Casauria", "PE"]], - "65029": [["Torre De' Passeri", "PE"]], - "65100": [["Pescara", "PE"]], - "65121": [["Pescara", "PE"]], - "65122": [["Pescara", "PE"]], - "65123": [["Pescara", "PE"]], - "65124": [["Pescara", "PE"]], - "65125": [["Pescara", "PE"], ["Pescara Colli", "PE"]], - "65126": [["Pescara", "PE"]], - "65127": [["Pescara", "PE"]], - "65128": [["Pescara", "PE"]], - "65129": [["Pescara", "PE"], ["Pineta Di Pescara", "PE"]], - "65131": [["Fontanelle", "PE"]], - "65132": [["San Silvestro", "PE"], ["Pescara", "PE"]], - "64010": [ - ["Rocche Di Civitella", "TE"], - ["Civitella Del Tronto", "TE"], - ["Cesano", "TE"], - ["Colonnella", "TE"], - ["San Vito", "TE"], - ["Ancarano", "TE"], - ["Valle Castellana", "TE"], - ["Torano Nuovo", "TE"], - ["Villa Lempa", "TE"], - ["Pietralta", "TE"], - ["Ioanella", "TE"], - ["Villa Favale", "TE"], - ["Rocca Santa Maria", "TE"], - ["Villa Passo", "TE"], - ["Santo Stefano Di Torricella Sicura", "TE"], - ["Controguerra", "TE"], - ["Ripe Civitella Del Tronto", "TE"], - ["Pascellata", "TE"], - ["Ponzano", "TE"], - ["Santo Stefano", "TE"], - ["Cerqueto Del Tronto", "TE"], - ["Leofara", "TE"], - ["Torricella Sicura", "TE"], - ], - "64011": [["Alba Adriatica", "TE"]], - "64012": [ - ["Paterno", "TE"], - ["Villa Paterno", "TE"], - ["Sant'Onofrio", "TE"], - ["Piancarani", "TE"], - ["Campli", "TE"], - ["Campovalano", "TE"], - ["Garrufo Di Campli", "TE"], - ], - "64013": [["Corropoli", "TE"]], - "64014": [["Martinsicuro", "TE"], ["Villa Rosa", "TE"], ["Villa Rosa Di Martinsicuro", "TE"]], - "64015": [["Nereto", "TE"]], - "64016": [ - ["Sant'Egidio Alla Vibrata", "TE"], - ["Paolantonio", "TE"], - ["Faraone", "TE"], - ["Villa Mattoni", "TE"], - ["Faraone Nuovo", "TE"], - ], - "64018": [["Tortoreto", "TE"], ["Salino", "TE"], ["Tortoreto Lido", "TE"]], - "64020": [ - ["Bellante Stazione", "TE"], - ["Zaccheo", "TE"], - ["Canzano", "TE"], - ["Pagliare", "TE"], - ["Petriccione", "TE"], - ["Castelnuovo Vomano", "TE"], - ["Casemolino", "TE"], - ["Morro D'Oro", "TE"], - ["Castelbasso", "TE"], - ["Castellalto", "TE"], - ["Valle Canzano", "TE"], - ["Ripattoni", "TE"], - ["Villa Zaccheo", "TE"], - ["Bellante", "TE"], - ], - "64021": [["Giulianova Spiaggia", "TE"], ["Colleranesco", "TE"], ["Giulianova", "TE"]], - "64023": [["Mosciano Sant'Angelo", "TE"], ["Montone", "TE"], ["Notaresco Stazione", "TE"]], - "64024": [["Guardia Vomano", "TE"], ["Pianura Vomano", "TE"], ["Notaresco", "TE"]], - "64025": [ - ["Borgo Santa Maria Immacolata", "TE"], - ["Mutignano", "TE"], - ["Scerne", "TE"], - ["Scerne Di Pineto", "TE"], - ["Pineto", "TE"], - ], - "64026": [ - ["Cologna", "TE"], - ["Montepagano", "TE"], - ["Cologna Spiaggia", "TE"], - ["San Giovanni", "TE"], - ["Santa Lucia Di Roseto Degli Abruzzi", "TE"], - ["Santa Lucia", "TE"], - ["Roseto Degli Abruzzi", "TE"], - ["Cologna Paese", "TE"], - ], - "64027": [["Garrufo", "TE"], ["Poggio Morello", "TE"], ["Sant'Omero", "TE"]], - "64028": [["Pianacce", "TE"], ["Silvi Marina", "TE"], ["San Silvestro", "TE"], ["Silvi", "TE"]], - "64030": [["Basciano", "TE"], ["Castel Castagna", "TE"], ["Montefino", "TE"], ["Villa Bozza", "TE"]], - "64031": [["Arsita", "TE"]], - "64032": [ - ["Atri", "TE"], - ["Casoli", "TE"], - ["Santa Margherita Di Atri", "TE"], - ["Santa Margherita", "TE"], - ["Fontanelle", "TE"], - ["San Giacomo D'Atri", "TE"], - ["San Giacomo", "TE"], - ["Treciminiere", "TE"], - ["Casoli Di Atri", "TE"], - ], - "64033": [["Bisenti", "TE"]], - "64034": [["Appignano", "TE"], ["Castiglione Messer Raimondo", "TE"]], - "64035": [["Castilenti", "TE"], ["Villa San Romualdo", "TE"]], - "64036": [["Scorrano", "TE"], ["Cellino Attanasio", "TE"]], - "64037": [["Montegualtieri", "TE"], ["Poggio Delle Rose", "TE"], ["Cermignano", "TE"]], - "64039": [["Val Vomano", "TE"], ["Penna Sant'Andrea", "TE"]], - "64040": [["Cortino", "TE"], ["Padula", "TE"], ["Pagliaroli", "TE"]], - "64041": [["Castelli", "TE"], ["Colledoro", "TE"]], - "64042": [["Colledara", "TE"], ["Villa Petto", "TE"], ["Ornano Grande", "TE"]], - "64043": [ - ["Cesacastina", "TE"], - ["Crognaleto", "TE"], - ["Tottea", "TE"], - ["San Giorgio", "TE"], - ["Cervaro", "TE"], - ["San Giorgio Di Crognaleto", "TE"], - ["Macchia Vomano", "TE"], - ["Nerito", "TE"], - ["Poggio Umbricchio", "TE"], - ], - "64044": [["Cerqueto", "TE"], ["Fano Adriano", "TE"]], - "64045": [ - ["Isola Del Gran Sasso D'Italia", "TE"], - ["Fano A Corno", "TE"], - ["Cerchiara", "TE"], - ["Forca Di Valle", "TE"], - ["San Gabriele Dell'Addolorata", "TE"], - ], - "64046": [ - ["Cusciano", "TE"], - ["Collevecchio Di Montorio", "TE"], - ["Leognano", "TE"], - ["Montorio Al Vomano", "TE"], - ], - "64047": [["Intermesoli", "TE"], ["Pietracamela", "TE"]], - "64049": [["Chiarino", "TE"], ["Azzinano", "TE"], ["Tossicia", "TE"]], - "64100": [ - ["Piano D'Accio", "TE"], - ["Valle San Giovanni", "TE"], - ["San Nicolo' A Tordino", "TE"], - ["Poggio San Vittorino", "TE"], - ["Tordinia", "TE"], - ["Varano", "TE"], - ["Castagneto", "TE"], - ["Forcella", "TE"], - ["Nepezzano", "TE"], - ["Miano", "TE"], - ["Cartecchio", "TE"], - ["Colleatterrato Alto", "TE"], - ["Frondarola", "TE"], - ["Sant'Atto", "TE"], - ["Villa Ripa", "TE"], - ["Colleminuccio", "TE"], - ["Colle Santa Maria", "TE"], - ["Teramo", "TE"], - ["Villa Vomano", "TE"], - ["Spiano", "TE"], - ], - "75010": [ - ["Miglionico", "MT"], - ["Craco", "MT"], - ["Garaguso", "MT"], - ["Peschiera", "MT"], - ["Grottole", "MT"], - ["Oliveto Lucano", "MT"], - ["Calciano", "MT"], - ["Gorgoglione", "MT"], - ["Cirigliano", "MT"], - ["Aliano", "MT"], - ["San Mauro Forte", "MT"], - ], - "75011": [["Accettura", "MT"]], - "75012": [["Metaponto Lido", "MT"], ["Metaponto", "MT"], ["Bernalda", "MT"], ["Serra Marina", "MT"]], - "75013": [["Macchia", "MT"], ["Borgo Macchia", "MT"], ["Ferrandina", "MT"]], - "75014": [["Grassano", "MT"]], - "75015": [["Pisticci", "MT"], ["Marconia", "MT"], ["Pisticci Scalo", "MT"]], - "75016": [["Pomarico", "MT"]], - "75017": [["Salandra", "MT"]], - "75018": [["Stigliano", "MT"]], - "75019": [["Tricarico", "MT"], ["Calle", "MT"]], - "75020": [ - ["Nova Siri", "MT"], - ["Nova Siri Scalo", "MT"], - ["Scanzano Jonico", "MT"], - ["Recoleta", "MT"], - ["Nova Siri Stazione", "MT"], - ], - "75021": [["Colobraro", "MT"]], - "75022": [["Irsina", "MT"], ["Taccone", "MT"]], - "75023": [["Montalbano Jonico", "MT"]], - "75024": [["Montescaglioso", "MT"]], - "75025": [["Policoro", "MT"]], - "75026": [["Rotondella", "MT"]], - "75027": [["San Giorgio Lucano", "MT"]], - "75028": [["Gannano", "MT"], ["Caprarico", "MT"], ["Tursi", "MT"]], - "75029": [["Valsinni", "MT"]], - "75100": [["La Martella", "MT"], ["Matera", "MT"], ["Venusio", "MT"]], - "85010": [ - ["Gallicchio", "PZ"], - ["Banzi", "PZ"], - ["Albano Di Lucania", "PZ"], - ["Abriola", "PZ"], - ["San Chirico Nuovo", "PZ"], - ["Armento", "PZ"], - ["Calvello", "PZ"], - ["Madonna Del Pantano", "PZ"], - ["Pignola", "PZ"], - ["Brindisi Montagna", "PZ"], - ["Rifreddo", "PZ"], - ["Pantano", "PZ"], - ["Castelmezzano", "PZ"], - ["Guardia Perticara", "PZ"], - ["Campomaggiore", "PZ"], - ["Cancellara", "PZ"], - ["Pietrapertosa", "PZ"], - ["Vaglio Basilicata", "PZ"], - ["Missanello", "PZ"], - ["Anzi", "PZ"], - ], - "85011": [["Acerenza", "PZ"]], - "85012": [["Corleto Perticara", "PZ"]], - "85013": [["Genzano Di Lucania", "PZ"]], - "85014": [["Laurenzana", "PZ"]], - "85015": [["Oppido Lucano", "PZ"]], - "85016": [["Pietragalla", "PZ"], ["San Giorgio", "PZ"]], - "85017": [["Tolve", "PZ"]], - "85018": [["Trivigno", "PZ"]], - "85020": [ - ["Ruvo Del Monte", "PZ"], - ["Piano San Nicola", "PZ"], - ["Ginestra", "PZ"], - ["Sterpito", "PZ"], - ["San Giorgio Di Pietragalla", "PZ"], - ["Sant'Angelo Di Avigliano", "PZ"], - ["Dragonetti", "PZ"], - ["Filiano", "PZ"], - ["Avigliano Scalo", "PZ"], - ["Sant'Andrea", "PZ"], - ["Rapone", "PZ"], - ["Maschito", "PZ"], - ["San Fele", "PZ"], - ["Atella", "PZ"], - ["San Nicola", "PZ"], - ["Montemilone", "PZ"], - ["Sant'Ilario", "PZ"], - ["Lagopesole", "PZ"], - ["Pescopagano", "PZ"], - ["Scalera", "PZ"], - ["Ripacandida", "PZ"], - ["Sterpito Di Sotto", "PZ"], - ["Sterpito Di Sopra", "PZ"], - ], - "85021": [ - ["Avigliano", "PZ"], - ["Castel Lagopesole", "PZ"], - ["San Cataldo", "PZ"], - ["Sant'Angelo", "PZ"], - ["San Cataldo Di Bella", "PZ"], - ["Possidente", "PZ"], - ["Piano Del Conte", "PZ"], - ], - "85022": [["Barile", "PZ"]], - "85023": [["Forenza", "PZ"]], - "85024": [["Gaudiano", "PZ"], ["Lavello", "PZ"]], - "85025": [["Foggiano", "PZ"], ["Melfi", "PZ"], ["Leonessa Di Melfi", "PZ"]], - "85026": [["Palazzo San Gervasio", "PZ"]], - "85027": [["Rapolla", "PZ"]], - "85028": [["Monticchio", "PZ"], ["Rionero In Vulture", "PZ"], ["Monticchio Bagni", "PZ"]], - "85029": [["Venosa", "PZ"]], - "85030": [ - ["Mezzana", "PZ"], - ["Calvera", "PZ"], - ["Casa Del Conte", "PZ"], - ["San Costantino Albanese", "PZ"], - ["Castronuovo Di Sant'Andrea", "PZ"], - ["Carbone", "PZ"], - ["Cersosimo", "PZ"], - ["Terranova Di Pollino", "PZ"], - ["San Severino Lucano", "PZ"], - ["San Martino D'Agri", "PZ"], - ["Villaneto", "PZ"], - ["San Chirico Raparo", "PZ"], - ["Mezzana Salice", "PZ"], - ["San Paolo Albanese", "PZ"], - ], - "85031": [["Castelsaraceno", "PZ"], ["Frusci", "PZ"], ["Miraldo", "PZ"]], - "85032": [["Teana", "PZ"], ["Chiaromonte", "PZ"]], - "85033": [["Episcopia", "PZ"]], - "85034": [["Fardella", "PZ"], ["Francavilla In Sinni", "PZ"]], - "85035": [["Noepoli", "PZ"]], - "85036": [["Roccanova", "PZ"]], - "85037": [["San Brancato", "PZ"], ["Sant'Arcangelo", "PZ"]], - "85038": [["Senise", "PZ"]], - "85039": [["Spinoso", "PZ"]], - "85040": [ - ["San Costantino", "PZ"], - ["Rivello", "PZ"], - ["Castelluccio Inferiore", "PZ"], - ["San Costantino Di Rivello", "PZ"], - ["Viggianello", "PZ"], - ["Castelluccio Superiore", "PZ"], - ["Pedali Di Viggianello", "PZ"], - ["Nemoli", "PZ"], - ], - "85042": [["Lagonegro", "PZ"]], - "85043": [["Latronico", "PZ"], ["Mileo", "PZ"], ["Cerri", "PZ"], ["Agromonte", "PZ"], ["Magnano", "PZ"]], - "85044": [ - ["Lauria", "PZ"], - ["Seluci", "PZ"], - ["Lauria Superiore", "PZ"], - ["Cogliandrino", "PZ"], - ["Lauria Inferiore", "PZ"], - ["Galdo", "PZ"], - ["Galdo Di Lauria", "PZ"], - ["Pecorone", "PZ"], - ], - "85046": [ - ["Massa", "PZ"], - ["Fiumicello Santa Venere", "PZ"], - ["Acquafredda", "PZ"], - ["Maratea Porto", "PZ"], - ["Maratea", "PZ"], - ], - "85047": [["Moliterno", "PZ"]], - "85048": [["Rotonda", "PZ"]], - "85049": [["Trecchina", "PZ"], ["Piano Dei Peri", "PZ"]], - "85050": [ - ["Baragiano Scalo", "PZ"], - ["Tito Scalo", "PZ"], - ["Scalo Di Baragiano", "PZ"], - ["Castelgrande", "PZ"], - ["Balvano", "PZ"], - ["Sarconi", "PZ"], - ["Sasso Di Castalda", "PZ"], - ["Satriano Di Lucania", "PZ"], - ["Sant'Angelo Le Fratte", "PZ"], - ["Tito", "PZ"], - ["Villa D'Agri", "PZ"], - ["Brienza", "PZ"], - ["Savoia Di Lucania", "PZ"], - ["Marsicovetere", "PZ"], - ["Paterno", "PZ"], - ["Baragiano", "PZ"], - ["Grumento Nova", "PZ"], - ], - "85051": [["Bella", "PZ"], ["Sant'Antonio Casalini", "PZ"]], - "85052": [["Galaino", "PZ"], ["Pergola", "PZ"], ["Marsico Nuovo", "PZ"]], - "85053": [["Montemurro", "PZ"]], - "85054": [["Muro Lucano", "PZ"], ["Capo Di Giano", "PZ"]], - "85055": [["Picerno", "PZ"]], - "85056": [["Ruoti", "PZ"]], - "85057": [["Tramutola", "PZ"]], - "85058": [["Mosileo", "PZ"], ["Vietri Di Potenza", "PZ"]], - "85059": [["Viggiano", "PZ"]], - "85100": [["Giuliano", "PZ"], ["Montocchio", "PZ"], ["Potenza", "PZ"]], - "87010": [ - ["Lattarico", "CS"], - ["Saracena", "CS"], - ["Acquaformosa", "CS"], - ["Mottafollone", "CS"], - ["Regina", "CS"], - ["Santa Maria Le Grotte", "CS"], - ["San Martino Di Finita", "CS"], - ["Cervicati", "CS"], - ["Torano Castello", "CS"], - ["Terranova Da Sibari", "CS"], - ["Santa Caterina Albanese", "CS"], - ["Civita", "CS"], - ["Frascineto", "CS"], - ["Malvito", "CS"], - ["Firmo", "CS"], - ["Sant'Agata Di Esaro", "CS"], - ["Lungro", "CS"], - ["Sartano", "CS"], - ["San Basile", "CS"], - ["Torano Castello Scalo", "CS"], - ["Policastrello", "CS"], - ["Eianina", "CS"], - ["Rota Greca", "CS"], - ["Ioggi", "CS"], - ["San Donato Di Ninea", "CS"], - ["San Sosti", "CS"], - ], - "87011": [ - ["Sibari Stazione", "CS"], - ["Lattughelle", "CS"], - ["Lauropoli", "CS"], - ["Pianoscafo", "CS"], - ["Sibari", "CS"], - ["Doria", "CS"], - ["Cassano Allo Ionio", "CS"], - ], - "87012": [["Vigne Di Castrovillari", "CS"], ["Castrovillari", "CS"]], - "87013": [["Fagnano Castello", "CS"]], - "87014": [["Laino Borgo", "CS"]], - "87015": [["Laino Castello", "CS"]], - "87016": [["Morano Calabro", "CS"]], - "87017": [["Roggiano Gravina", "CS"]], - "87018": [ - ["San Marco Argentano Stazione", "CS"], - ["San Marco Roggiano Stazione", "CS"], - ["San Marco Argentano", "CS"], - ], - "87019": [["Spezzano Albanese Stazione", "CS"], ["Spezzano Albanese Terme", "CS"], ["Spezzano Albanese", "CS"]], - "87020": [ - ["San Nicola Arcella", "CS"], - ["Sangineto", "CS"], - ["Marcellina", "CS"], - ["Acquappesa", "CS"], - ["Maiera'", "CS"], - ["Santa Domenica Talao", "CS"], - ["Bonifati", "CS"], - ["Guardia Piemontese Marina", "CS"], - ["Grisolia", "CS"], - ["Aieta", "CS"], - ["Buonvicino", "CS"], - ["Torrevecchia", "CS"], - ["Orsomarso", "CS"], - ["Guardia Piemontese Terme", "CS"], - ["Le Crete", "CS"], - ["Granata", "CS"], - ["Cittadella Del Capo", "CS"], - ["Tortora Marina", "CS"], - ["Intavolata", "CS"], - ["Guardia Piemontese", "CS"], - ["Acquappesa Marina", "CS"], - ["Marina Di Tortora", "CS"], - ["Verbicaro", "CS"], - ["Papasidero", "CS"], - ["Santa Maria Del Cedro", "CS"], - ["Sangineto Lido", "CS"], - ["Tortora", "CS"], - ], - "87021": [["Laise", "CS"], ["Marina Di Belvedere Marittimo", "CS"], ["Belvedere Marittimo", "CS"]], - "87022": [ - ["Cetraro Marina", "CS"], - ["Cetraro", "CS"], - ["Sant'Angelo Di Cetraro", "CS"], - ["Battendieri", "CS"], - ["San Filippo", "CS"], - ["Sant'Angelo", "CS"], - ], - "87023": [["Cirella", "CS"], ["Diamante", "CS"]], - "87024": [["Cariglio", "CS"], ["Marina Di Fuscaldo", "CS"], ["Scarcelli", "CS"], ["Fuscaldo", "CS"]], - "87026": [["Mormanno", "CS"]], - "87027": [ - ["Paola Marina", "CS"], - ["Paola Santuario", "CS"], - ["Paola", "CS"], - ["San Miceli", "CS"], - ["Fosse", "CS"], - ["Santuario San Francesco", "CS"], - ], - "87028": [["Praia A Mare", "CS"]], - "87029": [["Scalea", "CS"]], - "87030": [ - ["San Vincenzo La Costa", "CS"], - ["Longobardi Marina", "CS"], - ["Carolei", "CS"], - ["Belsito", "CS"], - ["Domanico", "CS"], - ["San Pietro In Amantea", "CS"], - ["Falconara Albanese", "CS"], - ["Savuto Di Cleto", "CS"], - ["Malito", "CS"], - ["Fiumefreddo Bruzio", "CS"], - ["Cleto", "CS"], - ["Serra D'Aiello", "CS"], - ["Vadue", "CS"], - ["Torremezzo Di Falconara", "CS"], - ["Longobardi", "CS"], - ["Savuto", "CS"], - ["Scornavacca", "CS"], - ["Gesuiti", "CS"], - ["Torremezzo", "CS"], - ["Marina Di Fiumefreddo Bruzio", "CS"], - ["Stazione Di Fiumefreddo Bruzio", "CS"], - ["San Biase", "CS"], - ["Reggio", "CS"], - ], - "87031": [["Aiello Calabro", "CS"]], - "87032": [["Amantea Marina", "CS"], ["Amantea", "CS"], ["Campora San Giovanni", "CS"], ["Corica", "CS"]], - "87033": [["Belmonte Calabro Marina", "CS"], ["Belmonte Calabro", "CS"], ["Vadi", "CS"]], - "87034": [["Grimaldi", "CS"]], - "87035": [["Terrati", "CS"], ["Greci", "CS"], ["Aria Di Lupi", "CS"], ["Lago", "CS"]], - "87036": [ - ["Roges", "CS"], - ["Santo Stefano", "CS"], - ["Arcavacata", "CS"], - ["Commenda", "CS"], - ["Rende", "CS"], - ["Castiglione Cosentino Stazione", "CS"], - ["Surdo", "CS"], - ["Quattromiglia", "CS"], - ], - "87037": [["San Fili", "CS"], ["Bucita", "CS"]], - "87038": [["San Lucido", "CS"], ["Pollella", "CS"]], - "87040": [ - ["Mongrassano Stazione", "CS"], - ["San Lorenzo Del Vallo", "CS"], - ["San Giacomo Di Cerzeto", "CS"], - ["Marano Principato", "CS"], - ["Casal Di Basso", "CS"], - ["Mongrassano", "CS"], - ["Rosario", "CS"], - ["Deposito Di Luzzi", "CS"], - ["Rose", "CS"], - ["Stazione Di Mongrassano", "CS"], - ["San Bartolo", "CS"], - ["Montalto Uffugo Scalo", "CS"], - ["Cavallerizzo", "CS"], - ["Timparello Di Luzzi", "CS"], - ["San Giacomo", "CS"], - ["Andreotta", "CS"], - ["Taverna Di Montalto Uffugo", "CS"], - ["Zumpano", "CS"], - ["Malavicina", "CS"], - ["Andreotta Di Castrolibero", "CS"], - ["Castiglione Cosentino", "CS"], - ["Mendicino", "CS"], - ["Tarsia", "CS"], - ["Luzzi", "CS"], - ["Tivolille", "CS"], - ["Marano Marchesato", "CS"], - ["Paterno Calabro", "CS"], - ["Ortomatera", "CS"], - ["San Benedetto Ullano", "CS"], - ["Timparello", "CS"], - ["Maione", "CS"], - ["Cerzeto", "CS"], - ["Altilia", "CS"], - ["Castrolibero", "CS"], - ["Parenti", "CS"], - ], - "87041": [ - ["Acri", "CS"], - ["Montagnola", "CS"], - ["Serricella", "CS"], - ["San Giacomo D'Acri", "CS"], - ["Duglia", "CS"], - ], - "87042": [["Altomonte", "CS"]], - "87043": [["Bisignano", "CS"]], - "87044": [["Cerisano", "CS"]], - "87045": [["Laurignano", "CS"], ["Tessano", "CS"], ["Dipignano", "CS"]], - "87046": [ - ["Parantoro", "CS"], - ["Caldopiano", "CS"], - ["Vaccarizzo Di Montalto", "CS"], - ["Vaccarizzo", "CS"], - ["Montalto Uffugo", "CS"], - ], - "87047": [["Redipiano", "CS"], ["San Benedetto In Guarano", "CS"], ["San Pietro In Guarano", "CS"]], - "87048": [["Santa Sofia D'Epiro", "CS"]], - "87050": [ - ["Pian Del Lago", "CS"], - ["Trenta", "CS"], - ["Carpanzano", "CS"], - ["Magli", "CS"], - ["Serra Pedace", "CS"], - ["Morelli", "CS"], - ["Perito", "CS"], - ["Casole Bruzio", "CS"], - ["Rovito", "CS"], - ["Bianchi", "CS"], - ["Pedace", "CS"], - ["Marzi", "CS"], - ["Borboruso", "CS"], - ["Panettieri", "CS"], - ["Pedivigliano", "CS"], - ["Colosimi", "CS"], - ["Piane Crati", "CS"], - ["Figline Vegliaturo", "CS"], - ["Cellara", "CS"], - ["Spezzano Piccolo", "CS"], - ["Pietrafitta", "CS"], - ["Mangone", "CS"], - ["Silvana Mansio", "CS"], - ["Lappano", "CS"], - ], - "87051": [["Vico", "CS"], ["Camarda Di Aprigliano", "CS"], ["Aprigliano", "CS"]], - "87052": [ - ["Moccone", "CS"], - ["Croce Di Magara", "CS"], - ["Camigliatello Silano", "CS"], - ["Camigliatello", "CS"], - ["Fago Del Soldato", "CS"], - ], - "87053": [["Celico", "CS"]], - "87054": [["Rogliano", "CS"], ["Saliano", "CS"]], - "87055": [["Lorica", "CS"], ["Monte Oliveto", "CS"], ["San Giovanni In Fiore", "CS"]], - "87056": [["Santo Stefano Di Rogliano", "CS"]], - "87057": [["Scigliano", "CS"], ["Diano", "CS"], ["Calvisi", "CS"]], - "87058": [["Spezzano Della Sila", "CS"]], - "87060": [ - ["Marinella", "CS"], - ["Vaccarizzo Albanese", "CS"], - ["San Morello", "CS"], - ["San Cosmo Albanese", "CS"], - ["Terravecchia", "CS"], - ["Pietrapaola Stazione", "CS"], - ["Caloveto", "CS"], - ["Paludi", "CS"], - ["San Giorgio Albanese", "CS"], - ["Calopezzati", "CS"], - ["Crosia", "CS"], - ["Camigliano", "CS"], - ["Mirto", "CS"], - ["Cropalati", "CS"], - ["Vecchiarello", "CS"], - ["Bocchigliero", "CS"], - ["Pietrapaola", "CS"], - ["Scala Coeli", "CS"], - ["Mandatoriccio", "CS"], - ], - "87061": [["Campana", "CS"]], - "87062": [["Cariati", "CS"], ["Cariati Marina", "CS"]], - "87064": [ - ["Marina Di Schiavonea", "CS"], - ["Fabrizio", "CS"], - ["Villaggio Frasso", "CS"], - ["Schiavonea", "CS"], - ["Corigliano Calabro Stazione", "CS"], - ["Corigliano Calabro", "CS"], - ["Corigliano Scalo", "CS"], - ["Cantinella", "CS"], - ], - "87066": [["Longobucco", "CS"], ["Destro", "CS"]], - "87067": [["Rossano", "CS"], ["Piragineti", "CS"], ["Amica", "CS"], ["Rossano Stazione", "CS"]], - "87069": [["Macchia Albanese", "CS"], ["San Demetrio Corone", "CS"]], - "87070": [ - ["Castroregio", "CS"], - ["Canna", "CS"], - ["Plataci", "CS"], - ["Farneta", "CS"], - ["Albidona", "CS"], - ["Cerchiara Di Calabria", "CS"], - ["Alessandria Del Carretto", "CS"], - ["Borgata Marina", "CS"], - ["Nocara", "CS"], - ["Montegiordano", "CS"], - ["Roseto Capo Spulico Stazione", "CS"], - ["Piana Di Cerchiara", "CS"], - ["San Lorenzo Bellizzi", "CS"], - ["Roseto Capo Spulico", "CS"], - ["Montegiordano Marina", "CS"], - ], - "87071": [["Amendolara Marina", "CS"], ["Amendolara", "CS"]], - "87072": [["Francavilla Marittima", "CS"]], - "87073": [["Oriolo", "CS"]], - "87074": [["Rocca Imperiale", "CS"], ["Rocca Imperiale Marina", "CS"]], - "87075": [["Trebisacce", "CS"]], - "87076": [ - ["Villapiana Lido", "CS"], - ["Torre Cerchiar", "CS"], - ["Villapiana", "CS"], - ["Villapiana Scalo", "CS"], - ], - "87100": [ - ["Cosenza", "CS"], - ["Donnici Superiore", "CS"], - ["Donnici Inferiore", "CS"], - ["Sant'Ippolito Di Cosenza", "CS"], - ["Borgo Partenope", "CS"], - ["Casali", "CS"], - ["Sanvito", "CS"], - ], - "88020": [["Jacurso", "CZ"], ["Cortale", "CZ"]], - "88021": [["Roccelletta", "CZ"], ["Borgia", "CZ"], ["San Floro", "CZ"]], - "88022": [["Curinga", "CZ"], ["Acconia", "CZ"]], - "88024": [["Girifalco", "CZ"]], - "88025": [["San Pietro A Maida", "CZ"], ["Maida", "CZ"]], - "88040": [ - ["Martelletto", "CZ"], - ["Martirano", "CZ"], - ["San Mango D'Aquino", "CZ"], - ["San Pietro Apostolo", "CZ"], - ["Cicala", "CZ"], - ["Gizzeria Lido", "CZ"], - ["Conflenti", "CZ"], - ["Accaria Rosaria", "CZ"], - ["Motta Santa Lucia", "CZ"], - ["Amato", "CZ"], - ["Settingiano", "CZ"], - ["Castagna", "CZ"], - ["Serrastretta", "CZ"], - ["Platania", "CZ"], - ["Martirano Lombardo", "CZ"], - ["Pianopoli", "CZ"], - ["Pratora Sarrottino", "CZ"], - ["Carlopoli", "CZ"], - ["San Michele", "CZ"], - ["Cancello", "CZ"], - ["Ievoli", "CZ"], - ["Angoli", "CZ"], - ["San Mazzeo", "CZ"], - ["Feroleto Antico", "CZ"], - ["Gizzeria", "CZ"], - ["Miglierina", "CZ"], - ["Accaria", "CZ"], - ["Conflenti Inferiore", "CZ"], - ["Migliuso", "CZ"], - ], - "88041": [["Decollatura", "CZ"], ["San Bernardo", "CZ"], ["Adami", "CZ"], ["Cerrisi", "CZ"]], - "88042": [["Falerna Scalo", "CZ"], ["Falerna", "CZ"], ["Castiglione Marittimo", "CZ"]], - "88044": [["Marcellinara", "CZ"]], - "88045": [ - ["Gimigliano Inferiore", "CZ"], - ["Gimigliano", "CZ"], - ["Cavora' Di Gimigliano", "CZ"], - ["Cavora'", "CZ"], - ], - "88046": [ - ["Santa Eufemia Lamezia", "CZ"], - ["Bella Di Lamezia Terme", "CZ"], - ["Fronti", "CZ"], - ["Zangarona", "CZ"], - ["Nicastro", "CZ"], - ["Caronte", "CZ"], - ["Sant'Eufemia Di Lamezia Terme", "CZ"], - ["Sambiase Di Lamezia Terme", "CZ"], - ["Gabella", "CZ"], - ["San Pietro Lametino", "CZ"], - ["Sambiase", "CZ"], - ["Acquafredda", "CZ"], - ["Lamezia Terme", "CZ"], - ["Zangarona Di Lamezia Terme", "CZ"], - ], - "88047": [["Marina Di Nocera Terinese", "CZ"], ["Nocera Terinese", "CZ"]], - "88049": [["San Tommaso", "CZ"], ["Colla", "CZ"], ["Soveria Mannelli", "CZ"]], - "88050": [ - ["Simeri", "CZ"], - ["Belcastro", "CZ"], - ["Sellia", "CZ"], - ["Amaroni", "CZ"], - ["Petrona'", "CZ"], - ["Crichi", "CZ"], - ["Vallefiorita", "CZ"], - ["Sorbo San Basile", "CZ"], - ["Sellia Marina", "CZ"], - ["La Petrizia", "CZ"], - ["Palermiti", "CZ"], - ["Fossato Serralta", "CZ"], - ["Soveria Simeri", "CZ"], - ["San Pietro", "CZ"], - ["Uria", "CZ"], - ["Magisano", "CZ"], - ["Scoppolise", "CZ"], - ["Simeri Crichi", "CZ"], - ["Andali", "CZ"], - ["Pentone", "CZ"], - ["Marcedusa", "CZ"], - ["Caraffa Di Catanzaro", "CZ"], - ["Petrizia", "CZ"], - ["Cerva", "CZ"], - ["San Pietro Magisano", "CZ"], - ["Calabricata", "CZ"], - ["Zagarise", "CZ"], - ], - "88051": [["Cuturella", "CZ"], ["Cropani", "CZ"], ["Cropani Marina", "CZ"]], - "88054": [["Sersale", "CZ"]], - "88055": [ - ["San Giovanni", "CZ"], - ["Albi", "CZ"], - ["Buturo", "CZ"], - ["Villaggio Racise", "CZ"], - ["Taverna", "CZ"], - ["San Giovanni D'Albi", "CZ"], - ["Villaggio Mancuso", "CZ"], - ], - "88056": [["Pratora", "CZ"], ["Tiriolo", "CZ"]], - "88060": [ - ["Davoli", "CZ"], - ["Sant'Andrea Apostolo Dello Ionio", "CZ"], - ["Montepaone", "CZ"], - ["Torre Di Ruggiero", "CZ"], - ["Marina Di Davoli", "CZ"], - ["Argusto", "CZ"], - ["San Sostene", "CZ"], - ["Isca Marina", "CZ"], - ["Montauro", "CZ"], - ["Sant'Andrea Ionio Marina", "CZ"], - ["San Sostene Marina", "CZ"], - ["Badolato Marina", "CZ"], - ["Badolato", "CZ"], - ["Gagliato", "CZ"], - ["Montepaone Lido", "CZ"], - ["Marina Di Sant'Andrea Jonio", "CZ"], - ["Isca Sullo Ionio", "CZ"], - ["Petrizzi", "CZ"], - ["Montauro Stazione", "CZ"], - ["Satriano", "CZ"], - ["Marina Di Guardavalle", "CZ"], - ["Santa Caterina Dello Ionio Marina", "CZ"], - ["Gasperina", "CZ"], - ["Santa Caterina Dello Ionio", "CZ"], - ], - "88062": [["Cardinale", "CZ"], ["Novalba", "CZ"]], - "88064": [["Chiaravalle Centrale", "CZ"]], - "88065": [["Guardavalle", "CZ"], ["Guardavalle Marina", "CZ"]], - "88067": [["Cenadi", "CZ"], ["Centrache", "CZ"], ["San Vito Sullo Ionio", "CZ"], ["Olivadi", "CZ"]], - "88068": [["Soverato Superiore", "CZ"], ["Soverato Marina", "CZ"], ["Soverato", "CZ"]], - "88069": [ - ["Squillace Lido", "CZ"], - ["Staletti", "CZ"], - ["Lido Di Squillace", "CZ"], - ["Copanello", "CZ"], - ["Squillace", "CZ"], - ], - "88070": [["Botricello", "CZ"]], - "88100": [ - ["Pontegrande", "CZ"], - ["Sant'Elia", "CZ"], - ["Siano", "CZ"], - ["Catanzaro Lido", "CZ"], - ["Santa Maria Di Catanzaro", "CZ"], - ["Catanzaro Sala", "CZ"], - ["Catanzaro", "CZ"], - ["Cava Di Catanzaro", "CZ"], - ], - "88811": [["Ciro' Marina", "KR"]], - "88812": [["Crucoli", "KR"], ["Torretta", "KR"], ["Crucoli Torretta", "KR"]], - "88813": [["Ciro'", "KR"]], - "88814": [["Melissa", "KR"], ["Torre Melissa", "KR"]], - "88815": [["Marina Di Strongoli", "KR"]], - "88816": [["Strongoli", "KR"]], - "88817": [["San Nicola Dell'Alto", "KR"], ["Carfizzi", "KR"]], - "88818": [["Pallagorio", "KR"]], - "88819": [["Verzino", "KR"]], - "88821": [["Rocca Di Neto", "KR"], ["Corazzo", "KR"]], - "88822": [["Zinga", "KR"], ["Casabona", "KR"]], - "88823": [["Umbriatico", "KR"], ["Perticaro", "KR"]], - "88824": [["Belvedere Di Spinello", "KR"]], - "88825": [["Savelli", "KR"]], - "88831": [["San Mauro Marchesato", "KR"], ["Scandale", "KR"]], - "88832": [["Altilia", "KR"], ["Santa Severina", "KR"]], - "88833": [["Caccuri", "KR"], ["Cerenzia", "KR"]], - "88834": [["Castelsilano", "KR"]], - "88835": [["Roccabernarda", "KR"]], - "88836": [["Cotronei", "KR"]], - "88837": [["Camellino", "KR"], ["Pagliarelle", "KR"], ["Foresta", "KR"], ["Petilia Policastro", "KR"]], - "88838": [["Filippa", "KR"], ["Mesoraca", "KR"]], - "88841": [ - ["Punta Le Castella", "KR"], - ["Sant'Anna", "KR"], - ["Le Castella", "KR"], - ["Isola Di Capo Rizzuto", "KR"], - ], - "88842": [["San Leonardo Di Cutro", "KR"], ["Cutro", "KR"], ["Steccato Di Cutro", "KR"]], - "88900": [["Villaggio Bucchi", "KR"], ["Crotone", "KR"], ["Papanice", "KR"]], - "89010": [["Scido", "RC"], ["Terranova Sappo Minulio", "RC"], ["Varapodio", "RC"], ["Molochio", "RC"]], - "89011": [ - ["Marinella", "RC"], - ["Ceramida", "RC"], - ["Pellegrina", "RC"], - ["Porelli Di Bagnara", "RC"], - ["Bagnara Calabra", "RC"], - ["Solano Inferiore", "RC"], - ], - "89012": [["Delianuova", "RC"]], - "89013": [["Marina Di Gioia Tauro", "RC"], ["Gioia Tauro", "RC"]], - "89014": [ - ["Tresilico", "RC"], - ["Zurgonadio", "RC"], - ["Piminoro", "RC"], - ["Castellace", "RC"], - ["Messignadi", "RC"], - ["Oppido Mamertina", "RC"], - ], - "89015": [["Palmi", "RC"], ["Taureana", "RC"], ["Trodio", "RC"]], - "89016": [["Rizziconi", "RC"], ["Spina", "RC"], ["Drosi", "RC"], ["Cirello", "RC"]], - "89017": [["San Giorgio Morgeto", "RC"]], - "89018": [ - ["Acciarello", "RC"], - ["Pezzo Di Villa San Giovanni", "RC"], - ["Ferrito", "RC"], - ["Cannitello", "RC"], - ["Villa San Giovanni", "RC"], - ], - "89020": [ - ["Serrata", "RC"], - ["San Procopio", "RC"], - ["Anoia Superiore", "RC"], - ["Tritanti", "RC"], - ["Maropati", "RC"], - ["Giffone", "RC"], - ["Melicucca'", "RC"], - ["Melicucco", "RC"], - ["Sinopoli Inferiore", "RC"], - ["Anoia", "RC"], - ["San Pier Fedele", "RC"], - ["Anoia Inferiore", "RC"], - ["San Pietro Di Carida'", "RC"], - ["Candidoni", "RC"], - ["Sinopoli", "RC"], - ], - "89021": [["Cinquefrondi", "RC"]], - "89022": [["Cittanova", "RC"]], - "89023": [["Stelletanone", "RC"], ["Bellantone", "RC"], ["Laureana Di Borrello", "RC"]], - "89024": [["Polistena", "RC"]], - "89025": [["Bosco", "RC"], ["Rosarno", "RC"]], - "89026": [["San Ferdinando", "RC"]], - "89027": [["Sant'Eufemia D'Aspromonte", "RC"]], - "89028": [["Seminara", "RC"], ["Barritteri", "RC"], ["Sant'Anna", "RC"], ["Sant'Anna Di Seminara", "RC"]], - "89029": [ - ["San Martino", "RC"], - ["Taurianova", "RC"], - ["Amato Di Taurianova", "RC"], - ["San Martino Di Taurianova", "RC"], - ], - "89030": [ - ["Condofuri", "RC"], - ["Benestare", "RC"], - ["Natile Vecchio", "RC"], - ["Staiti", "RC"], - ["Motticella", "RC"], - ["Ferruzzano", "RC"], - ["Careri", "RC"], - ["Casignana", "RC"], - ["Belloro", "RC"], - ["Santuario Di Polsi", "RC"], - ["San Luca", "RC"], - ["Caraffa Del Bianco", "RC"], - ["Natile Nuovo", "RC"], - ["Sant'Agata Del Bianco", "RC"], - ["Bruzzano Zeffirio", "RC"], - ["Samo", "RC"], - ["Africo", "RC"], - ["Natile", "RC"], - ["Canalello", "RC"], - ["Condofuri Marina", "RC"], - ["San Carlo", "RC"], - ], - "89031": [["Bombile", "RC"], ["San Nicola", "RC"], ["Ardore", "RC"]], - "89032": [["Pardesca", "RC"], ["Bianco", "RC"]], - "89033": [["Bova", "RC"]], - "89034": [ - ["Bosco Sant'Ippolito", "RC"], - ["Bovalino Marina", "RC"], - ["Bovalino", "RC"], - ["Bovalino Superiore", "RC"], - ], - "89035": [["Bova Marina", "RC"]], - "89036": [["Brancaleone Marina", "RC"], ["Capo Spartivento", "RC"], ["Galati", "RC"], ["Brancaleone", "RC"]], - "89037": [["Ardore Marina", "RC"], ["Marina D'Ardore", "RC"]], - "89038": [["Marina Di Palizzi", "RC"], ["Palizzi", "RC"], ["Palizzi Marina", "RC"], ["Pietrapennata", "RC"]], - "89039": [["Plati'", "RC"]], - "89040": [ - ["Monasterace", "RC"], - ["Martone", "RC"], - ["Stignano", "RC"], - ["Marina Di Caulonia", "RC"], - ["Monasterace Marina", "RC"], - ["Riace Marina", "RC"], - ["Riace", "RC"], - ["Canolo", "RC"], - ["Marina Di Sant'Ilario Dello Ionio", "RC"], - ["Gerace", "RC"], - ["Canolo Nuova", "RC"], - ["Cimina'", "RC"], - ["Bivongi", "RC"], - ["San Giovanni Di Gerace", "RC"], - ["Condojanni", "RC"], - ["Pazzano", "RC"], - ["Agnana Calabra", "RC"], - ["Antonimina", "RC"], - ["Cirella", "RC"], - ["Placanica", "RC"], - ["Sant'Ilario Dello Ionio", "RC"], - ["Camini", "RC"], - ["Portigliola", "RC"], - ], - "89041": [ - ["San Nicola Di Caulonia", "RC"], - ["Ursini", "RC"], - ["Campoli Di Caulonia", "RC"], - ["Caulonia Marina", "RC"], - ["Caulonia", "RC"], - ], - "89042": [["Gioiosa Ionica", "RC"]], - "89043": [["Grotteria", "RC"], ["Croce Ferrata", "RC"]], - "89044": [["Merici", "RC"], ["Moschetta Di Locri", "RC"], ["Moschetta", "RC"], ["Locri", "RC"]], - "89045": [["Mammola", "RC"]], - "89046": [["Marina Di Gioiosa Ionica", "RC"]], - "89047": [["Roccella Ionica", "RC"]], - "89048": [["Siderno Superiore", "RC"], ["Donisi", "RC"], ["Siderno", "RC"], ["Siderno Marina", "RC"]], - "89049": [["Stilo", "RC"]], - "89050": [ - ["Villa Mesa", "RC"], - ["Cosoleto", "RC"], - ["Fiumara", "RC"], - ["San Roberto", "RC"], - ["Sant'Alessio In Aspromonte", "RC"], - ["Feroleto Della Chiesa", "RC"], - ["Colelli", "RC"], - ["Sitizano", "RC"], - ["Laganadi", "RC"], - ["Acquacalda", "RC"], - ["Plaesano", "RC"], - ["Calanna", "RC"], - ], - "89052": [["Campo Calabro", "RC"]], - "89054": [["Galatro", "RC"]], - "89056": [["Lubrichi", "RC"], ["Santa Cristina D'Aspromonte", "RC"]], - "89057": [["Santo Stefano In Aspromonte", "RC"], ["Gambarie", "RC"]], - "89058": [["Scilla", "RC"], ["Favazzina", "RC"], ["Milea", "RC"], ["Melia", "RC"]], - "89060": [ - ["Saline Joniche", "RC"], - ["Ghorio", "RC"], - ["Bagaladi", "RC"], - ["Cardeto", "RC"], - ["Roghudi Nuovo", "RC"], - ["Roghudi", "RC"], - ["Roccaforte Del Greco", "RC"], - ], - "89062": [["Lazzaro", "RC"]], - "89063": [ - ["Melito Di Porto Salvo", "RC"], - ["Anna'", "RC"], - ["Pentedattilo", "RC"], - ["Caredia", "RC"], - ["Lacco", "RC"], - ["Prunella", "RC"], - ], - "89064": [["Masella", "RC"], ["Fossato Ionico", "RC"], ["Montebello Ionico", "RC"], ["Saline Ioniche", "RC"]], - "89065": [["Motta San Giovanni", "RC"]], - "89069": [ - ["Marina Di San Lorenzo", "RC"], - ["San Fantino", "RC"], - ["Chorio", "RC"], - ["San Lorenzo", "RC"], - ["San Pantaleone", "RC"], - ], - "89100": [["Reggio Calabria", "RC"]], - "89121": [["Reggio Calabria", "RC"], ["Archi", "RC"], ["Santa Caterina", "RC"]], - "89122": [["Vito", "RC"], ["Reggio Calabria", "RC"]], - "89123": [["Reggio Calabria", "RC"]], - "89124": [["Reggio Calabria", "RC"], ["Eremo", "RC"]], - "89125": [["Reggio Calabria", "RC"]], - "89126": [ - ["Orti'", "RC"], - ["Reggio Calabria", "RC"], - ["Cerasi", "RC"], - ["Arasi'", "RC"], - ["Trizzino", "RC"], - ["Schindilifa'", "RC"], - ["Terreti", "RC"], - ["Sant'Elia Di Condera", "RC"], - ["Podargoni", "RC"], - ["In Via Dalmazia", "RC"], - ["Trabocchetto", "RC"], - ["Orti' Superiore", "RC"], - ["Orti' Inferiore", "RC"], - ], - "89127": [["Reggio Calabria", "RC"]], - "89128": [["Reggio Calabria", "RC"], ["Spirito Santo", "RC"]], - "89129": [["Reggio Calabria", "RC"]], - "89131": [["Reggio Calabria", "RC"], ["Armo", "RC"], ["Ravagnese", "RC"], ["Gallina", "RC"], ["Puzzi", "RC"]], - "89132": [["Reggio Calabria", "RC"]], - "89133": [ - ["Reggio Calabria", "RC"], - ["Cataforio", "RC"], - ["Mosorrofa", "RC"], - ["Sbarre", "RC"], - ["San Sperato", "RC"], - ["San Salvatore", "RC"], - ["Pavigliana", "RC"], - ["Cannavo'", "RC"], - ["Vinco", "RC"], - ["San Giorgio Extra", "RC"], - ], - "89134": [ - ["Rosario Valanidi", "RC"], - ["San Gregorio", "RC"], - ["Bocale", "RC"], - ["Pellaro", "RC"], - ["Croce Valanidi", "RC"], - ], - "89135": [ - ["Reggio Calabria", "RC"], - ["Diminniti", "RC"], - ["Sambatello", "RC"], - ["Rosali'", "RC"], - ["Gallico", "RC"], - ["Villa San Giuseppe", "RC"], - ["Salice Calabro", "RC"], - ["Catona", "RC"], - ], - "89812": [["Pizzo", "VV"], ["Pizzo Marina", "VV"]], - "89813": [["Polia", "VV"], ["Menniti", "VV"], ["Trecroci", "VV"]], - "89814": [["Montesoro", "VV"], ["Scarro", "VV"], ["Filadelfia", "VV"]], - "89815": [["Francavilla Angitola", "VV"]], - "89816": [["Cessaniti", "VV"], ["San Cono", "VV"], ["Favelloni", "VV"], ["Pannaconi", "VV"]], - "89817": [ - ["Sciconi", "VV"], - ["Paradisoni", "VV"], - ["Potenzoni", "VV"], - ["San Costantino", "VV"], - ["San Costantino Di Briatico", "VV"], - ["Briatico", "VV"], - ], - "89818": [["Capistrano", "VV"]], - "89819": [["Monterosso Calabro", "VV"]], - "89821": [["Vallelonga", "VV"], ["San Nicola Da Crissa", "VV"]], - "89822": [["Brognaturo", "VV"], ["Serra San Bruno", "VV"], ["Simbario", "VV"], ["Spadola", "VV"]], - "89823": [["Mongiana", "VV"], ["Fabrizia", "VV"]], - "89824": [["Nardodipace", "VV"]], - "89831": [ - ["Sant'Angelo", "VV"], - ["Sorianello", "VV"], - ["Sant'Angelo Gerocarne", "VV"], - ["Soriano Calabro", "VV"], - ["Gerocarne", "VV"], - ["Ciano", "VV"], - ], - "89832": [["Limpidi", "VV"], ["Acquaro", "VV"], ["Arena", "VV"], ["Dasa'", "VV"]], - "89833": [["Melicucca' Di Dinami", "VV"], ["Monsoreto", "VV"], ["Dinami", "VV"]], - "89834": [["Vazzano", "VV"], ["Pizzoni", "VV"]], - "89841": [ - ["Rombiolo", "VV"], - ["Presinaci", "VV"], - ["Moladi", "VV"], - ["Pernocari", "VV"], - ["Arzona", "VV"], - ["Filandari", "VV"], - ["Pizzinni", "VV"], - ], - "89842": [["San Calogero", "VV"], ["Calimera Calabra", "VV"]], - "89843": [["Stefanaconi", "VV"], ["Sant'Onofrio", "VV"], ["Filogaso", "VV"], ["Maierato", "VV"]], - "89844": [ - ["Badia", "VV"], - ["Limbadi", "VV"], - ["Mandaradoni", "VV"], - ["Marina Di Nicotera", "VV"], - ["Nicotera", "VV"], - ["Preitoni", "VV"], - ["Motta Filocastro", "VV"], - ["Comerconi", "VV"], - ["Caroni", "VV"], - ], - "89851": [["Jonadi", "VV"], ["San Costantino Calabro", "VV"], ["Nao", "VV"], ["Francica", "VV"]], - "89852": [["Mileto", "VV"], ["Paravati", "VV"], ["San Giovanni", "VV"], ["Comparni", "VV"]], - "89853": [["San Gregorio D'Ippona", "VV"]], - "89861": [["Tropea", "VV"], ["Parghelia", "VV"], ["Fitili", "VV"]], - "89862": [["Drapia", "VV"], ["Gasponi", "VV"], ["Caria", "VV"], ["Brattiro'", "VV"]], - "89863": [["Coccorino", "VV"], ["Joppolo", "VV"], ["Caroniti", "VV"]], - "89864": [["Panaia", "VV"], ["Spilinga", "VV"]], - "89866": [ - ["Barbalaconi", "VV"], - ["San Nicolo' Di Ricadi", "VV"], - ["Santa Domenica Ricadi", "VV"], - ["San Nicolo'", "VV"], - ["Santa Domenica", "VV"], - ["Lampazzone", "VV"], - ["Ricadi", "VV"], - ], - "89867": [["Zaccanopoli", "VV"], ["Zungri", "VV"]], - "89868": [["Zambrone", "VV"], ["Daffina'", "VV"], ["San Giovanni Di Zambrone", "VV"]], - "89900": [ - ["Longobardi", "VV"], - ["Vibo Marina", "VV"], - ["Vena Superiore", "VV"], - ["Porto Salvo", "VV"], - ["Vena", "VV"], - ["Vibo Valentia Marina", "VV"], - ["Piscopio", "VV"], - ["Vibo Valentia", "VV"], - ["Triparni", "VV"], - ], - "83010": [ - ["Grottolella", "AV"], - ["Capriglia Irpina", "AV"], - ["Torrioni", "AV"], - ["Summonte", "AV"], - ["Tufo", "AV"], - ["Starze", "AV"], - ["Sant'Angelo A Scala", "AV"], - ["San Felice", "AV"], - ["Chianche", "AV"], - ["Starze Di Summonte", "AV"], - ["Petruro Irpino", "AV"], - ], - "83011": [["Altavilla Irpina", "AV"]], - "83012": [["Cervinara", "AV"], ["Trescine", "AV"], ["Ioffredo", "AV"]], - "83013": [ - ["Santuario Di Montevergine", "AV"], - ["Mercogliano", "AV"], - ["Torelli", "AV"], - ["Torelli Di Mercogliano", "AV"], - ["Torrette", "AV"], - ], - "83014": [["Ospedaletto D'Alpinolo", "AV"]], - "83015": [["Pietrastornina", "AV"], ["Ciardelli Inferiore", "AV"]], - "83016": [["Tufara Valle", "AV"], ["Roccabascerana", "AV"], ["Squillani", "AV"], ["Cassano Caudino", "AV"]], - "83017": [["Ferrari Di Cervinara", "AV"], ["Rotondi", "AV"]], - "83018": [["San Martino Valle Caudina", "AV"]], - "83020": [ - ["Tavernola San Felice", "AV"], - ["Santa Lucia Di Serino", "AV"], - ["Domicella", "AV"], - ["Petruro", "AV"], - ["Quadrelle", "AV"], - ["Celzi", "AV"], - ["Pago Del Vallo Di Lauro", "AV"], - ["Forino", "AV"], - ["Cesinali", "AV"], - ["Aiello Del Sabato", "AV"], - ["San Michele Di Serino", "AV"], - ["Taurano", "AV"], - ["Contrada", "AV"], - ["Moschiano", "AV"], - ["Sperone", "AV"], - ["Casola", "AV"], - ["Marzano Di Nola", "AV"], - ["Quindici", "AV"], - ["Sirignano", "AV"], - ], - "83021": [["Avella", "AV"]], - "83022": [["Baiano", "AV"]], - "83023": [["Lauro", "AV"], ["Fontenovella", "AV"], ["Migliano", "AV"]], - "83024": [["Monteforte Irpino", "AV"], ["Molinelle", "AV"]], - "83025": [ - ["Borgo Di Montoro Inferiore", "AV"], - ["Montoro", "AV"], - ["Preturo", "AV"], - ["Aterrana", "AV"], - ["Caliano", "AV"], - ["Torchiati", "AV"], - ["Piazza Di Pandola", "AV"], - ["Figlioli", "AV"], - ["Borgo", "AV"], - ["Piano", "AV"], - ["San Pietro", "AV"], - ["Banzano", "AV"], - ["Misciano", "AV"], - ["Montoro Superiore", "AV"], - ["Montoro Inferiore", "AV"], - ], - "83026": [["San Pietro Di Montoro Superiore", "AV"], ["Banzano Di Montoro Superiore", "AV"]], - "83027": [["Mugnano Del Cardinale", "AV"]], - "83028": [ - ["Serino", "AV"], - ["Sala", "AV"], - ["San Sossio Di Serino", "AV"], - ["Canale", "AV"], - ["San Biagio", "AV"], - ["Ferrari Stazione Serino", "AV"], - ], - "83029": [["Sant'Andrea Apostolo", "AV"], ["Sant'Agata Irpina", "AV"], ["Solofra", "AV"]], - "83030": [ - ["Savignano Irpino", "AV"], - ["San Barbato", "AV"], - ["Venticano", "AV"], - ["Campanarello", "AV"], - ["Montefredane", "AV"], - ["Lapio", "AV"], - ["Zungoli", "AV"], - ["Prata Di Principato Ultra", "AV"], - ["Melito Irpino", "AV"], - ["Montefusco", "AV"], - ["Dentecane", "AV"], - ["Santa Paolina", "AV"], - ["Manocalzati", "AV"], - ["Arcella", "AV"], - ["Serra", "AV"], - ["Pietradefusi", "AV"], - ["Sant'Angelo A Cancelli", "AV"], - ["Torre Le Nocelle", "AV"], - ["Montaguto", "AV"], - ["Greci", "AV"], - ["Montefalcione", "AV"], - ["Sant'Elena Irpina", "AV"], - ["Savignano Stazione", "AV"], - ["Castello Del Lago", "AV"], - ["Taurasi", "AV"], - ["Villanova Del Battista", "AV"], - ], - "83031": [ - ["Ariano Irpino Stazione", "AV"], - ["Palazzisi", "AV"], - ["Ariano Irpino", "AV"], - ["La Manna", "AV"], - ["Ariano Scalo", "AV"], - ["Orneta", "AV"], - ], - "83032": [["Morroni", "AV"], ["Bonito", "AV"]], - "83034": [["Casalbore", "AV"]], - "83035": [["Grottaminarda", "AV"], ["Carpignano", "AV"]], - "83036": [["Calore", "AV"], ["Pianopantano", "AV"], ["Mirabella Eclano", "AV"], ["Passo Di Mirabella", "AV"]], - "83037": [["Montecalvo Irpino", "AV"]], - "83038": [["Montemiletto", "AV"], ["Montaperto", "AV"]], - "83039": [ - ["Serra", "AV"], - ["Pratola Serra", "AV"], - ["San Michele Di Pratola Serra", "AV"], - ["Serra Di Pratola Serra", "AV"], - ["San Michele Di Pratola", "AV"], - ], - "83040": [ - ["Cassano Irpino", "AV"], - ["Castelvetere Sul Calore", "AV"], - ["Fontanarosa", "AV"], - ["Carife", "AV"], - ["Alvano", "AV"], - ["Materdomini", "AV"], - ["Chiusano Di San Domenico", "AV"], - ["Andretta", "AV"], - ["Castelfranci", "AV"], - ["Castel Baronia", "AV"], - ["Mattinella", "AV"], - ["Cairano", "AV"], - ["Gesualdo", "AV"], - ["Conza Della Campania", "AV"], - ["Guardia Lombardi", "AV"], - ["Luogosano", "AV"], - ["Pila Ai Piani", "AV"], - ["Quaglietta", "AV"], - ["Frigento", "AV"], - ["Flumeri", "AV"], - ["Calabritto", "AV"], - ["Montemarano", "AV"], - ["Caposele", "AV"], - ["Morra De Sanctis", "AV"], - ["Candida", "AV"], - ["Pagliara", "AV"], - ], - "83041": [["Aquilonia", "AV"]], - "83042": [["Atripalda", "AV"]], - "83043": [["Laceno", "AV"], ["Villaggio Laceno", "AV"], ["Bagnoli Irpino", "AV"]], - "83044": [["Piano Regolatore", "AV"], ["Bisaccia Nuova", "AV"], ["Bisaccia", "AV"]], - "83045": [["Calitri", "AV"]], - "83046": [["Lacedonia", "AV"]], - "83047": [["Lioni", "AV"]], - "83048": [["Sorbo Di Montella", "AV"], ["Fontana Di Montella", "AV"], ["Montella", "AV"]], - "83049": [["Monteverde", "AV"]], - "83050": [ - ["Rocca San Felice", "AV"], - ["Volturara Irpina", "AV"], - ["Sant'Angelo All'Esca", "AV"], - ["San Mango Sul Calore", "AV"], - ["Parolise", "AV"], - ["San Potito Ultra", "AV"], - ["Sorbo Serpico", "AV"], - ["Santo Stefano Del Sole", "AV"], - ["Scampitella", "AV"], - ["San Sossio Baronia", "AV"], - ["Salza Irpina", "AV"], - ["Villamaina", "AV"], - ["San Nicola Baronia", "AV"], - ["Vallesaccarda", "AV"], - ["Senerchia", "AV"], - ], - "83051": [["Ponteromito", "AV"], ["Nusco", "AV"]], - "83052": [["Paternopoli", "AV"]], - "83053": [["Sant'Andrea Di Conza", "AV"]], - "83054": [["Sant'Angelo Dei Lombardi", "AV"], ["San Vito", "AV"], ["San Vito Dei Lombardi", "AV"]], - "83055": [["Sturno", "AV"]], - "83056": [["Teora", "AV"]], - "83057": [["Torella Dei Lombardi", "AV"]], - "83058": [["Trevico", "AV"], ["Molini", "AV"]], - "83059": [["Vallata", "AV"]], - "83100": [["Avellino", "AV"], ["Valle Ponticelli", "AV"], ["Bellizzi Irpino", "AV"], ["Picarelli", "AV"]], - "82010": [ - ["Moiano", "BN"], - ["San Giovanni Di Ceppaloni", "BN"], - ["Ripabianca", "BN"], - ["Beltiglio", "BN"], - ["San Nicola Manfredi", "BN"], - ["Perrillo", "BN"], - ["Iannassi", "BN"], - ["Bosco Perrotta", "BN"], - ["Motta", "BN"], - ["Bucciano", "BN"], - ["San Martino Sannita", "BN"], - ["Maccoli", "BN"], - ["Beltiglio Di Ceppaloni", "BN"], - ["Luzzano", "BN"], - ["Bagnara", "BN"], - ["Arpaise", "BN"], - ["Pastene", "BN"], - ["Sant'Angelo A Cupolo", "BN"], - ["Montorsi", "BN"], - ["Monterocchetta", "BN"], - ["Terranova", "BN"], - ["Terranova D'Arpaise", "BN"], - ["Pagliara", "BN"], - ["Ripabianca Tressanti", "BN"], - ["Ceppaloni", "BN"], - ["Cavuoti", "BN"], - ["San Leucio Del Sannio", "BN"], - ], - "82011": [["Forchia", "BN"], ["Arpaia", "BN"], ["Paolisi", "BN"], ["Airola", "BN"]], - "82013": [["Bonea", "BN"]], - "82015": [["Durazzano", "BN"]], - "82016": [["Cirignano", "BN"], ["Varoni", "BN"], ["Montesarchio", "BN"]], - "82017": [["Pannarano", "BN"]], - "82018": [ - ["San Giovanni Di San Giorgio Del Sannio", "BN"], - ["Calvi", "BN"], - ["Cubante", "BN"], - ["San Giorgio Del Sannio", "BN"], - ["San Nazzaro", "BN"], - ], - "82019": [["Bagnoli", "BN"], ["Faggiano", "BN"], ["Sant'Agata De' Goti", "BN"], ["Laiano", "BN"]], - "82020": [ - ["San Giorgio La Molara", "BN"], - ["Ginestra Degli Schiavoni", "BN"], - ["Pesco Sannita", "BN"], - ["Circello", "BN"], - ["Santa Croce Del Sannio", "BN"], - ["Paduli", "BN"], - ["Campolattaro", "BN"], - ["Fragneto L'Abate", "BN"], - ["Pago Veiano", "BN"], - ["Fragneto Monforte", "BN"], - ["Reino", "BN"], - ["Pietrelcina", "BN"], - ["Baselice", "BN"], - ["Foiano Di Val Fortore", "BN"], - ["Molinara", "BN"], - ["Buonalbergo", "BN"], - ], - "82021": [["Apice Nuovo", "BN"], ["Apice", "BN"], ["Sant'Arcangelo Trimonte", "BN"]], - "82022": [["Castelfranco In Miscano", "BN"]], - "82023": [["Castelvetere In Val Fortore", "BN"]], - "82024": [["Colle Sannita", "BN"], ["Castelpagano", "BN"], ["Decorata", "BN"]], - "82025": [["Montefalcone Di Val Fortore", "BN"]], - "82026": [["Sassinoro", "BN"], ["Morcone", "BN"], ["Cuffiano", "BN"]], - "82027": [["Giallonardo", "BN"], ["Casalduni", "BN"], ["Pontelandolfo", "BN"]], - "82028": [["San Bartolomeo In Galdo", "BN"]], - "82029": [["San Marco Dei Cavoti", "BN"]], - "82030": [ - ["Torrecuso", "BN"], - ["Pietraroja", "BN"], - ["Limatola", "BN"], - ["Ponte", "BN"], - ["Melizzano", "BN"], - ["Dugenta", "BN"], - ["Ave Gratia Plena", "BN"], - ["Foglianise", "BN"], - ["Castelpoto", "BN"], - ["Paupisi", "BN"], - ["Campoli Del Monte Taburno", "BN"], - ["Biancano", "BN"], - ["Massa", "BN"], - ["Apollosa", "BN"], - ["Giardoni", "BN"], - ["San Lorenzello", "BN"], - ["Frasso Telesino", "BN"], - ["San Salvatore Telesino", "BN"], - ["Tocco Caudio", "BN"], - ["Cautano", "BN"], - ["Faicchio", "BN"], - ["Cacciano", "BN"], - ["Torello", "BN"], - ["Puglianello", "BN"], - ["Torello Di Melizzano", "BN"], - ], - "82031": [["Amorosi", "BN"]], - "82032": [["Cerreto Sannita", "BN"]], - "82033": [["Civitella Licinio", "BN"], ["Cusano Mutri", "BN"]], - "82034": [["San Lupo", "BN"], ["Guardia Sanframondi", "BN"], ["San Lorenzo Maggiore", "BN"]], - "82036": [["Solopaca", "BN"]], - "82037": [["Telese Terme", "BN"], ["Castelvenere", "BN"]], - "82038": [["Vitulano", "BN"]], - "82100": [["Benevento", "BN"], ["Perrillo", "BN"], ["Pastene", "BN"]], - "81010": [ - ["Letino", "CE"], - ["Torcino", "CE"], - ["Squille", "CE"], - ["Latina Di Baia", "CE"], - ["Gioia Sannitica", "CE"], - ["Dragoni", "CE"], - ["Carattano", "CE"], - ["Gallo Matese", "CE"], - ["Calvisi", "CE"], - ["Baia E Latina", "CE"], - ["San Giorgio", "CE"], - ["Ailano", "CE"], - ["Vallelunga", "CE"], - ["Ciorlano", "CE"], - ["Valle Agricola", "CE"], - ["Pratella", "CE"], - ["Alvignanello", "CE"], - ["Castel Campagnano", "CE"], - ["Prata Sannita", "CE"], - ["San Gregorio Matese", "CE"], - ["Ruviano", "CE"], - ], - "81011": [["Totari", "CE"], ["Alife", "CE"]], - "81012": [["Alvignano", "CE"], ["Marciano Freddo", "CE"]], - "81013": [ - ["Villa Santa Croce", "CE"], - ["Piana Di Monte Verna", "CE"], - ["San Giovanni E Paolo", "CE"], - ["Caiazzo", "CE"], - ], - "81014": [["Fontegreca", "CE"], ["Capriati A Volturno", "CE"]], - "81016": [ - ["Piedimonte D'Alife", "CE"], - ["San Potito Sannitico", "CE"], - ["Castello Del Matese", "CE"], - ["Piedimonte Matese", "CE"], - ["Sepicciano", "CE"], - ], - "81017": [["Quattroventi", "CE"], ["Sant'Angelo D'Alife", "CE"], ["Raviscanina", "CE"]], - "81020": [ - ["Castel Morrone", "CE"], - ["Capodrise", "CE"], - ["Casapulla", "CE"], - ["San Nicola La Strada", "CE"], - ["Valle Di Maddaloni", "CE"], - ["San Marco Evangelista", "CE"], - ["Annunziata", "CE"], - ["Recale", "CE"], - ], - "81021": [["Arienzo", "CE"]], - "81022": [["Casagiove", "CE"]], - "81023": [["Messercola", "CE"], ["Cervino", "CE"], ["Forchia Di Cervino", "CE"]], - "81024": [["Grotticella", "CE"], ["Montedecoro", "CE"], ["Maddaloni", "CE"]], - "81025": [["Cantone", "CE"], ["Marcianise", "CE"]], - "81027": [ - ["San Felice A Cancello", "CE"], - ["Cancello Di Ferrovia", "CE"], - ["Cave", "CE"], - ["San Marco Trotti", "CE"], - ["Cave Di San Felice", "CE"], - ["Polvica", "CE"], - ], - "81028": [["Santa Maria A Vico", "CE"]], - "81030": [ - ["Arnone", "CE"], - ["Orta Di Atella", "CE"], - ["Teverola", "CE"], - ["Villa Di Briano", "CE"], - ["Cancello Ed Arnone", "CE"], - ["Baia Domizia", "CE"], - ["Carinola", "CE"], - ["Frignano", "CE"], - ["Castel Volturno", "CE"], - ["Cesa", "CE"], - ["Casale Di Carinola", "CE"], - ["Sant'Arpino", "CE"], - ["Succivo", "CE"], - ["Villaggio Coppola Pinetamare", "CE"], - ["Casale", "CE"], - ["Cellole", "CE"], - ["Lusciano", "CE"], - ["Casaluce", "CE"], - ["Nocelleto", "CE"], - ["Cancello", "CE"], - ["Gricignano Di Aversa", "CE"], - ["Parete", "CE"], - ["Casanova", "CE"], - ["Falciano Del Massico", "CE"], - ["San Marcellino", "CE"], - ["Casapesenna", "CE"], - ], - "81031": [["Aversa", "CE"]], - "81032": [["Carinaro", "CE"]], - "81033": [["Casal Di Principe", "CE"]], - "81034": [["Mondragone", "CE"]], - "81035": [ - ["Gallo", "CE"], - ["Ameglio", "CE"], - ["Roccamonfina", "CE"], - ["Marzano Appio", "CE"], - ["Fontanafredda", "CE"], - ["Campagnola", "CE"], - ["Filorsi", "CE"], - ["Garofali", "CE"], - ["Grottola", "CE"], - ], - "81036": [["San Cipriano D'Aversa", "CE"]], - "81037": [ - ["Cupa E Fasani", "CE"], - ["Corigliano", "CE"], - ["Piedimonte Di Sessa Aurunca", "CE"], - ["Santa Maria Valongo", "CE"], - ["San Castrese", "CE"], - ["Sant'Agata", "CE"], - ["Carano", "CE"], - ["Fasani", "CE"], - ["San Martino", "CE"], - ["San Carlo", "CE"], - ["Lauro Di Sessa Aurunca", "CE"], - ["San Carlo Di Sessa Aurunca", "CE"], - ["Fontanaradina", "CE"], - ["San Martino Di Sessa Aurunca", "CE"], - ["Avezzano Sorbello", "CE"], - ["Sessa Aurunca", "CE"], - ["Carano Di Sessa Aurunca", "CE"], - ["Piedimonte", "CE"], - ["Cupa", "CE"], - ["Valogno", "CE"], - ["Cascano", "CE"], - ], - "81038": [["Trentola Ducenta", "CE"]], - "81039": [["Bonifica Villa Literno", "CE"], ["Villa Literno", "CE"]], - "81040": [ - ["Rocca D'Evandro", "CE"], - ["Cisterna", "CE"], - ["Maiorano Di Monte", "CE"], - ["Castel Di Sasso", "CE"], - ["Treglia", "CE"], - ["Formicola", "CE"], - ["Curti", "CE"], - ["Bivio Mortola", "CE"], - ["Pontelatone", "CE"], - ["Pietravairano", "CE"], - ["Cocuruzzo", "CE"], - ["Camino", "CE"], - ["Liberi", "CE"], - ["San Felice A Pietravairano", "CE"], - ["San Felice", "CE"], - ["Cisterna Di Castel Di Sasso", "CE"], - ["Borgo Sant'Antonio Abate", "CE"], - ], - "81041": [["Vitulazio", "CE"], ["Bellona", "CE"]], - "81042": [ - ["Calvi Risorta", "CE"], - ["Petrulo", "CE"], - ["Pozzillo", "CE"], - ["Val D'Assano", "CE"], - ["Rocchetta E Croce", "CE"], - ["Giano Vetusto", "CE"], - ["Petrullo", "CE"], - ["Visciano", "CE"], - ], - "81043": [["Capua", "CE"], ["Sant'Angelo In Formis", "CE"]], - "81044": [ - ["San Clemente", "CE"], - ["Tora", "CE"], - ["Piccilli", "CE"], - ["Orchi", "CE"], - ["Conca Della Campania", "CE"], - ["Sipicciano", "CE"], - ["Galluccio", "CE"], - ["Tora E Piccilli", "CE"], - ["Cave", "CE"], - ["Vaglie", "CE"], - ], - "81046": [["Grazzanise", "CE"], ["Brezza", "CE"], ["Borgo Rurale Appio", "CE"], ["Borgo Appio", "CE"]], - "81047": [["Macerata Campania", "CE"], ["Caturano", "CE"]], - "81049": [["Mignano Monte Lungo", "CE"], ["San Pietro Infine", "CE"], ["Caspoli", "CE"]], - "81050": [ - ["Portico Di Caserta", "CE"], - ["San Felice", "CE"], - ["Musicile", "CE"], - ["Santa Maria La Fossa", "CE"], - ["Montanaro", "CE"], - ["Pastorano", "CE"], - ["Francolise", "CE"], - ["Ciamprisco", "CE"], - ["Sant'Andrea Del Pizzone", "CE"], - ["Pantuliano", "CE"], - ["Camigliano", "CE"], - ["San Tammaro", "CE"], - ["Presenzano", "CE"], - ], - "81051": [["Roccaromana", "CE"], ["Statigliano", "CE"], ["Pietramelara", "CE"]], - "81052": [["Pignataro Maggiore", "CE"]], - "81053": [["Riardo", "CE"]], - "81054": [["San Prisco", "CE"]], - "81055": [["Santa Maria Capua Vetere", "CE"]], - "81056": [["Sparanise", "CE"]], - "81057": [ - ["San Marco", "CE"], - ["Casale Di Teano", "CE"], - ["Furnolo", "CE"], - ["Pugliano", "CE"], - ["Casamostra", "CE"], - ["Teano", "CE"], - ["Casafredda", "CE"], - ["Versano", "CE"], - ["Fontanelle", "CE"], - ["Casi", "CE"], - ["Casale", "CE"], - ["San Giuliano", "CE"], - ], - "81058": [ - ["Vairano", "CE"], - ["Vairano Scalo", "CE"], - ["Patenora", "CE"], - ["Marzanello", "CE"], - ["Vairano Patenora", "CE"], - ], - "81059": [["Santa Lucia", "CE"], ["Caianello", "CE"], ["Vairano Stazione", "CE"], ["Montano", "CE"]], - "81100": [ - ["Casolla", "CE"], - ["Tredici", "CE"], - ["Staturano", "CE"], - ["Briano", "CE"], - ["Tuoro", "CE"], - ["Ercole", "CE"], - ["Mezzano", "CE"], - ["Caserta", "CE"], - ["Falciano", "CE"], - ["Santa Barbara", "CE"], - ["Puccianiello", "CE"], - ["Vaccheria", "CE"], - ["Centurano", "CE"], - ["San Clemente Di Caserta", "CE"], - ["Casola", "CE"], - ["San Leucio", "CE"], - ["Sala Di Caserta", "CE"], - ["San Clemente", "CE"], - ["Casertavecchia", "CE"], - ["Casola Di Caserta", "CE"], - ], - "80010": [["Scalzapecora", "NA"], ["Quarto", "NA"], ["Torretta", "NA"], ["Villaricca", "NA"]], - "80011": [["Pezzalunga", "NA"], ["Acerra", "NA"]], - "80012": [["Calvizzano", "NA"]], - "80013": [ - ["Casalnuovo Di Napoli", "NA"], - ["Tavernanova", "NA"], - ["Licignano Di Napoli", "NA"], - ["Casarea", "NA"], - ], - "80014": [["Giugliano In Campania", "NA"], ["Varcaturo", "NA"], ["Lago Patria", "NA"]], - "80016": [["Torre Piscitelli", "NA"], ["San Rocco", "NA"], ["Marano Di Napoli", "NA"]], - "80017": [["Melito Di Napoli", "NA"]], - "80018": [["Mugnano Di Napoli", "NA"]], - "80019": [["Qualiano", "NA"]], - "80020": [["Crispano", "NA"], ["Parco Delle Acacie", "NA"], ["Casavatore", "NA"], ["Frattaminore", "NA"]], - "80021": [["Afragola", "NA"]], - "80022": [["Arzano", "NA"]], - "80023": [["Pascarola", "NA"], ["Caivano", "NA"]], - "80024": [["Carditello", "NA"], ["Cardito", "NA"]], - "80025": [["Casandrino", "NA"]], - "80026": [["Arpino", "NA"], ["Casoria", "NA"]], - "80027": [["Frattamaggiore", "NA"]], - "80028": [["Grumo Nevano", "NA"]], - "80029": [["Sant'Antimo", "NA"]], - "80030": [ - ["San Vitaliano", "NA"], - ["Camposano", "NA"], - ["Cimitile", "NA"], - ["Castello Di Cisterna", "NA"], - ["Visciano", "NA"], - ["Spartimento", "NA"], - ["Gallo", "NA"], - ["Carbonara Di Nola", "NA"], - ["Comiziano", "NA"], - ["Gargani", "NA"], - ["Mariglianella", "NA"], - ["Schiava", "NA"], - ["Scisciano", "NA"], - ["Liveri", "NA"], - ["Tufino", "NA"], - ["San Paolo Bel Sito", "NA"], - ["Roccarainola", "NA"], - ], - "80031": [["Brusciano", "NA"]], - "80032": [["Casamarciano", "NA"]], - "80033": [["Cicciano", "NA"]], - "80034": [["Marigliano", "NA"], ["Faibano", "NA"], ["Lausdomini", "NA"], ["Selva", "NA"], ["Casaferro", "NA"]], - "80035": [["Nola", "NA"], ["Polvica", "NA"], ["Piazzolla", "NA"], ["Cinquevie", "NA"], ["Pollastri", "NA"]], - "80036": [["Palma Campania", "NA"], ["Vico Di Palma", "NA"], ["Vico", "NA"], ["Castello", "NA"]], - "80038": [["Pomigliano D'Arco", "NA"]], - "80039": [["Saviano", "NA"], ["Piazzolla Di Saviano", "NA"]], - "80040": [ - ["Volla", "NA"], - ["Boccia Al Mauro", "NA"], - ["San Gennaro Vesuviano", "NA"], - ["Flocco", "NA"], - ["Caravita", "NA"], - ["Terzigno", "NA"], - ["Massa Di Somma", "NA"], - ["Musci", "NA"], - ["Trecase", "NA"], - ["Poggiomarino", "NA"], - ["Cercola", "NA"], - ["San Sebastiano Al Vesuvio", "NA"], - ["Striano", "NA"], - ["Pollena Trocchia", "NA"], - ], - "80041": [["Boscoreale", "NA"], ["Marchesa", "NA"]], - "80042": [["Boscotrecase", "NA"]], - "80044": [["Ottaviano", "NA"], ["San Gennarello", "NA"]], - "80045": [["Mariconda", "NA"], ["Messigno", "NA"], ["Pompei", "NA"], ["Pompei Scavi", "NA"]], - "80046": [["San Giorgio A Cremano", "NA"]], - "80047": [["Santa Maria La Scala", "NA"], ["San Giuseppe Vesuviano", "NA"], ["Casilli", "NA"]], - "80048": [ - ["Madonna Dell'Arco", "NA"], - ["Starza Vecchia", "NA"], - ["Ponte Di Ferro", "NA"], - ["Sant'Anastasia", "NA"], - ], - "80049": [["Somma Vesuviana", "NA"]], - "80050": [ - ["Santa Maria La Carita'", "NA"], - ["Pimonte", "NA"], - ["Piazza Roma", "NA"], - ["Tralia", "NA"], - ["Franche", "NA"], - ["Piazza", "NA"], - ["Casola Di Napoli", "NA"], - ["San Nicola", "NA"], - ["Lettere", "NA"], - ], - "80051": [["Agerola", "NA"], ["Pianillo", "NA"], ["San Lazzaro Di Agerola", "NA"], ["Bomerano", "NA"]], - "80053": [ - ["Castellammare Di Stabia", "NA"], - ["Scanzano", "NA"], - ["Ponte Della Persica", "NA"], - ["Quisisana", "NA"], - ], - "80054": [["Caprile", "NA"], ["Gragnano", "NA"]], - "80055": [["Portici", "NA"], ["Bellavista", "NA"]], - "80056": [["Ercolano", "NA"], ["Resina", "NA"]], - "80057": [["Sant'Antonio Abate", "NA"]], - "80058": [["Torre Annunziata", "NA"]], - "80059": [["Torre Del Greco", "NA"], ["Leopardi", "NA"], ["Santa Maria La Bruna", "NA"]], - "80060": [["Massaquano", "NA"], ["Monte Faito", "NA"]], - "80061": [ - ["Massa Lubrense", "NA"], - ["Nerano", "NA"], - ["Sant'Agata Sui Due Golfi", "NA"], - ["Termini", "NA"], - ["Monticchio Di Massa Lubrense", "NA"], - ], - "80062": [["Meta", "NA"]], - "80063": [["Piano Di Sorrento", "NA"]], - "80065": [["Sant'Agnello", "NA"], ["Colli Di Fontanelle", "NA"]], - "80066": [["Seiano", "NA"], ["Fornacelle", "NA"], ["Montechiaro", "NA"], ["Fornacella", "NA"]], - "80067": [["Priora", "NA"], ["Capo Di Sorrento", "NA"], ["Sorrento", "NA"]], - "80069": [["Moiano", "NA"], ["Vico Equense", "NA"], ["Villaggio Monte Faito", "NA"]], - "80070": [ - ["Buonopane", "NA"], - ["Succhivo", "NA"], - ["Fontana", "NA"], - ["Miliscola", "NA"], - ["Testaccio D'Ischia", "NA"], - ["Barano D'Ischia", "NA"], - ["Serrara", "NA"], - ["Fusaro", "NA"], - ["Torregaveta", "NA"], - ["Bacoli", "NA"], - ["Capo Miseno", "NA"], - ["Miseno", "NA"], - ["Sant'Angelo", "NA"], - ["Serrara Fontana", "NA"], - ["Monte Di Procida", "NA"], - ["Cappella", "NA"], - ["Cuma", "NA"], - ["Baia", "NA"], - ], - "80071": [["Anacapri", "NA"]], - "80073": [["Marina Grande Di Capri", "NA"], ["Capri", "NA"]], - "80074": [["Casamicciola Terme", "NA"]], - "80075": [["Forio", "NA"], ["Panza", "NA"], ["Monterone", "NA"]], - "80076": [["Lacco Ameno", "NA"]], - "80077": [ - ["Ischia San Michele", "NA"], - ["Piedimonte D'Ischia", "NA"], - ["Sant'Antuono D'Ischia", "NA"], - ["Ischia", "NA"], - ["Ischia Ponte", "NA"], - ["Ischia Porto", "NA"], - ], - "80078": [ - ["Pozzuoli", "NA"], - ["Lucrino", "NA"], - ["Lago Averno", "NA"], - ["Monterusciello", "NA"], - ["Arco Felice", "NA"], - ["Cappuccini", "NA"], - ["Lido Di Licola", "NA"], - ["Licola", "NA"], - ], - "80079": [["Procida", "NA"]], - "80100": [["Napoli", "NA"]], - "80121": [["Napoli", "NA"]], - "80122": [["Napoli", "NA"], ["Chiaia", "NA"]], - "80123": [["Napoli", "NA"]], - "80124": [["Napoli", "NA"], ["Bagnoli", "NA"]], - "80125": [["Napoli", "NA"], ["Agnano", "NA"]], - "80126": [["Pianura", "NA"], ["Napoli", "NA"], ["Soccavo", "NA"]], - "80127": [["Vomero", "NA"], ["Napoli", "NA"]], - "80128": [["Napoli", "NA"]], - "80129": [["Napoli", "NA"]], - "80131": [["Napoli", "NA"], ["Miano", "NA"], ["Arenella", "NA"], ["Cappella Cangiani", "NA"]], - "80132": [["Napoli", "NA"]], - "80133": [["Napoli", "NA"]], - "80134": [["Napoli", "NA"]], - "80135": [["Napoli", "NA"]], - "80136": [["Napoli", "NA"]], - "80137": [["Napoli", "NA"]], - "80138": [["Napoli", "NA"]], - "80139": [["Napoli", "NA"]], - "80141": [["Napoli", "NA"]], - "80142": [["Napoli", "NA"]], - "80143": [["Napoli", "NA"]], - "80144": [["Napoli", "NA"], ["San Pietro A Patierno", "NA"], ["Secondigliano", "NA"]], - "80145": [ - ["Marianella", "NA"], - ["Chiaiano Ed Uniti", "NA"], - ["Scampia", "NA"], - ["Miano", "NA"], - ["Piscinola", "NA"], - ["Napoli", "NA"], - ], - "80146": [["Napoli", "NA"], ["San Giovanni A Teduccio", "NA"]], - "80147": [["Barra", "NA"], ["Ponticelli", "NA"], ["Napoli", "NA"]], - "84010": [ - ["Atrani", "SA"], - ["Ravello", "SA"], - ["Cetara", "SA"], - ["San Lorenzo Di Sant'Egidio", "SA"], - ["Minori", "SA"], - ["Corbara", "SA"], - ["Tramonti", "SA"], - ["San Valentino Torio", "SA"], - ["Praiano", "SA"], - ["Furore", "SA"], - ["Campinola", "SA"], - ["Conca Dei Marini", "SA"], - ["San Marzano Sul Sarno", "SA"], - ["Pontone", "SA"], - ["San Michele", "SA"], - ["Scala", "SA"], - ["Erchie", "SA"], - ["Maiori", "SA"], - ["Sant'Egidio Del Monte Albino", "SA"], - ], - "84011": [ - ["Pastena", "SA"], - ["Vettica Pastena", "SA"], - ["Pogerola", "SA"], - ["Pogerola Di Amalfi", "SA"], - ["Lone", "SA"], - ["Amalfi", "SA"], - ], - "84012": [["Angri", "SA"]], - "84013": [ - ["Corpo Di Cava", "SA"], - ["Passiano", "SA"], - ["San Pietro Di Cava", "SA"], - ["Cava De' Tirreni", "SA"], - ["Badia Di Cava De' Tirreni", "SA"], - ["Pregiato", "SA"], - ["Arcara", "SA"], - ["Santa Lucia Di Cava", "SA"], - ["Dupino", "SA"], - ["Alessia", "SA"], - ["Marini", "SA"], - ], - "84014": [["Nocera Inferiore", "SA"]], - "84015": [["Nocera Superiore", "SA"], ["Materdomini Di Nocera", "SA"]], - "84016": [["Pagani", "SA"]], - "84017": [["Positano", "SA"], ["Montepertuso", "SA"]], - "84018": [["San Pietro Di Scafati", "SA"], ["Scafati", "SA"]], - "84019": [ - ["Benincasa", "SA"], - ["Raito", "SA"], - ["Vietri Sul Mare", "SA"], - ["Dragonea", "SA"], - ["Marina Di Vietri", "SA"], - ["Molina Di Vietri Sul Mare", "SA"], - ["Molina", "SA"], - ], - "84020": [ - ["Romagnano Al Monte", "SA"], - ["Controne", "SA"], - ["Santomenna", "SA"], - ["Ottati", "SA"], - ["Valva", "SA"], - ["Colliano", "SA"], - ["Bivio Palomonte", "SA"], - ["Aquara", "SA"], - ["Perrazze", "SA"], - ["Bellosguardo", "SA"], - ["Ricigliano", "SA"], - ["Quadrivio Di Campagna", "SA"], - ["Palomonte", "SA"], - ["Serra Di Castelcivita", "SA"], - ["Salvitelle", "SA"], - ["San Gregorio Magno", "SA"], - ["Laviano", "SA"], - ["Roscigno", "SA"], - ["Castelcivita", "SA"], - ["Corleto Monforte", "SA"], - ["Oliveto Citra", "SA"], - ["Castelnuovo Di Conza", "SA"], - ["Petina", "SA"], - ["Centro Urbano", "SA"], - ], - "84021": [["Tufariello", "SA"], ["Buccino", "SA"], ["Buccino Stazione", "SA"]], - "84022": [["Serradarce", "SA"], ["Puglietta", "SA"], ["Quadrivio", "SA"], ["Campagna", "SA"]], - "84023": [["Persano", "SA"]], - "84024": [["Bagni Di Contursi", "SA"], ["Contursi Terme", "SA"]], - "84025": [ - ["Bivio Santa Cecilia", "SA"], - ["Santa Cecilia Di Eboli", "SA"], - ["Corno D'Oro", "SA"], - ["Eboli", "SA"], - ], - "84026": [["Postiglione", "SA"]], - "84027": [["Sant'Angelo A Fasanella", "SA"]], - "84028": [["Borgo San Lazzaro", "SA"], ["Serre", "SA"]], - "84029": [ - ["Sicignano Degli Alburni", "SA"], - ["Galdo Degli Alburni", "SA"], - ["Sicignano Degli Alburni Stazione", "SA"], - ["Castelluccio Cosentino", "SA"], - ["Zuppino", "SA"], - ["Scorzo", "SA"], - ], - "84030": [ - ["Torraca", "SA"], - ["Sanza", "SA"], - ["Casaletto Spartano", "SA"], - ["Atena Lucana", "SA"], - ["Caselle In Pittari", "SA"], - ["Monte San Giacomo", "SA"], - ["Sicili'", "SA"], - ["Pertosa", "SA"], - ["Caggiano", "SA"], - ["Taverne", "SA"], - ["Tortorella", "SA"], - ["Morigerati", "SA"], - ["San Rufo", "SA"], - ["San Pietro Al Tanagro", "SA"], - ["Battaglia", "SA"], - ["Casalbuono", "SA"], - ["Atena Lucana Scalo", "SA"], - ], - "84031": [["Auletta", "SA"]], - "84032": [["Buonabitacolo", "SA"]], - "84033": [ - ["Prato Comune", "SA"], - ["Montesano Sulla Marcellana", "SA"], - ["Tardiano", "SA"], - ["Montesano Scalo", "SA"], - ["Arenabianca", "SA"], - ], - "84034": [["Padula Scalo", "SA"], ["Padula", "SA"]], - "84035": [["Polla", "SA"]], - "84036": [["Sala Consilina", "SA"], ["Trinita'", "SA"]], - "84037": [["Sant'Arsenio", "SA"]], - "84038": [["Sassano", "SA"], ["Caiazzano", "SA"], ["Silla", "SA"]], - "84039": [ - ["Pantano Di Teggiano", "SA"], - ["Prato Perillo", "SA"], - ["Teggiano", "SA"], - ["San Marco Di Teggiano", "SA"], - ], - "84040": [ - ["Poderia", "SA"], - ["Velina", "SA"], - ["Cannalonga", "SA"], - ["Castelnuovo Vallo Stazione", "SA"], - ["Celle Di Bulgheria", "SA"], - ["Casal Velino", "SA"], - ["Castelnuovo Cilento", "SA"], - ["Marina Di Casal Velino", "SA"], - ["Alfano", "SA"], - ["Ponte", "SA"], - ["Campora", "SA"], - ["Acquavella", "SA"], - ["Casal Velino Marina", "SA"], - ], - "84042": [["Acerno", "SA"]], - "84043": [["Agropoli Stazione", "SA"], ["Agropoli", "SA"]], - "84044": [["Matinella", "SA"], ["Albanella", "SA"]], - "84045": [["Borgo Carillia", "SA"], ["Carillia", "SA"], ["Altavilla Silentina", "SA"], ["Cerrelli", "SA"]], - "84046": [ - ["Marina Di Ascea", "SA"], - ["Terradura Di Ascea", "SA"], - ["Terradura", "SA"], - ["Catona", "SA"], - ["Catona Di Ascea", "SA"], - ["Ascea", "SA"], - ["Mandia Di Ascea", "SA"], - ["Mandia", "SA"], - ], - "84047": [ - ["Paestum", "SA"], - ["Capaccio Scalo", "SA"], - ["Vuccolo Di Maiorano", "SA"], - ["Ponte Barizzo", "SA"], - ["Capaccio", "SA"], - ["Gromola", "SA"], - ["Laura", "SA"], - ["Cafasso", "SA"], - ["Vannullo", "SA"], - ["Borgo Nuovo", "SA"], - ["Torre Di Paestum", "SA"], - ["Licinella", "SA"], - ["Santa Venere", "SA"], - ["Rettifilo", "SA"], - ], - "84048": [ - ["San Marco", "SA"], - ["Castellabate", "SA"], - ["Santa Maria", "SA"], - ["Santa Maria Di Castellabate", "SA"], - ["Ogliastro Marina", "SA"], - ], - "84049": [["Castel San Lorenzo", "SA"]], - "84050": [ - ["Laurito", "SA"], - ["Capitello", "SA"], - ["Magliano Vetere", "SA"], - ["Giungano", "SA"], - ["Laureana Cilento", "SA"], - ["Lustra", "SA"], - ["Matonti", "SA"], - ["Ispani", "SA"], - ["Cuccaro Vetere", "SA"], - ["Capizzo", "SA"], - ["Magliano Nuovo", "SA"], - ["Futani", "SA"], - ["Sorvaro", "SA"], - ], - "84051": [ - ["San Severino", "SA"], - ["San Severino Di Centola", "SA"], - ["Foria", "SA"], - ["Centola", "SA"], - ["San Nicola", "SA"], - ["San Nicola Di Centola", "SA"], - ["Palinuro", "SA"], - ], - "84052": [ - ["San Biase", "SA"], - ["Ceraso", "SA"], - ["Santa Barbara", "SA"], - ["San Sumino", "SA"], - ["Massascusa", "SA"], - ], - "84053": [["Monte Cicerale", "SA"], ["Cicerale", "SA"]], - "84055": [["Felitto", "SA"]], - "84056": [["Cardile", "SA"], ["Gioi", "SA"]], - "84057": [["Villa Littorio", "SA"], ["Laurino", "SA"]], - "84059": [["Lentiscosa", "SA"], ["Camerota", "SA"], ["Licusati", "SA"], ["Marina Di Camerota", "SA"]], - "84060": [ - ["Vatolla", "SA"], - ["Montecorice", "SA"], - ["Prignano Cilento", "SA"], - ["Abatemarco", "SA"], - ["Massicelle", "SA"], - ["Omignano Scalo", "SA"], - ["Mercato Cilento", "SA"], - ["Novi Velia", "SA"], - ["Omignano", "SA"], - ["Acquavena", "SA"], - ["Montano Antilia", "SA"], - ["Orria", "SA"], - ["Ostigliano", "SA"], - ["Piano Vetrale", "SA"], - ["Agnone Cilento", "SA"], - ["Pellare", "SA"], - ["Case Del Conte", "SA"], - ["Omignano Stazione", "SA"], - ["Perdifumo", "SA"], - ["Roccagloriosa", "SA"], - ["Ortodonico", "SA"], - ["Fornelli", "SA"], - ["Moio Della Civitella", "SA"], - ["Perito", "SA"], - ["Monteforte Cilento", "SA"], - ], - "84061": [["Eredita", "SA"], ["Ogliastro Cilento", "SA"], ["Finocchito", "SA"]], - "84062": [ - ["Olevano Sul Tusciano", "SA"], - ["Salitto", "SA"], - ["Monticelli", "SA"], - ["Ariano", "SA"], - ["Valle", "SA"], - ], - "84065": [["Piaggine", "SA"]], - "84066": [["Pisciotta", "SA"], ["Marina Di Pisciotta", "SA"], ["Rodio", "SA"], ["Caprioli", "SA"]], - "84067": [["Santa Marina", "SA"], ["Policastro Bussentino", "SA"]], - "84068": [ - ["Galdo Cilento", "SA"], - ["Celso", "SA"], - ["Pollica", "SA"], - ["Pioppi", "SA"], - ["Acciaroli", "SA"], - ["Galdo", "SA"], - ["Cannicchio", "SA"], - ], - "84069": [["Acquaviva", "SA"], ["Carratiello", "SA"], ["Fonte", "SA"], ["Roccadaspide", "SA"], ["Serra", "SA"]], - "84070": [ - ["San Mauro La Bruca", "SA"], - ["Scario", "SA"], - ["Rofrano", "SA"], - ["Bosco", "SA"], - ["Stella Cilento", "SA"], - ["San Mauro Cilento", "SA"], - ["Trentinara", "SA"], - ["Salento", "SA"], - ["Rutino", "SA"], - ["Valle Dell'Angelo", "SA"], - ["Sacco", "SA"], - ["San Giovanni A Piro", "SA"], - ["Casalsottano", "SA"], - ["Serramezzana", "SA"], - ], - "84073": [["Sapri", "SA"]], - "84074": [ - ["San Mango Cilento", "SA"], - ["San Mango", "SA"], - ["Santa Lucia Cilento", "SA"], - ["Sessa Cilento", "SA"], - ], - "84075": [["Gorga", "SA"], ["Stio", "SA"]], - "84076": [["Copersito", "SA"], ["Copersito Cilento", "SA"], ["Torchiara", "SA"]], - "84077": [["Torre Orsaia", "SA"], ["Castel Ruggero", "SA"]], - "84078": [["Pattano", "SA"], ["Angellara", "SA"], ["Massa Della Lucania", "SA"], ["Vallo Della Lucania", "SA"]], - "84079": [["Vibonati", "SA"], ["Villammare", "SA"]], - "84080": [ - ["Capezzano Inferiore", "SA"], - ["Capezzano", "SA"], - ["Capezzano Superiore", "SA"], - ["Calvanico", "SA"], - ["Capriglia", "SA"], - ["Pellezzano", "SA"], - ["Cologna", "SA"], - ["Coperchia", "SA"], - ], - "84081": [ - ["Baronissi", "SA"], - ["Antessano", "SA"], - ["Fusara", "SA"], - ["Acquamela", "SA"], - ["Saragnano", "SA"], - ["Caprecano", "SA"], - ["Sava", "SA"], - ], - "84082": [["Manzi", "SA"], ["Bracigliano", "SA"], ["San Nazario", "SA"]], - "84083": [["Castelluccio", "SA"], ["Fimiani", "SA"], ["Castel San Giorgio", "SA"], ["Lanzara", "SA"]], - "84084": [ - ["Villa", "SA"], - ["Pizzolano", "SA"], - ["Fisciano", "SA"], - ["Settefichi", "SA"], - ["Lancusi", "SA"], - ["Bolano", "SA"], - ["Penta", "SA"], - ["Gaiano", "SA"], - ], - "84085": [ - ["Spiano", "SA"], - ["Carifi", "SA"], - ["Curteri", "SA"], - ["Sant'Angelo", "SA"], - ["Pandola", "SA"], - ["Ciorani", "SA"], - ["Torello", "SA"], - ["Piazza Del Galdo", "SA"], - ["Sant'Angelo Di Mercato San Severino", "SA"], - ["Sant'Eustachio", "SA"], - ["Monticelli", "SA"], - ["Acquarola", "SA"], - ["Mercato San Severino", "SA"], - ], - "84086": [["Casali Di Roccapiemonte", "SA"], ["Casali San Potito", "SA"], ["Roccapiemonte", "SA"]], - "84087": [["Lavorate", "SA"], ["Episcopio", "SA"], ["Sarno", "SA"]], - "84088": [["Siano", "SA"]], - "84090": [ - ["Capitignano", "SA"], - ["Prepezzano", "SA"], - ["San Mango Piemonte", "SA"], - ["Montecorvino Pugliano", "SA"], - ["Sieti", "SA"], - ["Castelpagano", "SA"], - ["Pugliano", "SA"], - ["Castiglione Del Genovesi", "SA"], - ["Giffoni Sei Casali", "SA"], - ["Santa Tecla", "SA"], - ], - "84091": [ - ["Battipaglia", "SA"], - ["Santa Lucia Di Battipaglia", "SA"], - ["Sant'Anna", "SA"], - ["Belvedere Di Battipaglia", "SA"], - ], - "84092": [["Bivio", "SA"], ["Bellizzi", "SA"]], - "84095": [ - ["Giffoni Valle Piana", "SA"], - ["Mercato", "SA"], - ["Curti", "SA"], - ["Santa Caterina", "SA"], - ["Ornito", "SA"], - ["San Giovanni", "SA"], - ], - "84096": [ - ["Montecorvino Rovella", "SA"], - ["Gauro", "SA"], - ["Macchia", "SA"], - ["San Martino Montecorvino Rovella", "SA"], - ["Lenzi", "SA"], - ], - "84098": [ - ["Pontecagnano Faiano", "SA"], - ["Pontecagnano", "SA"], - ["Magazzeno", "SA"], - ["Sant'Antonio", "SA"], - ["Corvinia", "SA"], - ["Sant'Antonio Di Pontecagnano", "SA"], - ["Faiano", "SA"], - ], - "84099": [ - ["San Cipriano Picentino", "SA"], - ["Pezzano", "SA"], - ["Campigliano", "SA"], - ["Vignale", "SA"], - ["Filetta", "SA"], - ], - "84100": [["Salerno", "SA"]], - "84121": [["Salerno", "SA"]], - "84122": [["Salerno", "SA"]], - "84123": [["Salerno", "SA"]], - "84124": [["Salerno", "SA"]], - "84125": [["Salerno", "SA"]], - "84126": [["Salerno", "SA"]], - "84127": [["Salerno", "SA"], ["Torrione Di Salerno", "SA"]], - "84128": [["Pastena Di Salerno", "SA"], ["Salerno", "SA"]], - "84129": [["Salerno", "SA"]], - "84131": [["Salerno", "SA"], ["San Leonardo", "SA"], ["Fuorni", "SA"], ["Mercatello Di Salerno", "SA"]], - "84132": [["Salerno", "SA"]], - "84133": [["Salerno", "SA"]], - "84134": [["Giovi", "SA"], ["Salerno", "SA"]], - "84135": [["Fratte", "SA"], ["Salerno", "SA"], ["Ogliara", "SA"], ["Matierno", "SA"]], - "40010": [ - ["Bentivoglio", "BO"], - ["Osteria Nuova", "BO"], - ["San Marino", "BO"], - ["Padulle", "BO"], - ["Interporto Bentivoglio", "BO"], - ["Santa Maria In Duno", "BO"], - ["Sala Bolognese", "BO"], - ], - "40011": [ - ["San Giacomo Del Martignone", "BO"], - ["Lavino Di Mezzo", "BO"], - ["Anzola Dell'Emilia", "BO"], - ["Santa Maria In Strada", "BO"], - ], - "40012": [ - ["Bargellino", "BO"], - ["Tavernelle D'Emilia", "BO"], - ["Tavernelle Emilia", "BO"], - ["Longara", "BO"], - ["Lippo", "BO"], - ["Calderara Di Reno", "BO"], - ], - "40013": [ - ["Trebbo Di Reno", "BO"], - ["Castel Maggiore", "BO"], - ["Progresso", "BO"], - ["Trebbo", "BO"], - ["Villa Salina", "BO"], - ], - "40014": [["Caselle", "BO"], ["Palata Pepoli", "BO"], ["Crevalcore", "BO"]], - "40015": [ - ["Bosco Di Galliera", "BO"], - ["Bosco", "BO"], - ["Galliera Frazione", "BO"], - ["Galliera", "BO"], - ["San Vincenzo", "BO"], - ["San Venanzio", "BO"], - ], - "40016": [["San Giorgio Di Piano", "BO"]], - "40017": [ - ["Decima", "BO"], - ["San Giovanni In Persiceto", "BO"], - ["San Matteo Della Decima", "BO"], - ["Amola Di Piano", "BO"], - ["Budrie", "BO"], - ], - "40018": [["Maccaretolo", "BO"], ["San Pietro In Casale", "BO"]], - "40019": [["Sant'Agata Bolognese", "BO"]], - "40020": [["Casalfiumanese", "BO"]], - "40021": [["Tossignano", "BO"], ["Borgo Tossignano", "BO"]], - "40022": [ - ["Castel Del Rio", "BO"], - ["Moraduccio", "BO"], - ["Sassoleone", "BO"], - ["Moraduccio Di Valsalva", "BO"], - ["Giugnola", "BO"], - ], - "40023": [["Castel Guelfo Di Bologna", "BO"]], - "40024": [ - ["Castel San Pietro Terme", "BO"], - ["Osteria Grande", "BO"], - ["San Martino In Pedriolo", "BO"], - ["Gallo", "BO"], - ["Gaiana", "BO"], - ], - "40025": [["Fontanelice", "BO"], ["Carseggio", "BO"]], - "40026": [ - ["Sesto Imolese", "BO"], - ["Spazzate Sassatelli", "BO"], - ["Imola", "BO"], - ["Ponticelli", "BO"], - ["Piratello", "BO"], - ["San Prospero", "BO"], - ["Sasso Morelli", "BO"], - ], - "40027": [["Bubano", "BO"], ["Mordano", "BO"]], - "40030": [ - ["Grizzana Morandi", "BO"], - ["Berzantina", "BO"], - ["Badi", "BO"], - ["Piano Di Setta", "BO"], - ["Pioppe Di Salvaro", "BO"], - ["Piandisetta", "BO"], - ["Castel Di Casio", "BO"], - ["Pian Di Casale", "BO"], - ["Suviana", "BO"], - ], - "40032": [["Ponte Di Verzuno", "BO"], ["Bargi", "BO"], ["Camugnano", "BO"]], - "40033": [["Casalecchio Di Reno", "BO"], ["Ceretolo", "BO"], ["Cantagallo", "BO"]], - "40034": [ - ["Santa Maria Di Labante", "BO"], - ["Castel D'Aiano", "BO"], - ["Villa D'Aiano", "BO"], - ["Rocca Di Roffeno", "BO"], - ], - "40035": [["Castiglione Dei Pepoli", "BO"], ["Baragazza", "BO"], ["Lagaro", "BO"], ["Creda", "BO"]], - "40036": [["Rioveggio", "BO"], ["Monzuno", "BO"], ["Vado", "BO"]], - "40037": [["Sasso Marconi", "BO"], ["Pontecchio Marconi", "BO"], ["Fontana", "BO"], ["Borgonuovo", "BO"]], - "40038": [["Susano", "BO"], ["Tole'", "BO"], ["Vergato", "BO"], ["Cereglio", "BO"], ["Riola", "BO"]], - "40041": [ - ["Marano", "BO"], - ["Santa Maria Villiana", "BO"], - ["Silla", "BO"], - ["Bombiana", "BO"], - ["Gaggio Montano", "BO"], - ], - "40042": [ - ["Querciola", "BO"], - ["Vidiciatico", "BO"], - ["Farneto Di Lizzano", "BO"], - ["Monteacuto Delle Alpi", "BO"], - ["Pianaccio", "BO"], - ["Rocca Corneta", "BO"], - ["Lizzano In Belvedere", "BO"], - ], - "40043": [["Lama Di Reno", "BO"], ["Lama Di Setta", "BO"], ["Marzabotto", "BO"], ["Pian Di Venola", "BO"]], - "40046": [ - ["Capugnano", "BO"], - ["Porretta Terme", "BO"], - ["Molino Del Pallone", "BO"], - ["Casa Calistri", "BO"], - ["Casa Forlai", "BO"], - ["Castelluccio", "BO"], - ["Granaglione", "BO"], - ["Vizzero", "BO"], - ["Ponte Della Venturina", "BO"], - ["Borgo Capanne", "BO"], - ], - "40048": [ - ["Madonna Dei Fornelli", "BO"], - ["San Benedetto Val Di Sambro", "BO"], - ["Castel Dell'Alpi", "BO"], - ["Piano Del Voglio", "BO"], - ], - "40050": [ - ["Monte San Giovanni", "BO"], - ["Castelletto", "BO"], - ["Funo", "BO"], - ["San Martino", "BO"], - ["Castello Di Serravalle", "BO"], - ["Rignano Bolognese", "BO"], - ["San Benedetto Del Querceto", "BO"], - ["Centergross", "BO"], - ["Monteveglio", "BO"], - ["Castello D'Argile", "BO"], - ["Loiano", "BO"], - ["Gavignano", "BO"], - ["Bisano", "BO"], - ["Monterenzio", "BO"], - ["Argelato", "BO"], - ["Monte San Pietro", "BO"], - ["Pizzano", "BO"], - ["Calderino", "BO"], - ["Casadio", "BO"], - ["Savazza", "BO"], - ["Venezzano", "BO"], - ], - "40051": [["Altedo", "BO"], ["Casoni", "BO"], ["Malalbergo", "BO"], ["Pegola", "BO"]], - "40052": [["Boschi", "BO"], ["Baricella", "BO"], ["Mondonuovo", "BO"], ["San Gabriele", "BO"]], - "40053": [["Valsamoggia", "BO"], ["Bazzano", "BO"]], - "40054": [["Vedrana", "BO"], ["Bagnarola", "BO"], ["Riccardina", "BO"], ["Budrio", "BO"], ["Mezzolara", "BO"]], - "40055": [["Fiesso", "BO"], ["Villanova", "BO"], ["Castenaso", "BO"]], - "40056": [["Muffa", "BO"], ["Pragatto", "BO"], ["Crespellano", "BO"], ["Calcara", "BO"]], - "40057": [ - ["Granarolo Dell'Emilia", "BO"], - ["Fabbreria Di Cadriana", "BO"], - ["Lovoleto", "BO"], - ["Quarto Inferiore", "BO"], - ], - "40059": [ - ["Portonovo", "BO"], - ["Buda", "BO"], - ["Medicina", "BO"], - ["Ganzanigo", "BO"], - ["Sant'Antonio", "BO"], - ["Villa Fontana", "BO"], - ], - "40060": [ - ["Gallo Bolognese", "BO"], - ["Dozza", "BO"], - ["Savigno", "BO"], - ["Toscanella", "BO"], - ["Vedegheto", "BO"], - ], - "40061": [["Minerbio", "BO"], ["Ca' De' Fabbri", "BO"]], - "40062": [ - ["Marmorta", "BO"], - ["Selva Malvezzi", "BO"], - ["Molinella", "BO"], - ["Selva", "BO"], - ["San Pietro Capofiume", "BO"], - ["San Martino In Argine", "BO"], - ], - "40063": [["Monghidoro", "BO"]], - "40064": [["Mercatale", "BO"], ["Ozzano Dell'Emilia", "BO"]], - "40065": [["Pianoro", "BO"], ["Livergnano", "BO"], ["Pianoro Vecchio", "BO"]], - "40066": [["Pieve Di Cento", "BO"]], - "40067": [["Rastignano", "BO"]], - "40068": [ - ["San Lazzaro Di Savena", "BO"], - ["Ponticella", "BO"], - ["San Lazzaro", "BO"], - ["Castel Dei Britti", "BO"], - ["Farneto", "BO"], - ["Martiri Di Pizzocalvo", "BO"], - ["Pulce", "BO"], - ], - "40069": [["Ponte Ronca", "BO"], ["Riale", "BO"], ["Zola Predosa", "BO"], ["Zola", "BO"]], - "40100": [["Bologna", "BO"]], - "40121": [["Bologna", "BO"]], - "40122": [["Bologna", "BO"]], - "40123": [["Bologna", "BO"]], - "40124": [["Bologna", "BO"]], - "40125": [["Bologna", "BO"]], - "40126": [["Bologna", "BO"]], - "40127": [["Bologna", "BO"], ["San Donnino", "BO"]], - "40128": [["Bologna", "BO"], ["Corticella", "BO"]], - "40129": [["Bologna", "BO"]], - "40131": [["Bologna", "BO"], ["Bertalia", "BO"]], - "40132": [["Borgo Panigale", "BO"], ["Bologna", "BO"]], - "40133": [["Bologna", "BO"]], - "40134": [["Bologna", "BO"]], - "40135": [["Bologna", "BO"], ["Casaglia", "BO"]], - "40136": [["Roncrio", "BO"], ["Gaibola", "BO"], ["Bologna", "BO"], ["Paderno", "BO"]], - "40137": [["Bologna", "BO"]], - "40138": [["Bologna", "BO"], ["Roveri", "BO"]], - "40139": [["Bologna", "BO"]], - "40141": [["Bologna", "BO"], ["San Ruffillo", "BO"], ["Monte Donato", "BO"]], - "47010": [ - ["Portico Di Romagna", "FC"], - ["Bocconi", "FC"], - ["Strada San Zeno", "FC"], - ["Portico E San Benedetto", "FC"], - ["San Benedetto In Alpe", "FC"], - ["Galeata", "FC"], - ["Premilcuore", "FC"], - ], - "47011": [["Terra Del Sole", "FC"], ["Castrocaro Terme E Terra Del Sole", "FC"], ["Pieve Salutare", "FC"]], - "47012": [["Cusercoli", "FC"], ["Voltre", "FC"], ["Nespoli", "FC"], ["Civitella Di Romagna", "FC"]], - "47013": [["San Ruffillo", "FC"], ["Dovadola", "FC"]], - "47014": [ - ["Teodorano", "FC"], - ["Rico'", "FC"], - ["San Colombano", "FC"], - ["Meldola", "FC"], - ["San Colombano Di Meldola", "FC"], - ["Vitignano", "FC"], - ["Para", "FC"], - ], - "47015": [["Santa Reparata", "FC"], ["Modigliana", "FC"]], - "47016": [ - ["Tontola", "FC"], - ["Rocca Delle Caminate", "FC"], - ["Predappio", "FC"], - ["Predappio Alta", "FC"], - ["Fiumana", "FC"], - ], - "47017": [["Rocca San Casciano", "FC"], ["Calbola", "FC"]], - "47018": [["Biserno", "FC"], ["Corniolo", "FC"], ["Santa Sofia", "FC"]], - "47019": [["Tredozio", "FC"]], - "47020": [["Budrio", "FC"], ["Longiano", "FC"], ["Roncofreddo", "FC"], ["Montiano", "FC"], ["Oriola", "FC"]], - "47021": [ - ["Monte Guidi", "FC"], - ["Vessa", "FC"], - ["Selvapiana", "FC"], - ["San Piero In Bagno", "FC"], - ["Bagno Di Romagna", "FC"], - ], - "47023": [ - ["Bulgaria", "FC"], - ["Cesuola", "FC"], - ["Diegaro", "FC"], - ["Saiano", "FC"], - ["San Vittore", "FC"], - ["Sant'Egidio", "FC"], - ["San Giorgio Di Cesena", "FC"], - ["Torre Del Moro", "FC"], - ["Case Scuola Vecchia", "FC"], - ["San Mauro In Valle", "FC"], - ["Pievesestina", "FC"], - ["Madonna Dell Ulivo", "FC"], - ["Lizzano", "FC"], - ["Macerone", "FC"], - ["Celletta", "FC"], - ["Gattolino", "FC"], - ["San Carlo Di Cesena", "FC"], - ["Roversano", "FC"], - ["Aie", "FC"], - ["Cesena", "FC"], - ["Calisese", "FC"], - ["Tessello", "FC"], - ["Martorano", "FC"], - ["Ronta", "FC"], - ["Borello", "FC"], - ["Settecrociari", "FC"], - ["Rio Marano", "FC"], - ], - "47025": [ - ["Tornano", "FC"], - ["Bacciolino", "FC"], - ["Monte Castello", "FC"], - ["Ciola", "FC"], - ["Cella", "FC"], - ["Mercato Saraceno", "FC"], - ["Piavola", "FC"], - ["Linaro", "FC"], - ["Bora Bassa", "FC"], - ], - "47027": [ - ["Sorbano", "FC"], - ["Quarto Di Sarsina", "FC"], - ["Ranchio", "FC"], - ["Pieve Di Rivoschio", "FC"], - ["Sarsina", "FC"], - ["Quarto", "FC"], - ], - "47028": [["Alfero", "FC"], ["Balze", "FC"], ["Verghereto", "FC"]], - "47030": [ - ["San Mauro A Mare", "FC"], - ["San Mauro Pascoli", "FC"], - ["Borghi", "FC"], - ["Sogliano Al Rubicone", "FC"], - ["San Giovanni In Galilea", "FC"], - ["Savignano Di Rigo", "FC"], - ["San Martino In Converseto", "FC"], - ["Montegelli", "FC"], - ["Rontagnano", "FC"], - ["Montepetra", "FC"], - ["Lo Stradone", "FC"], - ], - "47032": [ - ["Collinello Polenta", "FC"], - ["Polenta", "FC"], - ["Capocolle", "FC"], - ["Collinello", "FC"], - ["Panighina", "FC"], - ["Fratta Terme", "FC"], - ["Bertinoro", "FC"], - ["Santa Maria Nuova", "FC"], - ], - "47034": [["Forlimpopoli", "FC"], ["Selbagnone", "FC"]], - "47035": [["Gambettola", "FC"]], - "47039": [["Savignano Sul Rubicone", "FC"], ["Fiumicino Di Savignano", "FC"]], - "47042": [["Bagnarola", "FC"], ["Cesenatico", "FC"], ["Villalta", "FC"], ["Sala", "FC"]], - "47043": [["Gatteo", "FC"], ["Sant'Angelo In Salute", "FC"], ["Gatteo A Mare", "FC"]], - "47100": [ - ["Villanova", "FC"], - ["Pianta", "FC"], - ["San Martino In Strada", "FC"], - ["Rovere", "FC"], - ["Barisano", "FC"], - ["Ronco", "FC"], - ["Villafranca", "FC"], - ["Roncadello", "FC"], - ["Carpinello", "FC"], - ["San Lorenzo In Noceto", "FC"], - ["San Varano", "FC"], - ["Villa Rovere", "FC"], - ["Carpena", "FC"], - ["Cava", "FC"], - ["Vecchiazzano", "FC"], - ], - "47121": [["Forlì", "FC"]], - "47122": [["Forlì", "FC"]], - "44011": [ - ["Argenta", "FE"], - ["Ospital Monacale", "FE"], - ["Anita", "FE"], - ["Campotto", "FE"], - ["Filo", "FE"], - ["Traghetto", "FE"], - ["La Fiorana", "FE"], - ["San Nicolo'", "FE"], - ["Boccaleone", "FE"], - ["Longastrino", "FE"], - ["Bando", "FE"], - ["San Biagio", "FE"], - ["Santa Maria Codifiume", "FE"], - ["Consandolo", "FE"], - ], - "44012": [ - ["Ospitale", "FE"], - ["Pilastri", "FE"], - ["Stellata", "FE"], - ["Scortichino", "FE"], - ["Burana", "FE"], - ["Gavello", "FE"], - ["Bondeno", "FE"], - ], - "44014": [["Madonna Boschi", "FE"]], - "44015": [ - ["Portomaggiore", "FE"], - ["Maiero", "FE"], - ["Gambulaga", "FE"], - ["Ripapersico", "FE"], - ["Portoverrara", "FE"], - ["Runco", "FE"], - ], - "44019": [["Voghenza", "FE"], ["Montesanto", "FE"], ["Voghiera", "FE"]], - "44020": [ - ["Gorino Di Goro", "FE"], - ["Rovereto Ferrarese", "FE"], - ["Masi San Giacomo", "FE"], - ["Gorino", "FE"], - ["Masi Torello", "FE"], - ["Goro", "FE"], - ["Medelana", "FE"], - ["San Giuseppe Di Comacchio", "FE"], - ["San Giovanni Di Ostellato", "FE"], - ["San Giovanni", "FE"], - ["Ostellato", "FE"], - ["Dogato", "FE"], - ], - "44021": [ - ["Pomposa", "FE"], - ["Codigoro", "FE"], - ["Pontemaodino", "FE"], - ["Mezzogoro", "FE"], - ["Pontelangorino", "FE"], - ], - "44022": [["San Giuseppe", "FE"], ["Volania", "FE"], ["Comacchio", "FE"], ["Vaccolino", "FE"]], - "44023": [["Marozzo", "FE"], ["Lagosanto", "FE"]], - "44026": [ - ["Bosco", "FE"], - ["Mesola", "FE"], - ["Bosco Mesola", "FE"], - ["Massenzatica", "FE"], - ["Monticelli", "FE"], - ["Ariano Ferrarese", "FE"], - ["Ariano", "FE"], - ], - "44027": [["Migliaro", "FE"], ["Massa Fiscaglia", "FE"], ["Migliarino", "FE"], ["Fiscaglia", "FE"]], - "44028": [["Poggio Renatico", "FE"], ["Coronella", "FE"], ["Gallo", "FE"], ["Chiesa Nuova", "FE"]], - "44029": [["Lido Di Spina", "FE"], ["Lido Degli Estensi", "FE"], ["Porto Garibaldi", "FE"]], - "44030": [ - ["Alberone Di Ro", "FE"], - ["Guarda", "FE"], - ["Ruina", "FE"], - ["Guarda Ferrarese", "FE"], - ["Alberone Di Guarda", "FE"], - ], - "44033": [["Ro", "FE"], ["Cologna", "FE"], ["Serravalle", "FE"], ["Berra", "FE"]], - "44034": [ - ["Tamara", "FE"], - ["Fossalta", "FE"], - ["Copparo", "FE"], - ["Ambrogio", "FE"], - ["Cesta", "FE"], - ["Sabbioncello San Vittore", "FE"], - ["Saletta", "FE"], - ["Zenzalino", "FE"], - ["Coccanile", "FE"], - ["Sabbioncello San Pietro", "FE"], - ["Gradizza", "FE"], - ], - "44035": [["Brazzolo", "FE"]], - "44037": [["Jolanda Di Savoia", "FE"]], - "44039": [["Formignana", "FE"], ["Tresigallo", "FE"], ["Rero", "FE"], ["Final Di Rero", "FE"]], - "44041": [["Casumaro", "FE"], ["Reno Centese", "FE"], ["Buonacompra", "FE"]], - "44042": [ - ["Penzale", "FE"], - ["Corpo Reno", "FE"], - ["Alberone", "FE"], - ["Cento", "FE"], - ["Alberone Di Cento", "FE"], - ["Corpo Di Reno", "FE"], - ], - "44043": [["Mirabello", "FE"]], - "44045": [["Dodici Morelli", "FE"], ["Renazzo", "FE"]], - "44047": [["Dosso", "FE"], ["San Carlo", "FE"], ["Sant'Agostino", "FE"]], - "44049": [["Vigarano Mainarda", "FE"], ["Vigarano Pieve", "FE"]], - "44121": [["Ferrara", "FE"]], - "44122": [["Ferrara", "FE"]], - "44123": [["Ferrara", "FE"]], - "44124": [["Ferrara", "FE"]], - "41011": [["Panzano", "MO"], ["Saliceto Buzzalino", "MO"], ["Campogalliano", "MO"]], - "41012": [ - ["Gargallo", "MO"], - ["Budrione", "MO"], - ["Fossoli", "MO"], - ["Cortile", "MO"], - ["Carpi", "MO"], - ["San Marino", "MO"], - ["Migliarina", "MO"], - ["San Martino Secchia", "MO"], - ["Santa Croce", "MO"], - ], - "41013": [ - ["Gaggio Di Piano", "MO"], - ["Castelfranco Emilia", "MO"], - ["Riolo", "MO"], - ["Cavazzona", "MO"], - ["Rastellino", "MO"], - ["Recovato", "MO"], - ["Manzolino", "MO"], - ["Piumazzo", "MO"], - ], - "41014": [ - ["Solignano Nuovo", "MO"], - ["Levizzano Rangone", "MO"], - ["Castelvetro Di Modena", "MO"], - ["Ca' Di Sola", "MO"], - ], - "41015": [ - ["Bagazzano", "MO"], - ["Nonantola", "MO"], - ["Via Larga", "MO"], - ["La Grande", "MO"], - ["Campazzo", "MO"], - ["Redu'", "MO"], - ], - "41016": [["Rovereto Sulla Secchia", "MO"], ["Sant'Antonio In Mercadello", "MO"], ["Novi Di Modena", "MO"]], - "41017": [["Ravarino", "MO"], ["Stuffione", "MO"]], - "41018": [["San Cesario Sul Panaro", "MO"]], - "41019": [["Soliera", "MO"], ["Sozzigalli", "MO"], ["Appalto", "MO"], ["Limidi", "MO"]], - "41020": [ - ["Castellino Brocco", "MO"], - ["Serpiano", "MO"], - ["Castello", "MO"], - ["Groppo", "MO"], - ["Riolunato", "MO"], - ["Castellino", "MO"], - ], - "41021": [ - ["Canevare", "MO"], - ["Trignano Nel Frignano", "MO"], - ["Ospitale", "MO"], - ["Fellicarolo", "MO"], - ["Serrazzone", "MO"], - ["Lotta", "MO"], - ["Fanano", "MO"], - ["Trignano", "MO"], - ["Ospitale Nel Frignano", "MO"], - ["Trentino Nel Frignano", "MO"], - ], - "41022": [["Fiumalbo", "MO"], ["Dogana Nuova", "MO"], ["Faidello", "MO"]], - "41023": [ - ["Sassostorno", "MO"], - ["Vaglio", "MO"], - ["Montecenere", "MO"], - ["La Santona", "MO"], - ["Lama", "MO"], - ["Barigazzo", "MO"], - ["Mocogno", "MO"], - ["Cadignano", "MO"], - ["Lama Mocogno", "MO"], - ["Pianorso", "MO"], - ], - "41025": [["Montecreto", "MO"], ["Acquaria", "MO"]], - "41026": [ - ["Gaianello", "MO"], - ["Castagneto", "MO"], - ["Niviano", "MO"], - ["Frassineti", "MO"], - ["Monzone", "MO"], - ["Sant'Antonio", "MO"], - ["Pavullo Nel Frignano", "MO"], - ["Gaiato", "MO"], - ["Olina", "MO"], - ["Montebonello", "MO"], - ["Miceno", "MO"], - ["Benedello", "MO"], - ["Camatta", "MO"], - ["Renno", "MO"], - ["Iddiano", "MO"], - ["Montorso", "MO"], - ["Sasso Guidano", "MO"], - ["Crocette", "MO"], - ["Coscogno", "MO"], - ["Verica", "MO"], - ["Montecuccolo", "MO"], - ], - "41027": [ - ["Pievepelago", "MO"], - ["Tagliole", "MO"], - ["Sant'Anna Pelago", "MO"], - ["Roccapelago", "MO"], - ["Sant'Andrea Pelago", "MO"], - ], - "41028": [ - ["Faeto", "MO"], - ["Ricco' Nel Frignano", "MO"], - ["Rocca Santa Maria", "MO"], - ["San Dalmazio Nel Frignano", "MO"], - ["Varana", "MO"], - ["Selva Nel Frignano", "MO"], - ["Ligorzano", "MO"], - ["Valle", "MO"], - ["Pazzano", "MO"], - ["Montagnana", "MO"], - ["San Dalmazio", "MO"], - ["Pompeano", "MO"], - ["Ricco'", "MO"], - ["Monfestino", "MO"], - ["Serramazzoni", "MO"], - ["Selva", "MO"], - ], - "41029": [ - ["Vesale", "MO"], - ["Sestola", "MO"], - ["Rocchetta Sandri", "MO"], - ["Casine", "MO"], - ["Castellaro", "MO"], - ["Roncoscaglia", "MO"], - ["Castellaro Nel Frignano", "MO"], - ], - "41030": [ - ["San Martino Di San Prospero", "MO"], - ["San Pietro", "MO"], - ["Sorbara", "MO"], - ["San Pietro In Elda", "MO"], - ["Staggia Modenese", "MO"], - ["San Lorenzo Della Pioppa", "MO"], - ["Solara", "MO"], - ["Gorghetto", "MO"], - ["San Martino", "MO"], - ["San Lorenzo Pioppa", "MO"], - ["Bomporto", "MO"], - ["San Prospero", "MO"], - ["Bastiglia", "MO"], - ["Staggia", "MO"], - ], - "41031": [["Camposanto", "MO"]], - "41032": [["Cavezzo", "MO"], ["Motta Sulla Secchia", "MO"], ["Motta", "MO"], ["Villa Motta", "MO"]], - "41033": [ - ["Concordia Sulla Secchia", "MO"], - ["Santa Caterina", "MO"], - ["Fossa Di Concordia", "MO"], - ["Vallalta", "MO"], - ["San Giovanni", "MO"], - ["Fossa", "MO"], - ], - "41034": [["Finale Emilia", "MO"], ["Reno Finalese", "MO"]], - "41035": [["Massa Finalese", "MO"]], - "41036": [["Villafranca", "MO"], ["Medolla", "MO"], ["Villafranca Di Medolla", "MO"], ["Camurana", "MO"]], - "41037": [ - ["Gavello", "MO"], - ["Cividale", "MO"], - ["San Martino Carano", "MO"], - ["Quarantoli", "MO"], - ["Mortizzuolo", "MO"], - ["San Martino Spino", "MO"], - ["Tramuschio", "MO"], - ["Ponte San Pellegrino", "MO"], - ["Mirandola", "MO"], - ["San Giacomo Roncole", "MO"], - ], - "41038": [ - ["Rivara", "MO"], - ["San Felice Sul Panaro", "MO"], - ["San Biagio In Padule", "MO"], - ["San Biagio", "MO"], - ["Dogaro", "MO"], - ["Pavignane", "MO"], - ["Confine", "MO"], - ], - "41039": [["San Possidonio", "MO"]], - "41040": [ - ["Gombola", "MO"], - ["San Martino Vallata", "MO"], - ["Ponte Gombola", "MO"], - ["Polinago", "MO"], - ["Cassano", "MO"], - ], - "41042": [["Ubersetto", "MO"], ["Fiorano Modenese", "MO"], ["Spezzano", "MO"]], - "41043": [ - ["Casinalbo", "MO"], - ["Corlo Di Formigine", "MO"], - ["Magreta", "MO"], - ["Colombaro", "MO"], - ["Colombaro Di Formigine", "MO"], - ["Formigine", "MO"], - ], - "41044": [ - ["Madonna Di Pietravolta", "MO"], - ["Romanoro", "MO"], - ["Piandelagotti", "MO"], - ["Riccovolto", "MO"], - ["Rovolo", "MO"], - ["Sassatella", "MO"], - ["Frassinoro", "MO"], - ["Fontanaluccia", "MO"], - ["Cargedolo", "MO"], - ], - "41045": [ - ["Lago", "MO"], - ["Montefiorino", "MO"], - ["Vitriola", "MO"], - ["Macognano", "MO"], - ["Farneta", "MO"], - ["Gusciola", "MO"], - ["Casola", "MO"], - ["Rubbiano", "MO"], - ], - "41046": [ - ["Monchio Nel Frignano", "MO"], - ["Susano", "MO"], - ["Savoniero", "MO"], - ["Palagano", "MO"], - ["Boccassuolo", "MO"], - ["Monchio", "MO"], - ["Costrignano", "MO"], - ], - "41048": [ - ["Morano", "MO"], - ["Saltino Sulla Secchia", "MO"], - ["Castelvecchio", "MO"], - ["Castelvecchio Sulla Secchia", "MO"], - ["Pigneto", "MO"], - ["Sasso Morello", "MO"], - ["Prignano Sulla Secchia", "MO"], - ["Moncerrato", "MO"], - ["Saltino", "MO"], - ["Montebaranzone", "MO"], - ], - "41049": [["Sassuolo", "MO"], ["San Michele Dei Mucchietti", "MO"], ["Montegibbio", "MO"]], - "41051": [["Montale", "MO"], ["Montale Rangone", "MO"], ["Castelnuovo Rangone", "MO"]], - "41052": [ - ["Guiglia", "MO"], - ["Samone", "MO"], - ["Gainazzo", "MO"], - ["Rocca Malatina", "MO"], - ["Rocchetta", "MO"], - ["Monteorsello", "MO"], - ["Castellino Delle Formiche", "MO"], - ["Pieve Di Trebbio", "MO"], - ["Pieve Trebbio", "MO"], - ], - "41053": [["Torre Maina", "MO"], ["Gorzano", "MO"], ["Maranello", "MO"], ["Pozza", "MO"]], - "41054": [["Marano Sul Panaro", "MO"], ["Ospitaletto", "MO"], ["Villa Bianca", "MO"], ["Festa'", "MO"]], - "41055": [ - ["Iola", "MO"], - ["Iola Di Montese", "MO"], - ["Montalto", "MO"], - ["Bertocchi", "MO"], - ["Salto", "MO"], - ["San Martino", "MO"], - ["Montese", "MO"], - ["San Giacomo Maggiore", "MO"], - ["Montespecchio", "MO"], - ["Castelluccio", "MO"], - ["Castelluccio Di Moscheda", "MO"], - ["Maserno", "MO"], - ["Semelano", "MO"], - ], - "41056": [ - ["Formica", "MO"], - ["Garofano", "MO"], - ["Magazzino", "MO"], - ["Savignano Sul Panaro", "MO"], - ["Mulino", "MO"], - ], - "41057": [["Spilamberto", "MO"], ["San Vito", "MO"]], - "41058": [["Vignola", "MO"]], - "41059": [ - ["Monteombraro", "MO"], - ["Montealbano", "MO"], - ["Montetortore", "MO"], - ["Ciano Nel Frignano", "MO"], - ["Montecorone", "MO"], - ["Missano", "MO"], - ["Zocca", "MO"], - ["Rosola", "MO"], - ["Ciano", "MO"], - ], - "41100": [ - ["Villanova San Pancrazio", "MO"], - ["Vaciglio", "MO"], - ["Marzaglia", "MO"], - ["Modena", "MO"], - ["Baggiovara", "MO"], - ["Saliceto San Giuliano", "MO"], - ["Freto", "MO"], - ["Saliceto Panaro", "MO"], - ["Lesignana", "MO"], - ["Chiesa Nuova Di Marzaglia", "MO"], - ["Cognento", "MO"], - ["Villanova", "MO"], - ["Albareto", "MO"], - ["San Donnino", "MO"], - ["Ganaceto", "MO"], - ["Portile", "MO"], - ["San Damaso", "MO"], - ], - "29010": [ - ["Besenzone", "PC"], - ["Agazzano", "PC"], - ["Rottofreno", "PC"], - ["Fogarole", "PC"], - ["Stra'", "PC"], - ["Vicobarone", "PC"], - ["San Nicolo'", "PC"], - ["Campremoldo Sopra", "PC"], - ["Gazzola", "PC"], - ["Sarmato", "PC"], - ["Monticelli D'Ongina", "PC"], - ["Tassara", "PC"], - ["Lusurasco", "PC"], - ["Ziano Piacentino", "PC"], - ["Vigoleno", "PC"], - ["Chiaravalle", "PC"], - ["Valconasso", "PC"], - ["Cadeo", "PC"], - ["Calendasco", "PC"], - ["San Pietro In Cerro", "PC"], - ["San Nazzaro D'Ongina", "PC"], - ["Caminata", "PC"], - ["Castelnuovo Fogliani", "PC"], - ["Olza", "PC"], - ["Roveleto", "PC"], - ["San Giuliano", "PC"], - ["Mezzano Chitantolo", "PC"], - ["Fontana Fredda", "PC"], - ["San Giuliano Piacentino", "PC"], - ["Casaliggio", "PC"], - ["Piozzano", "PC"], - ["Campremoldo Sopra E Sotto", "PC"], - ["Bacedasco Sotto", "PC"], - ["Villanova Sull'Arda", "PC"], - ["San Nicolo' A Trebbia", "PC"], - ["Sant'Imento", "PC"], - ["Villanova", "PC"], - ["Nibbiano", "PC"], - ["Vernasca", "PC"], - ["Pontenure", "PC"], - ["Pianello Val Tidone", "PC"], - ["Gragnano Trebbiense", "PC"], - ["Campremoldo Sotto", "PC"], - ["Trevozzo", "PC"], - ["Castelvetro Piacentino", "PC"], - ["Pecorara", "PC"], - ["Rezzanello", "PC"], - ["Alseno", "PC"], - ], - "29011": [["Borgonovo Val Tidone", "PC"], ["Castelnovo Val Tidone", "PC"], ["Castelnuovo", "PC"]], - "29012": [["Caorso", "PC"]], - "29013": [["Rezzano", "PC"], ["Carpaneto Piacentino", "PC"]], - "29014": [["Castell'Arquato", "PC"], ["Vigolo Marchese", "PC"]], - "29015": [["Fontana Pradosa", "PC"], ["Castel San Giovanni", "PC"], ["Creta", "PC"], ["Ganaghello", "PC"]], - "29016": [["Cortemaggiore", "PC"]], - "29017": [["San Protaso", "PC"], ["Baselicaduce", "PC"], ["Fiorenzuola D'Arda", "PC"]], - "29018": [["Chiavenna Rocchetta", "PC"], ["Rustigazzo", "PC"], ["Lugagnano Val D'Arda", "PC"]], - "29019": [["San Damiano", "PC"], ["San Giorgio Piacentino", "PC"], ["Godi", "PC"]], - "29020": [ - ["Quadrelli", "PC"], - ["Perino", "PC"], - ["Coli", "PC"], - ["Zerba", "PC"], - ["Pej", "PC"], - ["Corte Brugnatella", "PC"], - ["Morfasso", "PC"], - ["Quadrelli Di Fellino", "PC"], - ["Villo'", "PC"], - ["Cerignale", "PC"], - ["Carmiano", "PC"], - ["Marsaglia", "PC"], - ["Ponte Organasco", "PC"], - ["Gossolengo", "PC"], - ["Settima", "PC"], - ["Vigolzone", "PC"], - ["Grazzano Visconti", "PC"], - ["Quarto", "PC"], - ["Travo", "PC"], - ], - "29021": [ - ["San Bernardino", "PC"], - ["San Giovanni", "PC"], - ["Bramaiano", "PC"], - ["Groppoducale", "PC"], - ["Bettola", "PC"], - ], - "29022": [ - ["Santa Maria Di Bobbio", "PC"], - ["Santa Maria", "PC"], - ["Cassolo", "PC"], - ["Vaccarezza", "PC"], - ["Bobbio", "PC"], - ["Passo Penice", "PC"], - ["Mezzano Scotti", "PC"], - ["Ceci", "PC"], - ], - "29023": [["Mareto", "PC"], ["Groppallo", "PC"], ["Le Moline", "PC"], ["Farini", "PC"]], - "29024": [ - ["Centenaro Castello", "PC"], - ["Centenaro", "PC"], - ["Torrio Casetta", "PC"], - ["Brugneto", "PC"], - ["Torrio Sopra", "PC"], - ["Salsominore", "PC"], - ["Ferriere", "PC"], - ["Torrio Sopra E Sotto E Casetta", "PC"], - ], - "29025": [["Gropparello", "PC"], ["Sariano", "PC"], ["Groppovisdomo", "PC"]], - "29026": [["Ottone", "PC"], ["Orezzoli", "PC"]], - "29027": [["Podenzano", "PC"], ["San Polo", "PC"]], - "29028": [["Torrano", "PC"], ["Ponte Dell'Olio", "PC"], ["Biana", "PC"]], - "29029": [ - ["Roveleto Landi", "PC"], - ["Rivergaro", "PC"], - ["Niviano", "PC"], - ["Niviano Castello", "PC"], - ["Ancarano Di Sopra", "PC"], - ], - "29100": [ - ["San Bonico", "PC"], - ["Mucinasso", "PC"], - ["Pittolo", "PC"], - ["Roncaglia", "PC"], - ["Borgo Trebbia", "PC"], - ["Baia Del Re", "PC"], - ["Raffaelina", "PC"], - ["Verza", "PC"], - ["Gerbido Di Mortizza", "PC"], - ["Sant'Antonio", "PC"], - ["San Lazzaro Alberoni", "PC"], - ["Piacenza", "PC"], - ["Gerbido", "PC"], - ["Raffaellina", "PC"], - ["Mortizza", "PC"], - ], - "29121": [["Piacenza", "PC"]], - "29122": [["Piacenza", "PC"]], - "43010": [ - ["Bianconese", "PR"], - ["Monchio Delle Corti", "PR"], - ["Rigoso", "PR"], - ["Fontanelle", "PR"], - ["Riana Di Monchio", "PR"], - ["Riana", "PR"], - ["Roccabianca", "PR"], - ["Castelguelfo", "PR"], - ["Valditacca", "PR"], - ["Ragazzola", "PR"], - ["Ponte Taro", "PR"], - ["Fontevivo", "PR"], - ], - "43011": [["Busseto", "PR"], ["Roncole Verdi", "PR"]], - "43012": [["Parola", "PR"], ["Fontanellato", "PR"]], - "43013": [ - ["Riano", "PR"], - ["Pilastro", "PR"], - ["Cozzano", "PR"], - ["Pastorello", "PR"], - ["Langhirano", "PR"], - ["Torrechiara", "PR"], - ], - "43014": [["Ramiola", "PR"], ["Felegara", "PR"], ["Medesano", "PR"]], - "43015": [["Cella Di Costamezzana", "PR"], ["Costamezzana", "PR"], ["Noceto", "PR"]], - "43016": [["Polesine Parmense", "PR"], ["Pieveottoville", "PR"], ["Zibello", "PR"]], - "43017": [["San Secondo Parmense", "PR"]], - "43018": [ - ["Coltaro", "PR"], - ["Ronco Campo Canneto", "PR"], - ["Gramignazzo", "PR"], - ["Trecasali", "PR"], - ["Sissa", "PR"], - ["San Quirico Trecasali", "PR"], - ["Sissa Trecasali", "PR"], - ["Viarolo", "PR"], - ], - "43019": [["Soragna", "PR"]], - "43021": [ - ["Bosco", "PR"], - ["Beduzzo", "PR"], - ["Vestola Ghiare", "PR"], - ["Ghiare Di Corniglio", "PR"], - ["Corniglio", "PR"], - ["Bosco Di Corniglio", "PR"], - ], - "43022": [ - ["Montechiarugolo", "PR"], - ["Basilicanova", "PR"], - ["Monticelli Terme", "PR"], - ["Monticelli Terme Di Montechiarugolo", "PR"], - ["Basilicagoiano", "PR"], - ], - "43024": [ - ["Scurano", "PR"], - ["Mediano", "PR"], - ["Neviano Degli Arduini", "PR"], - ["Mozzano", "PR"], - ["Vezzano", "PR"], - ["Lupazzano", "PR"], - ["Provazzano", "PR"], - ["Sasso Di Neviano", "PR"], - ["Bazzano Parmense", "PR"], - ], - "43025": [ - ["Isola", "PR"], - ["Palanzano", "PR"], - ["Vairo", "PR"], - ["Ruzzano", "PR"], - ["Isola Di Palanzano", "PR"], - ["Vairo Superiore", "PR"], - ["Selvanizza", "PR"], - ["Ranzano", "PR"], - ], - "43028": [ - ["Tizzano Val Parma", "PR"], - ["Carpaneto", "PR"], - ["Reno", "PR"], - ["Capoponte", "PR"], - ["Lagrimone", "PR"], - ["Capriglio", "PR"], - ["Musiara Inferiore", "PR"], - ], - "43029": [["Traversetolo", "PR"], ["Vignale", "PR"], ["Mamiano", "PR"], ["Castione De' Baratti", "PR"]], - "43030": [["Marzolara", "PR"], ["Bore", "PR"], ["Calestano", "PR"], ["Ravarano", "PR"]], - "43032": [ - ["Bardi", "PR"], - ["Santa Giustina", "PR"], - ["Pione", "PR"], - ["Santa Giustina Val Di Lecca", "PR"], - ["Gravago", "PR"], - ], - "43035": [["Sant'Ilario Di Baganza", "PR"], ["San Michele Di Tiorre", "PR"], ["Felino", "PR"]], - "43036": [ - ["Fidenza", "PR"], - ["Chiusa Ferranda", "PR"], - ["Cogolonchio", "PR"], - ["Castione Marchesi", "PR"], - ["Castione Dei Marchesi", "PR"], - ["Pieve Di Cusignano", "PR"], - ], - "43037": [ - ["Mulazzano Ponte", "PR"], - ["San Michele Cavana", "PR"], - ["Mulazzano", "PR"], - ["Lesignano De' Bagni", "PR"], - ["Santa Maria Del Piano", "PR"], - ], - "43038": [["San Vitale", "PR"], ["Sala Baganza", "PR"], ["San Vitale Di Baganza", "PR"], ["Talignano", "PR"]], - "43039": [ - ["Tabiano", "PR"], - ["Congelasio", "PR"], - ["Salsomaggiore Terme", "PR"], - ["Campore", "PR"], - ["Bagni Di Tabiano", "PR"], - ["Pie' Di Via", "PR"], - ["Bargone", "PR"], - ["Cangelasio", "PR"], - ["Scipione", "PR"], - ], - "43040": [ - ["Corniana", "PR"], - ["Terenzo", "PR"], - ["Vianino", "PR"], - ["Casola", "PR"], - ["Specchio", "PR"], - ["Solignano", "PR"], - ["Selva Del Bocchetto", "PR"], - ["Viazzano", "PR"], - ["Cassio", "PR"], - ["Boschi Di Bardone", "PR"], - ["Varano De' Melegari", "PR"], - ["Lesignano Palmia", "PR"], - ["Prelerna", "PR"], - ], - "43041": [ - ["Pontestrambo", "PR"], - ["Ponteceno", "PR"], - ["Bedonia", "PR"], - ["Masanti", "PR"], - ["Molino Dell'Anzola", "PR"], - ["Drusco", "PR"], - ["Masanti Di Sotto", "PR"], - ], - "43042": [ - ["Berceto", "PR"], - ["Ghiare Di Berceto", "PR"], - ["Ghiare", "PR"], - ["Bergotto", "PR"], - ["Castellonchio", "PR"], - ["Fugazzolo", "PR"], - ["Casaselvatica", "PR"], - ], - "43043": [ - ["Porcigatone", "PR"], - ["Ostia Parmense", "PR"], - ["Tiedoli", "PR"], - ["Ostia Di Borgo Val Di Taro", "PR"], - ["Pontolo", "PR"], - ["Borgo Val Di Taro", "PR"], - ], - "43044": [ - ["Collecchio", "PR"], - ["Gaiano", "PR"], - ["Madregolo", "PR"], - ["Ozzano Taro", "PR"], - ["San Martino Sinzano", "PR"], - ], - "43045": [ - ["Ricco'", "PR"], - ["Neviano De' Rossi", "PR"], - ["Sivizzano", "PR"], - ["Piantonia", "PR"], - ["Fornovo Di Taro", "PR"], - ], - "43047": [["Pellegrino Parmense", "PR"], ["Grotta", "PR"], ["Mariano", "PR"], ["Iggio", "PR"]], - "43048": [["Sant'Andrea Bagni", "PR"], ["Varano Marchesi", "PR"], ["Varano Dei Marchesi", "PR"]], - "43049": [["Pessola", "PR"], ["Carpadasco", "PR"], ["Varsi", "PR"]], - "43050": [ - ["Valmozzola Stazione", "PR"], - ["Stazione Valmozzola", "PR"], - ["Valmozzola", "PR"], - ["Mormorola", "PR"], - ["San Martino Di Valmozzola", "PR"], - ], - "43051": [["Albareto", "PR"], ["San Quirico", "PR"], ["San Quirico D'Albareto", "PR"], ["Bertorella", "PR"]], - "43052": [["Colorno", "PR"]], - "43053": [["Compiano", "PR"], ["Strela", "PR"], ["Cereseto", "PR"]], - "43055": [ - ["Mezzano Superiore", "PR"], - ["Casale", "PR"], - ["Mezzano Rondani", "PR"], - ["Mezzano Inferiore", "PR"], - ], - "43056": [["Torrile", "PR"], ["San Polo", "PR"]], - "43058": [["Sorbolo", "PR"], ["Chiozzola", "PR"], ["Mezzani", "PR"]], - "43059": [["Casale Di Tornolo", "PR"], ["Tornolo", "PR"], ["Santa Maria Del Taro", "PR"], ["Tarsogno", "PR"]], - "43100": [ - ["Vicomero", "PR"], - ["Botteghino", "PR"], - ["Alberi", "PR"], - ["Carignano", "PR"], - ["Panocchia", "PR"], - ["Parma", "PR"], - ["Baganzola", "PR"], - ["Cortile San Martino", "PR"], - ["Moletolo", "PR"], - ["San Leonardo", "PR"], - ["Vicofertile", "PR"], - ["Paradigna", "PR"], - ["Fontanini", "PR"], - ["Gaione", "PR"], - ["Fraore", "PR"], - ["San Lazzaro Parmense", "PR"], - ["San Prospero Parmense", "PR"], - ["Fontana", "PR"], - ["Porporano", "PR"], - ["Corcagnano", "PR"], - ["Marano", "PR"], - ["Vigatto", "PR"], - ["San Pancrazio Parmense", "PR"], - ], - "43122": [["Parma", "PR"]], - "43126": [["Parma", "PR"]], - "48010": [["Casal Borsetti", "RA"]], - "48011": [["Alfonsine", "RA"]], - "48012": [ - ["Bagnacavallo", "RA"], - ["Villanova Di Bagnacavallo", "RA"], - ["Glorie", "RA"], - ["Abbatesse", "RA"], - ["Villanova", "RA"], - ["Boncellino", "RA"], - ["Masiera", "RA"], - ["Traversara", "RA"], - ], - "48013": [ - ["San Cassiano", "RA"], - ["Fognano", "RA"], - ["San Martino In Gattara", "RA"], - ["Zattaglia", "RA"], - ["Monteromano", "RA"], - ["Brisighella", "RA"], - ["Marzeno", "RA"], - ], - "48014": [["Castel Bolognese", "RA"]], - "48015": [ - ["Pisignano", "RA"], - ["Villa Inferno", "RA"], - ["Pinarella", "RA"], - ["Madonna Degli Angeli", "RA"], - ["Castiglione", "RA"], - ["Savio", "RA"], - ["Cervia", "RA"], - ["Cannuzzo", "RA"], - ["Cervia Milano Marittima", "RA"], - ], - "48017": [["Conselice", "RA"], ["Lavezzola", "RA"], ["San Patrizio", "RA"]], - "48018": [ - ["San Martino", "RA"], - ["Errano", "RA"], - ["Case San Martino", "RA"], - ["Castel Raniero", "RA"], - ["Cosina", "RA"], - ["Santa Lucia Delle Spianate", "RA"], - ["Celle", "RA"], - ["Sarna", "RA"], - ["San Silvestro", "RA"], - ["Prada", "RA"], - ["Faenza", "RA"], - ["Fossolo", "RA"], - ["Mezzeno", "RA"], - ["Reda", "RA"], - ["Granarolo", "RA"], - ], - "48020": [["Savarna", "RA"], ["Sant'Alberto", "RA"], ["Sant'Agata Sul Santerno", "RA"]], - "48022": [ - ["Santa Maria In Fabriago", "RA"], - ["San Bernardino", "RA"], - ["Passogatto", "RA"], - ["Giovecca", "RA"], - ["Lugo", "RA"], - ["San Lorenzo Di Lugo", "RA"], - ["Ascensione", "RA"], - ["Voltana", "RA"], - ["San Potito", "RA"], - ["Belricetto", "RA"], - ["Villa San Martino", "RA"], - ], - "48024": [["Villa Serraglio", "RA"], ["Massa Lombarda", "RA"]], - "48025": [["Riolo Terme", "RA"], ["Borgo Rivola", "RA"]], - "48026": [["San Pancrazio", "RA"], ["Russi", "RA"], ["Godo", "RA"]], - "48027": [["Gaiano", "RA"], ["Solarolo", "RA"]], - "48031": [["Bagnara Di Romagna", "RA"]], - "48032": [["Casola Valsenio", "RA"]], - "48033": [["Barbiano", "RA"], ["San Severo", "RA"], ["Cotignola", "RA"]], - "48034": [["Fusignano", "RA"]], - "48100": [ - ["Santerno", "RA"], - ["San Bartolo", "RA"], - ["Lido Di Savio", "RA"], - ["Piangipane", "RA"], - ["Madonna Dell'Albero", "RA"], - ["San Romualdo", "RA"], - ["Lido Di Classe", "RA"], - ["Porto Corsini", "RA"], - ["Camerlona", "RA"], - ["Mezzano", "RA"], - ["Romea Vecchia", "RA"], - ["San Zaccaria", "RA"], - ["Roncalceci", "RA"], - ["Ducenta", "RA"], - ["Classe", "RA"], - ["Carraie", "RA"], - ["Durazzano", "RA"], - ["Filetto", "RA"], - ["Punta Marina", "RA"], - ["Gambellara", "RA"], - ["Marina Romea", "RA"], - ["Ravenna", "RA"], - ["Fornace Zarattini", "RA"], - ["San Pietro In Trento", "RA"], - ["Ghibullo", "RA"], - ["Marina Di Ravenna", "RA"], - ["San Pietro In Vincoli", "RA"], - ["Campiano", "RA"], - ["Fosso Ghiaia", "RA"], - ["Santo Stefano", "RA"], - ["Lido Adriano", "RA"], - ["Coccolia", "RA"], - ["Castiglione Di Ravenna", "RA"], - ["Porto Fuori", "RA"], - ["Ammonite", "RA"], - ["San Pietro In Campiano", "RA"], - ], - "42010": [ - ["Quara", "RE"], - ["Rio Saliceto", "RE"], - ["Cerredolo", "RE"], - ["Cavola", "RE"], - ["Toano", "RE"], - ["San Cassiano", "RE"], - ], - "42011": [["Bagnolo In Piano", "RE"]], - "42012": [["Campagnola Emilia", "RE"]], - "42013": [["Villalunga", "RE"], ["Veggia", "RE"], ["Casalgrande", "RE"], ["Salvaterra", "RE"]], - "42014": [["Cadiroggio", "RE"], ["Castellarano", "RE"], ["Roteglia", "RE"]], - "42015": [["Prato", "RE"], ["San Martino", "RE"], ["Fosdondo", "RE"], ["Correggio", "RE"], ["Budrio", "RE"]], - "42016": [["San Girolamo", "RE"], ["Pieve", "RE"], ["Guastalla", "RE"]], - "42017": [ - ["Novellara", "RE"], - ["San Bernardino", "RE"], - ["Santa Maria", "RE"], - ["Vezzola", "RE"], - ["San Giovanni", "RE"], - ], - "42018": [["San Martino In Rio", "RE"]], - "42019": [ - ["Arceto", "RE"], - ["Pratissolo", "RE"], - ["Ca' De Caroli", "RE"], - ["Ventoso", "RE"], - ["Scandiano", "RE"], - ["Chiozza", "RE"], - ["Fellegara", "RE"], - ["Iano", "RE"], - ["Bosco", "RE"], - ["Rondinara", "RE"], - ], - "42020": [ - ["Vetto", "RE"], - ["Cola", "RE"], - ["Puianello", "RE"], - ["Rosano", "RE"], - ["Quattro Castella", "RE"], - ["Borzano", "RE"], - ["Albinea", "RE"], - ["San Polo D'Enza", "RE"], - ["Montecavolo", "RE"], - ["Roncolo", "RE"], - ], - "42021": [["Bibbiano", "RE"], ["Barco", "RE"]], - "42022": [["Boretto", "RE"]], - "42023": [["Cadelbosco Di Sopra", "RE"], ["Argine", "RE"], ["Cadelbosco Di Sotto", "RE"]], - "42024": [["Meletole", "RE"], ["Castelnovo Di Sotto", "RE"]], - "42025": [["Cavriago", "RE"]], - "42026": [["Canossa", "RE"], ["Ciano D'Enza", "RE"], ["Compiano D'Enza", "RE"]], - "42027": [["Montecchio Emilia", "RE"]], - "42028": [["Poviglio", "RE"]], - "42030": [ - ["Gazzano", "RE"], - ["Succiso", "RE"], - ["Viano", "RE"], - ["Montalto", "RE"], - ["Asta Nell'Emilia", "RE"], - ["Villa Minozzo", "RE"], - ["San Giovanni Di Querciola", "RE"], - ["Pecorile", "RE"], - ["La Vecchia", "RE"], - ["Regnano", "RE"], - ["Civago", "RE"], - ["Minozzo", "RE"], - ["Sologno", "RE"], - ["Vezzano Sul Crostolo", "RE"], - ], - "42031": [["Baiso", "RE"], ["Casino Levizzano", "RE"], ["Levizzano", "RE"]], - "42032": [ - ["Succiso Nuovo", "RE"], - ["Ramiseto", "RE"], - ["Castagneto", "RE"], - ["Pieve San Vincenzo", "RE"], - ["Cervarezza", "RE"], - ["Cinquecerri", "RE"], - ["Ligonchio", "RE"], - ["Busana", "RE"], - ["Collagna", "RE"], - ["Cerreto Alpi", "RE"], - ], - "42033": [["Carpineti", "RE"], ["Pantano", "RE"], ["Savognatica", "RE"], ["Valestra", "RE"], ["Marola", "RE"]], - "42034": [["Casina", "RE"], ["Paullo Di Casina", "RE"], ["Trinita'", "RE"]], - "42035": [ - ["Casale", "RE"], - ["Felina", "RE"], - ["Villaberza", "RE"], - ["Vologno Di Sotto", "RE"], - ["Vologno", "RE"], - ["Monteduro", "RE"], - ["Castelnuovo Ne' Monti", "RE"], - ["Croce", "RE"], - ["Croce Ne' Monti", "RE"], - ["Gatta", "RE"], - ["Castelnovo Ne' Monti", "RE"], - ], - "42040": [["Campegine", "RE"], ["Caprara", "RE"]], - "42041": [["Brescello", "RE"], ["Lentigione", "RE"]], - "42042": [["Fabbrico", "RE"]], - "42043": [["Taneto", "RE"], ["Gattatico", "RE"], ["Praticello", "RE"]], - "42044": [ - ["Gualtieri", "RE"], - ["Santa Vittoria Di Gualtieri", "RE"], - ["Santa Vittoria", "RE"], - ["Pieve Saliceto", "RE"], - ], - "42045": [["Villarotta", "RE"], ["Casoni", "RE"], ["Luzzara", "RE"], ["Codisotto", "RE"]], - "42046": [["Reggiolo", "RE"], ["Brugneto", "RE"]], - "42047": [["Rolo", "RE"]], - "42048": [["Rubiera", "RE"]], - "42049": [["Sant'Ilario D'Enza", "RE"], ["Calerno", "RE"]], - "42100": [ - ["Marmirolo", "RE"], - ["Reggio Emilia", "RE"], - ["Bagno", "RE"], - ["San Pellegrino", "RE"], - ["Mancasale", "RE"], - ["Gavassa", "RE"], - ["Cella", "RE"], - ["Cade'", "RE"], - ["Ospizio", "RE"], - ["Fogliano", "RE"], - ["Quaresimo", "RE"], - ["Codemondo", "RE"], - ["Cavazzoli", "RE"], - ["Coviolo", "RE"], - ["Roncocesi", "RE"], - ["Massenzatico", "RE"], - ["Canali", "RE"], - ["Castellazzo", "RE"], - ["Rivalta", "RE"], - ["Gaida", "RE"], - ["Pieve Modolena", "RE"], - ["Masone", "RE"], - ["Sesso", "RE"], - ["San Maurizio", "RE"], - ["Corticella", "RE"], - ["Gavasseto", "RE"], - ], - "47814": [["Igea Marina", "RN"], ["Bellaria Igea Marina", "RN"], ["Bellaria", "RN"]], - "47822": [ - ["Santarcangelo Di Romagna", "RN"], - ["Santa Giustina Di Santarcangelo", "RN"], - ["San Michele", "RN"], - ["Sant'Ermete", "RN"], - ["Ciola Corniale", "RN"], - ["Montalbano Di Santarcangelo Di Romagna", "RN"], - ["San Martino Dei Mulini", "RN"], - ["San Vito", "RN"], - ], - "47824": [ - ["Poggio Torriana", "RN"], - ["Torriana", "RN"], - ["Trebbio", "RN"], - ["Santo Marino", "RN"], - ["Poggio Berni", "RN"], - ], - "47826": [["Verucchio", "RN"], ["Villa Verucchio", "RN"]], - "47832": [["San Clemente", "RN"], ["Sant'Andrea In Casale", "RN"]], - "47833": [["Morciano Di Romagna", "RN"]], - "47834": [["Montefiore Conca", "RN"], ["Serbadone", "RN"]], - "47835": [["Saludecio", "RN"], ["Santa Maria Del Monte", "RN"]], - "47836": [["Mondaino", "RN"]], - "47837": [["Montegridolfo", "RN"]], - "47838": [["Riccione", "RN"]], - "47841": [["Cattolica", "RN"]], - "47842": [["Pianventena", "RN"], ["Montalbano", "RN"], ["San Giovanni In Marignano", "RN"]], - "47843": [ - ["Misano Monte", "RN"], - ["Misano Adriatico", "RN"], - ["Belvedere", "RN"], - ["Santa Monica", "RN"], - ["Villaggio Argentina", "RN"], - ["Scacciano", "RN"], - ["Cella", "RN"], - ], - "47853": [ - ["Ospedaletto", "RN"], - ["Ospedaletto Di Rimini", "RN"], - ["Sant'Andrea In Besanigo", "RN"], - ["Cerasolo", "RN"], - ["Coriano", "RN"], - ], - "47854": [ - ["Trarivi", "RN"], - ["San Savino", "RN"], - ["San Savino Di Monte Colombo", "RN"], - ["Monte Colombo", "RN"], - ["Croce", "RN"], - ["Taverna Di Monte Colombo", "RN"], - ["Montescudo", "RN"], - ["Santa Maria Del Piano", "RN"], - ], - "47855": [["Onferno", "RN"], ["Gemmano", "RN"]], - "47861": [["Casteldelci", "RN"]], - "47862": [["Maiolo", "RN"]], - "47863": [ - ["Secchiano Marecchia", "RN"], - ["Ponte Molino Baffoni", "RN"], - ["Novafeltria", "RN"], - ["Perticara", "RN"], - ], - "47864": [ - ["Molino Di Bascio", "RN"], - ["Soanne", "RN"], - ["Ponte Messa", "RN"], - ["Pennabilli", "RN"], - ["Maciano", "RN"], - ], - "47865": [["San Leo", "RN"], ["Pietracuta", "RN"], ["Montemaggio", "RN"]], - "47866": [["San Donato", "RN"], ["Sant'Agata Feltria", "RN"]], - "47867": [["Talamello", "RN"]], - "47900": [ - ["San Fortunato", "RN"], - ["Rimini", "RN"], - ["Rivazzurra", "RN"], - ["Torre Pedrera", "RN"], - ["Bellariva", "RN"], - ["Vergiano", "RN"], - ["Santa Giustina", "RN"], - ["San Lorenzo In Correggiano", "RN"], - ["Miramare Di Rimini", "RN"], - ["Corpolo'", "RN"], - ["Viserbella", "RN"], - ["San Giuliano A Mare", "RN"], - ["Gaiofana", "RN"], - ["Viserba", "RN"], - ["Santa Aquilina", "RN"], - ["Rivabella", "RN"], - ], - "47921": [["Rimini", "RN"]], - "47922": [["Rimini", "RN"]], - "47923": [["Rimini", "RN"]], - "47924": [["Rimini", "RN"]], - "34070": [ - ["Jamiano", "GO"], - ["Scrio'", "GO"], - ["Marcottini", "GO"], - ["Villesse", "GO"], - ["Capriva Del Friuli", "GO"], - ["San Lorenzo Isontino", "GO"], - ["Mariano Del Friuli", "GO"], - ["San Floriano Del Collio", "GO"], - ["Dolegna Del Collio", "GO"], - ["Corona", "GO"], - ["Doberdo' Del Lago", "GO"], - ["Polazzo", "GO"], - ["Savogna D'Isonzo", "GO"], - ["Redipuglia", "GO"], - ["Lonzano", "GO"], - ["Venco'", "GO"], - ["Cassegliano", "GO"], - ["Redipuglia Sacrario", "GO"], - ["San Pier D'Isonzo", "GO"], - ["Mernicco", "GO"], - ["Rupa", "GO"], - ["San Michele Del Carso", "GO"], - ["Fogliano Redipuglia", "GO"], - ["Moraro", "GO"], - ["Mossa", "GO"], - ["Giasbana", "GO"], - ["Turriaco", "GO"], - ["Gabria", "GO"], - ], - "34071": [["Cormons", "GO"], ["Brazzano", "GO"], ["Borgnano", "GO"]], - "34072": [["Farra D'Isonzo", "GO"], ["Gradisca D'Isonzo", "GO"]], - "34073": [ - ["Rotta Primero", "GO"], - ["Grado Citta' Giardino", "GO"], - ["Fossalon", "GO"], - ["Grado", "GO"], - ["Grado Pineta", "GO"], - ], - "34074": [["Monfalcone", "GO"], ["Marina Julia", "GO"]], - "34075": [["Isola Morosini", "GO"], ["Pieris", "GO"], ["San Canzian D'Isonzo", "GO"], ["Begliano", "GO"]], - "34076": [["Medea", "GO"], ["Versa", "GO"], ["Romans D'Isonzo", "GO"], ["Fratta", "GO"]], - "34077": [["Ronchi Dei Legionari", "GO"], ["Vermegliano", "GO"]], - "34078": [["Poggio Terzarmata", "GO"], ["San Martino Del Carso", "GO"], ["Sagrado", "GO"]], - "34079": [["Bistrigna", "GO"], ["Staranzano", "GO"]], - "34170": [ - ["Oslavia", "GO"], - ["Piedimonte Del Calvario", "GO"], - ["Gorizia", "GO"], - ["Lucinico", "GO"], - ["Piuma", "GO"], - ], - "33070": [ - ["Polcenigo", "PN"], - ["Sarone", "PN"], - ["Caneva", "PN"], - ["Dardago", "PN"], - ["Santa Lucia Di Budoia", "PN"], - ["Brugnera", "PN"], - ["San Giovanni Di Polcenigo", "PN"], - ["Stevena'", "PN"], - ["Maron", "PN"], - ["Tamai", "PN"], - ["Budoia", "PN"], - ], - "33072": [["San Giovanni Di Casarsa", "PN"], ["Casarsa Della Delizia", "PN"]], - "33074": [["Vigonovo", "PN"], ["Fontanafredda", "PN"], ["Nave", "PN"], ["Ceolini", "PN"]], - "33075": [["Morsano Al Tagliamento", "PN"], ["Mussons", "PN"], ["Cordovado", "PN"]], - "33076": [["Pravisdomini", "PN"], ["Barco", "PN"]], - "33077": [["Cavolano", "PN"], ["Schiavoi", "PN"], ["Sacile", "PN"], ["San Giovanni Di Livenza", "PN"]], - "33078": [["San Vito Al Tagliamento", "PN"], ["Gleris", "PN"], ["Savorgnano", "PN"]], - "33079": [["Ramuscello", "PN"], ["Bagnarola", "PN"], ["Sesto Al Reghena", "PN"], ["Casette", "PN"]], - "33080": [ - ["Fiume Veneto", "PN"], - ["Palse", "PN"], - ["Claut", "PN"], - ["Bannia", "PN"], - ["Ghirano", "PN"], - ["Barcis", "PN"], - ["Porcia", "PN"], - ["Vajont", "PN"], - ["Roraipiccolo", "PN"], - ["Zoppola", "PN"], - ["Cimolais", "PN"], - ["Puia", "PN"], - ["Poffabro", "PN"], - ["San Quirino", "PN"], - ["Cimpello", "PN"], - ["Sedrano", "PN"], - ["Castions", "PN"], - ["San Foca", "PN"], - ["Prata Di Pordenone", "PN"], - ["Villanova", "PN"], - ["Roveredo In Piano", "PN"], - ["Frisanco", "PN"], - ["Erto E Casso", "PN"], - ["Orcenico Inferiore", "PN"], - ["Andreis", "PN"], - ], - "33081": [ - ["Aviano", "PN"], - ["Castello", "PN"], - ["Cortina", "PN"], - ["Giais", "PN"], - ["Selva", "PN"], - ["Glera", "PN"], - ["Marsure", "PN"], - ["San Martino Di Campagna", "PN"], - ], - "33082": [["Corva", "PN"], ["Fagnigola", "PN"], ["Tiezzo", "PN"], ["Azzano Decimo", "PN"]], - "33083": [["Chions", "PN"], ["Villotta", "PN"], ["Taiedo", "PN"]], - "33084": [["Musil", "PN"], ["Cordenons", "PN"], ["Villa D'Arco", "PN"]], - "33085": [["Campagna", "PN"], ["Maniago", "PN"]], - "33086": [ - ["San Leonardo Valcellina", "PN"], - ["Montereale Valcellina", "PN"], - ["San Leonardo", "PN"], - ["Malnisio", "PN"], - ], - "33087": [ - ["Rivarotta", "PN"], - ["Visinale", "PN"], - ["Cecchini", "PN"], - ["Pasiano", "PN"], - ["Pasiano Di Pordenone", "PN"], - ["Pozzo", "PN"], - ], - "33090": [ - ["Castelnovo Del Friuli", "PN"], - ["Casiacco", "PN"], - ["Chievolis", "PN"], - ["Sequals", "PN"], - ["Tramonti Di Sopra", "PN"], - ["Vito D'Asio", "PN"], - ["Solimbergo", "PN"], - ["Travesio", "PN"], - ["Colle", "PN"], - ["Toppo", "PN"], - ["Pielungo", "PN"], - ["Arba", "PN"], - ["Lestans", "PN"], - ["Anduins", "PN"], - ["Campone", "PN"], - ["Clauzetto", "PN"], - ["Usago", "PN"], - ["Tramonti Di Sotto", "PN"], - ], - "33092": [["Fanna", "PN"], ["Meduno", "PN"], ["Cavasso Nuovo", "PN"]], - "33094": [["Valeriano", "PN"], ["Pinzano Al Tagliamento", "PN"]], - "33095": [["Domanins", "PN"], ["Rauscedo", "PN"], ["Provesano", "PN"], ["San Giorgio Della Richinvelda", "PN"]], - "33097": [["Tauriano", "PN"], ["Barbeano", "PN"], ["Spilimbergo", "PN"], ["Istrago", "PN"], ["Vacile", "PN"]], - "33098": [ - ["San Lorenzo", "PN"], - ["Valvasone Arzene", "PN"], - ["Arzene", "PN"], - ["San Martino Al Tagliamento", "PN"], - ["Valvasone", "PN"], - ], - "33099": [["Vivaro", "PN"]], - "33170": [ - ["Vallenoncello", "PN"], - ["La Comina", "PN"], - ["Comina (La)", "PN"], - ["Borgo Meduna", "PN"], - ["Pordenone", "PN"], - ], - "34010": [["Sgonico", "TS"]], - "34011": [ - ["Sistiana", "TS"], - ["Aurisina", "TS"], - ["Villaggio Del Pescatore", "TS"], - ["Duino", "TS"], - ["San Pelagio", "TS"], - ["Duino Aurisina", "TS"], - ["Visogliano", "TS"], - ], - "34012": [["Basovizza", "TS"]], - "34014": [["Grignano", "TS"], ["Santa Croce", "TS"], ["Santa Croce Di Trieste", "TS"]], - "34015": [["Muggia", "TS"], ["San Rocco", "TS"], ["Stramare", "TS"], ["Aquilinia", "TS"]], - "34016": [["Monrupino", "TS"]], - "34017": [["Prosecco", "TS"]], - "34018": [ - ["San Giuseppe Della Chiusa", "TS"], - ["Domio", "TS"], - ["Bagnoli Della Rosandra", "TS"], - ["San Dorligo Della Valle", "TS"], - ["Sant'Antonio In Bosco", "TS"], - ], - "34100": [["Trieste", "TS"]], - "34121": [["Trieste", "TS"]], - "34122": [["Trieste", "TS"]], - "34123": [["Trieste", "TS"]], - "34124": [["Trieste", "TS"]], - "34125": [["Trieste", "TS"]], - "34126": [["Trieste", "TS"]], - "34127": [["Trieste", "TS"]], - "34128": [["Trieste", "TS"]], - "34129": [["Trieste", "TS"]], - "34131": [["Trieste", "TS"]], - "34132": [["Trieste", "TS"]], - "34133": [["Trieste", "TS"]], - "34134": [["Trieste", "TS"]], - "34135": [["Trieste", "TS"]], - "34136": [["Trieste", "TS"], ["Cedas", "TS"]], - "34137": [["Trieste", "TS"]], - "34138": [["Trieste", "TS"]], - "34139": [["Trieste", "TS"]], - "34141": [["Trieste", "TS"]], - "34142": [["Trieste", "TS"]], - "34143": [["Trieste", "TS"]], - "34144": [["Trieste", "TS"]], - "34145": [["Trieste", "TS"]], - "34146": [["Trieste", "TS"]], - "34147": [["Trieste", "TS"], ["Aquilinia", "TS"]], - "34148": [["Trieste", "TS"]], - "34149": [["Trieste", "TS"], ["Cattinara", "TS"]], - "34151": [["Trieste", "TS"]], - "33010": [ - ["Carvacco", "UD"], - ["Treppo Grande", "UD"], - ["Montenars", "UD"], - ["Colugna", "UD"], - ["Borgo Zurini", "UD"], - ["Magnano In Riviera", "UD"], - ["Valbruna", "UD"], - ["Colloredo Di Monte Albano", "UD"], - ["Mels", "UD"], - ["Tavagnacco", "UD"], - ["Peonis", "UD"], - ["Vendoglio", "UD"], - ["La Carnia", "UD"], - ["Reana Del Roiale", "UD"], - ["Cassacco", "UD"], - ["Lauzzana", "UD"], - ["Resia", "UD"], - ["Venzone", "UD"], - ["Trasaghis", "UD"], - ["Malborghetto", "UD"], - ["Chiusaforte", "UD"], - ["Ugovizza", "UD"], - ["Cavalicco", "UD"], - ["Vergnacco", "UD"], - ["Qualso", "UD"], - ["Osoppo", "UD"], - ["Dogna", "UD"], - ["Caporiacco", "UD"], - ["Stolvizza", "UD"], - ["Lusevera", "UD"], - ["Avasinis", "UD"], - ["Resiutta", "UD"], - ["Feletto Umberto", "UD"], - ["Vedronza", "UD"], - ["Alesso", "UD"], - ["Adegliacco", "UD"], - ["Carnia", "UD"], - ["Braulins", "UD"], - ["Bordano", "UD"], - ["Pagnacco", "UD"], - ["Malborghetto Valbruna", "UD"], - ], - "33011": [["Artegna", "UD"]], - "33013": [["Gemona Piovega", "UD"], ["Ospedaletto Di Gemona", "UD"], ["Gemona Del Friuli", "UD"]], - "33015": [["Moggio Di Sotto", "UD"], ["Moggio Di Sopra", "UD"], ["Moggio Udinese", "UD"]], - "33016": [["Pontebba", "UD"]], - "33017": [["Collalto", "UD"], ["Tarcento", "UD"], ["Bulfons", "UD"]], - "33018": [ - ["Camporosso In Valcanale", "UD"], - ["Cave Del Predil", "UD"], - ["Fusine In Valromana", "UD"], - ["Tarvisio", "UD"], - ], - "33019": [["Leonacco", "UD"], ["Tricesimo", "UD"]], - "33020": [ - ["Forni Avoltri", "UD"], - ["Prato Carnico", "UD"], - ["Treppo Carnico", "UD"], - ["Sutrio", "UD"], - ["Ligosullo", "UD"], - ["Ravascletto", "UD"], - ["Sauris", "UD"], - ["Forni Di Sotto", "UD"], - ["Pesariis", "UD"], - ["Mediis", "UD"], - ["Cavazzo Carnico", "UD"], - ["Socchieve", "UD"], - ["Verzegnis", "UD"], - ["Cercivento", "UD"], - ["Pieria", "UD"], - ["Quinis", "UD"], - ["Zuglio", "UD"], - ["Rigolato", "UD"], - ["Amaro", "UD"], - ["Preone", "UD"], - ["Enemonzo", "UD"], - ], - "33021": [["Ampezzo", "UD"]], - "33022": [["Arta Terme", "UD"], ["Piano D'Arta", "UD"]], - "33023": [["Comeglians", "UD"]], - "33024": [["Forni Di Sopra", "UD"]], - "33025": [["Ovaro", "UD"]], - "33026": [["Paluzza", "UD"], ["Cleulis", "UD"], ["Timau", "UD"]], - "33027": [["Salino", "UD"], ["Paularo", "UD"], ["Dierico", "UD"]], - "33028": [ - ["Caneva", "UD"], - ["Terzo Di Tolmezzo", "UD"], - ["Caneva Di Tolmezzo", "UD"], - ["Tolmezzo", "UD"], - ["Cadunea", "UD"], - ["Illegio", "UD"], - ["Imponzo", "UD"], - ], - "33029": [ - ["Villa Santina", "UD"], - ["Invillino", "UD"], - ["Lauco", "UD"], - ["Chiassis", "UD"], - ["Trava", "UD"], - ["Raveo", "UD"], - ], - "33030": [ - ["Dignano", "UD"], - ["Carpacco", "UD"], - ["Canussio", "UD"], - ["San Vito Di Fagagna", "UD"], - ["Avilla", "UD"], - ["Talmassons", "UD"], - ["Coseano", "UD"], - ["Varmo", "UD"], - ["San Pietro", "UD"], - ["Madonna Di Buja", "UD"], - ["San Giacomo", "UD"], - ["Flambro", "UD"], - ["Brazzacco", "UD"], - ["Basaldella", "UD"], - ["Rodeano", "UD"], - ["Vidulis", "UD"], - ["Silvella", "UD"], - ["Camino Al Tagliamento", "UD"], - ["San Tomaso", "UD"], - ["Majano", "UD"], - ["Rodeano Basso", "UD"], - ["Muris Di Ragogna", "UD"], - ["Campoformido", "UD"], - ["Flaibano", "UD"], - ["Roveredo", "UD"], - ["Santo Stefano Di Buja", "UD"], - ["Cornino", "UD"], - ["Flumignano", "UD"], - ["Ragogna", "UD"], - ["Buja", "UD"], - ["Muris", "UD"], - ["Forgaria Nel Friuli", "UD"], - ["Urbignacco", "UD"], - ["Romans Di Varmo", "UD"], - ["Flagogna", "UD"], - ["Santa Margherita", "UD"], - ["Bressa", "UD"], - ["Rive D'Arcano", "UD"], - ["Cisterna Del Friuli", "UD"], - ["Cisterna", "UD"], - ["Romans", "UD"], - ["Moruzzo", "UD"], - ], - "33031": [ - ["Villaorba", "UD"], - ["Blessano", "UD"], - ["Basagliapenta", "UD"], - ["Variano", "UD"], - ["Vissandone", "UD"], - ["Orgnano", "UD"], - ["Basiliano", "UD"], - ], - "33032": [["Bertiolo", "UD"], ["Pozzecco", "UD"]], - "33033": [ - ["Beano", "UD"], - ["Rivolto", "UD"], - ["Codroipo", "UD"], - ["Biauzzo", "UD"], - ["Goricizza E Pozzo", "UD"], - ["Lonca", "UD"], - ], - "33034": [["Fagagna", "UD"], ["Madrisio", "UD"], ["Ciconicco", "UD"]], - "33035": [["Torreano Di Martignacco", "UD"], ["Nogaredo Di Prato", "UD"], ["Martignacco", "UD"]], - "33036": [ - ["Mereto Di Tomba", "UD"], - ["Tomba", "UD"], - ["Plasencis", "UD"], - ["San Marco", "UD"], - ["Pantianicco", "UD"], - ], - "33037": [["Pasian Di Prato", "UD"], ["Colloredo Di Prato", "UD"], ["Passons", "UD"]], - "33038": [["Villanova", "UD"], ["Villanova Di San Daniele", "UD"], ["San Daniele Del Friuli", "UD"]], - "33039": [ - ["Sedegliano", "UD"], - ["Coderno", "UD"], - ["Turrida", "UD"], - ["San Lorenzo", "UD"], - ["Gradisca Di Sedegliano", "UD"], - ], - "33040": [ - ["Savorgnano Del Torre", "UD"], - ["Savogna", "UD"], - ["Racchiuso", "UD"], - ["Campolongo Al Torre", "UD"], - ["Tapogliano", "UD"], - ["Grions", "UD"], - ["Povoletto", "UD"], - ["Corno Di Rosazzo", "UD"], - ["Paciug", "UD"], - ["Podresca", "UD"], - ["Grimacco", "UD"], - ["Attimis", "UD"], - ["Campeglio", "UD"], - ["Ipplis", "UD"], - ["Faedis", "UD"], - ["Stregna", "UD"], - ["Ravosa", "UD"], - ["Taipana", "UD"], - ["Moimacco", "UD"], - ["Drenchia", "UD"], - ["Orsaria", "UD"], - ["San Leonardo", "UD"], - ["Cavenzano", "UD"], - ["Visco", "UD"], - ["Castelmonte", "UD"], - ["Pradamano", "UD"], - ["Magredis", "UD"], - ["Prepotto", "UD"], - ["Primulacco", "UD"], - ["Torreano", "UD"], - ["Premariacco", "UD"], - ["Clodig", "UD"], - ], - "33041": [["Aiello Del Friuli", "UD"], ["Joannis", "UD"]], - "33042": [["Buttrio", "UD"]], - "33043": [["Purgessimo", "UD"], ["Sanguarzo", "UD"], ["Cividale Del Friuli", "UD"]], - "33044": [["Manzano", "UD"]], - "33045": [["Nimis", "UD"]], - "33046": [["Pulfero", "UD"]], - "33047": [["Orzano", "UD"], ["Cerneglons", "UD"], ["Ziracco", "UD"], ["Remanzacco", "UD"]], - "33048": [ - ["San Giovanni Al Natisone", "UD"], - ["Chiopris", "UD"], - ["Medeuzza", "UD"], - ["Dolegnano", "UD"], - ["Villanova Dello Iudrio", "UD"], - ["Chiopris Viscone", "UD"], - ], - "33049": [["San Pietro Al Natisone", "UD"]], - "33050": [ - ["Porpetto", "UD"], - ["Clauiano", "UD"], - ["Mortegliano", "UD"], - ["Chiasellis", "UD"], - ["Sammardenchia", "UD"], - ["Pozzuolo Del Friuli", "UD"], - ["Papariano", "UD"], - ["Pocenia", "UD"], - ["Ruda", "UD"], - ["Castello", "UD"], - ["Lestizza", "UD"], - ["Sevegliano", "UD"], - ["Terenzano", "UD"], - ["Zugliano", "UD"], - ["Carpeneto", "UD"], - ["San Vito Al Torre", "UD"], - ["Felettis", "UD"], - ["Ontagnano", "UD"], - ["Torviscosa", "UD"], - ["Malisana", "UD"], - ["Carlino", "UD"], - ["Fiumicello", "UD"], - ["Gonars", "UD"], - ["Precenicco", "UD"], - ["Castions Di Strada", "UD"], - ["Galleriano", "UD"], - ["Lumignacco", "UD"], - ["Santa Maria", "UD"], - ["Lavariano", "UD"], - ["Perteole", "UD"], - ["Sclaunicco", "UD"], - ["Terzo D'Aquileia", "UD"], - ["Cargnacco", "UD"], - ["Pavia Di Udine", "UD"], - ["San Valentino", "UD"], - ["Percoto", "UD"], - ["Marano Lagunare", "UD"], - ["Bagnaria Arsa", "UD"], - ["Risano", "UD"], - ["Mereto Di Capitolo", "UD"], - ["Casale Della Madonna", "UD"], - ["Nespoledo", "UD"], - ["Trivignano Udinese", "UD"], - ["Lauzacco", "UD"], - ["Tissano", "UD"], - ["Torsa", "UD"], - ["Torsa Di Pocenia", "UD"], - ["Bicinicco", "UD"], - ["Castions Delle Mura", "UD"], - ["Ronchis", "UD"], - ["Santa Maria La Longa", "UD"], - ], - "33051": [["Belvedere Di Aquileia", "UD"], ["Belvedere", "UD"], ["Aquileia", "UD"]], - "33052": [["Cervignano Del Friuli", "UD"], ["Strassoldo", "UD"]], - "33053": [["Pertegada", "UD"], ["Latisana", "UD"], ["Gorgo", "UD"]], - "33054": [["Lignano Sabbiadoro", "UD"], ["Lignano Pineta", "UD"]], - "33055": [["Muzzana Del Turgnano", "UD"]], - "33056": [["Palazzolo Dello Stella", "UD"]], - "33057": [["Sottoselva", "UD"], ["Ialmicco", "UD"], ["Jalmicco", "UD"], ["Palmanova", "UD"]], - "33058": [["San Giorgio Di Nogaro", "UD"]], - "33059": [["Villa Vicentina", "UD"]], - "33061": [["Teor", "UD"], ["Rivignano Teor", "UD"], ["Rivarotta", "UD"], ["Rivignano", "UD"]], - "33100": [ - ["Cussignacco", "UD"], - ["Laipacco", "UD"], - ["Udine", "UD"], - ["Baldasseria", "UD"], - ["Godia", "UD"], - ["Gervasutta", "UD"], - ], - "03010": [ - ["Filettino", "FR"], - ["Fumone", "FR"], - ["Torre Cajetani", "FR"], - ["Sgurgola", "FR"], - ["Certosa Di Trisulti", "FR"], - ["Trivigliano", "FR"], - ["Patrica", "FR"], - ["Serrone", "FR"], - ["Pitocco", "FR"], - ["Collepardo", "FR"], - ["Vico Nel Lazio", "FR"], - ["Patoni", "FR"], - ["La Forma", "FR"], - ["Madonna Delle Grazie", "FR"], - ["Trevi Nel Lazio", "FR"], - ["Quattro Strade", "FR"], - ["Piglio", "FR"], - ["San Giovanni", "FR"], - ["Acuto", "FR"], - ], - "03011": [["Monte San Marino", "FR"], ["Tecchiena", "FR"], ["Collelavena", "FR"], ["Alatri", "FR"]], - "03012": [["Osteria Della Fontana", "FR"], ["Anagni", "FR"]], - "03013": [["Tofe", "FR"], ["Porciano", "FR"], ["Ferentino", "FR"], ["Ferentino Stazione", "FR"]], - "03014": [["Fiuggi", "FR"], ["Fiuggi Fonte", "FR"]], - "03016": [["Guarcino", "FR"], ["Campocatino", "FR"]], - "03017": [["Morolo", "FR"], ["Cerquotti Madonna Del Piano", "FR"]], - "03018": [["Paliano", "FR"]], - "03019": [["Supino", "FR"]], - "03020": [ - ["Arnara", "FR"], - ["Pastena", "FR"], - ["Castro Dei Volsci", "FR"], - ["Pico", "FR"], - ["Strangolagalli", "FR"], - ["Torrice", "FR"], - ["Vallecorsa", "FR"], - ["Madonna Del Piano", "FR"], - ["Falvaterra", "FR"], - ["San Sosio", "FR"], - ["Giuliano Di Roma", "FR"], - ["Villa Santo Stefano", "FR"], - ], - "03021": [["Amaseno", "FR"]], - "03022": [ - ["Scrima", "FR"], - ["Rotabile", "FR"], - ["Colle Campano", "FR"], - ["Casavitola", "FR"], - ["Mozzano Torretta", "FR"], - ["Antica Colle Piscioso", "FR"], - ["Brecciaro", "FR"], - ["Boville Ernica", "FR"], - ], - "03023": [["Ceccano", "FR"]], - "03024": [["Ceprano", "FR"]], - "03025": [ - ["Anitrella", "FR"], - ["Colli", "FR"], - ["Monte San Giovanni Campano", "FR"], - ["Porrino", "FR"], - ["Chiaiamari", "FR"], - ], - "03026": [["Pofi", "FR"]], - "03027": [["Ripi", "FR"]], - "03028": [["San Giovanni Incarico", "FR"]], - "03029": [ - ["Scifelli", "FR"], - ["Colleberardi", "FR"], - ["Giglio", "FR"], - ["Castelmassimo", "FR"], - ["Veroli", "FR"], - ["Cotropagno", "FR"], - ["Case Campoli", "FR"], - ["Santa Francesca", "FR"], - ["Panetta", "FR"], - ["Sant'Angelo In Villa", "FR"], - ["Casamari", "FR"], - ], - "03030": [ - ["Santopadre", "FR"], - ["Villa Santa Lucia", "FR"], - ["Broccostella", "FR"], - ["Madonna Della Stella", "FR"], - ["Campoli Appennino", "FR"], - ["Colle San Magno", "FR"], - ["Casalattico", "FR"], - ["Posta Fibreno", "FR"], - ["Castrocielo", "FR"], - ["Piedimonte San Germano", "FR"], - ["Piedimonte San Germano Alta", "FR"], - ["Villa Felice", "FR"], - ["Vicalvi", "FR"], - ["Rocca D'Arce", "FR"], - ["Fontechiari", "FR"], - ["Castelliri", "FR"], - ["Colfelice", "FR"], - ["Coldragone", "FR"], - ["Pescosolido", "FR"], - ["Piumarola", "FR"], - ], - "03031": [["Aquino", "FR"]], - "03032": [["Isoletta", "FR"], ["Arce", "FR"]], - "03033": [["Scaffa", "FR"], ["Arpino", "FR"], ["Scaffa San Sossio", "FR"]], - "03034": [["Casalvieri", "FR"], ["Purgatorio", "FR"], ["Roselli", "FR"]], - "03035": [ - ["Fontana Liri", "FR"], - ["Fontana Liri Superiore", "FR"], - ["Collefontana", "FR"], - ["San Paolo", "FR"], - ], - "03036": [["Isola Del Liri", "FR"]], - "03037": [ - ["Pontecorvo", "FR"], - ["Sant'Oliva Di Pontecorvo", "FR"], - ["Sant'Oliva", "FR"], - ["Pastine Di Pontecorvo", "FR"], - ], - "03038": [["Roccasecca", "FR"], ["Roccasecca Stazione", "FR"], ["Caprile", "FR"]], - "03039": [["Sora", "FR"], ["Carnello", "FR"], ["Selva Di Sora", "FR"]], - "03040": [ - ["Selvacava", "FR"], - ["Cardito Di Vallerotonda", "FR"], - ["Pignataro Interamna", "FR"], - ["Valvori", "FR"], - ["Sant'Ambrogio Sul Garigliano", "FR"], - ["Gallinaro", "FR"], - ["Acquafondata", "FR"], - ["Villa Latina", "FR"], - ["Picinisco", "FR"], - ["San Biagio Saracinisco", "FR"], - ["Cerreto Di Vallerotonda", "FR"], - ["Casalcassinese", "FR"], - ["Sant'Andrea Del Garigliano", "FR"], - ["Pietrafitta", "FR"], - ["Belmonte Castello", "FR"], - ["Viticuso", "FR"], - ["San Vittore Del Lazio", "FR"], - ["Terelle", "FR"], - ["Coreno Ausonio", "FR"], - ["Ausonia", "FR"], - ["Vallemaio", "FR"], - ["Castelnuovo Parano", "FR"], - ["Settefrati", "FR"], - ["Vallerotonda", "FR"], - ], - "03041": [["Castello D'Alvito", "FR"], ["Sant'Onofrio", "FR"], ["Alvito", "FR"]], - "03042": [["Atina", "FR"], ["Casino Pica", "FR"], ["Atina Inferiore", "FR"]], - "03043": [ - ["Sant'Angelo In Theodice", "FR"], - ["San Bartolomeo", "FR"], - ["Montecassino", "FR"], - ["Caira", "FR"], - ["Cassino", "FR"], - ["Cappella Morrone", "FR"], - ], - "03044": [ - ["Pacitti", "FR"], - ["Sprumaro", "FR"], - ["Pastenelle", "FR"], - ["Cervaro", "FR"], - ["Santa Lucia", "FR"], - ], - "03045": [["Monticelli", "FR"], ["Esperia", "FR"], ["Esperia Inferiore", "FR"]], - "03046": [["San Donato Val Di Comino", "FR"]], - "03047": [["San Giorgio A Liri", "FR"]], - "03048": [["Sant'Apollinare", "FR"]], - "03049": [["Olivella", "FR"], ["Valleluce", "FR"], ["Sant'Elia Fiumerapido", "FR"], ["Portella", "FR"]], - "03100": [ - ["Frosinone", "FR"], - ["De Matteis", "FR"], - ["Madonna Della Neve", "FR"], - ["Frosinone Stazione", "FR"], - ], - "04010": [ - ["Sezze Stazione", "LT"], - ["Roccasecca Dei Volsci", "LT"], - ["Prossedi", "LT"], - ["Sezze Scalo", "LT"], - ["Giulianello", "LT"], - ["Roccagorga", "LT"], - ["Rocca Massima", "LT"], - ["Pisterzo", "LT"], - ["Sonnino Scalo", "LT"], - ["Cori", "LT"], - ["Bassiano", "LT"], - ["Maenza", "LT"], - ["Sonnino", "LT"], - ["Norma", "LT"], - ], - "04011": [ - ["Fossignano", "LT"], - ["Camilleri", "LT"], - ["Campoleone", "LT"], - ["Torre Del Padiglione", "LT"], - ["Carano", "LT"], - ["Campoverde", "LT"], - ["Aprilia", "LT"], - ["Casalazara", "LT"], - ["Vallelata", "LT"], - ["Pantanelle", "LT"], - ["Campo Di Carne", "LT"], - ["Cogna", "LT"], - ], - "04012": [["Le Castella", "LT"], ["Borgo Flora", "LT"], ["Cisterna Di Latina", "LT"]], - "04013": [ - ["Sermoneta", "LT"], - ["Monticchio", "LT"], - ["Carrara", "LT"], - ["Doganella Di Ninfa", "LT"], - ["Doganella", "LT"], - ["Latina Aeroporto", "LT"], - ["Sermoneta Scalo", "LT"], - ], - "04014": [["Pontinia", "LT"], ["Borgo Pasubio", "LT"]], - "04015": [["Abbazia Di Fossanova", "LT"], ["Fossanova", "LT"], ["Priverno", "LT"]], - "04016": [["Borgo Vodice", "LT"], ["Sabaudia", "LT"], ["Borgo San Donato", "LT"], ["Baia D'Argento", "LT"]], - "04017": [["San Felice Circeo", "LT"], ["Borgo Montenero", "LT"]], - "04018": [["Colli Di Suso", "LT"], ["Sezze", "LT"]], - "04019": [["Badino", "LT"], ["Borgo Hermada", "LT"], ["Terracina", "LT"], ["La Fiora", "LT"]], - "04020": [ - ["Ventotene", "LT"], - ["Santi Cosma E Damiano", "LT"], - ["Itri", "LT"], - ["Santo Stefano", "LT"], - ["Campodimele", "LT"], - ["Grunuovo", "LT"], - ["Monte San Biagio", "LT"], - ["Campomaggiore San Luca", "LT"], - ["San Lorenzo Di Santi Cosma E Damiano", "LT"], - ["Spigno Saturnia", "LT"], - ["Spigno Saturnia Inferiore", "LT"], - ["Grunuovo Di Santi Cosma E Damiano", "LT"], - ], - "04021": [["Suio Terme", "LT"], ["San Cataldo", "LT"], ["Castelforte", "LT"], ["Forme Di Suio", "LT"]], - "04022": [["Salto Di Fondi", "LT"], ["San Magno", "LT"], ["Fondi", "LT"]], - "04023": [ - ["Acquatraversa Di Formia", "LT"], - ["Penitro", "LT"], - ["Castellonorato", "LT"], - ["Trivio Di Formia", "LT"], - ["Vindicio Di Formia", "LT"], - ["Maranola", "LT"], - ["Formia", "LT"], - ], - "04024": [["Gaeta", "LT"]], - "04025": [["Valle Bernardo", "LT"], ["Lenola", "LT"]], - "04026": [ - ["Scauri", "LT"], - ["Tufo Di Minturno", "LT"], - ["Tremensuoli", "LT"], - ["Minturno", "LT"], - ["Santa Maria Infante", "LT"], - ["Marina Di Minturno", "LT"], - ], - "04027": [["Ponza", "LT"], ["Le Forna", "LT"]], - "04029": [["Sperlonga", "LT"]], - "04100": [ - ["Borgo Grappa", "LT"], - ["Borgo Podgora", "LT"], - ["Borgo Carso", "LT"], - ["Latina Scalo", "LT"], - ["Borgo San Michele", "LT"], - ["Borgo Montello", "LT"], - ["Borgo Piave", "LT"], - ["Foce Verde", "LT"], - ["Latina", "LT"], - ["Borgo Bainsizza", "LT"], - ["Borgo Faiti", "LT"], - ["Fogliano", "LT"], - ["Foro Appio", "LT"], - ["Tor Tre Ponti", "LT"], - ["Borgo Isonzo", "LT"], - ["Borgo Sabotino", "LT"], - ["Le Ferriere", "LT"], - ], - "02010": [ - ["Rivodutri", "RI"], - ["Borgo Velino", "RI"], - ["Micigliano", "RI"], - ["Borbona", "RI"], - ["Morro Reatino", "RI"], - ["Labro", "RI"], - ["Vallemare", "RI"], - ["Canetra Di Castel Sant'Angelo", "RI"], - ["Santa Croce Di Cittareale", "RI"], - ["Colli Sul Velino", "RI"], - ["Piedicolle", "RI"], - ["Castel Sant'Angelo", "RI"], - ["Santa Croce", "RI"], - ["Cittareale", "RI"], - ], - "02011": [["Accumoli", "RI"], ["Grisciano", "RI"]], - "02012": [ - ["Torrita", "RI"], - ["Santi Lorenzo E Flaviano", "RI"], - ["Preta", "RI"], - ["Collemoresco", "RI"], - ["Amatrice", "RI"], - ["Scai", "RI"], - ["Sommati", "RI"], - ["Santa Giusta", "RI"], - ], - "02013": [["Antrodoco", "RI"]], - "02014": [["Fantauzzi", "RI"], ["Cantalice", "RI"], ["San Liberato", "RI"]], - "02015": [["Cittaducale", "RI"], ["Grotti", "RI"], ["Santa Rufina", "RI"], ["Grotti Di Cittaducale", "RI"]], - "02016": [ - ["San Clemente Di Leonessa", "RI"], - ["Leonessa", "RI"], - ["Villa Bigioni", "RI"], - ["Piedelpoggio", "RI"], - ["Albaneto", "RI"], - ["Vindoli", "RI"], - ["Terzone", "RI"], - ], - "02018": [["Poggio Bustone", "RI"]], - "02019": [["Picciame", "RI"], ["Sigillo Di Posta", "RI"], ["Posta", "RI"], ["Favischio", "RI"]], - "02020": [ - ["Longone Sabino", "RI"], - ["Colle Di Tora", "RI"], - ["Turania", "RI"], - ["Belmonte In Sabina", "RI"], - ["Stipes", "RI"], - ["Collegiove", "RI"], - ["Varco Sabino", "RI"], - ["Concerviano", "RI"], - ["Nespolo", "RI"], - ["Ascrea", "RI"], - ["Marcetelli", "RI"], - ["Campolano", "RI"], - ["Paganico Sabino", "RI"], - ["Roccaranieri", "RI"], - ["Castel Di Tora", "RI"], - ["Vaccareccia", "RI"], - ], - "02021": [ - ["Corvaro", "RI"], - ["Poggiovalle Di Borgorose", "RI"], - ["Collemaggiore", "RI"], - ["Sant'Anatolia", "RI"], - ["Villerose", "RI"], - ["Grotti Di Borgorose", "RI"], - ["Torano", "RI"], - ["Poggiovalle", "RI"], - ["Borgorose", "RI"], - ], - "02022": [["Collalto Sabino", "RI"]], - "02023": [ - ["Fiamignano", "RI"], - ["Santa Lucia Di Fiamignano", "RI"], - ["Sant'Ippolito", "RI"], - ["Sant'Agapito", "RI"], - ["Santa Lucia", "RI"], - ["Peschieta", "RI"], - ], - "02024": [ - ["Pescorocchiano", "RI"], - ["Leofreni", "RI"], - ["Pace", "RI"], - ["Sant'Elpidio Di Pescorocchiano", "RI"], - ["Sant'Elpidio", "RI"], - ], - "02025": [ - ["Fiumata", "RI"], - ["Castelmareri", "RI"], - ["Capradosso", "RI"], - ["Borgo San Pietro", "RI"], - ["Petrella Salto", "RI"], - ], - "02026": [["Rocca Sinibalda", "RI"], ["Posticciola", "RI"]], - "02030": [ - ["Pozzaglia Sabina", "RI"], - ["Poggio San Lorenzo", "RI"], - ["Casaprota", "RI"], - ["Collelungo", "RI"], - ["Torricella In Sabina", "RI"], - ["Poggio Nativo", "RI"], - ["Collelungo Sabino", "RI"], - ["Monte Santa Maria", "RI"], - ["Frasso Sabino", "RI"], - ["Villetta Sant'Antonio", "RI"], - ], - "02031": [["Castelnuovo Di Farfa", "RI"]], - "02032": [ - ["Canneto Sabino", "RI"], - ["Prime Case", "RI"], - ["Borgo Salario", "RI"], - ["Talocci", "RI"], - ["Coltodino", "RI"], - ["Farfa", "RI"], - ["Passo Corese", "RI"], - ["Canneto", "RI"], - ["Borgo Quinzio", "RI"], - ["Fara In Sabina", "RI"], - ["Farfa Sabina", "RI"], - ["Corese Terra", "RI"], - ], - "02033": [["Ginestra Sabina", "RI"], ["Monteleone Sabino", "RI"]], - "02034": [["Bocchignano", "RI"], ["Montopoli Di Sabina", "RI"]], - "02035": [["Orvinio", "RI"]], - "02037": [["Fiacchini", "RI"], ["Osteria Nuova", "RI"], ["Cerdomare", "RI"], ["Poggio Moiano", "RI"]], - "02038": [["Scandriglia", "RI"], ["Ponticelli", "RI"]], - "02039": [["Toffia", "RI"]], - "02040": [ - ["Roccantica", "RI"], - ["Vacone", "RI"], - ["Cottanello", "RI"], - ["San Polo Sabino", "RI"], - ["San Polo", "RI"], - ["Mompeo", "RI"], - ["Configni", "RI"], - ["Fianello", "RI"], - ["Cantalupo In Sabina", "RI"], - ["Poggio Catino", "RI"], - ["Monte San Giovanni In Sabina", "RI"], - ["Montenero Sabino", "RI"], - ["Montebuono", "RI"], - ["Salisano", "RI"], - ["Tarano", "RI"], - ["Selci", "RI"], - ["Montasola", "RI"], - ], - "02041": [["Casperia", "RI"]], - "02042": [["Collevecchio", "RI"]], - "02043": [ - ["Montisola", "RI"], - ["Contigliano", "RI"], - ["San Filippo Di Contigliano", "RI"], - ["San Filippo", "RI"], - ], - "02044": [["Forano", "RI"], ["Gavignano Sabino", "RI"]], - "02045": [["Greccio", "RI"], ["Limiti Di Greccio", "RI"]], - "02046": [["Foglia", "RI"], ["Magliano Sabina", "RI"]], - "02047": [ - ["Castel San Pietro", "RI"], - ["Poggio Mirteto Scalo", "RI"], - ["Poggio Mirteto", "RI"], - ["Poggio Mirteto Stazione", "RI"], - ], - "02048": [["Stimigliano Stazione", "RI"], ["Stimigliano", "RI"], ["Stimigliano Scalo", "RI"]], - "02049": [["Torri In Sabina", "RI"]], - "02100": [ - ["Poggio Fidoni", "RI"], - ["Rieti", "RI"], - ["Casette", "RI"], - ["Poggio Perugino", "RI"], - ["San Giovanni Reatino", "RI"], - ["Vazia", "RI"], - ["Pie' Di Moggio", "RI"], - ["Monte Terminillo", "RI"], - ], - "00010": [ - ["Poli", "RM"], - ["Borgo Santa Maria", "RM"], - ["Montorio Romano", "RM"], - ["Setteville Di Guidonia", "RM"], - ["San Polo Dei Cavalieri", "RM"], - ["Casape", "RM"], - ["Sant'Angelo Romano", "RM"], - ["San Gregorio Da Sassola", "RM"], - ["Gallicano Nel Lazio", "RM"], - ["Setteville", "RM"], - ["Marcellina", "RM"], - ["Monteflavio", "RM"], - ["Moricone", "RM"], - ["Montelibretti", "RM"], - ], - "00011": [["Bagni Di Tivol", "RM"]], - "00012": [ - ["Villalba", "RM"], - ["Colle Verde", "RM"], - ["Guidonia Montecelio", "RM"], - ["Villanova", "RM"], - ["Albuccione", "RM"], - ["Montecelio", "RM"], - ["La Botte", "RM"], - ["Villanova Di Guidonia", "RM"], - ["Guidonia", "RM"], - ], - "00013": [ - ["Castelchiodato", "RM"], - ["Tor Lupara", "RM"], - ["Fonte Nuova", "RM"], - ["Torlupara Di Mentana", "RM"], - ["Santa Lucia", "RM"], - ["Mentana", "RM"], - ], - "00015": [["Monterotondo", "RM"], ["Monterotondo Stazione", "RM"]], - "00017": [["Nerola", "RM"], ["Acquaviva", "RM"]], - "00018": [["Palombara Sabina", "RM"], ["Cretone", "RM"]], - "00019": [ - ["Tivoli Terme", "RM"], - ["Pontelucano", "RM"], - ["Tivoli", "RM"], - ["Arci", "RM"], - ["Empolitana", "RM"], - ["Villa Adriana", "RM"], - ["Bivio San Polo", "RM"], - ], - "00020": [ - ["Jenne", "RM"], - ["Agosta", "RM"], - ["Pisoniano", "RM"], - ["Canterano", "RM"], - ["Altipiani Di Arcinazzo", "RM"], - ["Marano Equo", "RM"], - ["Ciciliano", "RM"], - ["Arcinazzo Romano", "RM"], - ["Percile", "RM"], - ["Vivaro Romano", "RM"], - ["Madonna Della Pace", "RM"], - ["Cervara Di Roma", "RM"], - ["Camerata Nuova", "RM"], - ["Riofreddo", "RM"], - ["Cerreto Laziale", "RM"], - ["Rocca Canterano", "RM"], - ["Mandela", "RM"], - ["Vallepietra", "RM"], - ["Vallinfreda", "RM"], - ["Cineto Romano", "RM"], - ["Sambuci", "RM"], - ["Roccagiovine", "RM"], - ["Saracinesco", "RM"], - ], - "00021": [["Affile", "RM"]], - "00022": [["Anticoli Corrado", "RM"]], - "00023": [["Arsoli", "RM"]], - "00024": [["Castel Madama", "RM"]], - "00025": [["Gerano", "RM"]], - "00026": [["Civitella", "RM"], ["Licenza", "RM"]], - "00027": [["Roviano", "RM"]], - "00028": [["Subiaco", "RM"]], - "00029": [["Vicovaro", "RM"]], - "00030": [ - ["Castel San Pietro Romano", "RM"], - ["Colonna", "RM"], - ["San Cesareo", "RM"], - ["Gorga", "RM"], - ["Labico", "RM"], - ["Montelanico", "RM"], - ["Capranica Prenestina", "RM"], - ["Guadagnolo", "RM"], - ["Rocca Di Cave", "RM"], - ["San Vito Romano", "RM"], - ["Colonna Stazione", "RM"], - ["Genazzano", "RM"], - ["Bellegra", "RM"], - ["Gavignano", "RM"], - ["Roiate", "RM"], - ["Rocca Santo Stefano", "RM"], - ], - "00031": [["Artena", "RM"], ["Macere", "RM"], ["Colubro", "RM"]], - "00032": [["Carpineto Romano", "RM"]], - "00033": [["San Bartolomeo", "RM"], ["Cave", "RM"]], - "00034": [["Colleferro Scalo", "RM"], ["Colleferro Stazione", "RM"], ["Colleferro", "RM"]], - "00035": [["Olevano Romano", "RM"]], - "00036": [["Palestrina", "RM"], ["Carchitti", "RM"]], - "00037": [["Segni", "RM"]], - "00038": [["Valmontone", "RM"]], - "00039": [["Valle Martella", "RM"], ["Zagarolo", "RM"]], - "00040": [ - ["Rocca Di Papa", "RM"], - ["Santa Maria Delle Mole", "RM"], - ["Tor San Lorenzo", "RM"], - ["Marina Di Ardea", "RM"], - ["Ardea", "RM"], - ["Ponte Sulla Moletta", "RM"], - ["Frattocchie", "RM"], - ], - "00041": [ - ["Cecchina Stazione", "RM"], - ["Cecchina", "RM"], - ["Pavona Stazione", "RM"], - ["Albano Laziale", "RM"], - ["Pavona", "RM"], - ], - "00042": [["Lido Dei Pini", "RM"], ["Anzio", "RM"], ["Lavinio Lido Di Enea", "RM"], ["Colonia Di Anzio", "RM"]], - "00043": [["Casabianca", "RM"], ["Ciampino Aeroporto", "RM"], ["Ciampino", "RM"]], - "00044": [["Frascati", "RM"], ["Vermicino", "RM"]], - "00045": [["Landi", "RM"], ["Pedica", "RM"], ["Genzano Di Roma", "RM"]], - "00046": [["Poggio Tulliano", "RM"], ["Grottaferrata", "RM"]], - "00047": [["Marino", "RM"]], - "00048": [["Nettuno", "RM"]], - "00049": [["Velletri", "RM"]], - "00050": [["Testa Di Lepre Di Sopra", "RM"]], - "00051": [["La Bianca", "RM"], ["Allumiere", "RM"]], - "00052": [ - ["Ceri", "RM"], - ["Marina Di Cerveteri", "RM"], - ["Cerveteri", "RM"], - ["Cerenova", "RM"], - ["Stazione Di Furbara", "RM"], - ["Furbara Cerenova", "RM"], - ["Borgo San Martino Di Cerveteri", "RM"], - ], - "00053": [["Civitavecchia", "RM"], ["Aurelia", "RM"], ["Aurelia Di Civitavecchia", "RM"]], - "00054": [ - ["Maccarese", "RM"], - ["Fregene", "RM"], - ["Testa Di Lepre", "RM"], - ["Isola Sacra", "RM"], - ["Fiumicino", "RM"], - ["Torrimpietra", "RM"], - ["Focene", "RM"], - ["Fiumicino Aeroporto", "RM"], - ["Ara Nova", "RM"], - ["Passo Oscuro", "RM"], - ], - "00055": [["Marina San Nicola", "RM"], ["Ladispoli", "RM"], ["Palo", "RM"]], - "00057": [["Malagrotta", "RM"], ["Pantano Di Grano", "RM"]], - "00058": [["Santa Marinella", "RM"], ["Santa Severa", "RM"]], - "00059": [["Tolfa", "RM"], ["Santa Severa Nord", "RM"]], - "00060": [ - ["Ponte Storto", "RM"], - ["Nazzano", "RM"], - ["Filacciano", "RM"], - ["Castelnuovo Di Porto", "RM"], - ["Terme Di Stiglian", "RM"], - ["Monte Caminetto", "RM"], - ["Belvedere", "RM"], - ["Torrita Tiberina", "RM"], - ["Bellavista", "RM"], - ["Mazzano Romano", "RM"], - ["Canale Monterano", "RM"], - ["Formello", "RM"], - ["Bivio Di Capanelle", "RM"], - ["Capena", "RM"], - ["Bagni Di Stigliano", "RM"], - ["Le Rughe", "RM"], - ["Riano", "RM"], - ["Sant'Oreste", "RM"], - ["Civitella San Paolo", "RM"], - ["Magliano Romano", "RM"], - ["Terrazze", "RM"], - ["Montevirginio", "RM"], - ["Girardi", "RM"], - ["Ponzano Romano", "RM"], - ["Sacrofano", "RM"], - ], - "00061": [["Anguillara Sabazia", "RM"]], - "00062": [["Bracciano", "RM"], ["Rinascente", "RM"], ["Castel Giuliano", "RM"], ["Vigna Di Valle", "RM"]], - "00063": [["Campagnano Di Roma", "RM"]], - "00065": [["Feronia", "RM"], ["Fiano Romano", "RM"]], - "00066": [["Manziana", "RM"], ["Quadroni", "RM"]], - "00067": [["Morlupo", "RM"]], - "00068": [["Rignano Flaminio", "RM"]], - "00069": [["Vicarello", "RM"], ["Trevignano Romano", "RM"]], - "00071": [["Pratica Di Mare", "RM"], ["Santa Palomba", "RM"], ["Pomezia", "RM"], ["Torvaianica", "RM"]], - "00072": [["Ariccia", "RM"], ["Galloro", "RM"]], - "00073": [["Laghetto Di Castel Gandolfo", "RM"], ["Castel Gandolfo", "RM"]], - "00074": [["Nemi", "RM"]], - "00075": [["Pascolare", "RM"], ["Lanuvio", "RM"]], - "00076": [["Lariano", "RM"]], - "00077": [["Laghetto Di Montecompatri", "RM"], ["Molara", "RM"], ["Montecompatri", "RM"]], - "00078": [["Monte Porzio Catone", "RM"], ["Armetta", "RM"]], - "00079": [["Rocca Priora", "RM"], ["Colle Di Fuori", "RM"]], - "00118": [["Roma", "RM"]], - "00119": [["Roma", "RM"], ["Ostia Antica", "RM"]], - "00120": [["Roma", "RM"]], - "00121": [["Roma", "RM"], ["Lido Di Ostia Ponente", "RM"]], - "00122": [["Roma", "RM"], ["Lido Di Ostia Levante", "RM"], ["Castel Fusano", "RM"], ["Castel Porziano", "RM"]], - "00123": [["La Storta", "RM"], ["Roma", "RM"], ["Isola Farnese", "RM"]], - "00124": [["Casal Palocco", "RM"], ["Roma", "RM"]], - "00125": [["Acilia", "RM"], ["Roma", "RM"]], - "00126": [["Roma", "RM"]], - "00127": [["Risaro", "RM"], ["Roma", "RM"], ["Mezzocammino", "RM"], ["Vitinia", "RM"]], - "00128": [ - ["Roma", "RM"], - ["Castel Di Decima", "RM"], - ["Castel Romano", "RM"], - ["Malpasso", "RM"], - ["Tor De' Cenci", "RM"], - ], - "00131": [["Roma", "RM"], ["Settecamini", "RM"]], - "00132": [ - ["Roma", "RM"], - ["Borgata Finocchio", "RM"], - ["Colle Della Valentina", "RM"], - ["Borgata Borghesiana", "RM"], - ], - "00133": [["Torre Gaia", "RM"], ["Torre Angela", "RM"], ["Roma", "RM"], ["Torrenova", "RM"]], - "00134": [["Castel Di Leva", "RM"], ["Divino Amore", "RM"], ["Roma", "RM"]], - "00135": [["Roma", "RM"], ["Borgata Ottavia", "RM"], ["La Giustiniana", "RM"]], - "00136": [["Roma", "RM"]], - "00137": [["Roma", "RM"]], - "00138": [ - ["Borgata Fidene", "RM"], - ["Roma", "RM"], - ["Marcigliana", "RM"], - ["Castel Giubileo", "RM"], - ["Settebagni", "RM"], - ], - "00139": [["Roma", "RM"]], - "00141": [["Roma", "RM"]], - "00142": [["Roma", "RM"]], - "00143": [["Roma", "RM"], ["Cecchignola", "RM"]], - "00144": [["Roma", "RM"], ["Decima", "RM"]], - "00145": [["Roma", "RM"]], - "00146": [["Roma", "RM"]], - "00147": [["Roma", "RM"]], - "00148": [["Borgata Corviale", "RM"], ["Roma", "RM"], ["Magliana Trullo", "RM"]], - "00149": [["Roma", "RM"]], - "00151": [["Roma", "RM"]], - "00152": [["Roma", "RM"]], - "00153": [["Roma", "RM"]], - "00154": [["Roma", "RM"]], - "00155": [["La Rustica", "RM"], ["Tor Sapienza", "RM"], ["Roma", "RM"]], - "00156": [["Roma", "RM"], ["Rebibbia", "RM"]], - "00157": [["Roma", "RM"]], - "00158": [["Roma", "RM"]], - "00159": [["Roma", "RM"]], - "00161": [["Roma", "RM"]], - "00162": [["Roma", "RM"]], - "00163": [["Roma", "RM"]], - "00164": [["Roma", "RM"]], - "00165": [["Roma", "RM"]], - "00166": [["Roma", "RM"], ["Borgata Casalotti", "RM"]], - "00167": [["Roma", "RM"]], - "00168": [["Roma", "RM"]], - "00169": [["Roma", "RM"], ["Torre Maura", "RM"], ["Torre Spaccata", "RM"]], - "00171": [["Roma", "RM"]], - "00172": [["Roma", "RM"]], - "00173": [["Roma", "RM"]], - "00174": [["Roma", "RM"]], - "00175": [["Roma", "RM"]], - "00176": [["Roma", "RM"]], - "00177": [["Roma", "RM"]], - "00178": [["Roma", "RM"], ["Torricola", "RM"], ["Capannelle", "RM"]], - "00179": [["Roma", "RM"]], - "00181": [["Roma", "RM"]], - "00182": [["Roma", "RM"]], - "00183": [["Roma", "RM"]], - "00184": [["Roma", "RM"]], - "00185": [["Roma", "RM"]], - "00186": [["Roma", "RM"]], - "00187": [["Roma", "RM"]], - "00188": [["Labaro", "RM"], ["Prima Porta", "RM"], ["Roma", "RM"]], - "00189": [["Roma", "RM"], ["Tomba Di Nerone", "RM"], ["Grottarossa", "RM"]], - "00191": [["Roma", "RM"]], - "00192": [["Roma", "RM"]], - "00193": [["Roma", "RM"]], - "00194": [["Roma", "RM"]], - "00195": [["Roma", "RM"]], - "00196": [["Roma", "RM"]], - "00197": [["Roma", "RM"]], - "00198": [["Roma", "RM"]], - "00199": [["Roma", "RM"]], - "01010": [ - ["Arlena Di Castro", "VT"], - ["Blera", "VT"], - ["Oriolo Romano", "VT"], - ["Vejano", "VT"], - ["Barbarano Romano", "VT"], - ["Gradoli", "VT"], - ["Piansano", "VT"], - ["Tessennano", "VT"], - ["Capodimonte", "VT"], - ["Villa San Giovanni In Tuscia", "VT"], - ["Cellere", "VT"], - ["Onano", "VT"], - ["Marta", "VT"], - ["Farnese", "VT"], - ["Civitella Cesi", "VT"], - ["Latera", "VT"], - ["Ischia Di Castro", "VT"], - ["Monte Romano", "VT"], - ], - "01011": [["Musignano", "VT"], ["Canino", "VT"]], - "01012": [["Vico Matrino", "VT"], ["Capranica", "VT"]], - "01014": [["Montalto Di Castro", "VT"], ["Pescia Romana", "VT"]], - "01015": [["Sutri", "VT"]], - "01016": [["Tarquinia", "VT"], ["Lido Di Tarquinia", "VT"], ["Marina Velca", "VT"]], - "01017": [["Tuscania", "VT"]], - "01018": [["Valentano", "VT"]], - "01019": [ - ["La Botte", "VT"], - ["Pietrara", "VT"], - ["Giardino", "VT"], - ["Tre Croci", "VT"], - ["Cura", "VT"], - ["Vetralla", "VT"], - ], - "01020": [ - ["Bomarzo", "VT"], - ["Lubriano", "VT"], - ["Celleno", "VT"], - ["Casenuove", "VT"], - ["San Michele In Teverina", "VT"], - ["Sipicciano", "VT"], - ["Proceno", "VT"], - ["Mugnano", "VT"], - ["San Lorenzo Nuovo", "VT"], - ["Civitella D'Agliano", "VT"], - ["Graffignano", "VT"], - ], - "01021": [["Acquapendente", "VT"], ["Torre Alfina", "VT"], ["Trevinano", "VT"]], - "01022": [["Civita", "VT"], ["Bagnoregio", "VT"], ["Vetriolo", "VT"], ["Castel Cellesi", "VT"]], - "01023": [["Bolsena", "VT"]], - "01024": [["Castiglione In Teverina", "VT"], ["Sermugnano", "VT"]], - "01025": [["Grotte Di Castro", "VT"]], - "01027": [["Le Mosse", "VT"], ["Montefiascone", "VT"], ["Zepponami", "VT"]], - "01028": [["Orte Scalo", "VT"], ["Orte", "VT"], ["Orte Stazione", "VT"]], - "01030": [ - ["Bassano Romano", "VT"], - ["Vitorchiano Stazione", "VT"], - ["Vitorchiano", "VT"], - ["Vallerano", "VT"], - ["Corchiano", "VT"], - ["Vasanello", "VT"], - ["Bassano In Teverina", "VT"], - ["Castel Sant'Elia", "VT"], - ["Carbognano", "VT"], - ["Canepina", "VT"], - ["Monterosi", "VT"], - ["Calcata", "VT"], - ["Faleria", "VT"], - ["Calcata Nuova", "VT"], - ], - "01032": [["Caprarola", "VT"]], - "01033": [ - ["Borghetto", "VT"], - ["Civita Castellana Stazione", "VT"], - ["Borghetto Di Civita Castellana Stazione", "VT"], - ["Civita Castellana", "VT"], - ], - "01034": [["Regolelli", "VT"], ["Fabrica Di Roma", "VT"]], - "01035": [["Scalo Teverina", "VT"], ["Gallese", "VT"]], - "01036": [["Nepi", "VT"]], - "01037": [["Lago Di Vico", "VT"], ["Ronciglione", "VT"]], - "01038": [["Soriano Nel Cimino", "VT"], ["Chia", "VT"]], - "01039": [["Vignanello", "VT"]], - "01100": [ - ["Fastello", "VT"], - ["Viterbo", "VT"], - ["Tobia", "VT"], - ["Magugnano", "VT"], - ["San Martino Al Cimino", "VT"], - ["Grotte Santo Stefano", "VT"], - ["La Quercia", "VT"], - ["Roccalvecce", "VT"], - ["Bagnaia", "VT"], - ], - "16010": [ - ["Prelo", "GE"], - ["Tiglieto", "GE"], - ["Castagna", "GE"], - ["Savignone", "GE"], - ["Acquasanta", "GE"], - ["Rossiglione", "GE"], - ["Crocefieschi", "GE"], - ["Mele", "GE"], - ["Manesseno", "GE"], - ["Isorelle", "GE"], - ["Ponte Di Savignone", "GE"], - ["Pedemonte", "GE"], - ["Carsi", "GE"], - ["Masone", "GE"], - ["Orero Di Serra Ricco'", "GE"], - ["Valbrevenna", "GE"], - ["Sant'Olcese", "GE"], - ["Vobbia", "GE"], - ["Piccarello", "GE"], - ["Mainetto", "GE"], - ["Serra Ricco'", "GE"], - ], - "16011": [["Pineta Di Arenzano", "GE"], ["Arenzano", "GE"]], - "16012": [["Busalla", "GE"], ["Sarissola", "GE"], ["Camarza", "GE"]], - "16013": [["Campo Ligure", "GE"]], - "16014": [ - ["Geo", "GE"], - ["Langasco", "GE"], - ["Isoverde", "GE"], - ["Guardia", "GE"], - ["Ceranesi", "GE"], - ["Pontasso", "GE"], - ["Ferriera", "GE"], - ["Campomorone", "GE"], - ["Santuario Della Guardia", "GE"], - ], - "16015": [["Orero", "GE"], ["Casella", "GE"]], - "16016": [["Sciarborasca", "GE"], ["Lerca", "GE"], ["Cogoleto", "GE"]], - "16017": [["Isola Del Cantone", "GE"]], - "16018": [["Giovi", "GE"], ["Mignanego", "GE"]], - "16019": [["Pieve", "GE"], ["Ronco Scrivia", "GE"], ["Borgo Fornari", "GE"]], - "16020": [["Fascia", "GE"], ["Cassingheno", "GE"], ["Gorreto", "GE"], ["Fontanarossa", "GE"]], - "16021": [["Bargagli", "GE"]], - "16022": [["Davagna", "GE"], ["Moranego", "GE"], ["Scoffera", "GE"], ["Meco", "GE"]], - "16023": [["Canale Fontanigorda", "GE"], ["Canale", "GE"], ["Fontanigorda", "GE"], ["Casoni", "GE"]], - "16024": [["Lumarzo", "GE"]], - "16025": [["Rondanina", "GE"], ["Ponte Trebbia", "GE"], ["Montebruno", "GE"]], - "16026": [["Trefontane", "GE"], ["Montoggio", "GE"]], - "16027": [["Propata", "GE"]], - "16028": [["Casanova", "GE"], ["Rovegno", "GE"]], - "16029": [["Fascia Di Carlo", "GE"], ["Torriglia", "GE"], ["Laccio", "GE"]], - "16030": [ - ["Zoagli", "GE"], - ["Sori", "GE"], - ["Sant'Anna", "GE"], - ["Capreno", "GE"], - ["Uscio", "GE"], - ["Colonia Arnaldi", "GE"], - ["Testana", "GE"], - ["Bargone", "GE"], - ["Canepa", "GE"], - ["Moneglia", "GE"], - ["Casarza Ligure", "GE"], - ["Cogorno", "GE"], - ["Tribogna", "GE"], - ["Castiglione Chiavarese", "GE"], - ["San Salvatore", "GE"], - ["Pieve Ligure", "GE"], - ["Avegno", "GE"], - ["Velva", "GE"], - ], - "16031": [["Poggio Favaro", "GE"], ["Bogliasco", "GE"], ["San Bernardo", "GE"]], - "16032": [ - ["San Rocco", "GE"], - ["San Fruttuoso", "GE"], - ["San Rocco Di Camogli", "GE"], - ["Camogli", "GE"], - ["San Fruttuoso Di Camogli", "GE"], - ["Ruta", "GE"], - ], - "16033": [["Lavagna", "GE"], ["Cavi", "GE"]], - "16034": [["Portofino", "GE"]], - "16035": [["San Michele Di Pagana", "GE"], ["San Massimo", "GE"], ["Rapallo", "GE"]], - "16036": [["Recco", "GE"]], - "16038": [["Santa Margherita Ligure", "GE"], ["Paraggi", "GE"], ["San Lorenzo Della Costa", "GE"]], - "16039": [ - ["Sestri Levante", "GE"], - ["Pila Sul Gromolo", "GE"], - ["Riva Trigoso", "GE"], - ["Santa Vittoria Di Libiola", "GE"], - ], - "16040": [ - ["Celesia", "GE"], - ["Leivi", "GE"], - ["San Colombano Certenoli", "GE"], - ["Pian Dei Ratti", "GE"], - ["Calvari", "GE"], - ["Piandifieno", "GE"], - ["Ognio", "GE"], - ["Neirone", "GE"], - ["Coreglia Ligure", "GE"], - ["Statale", "GE"], - ["Ne", "GE"], - ["Roccatagliata", "GE"], - ["Isolona", "GE"], - ["Orero", "GE"], - ["Reppia", "GE"], - ["Conscenti", "GE"], - ["Favale Di Malvaro", "GE"], - ], - "16041": [ - ["Giaiette", "GE"], - ["Prato Sopralacroce", "GE"], - ["Bertigaro", "GE"], - ["Borzonasca", "GE"], - ["Brizzolara", "GE"], - ], - "16042": [["Carasco", "GE"], ["Rivarola", "GE"], ["Graveglia", "GE"]], - "16043": [["Sant'Andrea Di Rovereto", "GE"], ["Chiavari", "GE"], ["Caperana", "GE"]], - "16044": [["Cicagna", "GE"], ["Monleone", "GE"]], - "16045": [["Lorsica", "GE"]], - "16046": [["Passo Del Bocco", "GE"], ["Borgonovo", "GE"], ["Borgonovo Ligure", "GE"], ["Mezzanego", "GE"]], - "16047": [["Moconesi", "GE"], ["Gattorna", "GE"], ["Ferrada", "GE"]], - "16048": [ - ["Rezzoaglio", "GE"], - ["Priosa", "GE"], - ["Parazzuolo", "GE"], - ["Magnasco", "GE"], - ["Cabanne", "GE"], - ["Alpepiana", "GE"], - ], - "16049": [["Amborzasco", "GE"], ["Allegrezze", "GE"], ["Santo Stefano D'Aveto", "GE"]], - "16100": [["Genova", "GE"]], - "16121": [["Genova", "GE"]], - "16122": [["Genova", "GE"]], - "16123": [["Genova", "GE"]], - "16124": [["Genova", "GE"]], - "16125": [["Genova", "GE"]], - "16126": [["Genova", "GE"]], - "16127": [["Genova", "GE"]], - "16128": [["Genova", "GE"]], - "16129": [["Genova", "GE"]], - "16131": [["Genova", "GE"]], - "16132": [["Genova", "GE"]], - "16133": [["Genova", "GE"], ["Apparizione", "GE"], ["Bavari", "GE"], ["San Desiderio", "GE"]], - "16134": [["Genova", "GE"]], - "16135": [["Genova", "GE"]], - "16136": [["Genova", "GE"]], - "16137": [["Genova", "GE"], ["Staglieno", "GE"]], - "16138": [["Genova", "GE"], ["Molassana", "GE"]], - "16139": [["Genova", "GE"]], - "16141": [["Genova", "GE"], ["Sant'Eusebio", "GE"]], - "16142": [["Genova", "GE"]], - "16143": [["Genova", "GE"]], - "16144": [["Genova", "GE"]], - "16145": [["Genova", "GE"]], - "16146": [["Genova", "GE"]], - "16147": [["Genova", "GE"], ["Sturla", "GE"]], - "16148": [["Genova", "GE"], ["Quarto Dei Mille", "GE"]], - "16149": [["Genova", "GE"], ["Sampierdarena", "GE"]], - "16151": [["Genova", "GE"], ["Campasso", "GE"]], - "16152": [["Cornigliano Ligure", "GE"], ["Coronata", "GE"], ["Genova", "GE"]], - "16153": [["Genova", "GE"], ["Borzoli", "GE"]], - "16154": [["Genova", "GE"], ["Sestri Ponente", "GE"], ["San Giovanni Battista", "GE"]], - "16155": [["Pegli", "GE"], ["Multedo", "GE"], ["Genova", "GE"]], - "16156": [["Genova", "GE"]], - "16157": [["Genova", "GE"], ["Pra'", "GE"], ["Palmaro Di Pra'", "GE"]], - "16158": [["Fabbriche", "GE"], ["Voltri", "GE"], ["Genova", "GE"]], - "16159": [["Genova", "GE"], ["Certosa Di Rivarolo Ligure", "GE"], ["Rivarolo Ligure", "GE"]], - "16161": [["Fegino", "GE"], ["Genova", "GE"], ["Teglia", "GE"]], - "16162": [["Genova", "GE"], ["Bolzaneto", "GE"]], - "16163": [["San Quirico In Val Polcevera", "GE"], ["Genova", "GE"]], - "16164": [["Genova", "GE"], ["Pontedecimo", "GE"]], - "16165": [["Struppa", "GE"], ["Genova", "GE"]], - "16166": [["Genova", "GE"], ["Quinto Al Mare", "GE"]], - "16167": [["Genova", "GE"], ["Nervi", "GE"], ["Sant'Ilario Ligure", "GE"]], - "18010": [ - ["Pietrabruna", "IM"], - ["Villa Faraldi", "IM"], - ["Riva Faraldi", "IM"], - ["Carpasio", "IM"], - ["Montalto Ligure", "IM"], - ["Cervo", "IM"], - ["Terzorio", "IM"], - ["Boscomare", "IM"], - ["Molini Di Triora", "IM"], - ["Badalucco", "IM"], - ["Santo Stefano Al Mare", "IM"], - ["Agaggio Inferiore", "IM"], - ["Triora", "IM"], - ], - "18011": [["Castellaro", "IM"]], - "18012": [ - ["Bordighera", "IM"], - ["Piani Di Borghetto", "IM"], - ["Bordighera Alta", "IM"], - ["Seborga", "IM"], - ["Vallebona", "IM"], - ["Borghetto San Nicolo'", "IM"], - ], - "18013": [ - ["Diano Castello", "IM"], - ["Diano Arentino", "IM"], - ["Diano Marina", "IM"], - ["Diano San Pietro", "IM"], - ], - "18014": [["Ospedaletti", "IM"]], - "18015": [["Riva Ligure", "IM"], ["Pompeiana", "IM"]], - "18016": [["San Bartolomeo Al Mare", "IM"]], - "18017": [ - ["San Lorenzo Al Mare", "IM"], - ["Cipressa", "IM"], - ["Costarainera", "IM"], - ["Civezza", "IM"], - ["Lingueglietta", "IM"], - ], - "18018": [["Taggia", "IM"], ["Arma Di Taggia", "IM"]], - "18019": [["Vallecrosia Alta", "IM"], ["Vallecrosia", "IM"]], - "18020": [ - ["Caravonica", "IM"], - ["Vasia", "IM"], - ["Dolcedo", "IM"], - ["Aquila Di Arroscia", "IM"], - ["Lucinasco", "IM"], - ["Borghetto D'Arroscia", "IM"], - ["Aurigo", "IM"], - ["Ranzo", "IM"], - ["Prela'", "IM"], - ], - "18021": [["Borgomaro", "IM"]], - "18022": [["Arzeno D'Oneglia", "IM"], ["Cesio", "IM"], ["Cartari", "IM"]], - "18023": [["Cosio Di Arroscia", "IM"]], - "18024": [["Case Di Nava", "IM"], ["Nava", "IM"], ["Pornassio", "IM"]], - "18025": [["Mendatica", "IM"], ["Montegrosso Pian Latte", "IM"], ["Piaggia", "CN"], ["Briga Alta", "CN"]], - "18026": [ - ["Armo", "IM"], - ["Calderara", "IM"], - ["Pieve Di Teco", "IM"], - ["Rezzo", "IM"], - ["Vessalico", "IM"], - ["Cenova", "IM"], - ], - "18027": [["Pontedassio", "IM"], ["Chiusanico", "IM"], ["Chiusavecchia", "IM"]], - "18030": [ - ["Airole", "IM"], - ["Rocchetta Nervina", "IM"], - ["Olivetta San Michele", "IM"], - ["Castel Vittorio", "IM"], - ], - "18031": [["Bajardo", "IM"]], - "18032": [["Perinaldo", "IM"]], - "18033": [["Camporosso Mare", "IM"], ["Camporosso", "IM"]], - "18034": [["Ceriana", "IM"]], - "18035": [["Dolceacqua", "IM"], ["Isolabona", "IM"], ["Apricale", "IM"]], - "18036": [["Soldano", "IM"], ["San Biagio Della Cima", "IM"]], - "18037": [["Pigna", "IM"]], - "18038": [ - ["Coldirodi", "IM"], - ["San Remo", "IM"], - ["San Bartolomeo", "IM"], - ["Borello", "IM"], - ["San Giacomo", "IM"], - ["Bussana", "IM"], - ["Poggio", "IM"], - ["Verezzo", "IM"], - ["San Romolo", "IM"], - ], - "18039": [ - ["Bevera", "IM"], - ["Sealza", "IM"], - ["Ventimiglia", "IM"], - ["Torri", "IM"], - ["Sant'Antonio", "IM"], - ["Grimaldi", "IM"], - ["Grimaldi Di Ventimiglia", "IM"], - ["Calvo", "IM"], - ["Latte", "IM"], - ["Trucco", "IM"], - ["Roverino", "IM"], - ], - "18100": [ - ["Imperia", "IM"], - ["Vasia", "IM"], - ["Dolcedo", "IM"], - ["Porto Maurizio", "IM"], - ["Borgo Primo", "IM"], - ["Prela'", "IM"], - ["Oneglia", "IM"], - ["Castelvecchio Di Santa Maria Maggiore", "IM"], - ["Caramagna Ligure", "IM"], - ], - "19010": [["Torza", "SP"], ["Maissana", "SP"]], - "19011": [["Bonassola", "SP"]], - "19012": [["Castello", "SP"], ["Carro", "SP"]], - "19013": [["Deiva Marina", "SP"]], - "19014": [["Framura", "SP"]], - "19015": [["Levanto", "SP"], ["Montale", "SP"]], - "19016": [["Monterosso Al Mare", "SP"]], - "19017": [["Manarola", "SP"], ["Riomaggiore", "SP"]], - "19018": [["Vernazza", "SP"], ["Corniglia", "SP"]], - "19020": [ - ["Bottagna", "SP"], - ["Calice Al Cornoviglio", "SP"], - ["Cavanella Vara", "SP"], - ["Pieve Di Zignago", "SP"], - ["Ponzo'", "SP"], - ["Fornola", "SP"], - ["Zignago", "SP"], - ["Piano Di Valeriano", "SP"], - ["Piano Di Follo", "SP"], - ["Follo", "SP"], - ["Padivarma", "SP"], - ["Suvero", "SP"], - ["Beverino", "SP"], - ["Mattarana", "SP"], - ["Valeriano", "SP"], - ["Carrodano", "SP"], - ["Borghetto Di Vara", "SP"], - ["Rocchetta Di Vara", "SP"], - ["Bastremoli", "SP"], - ["Tivegna", "SP"], - ["Valdurasca", "SP"], - ["Brugnato", "SP"], - ["Ponzo' Bovecchio", "SP"], - ["San Martino Di Durasca", "SP"], - ["Veppo", "SP"], - ["Madonna Di Buonviaggio", "SP"], - ["Piana Battolla", "SP"], - ["Vezzano Ligure", "SP"], - ["Pignone", "SP"], - ["Carpena", "SP"], - ["Sesta Godano", "SP"], - ["Prati", "SP"], - ["Ricco' Del Golfo Di Spezia", "SP"], - ["Bolano", "SP"], - ["Ceparana", "SP"], - ["San Benedetto", "SP"], - ], - "19021": [["Romito Magra", "SP"], ["Arcola", "SP"]], - "19025": [ - ["Portovenere", "SP"], - ["Le Grazie Varignano", "SP"], - ["Isola Palmaria", "SP"], - ["Le Grazie", "SP"], - ["Fezzano", "SP"], - ], - "19028": [ - ["Varese Ligure", "SP"], - ["San Pietro Vara", "SP"], - ["Scurtabo'", "SP"], - ["Comuneglia", "SP"], - ["Porciorasco", "SP"], - ], - "19030": [["Fiumaretta", "SP"]], - "19031": [ - ["Fiumaretta Di Ameglia", "SP"], - ["Montemarcello", "SP"], - ["Ameglia", "SP"], - ["Bocca Di Magra", "SP"], - ], - "19032": [ - ["Serra", "SP"], - ["Tellaro", "SP"], - ["Lerici", "SP"], - ["Pugliola", "SP"], - ["Fiascherino", "SP"], - ["San Terenzo", "SP"], - ], - "19033": [["Molicciara", "SP"], ["Colombiera", "SP"], ["Castelnuovo Magra", "SP"]], - "19034": [ - ["Luni", "SP"], - ["Ortonovo", "SP"], - ["Dogana", "SP"], - ["Isola Di Ortonovo", "SP"], - ["Casano", "SP"], - ["Luni Mare", "SP"], - ["Nicola", "SP"], - ["Serravalle", "SP"], - ], - "19037": [["Ponzano Magra", "SP"], ["Ponzano Superiore", "SP"], ["Santo Stefano Di Magra", "SP"]], - "19038": [ - ["Sarzana", "SP"], - ["Falcinello", "SP"], - ["Marinella Di Sarzana", "SP"], - ["Sarzanello", "SP"], - ["San Lazzaro", "SP"], - ["Marinella", "SP"], - ["Santa Caterina", "SP"], - ], - "19100": [["La Spezia", "SP"]], - "19121": [["Laspezia", "SP"]], - "19122": [["Laspezia", "SP"]], - "19123": [["Fabiano", "SP"], ["Chiappa", "SP"], ["Laspezia", "SP"], ["Pegazzano", "SP"]], - "19124": [["Laspezia", "SP"], ["La Spezia", "SP"]], - "19125": [["Laspezia", "SP"], ["Migliarina", "SP"]], - "19126": [["Isola", "SP"], ["Laspezia", "SP"]], - "19131": [["Laspezia", "SP"], ["Cadimare", "SP"]], - "19132": [["Marola", "SP"], ["Laspezia", "SP"], ["Campiglia", "SP"]], - "19133": [["Biassa", "SP"], ["Laspezia", "SP"]], - "19134": [["Laspezia", "SP"], ["Marinasco", "SP"], ["La Foce", "SP"]], - "19135": [["Laspezia", "SP"], ["San Venerio", "SP"]], - "19136": [["Termo", "SP"], ["Laspezia", "SP"], ["Melara", "SP"], ["Limone", "SP"]], - "19137": [["Laspezia", "SP"], ["Pitelli", "SP"]], - "19138": [["Laspezia", "SP"], ["San Bartolomeo", "SP"]], - "19139": [["Muggiano", "SP"], ["Laspezia", "SP"]], - "12071": [["Massimino", "SV"], ["Bagnasco", "CN"]], - "17010": [["Osiglia", "SV"], ["Giusvalla", "SV"]], - "17011": [["Albisola Superiore", "SV"], ["Albisola Capo", "SV"], ["Ellera", "SV"]], - "17012": [["Albissola Marina", "SV"]], - "17013": [["Murialdo", "SV"], ["Valle", "SV"], ["Valle Di Murialdo", "SV"], ["Piano", "SV"]], - "17014": [ - ["San Giuseppe Di Cairo", "SV"], - ["Bragno", "SV"], - ["Rocchetta Cairo", "SV"], - ["San Giuseppe", "SV"], - ["Ferrania", "SV"], - ["Cairo Montenotte", "SV"], - ], - "17015": [["Celle Ligure", "SV"]], - "17017": [["Roccavignale", "SV"], ["Millesimo", "SV"], ["Cosseria", "SV"]], - "17019": [["Alpicella", "SV"], ["Casanova", "SV"], ["Varazze", "SV"], ["Faie", "SV"], ["Pero", "SV"]], - "17020": [ - ["Bardino Nuovo", "SV"], - ["Stellanello", "SV"], - ["Calice Ligure", "SV"], - ["Tovo San Giacomo", "SV"], - ["Balestrino", "SV"], - ["Magliolo", "SV"], - ["Testico", "SV"], - ["Bardino Vecchio", "SV"], - ["Rialto", "SV"], - ], - "17021": [["Alassio", "SV"], ["Moglio", "SV"]], - "17022": [["Borgio Verezzi", "SV"], ["Borgio", "SV"]], - "17023": [["Ceriale", "SV"]], - "17024": [ - ["Orco Feglino", "SV"], - ["Varigotti", "SV"], - ["Feglino", "SV"], - ["Finalborgo", "SV"], - ["Finale Ligure", "SV"], - ["Gorra", "SV"], - ], - "17025": [["Loano", "SV"]], - "17026": [["Noli", "SV"]], - "17027": [["Giustenice", "SV"], ["Pietra Ligure", "SV"]], - "17028": [["Bergeggi", "SV"], ["Spotorno", "SV"], ["Vezzi Portio", "SV"]], - "17030": [["Erli", "SV"], ["Castelbianco", "SV"], ["Nasino", "SV"]], - "17031": [ - ["San Fedele", "SV"], - ["Bastia", "SV"], - ["Leca", "SV"], - ["Lusignano", "SV"], - ["Albenga", "SV"], - ["Campochiesa", "SV"], - ], - "17032": [["Arnasco", "SV"], ["Vendone", "SV"]], - "17033": [["Villafranca", "SV"], ["Garlenda", "SV"], ["Casanova Lerrone", "SV"]], - "17034": [["Castelvecchio Di Rocca Barbena", "SV"]], - "17035": [["Cisano Sul Neva", "SV"]], - "17037": [["Pogli", "SV"], ["Onzo", "SV"], ["Ortovero", "SV"]], - "17038": [["Villanova D'Albenga", "SV"]], - "17039": [["Zuccarello", "SV"]], - "17040": [["Mioglia", "SV"]], - "17041": [["Altare", "SV"], ["Cadibona", "SV"]], - "17042": [["Giovo Ligure", "SV"], ["Giovo", "SV"], ["Pontinvrea", "SV"]], - "17043": [["Plodio", "SV"], ["Pallare", "SV"], ["Piani", "SV"], ["Carcare", "SV"]], - "17044": [ - ["Santa Giustina", "SV"], - ["San Martino Stella", "SV"], - ["San Martino", "SV"], - ["Stella", "SV"], - ["San Bernardo", "SV"], - ], - "17045": [["Mallare", "SV"], ["Bormida", "SV"]], - "17046": [["Sassello", "SV"], ["Palo", "SV"], ["Piampaludo", "SV"]], - "17047": [["Vado Ligure", "SV"], ["Valleggia", "SV"], ["Quiliano", "SV"]], - "17048": [ - ["Olba", "SV"], - ["San Pietro D'Olba", "SV"], - ["Vara", "SV"], - ["Vara Inferiore", "SV"], - ["Vara Superiore", "SV"], - ["Urbe", "SV"], - ], - "17051": [["Andora", "SV"], ["Marina Di Andora", "SV"]], - "17052": [["Borghetto Santo Spirito", "SV"]], - "17053": [["Laigueglia", "SV"]], - "17054": [["Boissano", "SV"]], - "17055": [["Toirano", "SV"]], - "17056": [["Cengio", "SV"]], - "17057": [["Calizzano", "SV"], ["Bardineto", "SV"], ["Caragna", "SV"]], - "17058": [["Piana Crixia", "SV"], ["Dego", "SV"]], - "17100": [ - ["Savona", "SV"], - ["Santuario", "SV"], - ["Santuario Di Savona", "SV"], - ["Zinola", "SV"], - ["Legino", "SV"], - ["Lavagnola", "SV"], - ["Fornaci", "SV"], - ], - "24010": [ - ["Dossena", "BG"], - ["Vedeseta", "BG"], - ["Costa Serina", "BG"], - ["Ubiale", "BG"], - ["Olmo Al Brembo", "BG"], - ["Valleve", "BG"], - ["Ubiale Clanezzo", "BG"], - ["Branzi", "BG"], - ["Muggiasca", "BG"], - ["Valnegra", "BG"], - ["Colla", "BG"], - ["Moio De' Calvi", "BG"], - ["Piazzatorre", "BG"], - ["Roncobello", "BG"], - ["Piazzolo", "BG"], - ["Carona", "BG"], - ["Cusio", "BG"], - ["Camerata Cornello", "BG"], - ["Peghera", "BG"], - ["Ornica", "BG"], - ["Cassiglio", "BG"], - ["Foppolo", "BG"], - ["Botta Di Sedrina", "BG"], - ["Ponteranica", "BG"], - ["Sorisole", "BG"], - ["Mezzoldo", "BG"], - ["Clanezzo", "BG"], - ["Santa Brigida", "BG"], - ["Botta", "BG"], - ["Isola Di Fondra", "BG"], - ["Bordogna", "BG"], - ["Algua", "BG"], - ["Petosino", "BG"], - ["Taleggio", "BG"], - ["Valtorta", "BG"], - ["Averara", "BG"], - ["Fondra", "BG"], - ["Olda", "BG"], - ["Lenna", "BG"], - ["Bracca", "BG"], - ["Blello", "BG"], - ["Sedrina", "BG"], - ], - "24011": [["Alme'", "BG"]], - "24012": [ - ["Laxolo", "BG"], - ["San Gottardo", "BG"], - ["Gerosa", "BG"], - ["Brembilla", "BG"], - ["Val Brembilla", "BG"], - ], - "24013": [["Oltre Il Colle", "BG"]], - "24014": [["Piazza Brembana", "BG"]], - "24015": [["San Giovanni Bianco", "BG"]], - "24016": [["Santa Croce", "BG"], ["San Pellegrino Terme", "BG"]], - "24017": [["Cornalba", "BG"], ["Serina", "BG"]], - "24018": [["Villa D'Alme'", "BG"]], - "24019": [["Poscante", "BG"], ["Spino", "BG"], ["Zogno", "BG"], ["Ambria", "BG"]], - "24020": [ - ["Selvino", "BG"], - ["Bondione", "BG"], - ["Villa Di Serio", "BG"], - ["Negrone", "BG"], - ["Cene", "BG"], - ["Casnigo", "BG"], - ["Piario", "BG"], - ["Ardesio", "BG"], - ["Gorle", "BG"], - ["Parre", "BG"], - ["Songavazzo", "BG"], - ["Fiumenero", "BG"], - ["Fino Del Monte", "BG"], - ["Dezzo", "BG"], - ["Valgoglio", "BG"], - ["Cerete Basso", "BG"], - ["Ponte Selva", "BG"], - ["Ranica", "BG"], - ["Boario", "BG"], - ["Premolo", "BG"], - ["Peia", "BG"], - ["Cerete", "BG"], - ["Oneta", "BG"], - ["Torre Boldone", "BG"], - ["Rovetta", "BG"], - ["Gorno", "BG"], - ["Aviatico", "BG"], - ["Scanzorosciate", "BG"], - ["Gavarno", "BG"], - ["Parre Ponte Selva", "BG"], - ["San Lorenzo Di Rovetta", "BG"], - ["Pradalunga", "BG"], - ["Onore", "BG"], - ["Gromo", "BG"], - ["Valbondione", "BG"], - ["Bratto", "BG"], - ["Gandellino", "BG"], - ["Colzate", "BG"], - ["Vilminore", "BG"], - ["Scanzo", "BG"], - ["Castione Della Presolana", "BG"], - ["Azzone", "BG"], - ["Oltressenda Alta", "BG"], - ["Cantoniera Della Presolana", "BG"], - ["Vilminore Di Scalve", "BG"], - ["Colere", "BG"], - ["Schilpario", "BG"], - ["Villa D'Ogna", "BG"], - ["Tribulina", "BG"], - ["Villassio", "BG"], - ["Fiorano Al Serio", "BG"], - ["Rosciate", "BG"], - ["Lizzola", "BG"], - ["Cornale", "BG"], - ], - "24021": [ - ["Comenduno", "BG"], - ["Abbazia", "BG"], - ["Albino", "BG"], - ["Vall'Alta", "BG"], - ["Desenzano Al Serio", "BG"], - ["Bondo Petello", "BG"], - ], - "24022": [["Alzano Lombardo", "BG"], ["Nese", "BG"]], - "24023": [["Clusone", "BG"]], - "24024": [["Gandino", "BG"]], - "24025": [["Orezzo", "BG"], ["Gazzaniga", "BG"]], - "24026": [["Cazzano Sant'Andrea", "BG"], ["Leffe", "BG"]], - "24027": [["Gavarno Rinnovata", "BG"], ["Nembro", "BG"]], - "24028": [["Ponte Nossa", "BG"]], - "24029": [["Vertova", "BG"]], - "24030": [ - ["Camoneone", "BG"], - ["Paladina", "BG"], - ["Ponte Giurino", "BG"], - ["Caprino Bergamasco", "BG"], - ["Crocette", "BG"], - ["Valbrembo", "BG"], - ["Strozza", "BG"], - ["Mapello", "BG"], - ["Celana", "BG"], - ["Berbenno", "BG"], - ["Costa Valle Imagna", "BG"], - ["Capizzone", "BG"], - ["Terno D'Isola", "BG"], - ["Caprino", "BG"], - ["Ambivere", "BG"], - ["Brembate Di Sopra", "BG"], - ["Presezzo", "BG"], - ["Corna Imagna", "BG"], - ["Mozzo", "BG"], - ["Carvico", "BG"], - ["Barzana", "BG"], - ["Roncola", "BG"], - ["Medolago", "BG"], - ["Solza", "BG"], - ["Bedulita", "BG"], - ["Sant'Antonio", "BG"], - ["Pontida", "BG"], - ["Fuipiano Valle Imagna", "BG"], - ["Locatello", "BG"], - ["Scano Al Brembo", "BG"], - ["Gromlongo", "BG"], - ["Almenno San Bartolomeo", "BG"], - ["Palazzago", "BG"], - ["Villa D'Adda", "BG"], - ], - "24031": [["Almenno San Salvatore", "BG"]], - "24033": [["Calusco D'Adda", "BG"]], - "24034": [["Cisano Bergamasco", "BG"]], - "24035": [["Curno", "BG"]], - "24036": [["Ponte San Pietro", "BG"]], - "24037": [["Rota D'Imagna", "BG"], ["Brumano", "BG"], ["Frontale", "BG"], ["Calchera", "BG"]], - "24038": [["Mazzoleni", "BG"], ["Selino Basso", "BG"], ["Valsecca", "BG"], ["Sant'Omobono Terme", "BG"]], - "24039": [["Sotto Il Monte Giovanni Xxiii", "BG"], ["Piazza Caduti", "BG"]], - "24040": [ - ["Suisio", "BG"], - ["Lallio", "BG"], - ["Castel Rozzone", "BG"], - ["Grumello Del Piano", "BG"], - ["Isso", "BG"], - ["Casirate D'Adda", "BG"], - ["Arcene", "BG"], - ["Bonate Sotto", "BG"], - ["Madone", "BG"], - ["Boltiere", "BG"], - ["Zingonia", "BG"], - ["Levate", "BG"], - ["Pontirolo Nuovo", "BG"], - ["Canonica D'Adda", "BG"], - ["Arzago D'Adda", "BG"], - ["Bottanuco", "BG"], - ["Filago", "BG"], - ["Fornovo San Giovanni", "BG"], - ["Osio Sopra", "BG"], - ["Verdellino", "BG"], - ["Ghiaie", "BG"], - ["Stezzano", "BG"], - ["Calvenzano", "BG"], - ["Bonate Sopra", "BG"], - ["Pognano", "BG"], - ["Comun Nuovo", "BG"], - ["Ciserano", "BG"], - ["Chignolo D'Isola", "BG"], - ["Misano Di Gera D'Adda", "BG"], - ["Pagazzano", "BG"], - ["Barbata", "BG"], - ], - "24041": [["Brembate", "BG"], ["Grignano", "BG"]], - "24042": [["Capriate San Gervasio", "BG"], ["San Gervasio D'Adda", "BG"], ["Crespi D'Adda", "BG"]], - "24043": [["Vidalengo", "BG"], ["Caravaggio", "BG"], ["Masano", "BG"]], - "24044": [["Dalmine", "BG"], ["Sforzatica", "BG"], ["Sabbio Bergamasco", "BG"]], - "24045": [["Badalasco", "BG"], ["Fara Gera D'Adda", "BG"]], - "24046": [["Osio Sotto", "BG"]], - "24047": [["Geromina", "BG"], ["Treviglio", "BG"], ["Castel Cerreto", "BG"]], - "24048": [["Treviolo", "BG"]], - "24049": [["Verdello", "BG"]], - "24050": [ - ["Bariano", "BG"], - ["Torre Pallavicina", "BG"], - ["Mozzanica", "BG"], - ["Cortenuova", "BG"], - ["Lurano", "BG"], - ["Malpaga", "BG"], - ["Cavernago", "BG"], - ["Pumenengo", "BG"], - ["Zanica", "BG"], - ["Palosco", "BG"], - ["Mornico Al Serio", "BG"], - ["Calcinate", "BG"], - ["Cividate Al Piano", "BG"], - ["Ghisalba", "BG"], - ["Grassobbio", "BG"], - ["Covo", "BG"], - ["Morengo", "BG"], - ["Orio Al Serio", "BG"], - ["Spirano", "BG"], - ], - "24051": [["Antegnate", "BG"]], - "24052": [["Azzano San Paolo", "BG"]], - "24053": [["Brignano Gera D'Adda", "BG"]], - "24054": [["Calcio", "BG"]], - "24055": [["Cologno Al Serio", "BG"]], - "24056": [["Fontanella", "BG"]], - "24057": [["Martinengo", "BG"]], - "24058": [ - ["Romano Di Lombardia", "BG"], - ["Fara Olivana", "BG"], - ["Fara Olivana Con Sola", "BG"], - ["Sola", "BG"], - ], - "24059": [["Basella", "BG"], ["Urgnano", "BG"]], - "24060": [ - ["Gaverina Terme", "BG"], - ["Viadanica", "BG"], - ["Sovere", "BG"], - ["Castelli Calepio", "BG"], - ["Credaro", "BG"], - ["Ranzanico", "BG"], - ["Casco", "BG"], - ["Carobbio Degli Angeli", "BG"], - ["Bianzano", "BG"], - ["Endine", "BG"], - ["Gorlago", "BG"], - ["Bossico", "BG"], - ["Chiuduno", "BG"], - ["Monasterolo", "BG"], - ["Torre De' Roveri", "BG"], - ["Entratico", "BG"], - ["Berzo San Fermo", "BG"], - ["Telgate", "BG"], - ["Pianico", "BG"], - ["Spinone Al Lago", "BG"], - ["Villongo", "BG"], - ["Zandobbio", "BG"], - ["Parzanica", "BG"], - ["Foresto Sparso", "BG"], - ["Rogno", "BG"], - ["Borgo Di Terzo", "BG"], - ["Brusaporto", "BG"], - ["Adrara San Martino", "BG"], - ["Cividino", "BG"], - ["Endine Gaiano", "BG"], - ["Castel De' Conti", "BG"], - ["San Paolo D'Argon", "BG"], - ["Casazza", "BG"], - ["Solto Collina", "BG"], - ["Piangaiano", "BG"], - ["Cenate Sopra", "BG"], - ["Celatica", "BG"], - ["Vigolo", "BG"], - ["Grone", "BG"], - ["Predore", "BG"], - ["Tolari", "BG"], - ["Costa Di Mezzate", "BG"], - ["Montello", "BG"], - ["Gandosso", "BG"], - ["Vigano San Martino", "BG"], - ["Adrara San Rocco", "BG"], - ["Bolgare", "BG"], - ["Fonteno", "BG"], - ["Tavernola Bergamasca", "BG"], - ["Bagnatica", "BG"], - ["Monasterolo Del Castello", "BG"], - ["Riva Di Solto", "BG"], - ], - "24061": [["Albano Sant'Alessandro", "BG"]], - "24062": [["Costa Volpino", "BG"]], - "24063": [["Castro", "BG"], ["Fonderia Di Lovere", "BG"]], - "24064": [["Grumello Del Monte", "BG"]], - "24065": [["Lovere", "BG"]], - "24066": [["Pedrengo", "BG"]], - "24067": [["Sarnico", "BG"]], - "24068": [["Seriate", "BG"], ["Cassinone", "BG"]], - "24069": [["Cenate Di Sotto", "BG"], ["Luzzana", "BG"], ["Cenate Sotto", "BG"], ["Trescore Balneario", "BG"]], - "24100": [["Bergamo", "BG"]], - "24121": [["Bergamo", "BG"]], - "24122": [["Bergamo", "BG"]], - "24123": [["Bergamo", "BG"], ["Valtesse", "BG"]], - "24124": [["Redona", "BG"], ["Bergamo", "BG"]], - "24125": [["Boccaleone", "BG"], ["Bergamo", "BG"]], - "24126": [["Colognola Al Piano", "BG"], ["Malpensata", "BG"], ["Campagnola", "BG"], ["Bergamo", "BG"]], - "24127": [["Bergamo", "BG"]], - "24128": [["Bergamo", "BG"], ["Loreto", "BG"]], - "24129": [["Bergamo", "BG"], ["Longuelo", "BG"]], - "25010": [ - ["Campione Del Garda", "BS"], - ["San Zeno Naviglio", "BS"], - ["Visano", "BS"], - ["San Felice Del Benaco", "BS"], - ["Acquafredda", "BS"], - ["Remedello Di Sotto", "BS"], - ["Isorella", "BS"], - ["Limone Sul Garda", "BS"], - ["San Martino Della Battaglia", "BS"], - ["Campione", "BS"], - ["Rivoltella", "BS"], - ["Tremosine", "BS"], - ["Remedello Di Sopra", "BS"], - ["Remedello", "BS"], - ["Pozzolengo", "BS"], - ["Montirone", "BS"], - ["Vesio", "BS"], - ["Borgosatollo", "BS"], - ], - "25011": [["Calcinatello", "BS"], ["Calcinato", "BS"], ["Ponte San Marco", "BS"]], - "25012": [["Viadana", "BS"], ["Calvisano", "BS"], ["Malpaga", "BS"], ["Mezzane", "BS"]], - "25013": [["Carpenedolo", "BS"]], - "25014": [["Capodimonte", "BS"], ["Castenedolo", "BS"]], - "25015": [["Desenzano Del Garda", "BS"]], - "25016": [["Ghedi", "BS"]], - "25017": [["Lonato", "BS"], ["Sedena", "BS"], ["Centenaro", "BS"], ["Esenta", "BS"]], - "25018": [["Vighizzolo", "BS"], ["Sant'Antonio", "BS"], ["Montichiari", "BS"], ["Novagli", "BS"]], - "25019": [["Colombare Di Sirmione", "BS"], ["Sirmione", "BS"]], - "25020": [ - ["Scarpizzolo", "BS"], - ["Cignano", "BS"], - ["Offlaga", "BS"], - ["Gambara", "BS"], - ["San Gervasio Bresciano", "BS"], - ["Cigole", "BS"], - ["Faverzano", "BS"], - ["Poncarale", "BS"], - ["Capriano Del Colle", "BS"], - ["Corticelle Pieve", "BS"], - ["Bassano Bresciano", "BS"], - ["Fiesse", "BS"], - ["Milzano", "BS"], - ["San Paolo", "BS"], - ["Flero", "BS"], - ["Pralboino", "BS"], - ["Azzano Mella", "BS"], - ["Quinzanello", "BS"], - ["Seniga", "BS"], - ["Pavone Del Mella", "BS"], - ["Alfianello", "BS"], - ["Dello", "BS"], - ], - "25021": [["Bagnolo Mella", "BS"]], - "25022": [["Borgo San Giacomo", "BS"], ["Motella", "BS"], ["Farfengo", "BS"], ["Padernello", "BS"]], - "25023": [["Gottolengo", "BS"]], - "25024": [["Castelletto", "BS"], ["Castelletto Di Leno", "BS"], ["Porzano", "BS"], ["Leno", "BS"]], - "25025": [["Manerbio", "BS"]], - "25026": [["Pontevico", "BS"]], - "25027": [["Quinzano D'Oglio", "BS"]], - "25028": [["Verolanuova", "BS"], ["Cadignano", "BS"]], - "25029": [["Verolavecchia", "BS"]], - "25030": [ - ["Longhena", "BS"], - ["Pievedizio", "BS"], - ["Pompiano", "BS"], - ["Mairano", "BS"], - ["Ludriano", "BS"], - ["Roncadelle", "BS"], - ["Barbariga", "BS"], - ["Torbole Casaglia", "BS"], - ["Brandico", "BS"], - ["Berlingo", "BS"], - ["Erbusco", "BS"], - ["Castelcovati", "BS"], - ["Torbiato", "BS"], - ["Castrezzato", "BS"], - ["Roccafranca", "BS"], - ["Maclodio", "BS"], - ["Urago D'Oglio", "BS"], - ["Rudiano", "BS"], - ["Cossirano", "BS"], - ["Paratico", "BS"], - ["Villa Pedergnano", "BS"], - ["Lograto", "BS"], - ["Comezzano Cizzago", "BS"], - ["Villachiara", "BS"], - ["Zocco", "BS"], - ["Orzivecchi", "BS"], - ["Castel Mella", "BS"], - ["Comezzano", "BS"], - ["Cizzago", "BS"], - ["Coccaglio", "BS"], - ["Trenzano", "BS"], - ["Corzano", "BS"], - ["Adro", "BS"], - ], - "25031": [["Capriolo", "BS"]], - "25032": [["Chiari", "BS"]], - "25033": [["Cologne", "BS"]], - "25034": [["Orzinuovi", "BS"], ["Coniolo", "BS"]], - "25035": [["Ospitaletto", "BS"]], - "25036": [["Palazzolo Sull'Oglio", "BS"], ["San Pancrazio", "BS"]], - "25037": [["Pontoglio", "BS"]], - "25038": [["Duomo", "BS"], ["Sant'Andrea", "BS"], ["Rovato", "BS"], ["Lodetto", "BS"], ["Sant'Anna", "BS"]], - "25039": [["Travagliato", "BS"]], - "25040": [ - ["Forno D'Allione", "BS"], - ["Cerveno", "BS"], - ["Badetto", "BS"], - ["Plemo", "BS"], - ["Incudine", "BS"], - ["Monticelli Brusati", "BS"], - ["Lozio", "BS"], - ["Forno Allione", "BS"], - ["Corte Franca", "BS"], - ["Galleno", "BS"], - ["Borgonato", "BS"], - ["Nigoline", "BS"], - ["Malonno", "BS"], - ["Bienno", "BS"], - ["Artogne", "BS"], - ["Saviore Dell'Adamello", "BS"], - ["Timoline", "BS"], - ["Monno", "BS"], - ["Bonomelli", "BS"], - ["Angolo Terme", "BS"], - ["Sacca", "BS"], - ["Cevo", "BS"], - ["Berzo Demo", "BS"], - ["Prestine", "BS"], - ["Gianico", "BS"], - ["Colombaro", "BS"], - ["Braone", "BS"], - ["Esine", "BS"], - ["Santicolo", "BS"], - ["Ono San Pietro", "BS"], - ["Corteno Golgi", "BS"], - ["Parmezzana Calzana", "BS"], - ["Ceto", "BS"], - ["Berzo Inferiore", "BS"], - ["Cividate Camuno", "BS"], - ], - "25041": [["Boario Terme", "BS"], ["Erbanno", "BS"]], - "25042": [["Borno", "BS"]], - "25043": [["Astrio", "BS"], ["Pescarzo", "BS"], ["Breno", "BS"]], - "25044": [["Capo Di Ponte", "BS"]], - "25045": [["Castegnato", "BS"]], - "25046": [["Bornato", "BS"], ["Cazzago San Martino", "BS"], ["Calino", "BS"], ["Pedrocca", "BS"]], - "25047": [["Gorzone", "BS"], ["Darfo Boario Terme", "BS"], ["Darfo", "BS"]], - "25048": [["Cortenedolo", "BS"], ["Edolo", "BS"], ["Sonico", "BS"]], - "25049": [["Pilzone", "BS"], ["Iseo", "BS"], ["Clusane", "BS"]], - "25050": [ - ["Paderno Franciacorta", "BS"], - ["Provezze", "BS"], - ["Temu'", "BS"], - ["Stadolina", "BS"], - ["Zone", "BS"], - ["Camignone", "BS"], - ["Ossimo Superiore", "BS"], - ["Peschiera Maraglio", "BS"], - ["Sellero", "BS"], - ["Vione", "BS"], - ["Ossimo Inferiore", "BS"], - ["Rodengo Saiano", "BS"], - ["Ossimo", "BS"], - ["Novelle", "BS"], - ["Fontane", "BS"], - ["Ponte Cingoli", "BS"], - ["Crist", "BS"], - ["Monte Isola", "BS"], - ["Pontagna", "BS"], - ["Cimbergo", "BS"], - ["Zurane", "BS"], - ["Siviano", "BS"], - ["Provaglio D'Iseo", "BS"], - ["Monterotondo", "BS"], - ["Passirano", "BS"], - ["Valle Di Saviore", "BS"], - ["Ome", "BS"], - ["Niardo", "BS"], - ["Gresine", "BS"], - ["Paisco Loveno", "BS"], - ["Pian Camuno", "BS"], - ["Paspardo", "BS"], - ["Losine", "BS"], - ], - "25051": [["Cedegolo", "BS"]], - "25052": [["Pian Di Borno", "BS"], ["Cogno", "BS"], ["Annunciata", "BS"], ["Piancogno", "BS"]], - "25053": [["Malegno", "BS"]], - "25054": [["Marone", "BS"]], - "25055": [["Pisogne", "BS"], ["Toline", "BS"], ["Gratacasolo", "BS"]], - "25056": [["Ponte Di Legno", "BS"]], - "25057": [["Sale Marasino", "BS"]], - "25058": [["Sulzano", "BS"]], - "25059": [["Vezza D'Oglio", "BS"]], - "25060": [ - ["Pezzaze", "BS"], - ["Cellatica", "BS"], - ["Tavernole Sul Mella", "BS"], - ["Lodrino", "BS"], - ["Polaveno", "BS"], - ["Gombio", "BS"], - ["Marcheno", "BS"], - ["Stravignino", "BS"], - ["Brozzo", "BS"], - ["Fantasina", "BS"], - ["Marmentino", "BS"], - ["Collebeato", "BS"], - ["Collio", "BS"], - ["Lavone", "BS"], - ["San Colombano", "BS"], - ["Lavone Di Pezzaze", "BS"], - ["Brione", "BS"], - ], - "25061": [["Irma", "BS"], ["Bovegno", "BS"]], - "25062": [["San Vigilio", "BS"], ["Concesio", "BS"]], - "25063": [["Gardone Val Trompia", "BS"], ["Magno", "BS"]], - "25064": [["Piazza", "BS"], ["Ronco", "BS"], ["Mandolossa", "BS"], ["Gussago", "BS"]], - "25065": [ - ["Lumezzane Pieve", "BS"], - ["Lumezzane Sant'Apollonio", "BS"], - ["Pieve", "BS"], - ["Sant'Apollonio", "BS"], - ["Lumezzane", "BS"], - ["San Sebastiano", "BS"], - ], - "25068": [["Ponte Zanano", "BS"], ["Zanano", "BS"], ["Sarezzo", "BS"]], - "25069": [["Carcina", "BS"], ["Cogozzo", "BS"], ["Villa Carcina", "BS"]], - "25070": [ - ["Preseglie", "BS"], - ["Trebbio", "BS"], - ["Sabbio Chiese", "BS"], - ["Mura", "BS"], - ["Barghe", "BS"], - ["Capovalle", "BS"], - ["Sottocastello", "BS"], - ["Treviso Bresciano", "BS"], - ["Anfo", "BS"], - ["Gazzane", "BS"], - ["Provaglio Val Sabbia", "BS"], - ["Casto", "BS"], - ["Ponte Caffaro", "BS"], - ["Caino", "BS"], - ["San Faustino", "BS"], - ["Livemmo", "BS"], - ["Bione", "BS"], - ["Pertica Alta", "BS"], - ], - "25071": [["Agnosine", "BS"]], - "25072": [["Bagolino", "BS"]], - "25073": [["Bovezzo", "BS"]], - "25074": [["Idro", "BS"], ["Lavenone", "BS"], ["Crone", "BS"]], - "25075": [["Nave", "BS"]], - "25076": [["Odolo", "BS"]], - "25077": [["Roe' Volciano", "BS"], ["Roe'", "BS"]], - "25078": [["Forno D'Ono", "BS"], ["Pertica Bassa", "BS"], ["Vestone", "BS"], ["Nozza", "BS"]], - "25079": [["Vobarno", "BS"], ["Carpeneda", "BS"], ["Pompegnino", "BS"], ["Degagna", "BS"]], - "25080": [ - ["Padenghe Sul Garda", "BS"], - ["Valvestino", "BS"], - ["Vallio Terme", "BS"], - ["Soiano Del Lago", "BS"], - ["Mazzano", "BS"], - ["Ciliverghe", "BS"], - ["Calvagese Della Riviera", "BS"], - ["Moniga Del Garda", "BS"], - ["Soiano", "BS"], - ["Castello", "BS"], - ["Molinetto", "BS"], - ["Gardola", "BS"], - ["Serle", "BS"], - ["Magasa", "BS"], - ["Paitone", "BS"], - ["Carzago Riviera", "BS"], - ["Manerba Del Garda", "BS"], - ["Carzago Della Riviera", "BS"], - ["Nuvolento", "BS"], - ["Moerna", "BS"], - ["Chiesa", "BS"], - ["Solarolo", "BS"], - ["Case Nuove", "BS"], - ["Puegnago Sul Garda", "BS"], - ["Nuvolera", "BS"], - ["Polpenazze Del Garda", "BS"], - ["Prevalle", "BS"], - ["Muscoline", "BS"], - ["Tignale", "BS"], - ["Raffa", "BS"], - ], - "25081": [["Bedizzole", "BS"], ["Campagnola", "BS"]], - "25082": [["Botticino Sera", "BS"], ["Botticino Mattina", "BS"], ["Botticino", "BS"], ["San Gallo", "BS"]], - "25083": [["San Michele", "BS"], ["Gardone Riviera", "BS"], ["Fasano Del Garda", "BS"], ["Montecucco", "BS"]], - "25084": [["Gargnano", "BS"], ["Bogliaco", "BS"], ["Navazzo", "BS"]], - "25085": [["San Giacomo", "BS"], ["San Biagio", "BS"], ["Sopraponte", "BS"], ["Gavardo", "BS"]], - "25086": [["Rezzato", "BS"], ["Virle Treponti", "BS"]], - "25087": [["Barbarano", "BS"], ["Campoverde", "BS"], ["Salo'", "BS"]], - "25088": [["Toscolano Maderno", "BS"], ["Maderno", "BS"]], - "25089": [["Bostone", "BS"], ["Villanuova Sul Clisi", "BS"]], - "25100": [["Brescia", "BS"]], - "25121": [["Brescia", "BS"]], - "25122": [["Brescia", "BS"]], - "25123": [["Brescia", "BS"]], - "25124": [["Brescia", "BS"]], - "25125": [["Brescia", "BS"]], - "25126": [["Brescia", "BS"]], - "25127": [["Brescia", "BS"]], - "25128": [["Brescia", "BS"]], - "25129": [["Brescia", "BS"], ["Bettole Di Buffalora", "BS"]], - "25131": [["Fornaci", "BS"], ["Brescia", "BS"]], - "25132": [["Brescia", "BS"], ["Mandolossa Di Brescia", "BS"]], - "25133": [["Brescia", "BS"], ["Mompiano", "BS"]], - "25134": [["San Polo", "BS"], ["Brescia", "BS"]], - "25135": [["Brescia", "BS"], ["Caionvico", "BS"], ["Sant'Eufemia Della Fonte", "BS"]], - "25136": [["Stocchetta", "BS"], ["Brescia", "BS"]], - "22010": [ - ["San Nazzaro Val Cavargna", "CO"], - ["Urio", "CO"], - ["Stazzona", "CO"], - ["Dosso Del Liro", "CO"], - ["Germasino", "CO"], - ["Peglio", "CO"], - ["San Gregorio", "CO"], - ["Plesio", "CO"], - ["Carate Urio", "CO"], - ["Laglio", "CO"], - ["Brienno", "CO"], - ["Musso", "CO"], - ["Albogasio", "CO"], - ["Bene Lario", "CO"], - ["Livo", "CO"], - ["Montemezzo", "CO"], - ["Calozzo", "CO"], - ["Ossuccio", "CO"], - ["Cusino", "CO"], - ["Carlazzo", "CO"], - ["Garzeno", "CO"], - ["Acquaseria", "CO"], - ["Santa Maria", "CO"], - ["Claino Con Osteno", "CO"], - ["Cremia", "CO"], - ["Oria", "CO"], - ["Sala Comacina", "CO"], - ["Mezzegra", "CO"], - ["San Bartolomeo Val Cavargna", "CO"], - ["Azzano", "CO"], - ["Codogna", "CO"], - ["Val Rezzo", "CO"], - ["Trezzone", "CO"], - ["Gera Lario", "CO"], - ["Colonno", "CO"], - ["Sorico", "CO"], - ["Argegno", "CO"], - ["Moltrasio", "CO"], - ["Piano Porlezza", "CO"], - ["Valsolda", "CO"], - ["Cavargna", "CO"], - ["Santa Maria Rezzonico", "CO"], - ["San Pietro Sovera", "CO"], - ["Sant'Abbondio", "CO"], - ["Corrido", "CO"], - ["Pianello Del Lario", "CO"], - ["San Siro", "CO"], - ["Rezzonico", "CO"], - ["Consiglio Di Rumo", "CO"], - ["Grandola Ed Uniti", "CO"], - ], - "22011": [["Cadenabbia", "CO"], ["Griante", "CO"]], - "22012": [["Cernobbio", "CO"]], - "22013": [["Vercana", "CO"], ["Domaso", "CO"]], - "22014": [["Dongo", "CO"]], - "22015": [["Gravedona", "CO"]], - "22016": [["Lenno", "CO"], ["Tremezzina", "CO"]], - "22017": [["Menaggio", "CO"]], - "22018": [["Porlezza", "CO"], ["Cima", "CO"]], - "22019": [["Tremezzo", "CO"]], - "22020": [ - ["Nesso", "CO"], - ["San Fermo Della Battaglia", "CO"], - ["Pare'", "CO"], - ["Schignano", "CO"], - ["Cerano D'Intelvi", "CO"], - ["Camnago Faloppio", "CO"], - ["Veleso", "CO"], - ["Pognana Lario", "CO"], - ["Lemna", "CO"], - ["Ramponio Verna", "CO"], - ["Boscone", "CO"], - ["Pigra", "CO"], - ["Zelbio", "CO"], - ["Gaggino", "CO"], - ["Blevio", "CO"], - ["Pellio Intelvi", "CO"], - ["Faggeto Lario", "CO"], - ["Laino", "CO"], - ["Pellio", "CO"], - ["Dizzasco", "CO"], - ["Torno", "CO"], - ["Camnago", "CO"], - ["Faloppio", "CO"], - ["Occagno", "CO"], - ["Bizzarone", "CO"], - ["Ponna", "CO"], - ["Drezzo", "CO"], - ], - "22021": [["Bellagio", "CO"], ["San Giovanni Di Bellagio", "CO"]], - "22022": [["Casasco D'Intelvi", "CO"]], - "22023": [["Castiglione D'Intelvi", "CO"]], - "22024": [["Lanzo D'Intelvi", "CO"], ["Scaria", "CO"]], - "22025": [["Lezzeno", "CO"]], - "22026": [["Maslianico", "CO"]], - "22027": [["Ronago", "CO"]], - "22028": [["Blessagno", "CO"], ["San Fedele Intelvi", "CO"]], - "22029": [["Uggiate Trevano", "CO"]], - "22030": [ - ["Lipomo", "CO"], - ["Castelmarte", "CO"], - ["Corneno", "CO"], - ["Orsenigo", "CO"], - ["Penzano", "CO"], - ["Lasnigo", "CO"], - ["Longone Al Segrino", "CO"], - ["Galliano", "CO"], - ["Montorfano", "CO"], - ["Rezzago", "CO"], - ["Civenna", "CO"], - ["Caglio", "CO"], - ["Magreglio", "CO"], - ["Caslino D'Erba", "CO"], - ["Barni", "CO"], - ["Eupilio", "CO"], - ["Pusiano", "CO"], - ["Sormano", "CO"], - ["Proserpio", "CO"], - ], - "22031": [["Albavilla", "CO"]], - "22032": [["Albese Con Cassano", "CO"]], - "22033": [["Asso", "CO"]], - "22034": [["Brunate", "CO"]], - "22035": [["Canzo", "CO"]], - "22036": [["Erba", "CO"], ["Arcellasco", "CO"]], - "22037": [["Ponte Lambro", "CO"]], - "22038": [["Tavernerio", "CO"], ["Solzago", "CO"]], - "22039": [["Valbrona", "CO"], ["Osigo", "CO"]], - "22040": [ - ["Brenna", "CO"], - ["Alzate Brianza", "CO"], - ["Lurago D'Erba", "CO"], - ["Alserio", "CO"], - ["Nobile", "CO"], - ["Fabbrica Durini", "CO"], - ["Anzano Del Parco", "CO"], - ["Monguzzo", "CO"], - ], - "22041": [["Colverde", "CO"], ["Gironico Al Piano", "CO"], ["Gironico", "CO"]], - "22042": [["Cavallasca", "CO"]], - "22043": [["Cagno", "CO"], ["Solbiate", "CO"]], - "22044": [["Inverigo", "CO"], ["Cremnago", "CO"], ["Romano' Brianza", "CO"]], - "22045": [["Lambrugo", "CO"]], - "22046": [["Merone", "CO"]], - "22060": [ - ["Cabiate", "CO"], - ["Figino Serenza", "CO"], - ["Cucciago", "CO"], - ["Campione D'Italia", "CO"], - ["Novedrate", "CO"], - ["Montesolaro", "CO"], - ["Arosio", "CO"], - ["Carimate", "CO"], - ["Carugo", "CO"], - ], - "22063": [ - ["Asnago Di Cantu'", "CO"], - ["Cantu' Asnago", "CO"], - ["Vighizzolo Di Cantu'", "CO"], - ["Cascina Amata", "CO"], - ["Cantu'", "CO"], - ["Mirabello Di Cantu'", "CO"], - ], - "22066": [["Mariano Comense", "CO"], ["Perticato", "CO"]], - "22069": [["Rovellasca", "CO"]], - "22070": [ - ["Luisago", "CO"], - ["Bregnano", "CO"], - ["Puginate", "CO"], - ["Lucino", "CO"], - ["Capiago Intimiano", "CO"], - ["Lurago Marinone", "CO"], - ["Guanzate", "CO"], - ["Portichetto", "CO"], - ["Casanova Lanza", "CO"], - ["Montano Lucino", "CO"], - ["Intimiano", "CO"], - ["Rodero", "CO"], - ["Capiago", "CO"], - ["Minoprio", "CO"], - ["San Giorgio", "CO"], - ["Casnate", "CO"], - ["Bulgarograsso", "CO"], - ["Appiano Gentile", "CO"], - ["Grandate", "CO"], - ["Beregazzo Con Figliaro", "CO"], - ["Vertemate Con Minoprio", "CO"], - ["Binago", "CO"], - ["Limido Comasco", "CO"], - ["Senna Comasco", "CO"], - ["Carbonate", "CO"], - ["Albiolo", "CO"], - ["San Michele", "CO"], - ["Cascina Restelli", "CO"], - ["Casnate Con Bernate", "CO"], - ["Beregazzo", "CO"], - ["Concagno", "CO"], - ["Montano", "CO"], - ["Cirimido", "CO"], - ["Valmorea", "CO"], - ["Cassina Rizzardi", "CO"], - ["Locate Varesino", "CO"], - ["Rovello Porro", "CO"], - ["Fenegro'", "CO"], - ["Castelnuovo Bozzente", "CO"], - ["Veniano", "CO"], - ["Figliaro", "CO"], - ["Oltrona Di San Mamette", "CO"], - ], - "22071": [["Bulgorello", "CO"], ["Caslino Al Piano", "CO"], ["Cadorago", "CO"]], - "22072": [["Cermenate", "CO"]], - "22073": [["Andrate", "CO"], ["Fino Mornasco", "CO"], ["Molinetto", "CO"]], - "22074": [["Lomazzo", "CO"], ["Manera", "CO"]], - "22075": [["Lurate Caccivio", "CO"]], - "22076": [["Mozzate", "CO"]], - "22077": [["Olgiate Comasco", "CO"]], - "22078": [["Turate", "CO"]], - "22079": [["Villa Guardia", "CO"]], - "22100": [ - ["Monte Olimpino", "CO"], - ["Civiglio", "CO"], - ["Breccia", "CO"], - ["Lora", "CO"], - ["Rebbio", "CO"], - ["Camerlata", "CO"], - ["Tavernola", "CO"], - ["Camnago Volta", "CO"], - ["Albate", "CO"], - ["Como", "CO"], - ["Ponte Chiasso", "CO"], - ], - "26010": [ - ["Ripalta Nuova", "CR"], - ["Casale Cremasco", "CR"], - ["Capralba", "CR"], - ["Vaiano Cremasco", "CR"], - ["Olmeneta", "CR"], - ["Robecco D'Oglio", "CR"], - ["Ripalta Guerina", "CR"], - ["Chieve", "CR"], - ["Bagnolo Cremasco", "CR"], - ["Montodine", "CR"], - ["Bolzone", "CR"], - ["Salvirola", "CR"], - ["Zappello", "CR"], - ["Cremosano", "CR"], - ["Credera", "CR"], - ["Fiesco", "CR"], - ["Dovera", "CR"], - ["Moscazzano", "CR"], - ["Sergnano", "CR"], - ["Camisano", "CR"], - ["Casaletto Vaprio", "CR"], - ["Pozzaglio Ed Uniti", "CR"], - ["Credera Rubbiano", "CR"], - ["Casale Cremasco Vidolasco", "CR"], - ["Ripalta Cremasca", "CR"], - ["Casaletto Ceredano", "CR"], - ["Campagnola Cremasca", "CR"], - ["Casalsigone", "CR"], - ["Ricengo", "CR"], - ["Rovereto", "CR"], - ["Castelvisconti", "CR"], - ["Pianengo", "CR"], - ["Offanengo", "CR"], - ["Rubbiano", "CR"], - ["Pozzaglio", "CR"], - ["Ripalta Arpina", "CR"], - ["Corte De' Frati", "CR"], - ["Capergnanica", "CR"], - ["Izano", "CR"], - ["Monte Cremasco", "CR"], - ["Azzanello", "CR"], - ["Castel Gabbiano", "CR"], - ], - "26011": [["Casalbuttano", "CR"], ["Casalbuttano Ed Uniti", "CR"]], - "26012": [["Castelleone", "CR"]], - "26013": [ - ["Crema", "CR"], - ["Santo Stefano In Vairano", "CR"], - ["Ombriano", "CR"], - ["Santa Maria Della Croce", "CR"], - ["Sabbioni", "CR"], - ], - "26014": [["Casaletto Di Sopra", "CR"], ["Romanengo", "CR"]], - "26015": [["Soresina", "CR"]], - "26016": [["Spino D'Adda", "CR"]], - "26017": [["Torlino Vimercati", "CR"], ["Quintano", "CR"], ["Trescore Cremasco", "CR"], ["Pieranica", "CR"]], - "26018": [["Trigolo", "CR"]], - "26019": [["Vailate", "CR"]], - "26020": [ - ["Cappella Cantone", "CR"], - ["Corte De' Cortesi Con Cignone", "CR"], - ["Madignano", "CR"], - ["Crotta D'Adda", "CR"], - ["Gombito", "CR"], - ["Cignone", "CR"], - ["Corte De' Cortesi", "CR"], - ["Formigara", "CR"], - ["Spinadesco", "CR"], - ["Bordolano", "CR"], - ["Casalmorano", "CR"], - ["Fengo", "CR"], - ["Agnadello", "CR"], - ["Ticengo", "CR"], - ["Acquanegra Cremonese", "CR"], - ["Cascine Gandini", "CR"], - ["Scannabue", "CR"], - ["Genivolta", "CR"], - ["Palazzo Pignano", "CR"], - ["Cumignano Sul Naviglio", "CR"], - ["San Bassano", "CR"], - ], - "26021": [["Barzaniga", "CR"], ["Annicco", "CR"]], - "26022": [["San Martino In Beliseto", "CR"], ["Castelverde", "CR"], ["Costa Sant'Abramo", "CR"]], - "26023": [["Farfengo", "CR"], ["Grumello Cremonese Ed Uniti", "CR"], ["Grumello Cremonese", "CR"]], - "26024": [["Paderno Ponchielli", "CR"]], - "26025": [["Pandino", "CR"], ["Nosadello", "CR"]], - "26026": [["Pizzighettone", "CR"], ["Roggione", "CR"], ["Regona", "CR"]], - "26027": [["Rivolta D'Adda", "CR"]], - "26028": [["Casanova Del Morbasco", "CR"], ["Sesto Cremonese", "CR"], ["Sesto Ed Uniti", "CR"]], - "26029": [["Gallignano", "CR"], ["Soncino", "CR"]], - "26030": [ - ["Spineda", "CR"], - ["Gabbioneta", "CR"], - ["Ca' De' Mari", "CR"], - ["Pessina Cremonese", "CR"], - ["Volongo", "CR"], - ["Malagnino", "CR"], - ["Cicognolo", "CR"], - ["Solarolo Rainerio", "CR"], - ["Calvatone", "CR"], - ["Voltido", "CR"], - ["Tornata", "CR"], - ["Gabbioneta Binanuova", "CR"], - ["Binanuova", "CR"], - ["Gadesco Pieve Delmona", "CR"], - ["Ardole San Marino", "CR"], - ["Casteldidone", "CR"], - ["Cappella De' Picenardi", "CR"], - ], - "26031": [["Isola Dovarese", "CR"]], - "26032": [["Ostiano", "CR"]], - "26033": [["Pieve Terzagni", "CR"], ["Pescarolo Ed Uniti", "CR"], ["Pescarolo", "CR"]], - "26034": [["Piadena", "CR"], ["Drizzona", "CR"]], - "26035": [["Pieve San Giacomo", "CR"]], - "26036": [["Rivarolo Del Re Ed Uniti", "CR"], ["Rivarolo Del Re", "CR"]], - "26037": [["San Giovanni In Croce", "CR"]], - "26038": [["Torre De' Picenardi", "CR"], ["Ca' D'Andrea", "CR"], ["San Lorenzo De' Picenardi", "CR"]], - "26039": [["Ca' De' Stefani", "CR"], ["Vescovato", "CR"]], - "26040": [ - ["Gussola", "CR"], - ["Derovere", "CR"], - ["Gerre De' Caprioli", "CR"], - ["Bonemerse", "CR"], - ["Cella Dati", "CR"], - ["Pieve D'Olmi", "CR"], - ["San Martino Del Lago", "CR"], - ["Castelponzone", "CR"], - ["Scandolara Ravara", "CR"], - ["Torricella Del Pizzo", "CR"], - ["Martignana Di Po", "CR"], - ], - "26041": [ - ["Casalbellotto", "CR"], - ["Casalmaggiore", "CR"], - ["Vicomoscano", "CR"], - ["Roncadello", "CR"], - ["Quattrocase", "CR"], - ["Vicoboneghisio", "CR"], - ["Agoiolo", "CR"], - ["Vicobellignano", "CR"], - ], - "26042": [["Cingia De' Botti", "CR"]], - "26043": [["Persichello", "CR"], ["Dosimo", "CR"], ["Persico Dosimo", "CR"]], - "26044": [["Grontardo", "CR"], ["Levata", "CR"]], - "26045": [["Motta Baluffi", "CR"]], - "26046": [["San Daniele Po", "CR"]], - "26047": [["Scandolara Ripa D'Oglio", "CR"]], - "26048": [["San Salvatore", "CR"], ["Sospiro", "CR"]], - "26049": [["Stagno Lombardo", "CR"]], - "26100": [ - ["Cava Tigozzi", "CR"], - ["Boschetto", "CR"], - ["San Felice", "CR"], - ["Migliaro", "CR"], - ["Maristella", "CR"], - ["Cremona", "CR"], - ], - "23801": [["Calolziocorte", "LC"], ["Rossino", "LC"]], - "23802": [["Carenno", "LC"]], - "23804": [["Monte Marenzo", "LC"]], - "23805": [["Erve", "LC"]], - "23806": [["Torre De' Busi", "LC"], ["San Gottardo", "LC"], ["Valcava", "LC"], ["Favirano", "LC"]], - "23807": [["Merate", "LC"], ["Cassina Fra Martino", "LC"]], - "23808": [["Vercurago", "LC"]], - "23811": [["Ballabio", "LC"], ["Morterone", "LC"]], - "23813": [["Cortenova", "LC"], ["Bindo", "LC"]], - "23814": [["Cremeno", "LC"], ["Maggio", "LC"]], - "23815": [["Introbio", "LC"]], - "23816": [["Barzio", "LC"]], - "23817": [["Moggio", "LC"], ["Cassina Valsassina", "LC"]], - "23818": [["Pasturo", "LC"]], - "23819": [["Primaluna", "LC"], ["Cortabbio", "LC"]], - "23821": [["Crebbio", "LC"], ["Abbadia Lariana", "LC"]], - "23822": [["Bellano", "LC"], ["Vestreno", "LC"]], - "23823": [["Colico Piano", "LC"], ["Colico", "LC"]], - "23824": [["Dervio", "LC"], ["Dorio", "LC"]], - "23825": [["Esino Lario", "LC"]], - "23826": [["Mandello Del Lario", "LC"]], - "23827": [["Lierna", "LC"]], - "23828": [["Perledo", "LC"]], - "23829": [["Fiumelatte", "LC"], ["Varenna", "LC"]], - "23831": [["Casargo", "LC"]], - "23832": [["Margno", "LC"], ["Crandola Valsassina", "LC"]], - "23833": [["Pagnona", "LC"]], - "23834": [["Premana", "LC"]], - "23835": [["Sueglio", "LC"], ["Introzzo", "LC"]], - "23836": [["Tremenico", "LC"]], - "23837": [["Taceno", "LC"], ["Parlasco", "LC"]], - "23838": [["Vendrogno", "LC"]], - "23841": [["Annone Di Brianza", "LC"]], - "23842": [["Bosisio Parini", "LC"]], - "23843": [["Dolzago", "LC"]], - "23844": [["Sirone", "LC"]], - "23845": [["Costa Masnaga", "LC"], ["Camisasca", "LC"]], - "23846": [["Brongio", "LC"], ["Garbagnate Monastero", "LC"]], - "23847": [["Luzzana", "LC"], ["Molteno", "LC"]], - "23848": [["Oggiono", "LC"], ["Ello", "LC"]], - "23849": [["Rogeno", "LC"], ["Casletto", "LC"]], - "23851": [["Galbiate", "LC"], ["Vergano Villa", "LC"], ["Sala Al Barro", "LC"]], - "23852": [["Garlate", "LC"]], - "23854": [["Olginate", "LC"]], - "23855": [["Pescate", "LC"]], - "23857": [["Valgreghentino", "LC"]], - "23861": [["Cesana Brianza", "LC"]], - "23862": [["Civate", "LC"]], - "23864": [["Malgrate", "LC"]], - "23865": [["Limonta", "LC"], ["Oliveto Lario", "LC"], ["Onno", "LC"]], - "23867": [["Suello", "LC"]], - "23868": [["Caserta", "LC"], ["Valmadrera", "LC"]], - "23870": [["Cernusco Lombardone", "LC"]], - "23871": [["Lomagna", "LC"]], - "23873": [["Missaglia", "LC"], ["Maresso", "LC"]], - "23874": [["Montevecchia", "LC"], ["Quattro Strade", "LC"]], - "23875": [["Osnago", "LC"]], - "23876": [["Monticello Brianza", "LC"]], - "23877": [["Paderno D'Adda", "LC"]], - "23878": [["Verderio Superiore", "LC"]], - "23879": [["Verderio Inferiore", "LC"], ["Verderio", "LC"]], - "23880": [ - ["Campofiorenzo", "LC"], - ["Casatenovo", "LC"], - ["Galgiana", "LC"], - ["Rimoldo", "LC"], - ["Rogoredo", "LC"], - ["Valaperta", "LC"], - ["California", "LC"], - ], - "23881": [["Airuno", "LC"]], - "23883": [["Beverate", "LC"], ["Brivio", "LC"]], - "23884": [["Caraverio", "LC"], ["Cologna", "LC"], ["Castello Di Brianza", "LC"]], - "23885": [["Calco", "LC"], ["Arlate", "LC"]], - "23886": [["Colle Brianza", "LC"], ["Nava", "LC"]], - "23887": [["Monticello", "LC"], ["Canova", "LC"], ["Olgiate Molgora", "LC"]], - "23888": [["La Valletta Brianza", "LC"], ["Rovagnate", "LC"], ["Perego", "LC"]], - "23889": [["Santa Maria Hoe'", "LC"]], - "23890": [["Barzago", "LC"]], - "23891": [["Barzano'", "LC"]], - "23892": [["Bulciago", "LC"]], - "23893": [["Cassago Brianza", "LC"]], - "23894": [["Cremella", "LC"]], - "23895": [["Cibrone", "LC"], ["Nibionno", "LC"], ["Tabiago", "LC"]], - "23896": [["Sirtori", "LC"], ["Bevera Di Sirtori", "LC"]], - "23897": [["Vigano'", "LC"]], - "23898": [["Imbersago", "LC"]], - "23899": [["Robbiate", "LC"]], - "23900": [["Lecco", "LC"]], - "26811": [["Boffalora D'Adda", "LO"]], - "26812": [["Borghetto Lodigiano", "LO"], ["Casoni", "LO"]], - "26813": [["Graffignana", "LO"]], - "26814": [["Livraga", "LO"]], - "26815": [["Motta Vigana", "LO"], ["Massalengo", "LO"]], - "26816": [["Ossago Lodigiano", "LO"]], - "26817": [["San Martino In Strada", "LO"]], - "26818": [["Villanova Del Sillaro", "LO"], ["Bargano", "LO"]], - "26821": [["Bertonico", "LO"]], - "26822": [["Brembio", "LO"]], - "26823": [["Castiglione D'Adda", "LO"], ["Camairago", "LO"]], - "26824": [["Cavenago D'Adda", "LO"]], - "26825": [["Basiasco", "LO"], ["Mairago", "LO"]], - "26826": [["Secugnago", "LO"]], - "26827": [["Terranova Dei Passerini", "LO"]], - "26828": [["Melegnanello", "LO"], ["Turano Lodigiano", "LO"]], - "26831": [["Cologno", "LO"], ["Casalmaiocco", "LO"]], - "26832": [["Cervignano D'Adda", "LO"], ["Galgagnano", "LO"]], - "26833": [["Comazzo", "LO"], ["Merlino", "LO"]], - "26834": [["Cadilana", "LO"], ["Corte Palasio", "LO"], ["Abbadia Cerreto", "LO"], ["Terraverde", "LO"]], - "26835": [["Crespiatica", "LO"]], - "26836": [["Montanaso Lombardo", "LO"]], - "26837": [["Mulazzano", "LO"], ["Cassino D'Alberi", "LO"], ["Quartiano", "LO"]], - "26838": [["Tavazzano Con Villavesco", "LO"], ["Villavesco", "LO"], ["Tavazzano", "LO"]], - "26839": [["Zelo Buon Persico", "LO"]], - "26841": [["Casalpusterlengo", "LO"], ["Zorlesco", "LO"]], - "26842": [["Cornovecchio", "LO"], ["Caselle Landi", "LO"]], - "26843": [["Maccastorna", "LO"], ["Castelnuovo Bocca D'Adda", "LO"], ["Meleti", "LO"]], - "26844": [["Cavacurta", "LO"]], - "26845": [["Codogno", "LO"]], - "26846": [["Corno Giovine", "LO"]], - "26847": [["Maleo", "LO"]], - "26848": [["San Fiorano", "LO"]], - "26849": [["Santo Stefano Lodigiano", "LO"]], - "26851": [["Borgo San Giovanni", "LO"]], - "26852": [["Casaletto Lodigiano", "LO"], ["Mairano", "LO"]], - "26853": [["Caselle Lurani", "LO"]], - "26854": [["Cornegliano Laudense", "LO"], ["Muzza Sant'Angelo", "LO"], ["Pieve Fissiraga", "LO"]], - "26855": [["Lodi Vecchio", "LO"]], - "26856": [["Senna Lodigiana", "LO"], ["Mirabello", "LO"]], - "26857": [["Salerano Sul Lambro", "LO"]], - "26858": [["Sordio", "LO"]], - "26859": [["Valera Fratta", "LO"]], - "26861": [["Fombio", "LO"], ["Retegno", "LO"]], - "26862": [["Guardamiglio", "LO"]], - "26863": [["Orio Litta", "LO"]], - "26864": [["Ospedaletto Lodigiano", "LO"]], - "26865": [["San Rocco Al Porto", "LO"]], - "26866": [["Sant'Angelo Lodigiano", "LO"], ["Marudo", "LO"], ["Castiraga Vidardo", "LO"], ["Vidardo", "LO"]], - "26867": [["Somaglia", "LO"], ["San Martino Pizzolano", "LO"]], - "26900": [["San Grato", "LO"], ["Lodi", "LO"]], - "20811": [["Binzago", "MB"], ["Villaggio Snia", "MB"], ["Cassina Savina", "MB"], ["Cesano Maderno", "MB"]], - "20812": [["Villaggio Dei Giovi", "MB"], ["Villaggio Del Sole", "MB"], ["Mombello", "MB"], ["Limbiate", "MB"]], - "20813": [["Masciago", "MB"], ["Bovisio-Masciago", "MB"], ["Bovisio", "MB"]], - "20814": [["Valera", "MB"], ["Varedo", "MB"]], - "20815": [["Cogliate", "MB"]], - "20816": [["Ceriano Laghetto", "MB"], ["Dal Pozzo", "MB"]], - "20821": [["Meda", "MB"]], - "20822": [["Baruccana", "MB"], ["Seveso", "MB"]], - "20823": [["Lentate Sul Seveso", "MB"], ["Cimnago", "MB"], ["Camnago", "MB"]], - "20824": [["Lazzate", "MB"]], - "20825": [["Barlassina", "MB"]], - "20826": [["Misinto", "MB"], ["Cascina Nuova", "MB"]], - "20831": [["Seregno", "MB"]], - "20832": [["Desio", "MB"]], - "20833": [["Robbiano Di Giussano", "MB"], ["Paina", "MB"], ["Giussano", "MB"]], - "20834": [["Nova Milanese", "MB"]], - "20835": [["Muggio'", "MB"], ["Taccona", "MB"]], - "20836": [["Capriano", "MB"], ["Briosco", "MB"], ["Fornaci", "MB"]], - "20837": [["Veduggio Con Colzano", "MB"]], - "20838": [["Renate", "MB"]], - "20841": [["Carate Brianza", "MB"], ["Agliate", "MB"]], - "20842": [["Villa Raverio", "MB"], ["Besana In Brianza", "MB"], ["Zoccorino", "MB"]], - "20843": [["Verano Brianza", "MB"]], - "20844": [["Tregasio", "MB"], ["Triuggio", "MB"], ["Canonica", "MB"]], - "20845": [["Sovico", "MB"]], - "20846": [["Macherio", "MB"]], - "20847": [["Albiate", "MB"]], - "20851": [["Santa Margherita", "MB"], ["Lissone", "MB"]], - "20852": [["Villasanta", "MB"]], - "20853": [["Biassono", "MB"]], - "20854": [["Vedano Al Lambro", "MB"]], - "20855": [["Peregallo", "MB"], ["Lesmo", "MB"]], - "20856": [["Correzzana", "MB"]], - "20857": [["Camparada", "MB"]], - "20861": [["Brugherio", "MB"], ["San Damiano", "MB"]], - "20862": [["Arcore", "MB"]], - "20863": [["Concorezzo", "MB"]], - "20864": [["Agrate Brianza", "MB"], ["Omate", "MB"]], - "20865": [["Velate", "MB"], ["Usmate Velate", "MB"]], - "20866": [["Carnate", "MB"]], - "20867": [["Caponago", "MB"]], - "20871": [["Velasca", "MB"], ["Vimercate", "MB"], ["Oreno", "MB"]], - "20872": [["Porto D'Adda", "MB"], ["Colnago", "MB"], ["Cornate D'Adda", "MB"]], - "20873": [["Cavenago Di Brianza", "MB"]], - "20874": [["Busnago", "MB"]], - "20875": [["Burago Di Molgora", "MB"]], - "20876": [["Ornago", "MB"]], - "20877": [["Roncello", "MB"]], - "20881": [["Villanova", "MB"], ["Bernareggio", "MB"]], - "20882": [["Bellusco", "MB"]], - "20883": [["Mezzago", "MB"]], - "20884": [["Sulbiate", "MB"]], - "20885": [["Ronco Briantino", "MB"]], - "20886": [["Aicurzio", "MB"]], - "20900": [["San Fruttuoso", "MB"], ["Monza", "MB"]], - "20001": [["Inveruno", "MI"]], - "20002": [["Ossona", "MI"]], - "20003": [["Casorezzo", "MI"]], - "20004": [["Arluno", "MI"]], - "20005": [["Pogliano Milanese", "MI"]], - "20006": [["Pregnana Milanese", "MI"]], - "20007": [["Cornaredo", "MI"]], - "20008": [["Bareggio", "MI"]], - "20009": [["Vittuone", "MI"]], - "20010": [ - ["Mesero", "MI"], - ["Bernate Ticino", "MI"], - ["Rogorotto", "MI"], - ["Santo Stefano Ticino", "MI"], - ["Boffalora Sopra Ticino", "MI"], - ["Casate", "MI"], - ["Mantegazza", "MI"], - ["Marcallo Con Casone", "MI"], - ["Furato", "MI"], - ["Buscate", "MI"], - ["San Pietro All'Olmo", "MI"], - ["Casone", "MI"], - ], - "20011": [["Corbetta", "MI"], ["Battuello", "MI"], ["Cerello", "MI"]], - "20012": [["Cuggiono", "MI"]], - "20013": [["Ponte Nuovo", "MI"], ["Magenta", "MI"]], - "20014": [["Nerviano", "MI"], ["Sant'Ilario Milanese", "MI"]], - "20015": [["Parabiago", "MI"], ["Villastanza", "MI"]], - "20016": [["Pero", "MI"], ["Cerchiate", "MI"]], - "20017": [ - ["Lucernate", "MI"], - ["Mazzo Milanese", "MI"], - ["Terrazzano", "MI"], - ["Passirana", "MI"], - ["Rho", "MI"], - ], - "20018": [["Sedriano", "MI"]], - "20019": [["Vighignolo", "MI"], ["Settimo Milanese", "MI"]], - "20020": [ - ["Cascina Nuova Di Misinto", "MI"], - ["Bienate", "MI"], - ["Villaggio Brollo", "MI"], - ["Vanzaghello", "MI"], - ["Magnago", "MI"], - ["Arconate", "MI"], - ["Nosate", "MI"], - ["Barbaiana", "MI"], - ["Robecchetto Con Induno", "MI"], - ], - "20021": [["Baranzate", "MI"], ["Cassina Nuova", "MI"], ["Bollate", "MI"]], - "20022": [["Castano Primo", "MI"]], - "20023": [["Cantalupo", "MI"], ["Cerro Maggiore", "MI"]], - "20024": [["Villaggio Garbagnate", "MI"], ["Garbagnate Milanese", "MI"]], - "20025": [["Legnano", "MI"]], - "20026": [["Novate Milanese", "MI"]], - "20027": [["Rescalda", "MI"], ["Rescaldina", "MI"]], - "20028": [["San Vittore Olona", "MI"]], - "20029": [["Turbigo", "MI"]], - "20030": [["Senago", "MI"]], - "20031": [["Cesate", "MI"]], - "20032": [["Cormano", "MI"], ["Brusuglio", "MI"], ["Ospitaletto", "MI"]], - "20033": [["Solaro", "MI"]], - "20034": [["San Giorgio Su Legnano", "MI"]], - "20035": [["Villa Cortese", "MI"]], - "20036": [["Dairago", "MI"]], - "20037": [["Paderno Dugnano", "MI"], ["Palazzolo Milanese", "MI"]], - "20038": [["Busto Garolfo", "MI"]], - "20039": [["Canegrate", "MI"]], - "20040": [["Velate Milanese", "MI"], ["Torrazza Dei Mandelli", "MI"], ["Cambiago", "MI"]], - "20041": [["Bussero", "MI"]], - "20042": [["Pessano Con Bornago", "MI"]], - "20043": [["Vanzago", "MI"]], - "20044": [["Arese", "MI"]], - "20045": [["Lainate", "MI"]], - "20046": [["Cisliano", "MI"]], - "20047": [["Cusago", "MI"]], - "20048": [["Pantigliate", "MI"]], - "20049": [["Settala", "MI"]], - "20050": [["Liscate", "MI"]], - "20051": [["Cassina De' Pecchi", "MI"]], - "20052": [["Vignate", "MI"]], - "20053": [["Rodano", "MI"]], - "20054": [["Segrate", "MI"]], - "20055": [["Vimodrone", "MI"]], - "20056": [["Concesa", "MI"], ["Trezzo Sull'Adda", "MI"], ["Grezzago", "MI"]], - "20057": [["Assago", "MI"]], - "20058": [["Zibido San Giacomo", "MI"]], - "20059": [["Casarile", "MI"]], - "20060": [ - ["Trecella", "MI"], - ["Triginto", "MI"], - ["Trezzano Rosa", "MI"], - ["Bellinzago Lombardo", "MI"], - ["Villa Fornaci", "MI"], - ["Bustighera", "MI"], - ["Gessate", "MI"], - ["Bettola Di Pozzo D'Adda", "MI"], - ["Truccazzano", "MI"], - ["Pozzo D'Adda", "MI"], - ["Pozzuolo Martesana", "MI"], - ["Masate", "MI"], - ["Mombretto", "MI"], - ["Sant'Agata Martesana", "MI"], - ["Basiano", "MI"], - ["Albignano", "MI"], - ["Bornago", "MI"], - ["Albignano D'Adda", "MI"], - ["Vigliano", "MI"], - ["Balbiano", "MI"], - ], - "20061": [["Carugate", "MI"]], - "20062": [["Cassano D'Adda", "MI"], ["Cascine San Pietro", "MI"], ["Groppello D'Adda", "MI"]], - "20063": [["Cernusco Sul Naviglio", "MI"]], - "20064": [["Gorgonzola", "MI"]], - "20065": [["Inzago", "MI"]], - "20066": [["Melzo", "MI"]], - "20067": [["Paullo", "MI"], ["Tribiano", "MI"]], - "20068": [ - ["Mezzate", "MI"], - ["Peschiera Borromeo", "MI"], - ["Bettola", "MI"], - ["Linate Paese", "MI"], - ["Zeloforomagno", "MI"], - ["Bellaria", "MI"], - ["San Bovio", "MI"], - ["Linate", "MI"], - ], - "20069": [["Vaprio D'Adda", "MI"]], - "20070": [ - ["Dresano", "MI"], - ["Cerro Al Lambro", "MI"], - ["San Zenone Al Lambro", "MI"], - ["Sarmazzano", "MI"], - ["Villa Bissone", "MI"], - ["Vizzolo Predabissi", "MI"], - ["Riozzo", "MI"], - ], - "20071": [["Zelo Surrigone", "MI"], ["Vermezzo", "MI"]], - "20072": [["Pieve Emanuele", "MI"]], - "20073": [["Opera", "MI"]], - "20074": [["Carpiano", "MI"]], - "20075": [["Colturano", "MI"]], - "20076": [["Mediglia", "MI"]], - "20077": [["Melegnano", "MI"]], - "20078": [["San Colombano Al Lambro", "MI"]], - "20079": [["Basiglio", "MI"]], - "20080": [ - ["Calvignasco", "MI"], - ["San Pietro Cusico", "MI"], - ["Bubbiano", "MI"], - ["Moirago", "MI"], - ["Besate", "MI"], - ["Moncucco", "MI"], - ["Ozzero", "MI"], - ["Pasturago", "MI"], - ["Albairate", "MI"], - ["Badile", "MI"], - ["Vernate", "MI"], - ], - "20081": [["Cassinetta Di Lugagnano", "MI"], ["Abbiategrasso", "MI"], ["Morimondo", "MI"]], - "20082": [["Noviglio", "MI"], ["Binasco", "MI"], ["Santa Corinna", "MI"]], - "20083": [["San Vito", "MI"], ["Gaggiano", "MI"], ["Vigano", "MI"]], - "20084": [["Lacchiarella", "MI"]], - "20085": [["Locate Di Triulzi", "MI"]], - "20086": [["Motta Visconti", "MI"]], - "20087": [["Castellazzo De' Barzi", "MI"], ["Robecco Sul Naviglio", "MI"], ["Casterno", "MI"]], - "20088": [["Rosate", "MI"], ["Gudo Visconti", "MI"]], - "20089": [["Rozzano", "MI"], ["Quinto De Stampi", "MI"]], - "20090": [ - ["Sporting Mirasole", "MI"], - ["Trezzano Sul Naviglio", "MI"], - ["Cesano Boscone", "MI"], - ["Noverasco", "MI"], - ["San Felice", "MI"], - ["Lucino", "MI"], - ["Caleppio", "MI"], - ["Romano Banco", "MI"], - ["Zingone", "MI"], - ["Zingone Di Trezzano Sul Naviglio", "MI"], - ["Premenugo", "MI"], - ["Novegro", "MI"], - ["Tregarezzo", "MI"], - ["Monzoro", "MI"], - ["Fizzonasco", "MI"], - ["Linate Aeroporto", "MI"], - ["Millepini", "MI"], - ["Buccinasco", "MI"], - ], - "20091": [["Bresso", "MI"]], - "20092": [["Cinisello Balsamo", "MI"]], - "20093": [["San Maurizio Al Lambro", "MI"], ["Cologno Monzese", "MI"]], - "20094": [["Corsico", "MI"]], - "20095": [["Milanino", "MI"], ["Cusano Milanino", "MI"]], - "20096": [["Pioltello", "MI"], ["Limito", "MI"], ["Seggiano", "MI"]], - "20097": [["San Donato Milanese", "MI"], ["Poasco", "MI"], ["Metanopoli", "MI"], ["Sorigherio", "MI"]], - "20098": [["Borgo Lombardo", "MI"], ["San Giuliano Milanese", "MI"], ["Sesto Ulteriano", "MI"]], - "20099": [["Sesto San Giovanni", "MI"]], - "20121": [["Milano", "MI"]], - "20122": [["Milano", "MI"]], - "20123": [["Milano", "MI"]], - "20124": [["Milano", "MI"]], - "20125": [["Milano", "MI"], ["Greco", "MI"], ["Gorla", "MI"], ["Precotto", "MI"]], - "20126": [["Milano", "MI"]], - "20127": [["Milano", "MI"], ["Crescenzago", "MI"]], - "20128": [["Milano", "MI"]], - "20129": [["Milano", "MI"]], - "20131": [["Milano", "MI"]], - "20132": [["Milano", "MI"]], - "20133": [["Milano", "MI"]], - "20134": [["Lambrate", "MI"], ["Milano", "MI"]], - "20135": [["Milano", "MI"]], - "20136": [["Milano", "MI"]], - "20137": [["Milano", "MI"]], - "20138": [["Milano", "MI"], ["Rogoredo", "MI"]], - "20139": [["Milano", "MI"], ["Chiaravalle Milanese", "MI"]], - "20141": [["Milano", "MI"]], - "20142": [["Milano", "MI"], ["Gratosoglio", "MI"]], - "20143": [["Barona", "MI"], ["Milano", "MI"]], - "20144": [["Milano", "MI"]], - "20145": [["Milano", "MI"]], - "20146": [["Milano", "MI"]], - "20147": [["Milano", "MI"]], - "20148": [["Milano", "MI"]], - "20149": [["Milano", "MI"]], - "20151": [["Milano", "MI"], ["Musocco", "MI"]], - "20152": [["Baggio", "MI"], ["Milano", "MI"]], - "20153": [["Milano", "MI"], ["Figino", "MI"], ["Trenno", "MI"]], - "20154": [["Milano", "MI"]], - "20155": [["Milano", "MI"]], - "20156": [["Milano", "MI"]], - "20157": [["Milano", "MI"], ["Vialba", "MI"], ["Quarto Oggiaro", "MI"]], - "20158": [["Milano", "MI"]], - "20159": [["Milano", "MI"]], - "20161": [["Milano", "MI"], ["Bruzzano", "MI"], ["Affori", "MI"]], - "20162": [["Niguarda", "MI"], ["Milano", "MI"]], - "46010": [ - ["San Michele In Bosco", "MN"], - ["San Martino Dall'Argine", "MN"], - ["Redondesco", "MN"], - ["Belforte", "MN"], - ["Grazie", "MN"], - ["Curtatone", "MN"], - ["Villaggio Eremo", "MN"], - ["Cesole", "MN"], - ["Gazzuolo", "MN"], - ["Campitello", "MN"], - ["Montanara", "MN"], - ["Commessaggio", "MN"], - ["Buscoldo", "MN"], - ["San Silvestro", "MN"], - ["Casatico", "MN"], - ["Canicossa", "MN"], - ["Gabbiana", "MN"], - ["Ospitaletto", "MN"], - ["Levata", "MN"], - ["Marcaria", "MN"], - ["Mariana Mantovana", "MN"], - ], - "46011": [["Acquanegra Sul Chiese", "MN"], ["Mosio", "MN"]], - "46012": [["Bozzolo", "MN"]], - "46013": [["Canneto Sull'Oglio", "MN"]], - "46014": [["Sarginesco", "MN"], ["Ospitaletto Mantovano", "MN"], ["Castellucchio", "MN"]], - "46017": [["Cividale Mantovano", "MN"], ["Rivarolo Mantovano", "MN"]], - "46018": [["Breda Cisoni", "MN"], ["Ponteterra", "MN"], ["Villa Pasquali", "MN"], ["Sabbioneta", "MN"]], - "46019": [ - ["Cogozzo", "MN"], - ["Cicognara", "MN"], - ["San Matteo Delle Chiaviche", "MN"], - ["Buzzoletto", "MN"], - ["Viadana", "MN"], - ["Cizzolo", "MN"], - ["Bellaguarda", "MN"], - ], - "46020": [ - ["Polesine", "MN"], - ["San Giacomo Delle Segnate", "MN"], - ["San Giovanni Del Dosso", "MN"], - ["Magnacavallo", "MN"], - ["Motteggiana", "MN"], - ["Pieve Di Coriano", "MN"], - ["Villa Poma", "MN"], - ["Villa Saviola", "MN"], - ["Quingentole", "MN"], - ["Schivenoglia", "MN"], - ["Pegognaga", "MN"], - ], - "46021": [["Borgofranco Sul Po", "MN"], ["Carbonara Di Po", "MN"]], - "46022": [["Felonica", "MN"]], - "46023": [["Bondeno Di Gonzaga", "MN"], ["Palidano", "MN"], ["Gonzaga", "MN"]], - "46024": [["Bondanello", "MN"], ["Moglia", "MN"]], - "46025": [["Poggio Rusco", "MN"]], - "46026": [["Quistello", "MN"], ["Nuvolato", "MN"]], - "46027": [["Portiolo", "MN"], ["San Benedetto Po", "MN"], ["Mirasole", "MN"], ["San Siro", "MN"]], - "46028": [ - ["Santa Croce", "MN"], - ["Sermide", "MN"], - ["Caposotto", "MN"], - ["Moglia Di Sermide", "MN"], - ["Malcantone", "MN"], - ], - "46029": [ - ["Sailetto", "MN"], - ["Tabellano", "MN"], - ["Riva", "MN"], - ["Brusatasso", "MN"], - ["Suzzara", "MN"], - ["San Prospero", "MN"], - ], - "46030": [ - ["Gazzo", "MN"], - ["Dosolo", "MN"], - ["Correggioverde", "MN"], - ["Mottella", "MN"], - ["Stradella", "MN"], - ["Tripoli", "MN"], - ["Sacchetta", "MN"], - ["Villanova De Bellis", "MN"], - ["Pomponesco", "MN"], - ["Sustinente", "MN"], - ["Villastrada", "MN"], - ["Serravalle A Po", "MN"], - ["Ca' Vecchia", "MN"], - ["Libiola", "MN"], - ], - "46031": [["San Nicolo' Po", "MN"], ["San Biagio", "MN"], ["Bagnolo San Vito", "MN"]], - "46032": [["Castelbelforte", "MN"]], - "46033": [["Castel D'Ario", "MN"]], - "46034": [ - ["Boccadiganda", "MN"], - ["San Cataldo", "MN"], - ["Borgoforte", "MN"], - ["Cerese", "MN"], - ["Virgilio", "MN"], - ["Romanore", "MN"], - ["Pietole", "MN"], - ["Borgo Virgilio", "MN"], - ["Cappelletta", "MN"], - ], - "46035": [["Ostiglia", "MN"], ["Correggioli", "MN"]], - "46036": [["Revere", "MN"]], - "46037": [ - ["Casale", "MN"], - ["Barbasso", "MN"], - ["Roncoferraro", "MN"], - ["Borgo Castelletto", "MN"], - ["Pontemerlano", "MN"], - ["Villa Garibaldi", "MN"], - ["Governolo", "MN"], - ], - "46039": [["Villimpenta", "MN"]], - "46040": [ - ["Fontanella Grazioli", "MN"], - ["Ponti Sul Mincio", "MN"], - ["San Fermo", "MN"], - ["Ceresara", "MN"], - ["Gazoldo Degli Ippoliti", "MN"], - ["Rivalta", "MN"], - ["Casalromano", "MN"], - ["Rivalta Sul Mincio", "MN"], - ["Rodigo", "MN"], - ["Monzambano", "MN"], - ["Guidizzolo", "MN"], - ["Cavriana", "MN"], - ["Solferino", "MN"], - ["Casalmoro", "MN"], - ["Piubega", "MN"], - ["Casaloldo", "MN"], - ], - "46041": [["Castelnuovo Asolano", "MN"], ["Asola", "MN"], ["Castelnuovo", "MN"], ["Barchi Di Asola", "MN"]], - "46042": [["Castel Goffredo", "MN"]], - "46043": [["Gozzolina", "MN"], ["Castiglione Delle Stiviere", "MN"]], - "46044": [["Goito", "MN"], ["Cerlongo", "MN"], ["Solarolo", "MN"]], - "46045": [["Pozzolo", "MN"], ["Marengo", "MN"], ["Marmirolo", "MN"]], - "46046": [["Medole", "MN"]], - "46047": [["Soave", "MN"], ["Porto Mantovano", "MN"], ["Sant'Antonio", "MN"], ["Soave Mantovano", "MN"]], - "46048": [ - ["Roverbella", "MN"], - ["Malavicina", "MN"], - ["Castiglione Mantovano", "MN"], - ["Canedole", "MN"], - ["Pellaloco", "MN"], - ], - "46049": [["Cereta", "MN"], ["Volta Mantovana", "MN"]], - "46051": [["Bigarello", "MN"], ["San Giorgio Di Mantova", "MN"]], - "46100": [ - ["Frassino Mantovano", "MN"], - ["Lunetta", "MN"], - ["Mantova", "MN"], - ["Borgovirgiliana", "MN"], - ["Formigosa", "MN"], - ], - "27010": [ - ["Gerenzago", "PV"], - ["Borgarello", "PV"], - ["San Genesio Ed Uniti", "PV"], - ["San Leonardo Di Linarolo", "PV"], - ["San Zenone Al Po", "PV"], - ["Giovenzano", "PV"], - ["Roncaro", "PV"], - ["Costa De' Nobili", "PV"], - ["Albuzzano", "PV"], - ["Camporinaldo", "PV"], - ["Motta San Damiano", "PV"], - ["Giussago", "PV"], - ["Zeccone", "PV"], - ["San Leonardo", "PV"], - ["Santa Cristina E Bissone", "PV"], - ["Inverno E Monteleone", "PV"], - ["Badia Pavese", "PV"], - ["Vellezzo Bellini", "PV"], - ["Torre D'Arese", "PV"], - ["Rognano", "PV"], - ["Bornasco", "PV"], - ["Torrevecchia Pia", "PV"], - ["Marzano", "PV"], - ["Copiano", "PV"], - ["Turago Bordone", "PV"], - ["Vistarino", "PV"], - ["Spessa", "PV"], - ["Vigonzone", "PV"], - ["Inverno", "PV"], - ["Bascape'", "PV"], - ["Cura Carpignano", "PV"], - ["Monticelli Pavese", "PV"], - ["Siziano", "PV"], - ["Ceranova", "PV"], - ["Linarolo", "PV"], - ["Magherno", "PV"], - ["Monteleone", "PV"], - ["Guinzano", "PV"], - ["Filighera", "PV"], - ["Valle Salimbene", "PV"], - ["Miradolo Terme", "PV"], - ], - "27011": [["Belgioioso", "PV"], ["Torre De' Negri", "PV"]], - "27012": [["Torriano", "PV"], ["Certosa Di Pavia", "PV"], ["Torre Del Mangano", "PV"]], - "27013": [["Lambrinia", "PV"], ["Chignolo Po", "PV"]], - "27014": [["Genzone", "PV"], ["Corteolona", "PV"]], - "27015": [["Landriano", "PV"]], - "27016": [["Lardirago", "PV"], ["Sant'Alessio Con Vialone", "PV"]], - "27017": [["Zerbo", "PV"], ["Pieve Porto Morone", "PV"]], - "27018": [["Vidigulfo", "PV"]], - "27019": [["Villanterio", "PV"]], - "27020": [ - ["Torre D'Isola", "PV"], - ["Semiana", "PV"], - ["Trivolzio", "PV"], - ["Zerbolo'", "PV"], - ["Marcignago", "PV"], - ["Massaua", "PV"], - ["Dorno", "PV"], - ["Alagna", "PV"], - ["San Giorgio Di Lomellina", "PV"], - ["Cergnago", "PV"], - ["Olevano Di Lomellina", "PV"], - ["Valle Lomellina", "PV"], - ["Carbonara Al Ticino", "PV"], - ["Travaco' Siccomario", "PV"], - ["Borgo San Siro", "PV"], - ["Gravellona Lomellina", "PV"], - ["Velezzo Lomellina", "PV"], - ["Casottole", "PV"], - ["Rotta", "PV"], - ["Tromello", "PV"], - ["Battuda", "PV"], - ["Albonese", "PV"], - ["Valeggio", "PV"], - ["Parona", "PV"], - ["Sartirana Lomellina", "PV"], - ["Breme", "PV"], - ["Nicorvo", "PV"], - ["Trovo", "PV"], - ["Scaldasole", "PV"], - ], - "27021": [["Bereguardo", "PV"]], - "27022": [["Casorate Primo", "PV"]], - "27023": [["Cassolnovo", "PV"]], - "27024": [["Cilavegna", "PV"]], - "27025": [["Gambolo'", "PV"]], - "27026": [["San Biagio", "PV"], ["Garlasco", "PV"], ["Madonna Delle Bozzole", "PV"]], - "27027": [["Gropello Cairoli", "PV"]], - "27028": [["Bivio Cava Manara", "PV"], ["San Martino Siccomario", "PV"]], - "27029": [["Vigevano", "PV"], ["Sforzesca", "PV"]], - "27030": [ - ["Balossa Bigli", "PV"], - ["Ottobiano", "PV"], - ["Frascarolo", "PV"], - ["Langosco", "PV"], - ["Castello D'Agogna", "PV"], - ["Zeme", "PV"], - ["Confienza", "PV"], - ["Zinasco", "PV"], - ["Rosasco", "PV"], - ["Torre Beretti E Castellaro", "PV"], - ["Castellaro De' Giorgi", "PV"], - ["Pieve Albignola", "PV"], - ["Ceretto Lomellina", "PV"], - ["Castelnovetto", "PV"], - ["Mezzana Bigli", "PV"], - ["Zinasco Nuovo", "PV"], - ["Gambarana", "PV"], - ["Suardi", "PV"], - ["Cozzo", "PV"], - ["Sairano", "PV"], - ["Sant'Angelo Lomellina", "PV"], - ["Zinasco Vecchio", "PV"], - ["Mezzana Rabattone", "PV"], - ["Villanova D'Ardenghi", "PV"], - ["Palestro", "PV"], - ], - "27031": [["Candia Lomellina", "PV"]], - "27032": [["Ferrera Erbognone", "PV"]], - "27033": [["Garbana", "PV"]], - "27034": [["Galliavola", "PV"], ["Lomello", "PV"]], - "27035": [["Villa Biscossi", "PV"], ["Mede", "PV"]], - "27036": [["Mortara", "PV"]], - "27037": [["Pieve Del Cairo", "PV"]], - "27038": [["Robbio", "PV"]], - "27039": [["Sannazzaro De' Burgondi", "PV"]], - "27040": [ - ["Mezzanino", "PV"], - ["Bosnasco", "PV"], - ["Casatisma", "PV"], - ["San Damiano Al Colle", "PV"], - ["Arena Po", "PV"], - ["Castelletto Di Branduzzo", "PV"], - ["Vallescuropasso", "PV"], - ["Rea", "PV"], - ["Castana", "PV"], - ["Borgoratto Mormorolo", "PV"], - ["Montu' Beccaria", "PV"], - ["Tornello", "PV"], - ["Pinarolo Po", "PV"], - ["Rovescala", "PV"], - ["Albaredo Arnaboldi", "PV"], - ["Castelletto Po", "PV"], - ["Montalto Pavese", "PV"], - ["Portalbera", "PV"], - ["Rocca De' Giorgi", "PV"], - ["Casenove", "PV"], - ["Mornico Losana", "PV"], - ["Torre Degli Alberi", "PV"], - ["Mornico", "PV"], - ["Montescano", "PV"], - ["Fortunago", "PV"], - ["Pometo", "PV"], - ["Borgo Priolo", "PV"], - ["Lirio", "PV"], - ["Verrua Po", "PV"], - ["Campospinoso", "PV"], - ["Busca", "PV"], - ["Pietra De' Giorgi", "PV"], - ["Calvignano", "PV"], - ["Cigognola", "PV"], - ], - "27041": [["Barbianello", "PV"], ["Casanova Lonati", "PV"]], - "27042": [["Robecco Pavese", "PV"], ["Bressana Bottarone", "PV"], ["Bressana", "PV"], ["Bottarone", "PV"]], - "27043": [["Broni", "PV"], ["San Cipriano Po", "PV"]], - "27044": [["Canneto Pavese", "PV"], ["Canneto", "PV"]], - "27045": [["Casteggio", "PV"]], - "27046": [["Santa Giuletta", "PV"]], - "27047": [ - ["Santa Maria Della Versa", "PV"], - ["Montecalvo Versiggia", "PV"], - ["Golferenzo", "PV"], - ["Volpara", "PV"], - ], - "27048": [["Sommo", "PV"]], - "27049": [["Zenevredo", "PV"], ["Stradella", "PV"]], - "27050": [ - ["Casei", "PV"], - ["Torrazza Coste", "PV"], - ["Val Di Nizza", "PV"], - ["Brallo Di Pregola", "PV"], - ["Pancarana", "PV"], - ["Casei Gerola", "PV"], - ["Corana", "PV"], - ["Cervesina", "PV"], - ["Santa Margherita Di Staffora", "PV"], - ["Collegio", "PV"], - ["Codevilla", "PV"], - ["Romagnese", "PV"], - ["Pizzale", "PV"], - ["Ghiaie", "PV"], - ["Silvano Pietra", "PV"], - ["Retorbido", "PV"], - ["Casanova Di Destra", "PV"], - ["Ponte Nizza", "PV"], - ["Cecima", "PV"], - ["Corvino San Quirico", "PV"], - ["Fumo", "PV"], - ["Oliva Gessi", "PV"], - ["Redavalle", "PV"], - ["Torricella Verzate", "PV"], - ["Menconico", "PV"], - ["Bagnaria", "PV"], - ["Bastida Pancarana", "PV"], - ], - "27051": [["Mezzana Corti", "PV"], ["Tre Re", "PV"], ["Cava Manara", "PV"]], - "27052": [["Montesegale", "PV"], ["Godiasco", "PV"], ["Rocca Susella", "PV"], ["Salice Terme", "PV"]], - "27053": [["Verretto", "PV"], ["Lungavilla", "PV"]], - "27054": [["Montebello Della Battaglia", "PV"]], - "27055": [["Rivanazzano", "PV"]], - "27056": [["Cornale E Bastida", "PV"], ["Bastida De' Dossi", "PV"], ["Cornale", "PV"]], - "27057": [["Pietragavina", "PV"], ["Varzi", "PV"]], - "27058": [["Oriolo", "PV"], ["Voghera", "PV"]], - "27059": [["Zavattarello", "PV"]], - "27061": [["Ruino", "PV"], ["Canevino", "PV"]], - "27100": [["Mirabello Di Pavia", "PV"], ["Ca' Della Terra", "PV"], ["Pavia", "PV"], ["Fossarmato", "PV"]], - "23010": [ - ["Cedrasco", "SO"], - ["Rogolo", "SO"], - ["Mello", "SO"], - ["Val Masino", "SO"], - ["Dazio", "SO"], - ["Fusine", "SO"], - ["Piantedo", "SO"], - ["Rasura", "SO"], - ["Civo", "SO"], - ["Cevo", "SO"], - ["San Martino", "SO"], - ["Albosaggia", "SO"], - ["San Martino Val Masino", "SO"], - ["Berbenno Di Valtellina", "SO"], - ["Cino", "SO"], - ["Campo Tartano", "SO"], - ["Cataeggio", "SO"], - ["Pedesina", "SO"], - ["Buglio In Monte", "SO"], - ["Pedemonte", "SO"], - ["Colorina", "SO"], - ["Gerola Alta", "SO"], - ["Albaredo Per San Marco", "SO"], - ["Tartano", "SO"], - ["Villapinta", "SO"], - ["Sirta", "SO"], - ["San Pietro Di Berbenno", "SO"], - ["Bema", "SO"], - ["Torchione", "SO"], - ["Sant'Antonio Morignone", "SO"], - ["Moia", "SO"], - ["Forcola", "SO"], - ["Caiolo", "SO"], - ["Postalesio", "SO"], - ], - "23011": [["Ardenno", "SO"]], - "23012": [["Castione Andevenno", "SO"]], - "23013": [["Regoledo", "SO"], ["Sacco", "SO"], ["Cosio Stazione", "SO"], ["Cosio Valtellino", "SO"]], - "23014": [["Andalo Valtellino", "SO"], ["Delebio", "SO"]], - "23015": [["Dubino", "SO"], ["Nuova Olonio", "SO"]], - "23016": [["Cercino", "SO"], ["Mantello", "SO"]], - "23017": [["Campovico", "SO"], ["Morbegno", "SO"]], - "23018": [["Talamona", "SO"]], - "23019": [["Traona", "SO"]], - "23020": [ - ["Caspoggio", "SO"], - ["Verceia", "SO"], - ["Gordona", "SO"], - ["Prasomaso", "SO"], - ["Boffetto", "SO"], - ["Montagna In Valtellina", "SO"], - ["Mese", "SO"], - ["Faedo Valtellino", "SO"], - ["Piuro", "SO"], - ["Borgonuovo Di Piuro", "SO"], - ["Menarola", "SO"], - ["Piateda", "SO"], - ["Tresivio", "SO"], - ["Lirone", "SO"], - ["Poggiridenti", "SO"], - ["Spriana", "SO"], - ["Lanzada", "SO"], - ["San Giacomo Filippo", "SO"], - ["Torre Di Santa Maria", "SO"], - ["San Cassiano", "SO"], - ["San Cassiano Valchiavenna", "SO"], - ["Santa Croce", "SO"], - ["Prosto", "SO"], - ["Prata Camportaccio", "SO"], - ["Santa Croce Di Piuro", "SO"], - ], - "23021": [["Campodolcino", "SO"], ["Fraciscio", "SO"]], - "23022": [["Bette", "SO"], ["Chiavenna", "SO"]], - "23023": [["Primolo", "SO"], ["Chiareggio", "SO"], ["Chiesa In Valmalenco", "SO"]], - "23024": [["Isola", "SO"], ["Pianazzo", "SO"], ["Madesimo", "SO"], ["Montespluga", "SO"]], - "23025": [["Novate Mezzola", "SO"], ["Campo", "SO"]], - "23026": [["Ponte In Valtellina", "SO"], ["Arigna", "SO"]], - "23027": [ - ["San Pietro Samolaco", "SO"], - ["Somaggia", "SO"], - ["Era", "SO"], - ["Era Samolaco", "SO"], - ["San Pietro", "SO"], - ["Samolaco", "SO"], - ], - "23029": [["Dogana Di Villa Chiavenna", "SO"], ["Dogana", "SO"], ["Villa Di Chiavenna", "SO"]], - "23030": [ - ["Castello Dell'Acqua", "SO"], - ["Cepina Valdisotto", "SO"], - ["Piatta", "SO"], - ["Livigno", "SO"], - ["San Nicolo' Di Valfurva", "SO"], - ["Trepalle", "SO"], - ["Valfurva", "SO"], - ["Tovo Di Sant'Agata", "SO"], - ["Stazzona", "SO"], - ["Villa Di Tirano", "SO"], - ["Mazzo Di Valtellina", "SO"], - ["Valdisotto", "SO"], - ["Santa Caterina", "SO"], - ["Sant'Antonio", "SO"], - ["Lovero", "SO"], - ["Castionetto", "SO"], - ["Santa Caterina Valfurva", "SO"], - ["Sernio", "SO"], - ["Bianzone", "SO"], - ["Cepina", "SO"], - ["Chiuro", "SO"], - ["Vervio", "SO"], - ], - "23031": [["Aprica", "SO"]], - "23032": [["Passo Stelvio", "SO"], ["Bormio", "SO"]], - "23033": [["Tiolo", "SO"], ["Ravoledo", "SO"], ["Grosio", "SO"]], - "23034": [["Grosotto", "SO"]], - "23035": [ - ["Villaggio Sondalo", "SO"], - ["Frontale", "SO"], - ["Pineta Di Sortenna", "SO"], - ["Pineta Di Sortenna Vallesana", "SO"], - ["Sondalo", "SO"], - ["Mondadizza", "SO"], - ["Abetina Vallesana", "SO"], - ["Le Prese", "SO"], - ["Pendosso", "SO"], - ], - "23036": [["Teglio", "SO"], ["San Giacomo", "SO"], ["San Giacomo Di Teglio", "SO"], ["Tresenda", "SO"]], - "23037": [["Madonna Di Tirano", "SO"], ["Tirano", "SO"]], - "23038": [ - ["Isolaccia", "SO"], - ["Semogo", "SO"], - ["Bagni Nuovi", "SO"], - ["Bagni Nuovi Di Bormio", "SO"], - ["Valdidentro", "SO"], - ], - "23100": [ - ["Ponchiera", "SO"], - ["Sant'Anna", "SO"], - ["Albosaggia", "SO"], - ["Mossini", "SO"], - ["Sondrio", "SO"], - ["Faedo", "SO"], - ["Triangia", "SO"], - ], - "21010": [ - ["San Macario", "VA"], - ["Arsago Seprio", "VA"], - ["Muceno", "VA"], - ["Calde'", "VA"], - ["Montegrino Valtravaglia", "VA"], - ["Nasca", "VA"], - ["Castelveccana", "VA"], - ["Domo", "VA"], - ["Germignaga", "VA"], - ["Castello", "VA"], - ["Porto Valtravaglia", "VA"], - ["Ligurno", "VA"], - ["Tronzano Lago Maggiore", "VA"], - ["Vizzola Ticino", "VA"], - ["Curiglia Con Monteviasco", "VA"], - ["Golasecca", "VA"], - ["Due Cossani", "VA"], - ["Ferno", "VA"], - ["Besnate", "VA"], - ["Dumenza", "VA"], - ["Veddasca", "VA"], - ["Brezzo Di Bedero", "VA"], - ["Agra", "VA"], - ["Cardano Al Campo", "VA"], - ["Pino Sulla Sponda Del Lago Maggiore", "VA"], - ], - "21011": [["Casorate Sempione", "VA"]], - "21012": [["Cassano Magnago", "VA"]], - "21013": [["Gallarate", "VA"], ["Crenna", "VA"], ["Cedrate", "VA"]], - "21014": [["Laveno Mombello", "VA"], ["Mombello", "VA"], ["Laveno", "VA"]], - "21015": [["Lonate Pozzolo", "VA"], ["Tornavento", "VA"], ["Sant'Antonino Ticino", "VA"]], - "21016": [["Voldomino", "VA"], ["Poppino", "VA"], ["Creva", "VA"], ["Luino", "VA"]], - "21017": [["Cascina Elisa", "VA"], ["Verghera", "VA"], ["Cascina Costa", "VA"], ["Samarate", "VA"]], - "21018": [["Sesto Calende", "VA"], ["Lisanza", "VA"]], - "21019": [ - ["Malpensa Aeroporto", "VA"], - ["Somma Lombardo", "VA"], - ["Coarezza", "VA"], - ["Maddalena", "VA"], - ["Case Nuove", "VA"], - ], - "21020": [ - ["Villadosia", "VA"], - ["Barasso", "VA"], - ["Montonate", "VA"], - ["Crosio Della Valle", "VA"], - ["Taino", "VA"], - ["Ternate", "VA"], - ["Bregano", "VA"], - ["Daverio", "VA"], - ["Inarzo", "VA"], - ["Bodio Lomnago", "VA"], - ["Bodio", "VA"], - ["Casale Litta", "VA"], - ["Mornago", "VA"], - ["Buguggiate", "VA"], - ["Cazzago Brabbia", "VA"], - ["Ranco", "VA"], - ["Varano Borghi", "VA"], - ["Galliate Lombardo", "VA"], - ["Comabbio", "VA"], - ["Mercallo", "VA"], - ["Brebbia", "VA"], - ["Crugnola", "VA"], - ["Monvalle", "VA"], - ["Malgesso", "VA"], - ["Luvinate", "VA"], - ["Lomnago", "VA"], - ["Bernate", "VA"], - ["Bardello", "VA"], - ["Brunello", "VA"], - ["Casciago", "VA"], - ], - "21021": [["Angera", "VA"]], - "21022": [["Azzate", "VA"]], - "21023": [["Besozzo", "VA"]], - "21024": [["Biandronno", "VA"]], - "21025": [["Comerio", "VA"]], - "21026": [["Oltrona Al Lago", "VA"], ["Gavirate", "VA"]], - "21027": [["Ispra", "VA"], ["Ispra Centro Euratom", "VA"], ["Barza", "VA"]], - "21028": [["Travedona Monate", "VA"]], - "21029": [["Cimbro", "VA"], ["Cuirone", "VA"], ["Corgeno", "VA"], ["Vergiate", "VA"]], - "21030": [ - ["Castello Cabiaglio", "VA"], - ["Brenta", "VA"], - ["Cugliate", "VA"], - ["Cugliate Fabiasco", "VA"], - ["Mesenzana", "VA"], - ["Brinzio", "VA"], - ["Brissago Valtravaglia", "VA"], - ["Masciago Primo", "VA"], - ["Cassano Valcuvia", "VA"], - ["Fabiasco", "VA"], - ["Marchirolo", "VA"], - ["Azzio", "VA"], - ["Orino", "VA"], - ["Marzio", "VA"], - ["Duno", "VA"], - ["Casalzuigno", "VA"], - ["Grantola", "VA"], - ["Cremenaga", "VA"], - ["Ferrera Di Varese", "VA"], - ["Cuveglio", "VA"], - ["Cuvio", "VA"], - ["Rancio Valcuvia", "VA"], - ], - "21031": [["Cadegliano Viconago", "VA"], ["Viconago", "VA"], ["Cadegliano", "VA"]], - "21032": [["Caravate", "VA"]], - "21033": [["Cittiglio", "VA"]], - "21034": [["Caldana", "VA"], ["Trevisago", "VA"], ["Cocquio Trevisago", "VA"], ["Cocquio", "VA"]], - "21035": [["Cunardo", "VA"]], - "21036": [["Gemonio", "VA"]], - "21037": [["Lavena Ponte Tresa", "VA"], ["Ponte Tresa", "VA"]], - "21038": [["Leggiuno", "VA"], ["Sangiano", "VA"]], - "21039": [["Bedero Valcuvia", "VA"], ["Valganna", "VA"], ["Ganna", "VA"], ["Ghirla", "VA"]], - "21040": [ - ["Caronno Varesino", "VA"], - ["Cascine Maggio", "VA"], - ["Venegono Superiore", "VA"], - ["Santo Stefano", "VA"], - ["Gornate Olona", "VA"], - ["Castronno", "VA"], - ["Oggiona", "VA"], - ["Morazzone", "VA"], - ["Cislago", "VA"], - ["Vedano Olona", "VA"], - ["Origgio", "VA"], - ["Jerago Con Orago", "VA"], - ["Oggiona Con Santo Stefano", "VA"], - ["Sumirago", "VA"], - ["Uboldo", "VA"], - ["Massina", "VA"], - ["Carnago", "VA"], - ["Lozza", "VA"], - ["Rovate", "VA"], - ["Venegono Inferiore", "VA"], - ["Gerenzano", "VA"], - ], - "21041": [["Albizzate", "VA"]], - "21042": [["Caronno Pertusella", "VA"]], - "21043": [["Gornate Superiore", "VA"], ["Castiglione Olona", "VA"]], - "21044": [["Cavaria Con Premezzo", "VA"]], - "21045": [["Schianno", "VA"], ["Gazzada", "VA"], ["Gazzada Schianno", "VA"]], - "21046": [["Malnate", "VA"], ["San Salvatore", "VA"]], - "21047": [["Saronno", "VA"]], - "21048": [["Solbiate Arno", "VA"], ["Monte", "VA"]], - "21049": [["Abbiate Guazzone", "VA"], ["Tradate", "VA"]], - "21050": [ - ["Marnate", "VA"], - ["Brusimpiano", "VA"], - ["Cuasso Al Monte", "VA"], - ["Lonate Ceppino", "VA"], - ["Besano", "VA"], - ["Bolladello", "VA"], - ["Porto Ceresio", "VA"], - ["Gorla Maggiore", "VA"], - ["Clivio", "VA"], - ["Cairate", "VA"], - ["Saltrio", "VA"], - ["Cuasso Al Piano", "VA"], - ["Gaggiolo", "VA"], - ["Bisuschio", "VA"], - ["Cavagnano", "VA"], - ["Castelseprio", "VA"], - ["Cantello", "VA"], - ], - "21051": [["Brenno Useria", "VA"], ["Arcisate", "VA"]], - "21052": [["Sacconago", "VA"], ["Borsano", "VA"], ["Busto Arsizio", "VA"]], - "21053": [["Castellanza", "VA"]], - "21054": [["Fagnano Olona", "VA"], ["Bergoro", "VA"]], - "21055": [["Gorla Minore", "VA"]], - "21056": [["Induno Olona", "VA"]], - "21057": [["Cascina Buon Gesu'", "VA"], ["Olgiate Olona", "VA"]], - "21058": [["Solbiate Olona", "VA"]], - "21059": [["Baraggia", "VA"], ["Viggiu'", "VA"]], - "21061": [["Maccagno Con Pino E Veddasca", "VA"], ["Maccagno", "VA"]], - "21062": [["Osmate", "VA"], ["Cadrezzate", "VA"]], - "21100": [ - ["Rasa", "VA"], - ["Rasa Di Velate", "VA"], - ["Cartabbia", "VA"], - ["San Fermo", "VA"], - ["Santa Maria Del Monte", "VA"], - ["Bizzozero", "VA"], - ["Sant'Ambrogio Olona", "VA"], - ["Calcinate Del Pesce", "VA"], - ["Varese", "VA"], - ["Capolago", "VA"], - ["Masnago", "VA"], - ["Casbeno", "VA"], - ], - "60010": [ - ["Ostra", "AN"], - ["Castelleone Di Suasa", "AN"], - ["Vaccarile", "AN"], - ["Barbara", "AN"], - ["Casine", "AN"], - ["Pianello Di Ostra", "AN"], - ["Ostra Vetere", "AN"], - ["Ponte Rio Di Monterado", "AN"], - ["Pianello", "AN"], - ], - "60011": [ - ["Palazzo D'Arcevia", "AN"], - ["Castiglioni D'Arcevia", "AN"], - ["Arcevia", "AN"], - ["Nidastore", "AN"], - ["Piticchio", "AN"], - ["Palazzo", "AN"], - ["Costa D'Arcevia", "AN"], - ["Avacelli", "AN"], - ["Castiglioni", "AN"], - ["Montefortino", "AN"], - ], - "60012": [ - ["Ponte Rio", "AN"], - ["Ripe", "AN"], - ["Monterado", "AN"], - ["Brugnetto", "AN"], - ["Trecastelli", "AN"], - ["Castel Colonna", "AN"], - ["Passo Di Ripe", "AN"], - ], - "60013": [["Corinaldo", "AN"]], - "60015": [["Castelferretti", "AN"], ["Falconara Alta", "AN"], ["Falconara Marittima", "AN"]], - "60018": [["Marina Di Montemarciano", "AN"], ["Lungomare", "AN"], ["Montemarciano", "AN"]], - "60019": [ - ["Sant'Angelo Di Senigallia", "AN"], - ["Marzocca Di Senigallia", "AN"], - ["Montignano", "AN"], - ["Marzocca", "AN"], - ["Sant'Angelo", "AN"], - ["Vallone", "AN"], - ["Roncitelli", "AN"], - ["Cesano Di Senigallia", "AN"], - ["Senigallia", "AN"], - ["Scapezzano", "AN"], - ], - "60020": [ - ["Sirolo", "AN"], - ["Agugliano", "AN"], - ["Offagna", "AN"], - ["Polverigi", "AN"], - ["Camerata Picena", "AN"], - ["Castel D'Emilio", "AN"], - ], - "60021": [["Camerano", "AN"], ["Aspio Terme", "AN"]], - "60022": [["Acquaviva Villa Musone", "AN"], ["San Rocchetto", "AN"], ["Castelfidardo", "AN"]], - "60024": [["Montoro", "AN"], ["Filottrano", "AN"]], - "60025": [["Villa Musone", "AN"], ["Loreto Stazione", "AN"], ["Loreto", "AN"]], - "60026": [["Numana", "AN"], ["Marcelli", "AN"], ["Numana Lido", "AN"]], - "60027": [ - ["Passatempo", "AN"], - ["Osimo Stazione", "AN"], - ["Casenuove", "AN"], - ["Padiglione", "AN"], - ["Campocavallo", "AN"], - ["Osimo", "AN"], - ["San Sabino", "AN"], - ["San Biagio", "AN"], - ], - "60030": [ - ["San Marcello", "AN"], - ["Collina Santa Maria Nuova", "AN"], - ["Mergo", "AN"], - ["Monsano", "AN"], - ["Pianello Vallesina", "AN"], - ["Angeli Di Rosora", "AN"], - ["Belvedere Ostrense", "AN"], - ["Rosora", "AN"], - ["Angeli", "AN"], - ["Poggio San Marcello", "AN"], - ["Castelbellino", "AN"], - ["Serra De' Conti", "AN"], - ["Monte Roberto", "AN"], - ["Morro D'Alba", "AN"], - ["Stazione", "AN"], - ["Osteria", "AN"], - ["Santa Maria Nuova", "AN"], - ["Angeli Di Mergo", "AN"], - ["Maiolati Spontini", "AN"], - ["Moie", "AN"], - ], - "60031": [["Castelplanio", "AN"], ["Castelplanio Stazione", "AN"], ["Macine", "AN"], ["Borgo Loreto", "AN"]], - "60033": [["Chiaravalle", "AN"], ["Grancetta", "AN"]], - "60034": [["Cupramontana", "AN"]], - "60035": [["Jesi", "AN"]], - "60036": [["Montecarotto", "AN"]], - "60037": [["Le Cozze", "AN"], ["Borghetto", "AN"], ["Monte San Vito", "AN"]], - "60038": [["San Paolo Di Jesi", "AN"]], - "60039": [["Staffolo", "AN"]], - "60040": [ - ["Trinquelli", "AN"], - ["Colleponi Di Genga", "AN"], - ["Colleponi", "AN"], - ["Genga Stazione", "AN"], - ["Genga", "AN"], - ], - "60041": [ - ["Cabernardi", "AN"], - ["Piano Di Frassineta", "AN"], - ["Monterosso Stazione", "AN"], - ["Sassoferrato", "AN"], - ["Monterosso", "AN"], - ["Perticano", "AN"], - ["Borgo Sassoferrato", "AN"], - ], - "60043": [["Cerreto D'Esi", "AN"]], - "60044": [ - ["Sant'Elia", "AN"], - ["Castelletta", "AN"], - ["Serradica", "AN"], - ["Melano", "AN"], - ["Borgo Tufico", "AN"], - ["Fabriano", "AN"], - ["Attiggio", "AN"], - ["Nebbiano", "AN"], - ["San Michele", "AN"], - ["Rocchetta Di Fabriano", "AN"], - ["Marischio", "AN"], - ["San Donato", "AN"], - ["Campodonico", "AN"], - ["Albacina", "AN"], - ["Argignano", "AN"], - ["Cancelli", "AN"], - ["Collamato", "AN"], - ["Melano Bastia", "AN"], - ], - "60048": [ - ["Castellaro", "AN"], - ["Serra San Quirico Stazione", "AN"], - ["Domo", "AN"], - ["Serra San Quirico", "AN"], - ["Sasso", "AN"], - ], - "60100": [["Ancona", "AN"]], - "60121": [["Ancona", "AN"]], - "60122": [["Ancona", "AN"]], - "60123": [["Ancona", "AN"]], - "60124": [["Ancona", "AN"]], - "60125": [["Ancona", "AN"]], - "60126": [["Ancona", "AN"]], - "60127": [["Ancona", "AN"], ["Pinocchio", "AN"]], - "60128": [["Ancona", "AN"]], - "60129": [["Ancona", "AN"], ["Varano", "AN"], ["Pietralacroce", "AN"], ["Poggio", "AN"]], - "60131": [["Ancona", "AN"], ["Montesicuro", "AN"]], - "63020": [["Piane Di Falerone", "AP"]], - "63031": [["Castel Di Lama Stazione", "AP"]], - "63061": [["Massignano", "AP"]], - "63062": [["Montefiore Dell'Aso", "AP"]], - "63063": [["Carassai", "AP"]], - "63064": [["Cupra Marittima", "AP"]], - "63065": [["San Savino", "AP"], ["Ripatransone", "AP"]], - "63066": [["Ischia", "AP"], ["Grottammare", "AP"]], - "63067": [["Cossignano", "AP"]], - "63068": [["Porchia", "AP"], ["Patrignone", "AP"], ["Montalto Delle Marche", "AP"]], - "63069": [["Montedinove", "AP"]], - "63071": [["Rotella", "AP"], ["Castel Di Croce", "AP"]], - "63072": [["Castignano", "AP"], ["Ripaberarda", "AP"]], - "63073": [["Offida", "AP"]], - "63074": [["San Benedetto Del Tronto", "AP"], ["Porto D'Ascoli", "AP"]], - "63075": [["Acquaviva Picena", "AP"]], - "63076": [["Centobuchi", "AP"], ["Monteprandone", "AP"]], - "63077": [["Monsampolo Del Tronto", "AP"], ["Stella Di Monsampolo", "AP"]], - "63078": [["Pagliare", "AP"], ["Spinetoli", "AP"]], - "63079": [["Villa San Giuseppe", "AP"], ["Colli Del Tronto", "AP"]], - "63081": [["Castorano", "AP"], ["San Silvestro", "AP"]], - "63082": [ - ["Villa Sant'Antonio", "AP"], - ["Castel Di Lama Piattoni", "AP"], - ["Piattoni", "AP"], - ["Castel Di Lama", "AP"], - ], - "63083": [["Appignano Del Tronto", "AP"]], - "63084": [["Folignano", "AP"], ["Piane Di Morro", "AP"], ["Villa Pigna", "AP"], ["Pigna Bassa", "AP"]], - "63085": [["Caselle", "AP"], ["Maltignano", "AP"]], - "63086": [["Force", "AP"]], - "63087": [["Comunanza", "AP"], ["Croce Di Casale", "AP"]], - "63088": [["Montemonaco", "AP"]], - "63091": [["Venarotta", "AP"]], - "63092": [["Palmiano", "AP"]], - "63093": [["Roccafluvione", "AP"], ["Marsia", "AP"], ["Agelli", "AP"]], - "63094": [["Montegallo", "AP"], ["Bisignano", "AP"]], - "63095": [ - ["Quintodecimo", "AP"], - ["San Martino Di Acquasanta", "AP"], - ["Paggese", "AP"], - ["Acquasanta Terme", "AP"], - ["Ponte D'Arli", "AP"], - ["Pozza Di Acquasanta", "AP"], - ["Tallacano", "AP"], - ], - "63096": [ - ["Pretare", "AP"], - ["Spelonga", "AP"], - ["Pescara Del Tronto", "AP"], - ["Trisungo", "AP"], - ["Arquata Del Tronto", "AP"], - ["Capodacqua", "AP"], - ], - "63100": [ - ["Castel Trosino", "AP"], - ["Piagge Di Ascoli Piceno", "AP"], - ["Piagge", "AP"], - ["Venagrande", "AP"], - ["Mozzano", "AP"], - ["Lisciano", "AP"], - ["Marino Del Tronto", "AP"], - ["Monticelli", "AP"], - ["Ascoli Piceno", "AP"], - ["Campolungo", "AP"], - ["Poggio Di Bretta", "AP"], - ["Lisciano Di Colloto", "AP"], - ], - "63811": [ - ["Castellano", "FM"], - ["Bivio Cascinare", "FM"], - ["Sant'Elpidio A Mare", "FM"], - ["Casette D'Ete", "FM"], - ["La Luce", "FM"], - ["Cretarola", "FM"], - ["Cascinare", "FM"], - ], - "63812": [["Montegranaro", "FM"]], - "63813": [["Monte Urano", "FM"]], - "63814": [["Torre San Patrizio", "FM"]], - "63815": [["Monte San Pietrangeli", "FM"]], - "63816": [["Francavilla D'Ete", "FM"]], - "63821": [["Porto Sant'Elpidio", "FM"]], - "63822": [["Porto San Giorgio", "FM"]], - "63823": [["Lapedona", "FM"]], - "63824": [["Marina Di Altidona", "FM"], ["Altidona", "FM"]], - "63825": [["Rubbianello", "FM"], ["Monterubbiano", "FM"]], - "63826": [["Moresco", "FM"]], - "63827": [["Pedaso", "FM"]], - "63828": [["Campofilone", "FM"]], - "63831": [["Contrada Tenna", "FM"], ["Rapagnano", "FM"]], - "63832": [["Magliano Di Tenna", "FM"]], - "63833": [["Montegiorgio", "FM"], ["Piane Di Montegiorgio", "FM"], ["Alteta", "FM"]], - "63834": [["Massa Fermana", "FM"]], - "63835": [["Montappone", "FM"]], - "63836": [["Monte Vidon Corrado", "FM"]], - "63837": [["Falerone", "FM"], ["Piane", "FM"]], - "63838": [["Belmonte Piceno", "FM"]], - "63839": [["Curetta", "FM"], ["Servigliano", "FM"]], - "63841": [["Monteleone Di Fermo", "FM"]], - "63842": [["Monsampietro Morico", "FM"], ["Sant'Elpidio Morico", "FM"]], - "63843": [["Montottone", "FM"]], - "63844": [["Grottazzolina", "FM"]], - "63845": [["Capparuccia", "FM"], ["Ponzano Di Fermo", "FM"], ["Torchiaro", "FM"]], - "63846": [["Monte Giberto", "FM"]], - "63847": [["Monte Vidon Combatte", "FM"]], - "63848": [["Moregnano", "FM"], ["Petritoli", "FM"]], - "63851": [["Ortezzano", "FM"]], - "63852": [["Monte Rinaldo", "FM"]], - "63853": [["Montelparo", "FM"]], - "63854": [["Santa Vittoria In Matenano", "FM"]], - "63855": [["Montefalcone Appennino", "FM"]], - "63856": [["San Martino Al Faggio", "FM"], ["Smerillo", "FM"]], - "63857": [["Amandola", "FM"]], - "63858": [["Santa Lucia In Consilvano", "FM"], ["Montefortino", "FM"]], - "63900": [ - ["Salvano", "FM"], - ["Torre Di Palme", "FM"], - ["Campiglione", "FM"], - ["Molini Di Tenna", "FM"], - ["Capodarco", "FM"], - ["Caldarette", "FM"], - ["Fermo", "FM"], - ["Marina Palmense", "FM"], - ["Lido Di Fermo", "FM"], - ["Ponte Ete", "FM"], - ["San Tommaso Tre Archi", "FM"], - ["San Marco", "FM"], - ], - "62010": [ - ["Trodica", "MC"], - ["Morrovalle", "MC"], - ["Montefano", "MC"], - ["Appignano", "MC"], - ["Sant'Egidio", "MC"], - ["Montecosaro Stazione", "MC"], - ["Passo Di Treia", "MC"], - ["Borgo Stazione", "MC"], - ["Montecassiano", "MC"], - ["Urbisaglia", "MC"], - ["Casette Verdini", "MC"], - ["Pollenza", "MC"], - ["Mogliano", "MC"], - ["Morrovalle Stazione", "MC"], - ["Sambucheto", "MC"], - ["Montecosaro", "MC"], - ["Pintura", "MC"], - ["Santa Maria In Selva", "MC"], - ["Stazione Morrovalle", "MC"], - ["Chiesanuova", "MC"], - ["Treia", "MC"], - ["Montelupone", "MC"], - ], - "62011": [ - ["San Vittore", "MC"], - ["Moscosi", "MC"], - ["Avenale", "MC"], - ["Troviggiano", "MC"], - ["Villa Moscosi", "MC"], - ["Villa Torre", "MC"], - ["Torre", "MC"], - ["Strada", "MC"], - ["Cingoli", "MC"], - ["Grottaccia", "MC"], - ], - "62012": [ - ["Fontespina", "MC"], - ["Civitanova Alta", "MC"], - ["Civitanova Marche Alta", "MC"], - ["Civitanova Marche", "MC"], - ["Santa Maria Apparente", "MC"], - ], - "62014": [ - ["Corridonia", "MC"], - ["Petriolo", "MC"], - ["Passo Del Bidollo", "MC"], - ["San Claudio", "MC"], - ["Colbuccaro", "MC"], - ], - "62015": [["Villa San Filippo", "MC"], ["Monte San Giusto", "MC"]], - "62017": [["Porto Recanati", "MC"]], - "62018": [["Potenza Picena", "MC"], ["Porto Potenza Picena", "MC"]], - "62019": [["Recanati", "MC"], ["Musone", "MC"]], - "62020": [ - ["Penna San Giovanni", "MC"], - ["Serrapetrona", "MC"], - ["Caldarola", "MC"], - ["Sant'Angelo In Pontano", "MC"], - ["Cessapalombo", "MC"], - ["Monte San Martino", "MC"], - ["Gualdo", "MC"], - ["Belforte Del Chienti", "MC"], - ["Loro Piceno", "MC"], - ["Camporotondo Di Fiastrone", "MC"], - ["Colmurano", "MC"], - ["Valcimarra", "MC"], - ["Ripe San Ginesio", "MC"], - ], - "62021": [["Frontale", "MC"], ["Poggio San Vicino", "MC"], ["Apiro", "MC"]], - "62022": [["Gagliole", "MC"], ["Castelraimondo", "MC"], ["Crispiero", "MC"]], - "62024": [["Colferraio", "MC"], ["Esanatoglia", "MC"], ["Matelica", "MC"]], - "62025": [ - ["Seppio", "MC"], - ["Massa", "MC"], - ["Sefro", "MC"], - ["Fiuminata", "MC"], - ["Fonte Di Brescia", "MC"], - ["Pioraco", "MC"], - ], - "62026": [["San Ginesio", "MC"], ["Passo San Ginesio", "MC"], ["Pian Di Pieca", "MC"]], - "62027": [["Castel San Pietro", "MC"], ["Cesolo", "MC"], ["San Severino Marche", "MC"]], - "62028": [["Sarnano", "MC"]], - "62029": [["Tolentino", "MC"]], - "62032": [ - ["Mergnano San Savino", "MC"], - ["Polverina", "MC"], - ["Morro", "MC"], - ["San Luca", "MC"], - ["Mergnano", "MC"], - ["Camerino", "MC"], - ], - "62034": [["Muccia", "MC"]], - "62035": [ - ["Pievebovigliana", "MC"], - ["Acquacanina", "MC"], - ["Fiordimonte", "MC"], - ["Fiegni", "MC"], - ["Bolognola", "MC"], - ["Fiastra", "MC"], - ], - "62036": [ - ["Casavecchia", "MC"], - ["Monte Cavallo", "MC"], - ["Pie' Casavecchia", "MC"], - ["Pieve Torina", "MC"], - ["Appennino", "MC"], - ], - "62038": [["Serravalle Di Chienti", "MC"], ["Cesi", "MC"], ["Cesi Di Macerata", "MC"]], - "62039": [["Visso", "MC"], ["Ussita", "MC"], ["Castelsantangelo Sul Nera", "MC"], ["Fematre", "MC"]], - "62100": [ - ["Madonna Del Monte", "MC"], - ["Villa Potenza", "MC"], - ["Macerata", "MC"], - ["Sforzacosta", "MC"], - ["Corridonia Stazione", "MC"], - ["Piediripa", "MC"], - ], - "61010": [ - ["Belvedere Fogliense", "PU"], - ["Case Bernardi", "PU"], - ["Rio Salso", "PU"], - ["Monte Cerignone", "PU"], - ["Savignano Montetassi", "PU"], - ["Montegrimano", "PU"], - ["Tavullia", "PU"], - ["Padiglione", "PU"], - ["Montelicciano", "PU"], - ["Valle Di Teva", "PU"], - ], - "61011": [["Gabicce Mare", "PU"], ["Case Badioli", "PU"]], - "61012": [["Fanano", "PU"], ["Gradara", "PU"]], - "61013": [ - ["Mercatino Conca", "PU"], - ["Piandicastello", "PU"], - ["Valle Sant'Anastasio", "PU"], - ["Fratte Di Sassofeltrio", "PU"], - ["Sassofeltrio", "PU"], - ], - "61014": [["Madonna Di Pugliano", "PU"], ["Montecopiolo", "PU"], ["Villagrande", "PU"]], - "61020": [ - ["Casinina", "PU"], - ["Borgo Massano", "PU"], - ["Gallo", "PU"], - ["Gallo Di Petriano", "PU"], - ["Petriano", "PU"], - ["Ca' Gallo", "PU"], - ["Montecalvo In Foglia", "PU"], - ["Tavoleto", "PU"], - ], - "61021": [["Frontino", "PU"], ["Carpegna", "PU"]], - "61022": [ - ["Sant'Angelo In Lizzola", "PU"], - ["Vallefoglia", "PU"], - ["Colbordolo", "PU"], - ["Morciola", "PU"], - ["Bottega", "PU"], - ["Montecchio", "PU"], - ], - "61023": [["Macerata Feltria", "PU"], ["Pietrarubbia", "PU"]], - "61024": [["Mombaroccio", "PU"], ["Monteciccardo", "PU"]], - "61025": [["Montelabbate", "PU"], ["Osteria Nuova", "PU"]], - "61026": [ - ["Lunano", "PU"], - ["Belforte All'Isauro", "PU"], - ["Monastero", "PU"], - ["Piandimeleto", "PU"], - ["San Sisto", "PU"], - ], - "61028": [["Caprazzino", "PU"], ["Mercatale", "PU"], ["Sassocorvaro", "PU"], ["Auditore", "PU"]], - "61029": [ - ["Ponte In Foglia", "PU"], - ["Schieti", "PU"], - ["Gadana", "PU"], - ["Trasanni", "PU"], - ["Pieve Di Cagna", "PU"], - ["Urbino", "PU"], - ["Castello Di Cavallino", "PU"], - ["Castelcavallino", "PU"], - ["Via Piana", "PU"], - ["Canavaccio", "PU"], - ], - "61030": [ - ["Serrungarina", "PU"], - ["Montemaggiore Al Metauro", "PU"], - ["Calcinelli", "PU"], - ["Cartoceto", "PU"], - ["San Giorgio Di Pesaro", "PU"], - ["Tavernelle", "PU"], - ["Isola Del Piano", "PU"], - ["Monteguiduccio", "PU"], - ["Villanova", "PU"], - ["Piagge", "PU"], - ["Saltara", "PU"], - ["Montefelcino", "PU"], - ["Lucrezia", "PU"], - ], - "61032": [["Fenile", "PU"], ["Cuccurano", "PU"], ["Bellocchi", "PU"], ["Fano", "PU"]], - "61033": [["Fermignano", "PU"]], - "61034": [["Isola Di Fano", "PU"], ["Calmazzo", "PU"], ["Fossombrone", "PU"]], - "61037": [["Marotta", "PU"], ["Mondolfo", "PU"], ["Centocroci", "PU"]], - "61038": [["Orciano Di Pesaro", "PU"]], - "61039": [["San Costanzo", "PU"], ["Cerasa", "PU"]], - "61040": [ - ["Fratte Rosa", "PU"], - ["Sant'Ippolito", "PU"], - ["Serra Sant'Abbondio", "PU"], - ["Sant'Andrea Di Suasa", "PU"], - ["San Filippo Sul Cesano", "PU"], - ["Mondavio", "PU"], - ["San Michele Al Fiume", "PU"], - ["Mercatello Sul Metauro", "PU"], - ["Borgo Pace", "PU"], - ["Frontone", "PU"], - ["Lamoli", "PU"], - ["Monte Porzio", "PU"], - ["Sorbolongo", "PU"], - ["Castelvecchio", "PU"], - ["Barchi", "PU"], - ], - "61041": [ - ["Acqualagna", "PU"], - ["Abbadia Di Naro", "PU"], - ["Furlo", "PU"], - ["Petriccio", "PU"], - ["Pole", "PU"], - ["Bellaria", "PU"], - ], - "61042": [["Apecchio", "PU"], ["Serravalle Di Carda", "PU"]], - "61043": [ - ["Secchiano", "PU"], - ["Acquaviva Marche", "PU"], - ["Smirra", "PU"], - ["Pianello", "PU"], - ["Cagli", "PU"], - ], - "61044": [["Pontericcioli", "PU"], ["Chiaserna", "PU"], ["Cantiano", "PU"]], - "61045": [["Bellisio Solfare", "PU"], ["Monterolo", "PU"], ["Pergola", "PU"]], - "61046": [["Piobbico", "PU"]], - "61047": [["San Lorenzo In Campo", "PU"], ["San Vito Sul Cesano", "PU"]], - "61048": [["Sant'Angelo In Vado", "PU"]], - "61049": [["Muraglione", "PU"], ["Urbania", "PU"]], - "61100": [ - ["Villa San Martino", "PU"], - ["Novilara", "PU"], - ["Villa Ceccolini", "PU"], - ["Muraglia", "PU"], - ["Fiorenzuola Di Focara", "PU"], - ["Ponte Del Colombarone", "PU"], - ["Montegranaro", "PU"], - ["Candelara", "PU"], - ["Soria", "PU"], - ["Pantano", "PU"], - ["Pozzo Alto", "PU"], - ["San Pietro In Calibano", "PU"], - ["Pesaro", "PU"], - ["Santa Maria Delle Fabrecce", "PU"], - ["Borgo Santa Maria", "PU"], - ["Case Bruciate", "PU"], - ["Santa Veneranda", "PU"], - ["Cattabrighe", "PU"], - ["Villa Fastiggi", "PU"], - ["Ginestreto", "PU"], - ], - "61121": [["Pesaro", "PU"]], - "61122": [["Pesaro", "PU"]], - "86010": [ - ["Campodipietra", "CB"], - ["San Giovanni In Galdo", "CB"], - ["San Giuliano Del Sannio", "CB"], - ["Casalciprano", "CB"], - ["Busso", "CB"], - ["Tufara", "CB"], - ["Mirabello Sannitico", "CB"], - ["Castropignano", "CB"], - ["Ferrazzano", "CB"], - ["Oratino", "CB"], - ["Roccaspromonte", "CB"], - ["Cercepiccola", "CB"], - ["Gildone", "CB"], - ], - "86011": [["Baranello", "CB"]], - "86012": [["Cercemaggiore", "CB"]], - "86013": [["Gambatesa", "CB"]], - "86014": [["Guardiaregia", "CB"]], - "86015": [["Jelsi", "CB"]], - "86016": [["Riccia", "CB"]], - "86017": [["Sepino", "CB"]], - "86018": [["Toro", "CB"]], - "86019": [["Vinchiaturo", "CB"]], - "86020": [ - ["Campochiaro", "CB"], - ["Sant'Angelo Limosano", "CB"], - ["Duronia", "CB"], - ["Pietracupa", "CB"], - ["Colle D'Anchise", "CB"], - ["Castellino Del Biferno", "CB"], - ["Molise", "CB"], - ["Roccavivara", "CB"], - ["San Polo Matese", "CB"], - ["Fossalto", "CB"], - ["Spinete", "CB"], - ["San Biase", "CB"], - ], - "86021": [ - ["Castellone", "CB"], - ["Bojano", "CB"], - ["Monteverde", "CB"], - ["Monteverde Di Boiano", "CB"], - ["Castellone Di Boiano", "CB"], - ], - "86022": [["Limosano", "CB"]], - "86023": [["Montagano", "CB"]], - "86024": [["Petrella Tifernina", "CB"]], - "86025": [["Ripalimosani", "CB"]], - "86026": [["Salcito", "CB"]], - "86027": [["San Massimo", "CB"]], - "86028": [["Torella Del Sannio", "CB"]], - "86029": [["Trivento", "CB"]], - "86030": [ - ["Castelbottaccio", "CB"], - ["Civitacampomarano", "CB"], - ["Mafalda", "CB"], - ["Lucito", "CB"], - ["San Giacomo Degli Schiavoni", "CB"], - ["Lupara", "CB"], - ["Acquaviva Collecroce", "CB"], - ["Tavenna", "CB"], - ["Guardialfiera", "CB"], - ["San Felice Del Molise", "CB"], - ["Montemitro", "CB"], - ["Matrice", "CB"], - ], - "86031": [["Castelmauro", "CB"]], - "86032": [["Montecilfone", "CB"]], - "86033": [["Montefalcone Nel Sannio", "CB"]], - "86034": [["Guglionesi", "CB"]], - "86035": [["Larino", "CB"]], - "86036": [["Montenero Di Bisaccia", "CB"]], - "86037": [["Palata", "CB"]], - "86038": [["Collecalcioni", "CB"], ["Petacciato", "CB"]], - "86039": [["Termoli", "CB"]], - "86040": [ - ["Ripabottoni", "CB"], - ["Montelongo", "CB"], - ["Macchia Valfortore", "CB"], - ["Campolieto", "CB"], - ["Morrone Del Sannio", "CB"], - ["Montorio Nei Frentani", "CB"], - ["Ripabottoni Stazione", "CB"], - ["San Giuliano Di Puglia", "CB"], - ["Pietracatella", "CB"], - ["Monacilioni", "CB"], - ["Provvidenti", "CB"], - ["Rotello", "CB"], - ], - "86041": [["Bonefro", "CB"]], - "86042": [["Nuova Cliternia", "CB"], ["Campomarino", "CB"], ["Lido Di Campomarino", "CB"]], - "86043": [["Casacalenda", "CB"]], - "86044": [["Colletorto", "CB"]], - "86045": [["Portocannone", "CB"]], - "86046": [["San Martino In Pensilis", "CB"]], - "86047": [["Santa Croce Di Magliano", "CB"]], - "86048": [["Sant'Elia A Pianisi", "CB"]], - "86049": [["Ururi", "CB"]], - "86100": [["Santo Stefano Di Campobasso", "CB"], ["Campobasso", "CB"], ["Santo Stefano", "CB"]], - "86070": [ - ["Castelnuovo Al Volturno", "IS"], - ["Scapoli", "IS"], - ["Sant'Agapito", "IS"], - ["Taverna Ravindola", "IS"], - ["Sant'Agapito Scalo", "IS"], - ["Rocchetta Nuova", "IS"], - ["Macchia D'Isernia", "IS"], - ["Roccaravindola", "IS"], - ["Roccaravindola Stazione", "IS"], - ["Montaquila", "IS"], - ["Rocchetta A Volturno", "IS"], - ["Conca Casale", "IS"], - ["Fornelli", "IS"], - ], - "86071": [["Pizzone", "IS"], ["Castel San Vincenzo", "IS"]], - "86072": [["Cerro Al Volturno", "IS"], ["Cupone", "IS"]], - "86073": [["Colli A Volturno", "IS"]], - "86074": [["Cerasuolo", "IS"], ["Filignano", "IS"]], - "86075": [["Monteroduni", "IS"], ["Sant'Eusanio", "IS"]], - "86077": [["Santa Maria Oliveto", "IS"], ["Pozzilli", "IS"]], - "86078": [ - ["Roccapipirozzi", "IS"], - ["Sesto Campano", "IS"], - ["Selvotta", "IS"], - ["Campopino", "IS"], - ["Pianura", "IS"], - ], - "86079": [["Ceppagna", "IS"], ["Venafro", "IS"]], - "86080": [ - ["Belmonte Del Sannio", "IS"], - ["Castel Del Giudice", "IS"], - ["Roccasicura", "IS"], - ["Acquaviva D'Isernia", "IS"], - ["Miranda", "IS"], - ["Montenero Val Cocchiara", "IS"], - ["Castelverrino", "IS"], - ["Pescopennataro", "IS"], - ["Sant'Angelo Del Pesco", "IS"], - ], - "86081": [["Agnone", "IS"], ["Villa Canale", "IS"]], - "86082": [["Capracotta", "IS"]], - "86083": [["Castiglione", "IS"], ["Carovilli", "IS"]], - "86084": [["Vandra", "IS"], ["Forli' Del Sannio", "IS"]], - "86085": [["Pietrabbondante", "IS"]], - "86086": [["Poggio Sannita", "IS"]], - "86087": [["Rionero Sannitico", "IS"]], - "86088": [["San Pietro Avellana", "IS"]], - "86089": [["Vastogirardi", "IS"], ["Cerreto", "IS"], ["Villa San Michele", "IS"]], - "86090": [ - ["Pettoranello Del Molise", "IS"], - ["Pastena", "IS"], - ["Longano", "IS"], - ["Guasto", "IS"], - ["Indiprete", "IS"], - ["Pesche", "IS"], - ["Castelpetroso", "IS"], - ["Castelpizzuto", "IS"], - ], - "86091": [["Bagnoli Del Trigno", "IS"]], - "86092": [["Roccamandolfi", "IS"], ["Cantalupo Nel Sannio", "IS"]], - "86093": [["Carpinone", "IS"]], - "86094": [["Civitanova Del Sannio", "IS"]], - "86095": [["Frosolone", "IS"], ["San Pietro In Valle", "IS"], ["Sant'Elena Sannita", "IS"]], - "86096": [ - ["Santa Maria Del Molise", "IS"], - ["Macchiagodena", "IS"], - ["Incoronata", "IS"], - ["Sant'Angelo In Grotte", "IS"], - ], - "86097": [["Sessano Del Molise", "IS"], ["Pescolanciano", "IS"], ["Chiauci", "IS"]], - "86170": [["Miranda", "IS"], ["Castelromano", "IS"], ["Isernia", "IS"]], - "15010": [ - ["Grognardo", "AL"], - ["Orsara Bormida", "AL"], - ["Merana", "AL"], - ["Visone", "AL"], - ["Castelletto D'Erro", "AL"], - ["Ponti", "AL"], - ["Pareto", "AL"], - ["Prasco", "AL"], - ["Alice Bel Colle", "AL"], - ["Ricaldone", "AL"], - ["Montechiaro Denice", "AL"], - ["Terzo", "AL"], - ["Cavatore", "AL"], - ["Morbello", "AL"], - ["Montechiaro D'Acqui", "AL"], - ["Melazzo", "AL"], - ["Frascaro", "AL"], - ["Morsasco", "AL"], - ["Ponzone", "AL"], - ["Denice", "AL"], - ["Cremolino", "AL"], - ["Montaldo Bormida", "AL"], - ["Gamalero", "AL"], - ["Rivalta Bormida", "AL"], - ], - "15011": [["Moirano", "AL"], ["Acqui Terme", "AL"]], - "15012": [["Bistagno", "AL"]], - "15013": [["Borgoratto Alessandrino", "AL"]], - "15014": [["Cantalupo", "AL"]], - "15015": [["Cartosio", "AL"], ["Malvicino", "AL"]], - "15016": [["Cassine", "AL"], ["Caranzano", "AL"], ["Gavonata", "AL"]], - "15017": [["Castelnuovo Bormida", "AL"]], - "15018": [["Spigno Monferrato", "AL"]], - "15019": [["Strevi", "AL"]], - "15020": [ - ["Gabiano", "AL"], - ["San Giorgio Monferrato", "AL"], - ["Villamiroglio", "AL"], - ["San Giorgio", "AL"], - ["Odalengo Piccolo", "AL"], - ["Zanco", "AL"], - ["Casalbagliano", "AL"], - ["Castel San Pietro Monferrato", "AL"], - ["Cerrina Monferrato", "AL"], - ["Casalino Di Mombello", "AL"], - ["Lussello", "AL"], - ["Montalero", "AL"], - ["Brusaschetto", "AL"], - ["Castel San Pietro", "AL"], - ["Villa Del Foro", "AL"], - ["Varengo", "AL"], - ["Serralunga Di Crea", "AL"], - ["Mombello Monferrato", "AL"], - ["Cereseto", "AL"], - ["Castelletto Merli", "AL"], - ["Moncestino", "AL"], - ["Murisengo", "AL"], - ["Pozzengo", "AL"], - ["Camino", "AL"], - ["Odalengo Grande", "AL"], - ["Solonghello", "AL"], - ["Valle Cerrina", "AL"], - ["Vallegioliti", "AL"], - ["Cantavenna", "AL"], - ["Ponzano Monferrato", "AL"], - ["Villadeati", "AL"], - ], - "15021": [["Cardona", "AL"], ["Alfiano Natta", "AL"], ["Sanico", "AL"]], - "15022": [["Bergamasco", "AL"]], - "15023": [["Felizzano", "AL"]], - "15024": [["Abbazia", "AL"], ["Masio", "AL"]], - "15025": [["Morano Sul Po", "AL"]], - "15026": [["Oviglio", "AL"], ["Carentino", "AL"]], - "15027": [["Pontestura", "AL"]], - "15028": [["Piepasso", "AL"], ["Quattordio", "AL"]], - "15029": [["Solero", "AL"]], - "15030": [ - ["Villanova Monferrato", "AL"], - ["Terruggia", "AL"], - ["Stevani", "AL"], - ["Treville", "AL"], - ["Sala Monferrato", "AL"], - ["San Martino", "AL"], - ["San Maurizio", "AL"], - ["Rosignano Monferrato", "AL"], - ["Conzano", "AL"], - ["Camagna Monferrato", "AL"], - ["Olivola", "AL"], - ["Coniolo", "AL"], - ], - "15031": [["Balzola", "AL"]], - "15032": [["Borgo San Martino", "AL"]], - "15033": [ - ["Terranova", "AL"], - ["Terranova Monferrato", "AL"], - ["San Germano", "AL"], - ["Casale Monferrato", "AL"], - ["Popolo", "AL"], - ["Pozzo Sant'Evasio", "AL"], - ["Roncaglia", "AL"], - ["Santa Maria Del Tempio", "AL"], - ], - "15034": [["Cella Monte", "AL"]], - "15035": [["Frassinello Monferrato", "AL"]], - "15036": [["Giarole", "AL"]], - "15037": [["Lu", "AL"], ["Cuccaro Monferrato", "AL"]], - "15038": [["Ottiglio", "AL"]], - "15039": [["Ozzano Monferrato", "AL"]], - "15040": [ - ["Valmadonna", "AL"], - ["San Michele", "AL"], - ["Rivarone", "AL"], - ["Pietra Marazzi", "AL"], - ["Bozzole", "AL"], - ["Pecetto Di Valenza", "AL"], - ["Castelletto Monferrato", "AL"], - ["Mirabello Monferrato", "AL"], - ["Ticineto", "AL"], - ["Pavone D'Alessandria", "AL"], - ["Piovera", "AL"], - ["Occimiano", "AL"], - ["Valle San Bartolomeo", "AL"], - ["Valmacca", "AL"], - ["Frassineto Po", "AL"], - ["Giardinetto", "AL"], - ["Montecastello", "AL"], - ["Pomaro Monferrato", "AL"], - ["Grava", "AL"], - ["Alluvioni Cambio'", "AL"], - ], - "15041": [["Franchini", "AL"], ["Altavilla Monferrato", "AL"]], - "15042": [["Bassignana", "AL"], ["Mugarone", "AL"], ["Fiondi", "AL"]], - "15043": [["Fubine", "AL"]], - "15044": [["Quargnento", "AL"]], - "15045": [["Sale", "AL"]], - "15046": [["San Salvatore Monferrato", "AL"]], - "15048": [["Valenza", "AL"], ["Monte", "AL"], ["Villabella", "AL"]], - "15049": [["Vignale Monferrato", "AL"]], - "15050": [ - ["Guazzora", "AL"], - ["Montacuto", "AL"], - ["Casasco", "AL"], - ["Montemarzino", "AL"], - ["Sarezzano", "AL"], - ["Pozzol Groppo", "AL"], - ["Molino Dei Torti", "AL"], - ["Costa Vescovato", "AL"], - ["Momperone", "AL"], - ["Avolasca", "AL"], - ["Villaromagnano", "AL"], - ["Volpeglino", "AL"], - ["Berzano Di Tortona", "AL"], - ["Castellar Guidobono", "AL"], - ["Carbonara Scrivia", "AL"], - ["Alzano Scrivia", "AL"], - ["Cerreto Grue", "AL"], - ["Montegioco", "AL"], - ["Brignano Frascata", "AL"], - ["Spineto Scrivia", "AL"], - ["Villalvernia", "AL"], - ["Isola Sant'Antonio", "AL"], - ["Garbagna", "AL"], - ["Paderna", "AL"], - ["Sant'Agata Fossili", "AL"], - ], - "15051": [["Carezzano", "AL"], ["Castellania", "AL"]], - "15052": [["Casalnoceto", "AL"]], - "15053": [["Castelnuovo Scrivia", "AL"]], - "15054": [["Fabbrica Curone", "AL"], ["Caldirola", "AL"], ["Garadassi", "AL"]], - "15055": [["Pontecurone", "AL"]], - "15056": [["San Sebastiano Curone", "AL"], ["Gremiasco", "AL"], ["Dernice", "AL"]], - "15057": [ - ["Passalacqua", "AL"], - ["Tortona", "AL"], - ["Rivalta Scrivia", "AL"], - ["Castellar Ponzano", "AL"], - ["Torre Garofoli", "AL"], - ], - "15058": [["Viguzzolo", "AL"]], - "15059": [["Volpedo", "AL"], ["Monleale", "AL"]], - "15060": [ - ["Castelletto D'Orba", "AL"], - ["Mongiardino Ligure", "AL"], - ["Borghetto Di Borbera", "AL"], - ["Cuquello", "AL"], - ["Rocchetta Ligure", "AL"], - ["Carrosio", "AL"], - ["Parodi Ligure", "AL"], - ["Persi", "AL"], - ["Albera Ligure", "AL"], - ["Sardigliano", "AL"], - ["Basaluzzo", "AL"], - ["Cabella Ligure", "AL"], - ["Castagnola", "AL"], - ["Vignole Borbera", "AL"], - ["Carrega Ligure", "AL"], - ["Cantalupo Ligure", "AL"], - ["Grondona", "AL"], - ["San Cristoforo", "AL"], - ["Voltaggio", "AL"], - ["Montaldeo", "AL"], - ["Cosola Di Cabella", "AL"], - ["Capriata D'Orba", "AL"], - ["Francavilla Bisio", "AL"], - ["Torre De' Ratti", "AL"], - ["Castagnola Di Fraconalto", "AL"], - ["Tassarolo", "AL"], - ["Silvano D'Orba", "AL"], - ["Stazzano", "AL"], - ["Pasturana", "AL"], - ["Fraconalto", "AL"], - ["Bosio", "AL"], - ["Roccaforte Ligure", "AL"], - ], - "15061": [["Arquata Scrivia", "AL"]], - "15062": [["Donna", "AL"], ["Bosco Marengo", "AL"], ["Pollastra", "AL"]], - "15063": [["Cassano Spinola", "AL"], ["Gavazzana", "AL"]], - "15064": [["Fresonara", "AL"]], - "15065": [["Frugarolo", "AL"]], - "15066": [["Gavi", "AL"]], - "15067": [["Novi Ligure", "AL"], ["Merella", "AL"]], - "15068": [["Pozzolo Formigaro", "AL"]], - "15069": [["Serravalle Scrivia", "AL"]], - "15070": [ - ["Castelspina", "AL"], - ["Cassinelle", "AL"], - ["Casaleggio Boiro", "AL"], - ["Lerma", "AL"], - ["Villa Botteri", "AL"], - ["Mongiardino", "AL"], - ["Trisobbio", "AL"], - ["Bandita", "AL"], - ["Belforte Monferrato", "AL"], - ["Tagliolo Monferrato", "AL"], - ], - "15071": [["Carpeneto", "AL"]], - "15072": [["Portanova", "AL"], ["Casal Cermelli", "AL"]], - "15073": [["Castellazzo Bormida", "AL"]], - "15074": [["Molare", "AL"]], - "15075": [["Mornese", "AL"]], - "15076": [["Gnocchetto", "AL"], ["Ovada", "AL"]], - "15077": [["Predosa", "AL"], ["Castelferro", "AL"]], - "15078": [["Rocca Grimalda", "AL"]], - "15079": [["Sezzadio", "AL"]], - "15100": [ - ["San Giuliano Vecchio", "AL"], - ["Spinetta Marengo", "AL"], - ["Cascinagrossa", "AL"], - ["Litta Parodi", "AL"], - ["Alessandria", "AL"], - ["Lobbi", "AL"], - ["Castelceriolo", "AL"], - ["Orti", "AL"], - ["San Giuliano Nuovo", "AL"], - ["Cristo", "AL"], - ["Mandrogne", "AL"], - ], - "15121": [["Alessandria", "AL"]], - "14010": [ - ["Cantarana", "AT"], - ["San Martino Alfieri", "AT"], - ["Dusino", "AT"], - ["Antignano", "AT"], - ["Montegrosso Di Cinaglio", "AT"], - ["Dusino San Michele", "AT"], - ["Celle Enomondo", "AT"], - ["San Matteo", "AT"], - ["Viale", "AT"], - ["Revigliasco D'Asti", "AT"], - ["Cellarengo", "AT"], - ["Cortazzone", "AT"], - ["Cisterna D'Asti", "AT"], - ["San Paolo Solbrito", "AT"], - ], - "14011": [["Baldichieri D'Asti", "AT"]], - "14012": [["Ferrere", "AT"]], - "14013": [["Castellero", "AT"], ["Monale", "AT"], ["Cortandone", "AT"]], - "14014": [["Montafia", "AT"], ["Capriglio", "AT"]], - "14015": [["San Pietro", "AT"], ["San Damiano D'Asti", "AT"]], - "14016": [["Pratomorone", "AT"], ["Tigliole", "AT"]], - "14017": [["Valfenera", "AT"]], - "14018": [["Roatto", "AT"], ["Maretto", "AT"], ["Villafranca D'Asti", "AT"]], - "14019": [["Villanova D'Asti Stazione", "AT"], ["Villanova D'Asti", "AT"]], - "14020": [ - ["Robella", "AT"], - ["Villa San Secondo", "AT"], - ["Passerano", "AT"], - ["Schierano", "AT"], - ["Cinaglio", "AT"], - ["Marmorito", "AT"], - ["Cortanze", "AT"], - ["Serravalle D'Asti", "AT"], - ["Cerreto D'Asti", "AT"], - ["Berzano Di San Pietro", "AT"], - ["Settime", "AT"], - ["Camerano Casasco", "AT"], - ["Pino D'Asti", "AT"], - ["Aramengo", "AT"], - ["Cossombrato", "AT"], - ["Piea", "AT"], - ["Soglio", "AT"], - ["Passerano Marmorito", "AT"], - ["Corsione", "AT"], - ], - "14021": [["Buttigliera D'Asti", "AT"]], - "14022": [ - ["Becchi", "AT"], - ["Mondonio San Domenico Savio", "AT"], - ["Albugnano", "AT"], - ["Castelnuovo Don Bosco", "AT"], - ], - "14023": [ - ["Cocconito Vignaretto", "AT"], - ["Tonengo", "AT"], - ["Cocconito", "AT"], - ["Cocconato", "AT"], - ["Moransengo", "AT"], - ], - "14024": [["Moncucco Torinese", "AT"]], - "14025": [["Montechiaro D'Asti", "AT"], ["Chiusano D'Asti", "AT"]], - "14026": [ - ["Montiglio", "AT"], - ["Scandeluzza", "AT"], - ["Cunico", "AT"], - ["Colcavagno", "AT"], - ["Montiglio Monferrato", "AT"], - ["Piova' Massaia", "AT"], - ], - "14030": [ - ["Refrancore", "AT"], - ["Rocca D'Arazzo", "AT"], - ["Valenzani", "AT"], - ["Accorneri", "AT"], - ["Montemagno", "AT"], - ["Frinco", "AT"], - ["Scurzolengo", "AT"], - ["Azzano D'Asti", "AT"], - ["Castagnole Monferrato", "AT"], - ["Viarigi", "AT"], - ["Cerro Tanaro", "AT"], - ["Penango", "AT"], - ["Rocchetta Tanaro", "AT"], - ], - "14031": [["San Desiderio", "AT"], ["Calliano", "AT"], ["Grana", "AT"]], - "14032": [["Casorzo", "AT"]], - "14033": [["Callianetto", "AT"], ["Castell'Alfero Stazione", "AT"], ["Castell'Alfero", "AT"]], - "14034": [["Castello Di Annone", "AT"], ["Monfallito", "AT"]], - "14035": [["Grazzano Badoglio", "AT"]], - "14036": [["Moncalvo", "AT"]], - "14037": [["Castiglione D'Asti", "AT"], ["Portacomaro", "AT"], ["Migliandolo", "AT"]], - "14039": [["Tonco", "AT"]], - "14040": [ - ["Cortiglione", "AT"], - ["Quaranti", "AT"], - ["Castelnuovo Calcea", "AT"], - ["Castelletto Molina", "AT"], - ["Vigliano D'Asti", "AT"], - ["Vinchio", "AT"], - ["Mongardino", "AT"], - ["Montabone", "AT"], - ["Castel Boglione", "AT"], - ["Belveglio", "AT"], - ["Maranzana", "AT"], - ], - "14041": [["Agliano", "AT"], ["Agliano Terme", "AT"]], - "14042": [["Rocchetta Palafea", "AT"], ["Calamandrana", "AT"]], - "14043": [["Castelnuovo Belbo", "AT"]], - "14044": [["Castel Rocchero", "AT"], ["Fontanile", "AT"]], - "14045": [["Ghiare", "AT"], ["Incisa Scapaccino", "AT"], ["Madonna", "AT"]], - "14046": [["Bazzana", "AT"], ["Bruno", "AT"], ["Mombaruzzo", "AT"]], - "14047": [["Mombercelli", "AT"]], - "14048": [["Montegrosso D'Asti", "AT"], ["Montaldo Scarampi", "AT"], ["Montegrosso D'Asti Stazione", "AT"]], - "14049": [["Vaglio Serra", "AT"], ["Nizza Monferrato", "AT"]], - "14050": [ - ["Cessole", "AT"], - ["Motta Di Costigliole", "AT"], - ["Mombaldone", "AT"], - ["Olmo Gentile", "AT"], - ["Serole", "AT"], - ["Moasca", "AT"], - ["Roccaverano", "AT"], - ["San Marzano Oliveto", "AT"], - ["Cassinasco", "AT"], - ], - "14051": [["Loazzolo", "AT"], ["Bubbio", "AT"]], - "14052": [["Calosso", "AT"]], - "14053": [ - ["Canelli Recapito Gancia", "AT"], - ["Canelli", "AT"], - ["Sant'Antonio", "AT"], - ["Sant'Antonio Di Canelli", "AT"], - ], - "14054": [ - ["Coazzolo", "AT"], - ["Castagnole Delle Lanze", "AT"], - ["San Bartolomeo Lanze", "AT"], - ["Olmo Di Castagnole Lanze", "AT"], - ["Olmo", "AT"], - ], - "14055": [["Costigliole D'Asti", "AT"], ["Motta", "AT"], ["Boglietto", "AT"]], - "14057": [["Isola D'Asti", "AT"], ["Piano", "AT"], ["Molini D'Isola", "AT"]], - "14058": [["Monastero Bormida", "AT"], ["Sessame", "AT"]], - "14059": [["San Giorgio Scarampi", "AT"], ["Vesime", "AT"]], - "14100": [ - ["Stazione Di Portacomaro", "AT"], - ["Serravalle", "AT"], - ["Montemarzo", "AT"], - ["Valletanaro", "AT"], - ["Viatosto", "AT"], - ["Poggio D'Asti", "AT"], - ["Montemarzo D'Asti", "AT"], - ["Montegrosso", "AT"], - ["Portacomaro Stazione", "AT"], - ["Valleandona", "AT"], - ["Sessant", "AT"], - ["Valgera", "AT"], - ["Variglie", "AT"], - ["Mombarone", "AT"], - ["San Marzanotto", "AT"], - ["Asti", "AT"], - ["Vaglierano", "AT"], - ["Castiglione", "AT"], - ["Casabianca", "AT"], - ["Quarto D'Asti", "AT"], - ["Revignano", "AT"], - ], - "13811": [["Tavigliano", "BI"], ["Andorno Micca", "BI"]], - "13812": [ - ["Balma Biellese", "BI"], - ["Quittengo", "BI"], - ["Campiglia Cervo", "BI"], - ["Balma", "BI"], - ["Montesinaro", "BI"], - ["Piedicavallo", "BI"], - ["San Paolo Cervo", "BI"], - ], - "13814": [["Pollone", "BI"]], - "13815": [["Rosazza", "BI"]], - "13816": [["Miagliano", "BI"], ["Sagliano Micca", "BI"]], - "13817": [["Sordevolo", "BI"]], - "13818": [["Tollegno", "BI"]], - "13821": [["Pianezze", "BI"], ["Callabiana", "BI"], ["Camandona", "BI"]], - "13822": [["Pistolesa", "BI"]], - "13823": [["Fontanella Ozino", "BI"], ["Strona", "BI"]], - "13824": [["Veglio", "BI"]], - "13825": [["Crocemosso", "BI"], ["Campore", "BI"]], - "13831": [["Mezzana Mortigliengo", "BI"]], - "13833": [["Portula", "BI"]], - "13835": [ - ["Bulliana", "BI"], - ["Soprana", "BI"], - ["Ponzone", "BI"], - ["Valle Mosso", "BI"], - ["Mosso", "BI"], - ["Vico", "BI"], - ["Trivero", "BI"], - ["Botto", "BI"], - ["Pratrivero", "BI"], - ["Giardino", "BI"], - ], - "13836": [["Ponte Guelpa", "BI"], ["Castellengo", "BI"], ["Aglietti", "BI"], ["Cossato", "BI"]], - "13841": [["Selve Marcone", "BI"], ["Bioglio", "BI"]], - "13843": [["Pettinengo", "BI"], ["Vaglio", "BI"]], - "13844": [["Piatto", "BI"], ["Ternengo", "BI"]], - "13845": [["Ronco Biellese", "BI"]], - "13847": [["Vallanzengo", "BI"], ["Valle San Nicolao", "BI"]], - "13848": [["Zumaglia", "BI"]], - "13851": [["Castelletto Cervo", "BI"]], - "13853": [["Capovilla", "BI"], ["Castello", "BI"], ["Lessona", "BI"], ["Crosa", "BI"]], - "13854": [["Cerreto Castello", "BI"], ["Quaregna", "BI"]], - "13855": [["Valdengo", "BI"]], - "13856": [["Vigliano Biellese", "BI"], ["Villaggi", "BI"]], - "13861": [["Ailoche", "BI"]], - "13862": [["Brusnengo", "BI"]], - "13863": [["Coggiola", "BI"]], - "13864": [["Crevacuore", "BI"], ["Caprile", "BI"]], - "13865": [["Curino", "BI"]], - "13866": [["Casapinta", "BI"], ["Masserano", "BI"]], - "13867": [["Flecchia", "BI"], ["Pray", "BI"], ["Pianceri Alto", "BI"]], - "13868": [["Sostegno", "BI"], ["Villa Del Bosco", "BI"]], - "13871": [["Verrone", "BI"], ["Benna", "BI"]], - "13872": [["Borriana", "BI"]], - "13873": [["Massazza", "BI"]], - "13874": [["Mottalciata", "BI"], ["Gifflenga", "BI"]], - "13875": [["Ponderano", "BI"]], - "13876": [["Sandigliano", "BI"]], - "13877": [["Villanova Biellese", "BI"]], - "13878": [["Candelo", "BI"]], - "13881": [["Cavaglia'", "BI"], ["Dorzano", "BI"]], - "13882": [["Cerrione", "BI"], ["Vergnasco", "BI"], ["Magnonevolo", "BI"]], - "13883": [["Roppolo", "BI"]], - "13884": [["Torrazzo", "BI"], ["Sala Biellese", "BI"]], - "13885": [["Brianco", "BI"], ["Salussola", "BI"], ["Vigellio", "BI"]], - "13886": [["Viverone", "BI"]], - "13887": [["Zimone", "BI"], ["Magnano", "BI"]], - "13888": [["Mongrando", "BI"], ["Ceresane", "BI"], ["Curanuova", "BI"], ["Zubiena", "BI"]], - "13891": [["Camburzano", "BI"]], - "13893": [["Donato", "BI"]], - "13894": [["Gaglianico", "BI"]], - "13895": [["Graglia", "BI"], ["Muzzano", "BI"], ["Graglia Santuario", "BI"], ["Graglia Bagni", "BI"]], - "13896": [["Netro", "BI"]], - "13897": [["Occhieppo Inferiore", "BI"]], - "13898": [["Occhieppo Superiore", "BI"]], - "13899": [["Pralungo", "BI"]], - "13900": [ - ["Chiavazza", "BI"], - ["Oropa", "BI"], - ["Pavignano", "BI"], - ["Biella", "BI"], - ["Barazzetto", "BI"], - ["Cossila", "BI"], - ["Vandorno", "BI"], - ["Favaro", "BI"], - ], - "12010": [ - ["Argentera", "CN"], - ["Roccasparvera", "CN"], - ["Rittana", "CN"], - ["Valdieri", "CN"], - ["Bersezio", "CN"], - ["Moiola", "CN"], - ["Pianche", "CN"], - ["Bernezzo", "CN"], - ["Santa Croce Cervasca", "CN"], - ["Aisone", "CN"], - ["Santa Croce", "CN"], - ["Andonno", "CN"], - ["Gaiola", "CN"], - ["Bagni Di Vinadio", "CN"], - ["Vignolo", "CN"], - ["San Defendente", "CN"], - ["Valloriate", "CN"], - ["Cervasca", "CN"], - ["Entracque", "CN"], - ["Vinadio", "CN"], - ["Sant'Anna Di Valdieri", "CN"], - ["Sant'Anna", "CN"], - ["Pietraporzio", "CN"], - ["Roaschia", "CN"], - ["Sambuco", "CN"], - ["San Rocco Di Bernezzo", "CN"], - ], - "12011": [["Martinetto Del Rame", "CN"], ["Aradolo La Bruna", "CN"], ["Borgo San Dalmazzo", "CN"]], - "12012": [ - ["Boves", "CN"], - ["Cerati", "CN"], - ["Fontanelle", "CN"], - ["Mellana", "CN"], - ["San Giacomo", "CN"], - ["Rivoira", "CN"], - ["San Giacomo Di Boves", "CN"], - ], - "12013": [["Chiusa Di Pesio", "CN"], ["San Bartolomeo", "CN"]], - "12014": [["Festiona", "CN"], ["Demonte", "CN"]], - "12015": [["Limone Piemonte", "CN"]], - "12016": [["Peveragno", "CN"], ["Santa Margherita", "CN"], ["San Lorenzo Peveragno", "CN"]], - "12017": [["Robilante", "CN"]], - "12018": [["Brignola", "CN"], ["Roccavione", "CN"], ["Brignola Sottana", "CN"]], - "12019": [["Vernante", "CN"]], - "12020": [ - ["Casteldelfino", "CN"], - ["Monsola", "CN"], - ["Elva", "CN"], - ["Roccabruna", "CN"], - ["Sampeyre", "CN"], - ["Villar San Costanzo", "CN"], - ["Marmora", "CN"], - ["Frassino", "CN"], - ["Venasca", "CN"], - ["Monterosso Grana", "CN"], - ["Lemma", "CN"], - ["Canosio", "CN"], - ["Macra", "CN"], - ["Melle", "CN"], - ["Brossasco", "CN"], - ["Rore", "CN"], - ["Valgrana", "CN"], - ["Pontechianale", "CN"], - ["Villar", "CN"], - ["Villar Sampeyre", "CN"], - ["Stroppo", "CN"], - ["Isasca", "CN"], - ["Vottignasco", "CN"], - ["Castelmagno", "CN"], - ["Cartignano", "CN"], - ["Villafalletto", "CN"], - ["Bellino", "CN"], - ["Celle Di Macra", "CN"], - ["San Pietro Monterosso", "CN"], - ["Villa San Pietro", "CN"], - ["Rossana", "CN"], - ["Tarantasca", "CN"], - ], - "12021": [["Acceglio", "CN"]], - "12022": [["San Chiaffredo", "CN"], ["Valmala", "CN"], ["Busca", "CN"], ["Castelletto Busca", "CN"]], - "12023": [["Caraglio", "CN"]], - "12024": [["Costigliole Saluzzo", "CN"]], - "12025": [["Montemale Di Cuneo", "CN"], ["Dronero", "CN"]], - "12026": [["Piasco", "CN"]], - "12027": [["Pradleves", "CN"]], - "12028": [["San Michele Prazzo", "CN"], ["Prazzo", "CN"]], - "12029": [["Lottulo", "CN"], ["San Damiano Macra", "CN"]], - "12030": [ - ["Scarnafigi", "CN"], - ["Torre San Giorgio", "CN"], - ["Envie", "CN"], - ["Rifreddo", "CN"], - ["Cavallermaggiore", "CN"], - ["Gambasca", "CN"], - ["Monasterolo Di Savigliano", "CN"], - ["Marene", "CN"], - ["Lagnasco", "CN"], - ["Villanova Solaro", "CN"], - ["Faule", "CN"], - ["Murello", "CN"], - ["Ostana", "CN"], - ["Pagno", "CN"], - ["Manta", "CN"], - ["Oncino", "CN"], - ["Rifreddo Di Saluzzo", "CN"], - ["Madonna Del Pilone", "CN"], - ["Brondello", "CN"], - ["Sanfront", "CN"], - ["Polonghera", "CN"], - ["Casalgrasso", "CN"], - ["Crissolo", "CN"], - ["Caramagna Piemonte", "CN"], - ["Cavallerleone", "CN"], - ["Carde'", "CN"], - ["Ruffia", "CN"], - ["Martiniana Po", "CN"], - ], - "12031": [["Bagnolo Piemonte", "CN"]], - "12032": [["Galleane", "CN"], ["Barge", "CN"]], - "12033": [["Moretta", "CN"]], - "12034": [["Paesana", "CN"]], - "12035": [["Racconigi", "CN"]], - "12036": [["Staffarda", "CN"], ["Revello", "CN"]], - "12037": [ - ["Cervignasco", "CN"], - ["Saluzzo", "CN"], - ["San Lazzaro Saluzzo", "CN"], - ["San Lazzaro", "CN"], - ["Castellar", "CN"], - ["Via Dei Romani", "CN"], - ], - "12038": [["Savigliano", "CN"], ["Levaldigi", "CN"]], - "12039": [["Verzuolo", "CN"], ["Villanovetta", "CN"], ["Falicetto", "CN"]], - "12040": [ - ["San Lorenzo Roero", "CN"], - ["Morozzo", "CN"], - ["Piobesi D'Alba", "CN"], - ["Genola", "CN"], - ["Santo Stefano Roero", "CN"], - ["Vezza D'Alba", "CN"], - ["Cervere", "CN"], - ["Ceresole Alba", "CN"], - ["Priocca", "CN"], - ["Canove", "CN"], - ["Sant'Albano Stura", "CN"], - ["Sommariva Perno", "CN"], - ["Castelletto Stura", "CN"], - ["Margarita", "CN"], - ["Montanera", "CN"], - ["Govone", "CN"], - ["Montaldo Roero", "CN"], - ["Trucchi", "CN"], - ["Corneliano D'Alba", "CN"], - ["Sanfre'", "CN"], - ["Monteu Roero", "CN"], - ["San Giuseppe", "CN"], - ["Baldissero D'Alba", "CN"], - ["Salmour", "CN"], - ], - "12041": [["Isola Di Bene Vagienna", "CN"], ["Isola", "CN"], ["Bene Vagienna", "CN"]], - "12042": [["Bandito", "CN"], ["Bra", "CN"], ["Pollenzo", "CN"]], - "12043": [["Canale", "CN"], ["Valpone", "CN"]], - "12044": [["Roata Chiusani", "CN"], ["San Biagio", "CN"], ["Centallo", "CN"]], - "12045": [ - ["Piovani", "CN"], - ["Murazzo", "CN"], - ["Gerbo", "CN"], - ["San Sebastiano Della Comunia", "CN"], - ["San Sebastiano", "CN"], - ["Tagliata", "CN"], - ["San Vittore", "CN"], - ["Fossano", "CN"], - ["Maddalene", "CN"], - ], - "12046": [["San Rocco", "CN"], ["Monta'", "CN"], ["San Rocco Monta'", "CN"]], - "12047": [["Rocca De' Baldi", "CN"], ["Crava", "CN"]], - "12048": [["Sommariva Del Bosco", "CN"]], - "12049": [["Trinita'", "CN"]], - "12050": [ - ["Feisoglio", "CN"], - ["Baraccone", "CN"], - ["Lequio Berria", "CN"], - ["Magliano Alfieri", "CN"], - ["Rocchetta Belbo", "CN"], - ["Guarene", "CN"], - ["Serralunga D'Alba", "CN"], - ["Castagnito", "CN"], - ["Neviglie", "CN"], - ["Borgomale", "CN"], - ["Treiso", "CN"], - ["Torre Bormida", "CN"], - ["Arguello", "CN"], - ["Rodello", "CN"], - ["Sinio", "CN"], - ["Castellinaldo", "CN"], - ["Benevello", "CN"], - ["Sant'Antonio Magliano Alfieri", "CN"], - ["Sant'Antonio", "CN"], - ["San Benedetto Belbo", "CN"], - ["Barbaresco", "CN"], - ["Niella Belbo", "CN"], - ["Serravalle Langhe", "CN"], - ["Vaccheria", "CN"], - ["Cerreto Langhe", "CN"], - ["Trezzo Tinella", "CN"], - ["Montelupo Albese", "CN"], - ["Castelrotto", "CN"], - ["Cravanzana", "CN"], - ["Castino", "CN"], - ["Bosia", "CN"], - ["Albaretto Della Torre", "CN"], - ["Roddino", "CN"], - ["Cissone", "CN"], - ], - "12051": [["Mussotto", "CN"], ["Alba", "CN"]], - "12052": [["Neive", "CN"], ["Borgonuovo Di Neive", "CN"], ["Borgonovo", "CN"]], - "12053": [["Santuario Tinella", "CN"], ["Castiglione Tinella", "CN"]], - "12054": [["Cossano Belbo", "CN"], ["Santa Libera", "CN"]], - "12055": [["Diano D'Alba", "CN"], ["Valle Talloria", "CN"], ["San Rocco Cherasca", "CN"], ["Ricca", "CN"]], - "12056": [["San Donato", "CN"], ["San Donato Di Mango", "CN"], ["Mango", "CN"]], - "12058": [["Camo", "CN"], ["Valdivilla", "CN"], ["Santo Stefano Belbo", "CN"]], - "12060": [ - ["Magliano Alpi", "CN"], - ["Gallo Di Grinzane", "CN"], - ["Bossolasco", "CN"], - ["Farigliano", "CN"], - ["Niella Tanaro", "CN"], - ["Clavesana", "CN"], - ["Somano", "CN"], - ["Roddi", "CN"], - ["Grinzane Cavour", "CN"], - ["Lequio Tanaro", "CN"], - ["Madonna Della Neve", "CN"], - ["Marsaglia", "CN"], - ["Belvedere Langhe", "CN"], - ["Piozzo", "CN"], - ["Castellino Tanaro", "CN"], - ["Macellai", "CN"], - ["Igliano", "CN"], - ["Magliano Alpi Sottano", "CN"], - ["Barolo", "CN"], - ["Magliano Alpi Soprano", "CN"], - ["Gallo", "CN"], - ["Verduno", "CN"], - ["Rocca Ciglie'", "CN"], - ["Bastia Mondovi'", "CN"], - ["Bonvicino", "CN"], - ["Ciglie'", "CN"], - ["Murazzano", "CN"], - ["Castiglione Falletto", "CN"], - ["Pocapaglia", "CN"], - ["Novello", "CN"], - ["Monchiero", "CN"], - ], - "12061": [["Carru'", "CN"]], - "12062": [["Bricco Favole", "CN"], ["Cherasco", "CN"], ["Roreto", "CN"]], - "12063": [["Dogliani", "CN"]], - "12064": [["Rivalta", "CN"], ["La Morra", "CN"]], - "12065": [["Perno", "CN"], ["Monforte D'Alba", "CN"]], - "12066": [["Borgo", "CN"], ["Monticello D'Alba", "CN"]], - "12068": [["Narzole", "CN"]], - "12069": [ - ["Cinzano", "CN"], - ["Villa", "CN"], - ["Santa Vittoria D'Alba Cinzano", "CN"], - ["Santa Vittoria D'Alba", "CN"], - ], - "12070": [ - ["Montezemolo", "CN"], - ["Perlo", "CN"], - ["Mombarcaro", "CN"], - ["Priero", "CN"], - ["Bragioli", "CN"], - ["Viola", "CN"], - ["Nucetto", "CN"], - ["Lisio", "CN"], - ["Paroldo", "CN"], - ["Castelletto Uzzone", "CN"], - ["Scagnello", "CN"], - ["Alto", "CN"], - ["Scaletta Uzzone", "CN"], - ["Sale San Giovanni", "CN"], - ["Gorzegno", "CN"], - ["Levice", "CN"], - ["Castelnuovo Di Ceva", "CN"], - ["Pezzolo Valle Uzzone", "CN"], - ["Gottasecca", "CN"], - ["Priola", "CN"], - ["Torresina", "CN"], - ["Sale Delle Langhe", "CN"], - ["Battifollo", "CN"], - ["Perletto", "CN"], - ["Caprauna", "CN"], - ["Mombasiglio", "CN"], - ], - "12072": [["Camerana", "CN"]], - "12073": [["Ceva", "CN"], ["Roascio", "CN"]], - "12074": [["Bergolo", "CN"], ["Cortemilia", "CN"]], - "12075": [ - ["Garessio", "CN"], - ["Garessio Borgo Piave", "CN"], - ["Cerisola", "CN"], - ["Garessio Borgo Ponte", "CN"], - ["Trappa", "CN"], - ], - "12076": [["Lesegno", "CN"]], - "12077": [["Prunetto", "CN"], ["Monesiglio", "CN"]], - "12078": [["Ormea", "CN"], ["Ponte Di Nava", "CN"]], - "12079": [["Saliceto", "CN"]], - "12080": [ - ["Pra'", "CN"], - ["Montaldo Di Mondovi'", "CN"], - ["Monasterolo Casotto", "CN"], - ["Monastero Di Vasco", "CN"], - ["Vicoforte", "CN"], - ["Santuario Di Vicoforte", "CN"], - ["Le Moline", "CN"], - ["Roburent", "CN"], - ["Torre Mondovi'", "CN"], - ["San Michele Mondovi'", "CN"], - ["Briaglia", "CN"], - ["Pianfei", "CN"], - ["Moline", "CN"], - ["Pra' Di Roburent", "CN"], - ], - "12081": [["Beinette", "CN"]], - "12082": [["Frabosa Soprana", "CN"], ["Bossea", "CN"], ["Fontane", "CN"], ["Corsaglia", "CN"]], - "12083": [["Gosi Pianvignale", "CN"], ["Gosi", "CN"], ["Frabosa Sottana", "CN"]], - "12084": [ - ["Pogliola", "CN"], - ["Breo", "CN"], - ["Gratteria", "CN"], - ["Breolungi", "CN"], - ["Sant'Anna Avagnina", "CN"], - ["Piazza", "CN"], - ["Rifreddo Mondovi'", "CN"], - ["Pascomonti", "CN"], - ["Mondovi'", "CN"], - ], - "12087": [["Valcasotto", "CN"], ["Pamparato", "CN"], ["Serra", "CN"], ["Serra Pamparato", "CN"]], - "12088": [["Roccaforte Mondovi'", "CN"], ["Lurisia", "CN"], ["Prea", "CN"], ["Prea Di Roccaforte", "CN"]], - "12089": [["Villanova Mondovi'", "CN"]], - "12100": [ - ["Madonna Delle Grazie", "CN"], - ["Passatore", "CN"], - ["San Pietro Del Gallo", "CN"], - ["San Benigno", "CN"], - ["Borgo San Giuseppe", "CN"], - ["San Rocco Castagnaretta", "CN"], - ["Confreria", "CN"], - ["Borgo Gesso", "CN"], - ["Spinetta", "CN"], - ["Madonna Dell'Olmo", "CN"], - ["Ronchi", "CN"], - ["Cuneo", "CN"], - ["Roata Rossi", "CN"], - ], - "28010": [ - ["Fontaneto D'Agogna", "NO"], - ["Boca", "NO"], - ["Bogogno", "NO"], - ["Cavallirio", "NO"], - ["Revislate", "NO"], - ["Bolzano Novarese", "NO"], - ["Miasino", "NO"], - ["Gargallo", "NO"], - ["Alzo", "NO"], - ["Soriso", "NO"], - ["Briga Novarese", "NO"], - ["Cavaglietto", "NO"], - ["Pisano", "NO"], - ["Sologno", "NO"], - ["Barengo", "NO"], - ["Ameno", "NO"], - ["Vaprio D'Agogna", "NO"], - ["Cavaglio D'Agogna", "NO"], - ["Nebbiuno", "NO"], - ["Caltignaga", "NO"], - ["Agrate Conturbia", "NO"], - ["Pella", "NO"], - ["Divignano", "NO"], - ["Colazza", "NO"], - ], - "28011": [["Coiromonte", "NO"], ["Armeno", "NO"], ["Sovazza", "NO"]], - "28012": [["Cressa", "NO"]], - "28013": [["Veruno", "NO"], ["Gattico", "NO"]], - "28014": [["Maggiora", "NO"]], - "28015": [["Momo", "NO"]], - "28016": [["Orta Novarese", "NO"], ["Isola San Giulio", "NO"], ["Orta San Giulio", "NO"]], - "28017": [["San Maurizio D'Opaglio", "NO"]], - "28019": [["Suno", "NO"], ["Baraggia", "NO"]], - "28021": [ - ["Borgomanero", "NO"], - ["Vergano Di Borgomanero", "NO"], - ["Santa Cristina Di Borgomanero", "NO"], - ["San Marco Di Borgomanero", "NO"], - ], - "28024": [["Gozzano", "NO"]], - "28028": [["Pratolungo", "NO"], ["Pettenasco", "NO"]], - "28040": [ - ["Oleggio Castello", "NO"], - ["Lesa", "NO"], - ["Dormelletto", "NO"], - ["Paruzzaro", "NO"], - ["Marano Ticino", "NO"], - ["Mezzomerico", "NO"], - ["Borgo Ticino", "NO"], - ["Varallo Pombia", "NO"], - ["Massino Visconti", "NO"], - ], - "28041": [["Arona", "NO"], ["Dagnente", "NO"], ["Mercurago", "NO"]], - "28043": [["Bellinzago Novarese", "NO"]], - "28045": [["Invorio", "NO"]], - "28046": [["Ghevio", "NO"], ["Meina", "NO"]], - "28047": [["Oleggio", "NO"], ["Fornaci", "NO"]], - "28050": [["Pombia", "NO"]], - "28053": [["Castelletto Sopra Ticino", "NO"]], - "28060": [ - ["Vinzaglio", "NO"], - ["Granozzo Con Monticello", "NO"], - ["Casalvolone", "NO"], - ["Granozzo", "NO"], - ["San Nazzaro Sesia", "NO"], - ["Castellazzo Novarese", "NO"], - ["Casaleggio Novara", "NO"], - ["Orfengo", "NO"], - ["Nibbia", "NO"], - ["Mandello Vitta", "NO"], - ["Sozzago", "NO"], - ["Cameriano", "NO"], - ["Vicolungo", "NO"], - ["Cureggio", "NO"], - ["Casalbeltrame", "NO"], - ["Recetto", "NO"], - ["San Pietro Mosezzo", "NO"], - ["Comignago", "NO"], - ["Casalino", "NO"], - ], - "28061": [["Biandrate", "NO"]], - "28062": [["Cameri Aeronautica", "NO"], ["Cameri", "NO"]], - "28064": [["Sillavengo", "NO"], ["Carpignano Sesia", "NO"], ["Landiona", "NO"]], - "28065": [["Cerano", "NO"]], - "28066": [["Galliate", "NO"]], - "28068": [["Romentino", "NO"]], - "28069": [["Trecate", "NO"]], - "28070": [ - ["Sizzano", "NO"], - ["Garbagna Novarese", "NO"], - ["Nibbiola", "NO"], - ["Tornaco", "NO"], - ["Terdobbiate", "NO"], - ], - "28071": [["Borgolavezzaro", "NO"]], - "28072": [["San Bernardino", "NO"], ["Briona", "NO"]], - "28073": [["Fara Novarese", "NO"]], - "28074": [["Ghemme", "NO"]], - "28075": [["Grignasco", "NO"]], - "28076": [["Pogno", "NO"]], - "28077": [["Prato Sesia", "NO"]], - "28078": [["Romagnano Sesia", "NO"]], - "28079": [["Vespolate", "NO"]], - "28100": [ - ["Veveri", "NO"], - ["Vignale", "NO"], - ["Olengo", "NO"], - ["Bicocca Di Novara", "NO"], - ["Torrion Quartara", "NO"], - ["Agognate", "NO"], - ["Sant'Agabio", "NO"], - ["Casalgiate", "NO"], - ["Novara", "NO"], - ["Lumellogno", "NO"], - ["Pernate", "NO"], - ], - "10010": [ - ["Colleretto Giacosa", "TO"], - ["Salerano Canavese", "TO"], - ["Banchette", "TO"], - ["Lessolo", "TO"], - ["Bairo", "TO"], - ["Orio Canavese", "TO"], - ["Parella", "TO"], - ["Tavagnasco", "TO"], - ["Palazzo Canavese", "TO"], - ["Nomaglio", "TO"], - ["Settimo Rottaro", "TO"], - ["Quagliuzzo", "TO"], - ["Fiorano Canavese", "TO"], - ["Candia Canavese", "TO"], - ["Burolo", "TO"], - ["Calea", "TO"], - ["Mercenasco", "TO"], - ["Quassolo", "TO"], - ["San Martino Canavese", "TO"], - ["Masino", "TO"], - ["Andrate", "TO"], - ["Cossano Canavese", "TO"], - ["Quincinetto", "TO"], - ["Strambinello", "TO"], - ["Barone Canavese", "TO"], - ["Carema", "TO"], - ["Azeglio", "TO"], - ["Gauna", "TO"], - ["Piverone", "TO"], - ["Perosa Canavese", "TO"], - ["Torre Canavese", "TO"], - ["Albiano D'Ivrea", "TO"], - ["Villate", "TO"], - ["Cascinette D'Ivrea", "TO"], - ["Settimo Vittone", "TO"], - ["Caravino", "TO"], - ["Scarmagno", "TO"], - ["Chiaverano", "TO"], - ["Loranze'", "TO"], - ["Rueglio", "TO"], - ], - "10011": [["Aglie'", "TO"]], - "10012": [["Bollengo", "TO"]], - "10013": [["Baio Dora", "TO"], ["Borgofranco D'Ivrea", "TO"]], - "10014": [["Caluso", "TO"], ["Vallo Di Caluso", "TO"], ["Vallo", "TO"], ["Are'", "TO"], ["Rodallo", "TO"]], - "10015": [["San Bernardo D'Ivrea", "TO"], ["Torre Balfredo", "TO"], ["Ivrea", "TO"]], - "10016": [["Montalto Dora", "TO"]], - "10017": [["Montanaro", "TO"]], - "10018": [["Pavone Canavese", "TO"]], - "10019": [["Strambino", "TO"], ["Cerone", "TO"], ["Carrone", "TO"]], - "10020": [ - ["Pecetto Torinese", "TO"], - ["Moriondo Torinese", "TO"], - ["Marcorengo", "TO"], - ["Cavagnolo", "TO"], - ["Colombaro", "TO"], - ["San Sebastiano Da Po", "TO"], - ["Verrua Savoia", "TO"], - ["Brusasco", "TO"], - ["Riva Presso Chieri", "TO"], - ["San Pietro", "TO"], - ["Baldissero Torinese", "TO"], - ["Arignano", "TO"], - ["Monteu Da Po", "TO"], - ["Lauriano", "TO"], - ["Madonna Della Scala", "TO"], - ["Brozolo", "TO"], - ["Pavarolo", "TO"], - ["Marentino", "TO"], - ["Andezeno", "TO"], - ["Montaldo Torinese", "TO"], - ["Cambiano", "TO"], - ["Mombello Di Torino", "TO"], - ["Casalborgone", "TO"], - ["Rivodora", "TO"], - ], - "10022": [ - ["Cavalleri", "TO"], - ["Carmagnola", "TO"], - ["Fumeri", "TO"], - ["San Michele E Grato", "TO"], - ["San Bernardo Carmagnola", "TO"], - ["Borgo Salsasio", "TO"], - ], - "10023": [["Chieri", "TO"], ["Pessione", "TO"]], - "10024": [ - ["Moncalieri", "TO"], - ["Revigliasco", "TO"], - ["Tagliaferro", "TO"], - ["Barauda", "TO"], - ["Colle Della Maddalena", "TO"], - ["Testona", "TO"], - ["Revigliasco Torinese", "TO"], - ["Borgo San Pietro Di Moncalieri", "TO"], - ], - "10025": [["Pino Torinese", "TO"]], - "10026": [["Santena", "TO"]], - "10028": [["Valle Sauglio", "TO"], ["Trofarello", "TO"]], - "10029": [["Villastellone", "TO"]], - "10030": [ - ["Maglione", "TO"], - ["Vische", "TO"], - ["Tina", "TO"], - ["Rondissone", "TO"], - ["Vestigne'", "TO"], - ["Villareggia", "TO"], - ], - "10031": [["Borgomasino", "TO"]], - "10032": [["Brandizzo", "TO"]], - "10034": [["Boschetto", "TO"], ["Chivasso", "TO"], ["Torassi", "TO"], ["Castelrosso", "TO"]], - "10035": [["Casale", "TO"], ["Mazze'", "TO"], ["Tonengo Di Mazze'", "TO"]], - "10036": [["Olimpia", "TO"], ["Settimo Torinese", "TO"]], - "10037": [["Torrazza Piemonte", "TO"]], - "10038": [["Verolengo", "TO"], ["Casabianca", "TO"], ["Borgo Revel", "TO"]], - "10039": [["Pecco", "TO"], ["Lugnacco", "TO"], ["Alice Superiore", "TO"]], - "10040": [ - ["La Cassa", "TO"], - ["Rivarossa", "TO"], - ["Rivera", "TO"], - ["Rivalta Di Torino", "TO"], - ["Milanere", "TO"], - ["Tedeschi", "TO"], - ["Bivio Cumiana", "TO"], - ["Givoletto", "TO"], - ["San Gillio", "TO"], - ["Caselette", "TO"], - ["Gerbole", "TO"], - ["Montelera", "TO"], - ["Zucche", "TO"], - ["Druento", "TO"], - ["Rubiana", "TO"], - ["Cumiana", "TO"], - ["Val Della Torre", "TO"], - ["Leini'", "TO"], - ["Lombardore", "TO"], - ["Almese", "TO"], - ["Novaretto", "TO"], - ["Villar Dora", "TO"], - ["Piobesi Torinese", "TO"], - ["Brione", "TO"], - ["La Loggia", "TO"], - ["Osasio", "TO"], - ["Caprie", "TO"], - ["Pralormo", "TO"], - ["Lombriasco", "TO"], - ["Volvera", "TO"], - ], - "10041": [["Carignano", "TO"], ["Ceretto Di Carignano", "TO"], ["Ceretto", "TO"]], - "10042": [["Stupinigi", "TO"], ["Nichelino", "TO"]], - "10043": [["Orbassano", "TO"]], - "10044": [["Pianezza", "TO"]], - "10045": [["Piossasco", "TO"], ["Garola", "TO"]], - "10046": [["Marocchi", "TO"], ["Avatanei", "TO"], ["Isolabella", "TO"], ["Poirino", "TO"], ["Favari", "TO"]], - "10048": [["Vinovo", "TO"], ["Garino", "TO"]], - "10050": [ - ["Sauze D'Oulx", "TO"], - ["Coazze", "TO"], - ["San Giorio Di Susa", "TO"], - ["Borgone Susa", "TO"], - ["Chiomonte", "TO"], - ["Salice D'Ulzio", "TO"], - ["Baratte", "TO"], - ["Chianocco", "TO"], - ["Vernetto", "TO"], - ["Meana Di Susa", "TO"], - ["Novalesa", "TO"], - ["San Didero", "TO"], - ["Zoie", "TO"], - ["Claviere", "TO"], - ["Chiusa Di San Michele", "TO"], - ["Giaglione", "TO"], - ["Venaus", "TO"], - ["San Giorio", "TO"], - ["Mattie", "TO"], - ["Gravere", "TO"], - ["Sant'Antonino Di Susa", "TO"], - ["Exilles", "TO"], - ["Vaie", "TO"], - ["Villar Focchiardo", "TO"], - ["Moncenisio", "TO"], - ["Salbertrand", "TO"], - ["Bruzolo", "TO"], - ], - "10051": [["Drubiaglio", "TO"], ["Grangia", "TO"], ["Avigliana", "TO"]], - "10052": [["Bardonecchia", "TO"], ["Borgonovo Bardonecchia", "TO"]], - "10053": [["Foresto", "TO"], ["Bussoleno", "TO"]], - "10054": [["Bousson", "TO"], ["Cesana Torinese", "TO"], ["Solomiac", "TO"], ["Sauze Di Cesana", "TO"]], - "10055": [["Condove", "TO"]], - "10056": [["Beaulard", "TO"], ["Oulx", "TO"]], - "10057": [["Sant'Ambrogio Di Torino", "TO"]], - "10058": [["Sestriere", "TO"], ["Colle Sestriere", "TO"]], - "10059": [["Mompantero", "TO"], ["San Giuseppe", "TO"], ["Susa", "TO"]], - "10060": [ - ["Bibiana", "TO"], - ["Bricherasio", "TO"], - ["Villar Pellice", "TO"], - ["Rora'", "TO"], - ["Combalere", "TO"], - ["Cantalupa", "TO"], - ["Airasca", "TO"], - ["Roletto", "TO"], - ["Inverso Pinasca", "TO"], - ["Pragelato", "TO"], - ["Campiglione", "TO"], - ["Scalenghe", "TO"], - ["Castagnole Piemonte", "TO"], - ["Macello", "TO"], - ["Pancalieri", "TO"], - ["Mentoulles", "TO"], - ["None", "TO"], - ["Villaretto", "TO"], - ["Candiolo", "TO"], - ["Villaretto Chisone", "TO"], - ["Roure", "TO"], - ["Perrero", "TO"], - ["Dubbione", "TO"], - ["Piscina", "TO"], - ["Prarostino", "TO"], - ["Angrogna", "TO"], - ["Miradolo", "TO"], - ["Garzigliana", "TO"], - ["Frossasco", "TO"], - ["Massello", "TO"], - ["Bobbio Pellice", "TO"], - ["Roreto", "TO"], - ["Riclaretto", "TO"], - ["Castel Del Bosco", "TO"], - ["Virle Piemonte", "TO"], - ["Roreto Chisone", "TO"], - ["Buriasco", "TO"], - ["Viotto", "TO"], - ["Prali", "TO"], - ["Osasco", "TO"], - ["Salza Di Pinerolo", "TO"], - ["Fenestrelle", "TO"], - ["Pinasca", "TO"], - ["Castelnuovo", "TO"], - ["Pra' Catinat", "TO"], - ["Cercenasco", "TO"], - ["San Pietro Val Lemina", "TO"], - ["San Secondo Di Pinerolo", "TO"], - ["Usseaux", "TO"], - ["Porte", "TO"], - ["Lusernetta", "TO"], - ["Campiglione Fenile", "TO"], - ], - "10061": [["Cavour", "TO"]], - "10062": [["Airali", "TO"], ["Luserna", "TO"], ["Luserna San Giovanni", "TO"]], - "10063": [["Perosa Argentina", "TO"], ["Pomaretto", "TO"]], - "10064": [["Abbadia Alpina", "TO"], ["Riva Di Pinerolo", "TO"], ["Pinerolo", "TO"], ["Baudenasca", "TO"]], - "10065": [["San Germano Chisone", "TO"], ["Pramollo", "TO"]], - "10066": [["Torre Pellice", "TO"]], - "10067": [["Vigone", "TO"]], - "10068": [["Villafranca Piemonte", "TO"]], - "10069": [["Villar Perosa", "TO"]], - "10070": [ - ["Fiano", "TO"], - ["Levone", "TO"], - ["Villanova Canavese", "TO"], - ["Benne", "TO"], - ["Vauda Canavese Superiore", "TO"], - ["Ala Di Stura", "TO"], - ["Front", "TO"], - ["La Villa", "TO"], - ["Vauda Canavese", "TO"], - ["Monasterolo Torinese", "TO"], - ["San Francesco Al Campo", "TO"], - ["Vallo Torinese", "TO"], - ["Ceres", "TO"], - ["Col San Giovanni Di Viu'", "TO"], - ["Varisella", "TO"], - ["Corio", "TO"], - ["Mezzenile", "TO"], - ["Cantoira", "TO"], - ["Rocca Canavese", "TO"], - ["Mondrone", "TO"], - ["Coassolo Torinese", "TO"], - ["San Carlo Canavese", "TO"], - ["Lemie", "TO"], - ["Col San Giovanni", "TO"], - ["Bonzo", "TO"], - ["Pessinetto", "TO"], - ["Germagnano", "TO"], - ["Balangero", "TO"], - ["Monasterolo", "TO"], - ["Cafasse", "TO"], - ["Traves", "TO"], - ["Viu'", "TO"], - ["Procaria", "TO"], - ["Forno Alpi Graie", "TO"], - ["Groscavallo", "TO"], - ["Grosso", "TO"], - ["Usseglio", "TO"], - ["Monastero Di Lanzo", "TO"], - ["Balme", "TO"], - ["Robassomero", "TO"], - ["Barbania", "TO"], - ["Chialamberto", "TO"], - ], - "10071": [["Borgaro Torinese", "TO"]], - "10072": [["Caselle Torinese", "TO"], ["Mappano", "TO"]], - "10073": [["Devesi", "TO"], ["Cirie'", "TO"]], - "10074": [["Lanzo Torinese", "TO"]], - "10075": [["Mathi", "TO"]], - "10076": [["San Giovanni", "TO"], ["Nole", "TO"]], - "10077": [["Malanghero", "TO"], ["Ceretta Di San Maurizio Canavese", "TO"], ["San Maurizio Canavese", "TO"]], - "10078": [["Venaria Reale", "TO"], ["Altessano", "TO"]], - "10080": [ - ["Rosone", "TO"], - ["Ciconio", "TO"], - ["Baldissero Canavese", "TO"], - ["Sparone", "TO"], - ["Lusiglie'", "TO"], - ["San Ponso", "TO"], - ["Oglianico", "TO"], - ["Ceresole Reale", "TO"], - ["Cintano", "TO"], - ["Fornolosa", "TO"], - ["Alpette", "TO"], - ["Drusacco", "TO"], - ["Pratiglione", "TO"], - ["Ozegna", "TO"], - ["Traversella", "TO"], - ["Casetti", "TO"], - ["Ingria", "TO"], - ["Colleretto Castelnuovo", "TO"], - ["Valprato Soana", "TO"], - ["Vistrorio", "TO"], - ["San Colombano Belmonte", "TO"], - ["Villa Castelnuovo", "TO"], - ["Ribordone", "TO"], - ["Bosconero", "TO"], - ["Canischio", "TO"], - ["Salassa", "TO"], - ["Brosso", "TO"], - ["Noasca", "TO"], - ["Locana", "TO"], - ["Castelnuovo Nigra", "TO"], - ["Frassinetto", "TO"], - ["Pertusio", "TO"], - ["Prascorsano", "TO"], - ["Vidracco", "TO"], - ["Chiesanuova", "TO"], - ["Feletto", "TO"], - ["Issiglio", "TO"], - ["Ronco Canavese", "TO"], - ["Busano", "TO"], - ["San Benigno Canavese", "TO"], - ["Rivara", "TO"], - ["Borgiallo", "TO"], - ], - "10081": [ - ["Campo Canavese", "TO"], - ["San Giovanni Canavese", "TO"], - ["Muriaglio", "TO"], - ["Castellamonte", "TO"], - ], - "10082": [["Priacco", "TO"], ["Salto Canavese", "TO"], ["Cuorgne'", "TO"]], - "10083": [["Favria", "TO"]], - "10084": [["Forno Canavese", "TO"]], - "10085": [["Pont Canavese", "TO"]], - "10086": [["Argentera", "TO"], ["Rivarolo Canavese", "TO"]], - "10087": [["Valperga", "TO"]], - "10088": [["Volpiano", "TO"]], - "10089": [["Vico Canavese", "TO"], ["Trausella", "TO"], ["Meugliano", "TO"]], - "10090": [ - ["San Bernardino", "TO"], - ["San Giorgio Canavese", "TO"], - ["Bussolino", "TO"], - ["Sciolze", "TO"], - ["Rivalba", "TO"], - ["Piana San Raffaele", "TO"], - ["San Raffaele Cimena", "TO"], - ["Trana", "TO"], - ["Cinzano", "TO"], - ["Foglizzo", "TO"], - ["Sangano", "TO"], - ["Bruino", "TO"], - ["Gassino Torinese", "TO"], - ["Reano", "TO"], - ["Cuceglio", "TO"], - ["Vialfre'", "TO"], - ["Buttigliera Alta", "TO"], - ["San Giusto Canavese", "TO"], - ["Villaggio La Quercia", "TO"], - ["Villarbasse", "TO"], - ["Castagneto Po", "TO"], - ["Montalenghe", "TO"], - ["Romano Canavese", "TO"], - ["Rosta", "TO"], - ["Corbiglia", "TO"], - ["Castiglione Torinese", "TO"], - ["Ferriera", "TO"], - ], - "10091": [["Alpignano", "TO"]], - "10092": [["Borgaretto", "TO"], ["Beinasco", "TO"]], - "10093": [ - ["Leumann", "TO"], - ["Savonera", "TO"], - ["Collegno", "TO"], - ["Borgata Paradiso Di Collegno", "TO"], - ["Regina Margherita", "TO"], - ], - "10094": [["Valgioie", "TO"], ["Pontepietra", "TO"], ["Giaveno", "TO"], ["Selvaggio", "TO"]], - "10095": [["Gerbido", "TO"], ["Lesna", "TO"], ["Grugliasco", "TO"]], - "10098": [["Tetti Neirotti", "TO"], ["Rivoli", "TO"], ["Bruere", "TO"], ["Cascine Vica", "TO"]], - "10099": [["San Mauro Torinese", "TO"]], - "10100": [["Torino", "TO"]], - "10121": [["Torino", "TO"]], - "10122": [["Torino", "TO"]], - "10123": [["Torino", "TO"]], - "10124": [["Torino", "TO"]], - "10125": [["Torino", "TO"]], - "10126": [["Torino", "TO"]], - "10127": [["Torino", "TO"]], - "10128": [["Torino", "TO"]], - "10129": [["Torino", "TO"]], - "10131": [["Torino", "TO"]], - "10132": [["Superga", "TO"], ["Torino", "TO"]], - "10133": [["Torino", "TO"], ["Cavoretto", "TO"]], - "10134": [["Torino", "TO"]], - "10135": [["Torino", "TO"]], - "10136": [["Torino", "TO"]], - "10137": [["Torino", "TO"]], - "10138": [["Torino", "TO"]], - "10139": [["Torino", "TO"]], - "10141": [["Torino", "TO"]], - "10142": [["Torino", "TO"]], - "10143": [["Torino", "TO"]], - "10144": [["Torino", "TO"]], - "10145": [["Torino", "TO"]], - "10146": [["Torino", "TO"]], - "10147": [["Torino", "TO"]], - "10148": [["Torino", "TO"]], - "10149": [["Torino", "TO"]], - "10151": [["Torino", "TO"]], - "10152": [["Torino", "TO"]], - "10153": [["Torino", "TO"]], - "10154": [["Torino", "TO"]], - "10155": [["Torino", "TO"]], - "10156": [["Bertolla Barca", "TO"], ["Torino", "TO"], ["Falchera", "TO"]], - "28801": [["Cossogno", "VB"]], - "28802": [["Albo", "VB"], ["Mergozzo", "VB"]], - "28803": [["Premosello Chiovenda", "VB"], ["Cuzzago", "VB"]], - "28804": [["San Bernardino Verbano", "VB"], ["Bieno", "VB"]], - "28805": [["Vogogna", "VB"]], - "28811": [["Cissano", "VB"], ["Cresseglio", "VB"], ["Arizzano", "VB"]], - "28812": [["Aurano", "VB"]], - "28813": [["Bee", "VB"]], - "28814": [["Cambiasca", "VB"]], - "28815": [["Caprezzo", "VB"]], - "28816": [["Intragna", "VB"]], - "28817": [["Miazzina", "VB"]], - "28818": [["Premeno", "VB"]], - "28819": [["Vignone", "VB"]], - "28821": [["Cannero Riviera", "VB"]], - "28822": [["Cannobio", "VB"]], - "28823": [["Ghiffa", "VB"], ["Susello", "VB"], ["Cargiago", "VB"]], - "28824": [["Gonte", "VB"], ["Oggebbio", "VB"]], - "28825": [["Ponte Di Falmenta", "VB"]], - "28826": [["Trarego Viggiona", "VB"]], - "28827": [["Cursolo Orasso", "VB"], ["Cavaglio Spoccia", "VB"], ["Falmenta", "VB"], ["Airetta", "VB"]], - "28828": [["Gurro", "VB"]], - "28831": [["Feriolo Baveno", "VB"], ["Feriolo", "VB"], ["Baveno", "VB"]], - "28832": [["Belgirate", "VB"]], - "28833": [["Brovello Carpugnino", "VB"]], - "28836": [["Gignese", "VB"], ["Vezzo", "VB"]], - "28838": [ - ["Binda", "VB"], - ["Levo", "VB"], - ["Carciano", "VB"], - ["Isola Bella", "VB"], - ["Magognino", "VB"], - ["Stresa", "VB"], - ], - "28841": [["Antrona Schieranco", "VB"], ["Antronapiana", "VB"]], - "28842": [["Fonti", "VB"], ["Bognanco Fonti", "VB"], ["Bognanco", "VB"]], - "28843": [["Montescheno", "VB"]], - "28844": [["Villadossola", "VB"]], - "28845": [["Domodossola", "VB"]], - "28846": [["Viganella", "VB"], ["Seppiana", "VB"]], - "28851": [["Cuzzego", "VB"], ["Beura", "VB"], ["Beura Cardezza", "VB"]], - "28852": [["Craveggia", "VB"], ["Vocogno", "VB"]], - "28853": [["Druogno", "VB"]], - "28854": [["Malesco", "VB"], ["Zornasco", "VB"], ["Finero", "VB"]], - "28855": [["Masera", "VB"]], - "28856": [["Re", "VB"], ["Villette", "VB"]], - "28857": [["Santa Maria Maggiore", "VB"]], - "28858": [["Toceno", "VB"]], - "28859": [["Trontano", "VB"]], - "28861": [["Baceno", "VB"]], - "28862": [["Crodo", "VB"]], - "28863": [["Formazza", "VB"]], - "28864": [["Roldo", "VB"], ["Montecrestese", "VB"], ["Pontetto", "VB"]], - "28865": [["Preglia", "VB"], ["Crevoladossola", "VB"]], - "28866": [["Premia", "VB"], ["San Rocco", "VB"]], - "28868": [["Iselle", "VB"], ["Trasquera", "VB"], ["Varzo", "VB"]], - "28871": [["Bannio Anzino", "VB"]], - "28873": [["Calasca Castiglione", "VB"], ["Castiglione D'Ossola", "VB"], ["Castiglione", "VB"]], - "28875": [["Ceppo Morelli", "VB"]], - "28876": [["Pestarena", "VB"], ["Borca", "VB"], ["Borca Di Macugnaga", "VB"], ["Macugnaga", "VB"]], - "28877": [["Anzola D'Ossola", "VB"], ["Ornavasso", "VB"]], - "28879": [["San Carlo", "VB"], ["Vanzone Con San Carlo", "VB"]], - "28881": [ - ["Cereda", "VB"], - ["Ramate", "VB"], - ["Sant'Anna", "VB"], - ["Casale Corte Cerro", "VB"], - ["Gabbio", "VB"], - ["Gabbio Con Monte Ossolano", "VB"], - ], - "28883": [["Granerolo", "VB"], ["Gravellona Toce", "VB"], ["Pedemonte", "VB"]], - "28884": [["Pallanzeno", "VB"]], - "28885": [["Piedimulera", "VB"]], - "28886": [["Pieve Vergonte", "VB"]], - "28887": [ - ["Cireggio", "VB"], - ["Crusinallo", "VB"], - ["Omegna", "VB"], - ["Bagnella", "VB"], - ["Germagno", "VB"], - ["Agrano", "VB"], - ], - "28891": [["Nonio", "VB"], ["Cesara", "VB"]], - "28893": [["Loreglia", "VB"]], - "28894": [["Madonna Del Sasso", "VB"]], - "28895": [["Forno Di Omegna", "VB"], ["Massiola", "VB"]], - "28896": [["Quarna Sotto", "VB"]], - "28897": [["Fornero", "VB"], ["Luzzogno", "VB"], ["Valstrona", "VB"], ["Sambughetto", "VB"]], - "28898": [["Quarna Sopra", "VB"]], - "28899": [["Arola", "VB"]], - "28922": [["Verbania", "VB"]], - "13010": [ - ["Civiasco", "VC"], - ["Caresana", "VC"], - ["Postua", "VC"], - ["Villata", "VC"], - ["Guardabosone", "VC"], - ["Motta De' Conti", "VC"], - ["Stroppiana", "VC"], - ["Pezzana", "VC"], - ], - "13011": [["Bettole Sesia", "VC"], ["Isolella", "VC"], ["Borgosesia", "VC"]], - "13012": [["Borgo Vercelli", "VC"], ["Prarolo", "VC"]], - "13017": [["Quarona", "VC"], ["Doccio", "VC"]], - "13018": [["Valduggia", "VC"], ["Zuccaro", "VC"]], - "13019": [["Morca", "VC"], ["Valmaggia", "VC"], ["Varallo", "VC"], ["Roccapietra", "VC"]], - "13020": [ - ["Sabbia", "VC"], - ["Mollia", "VC"], - ["Balmuccia", "VC"], - ["Rimella", "VC"], - ["Breia", "VC"], - ["Rassa", "VC"], - ["Vocca", "VC"], - ["Rossa", "VC"], - ["Piode", "VC"], - ["Cravagliana", "VC"], - ["Ferrera", "VC"], - ["Ca' Di Ianzo", "VC"], - ["Pila", "VC"], - ], - "13021": [["Riva Valdobbia", "VC"], ["Alagna Valsesia", "VC"]], - "13022": [["Fervento", "VC"], ["Boccioleto", "VC"]], - "13023": [["Campertogno", "VC"]], - "13024": [["Cellio", "VC"]], - "13025": [["Fobello", "VC"], ["Cervatto", "VC"]], - "13026": [["Carcoforo", "VC"], ["Rima San Giuseppe", "VC"], ["Rimasco", "VC"]], - "13027": [["Scopa", "VC"]], - "13028": [["Scopello", "VC"]], - "13030": [ - ["San Giacomo Vercellese", "VC"], - ["Albano Vercellese", "VC"], - ["Villarboit", "VC"], - ["Rive", "VC"], - ["Oldenico", "VC"], - ["Ghislarengo", "VC"], - ["Greggio", "VC"], - ["Caresanablot", "VC"], - ["Quinto Vercellese", "VC"], - ["Collobiano", "VC"], - ["Pertengo", "VC"], - ["Casanova Elvo", "VC"], - ["Formigliana", "VC"], - ], - "13031": [["Arborio", "VC"]], - "13032": [["Asigliano Vercellese", "VC"]], - "13033": [["Costanzana", "VC"]], - "13034": [["Desana", "VC"], ["Lignana", "VC"]], - "13035": [["Lenta", "VC"]], - "13036": [["Ronsecco", "VC"]], - "13037": [["Bornate Sesia", "VC"], ["Vintebbio", "VC"], ["Serravalle Sesia", "VC"]], - "13038": [["Tricerro", "VC"]], - "13039": [["Trino", "VC"]], - "13040": [ - ["Crova", "VC"], - ["Moncrivello", "VC"], - ["Buronzo", "VC"], - ["Palazzolo Vercellese", "VC"], - ["Rovasenda", "VC"], - ["Borgo D'Ale", "VC"], - ["Alice Castello", "VC"], - ["Salasco", "VC"], - ["Fontanetto Po", "VC"], - ["Fornace Crocicchio", "VC"], - ["Saluggia", "VC"], - ["Sali Vercellese", "VC"], - ["Balocco", "VC"], - ["Sant'Antonino", "VC"], - ["Carisio", "VC"], - ], - "13041": [["Bianze'", "VC"]], - "13043": [["Cigliano", "VC"]], - "13044": [["Crescentino", "VC"], ["San Silvestro", "VC"], ["San Genuario", "VC"]], - "13045": [["Lozzolo", "VC"], ["Gattinara", "VC"]], - "13046": [["Lamporo", "VC"], ["Livorno Ferraris", "VC"]], - "13047": [["Olcenengo", "VC"], ["San Germano Vercellese", "VC"]], - "13048": [["Santhia'", "VC"]], - "13049": [["Tronzano Vercellese", "VC"]], - "13060": [["San Maurizio", "VC"], ["Roasio", "VC"], ["Sant'Eusebio", "VC"]], - "13100": [ - ["Vercelli", "VC"], - ["Cappuccini", "VC"], - ["Prarolo", "VC"], - ["Lignana", "VC"], - ["Brarola", "VC"], - ["Larizzate", "VC"], - ], - "70010": [ - ["Capurso", "BA"], - ["Adelfia", "BA"], - ["Adelfia Montrone", "BA"], - ["Adelfia Canneto", "BA"], - ["Cellamare", "BA"], - ["Locorotondo", "BA"], - ["Casamassima", "BA"], - ["San Marco", "BA"], - ["Sammichele Di Bari", "BA"], - ["Superga", "BA"], - ["Turi", "BA"], - ["Valenzano", "BA"], - ["San Pietro", "BA"], - ["Trito", "BA"], - ], - "70011": [["Coreggia", "BA"], ["Alberobello", "BA"]], - "70013": [["Castellana Grotte", "BA"]], - "70014": [["Triggianello", "BA"], ["Conversano", "BA"]], - "70015": [["Lamadacqua", "BA"], ["Noci", "BA"]], - "70016": [["Parchitello", "BA"], ["Noicattaro", "BA"], ["Parco Scizzo", "BA"]], - "70017": [["San Michele In Monte Laureto", "BA"], ["Putignano", "BA"], ["San Pietro Piturno", "BA"]], - "70018": [["Rutigliano", "BA"]], - "70019": [["Triggiano", "BA"]], - "70020": [ - ["Bitetto", "BA"], - ["Cassano Delle Murge", "BA"], - ["Poggiorsini", "BA"], - ["Binetto", "BA"], - ["Bitritto", "BA"], - ["Toritto", "BA"], - ], - "70021": [["Acquaviva Delle Fonti", "BA"]], - "70022": [["Altamura", "BA"], ["Curtaniello", "BA"], ["Parisi", "BA"]], - "70023": [["Murgia", "BA"], ["Gioia Del Colle", "BA"]], - "70024": [["Gravina In Puglia", "BA"], ["Murgetta", "BA"], ["Dolcecanto", "BA"], ["La Murgetta", "BA"]], - "70025": [["Grumo Appula", "BA"]], - "70026": [["Modugno", "BA"]], - "70027": [["Palo Del Colle", "BA"]], - "70028": [["Sannicandro Di Bari", "BA"]], - "70029": [["Santeramo In Colle", "BA"]], - "70032": [["Bitonto", "BA"], ["Mariotto", "BA"], ["Palombaio", "BA"]], - "70033": [["Corato", "BA"]], - "70037": [["Ruvo Di Puglia", "BA"]], - "70038": [["Terlizzi", "BA"]], - "70042": [["Mola Di Bari", "BA"], ["San Maderno", "BA"], ["Cozze", "BA"]], - "70043": [ - ["Antonelli", "BA"], - ["Impalata", "BA"], - ["Lamalunga", "BA"], - ["Gorgofreddo", "BA"], - ["Cozzana", "BA"], - ["Sant'Antonio D'Ascula", "BA"], - ["Santa Lucia", "BA"], - ["Monopoli", "BA"], - ], - "70044": [["Polignano A Mare", "BA"]], - "70054": [["Giovinazzo", "BA"]], - "70056": [["Molfetta", "BA"]], - "70100": [["Bari", "BA"]], - "70121": [["Bari", "BA"]], - "70122": [["Bari", "BA"]], - "70123": [ - ["Bari", "BA"], - ["San Paolo", "BA"], - ["Fesca", "BA"], - ["San Francesco Dell'Arena", "BA"], - ["Stanic", "BA"], - ["San Cataldo", "BA"], - ["San Girolamo", "BA"], - ], - "70124": [["Picone", "BA"], ["Poggio Franco", "BA"], ["Bari", "BA"]], - "70125": [["Bari", "BA"], ["San Pasquale", "BA"], ["Carrassi", "BA"]], - "70126": [["Mungivacca", "BA"], ["Japigia", "BA"], ["Bari", "BA"], ["Torre A Mare", "BA"]], - "70127": [["Santo Spirito", "BA"]], - "70128": [["Palese", "BA"]], - "70129": [["Loseto", "BA"], ["Ceglie Del Campo", "BA"]], - "70131": [["Carbonara Di Bari", "BA"]], - "72012": [["Carovigno", "BR"], ["Serranova Di Carovigno", "BR"], ["Serranova", "BR"]], - "72013": [["Ceglie Messapica", "BR"]], - "72014": [["Cisternino", "BR"], ["Caranna", "BR"], ["Casalini", "BR"]], - "72015": [ - ["Savelletri", "BR"], - ["Lamie Di Olimpie", "BR"], - ["Montalbano", "BR"], - ["Madonna Pozzo Guacito", "BR"], - ["Stazione Di Fasano", "BR"], - ["Torre Canne", "BR"], - ["Selva", "BR"], - ["Selva Di Fasano", "BR"], - ["Fasano", "BR"], - ["Pezze Di Greco", "BR"], - ["Marina Di Savelletri", "BR"], - ], - "72016": [["Pozzo Guacito", "BR"], ["Montalbano Di Fasano", "BR"]], - "72017": [["Ostuni", "BR"]], - "72018": [["San Michele Salentino", "BR"]], - "72019": [["San Vito Dei Normanni", "BR"]], - "72020": [["Cellino San Marco", "BR"], ["Torchiarolo", "BR"], ["Erchie", "BR"], ["Tuturano", "BR"]], - "72021": [["Capece Bax", "BR"], ["Francavilla Fontana", "BR"], ["Capece", "BR"]], - "72022": [["Latiano", "BR"]], - "72023": [["Mesagne", "BR"]], - "72024": [["Oria", "BR"], ["San Cosimo Alla Macchia", "BR"], ["San Cosimo", "BR"]], - "72025": [["San Donaci", "BR"]], - "72026": [["San Pancrazio Salentino", "BR"]], - "72027": [["San Pietro Vernotico", "BR"]], - "72028": [["Torre Santa Susanna", "BR"]], - "72029": [["Villa Castelli", "BR"]], - "72100": [["Brindisi Casale", "BR"], ["Brindisi", "BR"]], - "76011": [["Bisceglie", "BT"]], - "76012": [["Canosa Di Puglia", "BT"], ["Loconia", "BT"]], - "76013": [["Minervino Murge", "BT"]], - "76014": [["Spinazzola", "BT"]], - "76015": [["Trinitapoli", "BT"]], - "76016": [["Margherita Di Savoia", "BT"]], - "76017": [["San Ferdinando Di Puglia", "BT"]], - "76121": [["Barletta", "BT"]], - "76123": [["Montegrosso", "BT"], ["Andria", "BT"]], - "76125": [["Trani", "BT"]], - "71010": [ - ["Poggio Imperiale", "FG"], - ["San Paolo Di Civitate", "FG"], - ["Rignano Garganico", "FG"], - ["Carpino", "FG"], - ["Serracapriola", "FG"], - ["Ischitella", "FG"], - ["Cagnano Varano", "FG"], - ["Ripalta", "FG"], - ["Difensola", "FG"], - ["Lesina", "FG"], - ["Chieuti Scalo", "FG"], - ["Foce Varano", "FG"], - ["Chieuti", "FG"], - ["Peschici", "FG"], - ], - "71011": [["Apricena", "FG"]], - "71012": [["Rodi Garganico", "FG"]], - "71013": [["San Giovanni Rotondo", "FG"], ["Matine", "FG"]], - "71014": [["Borgo Celano", "FG"], ["San Marco In Lamis", "FG"]], - "71015": [["San Nicandro Garganico", "FG"]], - "71016": [["San Severo", "FG"]], - "71017": [["Petrulli", "FG"], ["Torremaggiore", "FG"]], - "71018": [["Umbra", "FG"], ["Vico Del Gargano", "FG"], ["San Menaio", "FG"]], - "71019": [["Vieste", "FG"]], - "71020": [ - ["Rocchetta Sant'Antonio Stazione", "FG"], - ["Castelluccio Valmaggiore", "FG"], - ["Faeto", "FG"], - ["Monteleone Di Puglia", "FG"], - ["Rocchetta Sant'Antonio", "FG"], - ["Panni", "FG"], - ["Anzano Di Puglia", "FG"], - ["Celle Di San Vito", "FG"], - ], - "71021": [["Accadia", "FG"]], - "71022": [["San Carlo", "FG"], ["San Carlo D'Ascoli", "FG"], ["Ascoli Satriano", "FG"]], - "71023": [["Bovino", "FG"]], - "71024": [["Candela", "FG"]], - "71025": [["Castelluccio Dei Sauri", "FG"]], - "71026": [["Deliceto", "FG"]], - "71027": [["Orsara Di Puglia", "FG"]], - "71028": [["Sant'Agata Di Puglia", "FG"]], - "71029": [["Borgo Giardinetto", "FG"], ["Troia", "FG"]], - "71030": [ - ["San Marco La Catola", "FG"], - ["Volturara Appula", "FG"], - ["Casalvecchio Di Puglia", "FG"], - ["Zapponeta", "FG"], - ["Carlantino", "FG"], - ["Volturino", "FG"], - ["Fonterosa", "FG"], - ["Macchia", "FG"], - ["Mattinata", "FG"], - ["Motta Montecorvino", "FG"], - ], - "71031": [["Alberona", "FG"]], - "71032": [["Biccari", "FG"], ["Berardinone", "FG"]], - "71033": [["Casalnuovo Monterotaro", "FG"]], - "71034": [["Castelnuovo Della Daunia", "FG"]], - "71035": [["Celenza Valfortore", "FG"]], - "71036": [["Lucera", "FG"], ["Palmori", "FG"]], - "71037": [["Monte Sant'Angelo", "FG"]], - "71038": [["Pietramontecorvino", "FG"]], - "71039": [["Roseto Valfortore", "FG"]], - "71040": [ - ["San Nicola", "FG"], - ["San Nicola Di Tremiti", "FG"], - ["Ordona", "FG"], - ["Isole Tremiti", "FG"], - ["Borgata Mezzanone", "FG"], - ["Mezzanone", "FG"], - ["San Domino", "FG"], - ], - "71041": [["Carapelle", "FG"]], - "71042": [ - ["Borgo Liberta'", "FG"], - ["Cerignola", "FG"], - ["Borgo Tressanti", "FG"], - ["La Moschella", "FG"], - ["Tressanti", "FG"], - ["Moschella", "FG"], - ], - "71043": [["Siponto", "FG"], ["Manfredonia", "FG"]], - "71045": [["Orta Nova", "FG"]], - "71047": [["Stornara", "FG"]], - "71048": [["Stornarella", "FG"]], - "71100": [ - ["Incoronata", "FG"], - ["Tavernola", "FG"], - ["Arpinova", "FG"], - ["Borgo Incoronata", "FG"], - ["Segezia", "FG"], - ["Foggia", "FG"], - ["Borgo Cervaro", "FG"], - ["Rignano Garganico Scalo", "FG"], - ["Cervaro", "FG"], - ], - "73010": [ - ["Lequile", "LE"], - ["Caprarica Di Lecce", "LE"], - ["Dragoni", "LE"], - ["Sternatia", "LE"], - ["Porto Cesareo", "LE"], - ["Torre Lapillo", "LE"], - ["Riesci", "LE"], - ["Veglie", "LE"], - ["Sogliano Cavour", "LE"], - ["San Donato Di Lecce", "LE"], - ["San Pietro In Lama", "LE"], - ["Zollino", "LE"], - ["Villa Baldassarri", "LE"], - ["Arnesano", "LE"], - ["Galugnano", "LE"], - ["Surbo", "LE"], - ["Soleto", "LE"], - ["Guagnano", "LE"], - ], - "73011": [["Alezio", "LE"]], - "73012": [["Campi Salentina", "LE"]], - "73013": [["Collemeto", "LE"], ["Galatina", "LE"], ["Noha", "LE"], ["Santa Barbara", "LE"]], - "73014": [["Gallipoli", "LE"]], - "73015": [["Salice Salentino", "LE"]], - "73016": [["San Cesario Di Lecce", "LE"]], - "73017": [["Lido Conchiglie", "LE"], ["San Simone", "LE"], ["Sannicola", "LE"], ["Chiesanuova", "LE"]], - "73018": [["Squinzano", "LE"]], - "73019": [["Trepuzzi", "LE"]], - "73020": [ - ["Serrano", "LE"], - ["Palmariggi", "LE"], - ["Melpignano", "LE"], - ["Castrignano De' Greci", "LE"], - ["Santa Cesarea Terme", "LE"], - ["Giurdignano", "LE"], - ["Uggiano La Chiesa", "LE"], - ["Botrugno", "LE"], - ["Bagnolo Del Salento", "LE"], - ["Cavallino", "LE"], - ["Castri Di Lecce", "LE"], - ["Martignano", "LE"], - ["Nociglia", "LE"], - ["Cutrofiano", "LE"], - ["Vitigliano", "LE"], - ["Cerfignano", "LE"], - ["Scorrano", "LE"], - ["Castromediano", "LE"], - ["Casamassella", "LE"], - ["Carpignano Salentino", "LE"], - ["Cannole", "LE"], - ["Cursi", "LE"], - ["San Cassiano", "LE"], - ], - "73021": [["Calimera", "LE"]], - "73022": [["Corigliano D'Otranto", "LE"]], - "73023": [["Merine", "LE"], ["Lizzanello", "LE"]], - "73024": [["Maglie", "LE"], ["Morigino", "LE"]], - "73025": [["Martano", "LE"]], - "73026": [ - ["Torre Dell'Orso", "LE"], - ["San Foca", "LE"], - ["Roca", "LE"], - ["Rocca Vecchia", "LE"], - ["Borgagne", "LE"], - ["Melendugno", "LE"], - ], - "73027": [["Minervino Di Lecce", "LE"], ["Cocumola", "LE"], ["Specchia Gallone", "LE"]], - "73028": [["Otranto", "LE"]], - "73029": [ - ["Struda'", "LE"], - ["Pisignano", "LE"], - ["Vanze", "LE"], - ["Acquarica Di Lecce", "LE"], - ["Vernole", "LE"], - ["Acaia", "LE"], - ], - "73030": [ - ["Tiggiano", "LE"], - ["Montesano Salentino", "LE"], - ["Diso", "LE"], - ["Giuggianello", "LE"], - ["Castro Marina", "LE"], - ["Ortelle", "LE"], - ["Marittima", "LE"], - ["Vignacastrisi", "LE"], - ["Sanarica", "LE"], - ["Surano", "LE"], - ], - "73031": [["Alessano", "LE"], ["Montesardo", "LE"]], - "73032": [["Castiglione", "LE"], ["Andrano", "LE"]], - "73033": [["Corsano", "LE"]], - "73034": [["Gagliano Del Capo", "LE"], ["San Dana", "LE"], ["Arigliano", "LE"]], - "73035": [["Miggiano", "LE"]], - "73036": [["Muro Leccese", "LE"]], - "73037": [["Poggiardo", "LE"], ["Vaste", "LE"]], - "73038": [["Spongano", "LE"]], - "73039": [ - ["Tutino", "LE"], - ["Depressa", "LE"], - ["Sant'Eufemia", "LE"], - ["Tricase Porto", "LE"], - ["Lucugnano", "LE"], - ["Caprarica Del Capo", "LE"], - ["Tricase", "LE"], - ], - "73040": [ - ["Neviano", "LE"], - ["Giuliano Di Lecce", "LE"], - ["Barbarano Del Capo", "LE"], - ["Aradeo", "LE"], - ["Marina Di Leuca", "LE"], - ["Alliste", "LE"], - ["Felline", "LE"], - ["Castrignano Del Capo", "LE"], - ["Acquarica Del Capo", "LE"], - ["Specchia", "LE"], - ["Morciano Di Leuca", "LE"], - ["Collepasso", "LE"], - ["Melissano", "LE"], - ["Supersano", "LE"], - ["Leuca", "LE"], - ["Salignano", "LE"], - ], - "73041": [["Magliano", "LE"], ["Carmiano", "LE"]], - "73042": [["Casarano", "LE"]], - "73043": [["Copertino", "LE"]], - "73044": [["Galatone", "LE"]], - "73045": [["Leverano", "LE"]], - "73046": [["Matino", "LE"]], - "73047": [["Monteroni Di Lecce", "LE"]], - "73048": [["Nardo'", "LE"]], - "73049": [["Ruffano", "LE"], ["Torrepaduli", "LE"]], - "73050": [ - ["Santa Chiara Di Nardo'", "LE"], - ["Ruggiano", "LE"], - ["Salve", "LE"], - ["Villaggio Boncore", "LE"], - ["Santa Maria Al Bagno", "LE"], - ["Santa Chiara", "LE"], - ["Boncore", "LE"], - ["Santa Caterina", "LE"], - ["Secli'", "LE"], - ], - "73051": [["Villa Convento", "LE"], ["Novoli", "LE"]], - "73052": [["Parabita", "LE"]], - "73053": [["Patu'", "LE"]], - "73054": [["Presicce", "LE"]], - "73055": [["Racale", "LE"]], - "73056": [["Taurisano", "LE"]], - "73057": [["Taviano", "LE"]], - "73058": [["Tuglie", "LE"]], - "73059": [["Gemini", "LE"], ["Ugento", "LE"]], - "73100": [["Frigole", "LE"], ["Lecce", "LE"], ["Torre Chianca", "LE"], ["San Cataldo", "LE"]], - "74010": [["Statte", "TA"]], - "74011": [ - ["Case Perrone", "TA"], - ["Borgo Perrone", "TA"], - ["Marina Di Castellaneta", "TA"], - ["Castellaneta", "TA"], - ], - "74012": [["Crispiano", "TA"]], - "74013": [["Ginosa", "TA"]], - "74014": [["Laterza", "TA"]], - "74015": [ - ["San Paolo", "TA"], - ["Specchia Tarantina", "TA"], - ["Lanzo Di Martina Franca", "TA"], - ["Carpari", "TA"], - ["Martina Franca", "TA"], - ], - "74016": [["Massafra", "TA"]], - "74017": [["Mottola", "TA"], ["San Basilio Mottola", "TA"]], - "74018": [["Palagianello", "TA"]], - "74019": [["Palagiano", "TA"], ["Conca D'Oro", "TA"]], - "74020": [ - ["Monteparano", "TA"], - ["Leporano Marina", "TA"], - ["Leporano", "TA"], - ["Torricella", "TA"], - ["San Marzano Di San Giuseppe", "TA"], - ["Faggiano", "TA"], - ["Montemesola", "TA"], - ["Roccaforzata", "TA"], - ["Lizzano", "TA"], - ["Avetrana", "TA"], - ["Maruggio", "TA"], - ["Monteiasi", "TA"], - ], - "74021": [["Carosino", "TA"]], - "74022": [["Fragagnano", "TA"]], - "74023": [["Grottaglie", "TA"]], - "74024": [ - ["Uggiano Montefusco", "TA"], - ["Manduria", "TA"], - ["San Pietro In Bevagna", "TA"], - ["Specchiarica", "TA"], - ], - "74025": [["Marina Di Ginosa", "TA"]], - "74026": [["Lido Silvana", "TA"], ["Pulsano", "TA"], ["Bosco Caggione", "TA"], ["Monti D'Arena", "TA"]], - "74027": [["San Giorgio Ionico", "TA"]], - "74028": [["Sava", "TA"]], - "74100": [["Paolo Vi", "TA"], ["Talsano", "TA"], ["San Vito Taranto", "TA"], ["Taranto", "TA"], ["Lama", "TA"]], - "74121": [["Taranto", "TA"]], - "74122": [["Taranto", "TA"]], - "74123": [["Taranto", "TA"]], - "08030": [ - ["Orroli", "CA"], - ["Escolca", "CA"], - ["Lixius", "CA"], - ["Nurallao", "CA"], - ["Serri", "CA"], - ["Sadali", "CA"], - ["Seulo", "CA"], - ["Nuragus", "CA"], - ["Villanova Tulo", "CA"], - ["Esterzili", "CA"], - ["Gergei", "CA"], - ["Meana Sardo", "NU"], - ["Atzara", "NU"], - ["Austis", "NU"], - ["Gadoni", "NU"], - ["Belvi", "NU"], - ["Teti", "NU"], - ["Genoni", "OR"], - ], - "08033": [["Isili", "CA"]], - "08035": [["Nurri", "CA"]], - "08043": [["Escalaplano", "CA"]], - "09010": [ - ["Siliqua", "CA"], - ["Forte Village", "CA"], - ["Vallermosa", "CA"], - ["Villaspeciosa", "CA"], - ["Decimoputzu", "CA"], - ["Domus De Maria", "CA"], - ["Pula", "CA"], - ["Uta", "CA"], - ["Villa San Pietro", "CA"], - ["Buggerru", "SU"], - ["Villamassargia", "SU"], - ["Sant'Anna Arresi", "SU"], - ["Palmas", "SU"], - ["Masainas", "SU"], - ["San Giovanni Suergiu", "SU"], - ["Giba", "SU"], - ["Rosas", "SU"], - ["Musei", "SU"], - ["Terraseo", "SU"], - ["Matzaccara", "SU"], - ["Gonnesa", "SU"], - ["Terresoli", "SU"], - ["Fluminimaggiore", "SU"], - ["Nuraxi Figus", "SU"], - ["Is Urigus", "SU"], - ["Riomurtas", "SU"], - ["Piscinas", "SU"], - ["Portoscuso", "SU"], - ["Perdaxius", "SU"], - ["Villarios", "SU"], - ["Villaperuccio", "SU"], - ["Paringianu", "SU"], - ["Narcao", "SU"], - ["Tratalias", "SU"], - ["Nuxis", "SU"], - ["Santadi", "SU"], - ], - "09012": [["San Leone", "CA"], ["Capoterra", "CA"], ["Poggio Dei Pini", "CA"], ["La Maddalena", "CA"]], - "09018": [["Villa D'Orri", "CA"], ["Sarroch", "CA"]], - "09019": [["Teulada", "CA"]], - "09020": [ - ["Samatzai", "CA"], - ["Pimentel", "CA"], - ["Ussana", "CA"], - ["Pauli Arbarei", "SU"], - ["Ussaramanna", "SU"], - ["Turri", "SU"], - ["Genuri", "SU"], - ["Villamar", "SU"], - ["Siddi", "SU"], - ["Villanovafranca", "SU"], - ["Gesturi", "SU"], - ["Collinas", "SU"], - ["Las Plassas", "SU"], - ["Villanovaforru", "SU"], - ], - "09023": [["Monastir", "CA"]], - "09024": [["Villagreca", "CA"], ["Nuraminis", "CA"]], - "09026": [["San Sperate", "CA"]], - "09028": [["Sestu", "CA"]], - "09030": [["Elmas", "CA"], ["Pabillonis", "SU"], ["Sardara", "SU"], ["Montevecchio", "SU"], ["Samassi", "SU"]], - "09032": [["Assemini", "CA"], ["Macchiareddu", "CA"]], - "09033": [["Decimomannu", "CA"]], - "09034": [["Villasor", "CA"]], - "09040": [ - ["Armungia", "CA"], - ["Villasalto", "CA"], - ["Maracalagonis", "CA"], - ["Senorbi'", "CA"], - ["Donori'", "CA"], - ["Settimo San Pietro", "CA"], - ["Suelli", "CA"], - ["Goni", "CA"], - ["Selegas", "CA"], - ["Gesico", "CA"], - ["San Vito", "CA"], - ["Silius", "CA"], - ["Siurgus Donigala", "CA"], - ["Guamaggiore", "CA"], - ["Guasila", "CA"], - ["Santa Maria", "CA"], - ["Arixi", "CA"], - ["Barrali", "CA"], - ["Mandas", "CA"], - ["Soleminis", "CA"], - ["Ballao", "CA"], - ["Villaputzu", "CA"], - ["Burcei", "CA"], - ["Sant'Andrea Frius", "CA"], - ["Castiadas", "CA"], - ["Serdiana", "CA"], - ["Sisini", "CA"], - ["San Nicolo' Gerrei", "CA"], - ["Ortacesus", "CA"], - ["San Basilio", "CA"], - ["Furtei", "SU"], - ["Segariu", "SU"], - ], - "09041": [["Dolianova", "CA"]], - "09042": [["Monserrato", "CA"]], - "09043": [["Muravera", "CA"]], - "09044": [["Quartucciu", "CA"]], - "09045": [["Flumini Di Quartu Sant'Elena", "CA"], ["Quartu Sant'Elena", "CA"]], - "09047": [["Selargius", "CA"], ["Su Planu", "CA"]], - "09048": [["Sinnai", "CA"]], - "09049": [["Villasimius", "CA"]], - "09100": [["Cagliari", "CA"]], - "09121": [["Cagliari", "CA"]], - "09122": [["Cagliari", "CA"]], - "09123": [["Cagliari", "CA"]], - "09124": [["Cagliari", "CA"]], - "09125": [["Cagliari", "CA"]], - "09126": [ - ["Cagliari", "CA"], - ["Cala Mosca", "CA"], - ["San Bartolomeo", "CA"], - ["Lazzaretto", "CA"], - ["Poetto", "CA"], - ], - "09127": [["Cagliari", "CA"]], - "09128": [["Cagliari", "CA"]], - "09129": [["Cagliari", "CA"]], - "09131": [["Cagliari", "CA"]], - "09134": [["Cagliari", "CA"], ["Pirri", "CA"]], - "08010": [ - ["Lei", "NU"], - ["Birori", "NU"], - ["Noragugume", "NU"], - ["Dualchi", "NU"], - ["Santa Maria", "OR"], - ["Suni", "OR"], - ["Magomadas", "OR"], - ["Sa Lumenera", "OR"], - ["Sagama", "OR"], - ["Flussio", "OR"], - ["Montresta", "OR"], - ["Tinnura", "OR"], - ], - "08011": [["Bolotana", "NU"]], - "08012": [["Bortigali", "NU"], ["Mulargia", "NU"]], - "08015": [["Macomer", "NU"]], - "08016": [["Borore", "NU"]], - "08017": [["Silanus", "NU"]], - "08018": [["Sindia", "NU"]], - "08020": [ - ["Onifai", "NU"], - ["Su Cossu", "NU"], - ["Sa Pala Ruia", "NU"], - ["Ottana", "NU"], - ["Onani", "NU"], - ["San Giovanni", "NU"], - ["Ovodda", "NU"], - ["Sant'Efisio", "NU"], - ["Monte Longu", "NU"], - ["Tiana", "NU"], - ["S'Ena Sa Chitta", "NU"], - ["Olzai", "NU"], - ["Orotelli", "NU"], - ["Sarule", "NU"], - ["Ovedi'", "NU"], - ["Orune", "NU"], - ["Berchidda", "NU"], - ["Lodine", "NU"], - ["Galtelli", "NU"], - ["Oniferi", "NU"], - ["Sas Murtas", "NU"], - ["Su Pradu", "NU"], - ["Concas", "NU"], - ["Osidda", "NU"], - ["Torpe'", "NU"], - ["Ollolai", "NU"], - ["Gavoi", "NU"], - ["Brunella", "NU"], - ["Lode'", "NU"], - ["Talava'", "NU"], - ["Irgoli", "NU"], - ["Mamone", "NU"], - ["Lula", "NU"], - ["Loculi", "NU"], - ["Posada", "NU"], - ["Muvruneddi", "SS"], - ["S'Iscala", "SS"], - ["Straulas", "SS"], - ["San Gavino", "SS"], - ["Agrustos", "SS"], - ["Luddui", "SS"], - ["Tanaunella", "SS"], - ["Nuditta", "SS"], - ["Birgalavo'", "SS"], - ["Budoni", "SS"], - ["San Lorenzo", "SS"], - ["Malamori'", "SS"], - ["Lu Cuponeddi", "SS"], - ["Pedra E Cupa", "SS"], - ["La Runcina", "SS"], - ["Lu Ricciu", "SS"], - ["Bircolovo'", "SS"], - ["Silimini", "SS"], - ["Lutturai", "SS"], - ["Lu Impostu", "SS"], - ["Schifoni", "SS"], - ["Lu Sitagliacciu", "SS"], - ["Franculacciu", "SS"], - ["La Traversa", "SS"], - ["Stazzu Mesu", "SS"], - ["Strugas", "SS"], - ["Pira Maseda", "SS"], - ["Lu Tintimbaru", "SS"], - ["Pattimedda", "SS"], - ["Terrapadedda", "SS"], - ["Tiridduli", "SS"], - ["Li Mori", "SS"], - ["Budditogliu", "SS"], - ["Lu Muvruneddu", "SS"], - ["Lotturai", "SS"], - ["Stazzu Bruciatu", "SS"], - ["Su Linalvu", "SS"], - ["Rinaggiu", "SS"], - ["Suaredda", "SS"], - ["Limpostu", "SS"], - ["Lu Titimbaru", "SS"], - ["Traversa", "SS"], - ["Sitagliacciu", "SS"], - ["L'Alzoni", "SS"], - ["Li Teggi", "SS"], - ["Nuragheddu", "SS"], - ["Ottiolu", "SS"], - ["Muriscuvo'", "SS"], - ["San Pietro", "SS"], - ["Puntaldia", "SS"], - ["Lu Lioni", "SS"], - ["Maiorca", "SS"], - ["Tamarispa", "SS"], - ["Capo Coda Cavallo", "SS"], - ["Lu Fraili", "SS"], - ["San Silvestro", "SS"], - ["Solita'", "SS"], - ["Badualga", "SS"], - ["Monte Petrosu", "SS"], - ["Limpiddu", "SS"], - ["Luttuni", "SS"], - ["Berruiles", "SS"], - ], - "08021": [["Bitti", "NU"]], - "08022": [["Dorgali", "NU"], ["Cala Gonone", "NU"]], - "08023": [["Fonni", "NU"]], - "08024": [["Mamoiada", "NU"]], - "08025": [["Oliena", "NU"], ["Su Cologone", "NU"]], - "08026": [["Orani", "NU"]], - "08027": [["Orgosolo", "NU"]], - "08028": [ - ["Cala Liberotto", "NU"], - ["Orosei", "NU"], - ["Sos Alinos", "NU"], - ["Sas Linnas Siccas", "NU"], - ["Cala Ginepro", "NU"], - ], - "08029": [ - ["Siniscola", "NU"], - ["Sa Pischera", "NU"], - ["Sarenargiu", "NU"], - ["Su Tilio'", "NU"], - ["La Caletta", "NU"], - ["Sa Perta Ruia", "NU"], - ["Berchida", "NU"], - ["Capo Comino", "NU"], - ["Mandras", "NU"], - ["Ena Sa Chitta", "NU"], - ["Overì", "NU"], - ["Santa Lucia", "NU"], - ], - "08031": [["Gidilau", "NU"], ["Aritzo", "NU"]], - "08032": [["Desulo", "NU"]], - "08036": [["Ortueri", "NU"]], - "08037": [["Seui", "NU"]], - "08038": [["Sorgono", "NU"]], - "08039": [["Tonara", "NU"]], - "08040": [ - ["S'Arridellu", "NU"], - ["Girasole", "NU"], - ["Arzana", "NU"], - ["Urzulei", "NU"], - ["Ardali", "NU"], - ["Gairo", "NU"], - ["Osini", "NU"], - ["Santa Maria Navarrese", "NU"], - ["Ussassai", "NU"], - ["Tancau", "NU"], - ["Baunei", "NU"], - ["Loceri", "NU"], - ["Ulassai", "NU"], - ["Gairo Sant'Elena", "NU"], - ["Lotzorai", "NU"], - ["Triei", "NU"], - ["Taquisara", "NU"], - ["Talana", "NU"], - ["Cardedu", "NU"], - ["Elini", "NU"], - ["Ilbono", "NU"], - ["Tancau Sul Mare", "NU"], - ], - "08042": [["Bari Sardo", "NU"]], - "08044": [["Jerzu", "NU"]], - "08045": [["Lanusei", "NU"]], - "08046": [["Perdasdefogu", "NU"]], - "08047": [["Migheli", "NU"], ["Tertenia", "NU"]], - "08048": [ - ["Su Troccu", "NU"], - ["Porto Frailis", "NU"], - ["Calamoresca", "NU"], - ["Tortoli'", "NU"], - ["Su Pinu", "NU"], - ["Arbatax", "NU"], - ["Is Murdegus", "NU"], - ], - "08049": [["Villanova Strisaili", "NU"], ["Villagrande Strisaili", "NU"]], - "08100": [["Nuoro", "NU"], ["Monte Ortobene", "NU"], ["Manasuddas", "NU"], ["Lollove", "NU"]], - "08013": [["Turas", "OR"], ["Bosa Marina", "OR"], ["Bosa", "OR"]], - "08019": [["Modolo", "OR"]], - "08034": [["Santa Sofia", "OR"], ["Crastu", "OR"], ["Su Lau", "OR"], ["Traidodini", "OR"], ["Laconi", "OR"]], - "09070": [ - ["Sa Rocca Tunda", "OR"], - ["Bauladu", "OR"], - ["Norbello", "OR"], - ["Zeddiani", "OR"], - ["Rocca Tunda", "OR"], - ["Siamaggiore", "OR"], - ["Seneghe", "OR"], - ["San Vero Milis", "OR"], - ["Putzu Idu", "OR"], - ["Pardu Nou", "OR"], - ["Baratili San Pietro", "OR"], - ["Bonarcado", "OR"], - ["Zerfaliu", "OR"], - ["Riola Sardo", "OR"], - ["Narbolia", "OR"], - ["Mandriola", "OR"], - ["Milis", "OR"], - ["Nurachi", "OR"], - ["Domusnovas Canales", "OR"], - ["Paulilatino", "OR"], - ["Tramatza", "OR"], - ["Aidomaggiore", "OR"], - ], - "09071": [["Abbasanta", "OR"]], - "09072": [["Solanas", "OR"], ["Cabras", "OR"]], - "09073": [ - ["Santa Caterina Di Pittinurri", "OR"], - ["Santa Caterina", "OR"], - ["S'Archittu", "OR"], - ["Cuglieri", "OR"], - ["Torre Del Pozzo", "OR"], - ], - "09074": [["Zuri", "OR"], ["Ghilarza", "OR"]], - "09075": [["San Leonardo", "OR"], ["Santu Lussurgiu", "OR"]], - "09076": [["Sedilo", "OR"]], - "09077": [["Solarussa", "OR"]], - "09078": [["Sennariolo", "OR"], ["Scano Di Montiferro", "OR"]], - "09079": [["Tresnuraghes", "OR"]], - "09080": [ - ["Sorradile", "OR"], - ["Soddi'", "OR"], - ["Bidoni'", "OR"], - ["Senis", "OR"], - ["Neoneli", "OR"], - ["Siapiccia", "OR"], - ["Sant'Antonio Ruinas", "OR"], - ["Villa Sant'Antonio", "OR"], - ["Boroneddu", "OR"], - ["Siamanna", "OR"], - ["Ula' Tirso", "OR"], - ["Villaurbana", "OR"], - ["Nughedu Santa Vittoria", "OR"], - ["Mogorella", "OR"], - ["Nureci", "OR"], - ["Assolo", "OR"], - ["Allai", "OR"], - ["Asuni", "OR"], - ["Tadasuni", "OR"], - ], - "09081": [["Ardauli", "OR"]], - "09082": [["Busachi", "OR"]], - "09083": [["Fordongianus", "OR"]], - "09084": [["Villanova Truschedu", "OR"]], - "09085": [["Ruinas", "OR"]], - "09086": [["Samugheo", "OR"]], - "09088": [["Ollastra", "OR"], ["Simaxis", "OR"]], - "09090": [ - ["Gonnoscodina", "OR"], - ["Palmas Arborea", "OR"], - ["Baressa", "OR"], - ["Morgongiori", "OR"], - ["Albagiara", "OR"], - ["Sini", "OR"], - ["Baradili", "OR"], - ["Curcuris", "OR"], - ["Masullas", "OR"], - ["Pau", "OR"], - ["Tiria", "OR"], - ["Siris", "OR"], - ["Gonnosno'", "OR"], - ["Usellus", "OR"], - ["Simala", "OR"], - ["Villa Verde", "OR"], - ], - "09091": [["Ales", "OR"]], - "09092": [["Arborea", "OR"]], - "09093": [["Gonnostramatza", "OR"], ["Pompu", "OR"]], - "09094": [["Marrubiu", "OR"], ["Sant'Anna", "OR"]], - "09095": [["Mogoro", "OR"]], - "09096": [["Santa Giusta", "OR"]], - "09097": [["San Nicolo' D'Arcidano", "OR"]], - "09098": [["Tanca Marchese", "OR"], ["Terralba", "OR"]], - "09099": [["Uras", "OR"]], - "09170": [ - ["Massama", "OR"], - ["Oristano", "OR"], - ["Donigala Fenughedu", "OR"], - ["Nuraxinieddu", "OR"], - ["Sili'", "OR"], - ["Torre Grande", "OR"], - ], - "07010": [ - ["Benetutti", "SS"], - ["Bottidda", "SS"], - ["Nughedu San Nicolo'", "SS"], - ["Romana", "SS"], - ["Nule", "SS"], - ["Mara", "SS"], - ["Bultei", "SS"], - ["Tula", "SS"], - ["Foresta Burgos", "SS"], - ["Cossoine", "SS"], - ["Giave", "SS"], - ["Foresta Di Burgos", "SS"], - ["Semestene", "SS"], - ["Burgos", "SS"], - ["Ardara", "SS"], - ["Anela", "SS"], - ["Illorai", "SS"], - ["Esporlatu", "SS"], - ["Ittireddu", "SS"], - ["Monteleone Rocca Doria", "SS"], - ], - "07011": [["Bono", "SS"]], - "07012": [["Rebeccu", "SS"], ["Santa Lucia", "SS"], ["Bonorva", "SS"]], - "07013": [["Mores", "SS"]], - "07014": [["San Nicola", "SS"], ["Chilivani", "SS"], ["Ozieri", "SS"], ["Vigne", "SS"], ["Fraigas", "SS"]], - "07015": [["Padria", "SS"]], - "07016": [["Pattada", "SS"]], - "07017": [["Ploaghe", "SS"]], - "07018": [["Pozzomaggiore", "SS"]], - "07019": [["Villanova Monteleone", "SS"]], - "07020": [ - ["Budduso'", "SS"], - ["Porto San Paolo", "SS"], - ["Vaccileddi", "SS"], - ["Padru", "SS"], - ["Golfo Aranci", "SS"], - ["Ala' Dei Sardi", "SS"], - ["Monti", "SS"], - ["Luogosanto", "SS"], - ["Su Canale", "SS"], - ["Telti", "SS"], - ["Loiri", "SS"], - ["San Francesco D'Aglientu", "SS"], - ["Aglientu", "SS"], - ["Palau", "SS"], - ["Loiri Porto San Paolo", "SS"], - ["Aggius", "SS"], - ], - "07021": [ - ["Pirazzolu", "SS"], - ["Costa Smeralda", "SS"], - ["Capo Ferro", "SS"], - ["Cala Di Volpe", "SS"], - ["Cannigione", "SS"], - ["Baia Sardinia", "SS"], - ["Arzachena", "SS"], - ["Porto Cervo", "SS"], - ], - "07022": [["Berchidda", "SS"]], - "07023": [["Calangianus", "SS"]], - "07024": [["Moneta", "SS"], ["Isola Di Caprera", "SS"], ["La Maddalena", "SS"]], - "07025": [["Luras", "SS"]], - "07026": [["San Pantaleo", "SS"], ["Porto Rotondo", "SS"], ["Olbia", "SS"], ["Berchiddeddu", "SS"]], - "07027": [["Oschiri", "SS"]], - "07028": [["San Pasquale", "SS"], ["Santa Teresa Gallura", "SS"]], - "07029": [["Tempio Pausania", "SS"], ["Nuchis", "SS"], ["Bassacutena", "SS"]], - "07030": [ - ["Martis", "SS"], - ["Chiaramonti", "SS"], - ["Tergu", "SS"], - ["Santa Maria Coghinas", "SS"], - ["Bortigiadas", "SS"], - ["Muros", "SS"], - ["Florinas", "SS"], - ["Badesi", "SS"], - ["Sant'Antonio Di Gallura", "SS"], - ["Viddalba", "SS"], - ["Erula", "SS"], - ["Cargeghe", "SS"], - ["Bulzi", "SS"], - ["Laerru", "SS"], - ], - "07031": [["Lu Bagnu", "SS"], ["Castelsardo", "SS"]], - "07032": [["Nulvi", "SS"]], - "07033": [["Osilo", "SS"], ["Santa Vittoria", "SS"]], - "07034": [["Perfugas", "SS"]], - "07035": [["Sedini", "SS"]], - "07036": [["Sennori", "SS"]], - "07037": [["Platamona", "SS"], ["Sorso", "SS"]], - "07038": [["Lu Colbu", "SS"], ["Trinita' D'Agultu E Vignola", "SS"]], - "07039": [["La Muddizza", "SS"], ["Valledoria", "SS"], ["Codaruina", "SS"]], - "07040": [ - ["Tissi", "SS"], - ["Tottubella", "SS"], - ["Campanedda", "SS"], - ["Palmadula", "SS"], - ["Canaglia", "SS"], - ["Argentiera Nurra", "SS"], - ["Siligo", "SS"], - ["Codrongianos", "SS"], - ["Stintino", "SS"], - ["Rumanedda", "SS"], - ["Olmedo", "SS"], - ["La Corte", "SS"], - ["Argentiera", "SS"], - ["Borutta", "SS"], - ["Uri", "SS"], - ["Bessude", "SS"], - ["Putifigari", "SS"], - ["Cheremule", "SS"], - ["Biancareddu", "SS"], - ["Banari", "SS"], - ], - "07041": [ - ["Alghero", "SS"], - ["Santa Maria La Palma", "SS"], - ["Maristella Porto Conte", "SS"], - ["Fertilia", "SS"], - ["Tramariglio", "SS"], - ], - "07043": [["Bonnanaro", "SS"]], - "07044": [["Ittiri", "SS"]], - "07045": [["Ossi", "SS"]], - "07046": [ - ["Asinara Cala D'Oliva", "SS"], - ["Porto Torres", "SS"], - ["Cala Reale", "SS"], - ["Asinara Lazzaretto", "SS"], - ], - "07047": [["Thiesi", "SS"]], - "07048": [["Torralba", "SS"]], - "07049": [["Usini", "SS"]], - "07100": [ - ["Sassari", "SS"], - ["Ottava", "SS"], - ["La Landrigga", "SS"], - ["Li Punti", "SS"], - ["San Giovanni", "SS"], - ["Bancali", "SS"], - ["Macciadosa", "SS"], - ], - "09011": [["Calasetta", "SU"], ["Cussorgia", "SU"]], - "09013": [ - ["Bacu Abis", "SU"], - ["Sirai", "SU"], - ["Barbusi", "SU"], - ["Carbonia", "SU"], - ["Cortoghiana", "SU"], - ["Serbariu", "SU"], - ], - "09014": [["Carloforte", "SU"]], - "09015": [["Domusnovas", "SU"]], - "09016": [["Nebida", "SU"], ["Iglesias", "SU"], ["San Benedetto", "SU"], ["Bindua", "SU"], ["Monteponi", "SU"]], - "09017": [["Sant'Antioco", "SU"]], - "09021": [["Barumini", "SU"]], - "09022": [["Lunamatrona", "SU"]], - "09025": [["Sanluri Stato", "SU"], ["Sanluri", "SU"]], - "09027": [["Serrenti", "SU"]], - "09029": [["Tuili", "SU"], ["Setzu", "SU"]], - "09031": [["Gennamari", "SU"], ["Sant'Antonio Di Santadi", "SU"], ["Arbus", "SU"], ["Ingurtosu", "SU"]], - "09035": [["Gonnosfanadiga", "SU"]], - "09036": [["Guspini", "SU"]], - "09037": [["San Gavino Monreale", "SU"]], - "09038": [["Serramanna", "SU"]], - "09039": [["Villacidro", "SU"]], - "92010": [ - ["Burgio", "AG"], - ["Lampedusa", "AG"], - ["Caltabellotta", "AG"], - ["Calamonaci", "AG"], - ["Realmonte", "AG"], - ["Lucca Sicula", "AG"], - ["Lampedusa E Linosa", "AG"], - ["Joppolo Giancaxio", "AG"], - ["Linosa", "AG"], - ["Alessandria Della Rocca", "AG"], - ["Montevago", "AG"], - ["Sant'Anna Di Caltabellotta", "AG"], - ["Siculiana", "AG"], - ["Sant'Anna", "AG"], - ["Montallegro", "AG"], - ["Bivona", "AG"], - ], - "92011": [["Cattolica Eraclea", "AG"]], - "92012": [["Cianciana", "AG"]], - "92013": [["Menfi", "AG"]], - "92014": [["Porto Empedocle", "AG"]], - "92015": [["Raffadali", "AG"]], - "92016": [["Borgo Bonsignore", "AG"], ["Ribera", "AG"]], - "92017": [["Sambuca Di Sicilia", "AG"]], - "92018": [["Santa Margherita Di Belice", "AG"]], - "92019": [["Sciacca", "AG"]], - "92020": [ - ["Santa Elisabetta", "AG"], - ["San Giovanni Gemini", "AG"], - ["Villafranca Sicula", "AG"], - ["San Biagio Platani", "AG"], - ["Sant'Angelo Muxaro", "AG"], - ["Castrofilippo", "AG"], - ["Racalmuto", "AG"], - ["Comitini", "AG"], - ["Camastra", "AG"], - ["Grotte", "AG"], - ["Santo Stefano Quisquina", "AG"], - ["Palma Di Montechiaro", "AG"], - ], - "92021": [["Aragona", "AG"], ["Caldare", "AG"]], - "92022": [["Borgo Callea", "AG"], ["Cammarata", "AG"]], - "92023": [["Campobello Di Licata", "AG"]], - "92024": [["Canicatti'", "AG"]], - "92025": [["Zolfare", "AG"], ["Casteltermini Zolfare", "AG"], ["Casteltermini", "AG"]], - "92026": [["Favara", "AG"]], - "92027": [["Licata", "AG"]], - "92028": [["Naro", "AG"]], - "92029": [["Campobello Ravanusa Stazione", "AG"], ["Ravanusa", "AG"]], - "92100": [ - ["Giardina Gallotti", "AG"], - ["Villaggio Mose'", "AG"], - ["Villaseta", "AG"], - ["San Leone Mose'", "AG"], - ["Agrigento", "AG"], - ["Montaperto", "AG"], - ["Borgo La Loggia", "AG"], - ], - "93010": [ - ["Campofranco", "CL"], - ["Sutera", "CL"], - ["Bompensiere", "CL"], - ["Acquaviva Platani", "CL"], - ["Vallelunga Pratameno", "CL"], - ["Serradifalco", "CL"], - ["Milena", "CL"], - ["Montedoro", "CL"], - ["Villalba", "CL"], - ["Marianopoli", "CL"], - ["Resuttano", "CL"], - ["Delia", "CL"], - ], - "93011": [["Butera", "CL"]], - "93012": [["Gela", "CL"]], - "93013": [["Mazzarino", "CL"]], - "93014": [["Polizzello", "CL"], ["Mussomeli", "CL"]], - "93015": [["Niscemi", "CL"]], - "93016": [["Riesi", "CL"]], - "93017": [["San Cataldo", "CL"]], - "93018": [["Santa Caterina Villarmosa", "CL"]], - "93019": [["Trabia Miniere", "CL"], ["Sommatino", "CL"]], - "93100": [ - ["Favarella", "CL"], - ["Villaggio Santa Barbara", "CL"], - ["Borgo Petilia", "CL"], - ["Caltanissetta", "CL"], - ], - "95010": [ - ["Santa Venerina", "CT"], - ["Milo", "CT"], - ["Sant'Alfio", "CT"], - ["Dagala Del Re", "CT"], - ["Fornazzo", "CT"], - ["Linera", "CT"], - ], - "95011": [["Pasteria", "CT"], ["Calatabiano", "CT"]], - "95012": [ - ["Solicchiata", "CT"], - ["Passopisciaro", "CT"], - ["Mitogio", "CT"], - ["Verzella", "CT"], - ["Castiglione Di Sicilia", "CT"], - ], - "95013": [["Fiumefreddo Di Sicilia", "CT"]], - "95014": [ - ["Trepunti", "CT"], - ["Carruba", "CT"], - ["San Giovanni", "CT"], - ["Giarre", "CT"], - ["San Leonardello", "CT"], - ["Altarello", "CT"], - ["San Giovanni Montebello", "CT"], - ["Macchia Di Giarre", "CT"], - ], - "95015": [["Linguaglossa", "CT"]], - "95016": [ - ["Puntalazzo", "CT"], - ["Carrabba", "CT"], - ["Portosalvo", "CT"], - ["Santa Venera", "CT"], - ["Nunziata", "CT"], - ["Mascali", "CT"], - ], - "95017": [["Presa", "CT"], ["Vena", "CT"], ["Piedimonte Etneo", "CT"]], - "95018": [["Torre Archirafi", "CT"], ["Riposto", "CT"]], - "95019": [["Pisano Etneo", "CT"], ["Fleri", "CT"], ["Sarro", "CT"], ["Zafferana Etnea", "CT"]], - "95020": [["Aci Bonaccorsi", "CT"]], - "95021": [["Ficarazzi", "CT"], ["Aci Trezza", "CT"], ["Cannizzaro", "CT"], ["Aci Castello", "CT"]], - "95022": [ - ["Vampolieri", "CT"], - ["Nizzeti", "CT"], - ["Aci Catena", "CT"], - ["Aci San Filippo", "CT"], - ["San Nicolo'", "CT"], - ["Eremo Sant'Anna", "CT"], - ], - "95024": [ - ["Santa Tecla Di Acireale", "CT"], - ["Acireale", "CT"], - ["Santa Maria Degli Ammalati", "CT"], - ["Pozzillo", "CT"], - ["Guardia", "CT"], - ["Pennisi", "CT"], - ["Aci Platani", "CT"], - ["Stazzo", "CT"], - ["Mangano", "CT"], - ["Piano D'Api", "CT"], - ["Scillichenti", "CT"], - ["Santa Maria La Scala", "CT"], - ], - "95025": [ - ["Aci Sant'Antonio", "CT"], - ["Lavina", "CT"], - ["Monterosso Etneo", "CT"], - ["Santa Maria La Stella", "CT"], - ["Monterosso", "CT"], - ["Lavinaio", "CT"], - ], - "95027": [["Cerza", "CT"], ["San Gregorio Di Catania", "CT"]], - "95028": [["Valverde", "CT"]], - "95029": [["Viagrande", "CT"]], - "95030": [ - ["Sant'Agata Li Battiati", "CT"], - ["Nicolosi", "CT"], - ["San Pietro Clarenza", "CT"], - ["Mascalucia", "CT"], - ["Ragalna", "CT"], - ["Tremestieri Etneo", "CT"], - ["Maniace", "CT"], - ["Pedara", "CT"], - ["Canalicchio", "CT"], - ["Gravina Di Catania", "CT"], - ], - "95031": [["Adrano", "CT"]], - "95032": [ - ["Belpasso", "CT"], - ["Borrello Di Catania", "CT"], - ["Villaggio Le Ginestre", "CT"], - ["Villaggio Del Pino", "CT"], - ["Piano Tavola", "CT"], - ["Palazzolo", "CT"], - ], - "95033": [["Biancavilla", "CT"]], - "95034": [["Bronte", "CT"]], - "95035": [["Maletto", "CT"]], - "95036": [["Randazzo", "CT"], ["Calderara", "CT"]], - "95037": [["San Giovanni La Punta", "CT"], ["Trappeto", "CT"]], - "95038": [["Santa Maria Di Licodia", "CT"]], - "95039": [["Trecastagni", "CT"]], - "95040": [ - ["Castel Di Iudica", "CT"], - ["Motta Sant'Anastasia", "CT"], - ["Libertinia", "CT"], - ["Licodia Eubea", "CT"], - ["Giumarra", "CT"], - ["Mazzarrone", "CT"], - ["San Cono", "CT"], - ["San Michele Di Ganzaria", "CT"], - ["Raddusa", "CT"], - ["Cinquegrana", "CT"], - ["Mirabella Imbaccari", "CT"], - ["Camporotondo Etneo", "CT"], - ["Ramacca", "CT"], - ["Carrubbo", "CT"], - ], - "95041": [ - ["Santo Pietro", "CT"], - ["Caltagirone", "CT"], - ["Granieri", "CT"], - ["San Pietro Di Caltagirone", "CT"], - ], - "95042": [["Grammichele", "CT"]], - "95043": [["Militello In Val Di Catania", "CT"]], - "95044": [["Borgo Lupo", "CT"], ["Mineo", "CT"]], - "95045": [["Misterbianco", "CT"], ["San Nullo", "CT"]], - "95046": [["Palagonia", "CT"]], - "95047": [["Paterno'", "CT"], ["Sferro", "CT"]], - "95048": [["Scordia", "CT"]], - "95049": [["Vizzini", "CT"]], - "95100": [["Catania", "CT"]], - "95121": [ - ["Catania", "CT"], - ["Zia Lisa", "CT"], - ["San Teodoro", "CT"], - ["San Giorgio", "CT"], - ["San Giuseppe Alla Rena", "CT"], - ["Santa Maria Goretti", "CT"], - ["Fontanarossa Aereoporto", "CT"], - ], - "95122": [["Nesima Inferiore", "CT"], ["Acquicella", "CT"], ["Nesima Superiore", "CT"], ["Catania", "CT"]], - "95123": [["Catania", "CT"], ["San Nullo", "CT"], ["Cibali", "CT"]], - "95124": [["Catania", "CT"]], - "95125": [["Catania", "CT"], ["Canalicchio", "CT"], ["Barriera Del Bosco", "CT"]], - "95126": [["Ognina", "CT"], ["Catania", "CT"]], - "95127": [["Catania", "CT"], ["Picanello", "CT"]], - "95128": [["Catania", "CT"]], - "95129": [["Catania", "CT"]], - "95131": [["Catania", "CT"]], - "94010": [ - ["San Giorgio", "EN"], - ["Assoro", "EN"], - ["Nissoria", "EN"], - ["Calascibetta", "EN"], - ["Cacchiamo", "EN"], - ["Borgo Baccarato", "EN"], - ["Gagliano Castelferrato", "EN"], - ["Sperlinga", "EN"], - ["Cerami", "EN"], - ["Centuripe", "EN"], - ["Villarosa", "EN"], - ["Catenanuova", "EN"], - ["Villapriolo", "EN"], - ["Aidone", "EN"], - ], - "94011": [["Agira", "EN"]], - "94012": [["Barrafranca", "EN"]], - "94013": [["Leonforte", "EN"]], - "94014": [["Nicosia", "EN"], ["Villadoro", "EN"], ["San Giacomo", "EN"]], - "94015": [["Grottacalda", "EN"], ["Piazza Armerina", "EN"]], - "94016": [["Pietraperzia", "EN"]], - "94017": [["Regalbuto", "EN"]], - "94018": [["Troina", "EN"]], - "94019": [["Valguarnera Caropepe", "EN"]], - "94100": [["Enna", "EN"], ["Pergusa", "EN"], ["Borgo Cascino", "EN"]], - "98020": [["Rocchenere", "ME"], ["Pagliara", "ME"], ["Mandanici", "ME"], ["Ali'", "ME"], ["Locadi", "ME"]], - "98021": [["Ali' Terme", "ME"]], - "98022": [["Fiumedinisi", "ME"]], - "98023": [["Furci Siculo", "ME"]], - "98025": [["Itala", "ME"], ["Itala Marina", "ME"]], - "98026": [["Nizza Di Sicilia", "ME"]], - "98027": [["Sciglio", "ME"], ["Roccalumera", "ME"], ["Allume", "ME"]], - "98028": [["Misserio", "ME"], ["Santa Teresa Di Riva", "ME"], ["Barracca", "ME"]], - "98029": [ - ["Guidomandri Marina", "ME"], - ["Guidomandri Superiore", "ME"], - ["Scaletta Zanclea", "ME"], - ["Guidomandri", "ME"], - ], - "98030": [ - ["San Teodoro", "ME"], - ["Floresta", "ME"], - ["Mongiuffi Melia", "ME"], - ["Gallodoro", "ME"], - ["Roccafiorita", "ME"], - ["Mongiuffi", "ME"], - ["Santa Domenica Vittoria", "ME"], - ["Forza D'Agro'", "ME"], - ["Sant'Alessio Siculo", "ME"], - ["Limina", "ME"], - ["Gaggi", "ME"], - ["Motta Camastra", "ME"], - ["Castelmola", "ME"], - ["Roccella Valdemone", "ME"], - ["Moio Alcantara", "ME"], - ["Melia", "ME"], - ["Antillo", "ME"], - ["Malvagna", "ME"], - ], - "98031": [["Capizzi", "ME"]], - "98032": [ - ["Misitano", "ME"], - ["Misitano Superiore", "ME"], - ["Casalvecchio Siculo", "ME"], - ["Misitano Inferiore", "ME"], - ], - "98033": [["Cesaro'", "ME"]], - "98034": [["Francavilla Di Sicilia", "ME"]], - "98035": [["Naxos", "ME"], ["Giardini Naxos", "ME"], ["Pallio", "ME"]], - "98036": [["Graniti", "ME"]], - "98037": [["Letojanni", "ME"]], - "98038": [["Rina", "ME"], ["Savoca", "ME"]], - "98039": [ - ["Chianchitta", "ME"], - ["Mazzeo", "ME"], - ["Taormina", "ME"], - ["Trappitello", "ME"], - ["Mazzaro'", "ME"], - ], - "98040": [ - ["Fondachello", "ME"], - ["Gualtieri Sicamino'", "ME"], - ["Torregrotta", "ME"], - ["Condro'", "ME"], - ["Roccavaldina", "ME"], - ["Venetico", "ME"], - ["Venetico Superiore", "ME"], - ["Venetico Marina", "ME"], - ["Valdina", "ME"], - ["Soccorso", "ME"], - ["Scala Di Torregrotta", "ME"], - ["Meri'", "ME"], - ], - "98041": [["Monforte San Giorgio", "ME"], ["Pellegrino", "ME"], ["Monforte Marina", "ME"]], - "98042": [["Giammoro", "ME"], ["Pace Del Mela", "ME"]], - "98043": [["Rometta", "ME"], ["Rometta Marea", "ME"], ["Gimello", "ME"], ["Sant'Andrea", "ME"]], - "98044": [ - ["San Filippo Del Mela", "ME"], - ["Archi", "ME"], - ["Cattafi", "ME"], - ["Olivarella", "ME"], - ["Corriolo", "ME"], - ], - "98045": [["San Pier Marina", "ME"], ["San Pier Niceto", "ME"]], - "98046": [["Santa Lucia Del Mela", "ME"]], - "98047": [["Saponara Marittima", "ME"], ["Saponara", "ME"], ["Cavaliere", "ME"], ["Scarcelli", "ME"]], - "98048": [["Spadafora", "ME"], ["San Martino Spadafora", "ME"], ["San Martino", "ME"]], - "98049": [["Villafranca Tirrena", "ME"], ["Divieto", "ME"], ["Calvaruso", "ME"], ["Serro", "ME"]], - "98050": [ - ["Filicudi", "ME"], - ["Alicudi Porto", "ME"], - ["Panarea", "ME"], - ["Alicudi", "ME"], - ["Rubino", "ME"], - ["Castroreale Terme", "ME"], - ["Malfa", "ME"], - ["Vulcano", "ME"], - ["Terme Vigliatore", "ME"], - ["Vigliatore", "ME"], - ["Fondachelli Fantina", "ME"], - ["Lingua", "ME"], - ["Ginostra", "ME"], - ["Fantina", "ME"], - ["Ginostra Di Lipari", "ME"], - ["Filicudi Porto", "ME"], - ["Pecorini A Mare", "ME"], - ["Santa Marina Salina", "ME"], - ["Leni", "ME"], - ["Stromboli", "ME"], - ["Evangelisti", "ME"], - ["Vulcano Porto", "ME"], - ], - "98051": [ - ["San Paolo", "ME"], - ["Pozzo Di Gotto", "ME"], - ["La Gala", "ME"], - ["Sant'Antonino Convento", "ME"], - ["Caldera'", "ME"], - ["Sant'Antonio", "ME"], - ["Porto Salvo", "ME"], - ["Barcellona Pozzo Di Gotto", "ME"], - ["Cannistra'", "ME"], - ["Gala", "ME"], - ["Acquaficara", "ME"], - ], - "98053": [["Bafia", "ME"], ["Castroreale", "ME"], ["Protonotaro", "ME"]], - "98054": [["Furnari", "ME"], ["Tonnarella", "ME"]], - "98055": [ - ["Canneto Lipari", "ME"], - ["Lipari", "ME"], - ["Acquacalda", "ME"], - ["Canneto", "ME"], - ["Pianoconte", "ME"], - ["Quattropani", "ME"], - ], - "98056": [["Mazzarra' Sant'Andrea", "ME"]], - "98057": [["Santa Marina Di Milazzo", "ME"], ["Milazzo", "ME"], ["San Pietro Di Milazzo", "ME"]], - "98058": [["Novara Di Sicilia", "ME"], ["San Basilio Di Novara Di Sicilia", "ME"]], - "98059": [["Rodi' Milici", "ME"], ["Milici", "ME"]], - "98060": [ - ["Tripi", "ME"], - ["Salina'", "ME"], - ["Belvedere", "ME"], - ["San Lorenzitto", "ME"], - ["Montagnareale", "ME"], - ["Piraino", "ME"], - ["Sant'Angelo Di Brolo", "ME"], - ["Falcone", "ME"], - ["Basico'", "ME"], - ["San Silvestro", "ME"], - ["Gliaca", "ME"], - ["Oliveri", "ME"], - ["Fiumara Di Piraino", "ME"], - ["Campogrande", "ME"], - ["Santa Maria Lo Piano", "ME"], - ["Ucria", "ME"], - ["Cavallo Pastorio", "ME"], - ], - "98061": [["Brolo", "ME"]], - "98062": [["Ficarra", "ME"]], - "98063": [["Magaro", "ME"], ["Gioiosa Marea", "ME"], ["San Giorgio", "ME"]], - "98064": [["Nasidi", "ME"], ["Librizzi", "ME"], ["Colla Maffone", "ME"]], - "98065": [["Santa Barbara", "ME"], ["Montalbano Elicona", "ME"], ["Braidi", "ME"]], - "98066": [ - ["Scala", "ME"], - ["Mongiove", "ME"], - ["Tindari", "ME"], - ["Patti", "ME"], - ["San Cosimo", "ME"], - ["Marina Di Patti", "ME"], - ["Case Nuove Russo", "ME"], - ], - "98067": [["Raccuja", "ME"], ["Fondachello Di Raccuja", "ME"], ["Zappa", "ME"]], - "98068": [["San Piero Patti", "ME"], ["Fiumara", "ME"], ["Tesoriero", "ME"]], - "98069": [["Sinagra", "ME"]], - "98070": [ - ["Militello Rosmarino", "ME"], - ["Alcara Li Fusi", "ME"], - ["Galati Mamertino", "ME"], - ["Mirto", "ME"], - ["Reitano", "ME"], - ["Torrenova", "ME"], - ["Frazzano'", "ME"], - ["Capri Leone", "ME"], - ["Rocca Di Capri Leone", "ME"], - ["Acquedolci", "ME"], - ["Castel Di Lucio", "ME"], - ["San Marco D'Alunzio", "ME"], - ["Pettineo", "ME"], - ["Motta D'Affermo", "ME"], - ["Castell'Umberto", "ME"], - ["San Salvatore Di Fitalia", "ME"], - ["San Basilio", "ME"], - ["Sfaranda", "ME"], - ["Longi", "ME"], - ["Torremuzza", "ME"], - ], - "98071": [["Piana Di Capo D'Orlando", "ME"], ["Scafa", "ME"], ["Capo D'Orlando", "ME"]], - "98072": [["Marina Di Caronia", "ME"], ["Canneto Di Caronia", "ME"], ["Caronia", "ME"]], - "98073": [["Mistretta", "ME"]], - "98074": [["Malo'", "ME"], ["Cresta", "ME"], ["Naso", "ME"]], - "98075": [["San Fratello", "ME"]], - "98076": [["Sant'Agata Di Militello", "ME"], ["Vallebruca", "ME"], ["Torrecandele", "ME"]], - "98077": [["Santo Stefano Di Camastra", "ME"]], - "98078": [ - ["Moira", "ME"], - ["Tortorici", "ME"], - ["Sceti", "ME"], - ["Grazia", "ME"], - ["Ilombati", "ME"], - ["Sant'Antonino Sciortino", "ME"], - ], - "98079": [["Castel Di Tusa", "ME"], ["Tusa", "ME"]], - "98100": [["Messina", "ME"]], - "98121": [["Messina", "ME"]], - "98122": [["Messina", "ME"]], - "98123": [["Messina", "ME"]], - "98124": [["Messina", "ME"], ["Gazzi", "ME"]], - "98125": [["Contesse", "ME"], ["Messina", "ME"]], - "98126": [["Messina", "ME"], ["Santa Lucia Sopra Contesse", "ME"]], - "98127": [["Zafferia", "ME"], ["Messina", "ME"]], - "98128": [["Messina", "ME"], ["Tremestieri", "ME"]], - "98129": [["Larderia", "ME"], ["Messina", "ME"]], - "98131": [["Messina", "ME"], ["Mili Marina", "ME"]], - "98132": [["Mili Marina", "ME"], ["Mili San Marco", "ME"], ["Messina", "ME"]], - "98133": [["Messina", "ME"], ["Mili Superiore", "ME"]], - "98134": [["Messina", "ME"], ["Galati Marina", "ME"]], - "98135": [["Messina", "ME"], ["Santo Stefano Medio", "ME"], ["Santa Margherita", "ME"]], - "98136": [["Santo Stefano Medio", "ME"], ["Messina", "ME"]], - "98137": [["Santo Stefano Di Briga", "ME"], ["Messina", "ME"]], - "98138": [["Messina", "ME"], ["Pezzolo", "ME"]], - "98139": [["San Placido Calonero'", "ME"], ["Briga Marina", "ME"], ["Briga", "ME"], ["Messina", "ME"]], - "98141": [["Messina", "ME"], ["Giampilieri Marina", "ME"]], - "98142": [["Giampilieri", "ME"], ["San Filippo Inferiore", "ME"], ["Messina", "ME"]], - "98143": [["Messina", "ME"], ["Altolia", "ME"], ["Molino", "ME"]], - "98144": [["Messina", "ME"], ["San Filippo", "ME"]], - "98145": [["Messina", "ME"], ["Bordonaro", "ME"], ["San Filippo", "ME"]], - "98146": [["Cumia", "ME"], ["Santo", "ME"], ["Messina", "ME"]], - "98147": [["Messina", "ME"], ["Villaggio Aldisio", "ME"]], - "98148": [["Santo", "ME"], ["Messina", "ME"]], - "98149": [["Messina", "ME"], ["Camaro", "ME"], ["Camaro Inferiore", "ME"], ["Cataratti", "ME"]], - "98151": [["Camaro", "ME"], ["Messina", "ME"]], - "98152": [["Messina", "ME"], ["Scala Ritiro", "ME"], ["San Michele", "ME"]], - "98153": [["Gesso", "ME"], ["Messina", "ME"]], - "98154": [["Messina", "ME"], ["Salice Calabro", "ME"], ["Salice", "ME"]], - "98155": [["Castanea", "ME"], ["Castanea Delle Furie", "ME"], ["Messina", "ME"]], - "98156": [["Massa San Giorgio", "ME"], ["Messina", "ME"]], - "98157": [["Messina", "ME"], ["Massa Santa Lucia", "ME"], ["Massa San Giovanni", "ME"]], - "98158": [["Faro Superiore", "ME"], ["Messina", "ME"]], - "98159": [["Messina", "ME"], ["Liuzzo Orto", "ME"]], - "98161": [["Messina", "ME"], ["Rodia", "ME"]], - "98162": [["San Saba", "ME"], ["Messina", "ME"]], - "98163": [["Messina", "ME"], ["Sparta'", "ME"]], - "98164": [["Lido Di Mortelle", "ME"], ["Messina", "ME"], ["Torre Faro", "ME"]], - "98165": [["Messina", "ME"], ["Ganzirri", "ME"]], - "98166": [["Sant'Agata", "ME"], ["Messina", "ME"]], - "98167": [["Messina", "ME"], ["Pace", "ME"]], - "98168": [ - ["Villaggio Annunziata", "ME"], - ["Contemplazione", "ME"], - ["Pace", "ME"], - ["Villaggio Paradiso", "ME"], - ["Messina", "ME"], - ], - "90010": [ - ["San Mauro Castelverde", "PA"], - ["Ustica", "PA"], - ["Cerda", "PA"], - ["Finale", "PA"], - ["Gratteri", "PA"], - ["Pollina", "PA"], - ["Isnello", "PA"], - ["Altavilla Milicia", "PA"], - ["Campofelice Di Roccella", "PA"], - ["Lascari", "PA"], - ["Ficarazzi", "PA"], - ["Borrello Di San Mauro Castelverde", "PA"], - ["Geraci Siculo", "PA"], - ["Torre Normanna", "PA"], - ["Lascari Scalo", "PA"], - ], - "90011": [["Aspra", "PA"], ["Bagheria", "PA"]], - "90012": [["Sambuchi", "PA"], ["San Giovanni Li Greci", "PA"], ["Caccamo", "PA"]], - "90013": [["Castelbuono", "PA"]], - "90014": [["Casteldaccia", "PA"]], - "90015": [["Gibilmanna", "PA"], ["Sant'Ambrogio", "PA"], ["Cefalu'", "PA"]], - "90016": [["Collesano", "PA"]], - "90017": [["Sant'Elia", "PA"], ["Santa Flavia", "PA"], ["Porticello", "PA"]], - "90018": [["Termini Imerese", "PA"], ["Danigarci", "PA"]], - "90019": [["San Nicolo' L'Arena", "PA"], ["Trabia", "PA"]], - "90020": [ - ["Scillato", "PA"], - ["Vicari", "PA"], - ["Ventimiglia Di Sicilia", "PA"], - ["Sciara", "PA"], - ["Calcarelli", "PA"], - ["Roccapalumba", "PA"], - ["Baucina", "PA"], - ["Blufi", "PA"], - ["Alimena", "PA"], - ["Castellana Sicula", "PA"], - ["Nociazzi Inferiore", "PA"], - ["Aliminusa", "PA"], - ["Regalgioffoli", "PA"], - ["Sclafani Bagni", "PA"], - ["Montemaggiore Belsito", "PA"], - ["Bompietro", "PA"], - ["Nociazzi", "PA"], - ["Locati", "PA"], - ], - "90021": [["Alia", "PA"]], - "90022": [["Caltavuturo", "PA"]], - "90023": [["Ciminna", "PA"]], - "90024": [["Gangi", "PA"]], - "90025": [["Lercara Friddi", "PA"]], - "90026": [ - ["Pianello", "PA"], - ["Pianello Di Petralia Sottana", "PA"], - ["Raffo", "PA"], - ["Petralia Soprana", "PA"], - ["Fasano'", "PA"], - ], - "90027": [["Petralia Sottana", "PA"]], - "90028": [["Polizzi Generosa", "PA"]], - "90029": [["Valledolmo", "PA"]], - "90030": [ - ["Cefala' Diana", "PA"], - ["Godrano", "PA"], - ["Blandino", "PA"], - ["Santa Cristina Gela", "PA"], - ["Campofiorito", "PA"], - ["Giuliana", "PA"], - ["Piano Maglio", "PA"], - ["Contessa Entellina", "PA"], - ["Castronuovo Di Sicilia", "PA"], - ["Mezzojuso", "PA"], - ["Villafrati", "PA"], - ["Palazzo Adriano", "PA"], - ["Altofonte", "PA"], - ["Bolognetta", "PA"], - ["Campofelice Di Fitalia", "PA"], - ], - "90031": [["Belmonte Mezzagno", "PA"]], - "90032": [["Bisacquino", "PA"]], - "90033": [["San Carlo", "PA"], ["Chiusa Sclafani", "PA"]], - "90034": [["Corleone", "PA"], ["Ficuzza", "PA"]], - "90035": [["Marineo", "PA"]], - "90036": [["Portella Di Mare", "PA"], ["Misilmeri", "PA"]], - "90037": [["Piana Degli Albanesi", "PA"]], - "90038": [["Filaga", "PA"], ["Prizzi", "PA"]], - "90039": [["Villabate", "PA"]], - "90040": [ - ["Montelepre", "PA"], - ["Giardinello", "PA"], - ["Trappeto", "PA"], - ["Roccamena", "PA"], - ["San Cipirello", "PA"], - ["Grisi'", "PA"], - ["Isola Delle Femmine", "PA"], - ["Capaci", "PA"], - ["Torretta", "PA"], - ["Cortiglia", "PA"], - ], - "90041": [["Balestrate", "PA"], ["Foce", "PA"]], - "90042": [["Borgetto", "PA"]], - "90043": [["Camporeale", "PA"]], - "90044": [["Villagrazia Di Carini", "PA"], ["Carini", "PA"]], - "90045": [["Cinisi", "PA"], ["Punta Raisi Aeroporto", "PA"]], - "90046": [ - ["Villa Ciambra", "PA"], - ["Poggio San Francesco", "PA"], - ["Pioppo", "PA"], - ["San Martino Delle Scale", "PA"], - ["Malpasso", "PA"], - ["Monreale", "PA"], - ], - "90047": [["Partinico", "PA"]], - "90048": [["San Giuseppe Jato", "PA"]], - "90049": [["Terrasini", "PA"], ["Citta' Del Mare", "PA"]], - "90100": [["Palermo", "PA"]], - "90121": [ - ["Palermo", "PA"], - ["Boccadifalco", "PA"], - ["In Via Messina Marine", "PA"], - ["In Via Ammiraglio Cristodulo", "PA"], - ["Brancaccio Ciaculli", "PA"], - ["Acqua Dei Corsari", "PA"], - ], - "90122": [["Roccella Guarnaschelli", "PA"], ["Palermo", "PA"]], - "90123": [["Palermo", "PA"], ["Settecannoli", "PA"]], - "90124": [ - ["In Via Chiavelli", "PA"], - ["Brancaccio Ciaculli", "PA"], - ["In Via Brancaccio", "PA"], - ["In Via Santa Maria Di Gesu'", "PA"], - ["Palermo", "PA"], - ], - "90125": [["Palermo", "PA"], ["In Via Aloi", "PA"]], - "90126": [["Mezzomonreale Boccadifalco", "PA"], ["Palermo", "PA"]], - "90127": [["Palermo", "PA"]], - "90128": [["Palermo", "PA"]], - "90129": [["Palermo", "PA"]], - "90131": [["Palermo", "PA"], ["Rocca Monreale", "PA"]], - "90132": [["Palermo", "PA"]], - "90133": [["Palermo", "PA"], ["Tribunali Castellammare", "PA"]], - "90134": [["Zisa", "PA"], ["In Via Gioiamia", "PA"], ["Palermo", "PA"]], - "90135": [["Palermo", "PA"], ["Zisa", "PA"]], - "90136": [["Palermo", "PA"]], - "90137": [["Palermo", "PA"]], - "90138": [["Palermo", "PA"], ["Zisa", "PA"]], - "90139": [["Palermo", "PA"]], - "90141": [["Palermo", "PA"]], - "90142": [["Palermo", "PA"], ["Montepellegrino", "PA"], ["Arenella Vergine Maria", "PA"]], - "90143": [["Palermo", "PA"]], - "90144": [["Palermo", "PA"]], - "90145": [["Palermo", "PA"]], - "90146": [ - ["Palermo", "PA"], - ["In Via San Nicola", "PA"], - ["Pallavicino", "PA"], - ["Cruillas", "PA"], - ["San Lorenzo Colli", "PA"], - ["Resuttana San Lorenzo", "PA"], - ], - "90147": [["Tommaso Natale Sferracavallo", "PA"], ["Palermo", "PA"]], - "90148": [["Palermo", "PA"], ["Sferracavallo", "PA"], ["Villagrazia", "PA"], ["Tommaso Natale", "PA"]], - "90149": [["Palermo", "PA"]], - "90151": [["Palermo", "PA"], ["Partanna Mondello", "PA"], ["Mondello", "PA"]], - "97010": [ - ["Marina Di Modica", "RG"], - ["Bellocozzo", "RG"], - ["Marina Di Ragusa", "RG"], - ["Monterosso Almo", "RG"], - ["Roccazzo", "RG"], - ["Giarratana", "RG"], - ], - "97011": [["Acate", "RG"]], - "97012": [["Chiaramonte Gulfi", "RG"]], - "97013": [["Pedalino", "RG"], ["Comiso", "RG"]], - "97014": [["Ispica", "RG"]], - "97015": [ - ["Modica Alta", "RG"], - ["Frigintini", "RG"], - ["Rocciola Sorda", "RG"], - ["Cava D'Ispica", "RG"], - ["Modica", "RG"], - ], - "97016": [["Pozzallo", "RG"]], - "97017": [["Santa Croce Camerina", "RG"], ["Donnafugata", "RG"]], - "97018": [["Donnalucata", "RG"], ["Jungi", "RG"], ["Cava D'Aliga", "RG"], ["Scicli", "RG"], ["Sampieri", "RG"]], - "97019": [["Scoglitti", "RG"], ["Vittoria", "RG"]], - "97100": [["Ragusa", "RG"], ["Ragusa Ibla", "RG"]], - "96010": [ - ["Portopalo Di Capo Passero", "SR"], - ["Melilli", "SR"], - ["Buccheri", "SR"], - ["Villasmundo", "SR"], - ["Sortino", "SR"], - ["Ferla", "SR"], - ["Priolo Gargallo", "SR"], - ["San Foca'", "SR"], - ["Marina Di Melilli", "SR"], - ["Cassaro", "SR"], - ["Buscemi", "SR"], - ["Rizzolo", "SR"], - ["Solarino", "SR"], - ["Canicattini Bagni", "SR"], - ["Palazzolo Acreide", "SR"], - ], - "96011": [["Augusta", "SR"], ["Brucoli", "SR"]], - "96012": [["Avola", "SR"]], - "96013": [["Borgo Rizza", "SR"], ["Carlentini", "SR"], ["Pedagaggi", "SR"]], - "96014": [["Floridia", "SR"]], - "96015": [["Francofonte", "SR"]], - "96016": [["Lentini", "SR"]], - "96017": [ - ["Santa Lucia", "SR"], - ["San Paolo Di Noto", "SR"], - ["San Paolo", "SR"], - ["Testa Dell'Acqua", "SR"], - ["Noto", "SR"], - ["Santa Lucia Di Noto", "SR"], - ["San Corrado Di Fuori", "SR"], - ["Rigolizia", "SR"], - ["Castelluccio", "SR"], - ], - "96018": [["Marzamemi", "SR"], ["Pachino", "SR"]], - "96019": [["Rosolini", "SR"]], - "96100": [ - ["Siracusa", "SR"], - ["Carrozziere", "SR"], - ["Belvedere Di Siracusa", "SR"], - ["Belvedere", "SR"], - ["Cassibile", "SR"], - ], - "91010": [ - ["Castelluzzo", "TP"], - ["Macari", "TP"], - ["Vita", "TP"], - ["Marettimo", "TP"], - ["San Vito Lo Capo", "TP"], - ], - "91011": [["Alcamo", "TP"]], - "91012": [["Bruca", "TP"], ["Battaglia", "TP"], ["Buseto Palizzolo", "TP"]], - "91013": [["Sasi", "TP"], ["Calatafimi Segesta", "TP"], ["Calatafimi", "TP"]], - "91014": [ - ["Scopello", "TP"], - ["Castellammare Del Golfo", "TP"], - ["Balata Di Baida", "TP"], - ["Castello Inici", "TP"], - ], - "91015": [["Sperone Di Custonaci", "TP"], ["Purgatorio", "TP"], ["Custonaci", "TP"]], - "91016": [ - ["Napola", "TP"], - ["Ballata", "TP"], - ["Pizzolungo", "TP"], - ["Casa Santa", "TP"], - ["San Giuliano Trentapiedi", "TP"], - ["Rigaletta", "TP"], - ["Erice", "TP"], - ], - "91017": [ - ["Kamma", "TP"], - ["Scauri Siculo", "TP"], - ["Scauri", "TP"], - ["Pantelleria Aeroporto", "TP"], - ["Pantelleria", "TP"], - ], - "91018": [["Ulmi", "TP"], ["Filci", "TP"], ["San Ciro", "TP"], ["Salemi", "TP"], ["Gorgazzo", "TP"]], - "91019": [ - ["Valderice", "TP"], - ["Sant'Andrea Bonagia", "TP"], - ["Chiesanuova", "TP"], - ["Crocevie", "TP"], - ["Tonnara Di Bonagia", "TP"], - ["Bonagia", "TP"], - ["Crocci", "TP"], - ["Fico", "TP"], - ], - "91020": [ - ["Poggioreale", "TP"], - ["Salaparuta", "TP"], - ["Granitola", "TP"], - ["Costiera Di Mazara", "TP"], - ["Petrosino", "TP"], - ], - "91021": [["Tre Fontane", "TP"], ["Granitola Torretta", "TP"], ["Campobello Di Mazara", "TP"]], - "91022": [["Castelvetrano", "TP"], ["Marinella Di Selinunte", "TP"], ["Marinella", "TP"], ["Triscina", "TP"]], - "91023": [["Favignana", "TP"], ["Levanzo", "TP"]], - "91024": [["Gibellina", "TP"], ["Villaggio Madonna Delle Grazie", "TP"]], - "91025": [ - ["Spagnola", "TP"], - ["Marsala", "TP"], - ["Ragattisi", "TP"], - ["Matarocco", "TP"], - ["Ciavolotto", "TP"], - ["Bufalata", "TP"], - ["Tabaccaro", "TP"], - ["Terrenove Bambina", "TP"], - ["Santo Padre Delle Perriere", "TP"], - ["Strasatti Di Marsala", "TP"], - ["Paolini", "TP"], - ["Ciavolo", "TP"], - ], - "91026": [["Borgata Costiera", "TP"], ["Mazara Del Vallo", "TP"]], - "91027": [["Paceco", "TP"], ["Dattilo", "TP"], ["Nubia", "TP"]], - "91028": [["Partanna", "TP"]], - "91029": [["Santa Ninfa", "TP"]], - "91100": [ - ["Xitta", "TP"], - ["Birgi Aerostazione", "TP"], - ["Locogrande", "TP"], - ["San Giuliano Trentapiedi", "TP"], - ["Marausa Loco Grande", "TP"], - ["Borgo Fazio", "TP"], - ["Marausa", "TP"], - ["Ummari", "TP"], - ["Fulgatore", "TP"], - ["Fontanelle Casasanta", "TP"], - ["Borgo Annunziata", "TP"], - ["Trapani", "TP"], - ["Guarrato", "TP"], - ["Salinagrande", "TP"], - ["Rilievo", "TP"], - ], - "52010": [ - ["La Verna", "AR"], - ["Serravalle Di Bibbiena", "AR"], - ["Biforco", "AR"], - ["Subbiano", "AR"], - ["Corsalone", "AR"], - ["Ortignano", "AR"], - ["Chiusi Della Verna", "AR"], - ["Santa Mama", "AR"], - ["Montemignaio", "AR"], - ["Faltona", "AR"], - ["Capolona", "AR"], - ["Chitignano", "AR"], - ["Talla", "AR"], - ["Ortignano Raggiolo", "AR"], - ["Raggiolo", "AR"], - ["Moggiona Di Poppi", "AR"], - ], - "52011": [ - ["Bibbiena", "AR"], - ["Soci", "AR"], - ["Partina", "AR"], - ["Banzena", "AR"], - ["Bibbiena Stazione", "AR"], - ["Serravalle", "AR"], - ], - "52014": [ - ["Ponte A Poppi", "AR"], - ["Avena", "AR"], - ["Quota", "AR"], - ["Camaldoli", "AR"], - ["Poppi", "AR"], - ["Porrena", "AR"], - ["Badia Prataglia", "AR"], - ["Moggiona", "AR"], - ], - "52015": [["Pratovecchio", "AR"], ["Pratovecchio Stia", "AR"]], - "52016": [["Castel Focognano", "AR"], ["Rassina", "AR"], ["Salutio", "AR"], ["Pieve A Socana", "AR"]], - "52017": [["Papiano", "AR"], ["Stia", "AR"]], - "52018": [["Borgo Alla Collina", "AR"], ["Strada", "AR"], ["Castel San Niccolo'", "AR"]], - "52020": [ - ["Castelfranco Di Sopra", "AR"], - ["Laterina", "AR"], - ["Ponticino", "AR"], - ["Laterina Stazione", "AR"], - ["Montalto", "AR"], - ["Pieve A Presciano", "AR"], - ["Pergine Valdarno", "AR"], - ["Cavi", "AR"], - ["Casalone", "AR"], - ], - "52021": [ - ["Torre", "AR"], - ["Badia Agnano", "AR"], - ["Capannole", "AR"], - ["Ambra", "AR"], - ["Bucine", "AR"], - ["Pietraviva", "AR"], - ], - "52022": [ - ["Meleto", "AR"], - ["Cavriglia", "AR"], - ["San Cipriano", "AR"], - ["Neri", "AR"], - ["Vacchereccia", "AR"], - ["Santa Barbara", "AR"], - ["Monastero", "AR"], - ["Castelnuovo Dei Sabbioni", "AR"], - ["Montegonzi", "AR"], - ], - "52024": [["Loro Ciuffenna", "AR"], ["San Giustino Valdarno", "AR"]], - "52025": [["Levane", "AR"], ["Montevarchi", "AR"], ["Moncioni", "AR"], ["Mercatale Valdarno", "AR"]], - "52026": [["Castelfranco Piandiscò", "AR"], ["Pian Di Sco", "AR"], ["Vaggio", "AR"], ["Faella", "AR"]], - "52027": [["San Giovanni Valdarno", "AR"]], - "52028": [ - ["Penna", "AR"], - ["Madrigale", "AR"], - ["Terranuova Bracciolini", "AR"], - ["Ville", "AR"], - ["Campogialli", "AR"], - ["Malva", "AR"], - ], - "52029": [["Castiglion Fibocchi", "AR"]], - "52031": [["San Leo Di Anghiari", "AR"], ["Anghiari", "AR"]], - "52032": [["Badia Tedalda", "AR"], ["Ca' Raffaello", "AR"], ["Fresciano", "AR"]], - "52033": [["Caprese Michelangelo", "AR"]], - "52035": [["Le Ville", "AR"], ["Monterchi", "AR"]], - "52036": [["Madonnuccia", "AR"], ["Pieve Santo Stefano", "AR"]], - "52037": [["Gricignano", "AR"], ["Santa Fiora", "AR"], ["Sansepolcro", "AR"]], - "52038": [["Colcellalto", "AR"], ["Sestino", "AR"], ["Monterone", "AR"]], - "52041": [ - ["Pieve Al Toppo", "AR"], - ["Viciomaggio", "AR"], - ["Ciggiano", "AR"], - ["Badia Al Pino", "AR"], - ["Tegoleto", "AR"], - ["Civitella In Val Di Chiana", "AR"], - ], - "52043": [["Castiglion Fiorentino", "AR"], ["Montecchio", "AR"], ["Manciano", "AR"]], - "52044": [ - ["Mercatale Di Cortona", "AR"], - ["Cortona", "AR"], - ["Mercatale", "AR"], - ["Santa Caterina", "AR"], - ["Santa Caterina Di Cortona", "AR"], - ["Fratta", "AR"], - ["Centoia", "AR"], - ["Terontola Stazione", "AR"], - ["Capezzine", "AR"], - ["Montanare", "AR"], - ["Montanare Di Cortona", "AR"], - ["Camucia", "AR"], - ["Sant'Andrea Di Sorbello", "AR"], - ["Terontola", "AR"], - ], - "52045": [["Pozzo Della Chiana", "AR"], ["Foiano Della Chiana", "AR"]], - "52046": [["Lucignano", "AR"]], - "52047": [["Marciano", "AR"], ["Cesa", "AR"], ["Marciano Della Chiana", "AR"]], - "52048": [ - ["Montagnano", "AR"], - ["Monte San Savino", "AR"], - ["Montagnano Alberoro", "AR"], - ["Palazzuolo", "AR"], - ["Alberoro", "AR"], - ], - "52100": [ - ["Patrignone", "AR"], - ["Chiassa", "AR"], - ["Giovi D'Arezzo", "AR"], - ["San Giuliano D'Arezzo", "AR"], - ["Pieve Al Bagnoro", "AR"], - ["Chiassa Superiore", "AR"], - ["Olmo", "AR"], - ["Ponte Alla Chiassa", "AR"], - ["Indicatore", "AR"], - ["Battifolle", "AR"], - ["Molin Nuovo", "AR"], - ["Frassineto", "AR"], - ["Rigutino", "AR"], - ["Pratantico", "AR"], - ["Quarata", "AR"], - ["Ruscello", "AR"], - ["Poggiola", "AR"], - ["Arezzo", "AR"], - ["Palazzo Del Pero", "AR"], - ["Ceciliano", "AR"], - ["Antria", "AR"], - ["Staggiano", "AR"], - ["Puglia", "AR"], - ["Tregozzano", "AR"], - ], - "50010": [["Trespiano", "FI"]], - "50012": [ - ["Vallina", "FI"], - ["Bagno A Ripoli", "FI"], - ["Grassina Ponte A Ema", "FI"], - ["Osteria Nuova", "FI"], - ["Candeli", "FI"], - ["Grassina", "FI"], - ["Antella", "FI"], - ["Rimaggio", "FI"], - ], - "50013": [ - ["San Piero A Ponti", "FI"], - ["Il Rosi", "FI"], - ["San Donnino Di Campi", "FI"], - ["Capalle", "FI"], - ["Sant'Angelo", "FI"], - ["San Donnino", "FI"], - ["Sant'Angelo A Lecore", "FI"], - ["Campi Bisenzio", "FI"], - ], - "50014": [["Caldine", "FI"], ["San Domenico Di Fiesole", "FI"], ["Fiesole", "FI"], ["Pian Di Mugnone", "FI"]], - "50018": [ - ["San Vincenzo A Torri", "FI"], - ["Casellina", "FI"], - ["San Martino Alla Palma", "FI"], - ["Scandicci", "FI"], - ["Badia A Settimo", "FI"], - ["Le Bagnese San Giusto", "FI"], - ], - "50019": [ - ["Querceto", "FI"], - ["Quinto", "FI"], - ["Osmannoro", "FI"], - ["Sesto Fiorentino", "FI"], - ["Colonnata", "FI"], - ["Ponte A Giogoli", "FI"], - ], - "50020": [["Mercatale Val Di Pesa", "FI"]], - "50021": [["Vico D'Elsa", "FI"], ["Marcialla", "FI"]], - "50022": [ - ["Lamole", "FI"], - ["Panzano", "FI"], - ["San Polo In Chianti", "FI"], - ["Lucolena", "FI"], - ["Greve In Chianti", "FI"], - ], - "50023": [ - ["Tavarnuzze", "FI"], - ["Monte Oriolo", "FI"], - ["Impruneta", "FI"], - ["Pozzolatico", "FI"], - ["Bottai", "FI"], - ], - "50025": [ - ["San Quirico In Collina", "FI"], - ["Lucardo", "FI"], - ["Montespertoli", "FI"], - ["Martignana", "FI"], - ["Baccaiano", "FI"], - ["Montagnana Val Di Pesa", "FI"], - ], - "50026": [ - ["San Casciano In Val Di Pesa", "FI"], - ["San Pancrazio", "FI"], - ["Cerbaia", "FI"], - ["Mercatale", "FI"], - ["Romola", "FI"], - ["Montefiridolfi", "FI"], - ["Spedaletto", "FI"], - ], - "50027": [["Chiocchio", "FI"], ["Strada In Chianti", "FI"], ["Passo Dei Pecorai", "FI"]], - "50028": [ - ["San Donato In Poggio", "FI"], - ["Barberino Val D'Elsa", "FI"], - ["Sambuca Val Di Pesa", "FI"], - ["Tavarnelle Val Di Pesa", "FI"], - ["Sambuca", "FI"], - ], - "50031": [ - ["Cavallina", "FI"], - ["Cafaggiolo", "FI"], - ["Galliano", "FI"], - ["Gagliano Di Mugello", "FI"], - ["Barberino Di Mugello", "FI"], - ["Montecarelli", "FI"], - ], - "50032": [ - ["Borgo San Lorenzo", "FI"], - ["Luco Mugello", "FI"], - ["Ronta", "FI"], - ["Panicaglia", "FI"], - ["Polcanto", "FI"], - ], - "50033": [ - ["Bruscoli", "FI"], - ["Rifredo", "FI"], - ["Filigare", "FI"], - ["Traversa", "FI"], - ["Pietramala", "FI"], - ["Coniale", "FI"], - ["Cornacchiaia", "FI"], - ["Firenzuola", "FI"], - ["Covigliaio", "FI"], - ["Piancaldoli", "FI"], - ], - "50034": [["Crespino Del Lamone", "FI"], ["Casaglia", "FI"], ["Lutirano", "FI"], ["Marradi", "FI"]], - "50035": [["Misileo", "FI"], ["Palazzuolo Sul Senio", "FI"]], - "50036": [["Bivigliano", "FI"], ["Pratolino", "FI"], ["Vaglia", "FI"], ["Fontebuona", "FI"]], - "50037": [["San Piero A Sieve", "FI"]], - "50038": [ - ["Sant'Agata Mugello", "FI"], - ["Scarperia", "FI"], - ["Sant'Agata", "FI"], - ["Scarperia E San Piero", "FI"], - ], - "50039": [["Cistio", "FI"], ["Rupecanina", "FI"], ["Villore", "FI"], ["Gattaia", "FI"], ["Vicchio", "FI"]], - "50041": [ - ["Calenzano", "FI"], - ["Carraia", "FI"], - ["Le Croci", "FI"], - ["Croci Di Calenzano", "FI"], - ["Settimello", "FI"], - ], - "50050": [ - ["Capraia", "FI"], - ["Stabbia", "FI"], - ["Montaione", "FI"], - ["Pieve A Ripoli", "FI"], - ["Il Castagno Val D'Elsa", "FI"], - ["Varna", "FI"], - ["Limite Sull'Arno", "FI"], - ["Il Castagno", "FI"], - ["Ponte Di Masino", "FI"], - ["Bassa", "FI"], - ["Badia A Cerreto", "FI"], - ["Capraia E Limite", "FI"], - ["Cerreto Guidi", "FI"], - ["Lazzeretto", "FI"], - ["Gambassi Terme", "FI"], - ["San Zio", "FI"], - ["Gavena", "FI"], - ], - "50051": [ - ["Dogana", "FI"], - ["Petrazzi", "FI"], - ["Castelnuovo D'Elsa", "FI"], - ["Cambiano", "FI"], - ["Castelfiorentino", "FI"], - ["Granaiolo", "FI"], - ], - "50052": [["Fiano", "FI"], ["Certaldo", "FI"]], - "50053": [ - ["Empoli", "FI"], - ["Brusciana", "FI"], - ["Fontanella", "FI"], - ["Sant'Andrea", "FI"], - ["Osteria Bianca", "FI"], - ["Case Nuove", "FI"], - ["Monterappoli", "FI"], - ["Ponte A Elsa", "FI"], - ["Marcignana", "FI"], - ], - "50054": [ - ["San Pierino", "FI"], - ["Galleno", "FI"], - ["Torre", "FI"], - ["Ponte A Cappiano", "FI"], - ["Massarella", "FI"], - ["Le Botteghe", "FI"], - ["Fucecchio", "FI"], - ["La Torre", "FI"], - ["Querce", "FI"], - ], - "50055": [ - ["Ponte A Signa", "FI"], - ["Lastra A Signa", "FI"], - ["Malmantile", "FI"], - ["Porto Di Mezzo", "FI"], - ["Brucianesi", "FI"], - ["Ginestra Fiorentina", "FI"], - ], - "50056": [ - ["Ambrogiana", "FI"], - ["Sammontana", "FI"], - ["Samminiatello", "FI"], - ["Fibbiana", "FI"], - ["Montelupo Fiorentino", "FI"], - ], - "50058": [["Signa", "FI"], ["San Mauro", "FI"], ["San Mauro A Signa", "FI"]], - "50059": [ - ["Orbignano", "FI"], - ["Sant'Amato", "FI"], - ["Vitolini", "FI"], - ["San Pantaleo", "FI"], - ["Spicchio", "FI"], - ["Sovigliana", "FI"], - ["Vinci", "FI"], - ], - "50060": [ - ["Consuma", "FI"], - ["Londa", "FI"], - ["Borselli", "FI"], - ["San Godenzo", "FI"], - ["Pelago", "FI"], - ["Diacceto", "FI"], - ], - "50061": [["Compiobbi", "FI"]], - "50062": [["Sandetole", "FI"], ["Dicomano", "FI"]], - "50063": [["Figline E Incisa Valdarno", "FI"], ["Figline Valdarno", "FI"]], - "50064": [["Incisa In Val D'Arno", "FI"], ["Loppiano", "FI"]], - "50065": [ - ["Pontassieve", "FI"], - ["Montebonello", "FI"], - ["Molino Del Piano", "FI"], - ["Santa Brigida", "FI"], - ["Sieci", "FI"], - ], - "50066": [ - ["Tosi", "FI"], - ["Cancelli", "FI"], - ["Cascia", "FI"], - ["Sant'Ellero", "FI"], - ["Pietrapiana", "FI"], - ["Donnini", "FI"], - ["Reggello", "FI"], - ["Saltino", "FI"], - ["Matassino", "FI"], - ["Vaggio", "FI"], - ["Leccio", "FI"], - ["Borgo A Cascia", "FI"], - ["Vallombrosa", "FI"], - ["San Donato Fronzano", "FI"], - ], - "50067": [["Troghi", "FI"], ["San Donato In Collina", "FI"], ["Rignano Sull'Arno", "FI"], ["Rosano", "FI"]], - "50068": [["Pomino", "FI"], ["Rufina", "FI"], ["Contea", "FI"]], - "50100": [["Firenze", "FI"]], - "50121": [["Firenze", "FI"]], - "50122": [["Firenze", "FI"]], - "50123": [["Firenze", "FI"]], - "50124": [["Firenze", "FI"], ["Galluzzo", "FI"]], - "50125": [["Arcetri", "FI"], ["Poggio Imperiale", "FI"], ["San Felice A Ema", "FI"], ["Firenze", "FI"]], - "50126": [ - ["Firenze", "FI"], - ["Ponte A Ema", "FI"], - ["Sorgane", "FI"], - ["Bandino", "FI"], - ["Pieve A Ripoli", "FI"], - ["Badia A Ripoli", "FI"], - ], - "50127": [["Firenze", "FI"], ["Novoli", "FI"]], - "50129": [["Firenze", "FI"]], - "50131": [["Firenze", "FI"]], - "50132": [["Firenze", "FI"]], - "50133": [["Firenze", "FI"]], - "50134": [["Firenze", "FI"], ["Careggi", "FI"]], - "50135": [["Montalbano", "FI"], ["Settignano", "FI"], ["Coverciano", "FI"], ["Firenze", "FI"]], - "50136": [["Firenze", "FI"], ["Rovezzano", "FI"], ["Varlungo", "FI"]], - "50137": [["Firenze", "FI"]], - "50139": [["Firenze", "FI"]], - "50141": [["Firenze", "FI"], ["Castello", "FI"], ["Rifredi", "FI"]], - "50142": [["Mantignano", "FI"], ["Isolotto", "FI"], ["Firenze", "FI"]], - "50143": [["Firenze", "FI"]], - "50144": [["Firenze", "FI"]], - "50145": [["Firenze", "FI"], ["Brozzi", "FI"], ["Peretola", "FI"]], - "58010": [ - ["San Quirico", "GR"], - ["Montebuono", "GR"], - ["San Valentino", "GR"], - ["Sorano", "GR"], - ["Pratolungo", "GR"], - ["Elmo", "GR"], - ["Castell'Ottieri", "GR"], - ["Montorio", "GR"], - ["Sovana", "GR"], - ["Albinia", "GR"], - ["Montevitozzo", "GR"], - ["San Giovanni Delle Contee", "GR"], - ], - "58011": [["Capalbio Stazione", "GR"], ["Borgo Carige", "GR"], ["Chiarone", "GR"], ["Capalbio", "GR"]], - "58012": [ - ["Giglio Castello", "GR"], - ["Isola Del Giglio", "GR"], - ["Giglio Porto", "GR"], - ["Campese", "GR"], - ["Giglio Campese", "GR"], - ], - "58014": [ - ["Poggio Murella", "GR"], - ["Poderi Di Montemerano", "GR"], - ["Poggio Capanne", "GR"], - ["Marsiliana", "GR"], - ["San Martino Sul Fiora", "GR"], - ["Saturnia", "GR"], - ["Manciano", "GR"], - ["Montemerano", "GR"], - ], - "58015": [ - ["Polverosa", "GR"], - ["Fonteblanda", "GR"], - ["Orbetello", "GR"], - ["Santa Liberata", "GR"], - ["Orbetello Scalo", "GR"], - ["Talamone", "GR"], - ["Orbetello Stazione", "GR"], - ], - "58017": [["Il Casone", "GR"], ["Casone", "GR"], ["Pitigliano", "GR"]], - "58018": [["Porto Ercole", "GR"]], - "58019": [["Porto Santo Stefano", "GR"], ["Monte Argentario", "GR"], ["Giannutri", "GR"]], - "58020": [["Puntone", "GR"], ["Scarlino Stazione", "GR"], ["Scarlino Scalo", "GR"], ["Scarlino", "GR"]], - "58022": [["Prato Ranieri", "GR"], ["Follonica", "GR"]], - "58023": [ - ["Castel Di Pietra", "GR"], - ["Miniera", "GR"], - ["Bagno Di Gavorrano", "GR"], - ["Bivio Di Ravi", "GR"], - ["Potassa", "GR"], - ["Caldana", "GR"], - ["Ravi", "GR"], - ["Giuncarico", "GR"], - ["Grilli", "GR"], - ["Gavorrano", "GR"], - ["Boschetto", "GR"], - ["Filare", "GR"], - ], - "58024": [ - ["Montebamboli", "GR"], - ["Capanne Vecchie", "GR"], - ["Prata", "GR"], - ["Niccioleta", "GR"], - ["Capanne", "GR"], - ["Massa Marittima", "GR"], - ["Tatti", "GR"], - ["Ghirlanda", "GR"], - ["Valpiana", "GR"], - ], - "58025": [["Lago Boracifero", "GR"], ["Monterotondo Marittimo", "GR"], ["Frassine", "GR"]], - "58026": [["Travale", "GR"], ["Montieri", "GR"], ["Boccheggiano", "GR"], ["Gerfalco", "GR"]], - "58027": [["Ribolla", "GR"], ["Montemassi", "GR"]], - "58031": [ - ["Bagnoli", "GR"], - ["Arcidosso", "GR"], - ["Salaiola", "GR"], - ["Montelaterone", "GR"], - ["Zancona", "GR"], - ["Stribugliano", "GR"], - ], - "58033": [["Montegiovi", "GR"], ["Castel Del Piano", "GR"], ["Montenero", "GR"]], - "58034": [["Castell'Azzara", "GR"], ["Selvena", "GR"]], - "58036": [ - ["Sticciano Stazione", "GR"], - ["Sassofortino", "GR"], - ["Sticciano", "GR"], - ["Roccatederighi", "GR"], - ["Roccastrada", "GR"], - ["Torniella", "GR"], - ["Sticciano Scalo", "GR"], - ], - "58037": [["Bagnolo", "GR"], ["Selva", "GR"], ["Santa Fiora", "GR"], ["Marroneto", "GR"], ["Bagnore", "GR"]], - "58038": [["Seggiano", "GR"]], - "58042": [["Montorsaio", "GR"], ["Campagnatico", "GR"], ["Arcille", "GR"], ["Arcille Di Campagnatico", "GR"]], - "58043": [ - ["Buriano", "GR"], - ["Vetulonia", "GR"], - ["Riva Del Sole", "GR"], - ["Tirli", "GR"], - ["Punta Ala", "GR"], - ["Castiglione Della Pescaia", "GR"], - ], - "58044": [ - ["Sasso D'Ombrone", "GR"], - ["Cinigiano", "GR"], - ["Castiglioncello Bandini", "GR"], - ["Monticello Dell'Amiata", "GR"], - ["Monticello Amiata", "GR"], - ], - "58045": [ - ["Stazione Di Monte Antico", "GR"], - ["Monte Antico Scalo", "GR"], - ["Monte Antico", "GR"], - ["Paganico", "GR"], - ["Civitella Paganico", "GR"], - ["Casale Di Pari", "GR"], - ["Pari", "GR"], - ["Civitella Marittima", "GR"], - ], - "58051": [["Magliano In Toscana", "GR"], ["Pereta", "GR"], ["Montiano", "GR"]], - "58053": [ - ["Cana", "GR"], - ["Vallerona", "GR"], - ["Roccalbegna", "GR"], - ["Santa Caterina", "GR"], - ["Triana", "GR"], - ], - "58054": [ - ["Murci", "GR"], - ["Pomonte", "GR"], - ["Pancole", "GR"], - ["Scansano", "GR"], - ["Montorgiali", "GR"], - ["Preselle Sergardi", "GR"], - ["Baccinello", "GR"], - ["Polveraia", "GR"], - ["Preselle", "GR"], - ["Poggioferro", "GR"], - ], - "58055": [["Semproniano", "GR"], ["Petricci", "GR"], ["Catabbio", "GR"], ["Cellena", "GR"]], - "58100": [ - ["Marina Di Grosseto", "GR"], - ["Santa Maria Di Rispescia", "GR"], - ["Rispescia", "GR"], - ["Batignano", "GR"], - ["Le Stiacciole", "GR"], - ["Braccagni", "GR"], - ["Montepescali Stazione", "GR"], - ["Bagno Roselle", "GR"], - ["Roselle Terme", "GR"], - ["Alberese", "GR"], - ["Montepescali", "GR"], - ["Grosseto", "GR"], - ["Istia D'Ombrone", "GR"], - ], - "57014": [ - ["Vicarello", "LI"], - ["Parrana San Giusto", "LI"], - ["Castell'Anselmo", "LI"], - ["Crocino", "LI"], - ["Crocino San Giusto", "LI"], - ["Collesalvetti", "LI"], - ["Colognole", "LI"], - ["Parrana San Martino", "LI"], - ], - "57016": [ - ["Rosignano Solvay", "LI"], - ["Nibbiaia", "LI"], - ["Caletta Di Castiglioncello", "LI"], - ["Castiglioncello", "LI"], - ["Rosignano Marittimo", "LI"], - ["Gabbro", "LI"], - ["Vada", "LI"], - ["Castelnuovo Misericordia", "LI"], - ], - "57017": [["Stagno", "LI"], ["Nugola Nuova", "LI"], ["Nugola", "LI"], ["Guasticce", "LI"]], - "57020": [["Sassetta", "LI"], ["La California", "LI"], ["Bibbona", "LI"]], - "57021": [ - ["Stazione Di Campiglia Marittima", "LI"], - ["Campiglia Marittima Stazione", "LI"], - ["Campiglia Marittima", "LI"], - ["Venturina", "LI"], - ], - "57022": [ - ["Donoratico", "LI"], - ["Marina Di Castagneto", "LI"], - ["Marina Di Castagneto Carducci", "LI"], - ["Castagneto Carducci", "LI"], - ["San Guido", "LI"], - ["Bolgheri", "LI"], - ], - "57023": [["San Pietro In Palazzi", "LI"], ["Cecina", "LI"], ["Cecina Marina", "LI"]], - "57025": [ - ["Piombino", "LI"], - ["Vignale Riotorto", "LI"], - ["Colmata", "LI"], - ["Portovecchio", "LI"], - ["Torre Mozza", "LI"], - ["Riotorto", "LI"], - ["Populonia", "LI"], - ["Cotone", "LI"], - ["Colmata Fiorentina Di Piombino", "LI"], - ], - "57027": [["San Vincenzo", "LI"], ["San Carlo", "LI"]], - "57028": [["Montioni", "LI"], ["Suvereto", "LI"]], - "57030": [["Procchio", "LI"], ["Poggio", "LI"], ["Marciana", "LI"], ["Pomonte", "LI"]], - "57031": [["Capoliveri", "LI"]], - "57032": [["Capraia Isola", "LI"]], - "57033": [["Marciana Marina", "LI"]], - "57034": [ - ["Pianosa Isola", "LI"], - ["Cavoli", "LI"], - ["San Piero In Campo", "LI"], - ["Pianosa", "LI"], - ["Marina Di Campo", "LI"], - ["Seccheto", "LI"], - ["Sant'Ilario", "LI"], - ["Campo Nell'Elba", "LI"], - ["La Pila", "LI"], - ], - "57036": [["Porto Azzurro", "LI"]], - "57037": [["Portoferraio", "LI"], ["Magazzini", "LI"], ["Carpani", "LI"], ["San Giovanni", "LI"]], - "57038": [["Rio Marina", "LI"], ["Cavo", "LI"]], - "57039": [["Rio Nell'Elba", "LI"]], - "57100": [["Livorno", "LI"]], - "57121": [["Livorno", "LI"]], - "57122": [["Livorno", "LI"]], - "57123": [["Livorno", "LI"]], - "57124": [["Livorno", "LI"], ["Salviano", "LI"], ["Valle Benedetta", "LI"]], - "57125": [["Livorno", "LI"]], - "57126": [["Livorno", "LI"]], - "57127": [["Livorno", "LI"]], - "57128": [["Antignano", "LI"], ["Livorno", "LI"], ["Montenero", "LI"], ["Ardenza", "LI"]], - "55010": [["Camigliano Santa Gemma", "LU"], ["Gragnano", "LU"], ["San Gennaro", "LU"], ["Lappato", "LU"]], - "55011": [["Marginone", "LU"], ["Altopascio", "LU"], ["Badia Pozzeveri", "LU"], ["Spianate", "LU"]], - "55012": [["Capannori", "LU"], ["Zone", "LU"], ["Lunata", "LU"], ["Pieve San Paolo", "LU"]], - "55013": [["Lammari", "LU"]], - "55014": [["Marlia", "LU"]], - "55015": [ - ["San Salvatore", "LU"], - ["San Salvatore Di Montecarlo", "LU"], - ["Montecarlo", "LU"], - ["Turchetto", "LU"], - ], - "55016": [["Porcari", "LU"]], - "55018": [ - ["Segromigno In Piano", "LU"], - ["San Colombano", "LU"], - ["Matraia", "LU"], - ["Segromigno In Monte", "LU"], - ], - "55019": [["Pracando", "LU"], ["Botticino", "LU"], ["Villa Basilica", "LU"]], - "55020": [ - ["Fosciandora", "LU"], - ["San Pellegrinetto", "LU"], - ["Fornovolasco", "LU"], - ["Vergemoli", "LU"], - ["Sassi", "LU"], - ["Molazzana", "LU"], - ], - "55021": [["Fabbriche Di Vergemoli", "LU"], ["Fabbriche Di Vallico", "LU"]], - "55022": [ - ["Bagni Di Lucca", "LU"], - ["Bagni Di Lucca Ponte", "LU"], - ["San Cassiano Di Controni", "LU"], - ["Scesta", "LU"], - ["Pieve Di Controne", "LU"], - ["Montefegatesi", "LU"], - ["Ponte A Serraglio", "LU"], - ["Bagni Di Lucca Villa", "LU"], - ["Benabbio", "LU"], - ["San Cassiano", "LU"], - ["Lucchio", "LU"], - ["Casabasciana", "LU"], - ["Fornoli", "LU"], - ["Isola", "LU"], - ], - "55023": [ - ["Gioviano", "LU"], - ["Diecimo", "LU"], - ["Chifenti", "LU"], - ["Anchiano", "LU"], - ["Corsagna", "LU"], - ["Borgo A Mozzano", "LU"], - ["Valdottavo", "LU"], - ], - "55025": [ - ["Tereglio", "LU"], - ["Ghivizzano", "LU"], - ["Calavorno", "LU"], - ["Piano Di Coreglia", "LU"], - ["Coreglia Antelminelli", "LU"], - ], - "55027": [["Gallicano", "LU"], ["Fiattone", "LU"], ["Turritecava", "LU"], ["Trassilico", "LU"]], - "55030": [ - ["Villa Collemandina", "LU"], - ["Vagli Sotto", "LU"], - ["Careggine", "LU"], - ["Corfino", "LU"], - ["Vagli Sopra", "LU"], - ["Magliano", "LU"], - ], - "55031": [["Poggio", "LU"], ["Poggio Garfagnana", "LU"], ["Camporgiano", "LU"], ["Filicaia", "LU"]], - "55032": [["Palleroso", "LU"], ["Castelnuovo Di Garfagnana", "LU"]], - "55033": [ - ["Chiozza", "LU"], - ["Castiglione Di Garfagnana", "LU"], - ["Valbona", "LU"], - ["Cerageto", "LU"], - ["San Pellegrino", "LU"], - ], - "55034": [ - ["Gramolazzo", "LU"], - ["Minucciano", "LU"], - ["Gorfigliano", "LU"], - ["Carpinelli", "LU"], - ["Casone Carpinelli", "LU"], - ["Pieve San Lorenzo", "LU"], - ], - "55035": [["Sant'Anastasio", "LU"], ["San Michele", "LU"], ["Piazza Al Serchio", "LU"]], - "55036": [["Pieve Fosciana", "LU"]], - "55038": [["San Romano In Garfagnana", "LU"]], - "55039": [["Giuncugnano", "LU"], ["Sillano Giuncugnano", "LU"], ["Sillano", "LU"]], - "55040": [["Stazzema", "LU"], ["Ruosina", "LU"], ["Pontestazzemese", "LU"], ["Terrinca", "LU"]], - "55041": [ - ["Nocchi", "LU"], - ["Pieve", "LU"], - ["Camaiore", "LU"], - ["Vado", "LU"], - ["Valpromaro", "LU"], - ["Lido Di Camaiore", "LU"], - ["Capezzano Pianore", "LU"], - ["Montebello", "LU"], - ["Pedona", "LU"], - ["Montemagno", "LU"], - ["Casoli", "LU"], - ], - "55042": [["Forte Dei Marmi", "LU"]], - "55045": [ - ["Fiumetto", "LU"], - ["Pietrasanta", "LU"], - ["Focette", "LU"], - ["Capezzano Monte", "LU"], - ["Capriglia", "LU"], - ["Valdicastello Carducci", "LU"], - ["Crociale", "LU"], - ["Marina Di Pietrasanta", "LU"], - ["Capezzano", "LU"], - ["Vallecchia", "LU"], - ["Strettoia", "LU"], - ["Tonfano", "LU"], - ], - "55047": [ - ["Pozzi", "LU"], - ["Riomagno", "LU"], - ["Querceta", "LU"], - ["Seravezza", "LU"], - ["Ripa", "LU"], - ["Ponterosso", "LU"], - ["Basati", "LU"], - ["Azzano", "LU"], - ], - "55049": [["Viareggio", "LU"], ["Torre Del Lago Puccini", "LU"]], - "55051": [ - ["Filecchio", "LU"], - ["Sommocolonia", "LU"], - ["Castelvecchio Pascoli", "LU"], - ["Barga", "LU"], - ["Ponte All'Ania", "LU"], - ["Fornaci Di Barga", "LU"], - ["Tiglio", "LU"], - ["Mologno", "LU"], - ["Sommacolonia", "LU"], - ], - "55054": [ - ["Piano Di Mommio", "LU"], - ["Corsanico", "LU"], - ["Bozzano", "LU"], - ["Quiesa", "LU"], - ["Gualdo Di Massarosa", "LU"], - ["Stiava", "LU"], - ["Massarosa", "LU"], - ["Pieve A Elici", "LU"], - ["Gualdo", "LU"], - ], - "55060": [ - ["Palagnana", "LU"], - ["Guamo", "LU"], - ["Vorno", "LU"], - ["Massa Macinaia", "LU"], - ["Badia Cantignano", "LU"], - ], - "55061": [["Carraia", "LU"], ["San Ginese", "LU"]], - "55062": [["Ruota", "LU"], ["Colle Di Compito", "LU"], ["Pieve Di Compito", "LU"]], - "55064": [ - ["Pascoso", "LU"], - ["Villa A Roggio", "LU"], - ["San Martino In Freddana", "LU"], - ["Loppeglia", "LU"], - ["Piegaio Basso", "LU"], - ["Piegaio", "LU"], - ["San Rocco In Turrite", "LU"], - ["Pescaglia", "LU"], - ], - "55100": [ - ["San Lorenzo Di Moriano", "LU"], - ["Lucca", "LU"], - ["Cerasomma", "LU"], - ["San Concordio Di Moriano", "LU"], - ["Ponte A Moriano", "LU"], - ["Pontetetto", "LU"], - ["Santa Maria Del Giudice", "LU"], - ["Piaggione", "LU"], - ["Saltocchio", "LU"], - ["Nozzano", "LU"], - ["Ponte San Pietro", "LU"], - ["Monte San Quirico", "LU"], - ["Fagnano", "LU"], - ["Montuolo", "LU"], - ["Maggiano", "LU"], - ["San Pietro A Vico", "LU"], - ["Picciorana", "LU"], - ["Vinchiana", "LU"], - ["Mutigliano", "LU"], - ["Gattaiola", "LU"], - ["Ponte Del Giglio", "LU"], - ["Massa Pisana", "LU"], - ], - "54010": [["Montedivalli", "MS"], ["Podenzana", "MS"]], - "54011": [ - ["Quercia", "MS"], - ["Pallerone", "MS"], - ["Bigliolo", "MS"], - ["Caprigliola", "MS"], - ["Aulla", "MS"], - ["Bibola", "MS"], - ["Serricciolo", "MS"], - ["Albiano Magra", "MS"], - ], - "54012": [["Barbarasco", "MS"], ["Tresana", "MS"], ["Villa Di Tresana", "MS"]], - "54013": [ - ["Campiglione", "MS"], - ["Sassalbo", "MS"], - ["Tenerano", "MS"], - ["Soliera", "MS"], - ["Moncigoli", "MS"], - ["Vinca", "MS"], - ["Fivizzano", "MS"], - ["San Terenzo Monti", "MS"], - ["Agnino", "MS"], - ["Rometta Apuana", "MS"], - ["Gragnola", "MS"], - ["Gassano", "MS"], - ["Colla", "MS"], - ["Rometta", "MS"], - ["Ceserano", "MS"], - ["Monzone", "MS"], - ["Soliera Apuana", "MS"], - ], - "54014": [ - ["Regnano", "MS"], - ["Codiponte", "MS"], - ["Casola In Lunigiana", "MS"], - ["Equi", "MS"], - ["Equi Terme", "MS"], - ], - "54015": [["Comano", "MS"], ["Crespiano", "MS"]], - "54016": [ - ["Monti Di Licciana", "MS"], - ["Licciana Nardi", "MS"], - ["Tavernelle", "MS"], - ["Monti", "MS"], - ["Terrarossa", "MS"], - ], - "54021": [["Treschietto", "MS"], ["Gabbiana", "MS"], ["Bagnone", "MS"], ["Corlaga", "MS"]], - "54023": [["Filattiera", "MS"], ["Cantiere", "MS"], ["Ponticello", "MS"], ["Scorcetoli", "MS"]], - "54026": [ - ["Montereggio Di Mulazzo", "MS"], - ["Montereggio", "MS"], - ["Groppoli", "MS"], - ["Arpiola", "MS"], - ["Mulazzo", "MS"], - ], - "54027": [ - ["Traverde", "MS"], - ["Molinello", "MS"], - ["Pontremoli", "MS"], - ["Grondola", "MS"], - ["Guinadi", "MS"], - ["Cervara", "MS"], - ["Vignola", "MS"], - ], - "54028": [["Filetto", "MS"], ["Villafranca In Lunigiana", "MS"], ["Virgoletta", "MS"], ["Merizzo", "MS"]], - "54029": [["Zeri", "MS"], ["Chiesa Di Rossano", "MS"]], - "54033": [ - ["Castelpoggio", "MS"], - ["Fossone", "MS"], - ["Fossola", "MS"], - ["Marina Di Carrara", "MS"], - ["Avenza", "MS"], - ["Codena", "MS"], - ["Gragnana", "MS"], - ["Sorgnano", "MS"], - ["Carrara", "MS"], - ["Torano", "MS"], - ["Bergiola", "MS"], - ["Fontia", "MS"], - ["Miseglia", "MS"], - ["Bedizzano", "MS"], - ["Colonnata", "MS"], - ], - "54035": [ - ["Tendola", "MS"], - ["Fosdinovo", "MS"], - ["Caniparola", "MS"], - ["Borghetto", "MS"], - ["Melara", "MS"], - ["Marciaso", "MS"], - ], - "54038": [ - ["Prato Capanne", "MS"], - ["Cerreto", "MS"], - ["San Vito", "MS"], - ["Cinquale", "MS"], - ["Montignoso", "MS"], - ], - "54100": [ - ["Turano", "MS"], - ["Ronchi", "MS"], - ["Forno", "MS"], - ["Casette", "MS"], - ["Mirteto", "MS"], - ["Canevara", "MS"], - ["Altagnana", "MS"], - ["Massa", "MS"], - ["Quercioli", "MS"], - ["Marina Di Massa", "MS"], - ], - "56010": [ - ["Arena Metato", "PI"], - ["Uliveto Terme", "PI"], - ["Campo", "PI"], - ["Caprona", "PI"], - ["Cucigliana", "PI"], - ["San Giovanni Alla Vena", "PI"], - ["Mezzana", "PI"], - ["Vicopisano", "PI"], - ], - "56011": [["Gabella", "PI"], ["Castelmaggiore", "PI"], ["Calci", "PI"], ["Montemagno", "PI"]], - "56012": [["Calcinaia", "PI"], ["Fornacette", "PI"]], - "56017": [ - ["Gello", "PI"], - ["Ripafratta", "PI"], - ["Agnano", "PI"], - ["San Giuliano Terme", "PI"], - ["Pontasserchio", "PI"], - ["Arena", "PI"], - ["Molina Di Quosa", "PI"], - ["Rigoli", "PI"], - ["Ghezzano", "PI"], - ["Asciano", "PI"], - ["Pappiana", "PI"], - ], - "56019": [["Vecchiano", "PI"], ["Avane", "PI"], ["Filettole", "PI"], ["Migliarino", "PI"], ["Nodica", "PI"]], - "56020": [ - ["Cerretti", "PI"], - ["Montecalvoli", "PI"], - ["Castel Del Bosco", "PI"], - ["San Romano", "PI"], - ["Montopoli", "PI"], - ["Montopoli In Val D'Arno", "PI"], - ["Marti", "PI"], - ["Santa Maria A Monte", "PI"], - ["Capanne", "PI"], - ], - "56021": [ - ["Cascina", "PI"], - ["San Casciano", "PI"], - ["Marciana", "PI"], - ["San Lorenzo A Pagnatico", "PI"], - ["San Frediano A Settimo", "PI"], - ["San Benedetto A Settimo", "PI"], - ["Latignano", "PI"], - ], - "56022": [["Castelfranco Di Sotto", "PI"], ["Villa Campanile", "PI"], ["Orentano", "PI"]], - "56023": [ - ["Navacchio", "PI"], - ["San Lorenzo Alle Corti", "PI"], - ["Montione", "PI"], - ["Musigliano", "PI"], - ["Ripoli", "PI"], - ], - "56024": [["Corazzano", "PI"], ["La Serra", "PI"], ["Ponte A Egola", "PI"]], - "56025": [ - ["Montecastello", "PI"], - ["Pontedera", "PI"], - ["La Borra", "PI"], - ["Il Romito", "PI"], - ["Treggiaia", "PI"], - ["La Rotta", "PI"], - ["Santa Lucia", "PI"], - ], - "56028": [ - ["Isola", "PI"], - ["La Scala", "PI"], - ["San Miniato Basso", "PI"], - ["San Miniato", "PI"], - ["Ponte A Elsa", "PI"], - ], - "56029": [["Staffoli", "PI"], ["Santa Croce Sull'Arno", "PI"]], - "56030": [ - ["Selvatelle", "PI"], - ["Orciatico", "PI"], - ["Soiana", "PI"], - ["Terricciola", "PI"], - ["Morrona", "PI"], - ["Lajatico", "PI"], - ], - "56031": [["Bientina", "PI"], ["Quattro Strade", "PI"]], - "56032": [["La Croce", "PI"], ["Buti", "PI"], ["Cascine", "PI"]], - "56033": [["San Pietro Belvedere", "PI"], ["Capannoli", "PI"]], - "56034": [["Rivalto", "PI"], ["Casciana Terme", "PI"], ["Chianni", "PI"]], - "56035": [ - ["Usigliano", "PI"], - ["Cevoli", "PI"], - ["Lavaiano", "PI"], - ["Casciana Alta", "PI"], - ["Perignano", "PI"], - ["Le Casine", "PI"], - ["Casciana Terme Lari", "PI"], - ["Lari", "PI"], - ["Spinelli", "PI"], - ], - "56036": [ - ["Montefoscoli", "PI"], - ["Palaia", "PI"], - ["Villa Saletta", "PI"], - ["Alica", "PI"], - ["Forcoli", "PI"], - ["Partino", "PI"], - ], - "56037": [ - ["Fabbrica", "PI"], - ["Ghizzano Di Peccioli", "PI"], - ["Fabbrica Di Peccioli", "PI"], - ["Ghizzano", "PI"], - ["Peccioli", "PI"], - ["Legoli", "PI"], - ], - "56038": [["Giardino", "PI"], ["Ponsacco", "PI"]], - "56040": [ - ["Monteverdi Marittimo", "PI"], - ["Guardistallo", "PI"], - ["Orciano Pisano", "PI"], - ["Montescudaio", "PI"], - ["Casale Marittimo", "PI"], - ["Cenaia", "PI"], - ["Casino Di Terra", "PI"], - ["Sassa", "PI"], - ["Castellina Marittima", "PI"], - ["Montecatini Val Di Cecina", "PI"], - ["Castello Di Querceto", "PI"], - ["Canneto", "PI"], - ["Pieve Di Santa Luce", "PI"], - ["Ponteginori", "PI"], - ["Canneto Di Monteverdi", "PI"], - ["Crespina", "PI"], - ["Le Badie", "PI"], - ["Pastina", "PI"], - ["Pomaia", "PI"], - ["Santa Luce", "PI"], - ], - "56041": [["Sasso Pisano", "PI"], ["Castelnuovo Di Val Di Cecina", "PI"], ["Montecastelli Pisano", "PI"]], - "56042": [["Crespina Lorenzana", "PI"], ["Lorenzana", "PI"]], - "56043": [["Luciana", "PI"], ["Fauglia", "PI"]], - "56044": [["Lustignano", "PI"], ["Larderello", "PI"], ["Serrazzano", "PI"], ["Montecerboli", "PI"]], - "56045": [ - ["San Dalmazio", "PI"], - ["Montegemoli", "PI"], - ["Micciano", "PI"], - ["Libbiano", "PI"], - ["Pomarance", "PI"], - ], - "56046": [["Riparbella", "PI"]], - "56048": [ - ["Volterra", "PI"], - ["Pignano", "PI"], - ["Mazzolla", "PI"], - ["Villamagna", "PI"], - ["Ulignano", "PI"], - ["Saline Di Volterra", "PI"], - ["Saline", "PI"], - ], - "56100": [["Pisa", "PI"]], - "56121": [["Putignano", "PI"], ["Pisa", "PI"], ["Riglione", "PI"], ["Coltano", "PI"]], - "56122": [["San Piero A Grado", "PI"], ["Pisa", "PI"]], - "56123": [["Pisa", "PI"]], - "56124": [["Pisa", "PI"]], - "56125": [["Pisa", "PI"]], - "56126": [["Pisa", "PI"]], - "56127": [["Pisa", "PI"]], - "56128": [["Pisa", "PI"]], - "59011": [["Seano", "PO"], ["Bacchereto", "PO"]], - "59013": [["Fornacelle", "PO"], ["Montemurlo", "PO"], ["Oste", "PO"]], - "59015": [ - ["La Serra", "PO"], - ["Artimino", "PO"], - ["Poggio Alla Malva", "PO"], - ["Carmignano", "PO"], - ["Comeana", "PO"], - ], - "59016": [["Poggio A Caiano", "PO"], ["Poggetto", "PO"]], - "59021": [["La Briglia", "PO"], ["Vaiano", "PO"], ["Schignano", "PO"]], - "59024": [ - ["Mercatale Vernio", "PO"], - ["Mercatale", "PO"], - ["Cavarzano", "PO"], - ["San Quirico Di Vernio", "PO"], - ["San Quirico", "PO"], - ["Vernio", "PO"], - ], - "59025": [ - ["Il Fabbro", "PO"], - ["Cantagallo", "PO"], - ["Carmignanello", "PO"], - ["Usella", "PO"], - ["Luicciana", "PO"], - ], - "59026": [["Montepiano", "PO"]], - "59100": [ - ["Cafaggio", "PO"], - ["Galciana", "PO"], - ["Santa Lucia", "PO"], - ["Figline Di Prato", "PO"], - ["Mezzana", "PO"], - ["Narnali", "PO"], - ["Santa Maria A Colonica", "PO"], - ["Iolo", "PO"], - ["Viaccia", "PO"], - ["San Giorgio A Colonica", "PO"], - ["Paperino", "PO"], - ["Prato", "PO"], - ["Maliseti", "PO"], - ["Coiano", "PO"], - ["La Querce", "PO"], - ["Tavola", "PO"], - ], - "51010": [ - ["Traversagna", "PT"], - ["Marliana", "PT"], - ["Montagnana", "PT"], - ["Santa Lucia Uzzanese", "PT"], - ["Forone", "PT"], - ["Avaglio", "PT"], - ["Margine Coperta", "PT"], - ["Santa Lucia", "PT"], - ["Serra Pistoiese", "PT"], - ["Uzzano", "PT"], - ["Casore Del Monte", "PT"], - ["Momigno", "PT"], - ["Massa E Cozzile", "PT"], - ], - "51011": [["Buggiano", "PT"], ["Borgo A Buggiano", "PT"]], - "51012": [["Veneri", "PT"], ["Ponte All'Abate", "PT"], ["Castellare Di Pescia", "PT"], ["Collodi", "PT"]], - "51013": [["Chiesina Uzzanese", "PT"], ["Chiesanuova", "PT"], ["Chiesanuova Uzzanese", "PT"]], - "51015": [ - ["Cintolese", "PT"], - ["Montevettolini", "PT"], - ["Pozzarello", "PT"], - ["Monsummano Terme", "PT"], - ["Grotta Giusti", "PT"], - ["Uggia", "PT"], - ["Pazzera", "PT"], - ], - "51016": [ - ["Nievole", "PT"], - ["Montecatini Val Di Nievole", "PT"], - ["Montecatini Terme", "PT"], - ["Montecatini Alto", "PT"], - ], - "51017": [ - ["San Quirico", "PT"], - ["Pietrabuona", "PT"], - ["Pescia", "PT"], - ["Castelvecchio", "PT"], - ["Vellano", "PT"], - ["San Quirico Valleriana", "PT"], - ["Castelvecchio Di Vellano", "PT"], - ["Pontito", "PT"], - ], - "51018": [["Pieve A Nievole", "PT"]], - "51019": [["Ponte Buggianese", "PT"], ["Anchione", "PT"]], - "51020": [ - ["Castello", "PT"], - ["Prunetta", "PT"], - ["Popiglio", "PT"], - ["Calamecca", "PT"], - ["Pavana", "PT"], - ["San Pellegrino Al Cassero", "PT"], - ["Treppio", "PT"], - ["San Pellegrino", "PT"], - ["Pavana Pistoiese", "PT"], - ["Prataccio", "PT"], - ["Torri", "PT"], - ["Collina", "PT"], - ["Crespole", "PT"], - ["Frassignoni", "PT"], - ["Piteglio", "PT"], - ["La Lima", "PT"], - ["Sambuca Pistoiese", "PT"], - ], - "51021": [["Abetone", "PT"], ["Le Regine", "PT"]], - "51024": [["Pianosinatico", "PT"], ["Pian Degli Ontani", "PT"], ["Cutigliano", "PT"]], - "51028": [ - ["San Marcello Pistoiese", "PT"], - ["Pontepetri", "PT"], - ["Gavinana", "PT"], - ["Campo Tizzoro", "PT"], - ["Bardalone", "PT"], - ["Limestre Pistoiese", "PT"], - ["Mammiano", "PT"], - ["Maresca", "PT"], - ["Lizzano Pistoiese", "PT"], - ["Limestre", "PT"], - ], - "51030": [["Montagnana Pistoiese", "PT"]], - "51031": [["San Michele", "PT"], ["Agliana", "PT"], ["San Piero", "PT"]], - "51034": [ - ["Ponte Di Serravalle", "PT"], - ["Stazione Masotti", "PT"], - ["Serravalle Pistoiese", "PT"], - ["Casalguidi", "PT"], - ], - "51035": [ - ["San Baronto", "PT"], - ["Lamporecchio", "PT"], - ["Porciano", "PT"], - ["Mastromarco", "PT"], - ["Orbignano", "PT"], - ], - "51036": [["San Rocco", "PT"], ["Larciano", "PT"], ["Castelmartini", "PT"]], - "51037": [ - ["Fognano Di Montale", "PT"], - ["Fognano", "PT"], - ["Montale", "PT"], - ["Stazione Di Montale", "PT"], - ["Tobbiana", "PT"], - ], - "51039": [ - ["Catena", "PT"], - ["Olmi", "PT"], - ["Santonuovo", "PT"], - ["Quarrata", "PT"], - ["Montemagno", "PT"], - ["Ferruccia", "PT"], - ["Tizzana", "PT"], - ["Montemagno Di Quarrata", "PT"], - ], - "51100": [ - ["Candeglia", "PT"], - ["Capostrada", "PT"], - ["Saturnana", "PT"], - ["Ponzano", "PT"], - ["Orsigna", "PT"], - ["Pontelungo", "PT"], - ["Piazza", "PT"], - ["San Felice", "PT"], - ["Piastre", "PT"], - ["Masiano", "PT"], - ["Chiazzano", "PT"], - ["Le Grazie", "PT"], - ["Valdibrana", "PT"], - ["Grazie", "PT"], - ["Piteccio", "PT"], - ["Pistoia", "PT"], - ["Villa Di Baggio", "PT"], - ["Villa Baggio", "PT"], - ["Pracchia", "PT"], - ["Corbezzi", "PT"], - ["Bottegone", "PT"], - ["Cireglio", "PT"], - ["Sammomme'", "PT"], - ["Santomato", "PT"], - ], - "53011": [["Fonterutoli", "SI"], ["Castellina In Chianti", "SI"]], - "53012": [["Chiusdino", "SI"], ["Ciciano", "SI"], ["Frosini", "SI"], ["Montalcinello", "SI"]], - "53013": [ - ["Lecchi", "SI"], - ["Nusenna", "SI"], - ["Castagnoli", "SI"], - ["Monti", "SI"], - ["Ama", "SI"], - ["Gaiole In Chianti", "SI"], - ], - "53014": [ - ["Ponte A Tressa", "SI"], - ["Lucignano D'Arbia", "SI"], - ["Monteroni D'Arbia", "SI"], - ["Corsano", "SI"], - ["Ville Di Corsano", "SI"], - ["Ponte D'Arbia", "SI"], - ], - "53015": [ - ["Iesa", "SI"], - ["San Lorenzo A Merse", "SI"], - ["Monticiano", "SI"], - ["Scalvaia", "SI"], - ["Tocchi", "SI"], - ], - "53016": [["Casciano", "SI"], ["Murlo", "SI"], ["Vescovado", "SI"]], - "53017": [["Lucarelli", "SI"], ["Radda In Chianti", "SI"]], - "53018": [["Rosia", "SI"], ["Sovicille", "SI"], ["San Rocco A Pilli", "SI"]], - "53019": [ - ["Vagliagli", "SI"], - ["Casetta", "SI"], - ["Quercegrossa", "SI"], - ["Ponte A Bozzone", "SI"], - ["Castelnuovo Berardenga", "SI"], - ["Pianella", "SI"], - ["Monteaperti", "SI"], - ["San Gusme'", "SI"], - ], - "53020": [ - ["Montisi", "SI"], - ["Trequanda", "SI"], - ["Castelmuzio", "SI"], - ["Petroio", "SI"], - ["San Giovanni D'Asso", "SI"], - ], - "53021": [["Abbadia San Salvatore", "SI"]], - "53022": [["Buonconvento", "SI"]], - "53023": [ - ["Castiglione D'Orcia", "SI"], - ["Gallina", "SI"], - ["Bagni Di San Filippo", "SI"], - ["Bagni San Filippo", "SI"], - ["Campiglia D'Orcia", "SI"], - ["Vivo D'Orcia", "SI"], - ], - "53024": [ - ["Montalcino", "SI"], - ["Sant'Angelo In Colle", "SI"], - ["Monte Amiata", "SI"], - ["Torrenieri", "SI"], - ["Castelnuovo Dell'Abate", "SI"], - ], - "53025": [["Saragiolo", "SI"], ["Piancastagnaio", "SI"]], - "53026": [["Monticchiello", "SI"], ["Pienza", "SI"]], - "53027": [["San Quirico D'Orcia", "SI"], ["Bagno Vignoni", "SI"]], - "53030": [ - ["Belforte", "SI"], - ["Anqua", "SI"], - ["Castel San Giminiano", "SI"], - ["Castel San Gimignano", "SI"], - ["Radicondoli", "SI"], - ], - "53031": [["Monteguidi", "SI"], ["Pievescola", "SI"], ["Casole D'Elsa", "SI"]], - "53034": [ - ["Quartaia", "SI"], - ["Colle Di Val D'Elsa", "SI"], - ["Gracciano Di Colle Val D'Elsa", "SI"], - ["Campiglia", "SI"], - ], - "53035": [ - ["San Martino", "SI"], - ["Castellina Scalo", "SI"], - ["Uopini", "SI"], - ["Monteriggioni", "SI"], - ["Belverde", "SI"], - ["Castellina In Chianti Stazione", "SI"], - ["Badesse", "SI"], - ["Strove", "SI"], - ["Tognazza", "SI"], - ], - "53036": [["Poggibonsi", "SI"], ["Bellavista", "SI"], ["Staggia", "SI"]], - "53037": [["Ulignano", "SI"], ["Badia A Elmi", "SI"], ["San Gimignano", "SI"]], - "53040": [ - ["Serre Di Rapolano", "SI"], - ["Contignano", "SI"], - ["Radicofani", "SI"], - ["Cetona", "SI"], - ["San Casciano Dei Bagni", "SI"], - ["Celle Sul Rigo", "SI"], - ["Palazzone", "SI"], - ["Rapolano Terme", "SI"], - ["Piazze", "SI"], - ], - "53041": [ - ["Chiusure", "SI"], - ["Arbia", "SI"], - ["Asciano", "SI"], - ["Monte Sante Marie", "SI"], - ["Monte Oliveto Maggiore", "SI"], - ], - "53042": [["Chianciano Terme", "SI"]], - "53043": [["Chiusi Stazione", "SI"], ["Chiusi", "SI"], ["Montallese", "SI"], ["Chiusi Scalo", "SI"]], - "53045": [ - ["Montepulciano Stazione", "SI"], - ["Abbadia", "SI"], - ["Valiano", "SI"], - ["Acquaviva", "SI"], - ["Abbadia Di Montepulciano", "SI"], - ["Gracciano", "SI"], - ["Montepulciano", "SI"], - ["Sant'Albino", "SI"], - ], - "53047": [["Sarteano", "SI"]], - "53048": [ - ["Rigomagno", "SI"], - ["Guazzino", "SI"], - ["Pieve Di Sinalunga", "SI"], - ["Rigaiolo", "SI"], - ["Bettolle", "SI"], - ["Sinalunga", "SI"], - ["Scrofiano", "SI"], - ], - "53049": [["Montefollonico", "SI"], ["Torrita Stazione", "SI"], ["Torrita Di Siena", "SI"]], - "53100": [ - ["Costalpino", "SI"], - ["Sant'Andrea A Montecchio", "SI"], - ["Siena", "SI"], - ["Isola D'Arbia", "SI"], - ["Coroncina", "SI"], - ["Ponte Al Bozzone", "SI"], - ["Malafrasca", "SI"], - ["Taverne D'Arbia", "SI"], - ], - "39010": [ - ["Grissian", "BZ"], - ["Saltusio", "BZ"], - ["Tisens", "BZ"], - ["Tesimo", "BZ"], - ["Unsere liebe Frau i. W.", "BZ"], - ["Sinich", "BZ"], - ["Nals", "BZ"], - ["Pawigl", "BZ"], - ["Nalles", "BZ"], - ["Sigmundskron", "BZ"], - ["Gfrill", "BZ"], - ["Platzers", "BZ"], - ["St. Nikolaus/Ulten", "BZ"], - ["Vilpian", "BZ"], - ["Vernue", "BZ"], - ["Gfeis", "BZ"], - ["Schlaneid", "BZ"], - ["Pfelders", "BZ"], - ["Saltaus", "BZ"], - ["Verschneid", "BZ"], - ["Kuens", "BZ"], - ["St. Helena", "BZ"], - ["St. Gertraud", "BZ"], - ["Riffian", "BZ"], - ["Caines", "BZ"], - ["St. Felix", "BZ"], - ["San Felice", "BZ"], - ["Unsere Liebe Frau Im Wald", "BZ"], - ["Cermes", "BZ"], - ["Senale San Felice", "BZ"], - ["San Martino In Passiria", "BZ"], - ["Andrian", "BZ"], - ["San Felice Val Di Non", "BZ"], - ["Frangart", "BZ"], - ["Prissia", "BZ"], - ["St. Martin in Passeier", "BZ"], - ["Mölten", "BZ"], - ["St. Pankraz", "BZ"], - ["San Pancrazio", "BZ"], - ["Meltina", "BZ"], - ["Vöran", "BZ"], - ["Hafling", "BZ"], - ["Tscherms", "BZ"], - ["Avelengo", "BZ"], - ["Senale", "BZ"], - ["Sant'Orsola In Passiria", "BZ"], - ["Rifiano", "BZ"], - ["Andriano", "BZ"], - ["Gargazon", "BZ"], - ["Prissiano", "BZ"], - ["Gargazzone", "BZ"], - ["Walten", "BZ"], - ["Verano", "BZ"], - ], - "39011": [ - ["Lana", "BZ"], - ["Pawig", "BZ"], - ["Vigiljoc", "BZ"], - ["Völlan", "BZ"], - ["Pavicolo", "BZ"], - ["Monte San Vigilio", "BZ"], - ], - "39012": [ - ["Borgo Vittoria", "BZ"], - ["Sinic", "BZ"], - ["Sinigo", "BZ"], - ["Obermais", "BZ"], - ["Gratsch", "BZ"], - ["Meran Sinic", "BZ"], - ["Untermais", "BZ"], - ["Meran", "BZ"], - ["Merano", "BZ"], - ], - "39013": [ - ["Moos", "BZ"], - ["Moso In Passiria", "BZ"], - ["Stuls", "BZ"], - ["Plan In Passiria", "BZ"], - ["Platt", "BZ"], - ["Pfelder", "BZ"], - ["Rabenstein", "BZ"], - ["Ulfas", "BZ"], - ], - "39014": [["Postal", "BZ"], ["Burgstall", "BZ"]], - "39015": [ - ["Walte", "BZ"], - ["San Leonardo In Passiria", "BZ"], - ["St. Leonhard in Pass.", "BZ"], - ["Schweinsteg", "BZ"], - ["Valtina", "BZ"], - ["Sant'Orsola", "BZ"], - ["Windegg", "BZ"], - ], - "39016": [ - ["St. Moritz/Ulten", "BZ"], - ["Kuppelwies", "BZ"], - ["St.Nikolau", "BZ"], - ["Santa Valburga Ultimo", "BZ"], - ["Ultimo", "BZ"], - ["St.Walburg Ulte", "BZ"], - ["Santa Geltrude In Ultimo", "BZ"], - ["San Nicolo' Ultimo", "BZ"], - ["San Nicolo'", "BZ"], - ["Santa Valburga", "BZ"], - ["St. Walburg/Ulten", "BZ"], - ["Santa Gertrude", "BZ"], - ], - "39017": [["Verdins", "BZ"], ["Videgg", "BZ"], ["Schenna", "BZ"], ["Tall", "BZ"], ["Scena", "BZ"]], - "39018": [ - ["Vilpiano", "BZ"], - ["Siebeneich", "BZ"], - ["Vilpia", "BZ"], - ["Terlan", "BZ"], - ["Terlano", "BZ"], - ["Settequerce", "BZ"], - ], - "39019": [["Tirolo", "BZ"], ["Tirol", "BZ"]], - "39020": [ - ["Tanas", "BZ"], - ["Vernagt", "BZ"], - ["Gand/Martell", "BZ"], - ["Lichtenberg", "BZ"], - ["Schluderns", "BZ"], - ["Karthaus", "BZ"], - ["Eyrs", "BZ"], - ["Staben", "BZ"], - ["Taufers i. Münstertal", "BZ"], - ["Plawenn", "BZ"], - ["Melag", "BZ"], - ["Planeil", "BZ"], - ["St. Valentin a. d. H.", "BZ"], - ["Laatsch", "BZ"], - ["Graun/Vinschg.", "BZ"], - ["Matsch", "BZ"], - ["Unsere Frau i. Schnals", "BZ"], - ["Freiberg", "BZ"], - ["Marein", "BZ"], - ["Töll", "BZ"], - ["Tartsch", "BZ"], - ["Tabland", "BZ"], - ["Marlengo", "BZ"], - ["Marling", "BZ"], - ["Tschengls", "BZ"], - ["Glurns", "BZ"], - ["Goldrain", "BZ"], - ["Pedroß", "BZ"], - ["Freiberg Vinschga", "BZ"], - ["Tschars", "BZ"], - ["Katharinaberg", "BZ"], - ["Kastelbell", "BZ"], - ["Castelbello Ciardes", "BZ"], - ["Tol", "BZ"], - ["Unser Fra", "BZ"], - ["Montefranco In Venosta", "BZ"], - ["Tarsch", "BZ"], - ["Gries", "BZ"], - ["Ciardes", "BZ"], - ["Tubre", "BZ"], - ["Sluderno", "BZ"], - ["Santa Caterina", "BZ"], - ["Gomagoi", "BZ"], - ["Glorenza", "BZ"], - ["Parcines", "BZ"], - ["Partschins", "BZ"], - ["Senales", "BZ"], - ["Tel", "BZ"], - ["Montefranco", "BZ"], - ["Rabland", "BZ"], - ["Rabla'", "BZ"], - ["Madonna", "BZ"], - ["Trafoi", "BZ"], - ["Castelbello", "BZ"], - ["Martello", "BZ"], - ["Hinterkirch", "BZ"], - ["Morter", "BZ"], - ["Stilfs", "BZ"], - ["Rifair", "BZ"], - ["Martell", "BZ"], - ], - "39021": [ - ["Laces", "BZ"], - ["Latsch", "BZ"], - ["Morter", "BZ"], - ["Morte", "BZ"], - ["Goldrai", "BZ"], - ["Tarsc", "BZ"], - ["St. Martin am Kofl", "BZ"], - ["Coldrano", "BZ"], - ["Tarres", "BZ"], - ], - "39022": [ - ["Oberplars", "BZ"], - ["Vellau", "BZ"], - ["Aschbach", "BZ"], - ["Plars", "BZ"], - ["Lagundo", "BZ"], - ["Algund", "BZ"], - ], - "39023": [ - ["Laas", "BZ"], - ["Lasa", "BZ"], - ["Allitz", "BZ"], - ["Tana", "BZ"], - ["Tarnell", "BZ"], - ["Eyr", "BZ"], - ["Tanas", "BZ"], - ["Tschengel", "BZ"], - ["Cengles", "BZ"], - ["Oris", "BZ"], - ], - "39024": [ - ["Laatsc", "BZ"], - ["Marienberg", "BZ"], - ["Planol", "BZ"], - ["Planei", "BZ"], - ["Tartsc", "BZ"], - ["Schleis", "BZ"], - ["Matsc", "BZ"], - ["Mazia", "BZ"], - ["Laudes", "BZ"], - ["Burgusio", "BZ"], - ["Schlinig", "BZ"], - ["Burgeis", "BZ"], - ["Tarces", "BZ"], - ["Malles Venosta", "BZ"], - ["Mals", "BZ"], - ], - "39025": [["Plaus", "BZ"], ["Stabe", "BZ"], ["Stava", "BZ"], ["Naturno", "BZ"], ["Naturns", "BZ"]], - "39026": [ - ["Agums", "BZ"], - ["Montechiaro", "BZ"], - ["Prad", "BZ"], - ["Lichtenber", "BZ"], - ["Prato Allo Stelvio", "BZ"], - ], - "39027": [["Resia", "BZ"], ["Reschen", "BZ"], ["San Valentino Alla Muta", "BZ"], ["Curon Venosta", "BZ"]], - "39028": [ - ["Silandro", "BZ"], - ["Covelano", "BZ"], - ["Vezzano", "BZ"], - ["Schlanders", "BZ"], - ["Talatsch", "BZ"], - ["Vezzan", "BZ"], - ["Goefla", "BZ"], - ["Kortsch", "BZ"], - ["Göflan", "BZ"], - ], - "39029": [ - ["Trafo", "BZ"], - ["Gomago", "BZ"], - ["Stelvio", "BZ"], - ["Sulden", "BZ"], - ["Solda", "BZ"], - ["Trafoi", "BZ"], - ["Gomagoi", "BZ"], - ], - "39030": [ - ["San Lorenzo Di Sebato", "BZ"], - ["St. Sigmund", "BZ"], - ["Vallarga", "BZ"], - ["St. Lorenzen", "BZ"], - ["Niederolang", "BZ"], - ["St. Walburg i. Antholz", "BZ"], - ["Casteldarne", "BZ"], - ["St. Kassia", "BZ"], - ["Mühlen/Pfalzen", "BZ"], - ["St.Martin Gsie", "BZ"], - ["La Valle", "BZ"], - ["Obervintl", "BZ"], - ["Zwischenwasser", "BZ"], - ["Steinhaus", "BZ"], - ["Enneberg/Mareo", "BZ"], - ["St. Jakob in Ahrn", "BZ"], - ["St. Veit in Prags", "BZ"], - ["Chienes", "BZ"], - ["Kiens", "BZ"], - ["Issing", "BZ"], - ["Mühlbach b. Gais", "BZ"], - ["Pflaurenz", "BZ"], - ["Oberolang", "BZ"], - ["Greinwalden", "BZ"], - ["Kampill", "BZ"], - ["Untergsies", "BZ"], - ["St. Martin in Gsies", "BZ"], - ["Pichl", "BZ"], - ["Untermoi", "BZ"], - ["Margen", "BZ"], - ["Saalen", "BZ"], - ["Onach", "BZ"], - ["Gais", "BZ"], - ["Kasern", "BZ"], - ["St. Johann in Ahrn", "BZ"], - ["St.Vigi", "BZ"], - ["Ahrntal", "BZ"], - ["Oberrasen", "BZ"], - ["Niederrasen", "BZ"], - ["St. Peter in Ahrn", "BZ"], - ["Percha", "BZ"], - ["Vandoies", "BZ"], - ["Campil", "BZ"], - ["Valle Di Casies", "BZ"], - ["Mitterolang", "BZ"], - ["Hofern", "BZ"], - ["Valle Aurina", "BZ"], - ["Nasen", "BZ"], - ["Untervintl", "BZ"], - ["Ahornach", "BZ"], - ["Pikolein", "BZ"], - ["Perca", "BZ"], - ["Montal", "BZ"], - ["St. Vigil i. Enneberg", "BZ"], - ["Kolfuschg", "BZ"], - ["San Giovanni In Valle Aurina", "BZ"], - ["San Giuseppe", "BZ"], - ["St.Johann In Ahrnta", "BZ"], - ["St.Magdalen", "BZ"], - ["St. Martin in Thurn/S. Martin de Tor", "BZ"], - ["Longiaru'", "BZ"], - ["San Giacomo In Valle Aurina", "BZ"], - ["St.Jakob In Ahrnta", "BZ"], - ["St.Sigmun", "BZ"], - ["Moo", "BZ"], - ["Weitental", "BZ"], - ["Pedero", "BZ"], - ["Ehrenburg", "BZ"], - ["Ellen", "BZ"], - ["St. Magdalena i. G.", "BZ"], - ["Wengen/La Val", "BZ"], - ["Oberwielenbach", "BZ"], - ["Rasun Anterselva", "BZ"], - ["Wielenberg", "BZ"], - ["San Sigismondo", "BZ"], - ["Rasun Di Sotto", "BZ"], - ["Villa Ottone", "BZ"], - ["Stefansdorf", "BZ"], - ["Kurfar", "BZ"], - ["Longega", "BZ"], - ["Weißenbach", "BZ"], - ["San Vigilio", "BZ"], - ["Geiselsberg", "BZ"], - ["Anterselva Di Mezzo", "BZ"], - ["Tesselberg", "BZ"], - ["Niedervintl", "BZ"], - ["Vandoies Di Sotto", "BZ"], - ["Vintl", "BZ"], - ["Prettau", "BZ"], - ["Terenten", "BZ"], - ["Welschellen", "BZ"], - ["Rasun Di Sopra", "BZ"], - ["Terento", "BZ"], - ["Lappach", "BZ"], - ["Piccolino", "BZ"], - ["Rodeneck", "BZ"], - ["Sexten", "BZ"], - ["Sesto", "BZ"], - ["Cadipietra", "BZ"], - ["Pfalzen", "BZ"], - ["Falzes", "BZ"], - ["Pfunders", "BZ"], - ["Rein", "BZ"], - ["San Martino In Casies", "BZ"], - ["Uttenheim", "BZ"], - ["Selva Dei Molini", "BZ"], - ["Mühlwald", "BZ"], - ["Fundres", "BZ"], - ["Predoi", "BZ"], - ["Prags", "BZ"], - ["Braies", "BZ"], - ["Vandoies Di Sopra", "BZ"], - ["Valdaora Di Mezzo", "BZ"], - ["Unterplanken", "BZ"], - ["Valdaora Di Sotto", "BZ"], - ["Platten", "BZ"], - ["Olang", "BZ"], - ["Valdaora", "BZ"], - ["Luttach", "BZ"], - ["Antholz", "BZ"], - ["San Martino In Badia", "BZ"], - ["Lutago", "BZ"], - ["Pederoa", "BZ"], - ["Marebbe", "BZ"], - ["Santa Maddalena", "BZ"], - ], - "39031": [ - ["Luns", "BZ"], - ["Bruneck", "BZ"], - ["Riscone", "BZ"], - ["Reischach", "BZ"], - ["Aufhofen", "BZ"], - ["Teodone", "BZ"], - ["Dietenheim", "BZ"], - ["Stegen", "BZ"], - ["Brunico", "BZ"], - ["St. Georgen", "BZ"], - ], - "39032": [ - ["Kematen", "BZ"], - ["Mühlen i. Taufers", "BZ"], - ["Ahornac", "BZ"], - ["Moehlen In Taufer", "BZ"], - ["Taufers/Ahrntal", "BZ"], - ["Campo Tures", "BZ"], - ["Sand in Taufers", "BZ"], - ["Riva Di Tures", "BZ"], - ["Acereto", "BZ"], - ["Molini Di Tures", "BZ"], - ], - "39033": [["Kolfusch", "BZ"], ["Colfosco", "BZ"], ["Corvara In Badia", "BZ"], ["Corvara", "BZ"]], - "39034": [["Toblach", "BZ"], ["Dobbiaco", "BZ"], ["Aufkirchen", "BZ"], ["Wahlen", "BZ"]], - "39035": [["Monguelfo", "BZ"], ["Taisten", "BZ"], ["Tesido", "BZ"], ["Welsberg", "BZ"]], - "39036": [ - ["St. Kassian", "BZ"], - ["San Cassiano", "BZ"], - ["Stern", "BZ"], - ["Pedraces", "BZ"], - ["Badia", "BZ"], - ["Abtei/Badia", "BZ"], - ["La Villa", "BZ"], - ["Pedrace", "BZ"], - ], - "39037": [ - ["Mühlbach", "BZ"], - ["Vals", "BZ"], - ["Meransen", "BZ"], - ["Spinges", "BZ"], - ["Rodengo", "BZ"], - ["Rio Di Pusteria", "BZ"], - ], - "39038": [["Vierschach", "BZ"], ["Winnebach", "BZ"], ["San Candido", "BZ"]], - "39039": [["Villabassa", "BZ"], ["Niederdorf", "BZ"]], - "39040": [ - ["Stilves", "BZ"], - ["Penon", "BZ"], - ["Kastelruth", "BZ"], - ["Proves", "BZ"], - ["Campodazzo", "BZ"], - ["Mauls", "BZ"], - ["Villandro", "BZ"], - ["San Pietro", "BZ"], - ["Lajen", "BZ"], - ["Mareta", "BZ"], - ["Seis am Schlern", "BZ"], - ["Siusi", "BZ"], - ["Ridanna", "BZ"], - ["Barbiano", "BZ"], - ["Petersberg", "BZ"], - ["Olmi", "BZ"], - ["Casateia", "BZ"], - ["Tramin", "BZ"], - ["Stanghe", "BZ"], - ["Leone Santa Elisabetta", "BZ"], - ["Neustift", "BZ"], - ["Ratschings", "BZ"], - ["Laion", "BZ"], - ["Cauria", "BZ"], - ["Novacella", "BZ"], - ["Varna", "BZ"], - ["Rasa", "BZ"], - ["Salorno", "BZ"], - ["San Lugano", "BZ"], - ["Ridnaun", "BZ"], - ["Auer", "BZ"], - ["Ora", "BZ"], - ["Pfitsch", "BZ"], - ["Aldino", "BZ"], - ["Laag", "BZ"], - ["Ponte Gardena", "BZ"], - ["Racines", "BZ"], - ["Salurn", "BZ"], - ["Mareit", "BZ"], - ["Villanders", "BZ"], - ["Sciaves", "BZ"], - ["Luson", "BZ"], - ["Vahrn", "BZ"], - ["Mühlen/Truden", "BZ"], - ["Tanürz", "BZ"], - ["Villnöß", "BZ"], - ["Proveis", "BZ"], - ["Pfulters", "BZ"], - ["Söll", "BZ"], - ["Pflersch", "BZ"], - ["St. Michael/Kastelr.", "BZ"], - ["Graun/Unterl.", "BZ"], - ["Lüsen", "BZ"], - ["Flitt", "BZ"], - ["Garn", "BZ"], - ["Buchholz", "BZ"], - ["Entiklar", "BZ"], - ["Schmuders", "BZ"], - ["Kollmann", "BZ"], - ["Montan", "BZ"], - ["Hohlen", "BZ"], - ["Albions", "BZ"], - ["Castelrotto", "BZ"], - ["Naz Sciaves", "BZ"], - ["Pruno", "BZ"], - ["Feldthurns", "BZ"], - ["St.Peter Laje", "BZ"], - ["Pruno Di Stilves", "BZ"], - ["Velturno", "BZ"], - ["Gastei", "BZ"], - ["Trodena", "BZ"], - ["Magre' Sulla Strada Del Vino", "BZ"], - ["Redagno", "BZ"], - ["Laurein", "BZ"], - ["Mules", "BZ"], - ["Lauregno", "BZ"], - ["Alpe Di Siusi", "BZ"], - ["Raa", "BZ"], - ["Radein", "BZ"], - ["Loewenviertel Elisabethsiedlun", "BZ"], - ["Seiser Al", "BZ"], - ["Atzwang", "BZ"], - ["Truden", "BZ"], - ["St.Lugan", "BZ"], - ["Natz", "BZ"], - ["Stilfes", "BZ"], - ["Gfrill/Unterland", "BZ"], - ["Funes", "BZ"], - ["Fontanefredde", "BZ"], - ["Schabs", "BZ"], - ["Elzenbaum", "BZ"], - ["San Pietro Laion", "BZ"], - ["Valgiovo", "BZ"], - ["Seis Am Schler", "BZ"], - ["Termeno Sulla Strada Del Vino", "BZ"], - ["Kurtinig", "BZ"], - ["Waidbruck", "BZ"], - ["Jaufental", "BZ"], - ["Hole", "BZ"], - ["Cortaccia Sulla Strada Del Vino", "BZ"], - ["St.Pete", "BZ"], - ["Altrei", "BZ"], - ["Stange", "BZ"], - ["Kaltenbrunn", "BZ"], - ["Anterivo", "BZ"], - ["Naz", "BZ"], - ["Kurtatsch", "BZ"], - ["Tschövas", "BZ"], - ["Gschnon", "BZ"], - ["Aldein", "BZ"], - ["Klerant", "BZ"], - ["Weißenstein", "BZ"], - ["S. Lugano", "BZ"], - ["Innerpfitsch", "BZ"], - ["Margreid", "BZ"], - ["Schnauders", "BZ"], - ["Fennberg", "BZ"], - ["Tagusens", "BZ"], - ["Flans", "BZ"], - ["Pinzon", "BZ"], - ["St. Andrä_", "BZ"], - ["St. Oswald", "BZ"], - ["Afers", "BZ"], - ["Montagna", "BZ"], - ["Freins", "BZ"], - ["Rungg", "BZ"], - ["St. Leonhard", "BZ"], - ["Trens", "BZ"], - ["Telfes", "BZ"], - ["Spiluck", "BZ"], - ["St. Peter b. Lajen", "BZ"], - ["Schrambach", "BZ"], - ["Gossensaß", "BZ"], - ["St. Moritz b. Villanders", "BZ"], - ["Campo Di Trens", "BZ"], - ["Freienfeld", "BZ"], - ["Barbian", "BZ"], - ["Glen", "BZ"], - ["Cortina Sulla Strada Del Vino", "BZ"], - ["Viums", "BZ"], - ["Schalders", "BZ"], - ], - "39041": [["Gossensas", "BZ"], ["Brennero", "BZ"], ["Brenner", "BZ"], ["Colle Isarco", "BZ"]], - "39042": [ - ["Sant'Andrea In Monte", "BZ"], - ["Albes", "BZ"], - ["Neustift", "BZ"], - ["Brixen", "BZ"], - ["Eores", "BZ"], - ["St.Andr", "BZ"], - ["Sarns", "BZ"], - ["Albeins", "BZ"], - ["Zinggen", "BZ"], - ["Afer", "BZ"], - ["Pinzagen", "BZ"], - ["Bressanone", "BZ"], - ["Tschötsch", "BZ"], - ["Mellaun", "BZ"], - ["Elvas", "BZ"], - ["Milland", "BZ"], - ["Karnol", "BZ"], - ["Tils", "BZ"], - ], - "39043": [ - ["Teis", "BZ"], - ["Verdings", "BZ"], - ["Latzfons", "BZ"], - ["Gufidaun", "BZ"], - ["Gudon", "BZ"], - ["Chiusa", "BZ"], - ["Klausen", "BZ"], - ["Lazfons", "BZ"], - ], - "39044": [["Laghetti", "BZ"], ["Mazon", "BZ"], ["Neumarkt", "BZ"], ["Egna", "BZ"]], - "39045": [ - ["Oberau", "BZ"], - ["Mittewald", "BZ"], - ["Grasstein", "BZ"], - ["Fortezza", "BZ"], - ["Franzensfeste", "BZ"], - ], - "39046": [["St. Ulrich/Urtijei", "BZ"], ["Ortisei", "BZ"], ["Pufels", "BZ"], ["St. Jakob", "BZ"]], - "39047": [["Santa Cristina Val Gardena", "BZ"], ["St. Christina/S. Crestina -Gherdeina", "BZ"]], - "39048": [["Selva Di Val Gardena", "BZ"], ["Selva", "BZ"], ["Wolkenstein/Selva", "BZ"]], - "39049": [ - ["Flains", "BZ"], - ["Steckholz", "BZ"], - ["Thuins", "BZ"], - ["Kematen/Pfitsch", "BZ"], - ["Val Di Vizze", "BZ"], - ["Bahnho", "BZ"], - ["Tschöfs", "BZ"], - ["Prati", "BZ"], - ["Wiesen", "BZ"], - ["Sterzing", "BZ"], - ["Ried", "BZ"], - ["Vipiteno", "BZ"], - ["Stazione", "BZ"], - ], - "39050": [ - ["Valas", "BZ"], - ["Völs am Schlern", "BZ"], - ["Fie' Allo Sciliar", "BZ"], - ["Prösels", "BZ"], - ["Oberinn", "BZ"], - ["Breien", "BZ"], - ["Gummer", "BZ"], - ["Eggen", "BZ"], - ["Steinmannwald", "BZ"], - ["Unterrain/Eppan", "BZ"], - ["St. Justina/Eppan", "BZ"], - ["St. Nikolaus i. Eggen", "BZ"], - ["Missian", "BZ"], - ["San Nicolo' D'Ega", "BZ"], - ["Wangen", "BZ"], - ["Jenesien", "BZ"], - ["Lengstein", "BZ"], - ["Seit", "BZ"], - ["San Genesio Atesino", "BZ"], - ["Ums", "BZ"], - ["Perdonig", "BZ"], - ["St. Jakob/Bozen", "BZ"], - ["Tiers", "BZ"], - ["Karneid", "BZ"], - ["Steinegg", "BZ"], - ["Birchabruck", "BZ"], - ["Ponte Nova", "BZ"], - ["Flaas", "BZ"], - ["Blumau", "BZ"], - ["Raut", "BZ"], - ["St. Konstantin", "BZ"], - ["Untereggen", "BZ"], - ["Völser Aicha", "BZ"], - ["Innichen", "BZ"], - ["San Paolo", "BZ"], - ["Afing", "BZ"], - ["Unterglaning", "BZ"], - ["Girlan", "BZ"], - ["Nova Ponente", "BZ"], - ["St.Pauls", "BZ"], - ["Unterinn", "BZ"], - ["St. Pauls/Eppan", "BZ"], - ["Monte San Pietro", "BZ"], - ["Petersberg", "BZ"], - ["Deutschnofen", "BZ"], - ["Cologna Di Sotto", "BZ"], - ["Avigna", "BZ"], - ["Aica Di Fie'", "BZ"], - ["Tires", "BZ"], - ], - "39051": [["Branzoll", "BZ"], ["Bronzolo", "BZ"], ["Pfatten", "BZ"], ["Vadena", "BZ"]], - "39052": [ - ["St. Josef am See", "BZ"], - ["St. Nikolaus/Kaltern", "BZ"], - ["Oberplanitzing", "BZ"], - ["St. Anton", "BZ"], - ["Mitterdorf", "BZ"], - ["Altenburg", "BZ"], - ["Unterplanitzing", "BZ"], - ["Kaltern", "BZ"], - ["Caldaro Sulla Strada Del Vino", "BZ"], - ], - "39053": [ - ["Kardaun", "BZ"], - ["Collepietra", "BZ"], - ["Contrada Val D'Ega", "BZ"], - ["San Valentino In Campo", "BZ"], - ["Prato All'Isarco", "BZ"], - ["Eggenta", "BZ"], - ["Cornedo All'Isarco", "BZ"], - ["Cardano", "BZ"], - ["Kardaun/Bozen", "BZ"], - ["Steineg", "BZ"], - ["Bluma", "BZ"], - ["Gumme", "BZ"], - ], - "39054": [ - ["Gissmann", "BZ"], - ["Unterin", "BZ"], - ["Auna Inferiore", "BZ"], - ["Wange", "BZ"], - ["Collalbo", "BZ"], - ["Lengmoos", "BZ"], - ["Auna Di Sopra", "BZ"], - ["Oberi", "BZ"], - ["Sant'Ottilia In Renon", "BZ"], - ["Oberboze", "BZ"], - ["Ritten", "BZ"], - ["Lengstein Am Ritte", "BZ"], - ["Renon", "BZ"], - ["Vanga", "BZ"], - ["Klobenstein", "BZ"], - ["Soprabolzano", "BZ"], - ], - "39055": [ - ["Laives", "BZ"], - ["San Giacomo Di Laives", "BZ"], - ["San Giacomo", "BZ"], - ["Leifers", "BZ"], - ["Seit Bei Leifer", "BZ"], - ["La Costa Di Laives", "BZ"], - ["La Costa", "BZ"], - ["Pineta", "BZ"], - ["St.Jakob Bei Boze", "BZ"], - ], - "39056": [ - ["Carezza Al Lago", "BZ"], - ["Karersee", "BZ"], - ["Carezza", "BZ"], - ["Welschnofen", "BZ"], - ["Nova Levante", "BZ"], - ], - "39057": [ - ["Cornaiano", "BZ"], - ["Appiano Sulla Strada Del Vino", "BZ"], - ["Girla", "BZ"], - ["Eppan", "BZ"], - ["San Michele Appiano", "BZ"], - ["San Michele", "BZ"], - ["Montiggl", "BZ"], - ["Frangar", "BZ"], - ["St. Michael/Eppan", "BZ"], - ["Frangarto", "BZ"], - ], - "39058": [ - ["Pens", "BZ"], - ["Nordhei", "BZ"], - ["Sarentino", "BZ"], - ["Asten", "BZ"], - ["Riedelsberg", "BZ"], - ["Bundschen", "BZ"], - ["Weißenbach/Sarntal", "BZ"], - ["Reinswald", "BZ"], - ["Durnholz", "BZ"], - ["Villa", "BZ"], - ["Astfeld-Nordheim", "BZ"], - ["Sarnthein", "BZ"], - ["Campolasta", "BZ"], - ["Aberstückl", "BZ"], - ], - "39059": [["Wolfsgruben", "BZ"], ["Oberbozen", "BZ"]], - "39100": [ - ["Kampenn", "BZ"], - ["Glaning", "BZ"], - ["Sigmundskro", "BZ"], - ["Castelfirmiano", "BZ"], - ["Oberau/Bozen", "BZ"], - ["Signat", "BZ"], - ["Rentsch", "BZ"], - ["Bozen", "BZ"], - ["Bolzano", "BZ"], - ], - "38010": [ - ["Faedo", "TN"], - ["Campodenno", "TN"], - ["Spormaggiore", "TN"], - ["Malgolo", "TN"], - ["Cavedago", "TN"], - ["Sporminore", "TN"], - ["Ronzone", "TN"], - ["Denno", "TN"], - ["Dambel", "TN"], - ["Fai Della Paganella", "TN"], - ["Andalo", "TN"], - ["Vigo Di Ton", "TN"], - ["Casez", "TN"], - ["San Michele All'Adige", "TN"], - ["Sanzeno", "TN"], - ["San Romedio", "TN"], - ["Banco", "TN"], - ["Ruffre'", "TN"], - ["Ton", "TN"], - ["Sfruz", "TN"], - ["Romeno", "TN"], - ["Cima Paganella", "TN"], - ["Vigo Anaunia", "TN"], - ["Tavon", "TN"], - ], - "38011": [["Seio", "TN"], ["Amblar", "TN"], ["Don", "TN"], ["Sarnonico", "TN"], ["Cavareno", "TN"]], - "38012": [ - ["Segno", "TN"], - ["Coredo", "TN"], - ["Vervò", "TN"], - ["Smarano", "TN"], - ["Predaia", "TN"], - ["Tres", "TN"], - ["Dermulo", "TN"], - ["Mollaro", "TN"], - ["Taio", "TN"], - ], - "38013": [["Tret", "TN"], ["Malosco", "TN"], ["Vasio", "TN"], ["Fondo", "TN"]], - "38015": [["Lavis", "TN"], ["Nave San Felice", "TN"], ["Pressano", "TN"]], - "38016": [["Mezzocorona", "TN"]], - "38017": [["Mezzolombardo", "TN"]], - "38018": [["Molveno", "TN"]], - "38019": [["Tassullo", "TN"], ["Tuenno", "TN"], ["Nanno", "TN"]], - "38020": [ - ["Deggiano", "TN"], - ["Mocenigo", "TN"], - ["Pellizzano", "TN"], - ["Cloz", "TN"], - ["Commezzadura", "TN"], - ["Bresimo", "TN"], - ["Rabbi", "TN"], - ["Rumo", "TN"], - ["Marcena", "TN"], - ["Castelfondo", "TN"], - ["Mestriago", "TN"], - ["Mezzana", "TN"], - ["Pracorno", "TN"], - ["Cis", "TN"], - ], - "38021": [["Brez", "TN"]], - "38022": [["Cavizzana", "TN"], ["Caldes", "TN"], ["Bozzana", "TN"]], - "38023": [["Mechel", "TN"], ["Caltron", "TN"], ["Cles", "TN"]], - "38024": [ - ["Cogolo", "TN"], - ["Cogolo In Val Di Pejo", "TN"], - ["Celledizzo", "TN"], - ["Celedizzo", "TN"], - ["Peio", "TN"], - ], - "38025": [["Monclassico", "TN"], ["Dimaro", "TN"]], - "38026": [["Fucine Di Ossana", "TN"], ["Ossana", "TN"], ["Cusiano", "TN"], ["Fucine", "TN"]], - "38027": [["Male'", "TN"], ["Terzolas", "TN"], ["Croviana", "TN"]], - "38028": [["Tregiovo", "TN"], ["Romallo", "TN"], ["Revo'", "TN"], ["Cagno'", "TN"]], - "38029": [["Passo Del Tonale", "TN"], ["Fraviano", "TN"], ["Vermiglio", "TN"]], - "38030": [ - ["Soraga", "TN"], - ["Daiano", "TN"], - ["Molina", "TN"], - ["Castello Di Fiemme", "TN"], - ["Varena", "TN"], - ["Molina Di Fiemme", "TN"], - ["Stramentizzo", "TN"], - ["Capriana", "TN"], - ["Rovere' Della Luna", "TN"], - ["Giovo", "TN"], - ["Panchia'", "TN"], - ["Castello Molina Di Fiemme", "TN"], - ["Palu'", "TN"], - ["Stramentizzo Nuovo", "TN"], - ["Verla", "TN"], - ["Ziano Di Fiemme", "TN"], - ["Campestrin", "TN"], - ["Mazzin", "TN"], - ], - "38031": [["Campitello Di Fassa", "TN"]], - "38032": [["Sass Pordoi", "TN"], ["Alba Di Canazei", "TN"], ["Penia", "TN"], ["Canazei", "TN"]], - "38033": [["Carano", "TN"], ["Cavalese", "TN"], ["Masi Di Cavalese", "TN"]], - "38034": [["Lisignago", "TN"], ["Cembra", "TN"]], - "38035": [["Forno Di Fiemme", "TN"], ["Moena", "TN"], ["Forno", "TN"]], - "38036": [["Pera", "TN"], ["Pera Di Fassa", "TN"], ["Pozza Di Fassa", "TN"]], - "38037": [["Paneveggio", "TN"], ["Predazzo", "TN"], ["Passo Rolle", "TN"], ["Bellamonte", "TN"]], - "38038": [["Tesero", "TN"]], - "38039": [["Passo Costalunga", "TN"], ["Costalunga", "TN"], ["Vigo Di Fassa", "TN"]], - "38040": [ - ["Fornace", "TN"], - ["Lases", "TN"], - ["Valfloriana", "TN"], - ["Lona Lases", "TN"], - ["Ravina", "TN"], - ["Luserna", "TN"], - ["Lona", "TN"], - ], - "38041": [["Albiano", "TN"]], - "38042": [ - ["Campolongo", "TN"], - ["Faida Di Pine'", "TN"], - ["Faida", "TN"], - ["Rizzolaga", "TN"], - ["Baselga Di Pine'", "TN"], - ["Montagnaga", "TN"], - ["San Mauro", "TN"], - ], - "38043": [["Regnana", "TN"], ["Bedollo", "TN"], ["Brusago", "TN"]], - "38045": [["Civezzano", "TN"], ["Seregnano", "TN"]], - "38046": [["Gionghi", "TN"], ["Lavarone Cappella", "TN"], ["Lavarone", "TN"], ["Cappella", "TN"]], - "38047": [["Valcava", "TN"], ["Sevignano", "TN"], ["Quaras", "TN"], ["Segonzano", "TN"]], - "38048": [["Sover", "TN"]], - "38049": [ - ["Vigolo Vattaro", "TN"], - ["Bosentino", "TN"], - ["Centa San Nicolo'", "TN"], - ["Vattaro", "TN"], - ["Migazzone", "TN"], - ], - "38050": [ - ["Calceranica Al Lago", "TN"], - ["Ospedaletto", "TN"], - ["Torcegno", "TN"], - ["Pieve Tesino", "TN"], - ["Fierozzo", "TN"], - ["Marter", "TN"], - ["Prade", "TN"], - ["Tenna", "TN"], - ["Sagron Mis", "TN"], - ["Bieno", "TN"], - ["Monte Di Mezzo", "TN"], - ["Carzano", "TN"], - ["Sant'Orsola Terme", "TN"], - ["Telve Di Sopra", "TN"], - ["Santa Brigida", "TN"], - ["Ronchi Valsugana", "TN"], - ["Canal San Bovo", "TN"], - ["Imer", "TN"], - ["Castelnuovo", "TN"], - ["Novaledo", "TN"], - ["Scurelle", "TN"], - ["Gobbera", "TN"], - ["Cinte Tesino", "TN"], - ["Mezzano", "TN"], - ["Palu' Del Fersina", "TN"], - ["Caoria", "TN"], - ["Frassilongo", "TN"], - ["San Francesco", "TN"], - ["Telve", "TN"], - ["Telve Di Valsugana", "TN"], - ["Roncegno", "TN"], - ], - "38051": [["Borgo Valsugana", "TN"], ["Borgo", "TN"], ["Olle", "TN"]], - "38052": [["Caldonazzo", "TN"]], - "38053": [["Castello Tesino", "TN"]], - "38054": [ - ["Siror", "TN"], - ["San Martino Di Castrozza", "TN"], - ["Transacqua", "TN"], - ["Fiera Di Primiero", "TN"], - ["Tonadico", "TN"], - ], - "38055": [ - ["Tezze", "TN"], - ["Selva Di Grigno", "TN"], - ["Tezze Val Sugana", "TN"], - ["Selva", "TN"], - ["Grigno", "TN"], - ], - "38056": [["Barco", "TN"], ["Levico Terme", "TN"]], - "38057": [ - ["Pergine Valsugana", "TN"], - ["Vignola", "TN"], - ["Falesina", "TN"], - ["Costasavina", "TN"], - ["Susa'", "TN"], - ["Canezza", "TN"], - ["San Cristoforo", "TN"], - ["Viarago", "TN"], - ["Roncogno", "TN"], - ["Canale", "TN"], - ["Vignola Falesina", "TN"], - ["Serso", "TN"], - ["Vigalzano", "TN"], - ["San Cristoforo Al Lago", "TN"], - ["Ischia Trentina", "TN"], - ["Canzolino", "TN"], - ["Madrano", "TN"], - ], - "38059": [ - ["Ivano Fracena", "TN"], - ["Villa Agnedo", "TN"], - ["Strigno", "TN"], - ["Spera", "TN"], - ["Samone", "TN"], - ["Agnedo", "TN"], - ], - "38060": [ - ["Tenno", "TN"], - ["Pieve Di Ledro", "TN"], - ["Valmorbia", "TN"], - ["Corte", "TN"], - ["Ronzo", "TN"], - ["Riva Di Vallarsa", "TN"], - ["Gavazzo Nuova", "TN"], - ["Castellano", "TN"], - ["Ronzo Chienis", "TN"], - ["Chienis", "TN"], - ["Pedersano", "TN"], - ["Garniga Terme", "TN"], - ["Castione", "TN"], - ["Villa Lagarina", "TN"], - ["Anghebeni", "TN"], - ["Pregasina", "TN"], - ["Anghebeni Di Vallarsa", "TN"], - ["Cimone", "TN"], - ["Isera", "TN"], - ["Nogaredo", "TN"], - ["Besenello", "TN"], - ["Cornale'", "TN"], - ["Valduga", "TN"], - ["Tiarno Di Sotto", "TN"], - ["Bezzecca", "TN"], - ["Molina Di Ledro", "TN"], - ["Tiarno Di Sopra", "TN"], - ["Nomi", "TN"], - ["Cologna", "TN"], - ["Brentonico", "TN"], - ["Volano", "TN"], - ["Terragnolo", "TN"], - ["Raossi", "TN"], - ["Raossi Di Vallarsa", "TN"], - ["Romagnano", "TN"], - ["Concei", "TN"], - ["Aldeno", "TN"], - ["Vallarsa", "TN"], - ["Crosano", "TN"], - ["Pomarolo", "TN"], - ], - "38061": [ - ["Santa Margherita", "TN"], - ["Pilcante", "TN"], - ["Serravalle All'Adige", "TN"], - ["Ala", "TN"], - ["Chizzola", "TN"], - ["Serravalle", "TN"], - ["Sega Dei Lessini", "TN"], - ], - "38062": [["Oltresarca", "TN"], ["Arco", "TN"], ["Bolognano", "TN"], ["San Giorgio", "TN"], ["Vignole", "TN"]], - "38063": [["Sabbionara", "TN"], ["Borghetto All'Adige", "TN"], ["Avio", "TN"]], - "38064": [ - ["Mezzomonte Di Sotto", "TN"], - ["Folgaria", "TN"], - ["Mezzomonte", "TN"], - ["Nosellari", "TN"], - ["Carbonare Di Folgaria", "TN"], - ["Serrada", "TN"], - ["Serrada Di Folgaria", "TN"], - ["San Sebastiano", "TN"], - ["Carbonare", "TN"], - ["Mezzomonte Di Sopra", "TN"], - ], - "38065": [ - ["Manzano", "TN"], - ["Besagno", "TN"], - ["Sano", "TN"], - ["Valle San Felice", "TN"], - ["Mori", "TN"], - ["Pannone", "TN"], - ], - "38066": [["Varone", "TN"], ["Riva Del Garda", "TN"]], - "38067": [["Mezzolago", "TN"], ["Biacesa Di Ledro", "TN"], ["Ledro", "TN"]], - "38068": [ - ["Rovereto", "TN"], - ["Borgo Sacco", "TN"], - ["Mori Ferrovia", "TN"], - ["Trambileno", "TN"], - ["Lizzanella", "TN"], - ["Marco", "TN"], - ], - "38069": [["Nago Torbole", "TN"], ["Torbole", "TN"], ["Nago", "TN"]], - "38070": [["Tavodo", "TN"], ["Villa Banale", "TN"], ["Lomaso", "TN"], ["Stenico", "TN"]], - "38071": [ - ["Larido", "TN"], - ["Marazzone", "TN"], - ["Bleggio Inferiore", "TN"], - ["Bleggio Superiore", "TN"], - ["Bivedo", "TN"], - ], - "38073": [["Vigo", "TN"], ["Vigo Cavedine", "TN"], ["Stravino", "TN"], ["Cavedine", "TN"]], - "38074": [["Drena", "TN"], ["Ceniga", "TN"], ["Dro", "TN"], ["Pietramurata", "TN"]], - "38075": [["Ballino", "TN"], ["Fiave'", "TN"]], - "38076": [ - ["Castel Madruzzo", "TN"], - ["Calavino", "TN"], - ["Lasino", "TN"], - ["Sarche", "TN"], - ["Madruzzo", "TN"], - ], - "38077": [ - ["Comano Terme", "TN"], - ["Vigo Lomaso", "TN"], - ["Lundo", "TN"], - ["Bagni Di Comano", "TN"], - ["Ponte Arche", "TN"], - ], - "38078": [ - ["Dorsino", "TN"], - ["Moline", "TN"], - ["San Lorenzo In Banale", "TN"], - ["Moline Di Banale", "TN"], - ["San Lorenzo Dorsino", "TN"], - ], - "38079": [["Bolbeno", "TN"], ["Zuclo", "TN"], ["Tione Di Trento", "TN"], ["Pelugo", "TN"], ["Saone", "TN"]], - "38080": [ - ["Baitoni", "TN"], - ["Carisolo", "TN"], - ["Bocenago", "TN"], - ["Bondone", "TN"], - ["Strembo", "TN"], - ["Iavre' Vigo Rendena", "TN"], - ["Caderzone", "TN"], - ], - "38082": [["Castel Condino", "TN"]], - "38083": [["Condino", "TN"], ["Brione", "TN"], ["Cimego", "TN"]], - "38085": [["Pieve Di Bono", "TN"], ["Creto", "TN"], ["Prezzo", "TN"]], - "38086": [ - ["Massimeno", "TN"], - ["Sant'Antonio Di Mavignola", "TN"], - ["Pinzolo", "TN"], - ["Madonna Di Campiglio", "TN"], - ["Giustino", "TN"], - ], - "38087": [["Bondo", "TN"], ["Lardaro", "TN"], ["Roncone", "TN"], ["Breguzzo", "TN"]], - "38088": [["Spiazzo Rendena", "TN"], ["Spiazzo", "TN"]], - "38089": [["Storo", "TN"], ["Darzo", "TN"], ["Lodrone", "TN"]], - "38091": [["Praso", "TN"], ["Bersone", "TN"], ["Valdaone", "TN"], ["Daone", "TN"]], - "38092": [["Grauno", "TN"], ["Grumes", "TN"], ["Valda", "TN"], ["Faver", "TN"]], - "38093": [["Terres", "TN"], ["Flavon", "TN"], ["Cunevo", "TN"]], - "38094": [ - ["Verdesina", "TN"], - ["Villa Rendena", "TN"], - ["Vigo Rendena", "TN"], - ["Iavre'", "TN"], - ["Dare'", "TN"], - ], - "38095": [["Ragoli", "TN"], ["Montagne", "TN"], ["Preore", "TN"]], - "38096": [["Vezzano", "TN"], ["Terlago", "TN"], ["Margone", "TN"], ["Ranzo", "TN"], ["Padergnone", "TN"]], - "38097": [["Zambana", "TN"], ["Nave San Rocco", "TN"]], - "38100": [ - ["Gardolo Di Mezzo", "TN"], - ["Trento", "TN"], - ["Gardolo", "TN"], - ["Sopramonte", "TN"], - ["Baselga Del Bondone", "TN"], - ["Vigo Meano", "TN"], - ["Cadine", "TN"], - ["Cognola", "TN"], - ["Sardagna", "TN"], - ["Vaneze", "TN"], - ["Martignano", "TN"], - ["Baselga Di Vezzano", "TN"], - ["Vaneze Di Bondone", "TN"], - ["Valsorda", "TN"], - ["Villamontagna", "TN"], - ["Meano", "TN"], - ["Vigolo Baselga", "TN"], - ["Vela", "TN"], - ["Villazzano", "TN"], - ["Montevaccino", "TN"], - ["Povo", "TN"], - ["Mattarello", "TN"], - ], - "38121": [["Trento", "TN"]], - "06010": [["Citerna", "PG"], ["Monte Santa Maria Tiberina", "PG"], ["Lippiano", "PG"], ["Fighille", "PG"]], - "06012": [ - ["Riosecco", "PG"], - ["Muccignano", "PG"], - ["Cinquemiglia", "PG"], - ["Morra", "PG"], - ["Piosina", "PG"], - ["Cerbara", "PG"], - ["San Maiano", "PG"], - ["Citta' Di Castello", "PG"], - ["San Secondo", "PG"], - ["Lerchi", "PG"], - ["Promano", "PG"], - ["Fraccano", "PG"], - ], - "06014": [["Montone", "PG"]], - "06016": [["Selci", "PG"], ["San Giustino", "PG"], ["Lama", "PG"]], - "06018": [ - ["Pistrino", "PG"], - ["Petroia", "PG"], - ["Lugnano", "PG"], - ["Badia Petroia", "PG"], - ["San Leo Bastia", "PG"], - ["Petrelle", "PG"], - ["Trestina", "PG"], - ["Lugnano Citta' Di Castello", "PG"], - ], - "06019": [ - ["Verna", "PG"], - ["Montecastelli Umbro", "PG"], - ["Preggio", "PG"], - ["Calzolaro", "PG"], - ["Montecastelli", "PG"], - ["Pierantonio", "PG"], - ["Niccone", "PG"], - ["Umbertide", "PG"], - ], - "06020": [["Branca", "PG"], ["Torre Dei Calzolari", "PG"]], - "06021": [["Costacciaro", "PG"], ["Villa Col De' Canali", "PG"], ["Villa Col Dei Canali", "PG"]], - "06022": [ - ["Fossato Di Vico Stazione", "PG"], - ["Purello", "PG"], - ["Osteria Del Gatto", "PG"], - ["Fossato Di Vico", "PG"], - ], - "06023": [ - ["San Pellegrino Di Gualdo Tadino", "PG"], - ["Gualdo Tadino", "PG"], - ["San Pellegrino", "PG"], - ["Cerqueto", "PG"], - ["Morano", "PG"], - ["Morano Madonnuccia", "PG"], - ["Pieve Di Compresseto", "PG"], - ], - "06024": [ - ["Gubbio", "PG"], - ["Mocaiana", "PG"], - ["Ponte D'Assi", "PG"], - ["Stazione Di Padule", "PG"], - ["San Benedetto Vecchio", "PG"], - ["Torre Calzolari", "PG"], - ["Scritto", "PG"], - ["Padule", "PG"], - ["Caicambiucci", "PG"], - ["Semonte", "PG"], - ["Mocaiana Stazione", "PG"], - ["Colpalombo", "PG"], - ["Casamorcia", "PG"], - ["Cipolleto", "PG"], - ["Camporeggiano", "PG"], - ], - "06025": [["Gaifana", "PG"], ["Nocera Umbra", "PG"], ["Molinaccio", "PG"]], - "06026": [["Pietralunga", "PG"]], - "06027": [["Scheggia E Pascelupo", "PG"], ["Scheggia", "PG"], ["Isola Fossara", "PG"], ["Pascelupo", "PG"]], - "06028": [["Sigillo", "PG"]], - "06029": [["Casa Castalda", "PG"], ["Valfabbrica", "PG"]], - "06030": [ - ["Orsano E Cammoro", "PG"], - ["Cammoro", "PG"], - ["Sellano", "PG"], - ["Giano Dell'Umbria", "PG"], - ["Valtopina", "PG"], - ["Bastardo", "PG"], - ], - "06031": [["Bevagna", "PG"], ["Cantalupo", "PG"]], - "06033": [["Cannara", "PG"]], - "06034": [ - ["Scafali", "PG"], - ["Sant'Eraclio", "PG"], - ["Annifo", "PG"], - ["Foligno", "PG"], - ["Capodacqua", "PG"], - ["Fiamenga", "PG"], - ["Rasiglia", "PG"], - ["Casenove", "PG"], - ["Verchiano", "PG"], - ["Scopoli", "PG"], - ["Colfiorito", "PG"], - ["Uppello", "PG"], - ["San Giovanni Profiamma", "PG"], - ["Scanzano", "PG"], - ["Sterpete", "PG"], - ["Pale", "PG"], - ["Perticani", "PG"], - ["Pieve Fanonica", "PG"], - ["Belfiore", "PG"], - ], - "06035": [ - ["San Terenziano", "PG"], - ["Collesecco", "PG"], - ["Pozzo Di Gualdo Cattaneo", "PG"], - ["Pozzo", "PG"], - ["Gualdo Cattaneo", "PG"], - ["Marcellano", "PG"], - ], - "06036": [["Montefalco", "PG"], ["Madonna Della Stella", "PG"], ["San Marco Di Montefalco", "PG"]], - "06038": [["Spello", "PG"], ["Capitan Loreto", "PG"]], - "06039": [ - ["Trevi", "PG"], - ["Cannaiola", "PG"], - ["Santa Maria In Valle", "PG"], - ["Matigge", "PG"], - ["Li Celli", "PG"], - ["Borgo Di Trevi", "PG"], - ], - "06040": [ - ["Piedipaterno", "PG"], - ["Piedipaterno Sul Nera", "PG"], - ["Ceselli", "PG"], - ["Sant'Anatolia Di Narco", "PG"], - ["Scheggino", "PG"], - ["Poggiodomo", "PG"], - ["Vallo Di Nera", "PG"], - ], - "06041": [["Borgo Cerreto", "PG"], ["Triponzo", "PG"], ["Cerreto Di Spoleto", "PG"], ["Bugiano", "PG"]], - "06042": [["Campello Sul Clitunno", "PG"]], - "06043": [["Cascia", "PG"], ["Chiavano", "PG"], ["Maltignano Di Cascia", "PG"]], - "06044": [["Castel Ritaldi", "PG"], ["Bruna", "PG"]], - "06045": [["Monteleone Di Spoleto", "PG"]], - "06046": [ - ["Ancarano", "PG"], - ["Agriano", "PG"], - ["San Pellegrino Di Norcia", "PG"], - ["Serravalle Di Norcia", "PG"], - ["Norcia", "PG"], - ["Serravalle", "PG"], - ["Castelluccio", "PG"], - ["Savelli Di Norcia", "PG"], - ], - "06047": [ - ["Abeto", "PG"], - ["Belforte", "PG"], - ["Todiano", "PG"], - ["Casali Belforte", "PG"], - ["Preci", "PG"], - ["Piedivalle", "PG"], - ["Roccanolfi", "PG"], - ], - "06049": [ - ["Montemartano", "PG"], - ["Baiano Di Spoleto", "PG"], - ["Bazzano Inferiore", "PG"], - ["Cortaccione", "PG"], - ["San Brizio", "PG"], - ["Maiano", "PG"], - ["Eggi", "PG"], - ["Morgnano", "PG"], - ["San Martino In Trignano", "PG"], - ["San Giacomo Di Spoleto", "PG"], - ["Terzo La Pieve", "PG"], - ["Madonna Di Baiano", "PG"], - ["Sant'Angelo In Mercole", "PG"], - ["Beroide", "PG"], - ["Spoleto", "PG"], - ["San Giovanni Di Baiano", "PG"], - ["San Giacomo", "PG"], - ["Strettura", "PG"], - ], - "06050": [["Collazzone", "PG"], ["Collepepe", "PG"], ["Piedicolle", "PG"], ["Casalalta", "PG"]], - "06051": [["Ripabianca", "PG"], ["Casalina", "PG"]], - "06053": [ - ["San Nicolo' Di Celle", "PG"], - ["San Niccolo' Di Celle", "PG"], - ["Deruta", "PG"], - ["Ponte Nuovo", "PG"], - ["Sant'Angelo Di Celle", "PG"], - ], - "06054": [["Fratta Todina", "PG"]], - "06055": [ - ["Papiano", "PG"], - ["San Valentino Della Collina", "PG"], - ["Marsciano", "PG"], - ["San Valentino", "PG"], - ], - "06056": [["Colpetrazzo", "PG"], ["Villa San Faustino", "PG"], ["Viepri", "PG"], ["Massa Martana", "PG"]], - "06057": [["Monte Castello Di Vibio", "PG"]], - "06059": [ - ["Todi", "PG"], - ["Camerata", "PG"], - ["Montenero Di Todi", "PG"], - ["Pantalla", "PG"], - ["Montenero", "PG"], - ["Canonica", "PG"], - ["Collevalenza", "PG"], - ["Izzalini", "PG"], - ["Ponterio", "PG"], - ["Ilci", "PG"], - ["Pontecuti", "PG"], - ["Pian Di San Martino", "PG"], - ["Monticello", "PG"], - ], - "06060": [["Villastrada Umbra", "PG"], ["Lisciano Niccone", "PG"], ["Paciano", "PG"]], - "06061": [ - ["Pozzuolo", "PG"], - ["Villastrada", "PG"], - ["Macchie", "PG"], - ["Castiglione Del Lago", "PG"], - ["Gioiella", "PG"], - ["Panicarola", "PG"], - ["Petrignano Del Lago", "PG"], - ["Sanfatucchio", "PG"], - ["Porto", "PG"], - ], - "06062": [ - ["Citta' Della Pieve", "PG"], - ["Salci", "PG"], - ["Po Bandino", "PG"], - ["Ponticelli", "PG"], - ["Ponticelli Citta' Della Pieve", "PG"], - ["Moiano", "PG"], - ], - "06063": [ - ["Soccorso", "PG"], - ["Agello", "PG"], - ["Villa", "PG"], - ["San Savino", "PG"], - ["San Feliciano", "PG"], - ["Sant'Arcangelo Di Magione", "PG"], - ["Magione", "PG"], - ["Sant'Arcangelo", "PG"], - ], - "06064": [["Panicale", "PG"]], - "06065": [["Castel Rigone", "PG"], ["Passignano Sul Trasimeno", "PG"]], - "06066": [["Pietrafitta", "PG"], ["Piegaro", "PG"], ["Castiglion Fosco", "PG"]], - "06068": [["Tavernelle", "PG"]], - "06069": [["Tuoro Sul Trasimeno", "PG"], ["Borghetto Di Tuoro", "PG"], ["Isola Maggiore", "PG"]], - "06070": [["Ellera", "PG"], ["San Mariano", "PG"], ["Ellera Umbra", "PG"]], - "06072": [ - ["Mercatello", "PG"], - ["San Biagio Della Valle", "PG"], - ["Migliano", "PG"], - ["Pieve Caina", "PG"], - ["Compignano", "PG"], - ["Castiglione Della Valle", "PG"], - ["Spina", "PG"], - ["Badiola", "PG"], - ], - "06073": [["Corciano", "PG"], ["Mantignana", "PG"]], - "06081": [ - ["Rivotorto", "PG"], - ["Assisi", "PG"], - ["Castelnuovo", "PG"], - ["Tordandrea", "PG"], - ["Santa Maria Degli Angeli", "PG"], - ["Assisi Santuario", "PG"], - ["Viole Di Assisi", "PG"], - ["Palazzo D'Assisi", "PG"], - ["Castelnuovo D'Assisi", "PG"], - ["Petrignano D'Assisi", "PG"], - ["San Vitale", "PG"], - ["Petrignano", "PG"], - ["Palazzo", "PG"], - ["Torchiagina", "PG"], - ], - "06083": [ - ["Costano", "PG"], - ["Ospedalicchio Di Bastia Umbra", "PG"], - ["Ospedalicchio", "PG"], - ["Bastia", "PG"], - ], - "06084": [["Bettona", "PG"], ["Passaggio Di Bettona", "PG"], ["Passaggio", "PG"]], - "06089": [["Torgiano", "PG"], ["Ponte Nuovo", "PG"], ["Brufa", "PG"], ["Fornaci", "PG"]], - "06100": [["Perugia", "PG"]], - "06121": [["Perugia", "PG"]], - "06122": [["Perugia", "PG"]], - "06123": [["Perugia", "PG"]], - "06124": [["Perugia", "PG"], ["Perugia Stazione", "PG"]], - "06125": [["Perugia", "PG"]], - "06126": [["Perugia", "PG"], ["Montecorneo", "PG"], ["Montebello", "PG"]], - "06127": [["Ferro Di Cavallo", "PG"], ["Perugia", "PG"]], - "06128": [["Perugia", "PG"], ["Ponte Della Pietra", "PG"]], - "06129": [["Prepo", "PG"], ["Perugia", "PG"]], - "06131": [["Perugia", "PG"], ["San Marco", "PG"]], - "06132": [["San Sisto", "PG"], ["Perugia", "PG"]], - "06134": [["Perugia", "PG"]], - "05010": [ - ["San Venanzo", "TR"], - ["Porano", "TR"], - ["Montegabbione", "TR"], - ["Parrano", "TR"], - ["Ospedaletto", "TR"], - ["Poggio Aquilone", "TR"], - ["Pornello", "TR"], - ["San Vito In Monte", "TR"], - ["Collelungo", "TR"], - ["Ripalvella", "TR"], - ], - "05011": [["Allerona Stazione", "TR"], ["Stazione Di Allerona", "TR"], ["Allerona", "TR"]], - "05012": [["Attigliano", "TR"]], - "05013": [["Castel Giorgio", "TR"]], - "05014": [["Castel Viscardo", "TR"], ["Monterubiaglio", "TR"], ["Pianlungo", "TR"]], - "05015": [["Fabro Scalo", "TR"], ["Fabro", "TR"], ["Carnaiola", "TR"]], - "05016": [["Sala", "TR"], ["Ficulle", "TR"]], - "05017": [["Santa Maria", "TR"], ["Monteleone D'Orvieto", "TR"]], - "05018": [ - ["Sugano", "TR"], - ["Ciconia", "TR"], - ["Corbara", "TR"], - ["Orvieto", "TR"], - ["Prodo", "TR"], - ["Canale Vecchio", "TR"], - ["Morrano Vecchio", "TR"], - ["Orvieto Stazione", "TR"], - ["Canale Nuovo", "TR"], - ["Sferracavallo", "TR"], - ["Titignano", "TR"], - ["Canale", "TR"], - ["Morrano Nuovo", "TR"], - ["Gabelletta", "TR"], - ["Morrano", "TR"], - ["Orvieto Scalo", "TR"], - ], - "05020": [ - ["Santa Restituta", "TR"], - ["Melezzole", "TR"], - ["Lugnano In Teverina", "TR"], - ["Dunarobba", "TR"], - ["Montecchio", "TR"], - ["Tenaglie", "TR"], - ["Sismano", "TR"], - ["Avigliano Umbro", "TR"], - ["Alviano", "TR"], - ], - "05021": [["Casigliano", "TR"], ["Acquasparta", "TR"], ["Portaria", "TR"]], - "05022": [ - ["Porchiano Del Monte", "TR"], - ["Montecampano", "TR"], - ["Porchiano", "TR"], - ["Amelia", "TR"], - ["Macchie", "TR"], - ["Fornole", "TR"], - ], - "05023": [["Civitella Del Lago", "TR"], ["Acqualoreto", "TR"], ["Baschi", "TR"], ["Morre", "TR"]], - "05024": [["Giove", "TR"]], - "05025": [["Guardea", "TR"]], - "05026": [ - ["Collesecco", "TR"], - ["Montecastrilli", "TR"], - ["Castel Dell'Aquila", "TR"], - ["Quadrelli", "TR"], - ["Casteltodino", "TR"], - ["Farnetta", "TR"], - ], - "05028": [["Penna In Teverina", "TR"]], - "05029": [["San Gemini", "TR"]], - "05030": [ - ["Polino", "TR"], - ["Poggio Di Otricoli", "TR"], - ["Fontechiaruccia", "TR"], - ["Montefranco", "TR"], - ["Otricoli", "TR"], - ], - "05031": [["Casteldilago", "TR"], ["Arrone", "TR"], ["Buonacquisto", "TR"]], - "05032": [["Santa Maria Della Neve", "TR"], ["Calvi Dell'Umbria", "TR"]], - "05034": [["Ferentillo", "TR"]], - "05035": [ - ["Taizzano", "TR"], - ["Narni", "TR"], - ["Vigne", "TR"], - ["Schifanoia", "TR"], - ["San Liberato", "TR"], - ["Montoro", "TR"], - ["Itieli", "TR"], - ["Narni Scalo", "TR"], - ["Borgaria Di Narni", "TR"], - ["Nera Montoro", "TR"], - ["Gualdo", "TR"], - ["San Vito", "TR"], - ["Gualdo Di Narni", "TR"], - ["Narni Stazione", "TR"], - ["Capitone", "TR"], - ["Vigne Di Narni", "TR"], - ["Ponte San Lorenzo", "TR"], - ["Stifone", "TR"], - ["Testaccio", "TR"], - ["Borgaria", "TR"], - ["Sant'Urbano", "TR"], - ], - "05039": [["Stroncone", "TR"]], - "05100": [ - ["Collestatte", "TR"], - ["Marmore", "TR"], - ["Cesi Di Terni", "TR"], - ["Miranda", "TR"], - ["Terni", "TR"], - ["Cesi", "TR"], - ["Gabelletta Di Cesi", "TR"], - ["Collestatte Piano", "TR"], - ["Collescipoli", "TR"], - ["Valenza", "TR"], - ["Cecalocco", "TR"], - ["Giuncano", "TR"], - ["Giuncano Scalo", "TR"], - ["Battiferro", "TR"], - ["Papigno", "TR"], - ["Piediluco", "TR"], - ["Rocca San Zenone", "TR"], - ["Torreorsina", "TR"], - ], - "11010": [ - ["Doues", "AO"], - ["Vieyes", "AO"], - ["Plan D'Introd", "AO"], - ["Valgrisenche", "AO"], - ["La Cretaz", "AO"], - ["Allein", "AO"], - ["Valpelline", "AO"], - ["Ollomont", "AO"], - ["Pre' Saint Didier", "AO"], - ["Runaz", "AO"], - ["Montan", "AO"], - ["Saint Maurice", "AO"], - ["Saint Pierre", "AO"], - ["Bionaz", "AO"], - ["Bosses", "AO"], - ["Verrand", "AO"], - ["Chesallet Sarre", "AO"], - ["Oyace", "AO"], - ["Saint Nicolas", "AO"], - ["Sarre", "AO"], - ["Rhemes Notre Dame", "AO"], - ["Aymavilles", "AO"], - ["Rhemes Saint Georges", "AO"], - ["Saint Rhemy En Bosses", "AO"], - ["Roisan", "AO"], - ["Angelin", "AO"], - ["Arensod", "AO"], - ["Introd", "AO"], - ["Chesallet", "AO"], - ["Valsavarenche", "AO"], - ["Gignod", "AO"], - ["Avise", "AO"], - ], - "11011": [["Leverogne", "AO"], ["Planaval", "AO"], ["Arvier", "AO"]], - "11012": [["Cogne", "AO"], ["Gimillian", "AO"], ["Epinel", "AO"]], - "11013": [["Dolonne", "AO"], ["Courmayeur", "AO"], ["Entreves", "AO"], ["La Saxe", "AO"]], - "11014": [["Etroubles", "AO"], ["Saint Oyen", "AO"]], - "11015": [["La Salle", "AO"], ["Derby", "AO"]], - "11016": [["La Thuile", "AO"]], - "11017": [["Morgex", "AO"]], - "11018": [["Villeneuve", "AO"]], - "11020": [ - ["La Place", "AO"], - ["Saint Barthelemy", "AO"], - ["Gressoney La Trinite'", "AO"], - ["Gaby", "AO"], - ["Antey Saint Andre'", "AO"], - ["Pontboset", "AO"], - ["Challand Saint Anselme", "AO"], - ["Ville", "AO"], - ["Peroulaz", "AO"], - ["Challand Saint Victor", "AO"], - ["Grand Villa Cravon", "AO"], - ["Etabloz", "AO"], - ["Saint Christophe", "AO"], - ["Blavy Nus", "AO"], - ["Perloz", "AO"], - ["Ville Sur Nus", "AO"], - ["Fontainemore", "AO"], - ["Verrayes", "AO"], - ["Nus", "AO"], - ["Saint Marcel", "AO"], - ["Plan Felinaz", "AO"], - ["Chef Lieu", "AO"], - ["Pont Suaz", "AO"], - ["Barme", "AO"], - ["Periasc", "AO"], - ["Issogne", "AO"], - ["Brissogne", "AO"], - ["Charvensod", "AO"], - ["Mongnod", "AO"], - ["La Magdeleine", "AO"], - ["Jovencan", "AO"], - ["Champoluc", "AO"], - ["Champdepraz", "AO"], - ["Villefranche", "AO"], - ["Quart", "AO"], - ["Villair", "AO"], - ["Antagnod", "AO"], - ["Buisson", "AO"], - ["Hone", "AO"], - ["Champorcher", "AO"], - ["Pollein", "AO"], - ["Blavy", "AO"], - ["Bard", "AO"], - ["Vert", "AO"], - ["Montjovet", "AO"], - ["Lignod", "AO"], - ["Issime", "AO"], - ["Torgnon", "AO"], - ["Fiernaz", "AO"], - ["Chez Croiset", "AO"], - ["Fenis", "AO"], - ["Neyran", "AO"], - ["Ayas", "AO"], - ["Grand Vert", "AO"], - ["Gressan", "AO"], - ["Donnas", "AO"], - ["Lillianes", "AO"], - ["Chamois", "AO"], - ["Emarese", "AO"], - ["Arnad", "AO"], - ["Grand Villa", "AO"], - ], - "11021": [["Breuil", "AO"], ["Breuil Cervinia", "AO"], ["Cervinia", "AO"]], - "11022": [["Arcesaz", "AO"], ["Brusson", "AO"], ["Extrepieraz", "AO"]], - "11023": [["Saint Denis", "AO"], ["Chambave", "AO"]], - "11024": [["Chatillon", "AO"], ["Ussel", "AO"], ["Pontey", "AO"], ["Lassolaz", "AO"]], - "11025": [["Gressoney Saint Jean", "AO"]], - "11026": [["Pont Saint Martin", "AO"]], - "11027": [["Moron", "AO"], ["Saint Vincent", "AO"]], - "11028": [["Valtournenche", "AO"], ["Paquier", "AO"]], - "11029": [["Verres", "AO"], ["Glair", "AO"]], - "11100": [ - ["Signayes", "AO"], - ["Porossan", "AO"], - ["Roisan", "AO"], - ["Excenex", "AO"], - ["Arpuilles", "AO"], - ["Aosta", "AO"], - ], - "32010": [ - ["Garna", "BL"], - ["Mareson", "BL"], - ["Ospitale Di Cadore", "BL"], - ["Zoppe' Di Cadore", "BL"], - ["Tignes", "BL"], - ["Lamosano", "BL"], - ["Tambre", "BL"], - ["Pecol", "BL"], - ["Podenzoi", "BL"], - ["Codissago", "BL"], - ["Termine", "BL"], - ["Soverzene", "BL"], - ["Zoldo Alto", "BL"], - ["Castello Lavazzo", "BL"], - ["Pieve D'Alpago", "BL"], - ["Termine Di Cadore", "BL"], - ["Perarolo Di Cadore", "BL"], - ["Chies D'Alpago", "BL"], - ], - "32012": [["Dont Di Zoldo", "BL"], ["Dont", "BL"], ["Dozza Di Zoldo", "BL"], ["Forno Di Zoldo", "BL"]], - "32013": [["Igne", "BL"], ["Longarone", "BL"], ["Fortogna", "BL"]], - "32014": [ - ["La Secca", "BL"], - ["Polpet", "BL"], - ["Col Di Cugnan", "BL"], - ["Paiane", "BL"], - ["Ponte Nelle Alpi", "BL"], - ["Cadola", "BL"], - ["Casan", "BL"], - ["Soccher", "BL"], - ], - "32015": [["Puos D'Alpago", "BL"], ["Cornei", "BL"]], - "32016": [["Farra D'Alpago", "BL"], ["Santa Croce", "BL"], ["Spert", "BL"], ["Santa Croce Del Lago", "BL"]], - "32020": [ - ["Tiser", "BL"], - ["Villapiana", "BL"], - ["Selva Di Cadore", "BL"], - ["Gosaldo", "BL"], - ["Limana", "BL"], - ["San Tomaso Agordino", "BL"], - ["Livinallongo Del Col Di Lana", "BL"], - ["Voltago Agordino", "BL"], - ["Colle Santa Lucia", "BL"], - ["La Valle Agordina", "BL"], - ["Falcade", "BL"], - ["Arabba", "BL"], - ["Avoscan", "BL"], - ["Rivamonte Agordino", "BL"], - ["Dussoi", "BL"], - ["Caviola", "BL"], - ["Ronchena", "BL"], - ["Vallada Agordina", "BL"], - ["Cencenighe Agordino", "BL"], - ["Canale D'Agordo", "BL"], - ["Frassene'", "BL"], - ["Pie' Falcade", "BL"], - ], - "32021": [["Agordo", "BL"]], - "32022": [["Caprile", "BL"], ["Alleghe", "BL"]], - "32023": [["Rocca Pietore", "BL"], ["Santa Maria Delle Grazie", "BL"], ["Laste Di Rocca Pietore", "BL"]], - "32026": [["Trichiana", "BL"], ["Lentiai", "BL"], ["Villa Di Villa", "BL"], ["Mel", "BL"]], - "32027": [["Taibon Agordino", "BL"]], - "32028": [["Sant'Antonio Tortal", "BL"]], - "32030": [ - ["San Gregorio Nelle Alpi", "BL"], - ["Busche", "BL"], - ["Rocca", "BL"], - ["Rocca D'Arsie'", "BL"], - ["Fastro", "BL"], - ["Arten", "BL"], - ["Cesiomaggiore", "BL"], - ["Seren Del Grappa", "BL"], - ["Mellame", "BL"], - ["Sovramonte", "BL"], - ["Arsie'", "BL"], - ["Fonzaso", "BL"], - ["Paderno", "BL"], - ["Soranzen", "BL"], - ["Sorriva", "BL"], - ], - "32031": [["Colmirano", "BL"], ["Fener", "BL"], ["Alano Di Piave", "BL"]], - "32032": [ - ["Villabruna", "BL"], - ["Mugnai", "BL"], - ["Anzu'", "BL"], - ["Umin", "BL"], - ["Tomo", "BL"], - ["Feltre", "BL"], - ["Foen", "BL"], - ["Villapaiera", "BL"], - ], - "32033": [["Lamon", "BL"], ["Arina", "BL"]], - "32034": [["Pedavena", "BL"], ["Facen", "BL"], ["Norcen", "BL"], ["Travagola", "BL"]], - "32035": [["Meano", "BL"], ["Formegan", "BL"], ["Santa Giustina", "BL"]], - "32036": [["Mas", "BL"], ["Bribano", "BL"], ["Roe Alte", "BL"], ["Sedico", "BL"]], - "32037": [["Sospirolo", "BL"], ["Mis", "BL"]], - "32038": [["Vas", "BL"], ["Quero Vas", "BL"], ["Quero", "BL"]], - "32040": [ - ["Dosoledo", "BL"], - ["Candide", "BL"], - ["Villaggio Turistico Di Borca Di Cadore", "BL"], - ["Venas", "BL"], - ["Valle Di Cadore", "BL"], - ["Lorenzago Di Cadore", "BL"], - ["Vallesella", "BL"], - ["Casamazzagno", "BL"], - ["Borca Di Cadore", "BL"], - ["Comelico Superiore", "BL"], - ["Presenaio", "BL"], - ["San Nicolo' Di Comelico", "BL"], - ["Laggio Di Cadore", "BL"], - ["Padola", "BL"], - ["Costalta", "BL"], - ["San Pietro Di Cadore", "BL"], - ["Danta Di Cadore", "BL"], - ["Pelos", "BL"], - ["Villapiccola", "BL"], - ["Vigo Di Cadore", "BL"], - ["Cibiana Di Cadore", "BL"], - ["Domegge Di Cadore", "BL"], - ["Pelos Di Cadore", "BL"], - ["Masarie'", "BL"], - ["Lozzo Di Cadore", "BL"], - ["Vodo Cadore", "BL"], - ], - "32041": [["Giralba", "BL"], ["Misurina", "BL"], ["Reane", "BL"], ["Auronzo Di Cadore", "BL"]], - "32042": [["Calalzo Di Cadore", "BL"]], - "32043": [["Acquabona", "BL"], ["Zuel", "BL"], ["Verocai", "BL"], ["Cortina D'Ampezzo", "BL"]], - "32044": [["Pozzale", "BL"], ["Tai Di Cadore", "BL"], ["Sottocastello", "BL"], ["Pieve Di Cadore", "BL"]], - "32045": [["Santo Stefano Di Cadore", "BL"], ["Campolongo Di Cadore", "BL"], ["Costalissoio", "BL"]], - "32046": [["Chiapuzza", "BL"], ["San Vito Di Cadore", "BL"]], - "32047": [["Granvilla", "BL"], ["Sappada", "BL"]], - "32100": [ - ["Salce", "BL"], - ["Sossai", "BL"], - ["Levego", "BL"], - ["Tisoi", "BL"], - ["Caleipo", "BL"], - ["Bolzano Di Belluno", "BL"], - ["Belluno", "BL"], - ["Visome", "BL"], - ["Antole", "BL"], - ["Fiammoi", "BL"], - ["Sois", "BL"], - ["Bes", "BL"], - ["Safforze", "BL"], - ["Castion", "BL"], - ], - "35010": [ - ["San Vito", "PD"], - ["Ronchi Di Campanile", "PD"], - ["Grantorto", "PD"], - ["Curtarolo", "PD"], - ["Ca' Baglioni", "PD"], - ["Cadoneghe", "PD"], - ["Loreggiola", "PD"], - ["Borgoricco", "PD"], - ["San Michele Delle Badesse", "PD"], - ["San Pietro In Gu", "PD"], - ["Cavino", "PD"], - ["Santa Maria Di Non", "PD"], - ["Perarolo", "PD"], - ["San Giorgio In Bosco", "PD"], - ["Villanova", "PD"], - ["Limena", "PD"], - ["Villa Del Conte", "PD"], - ["Vigodarzere", "PD"], - ["Ponterotto", "PD"], - ["Arsego", "PD"], - ["Santa Giustina In Colle", "PD"], - ["Fossalta Di Trebaseleghe", "PD"], - ["Villafranca Padovana", "PD"], - ["Campodoro", "PD"], - ["Codiverno", "PD"], - ["Tavo", "PD"], - ["Taggi'", "PD"], - ["Camazzole", "PD"], - ["Terraglione", "PD"], - ["Pieve", "PD"], - ["Mejaniga", "PD"], - ["Loreggia", "PD"], - ["Silvelle", "PD"], - ["Massanzago", "PD"], - ["Pionca", "PD"], - ["Villanova Di Camposampiero", "PD"], - ["Fratte", "PD"], - ["Pieve Di Curtarolo", "PD"], - ["San Giorgio Delle Pertiche", "PD"], - ["Sant'Ambrogio", "PD"], - ["Campo San Martino", "PD"], - ["Fossalta", "PD"], - ["Carmignano Di Brenta", "PD"], - ["Vigonza", "PD"], - ["Marsango", "PD"], - ["Saletto Di Vigodarzere", "PD"], - ["Abbazia Pisani", "PD"], - ["Trebaseleghe", "PD"], - ["Gazzo", "PD"], - ], - "35011": [["Sant'Andrea Di Campodarsego", "PD"], ["Campodarsego", "PD"]], - "35012": [["Rustega", "PD"], ["Camposampiero", "PD"]], - "35013": [["Santa Croce Bigolina", "PD"], ["Laghi", "PD"], ["Cittadella", "PD"]], - "35014": [["Fontaniva", "PD"]], - "35015": [["Galliera Veneta", "PD"]], - "35016": [["Presina", "PD"], ["Vaccarino", "PD"], ["Piazzola Sul Brenta", "PD"], ["Tremignon", "PD"]], - "35017": [["Piombino Dese", "PD"], ["Torreselle", "PD"], ["Levada", "PD"], ["Ronchi", "PD"]], - "35018": [["San Martino Di Lupari", "PD"]], - "35019": [["Onara", "PD"], ["Tombolo", "PD"]], - "35020": [ - ["Legnaro", "PD"], - ["Carrara San Giorgio", "PD"], - ["Tribano", "PD"], - ["Arzercavalli", "PD"], - ["Masera' Di Padova", "PD"], - ["Brugine", "PD"], - ["Polverara", "PD"], - ["Codevigo", "PD"], - ["Terradura", "PD"], - ["Casone", "PD"], - ["Due Carrare", "PD"], - ["Cive'", "PD"], - ["Correzzola", "PD"], - ["Candiana", "PD"], - ["Pozzonovo", "PD"], - ["Albignasego", "PD"], - ["Casalserugo", "PD"], - ["Campagnola", "PD"], - ["Arzergrande", "PD"], - ["Conche", "PD"], - ["Vallonga", "PD"], - ["Vigorovea", "PD"], - ["Saonara", "PD"], - ["Terrassa Padovana", "PD"], - ["San Pietro Viminario", "PD"], - ["Ponte San Nicolo'", "PD"], - ["Sant'Angelo Di Piove Di Sacco", "PD"], - ["Pernumia", "PD"], - ["Arre", "PD"], - ["Carrara Santo Stefano", "PD"], - ["Roncaglia", "PD"], - ["Bertipaglia", "PD"], - ["Sant'Agostino", "PD"], - ["Conche Di Codevigo", "PD"], - ["Mandriola", "PD"], - ["Villatora", "PD"], - ], - "35021": [["Agna", "PD"]], - "35022": [["Anguillara Veneta", "PD"], ["Borgoforte", "PD"]], - "35023": [["Le Casette", "PD"], ["San Siro", "PD"], ["Bagnoli Di Sopra", "PD"]], - "35024": [["Bovolenta", "PD"]], - "35025": [["Cagnola", "PD"], ["Cartura", "PD"]], - "35026": [["Conselve", "PD"]], - "35027": [["Oltre Brenta", "PD"], ["Noventa Padovana", "PD"]], - "35028": [["Arzerello", "PD"], ["Piove Di Sacco", "PD"], ["Piovega", "PD"], ["Corte", "PD"]], - "35029": [["Pontelongo", "PD"]], - "35030": [ - ["Cinto Euganeo", "PD"], - ["Baone", "PD"], - ["Rivadolmo", "PD"], - ["Caselle Di Selvazzano Dentro", "PD"], - ["Bosco", "PD"], - ["Veggiano", "PD"], - ["Tencarola", "PD"], - ["Cervarese Santa Croce", "PD"], - ["Valsanzibio", "PD"], - ["Vo' Vecchio", "PD"], - ["Villaguattera", "PD"], - ["Sarmeola", "PD"], - ["Feriole", "PD"], - ["Saccolongo", "PD"], - ["Bastia Di Rovolon", "PD"], - ["Rubano", "PD"], - ["Caselle", "PD"], - ["Fossona", "PD"], - ["Galzignano", "PD"], - ["Vo'", "PD"], - ["Rovolon", "PD"], - ["Bastia", "PD"], - ["Galzignano Terme", "PD"], - ["Selvazzano Dentro", "PD"], - ["Montemerlo", "PD"], - ], - "35031": [["Abano Terme", "PD"], ["Monteortone", "PD"]], - "35032": [["Arqua' Petrarca", "PD"]], - "35034": [["Lanzetta", "PD"], ["Lozzo Atestino", "PD"]], - "35035": [["Mestrino", "PD"], ["Arlesega", "PD"]], - "35036": [["Montegrotto Terme", "PD"]], - "35037": [ - ["Teolo", "PD"], - ["Treponti", "PD"], - ["Villa Di Teolo", "PD"], - ["Villa", "PD"], - ["San Biagio", "PD"], - ["Bresseo", "PD"], - ], - "35038": [["Torreglia", "PD"]], - "35040": [ - ["Barbona", "PD"], - ["San Fidenzio", "PD"], - ["Vescovana", "PD"], - ["Sant'Elena", "PD"], - ["Vighizzolo D'Este", "PD"], - ["Valli Mocenighe", "PD"], - ["Villa Estense", "PD"], - ["Masi", "PD"], - ["Megliadino San Fidenzio", "PD"], - ["Merlara", "PD"], - ["Piacenza D'Adige", "PD"], - ["Boara Pisani", "PD"], - ["Bresega", "PD"], - ["Valli Moceniche", "PD"], - ["Carmignano", "PD"], - ["Urbana", "PD"], - ["Colombare", "PD"], - ["Ponso", "PD"], - ["Casale Di Scodosia", "PD"], - ["Granze", "PD"], - ["Ca' Morosini", "PD"], - ["Megliadino San Vitale", "PD"], - ["Carceri", "PD"], - ["Santa Margherita D'Adige", "PD"], - ["Sant'Urbano", "PD"], - ["Castelbaldo", "PD"], - ], - "35041": [["Battaglia Terme", "PD"]], - "35042": [["Deserto", "PD"], ["Este", "PD"], ["Pilastro", "PD"]], - "35043": [["Costa Calcinara", "PD"], ["Monselice", "PD"], ["San Cosma", "PD"]], - "35044": [["Montagnana", "PD"]], - "35045": [["Ospedaletto Euganeo", "PD"]], - "35046": [["Saletto", "PD"]], - "35047": [["Solesino", "PD"]], - "35048": [["Stanghella", "PD"], ["Pisana", "PD"], ["Ponte Gorzone", "PD"]], - "35100": [["Padova", "PD"]], - "35121": [["Padova", "PD"]], - "35122": [["Padova", "PD"]], - "35123": [["Padova", "PD"]], - "35124": [["Padova", "PD"], ["Salboro", "PD"]], - "35125": [["Guizza", "PD"], ["Padova", "PD"]], - "35126": [["Padova", "PD"]], - "35127": [["Padova", "PD"], ["Camin", "PD"], ["Terranegra", "PD"]], - "35128": [["Padova", "PD"]], - "35129": [["Padova", "PD"], ["Mortise", "PD"], ["Ponte Di Brenta", "PD"]], - "35131": [["Padova", "PD"]], - "35132": [["Padova", "PD"]], - "35133": [["Padova", "PD"]], - "35134": [["Padova", "PD"]], - "35135": [["Padova", "PD"]], - "35136": [["Padova", "PD"]], - "35137": [["Padova", "PD"]], - "35138": [["Padova", "PD"], ["Monta'", "PD"]], - "35139": [["Padova", "PD"]], - "35141": [["Padova", "PD"]], - "35142": [["Padova", "PD"], ["Mandria", "PD"]], - "35143": [["Brusegana", "PD"], ["Padova", "PD"]], - "45010": [ - ["Rosolina", "RO"], - ["Rosolina Mare", "RO"], - ["Villadose", "RO"], - ["Ceregnano", "RO"], - ["Lama Pezzoli", "RO"], - ["Braglia", "RO"], - ["Lama Polesine", "RO"], - ["Pettorazza Grimani", "RO"], - ["Gavello", "RO"], - ["Canale", "RO"], - ["Papozze", "RO"], - ], - "45011": [ - ["Piantamelon", "RO"], - ["Baricetta", "RO"], - ["Adria", "RO"], - ["Valliera", "RO"], - ["Cavedon", "RO"], - ["Ca' Emo", "RO"], - ["Bottrighe", "RO"], - ["Fasana Polesine", "RO"], - ["Bellombra", "RO"], - ["Fasana", "RO"], - ["Cavanella Po", "RO"], - ["Passetto", "RO"], - ], - "45012": [ - ["Piano", "RO"], - ["Santa Maria In Punta", "RO"], - ["Grillara", "RO"], - ["Riva'", "RO"], - ["Ariano", "RO"], - ["San Basilio", "RO"], - ["Ariano Nel Polesine", "RO"], - ["Crociara", "RO"], - ], - "45014": [["Porto Viro", "RO"], ["Contarina", "RO"], ["Donada", "RO"], ["Villaregia", "RO"]], - "45015": [["Corbola", "RO"]], - "45017": [["Loreo", "RO"]], - "45018": [ - ["Scardovari", "RO"], - ["Ca' Tiepolo", "RO"], - ["Bonelli", "RO"], - ["Ca' Dolfin", "RO"], - ["Ca' Zuliani", "RO"], - ["Tolle", "RO"], - ["Gnocca", "RO"], - ["Porto Tolle", "RO"], - ["Donzella", "RO"], - ["Boccasette", "RO"], - ["Ivica", "RO"], - ["Ca' Venier", "RO"], - ], - "45019": [ - ["Mazzorno", "RO"], - ["Ca' Vendramin", "RO"], - ["Mazzorno Destro", "RO"], - ["Taglio Di Po", "RO"], - ["Polesinello", "RO"], - ], - "45020": [ - ["Lusia", "RO"], - ["San Bellino", "RO"], - ["Castelguglielmo", "RO"], - ["Cavazzana", "RO"], - ["Pincara", "RO"], - ["Zelo", "RO"], - ["Ca Morosini", "RO"], - ["Giacciano Con Baruchella", "RO"], - ["Villanova Del Ghebbo", "RO"], - ["Canda", "RO"], - ["Baruchella", "RO"], - ], - "45021": [["Salvaterra", "RO"], ["Badia Polesine", "RO"], ["Villa D'Adige", "RO"], ["Colombano", "RO"]], - "45022": [["Bagnolo Di Po", "RO"]], - "45023": [["Costa Di Rovigo", "RO"]], - "45024": [["Fiesso Umbertiano", "RO"]], - "45025": [["Fratta Polesine", "RO"]], - "45026": [ - ["Barbuglio", "RO"], - ["Ramodipalo Rasa", "RO"], - ["Saguedo", "RO"], - ["Ramodipalo", "RO"], - ["Lendinara", "RO"], - ], - "45027": [["Sariano", "RO"], ["Pissatola", "RO"], ["Trecenta", "RO"]], - "45030": [ - ["Guarda Veneta", "RO"], - ["Santa Maria Maddalena", "RO"], - ["Castelnovo Bariano", "RO"], - ["San Martino Di Venezze", "RO"], - ["Chiesa", "RO"], - ["Frassinelle Polesine", "RO"], - ["San Pietro Polesine", "RO"], - ["Pontecchio Polesine", "RO"], - ["Villanova Marchesana", "RO"], - ["Calto", "RO"], - ["Trona Di Sopra", "RO"], - ["Occhiobello", "RO"], - ["Gaiba", "RO"], - ["Beverare", "RO"], - ["Crespino", "RO"], - ["Salara", "RO"], - ["Villamarzana", "RO"], - ["Ceneselli", "RO"], - ], - "45031": [["Corne'", "RO"], ["Arqua' Polesine", "RO"]], - "45032": [["Bergantino", "RO"]], - "45033": [["Bosaro", "RO"]], - "45034": [["Canaro", "RO"], ["Paviole", "RO"]], - "45035": [["Castelmassa", "RO"]], - "45036": [["Ficarolo", "RO"]], - "45037": [["Santo Stefano", "RO"], ["Melara", "RO"]], - "45038": [["Raccano", "RO"], ["Polesella", "RO"]], - "45039": [["Sabbioni", "RO"], ["Stienta", "RO"], ["Zampine", "RO"]], - "45100": [ - ["Grignano Polesine", "RO"], - ["Boara Polesine", "RO"], - ["Mardimago", "RO"], - ["Roverdicre'", "RO"], - ["Concadirame", "RO"], - ["Sant'Apollinare Con Selva", "RO"], - ["Rovigo", "RO"], - ["Sant'Apollinare", "RO"], - ["Granzette", "RO"], - ["Borsea", "RO"], - ["Cantonazzo", "RO"], - ["Buso Sarzano", "RO"], - ], - "31010": [ - ["Fonte", "TV"], - ["Farra Di Soligo", "TV"], - ["San Michele Di Piave", "TV"], - ["Santa Maria Di Piave", "TV"], - ["Ponte Della Priula", "TV"], - ["Fonte Alto", "TV"], - ["Soligo", "TV"], - ["Monfumo", "TV"], - ["Santa Maria Del Piave", "TV"], - ["One'", "TV"], - ["Maser", "TV"], - ["Pianzano", "TV"], - ["Cimadolmo", "TV"], - ["Mosnigo", "TV"], - ["Godega Di Sant'Urbano", "TV"], - ["Col San Martino", "TV"], - ["Orsago", "TV"], - ["Bibano", "TV"], - ["Moriago Della Battaglia", "TV"], - ["Fregona", "TV"], - ["Crespignaga", "TV"], - ["Mareno Di Piave", "TV"], - ["Colfosco", "TV"], - ["Osigo", "TV"], - ["Priula", "TV"], - ["Muliparte", "TV"], - ], - "31011": [["Casella D'Asolo", "TV"], ["Asolo", "TV"], ["Pagnano", "TV"], ["Villa D'Asolo", "TV"]], - "31012": [["Cappella Maggiore", "TV"], ["Anzano", "TV"]], - "31013": [["Roverbasso", "TV"], ["Cimetta", "TV"], ["Codogne'", "TV"]], - "31014": [["San Martino Di Colle Umberto", "TV"], ["San Martino", "TV"], ["Colle Umberto", "TV"]], - "31015": [["Conegliano", "TV"], ["Scomigo", "TV"], ["Collalbrigo", "TV"]], - "31016": [["Villa Di Villa", "TV"], ["Cordignano", "TV"]], - "31017": [["Crespano Del Grappa", "TV"], ["Paderno Del Grappa", "TV"]], - "31018": [["Gaiarine", "TV"], ["Campomolino", "TV"], ["Francenigo", "TV"], ["Albina", "TV"]], - "31020": [ - ["Villorba", "TV"], - ["Zoppe'", "TV"], - ["Cosniga", "TV"], - ["Liedolo", "TV"], - ["Tarzo", "TV"], - ["Fossamerlo", "TV"], - ["Revine", "TV"], - ["Revine Lago", "TV"], - ["San Vendemiano", "TV"], - ["Corbanese", "TV"], - ["Bagnolo", "TV"], - ["San Fior Di Sotto", "TV"], - ["San Zenone Degli Ezzelini", "TV"], - ["Sernaglia Della Battaglia", "TV"], - ["Vidor", "TV"], - ["San Pietro Di Feletto", "TV"], - ["San Polo Di Piave", "TV"], - ["Castello Roganzuolo", "TV"], - ["Refrontolo", "TV"], - ["San Fior Di Sopra", "TV"], - ["Lancenigo", "TV"], - ["San Fior", "TV"], - ["Ca' Rainati", "TV"], - ["Lago", "TV"], - ["Falze' Di Piave", "TV"], - ["Rua", "TV"], - ], - "31021": [ - ["Zerman", "TV"], - ["Bonisiolo", "TV"], - ["Campocroce", "TV"], - ["Mogliano Veneto", "TV"], - ["Marocco", "TV"], - ], - "31022": [ - ["Sambughe", "TV"], - ["Preganziol", "TV"], - ["San Trovaso", "TV"], - ["Frescada", "TV"], - ["Borgo Verde", "TV"], - ], - "31023": [["Castelminio", "TV"], ["San Marco", "TV"], ["Resana", "TV"]], - "31024": [["Ormelle", "TV"], ["Roncadelle", "TV"]], - "31025": [["Santa Lucia Di Piave", "TV"]], - "31026": [["Sarmede", "TV"], ["Montaner", "TV"]], - "31027": [["Spresiano", "TV"], ["Lovadina", "TV"], ["Visnadello", "TV"]], - "31028": [["Vazzola", "TV"], ["Tezze", "TV"], ["Visna'", "TV"]], - "31029": [ - ["Fadalto", "TV"], - ["San Giacomo Di Veglia", "TV"], - ["San Floriano", "TV"], - ["Cozzuolo", "TV"], - ["Nove", "TV"], - ["Carpesica", "TV"], - ["Vittorio Veneto", "TV"], - ], - "31030": [ - ["Borso Del Grappa", "TV"], - ["Pero", "TV"], - ["Caselle Di Altivole", "TV"], - ["Dosson", "TV"], - ["Carbonera", "TV"], - ["San Vito Di Altivole", "TV"], - ["Saletto", "TV"], - ["Valla'", "TV"], - ["Casier", "TV"], - ["Cison Di Valmarino", "TV"], - ["Sant'Eulalia", "TV"], - ["Mignagola", "TV"], - ["Arcade", "TV"], - ["Vacil", "TV"], - ["Tovena", "TV"], - ["Semonzo", "TV"], - ["Castelcucco", "TV"], - ["Altivole", "TV"], - ["Castello Di Godego", "TV"], - ["San Bartolomeo", "TV"], - ["Breda Di Piave", "TV"], - ], - "31031": [["Caerano Di San Marco", "TV"]], - "31032": [["Lughignano", "TV"], ["Casale Sul Sile", "TV"], ["Conscio", "TV"]], - "31033": [ - ["Salvatronda", "TV"], - ["Salvarosa", "TV"], - ["Castelfranco Veneto", "TV"], - ["Sant'Andrea", "TV"], - ["Villarazzo", "TV"], - ], - "31034": [["Cavaso Del Tomba", "TV"]], - "31035": [["Ciano Del Montello", "TV"], ["Ciano", "TV"], ["Crocetta Del Montello", "TV"]], - "31036": [["Istrana", "TV"], ["Ospedaletto", "TV"], ["Pezzan", "TV"], ["Sala", "TV"]], - "31037": [["Ramon Campagna", "TV"], ["Loria", "TV"], ["Castione", "TV"], ["Bessica", "TV"]], - "31038": [ - ["Paese", "TV"], - ["Padernello", "TV"], - ["Castagnole", "TV"], - ["Porcellengo", "TV"], - ["Postioma", "TV"], - ], - "31039": [["Riese Pio X", "TV"], ["Poggiana", "TV"], ["Spineda", "TV"]], - "31040": [ - ["Portobuffole'", "TV"], - ["Pederobba", "TV"], - ["Campo Di Pietra", "TV"], - ["Santi Angeli", "TV"], - ["Musano Di Trevignano", "TV"], - ["Segusino", "TV"], - ["Volpago Del Montello", "TV"], - ["Bavaria", "TV"], - ["Salgareda", "TV"], - ["Venegazzu'", "TV"], - ["Giavera Del Montello", "TV"], - ["Campo Di Pietra Di Salgareda", "TV"], - ["Mansue'", "TV"], - ["Covolo", "TV"], - ["Cessalto", "TV"], - ["Onigo", "TV"], - ["Falze'", "TV"], - ["Selva Del Montello", "TV"], - ["Meduna Di Livenza", "TV"], - ["Signoressa", "TV"], - ["Fossalta Maggiore", "TV"], - ["Santi Angeli Del Montello", "TV"], - ["Trevignano", "TV"], - ["Gorgo Al Monticano", "TV"], - ["Nervesa Della Battaglia", "TV"], - ["Cusignana", "TV"], - ["Chiarano", "TV"], - ["Musano", "TV"], - ], - "31041": [["Cornuda", "TV"]], - "31042": [["Fagare' Della Battaglia", "TV"], ["Fagare'", "TV"]], - "31043": [["Lutrano", "TV"], ["Fontanelle", "TV"]], - "31044": [["Biadene", "TV"], ["Montebelluna", "TV"]], - "31045": [["Motta Di Livenza", "TV"]], - "31046": [["Fae'", "TV"], ["Oderzo", "TV"], ["Rustigne'", "TV"], ["Piavon", "TV"]], - "31047": [["Negrisia", "TV"], ["Ponte Di Piave", "TV"], ["Levada", "TV"]], - "31048": [ - ["Cavrie", "TV"], - ["Spercenigo", "TV"], - ["Olmi", "TV"], - ["Olmi Di Treviso", "TV"], - ["San Biagio Di Callalta", "TV"], - ], - "31049": [ - ["San Vito Di Valdobbiadene", "TV"], - ["Bigolino", "TV"], - ["San Pietro Di Barbozza", "TV"], - ["Valdobbiadene", "TV"], - ["Guia", "TV"], - ["Pianezze", "TV"], - ["Santo Stefano", "TV"], - ], - "31050": [ - ["Santandra'", "TV"], - ["Morgano", "TV"], - ["Combai", "TV"], - ["Zenson Di Piave", "TV"], - ["Fossalunga", "TV"], - ["Carpenedo", "TV"], - ["Miane", "TV"], - ["Cavasagra Di Vedelago", "TV"], - ["Vedelago", "TV"], - ["Fanzolo", "TV"], - ["Albaredo", "TV"], - ["Vascon", "TV"], - ["Barcon", "TV"], - ["Camalo'", "TV"], - ["Badoere", "TV"], - ["Povegliano", "TV"], - ["Casacorba", "TV"], - ["Premaor", "TV"], - ["Ponzano Veneto", "TV"], - ["Cavasagra", "TV"], - ["Monastier Di Treviso", "TV"], - ], - "31051": [["Valmareno", "TV"], ["Follina", "TV"], ["Pedeguarda", "TV"]], - "31052": [["Varago", "TV"], ["Maserada Sul Piave", "TV"], ["Candelu'", "TV"]], - "31053": [["Pieve Di Soligo", "TV"], ["Barbisano", "TV"], ["Solighetto", "TV"]], - "31054": [["Possagno", "TV"]], - "31055": [["Quinto Di Treviso", "TV"], ["Santa Cristina", "TV"]], - "31056": [["Musestre", "TV"], ["San Cipriano", "TV"], ["Roncade", "TV"], ["Biancade", "TV"]], - "31057": [["Cendon", "TV"], ["Silea", "TV"], ["Sant'Elena", "TV"]], - "31058": [["Susegana", "TV"]], - "31059": [["Scandolara", "TV"], ["Zero Branco", "TV"], ["Sant'Alberto", "TV"]], - "31100": [ - ["Treviso", "TV"], - ["Fiera", "TV"], - ["Selvana Bassa", "TV"], - ["Monigo", "TV"], - ["Santa Maria Della Rovere", "TV"], - ["Canizzano", "TV"], - ], - "30010": [ - ["Lughetto", "VE"], - ["Campolongo Maggiore", "VE"], - ["Cona", "VE"], - ["Campagna Lupia", "VE"], - ["Lova", "VE"], - ["Pegolotte", "VE"], - ["Cantarana", "VE"], - ["Camponogara", "VE"], - ["Liettoli", "VE"], - ["Bojon", "VE"], - ], - "30013": [ - ["Ca' Pasquali", "VE"], - ["Cavallino Treporti", "VE"], - ["Cavallino", "VE"], - ["Treporti", "VE"], - ["Ca' Ballarin", "VE"], - ["Ca' Savio", "VE"], - ], - "30014": [ - ["Rottanova", "VE"], - ["Rottanova Di Cavarzere", "VE"], - ["Cavarzere", "VE"], - ["San Pietro", "VE"], - ["Boscochiaro", "VE"], - ["Villaggio Busonera", "VE"], - ["San Pietro Di Cavarzere", "VE"], - ], - "30015": [ - ["Valli", "VE"], - ["Sant'Anna", "VE"], - ["Ca' Bianca", "VE"], - ["Sottomarina", "VE"], - ["Chioggia", "VE"], - ["Sant'Anna Di Chioggia", "VE"], - ["Cavanella D'Adige", "VE"], - ], - "30016": [["Iesolo", "VE"], ["Lido Di Iesolo", "VE"]], - "30020": [ - ["Eraclea Mare", "VE"], - ["Torre Di Mosto", "VE"], - ["Giai", "VE"], - ["Cinto Caomaggiore", "VE"], - ["Stretti", "VE"], - ["Pramaggiore", "VE"], - ["Stretti Di Eraclea", "VE"], - ["Portegrandi", "VE"], - ["Belfiore", "VE"], - ["Marcon", "VE"], - ["Torre Di Fine", "VE"], - ["Meolo", "VE"], - ["Noventa Di Piave", "VE"], - ["Loncon", "VE"], - ["Pramaggiore Blessaglia", "VE"], - ["Quarto D'Altino", "VE"], - ["Fossalta Di Piave", "VE"], - ["Annone Veneto", "VE"], - ["Gruaro", "VE"], - ["Gaggio", "VE"], - ["Losson Della Battaglia", "VE"], - ["San Liberale", "VE"], - ["Bagnara", "VE"], - ["Eraclea", "VE"], - ["Ponte Crepaldo", "VE"], - ], - "30021": [ - ["Ca' Corniani", "VE"], - ["San Giorgio Di Livenza", "VE"], - ["San Gaetano", "VE"], - ["Caorle", "VE"], - ["Porto Santa Margherita", "VE"], - ], - "30022": [["Ceggia", "VE"]], - "30023": [["Concordia Sagittaria", "VE"], ["Sindacale", "VE"]], - "30024": [["Croce", "VE"], ["Musile Di Piave", "VE"]], - "30025": [ - ["Cintello", "VE"], - ["Teglio Veneto", "VE"], - ["Fossalta Di Portogruaro", "VE"], - ["Fratta", "VE"], - ["Villanova Santa Margherita", "VE"], - ], - "30026": [["Lugugnana", "VE"], ["Summaga", "VE"], ["Pradipozzo", "VE"], ["Portogruaro", "VE"]], - "30027": [["Passarella", "VE"], ["Calvecchia", "VE"], ["San Dona' Di Piave", "VE"]], - "30028": [ - ["Bibione", "VE"], - ["Cesarolo", "VE"], - ["San Giorgio Al Tagliamento", "VE"], - ["Bibione Pineda", "VE"], - ["Pozzi San Michele Tagliamento", "VE"], - ["San Michele Al Tagliamento", "VE"], - ["Pozzi", "VE"], - ], - "30029": [["La Salute Di Livenza", "VE"], ["Corbolone", "VE"], ["Santo Stino Di Livenza", "VE"]], - "30030": [ - ["Fosso'", "VE"], - ["Martellago", "VE"], - ["Sandon", "VE"], - ["Maerne", "VE"], - ["Olmo Di Martellago", "VE"], - ["Galta", "VE"], - ["Salzano", "VE"], - ["Olmo", "VE"], - ["Tombelle", "VE"], - ["Pianiga", "VE"], - ["Cazzago Di Pianiga", "VE"], - ["Robegano", "VE"], - ["Vigonovo", "VE"], - ["Cazzago", "VE"], - ], - "30031": [["Arino", "VE"], ["Sambruson", "VE"], ["Dolo", "VE"]], - "30032": [["Fiesso D'Artico", "VE"]], - "30033": [["Moniego", "VE"], ["Cappelletta", "VE"], ["Moniego Di Noale", "VE"], ["Noale", "VE"]], - "30034": [ - ["Gambarare", "VE"], - ["Marano", "VE"], - ["Marano Veneziano", "VE"], - ["Mira Porte", "VE"], - ["Oriago", "VE"], - ["Borbiago", "VE"], - ["Mira Taglio", "VE"], - ["Mira", "VE"], - ], - "30035": [["Ballo'", "VE"], ["Zianigo", "VE"], ["Mirano", "VE"], ["Vetrego", "VE"], ["Scaltenigo", "VE"]], - "30036": [ - ["Caltana", "VE"], - ["Santa Maria Di Sala", "VE"], - ["Veternigo", "VE"], - ["Stigliano", "VE"], - ["Sant'Angelo", "VE"], - ], - "30037": [["Peseggia", "VE"], ["Scorze'", "VE"], ["Rio San Martino", "VE"]], - "30038": [["Fornase", "VE"], ["Orgnano", "VE"], ["Spinea", "VE"]], - "30039": [["San Pietro Di Stra'", "VE"], ["Stra", "VE"], ["Paluello", "VE"]], - "30100": [["Venezia", "VE"]], - "30121": [["Venezia", "VE"], ["Cannaregio", "VE"]], - "30122": [["Sant'Elena", "VE"], ["Venezia", "VE"], ["Castello", "VE"]], - "30123": [["Venezia", "VE"], ["Dorsoduro", "VE"]], - "30124": [["Venezia", "VE"], ["San Marco", "VE"]], - "30125": [["San Polo", "VE"], ["Venezia", "VE"]], - "30126": [ - ["Venezia", "VE"], - ["Malamocco", "VE"], - ["Lido", "VE"], - ["Alberoni", "VE"], - ["Portosecco", "VE"], - ["San Pietro In Volta", "VE"], - ["Vianelli", "VE"], - ["Zennari", "VE"], - ["Scarpa", "VE"], - ["Lido Di Venezia", "VE"], - ["Busetti", "VE"], - ], - "30131": [["Venezia", "VE"]], - "30132": [["Venezia", "VE"], ["Sant'Elena", "VE"]], - "30133": [["Sacca Fisola", "VE"], ["Venezia", "VE"], ["Giudecca", "VE"]], - "30135": [["Santa Croce", "VE"], ["Venezia", "VE"]], - "30141": [["Venezia", "VE"], ["Murano", "VE"]], - "30142": [ - ["Mazzorbo", "VE"], - ["San Martino Destra", "VE"], - ["Burano", "VE"], - ["San Martino Sinistra", "VE"], - ["Giudecca Di Burano", "VE"], - ["Terranova", "VE"], - ["San Mauro", "VE"], - ], - "30170": [["Venezia Mestre", "VE"]], - "30171": [["Mestre", "VE"]], - "30172": [["Mestre", "VE"]], - "30173": [["Campalto", "VE"], ["Mestre", "VE"], ["Venezia", "VE"], ["Villaggio San Marco", "VE"]], - "30174": [["Zelarino", "VE"], ["Gazzera", "VE"], ["Mestre", "VE"]], - "30175": [["Mestre", "VE"], ["Ca' Emiliani", "VE"], ["Carpenedo", "VE"], ["Marghera", "VE"]], - "36010": [ - ["Camporovere", "VI"], - ["Chiuppano", "VI"], - ["Seghe Di Velo", "VI"], - ["Mezzaselva Di Roana", "VI"], - ["Cavazzale", "VI"], - ["Laghi", "VI"], - ["Cesuna", "VI"], - ["Velo", "VI"], - ["Roana", "VI"], - ["Carre'", "VI"], - ["Canove Di Roana", "VI"], - ["Cogollo Del Cengio", "VI"], - ["Monticello Conte Otto", "VI"], - ["Tresche' Conca", "VI"], - ["Rotzo", "VI"], - ["Seghe", "VI"], - ["Foza", "VI"], - ["Vigardolo", "VI"], - ["Zane'", "VI"], - ["Posina", "VI"], - ["Velo D'Astico", "VI"], - ], - "36011": [["Arsiero", "VI"], ["Castana", "VI"]], - "36012": [["Rigoni", "VI"], ["Rodeghieri", "VI"], ["Asiago", "VI"], ["Sasso", "VI"]], - "36013": [["Piovene Rocchette", "VI"]], - "36014": [["Santorso", "VI"]], - "36015": [ - ["Monte Magre'", "VI"], - ["Giavenale", "VI"], - ["Sant'Ulderico Di Tretto", "VI"], - ["Magre' Di Schio", "VI"], - ["Schio", "VI"], - ["Tretto", "VI"], - ["Sant'Ulderico", "VI"], - ], - "36016": [["Thiene", "VI"], ["Rozzampia", "VI"]], - "36020": [ - ["Zovencedo", "VI"], - ["San Marino", "VI"], - ["Solagna", "VI"], - ["Albettone", "VI"], - ["Campiglia Dei Berici", "VI"], - ["Agugliaro", "VI"], - ["Ponte Di Castegnero", "VI"], - ["Villaganzerla", "VI"], - ["Primolano", "VI"], - ["Asigliano Veneto", "VI"], - ["Pove Del Grappa", "VI"], - ["Castegnero", "VI"], - ["Carpane'", "VI"], - ], - "36021": [["Villaga", "VI"], ["Ponte Di Barbarano", "VI"], ["Barbarano Vicentino", "VI"]], - "36022": [["San Giuseppe", "VI"], ["San Zeno", "VI"], ["San Giuseppe Di Cassola", "VI"], ["Cassola", "VI"]], - "36023": [["Longare", "VI"], ["Lumignano", "VI"], ["Bugano", "VI"]], - "36024": [["Mossano", "VI"], ["Nanto", "VI"], ["Ponte Di Nanto", "VI"]], - "36025": [["Noventa Vicentina", "VI"]], - "36026": [["Cagnano", "VI"], ["Poiana Maggiore", "VI"]], - "36027": [["Rosa'", "VI"]], - "36028": [["Rossano Veneto", "VI"]], - "36029": [ - ["Campolongo Sul Brenta", "VI"], - ["Valstagna", "VI"], - ["San Nazario", "VI"], - ["Cismon Del Grappa", "VI"], - ], - "36030": [ - ["Lugo Di Vicenza", "VI"], - ["Cresole", "VI"], - ["Sarcedo", "VI"], - ["Fara Vicentino", "VI"], - ["Novoledo", "VI"], - ["Zugliano", "VI"], - ["Grumolo Pedemonte", "VI"], - ["Priabona", "VI"], - ["Sant'Antonio", "VI"], - ["Leva' Di Montecchio Precalcino", "VI"], - ["Villaverla", "VI"], - ["Caltrano", "VI"], - ["Staro", "VI"], - ["Calvene", "VI"], - ["Montecchio Precalcino", "VI"], - ["Monte Di Malo", "VI"], - ["Rettorgole", "VI"], - ["Sant'Antonio Valli", "VI"], - ["Valli Del Pasubio", "VI"], - ["Motta", "VI"], - ["San Vito Di Leguzzano", "VI"], - ["Costabissara", "VI"], - ["Leva'", "VI"], - ["Preara", "VI"], - ["San Giorgio Di Perlena", "VI"], - ["Centrale", "VI"], - ["Caldogno", "VI"], - ], - "36031": [["Dueville", "VI"], ["Povolaro", "VI"]], - "36032": [["Gallio", "VI"]], - "36033": [["Isola Vicentina", "VI"], ["Castelnovo", "VI"]], - "36034": [["Malo", "VI"], ["San Tomio", "VI"]], - "36035": [["Marano Vicentino", "VI"]], - "36036": [["Torrebelvicino", "VI"], ["Pievebelvicino", "VI"]], - "36040": [ - ["Orgiano", "VI"], - ["Lastebasse", "VI"], - ["Pedescala", "VI"], - ["Poiana Di Granfion", "VI"], - ["Valdastico", "VI"], - ["Casotto", "VI"], - ["Lerino", "VI"], - ["Pedemonte", "VI"], - ["Brendola", "VI"], - ["Pederiva", "VI"], - ["San Pietro Valdastico", "VI"], - ["Marola", "VI"], - ["Sossano", "VI"], - ["Laverda", "VI"], - ["Sarego", "VI"], - ["Grancona", "VI"], - ["Grisignano Di Zocco", "VI"], - ["Salcedo", "VI"], - ["Grumolo Delle Abbadesse", "VI"], - ["Vo'", "VI"], - ["San Germano Dei Berici", "VI"], - ["Monticello Di Fara", "VI"], - ["Meledo", "VI"], - ["Tonezza Del Cimone", "VI"], - ["Barcarola", "VI"], - ["Torri Di Quartesolo", "VI"], - ], - "36042": [["Mirabella", "VI"], ["Maragnole", "VI"], ["Breganze", "VI"]], - "36043": [["Camisano Vicentino", "VI"]], - "36045": [ - ["Lonigo", "VI"], - ["Bagnolo Di Lonigo", "VI"], - ["Bagnolo", "VI"], - ["Almisano", "VI"], - ["Alonte", "VI"], - ], - "36046": [["Santa Caterina", "VI"], ["Conco", "VI"], ["Lusiana", "VI"]], - "36047": [["Montegalda", "VI"], ["Montegaldella", "VI"]], - "36050": [ - ["Bolzano Vicentino", "VI"], - ["Monteviale", "VI"], - ["Friola", "VI"], - ["Villaggio Montegrappa", "VI"], - ["Pozzoleone", "VI"], - ["Lanze'", "VI"], - ["Bressanvido", "VI"], - ["Zermeghedo", "VI"], - ["Poianella", "VI"], - ["Sovizzo", "VI"], - ["Cartigliano", "VI"], - ["Ospedaletto", "VI"], - ["Montorso Vicentino", "VI"], - ["Quinto Vicentino", "VI"], - ["Lisiera", "VI"], - ["Gambugliano", "VI"], - ], - "36051": [["Olmo", "VI"], ["Creazzo", "VI"]], - "36052": [["Enego", "VI"], ["Stoner", "VI"]], - "36053": [["Gambellara", "VI"]], - "36054": [["Montebello Vicentino", "VI"]], - "36055": [["Nove", "VI"]], - "36056": [["Tezze Sul Brenta", "VI"], ["Belvedere", "VI"]], - "36057": [ - ["Tormeno", "VI"], - ["Arcugnano", "VI"], - ["Pianezze Del Lago", "VI"], - ["Nogarazza", "VI"], - ["Torri D'Arcugnano", "VI"], - ], - "36060": [ - ["Fellette Di Romano D'Ezzellino", "VI"], - ["Fellette", "VI"], - ["Romano D'Ezzelino", "VI"], - ["Villa Di Molvena", "VI"], - ["Spin", "VI"], - ["Pianezze", "VI"], - ["Longa", "VI"], - ["Schiavon", "VI"], - ], - "36061": [["Valrovina", "VI"], ["Bassano Del Grappa", "VI"], ["Campese", "VI"]], - "36062": [["Fontanelle", "VI"]], - "36063": [["Valle San Floriano", "VI"], ["Marostica", "VI"], ["Vallonara", "VI"], ["Crosara", "VI"]], - "36064": [["Molvena", "VI"], ["Mason Vicentino", "VI"], ["Villaraspa", "VI"]], - "36065": [["Mussolente", "VI"], ["Casoni", "VI"]], - "36066": [["Sandrigo", "VI"]], - "36070": [ - ["Molino Di Altissimo", "VI"], - ["Altissimo", "VI"], - ["Molino", "VI"], - ["Brogliano", "VI"], - ["Lovara", "VI"], - ["Ferrazza", "VI"], - ["Trissino", "VI"], - ["San Pietro Mussolino", "VI"], - ["San Pietro Vecchio", "VI"], - ["Crespadoro", "VI"], - ["Nogarole Vicentino", "VI"], - ["Castelgomberto", "VI"], - ], - "36071": [["Pugnello", "VI"], ["Arzignano", "VI"], ["Tezze", "VI"]], - "36072": [["Chiampo", "VI"]], - "36073": [["Cereda", "VI"], ["Cornedo Vicentino", "VI"]], - "36075": [ - ["Montecchio Maggiore", "VI"], - ["Alte Di Montecchio Maggiore", "VI"], - ["Alte Ceccato", "VI"], - ["Sant'Urbano", "VI"], - ], - "36076": [["Rovegliana", "VI"], ["Recoaro Terme", "VI"]], - "36077": [["Valmarana", "VI"], ["Altavilla Vicentina", "VI"], ["Tavernelle Vicentina", "VI"]], - "36078": [ - ["Maglio Di Sopra", "VI"], - ["Novale", "VI"], - ["Castelvecchio", "VI"], - ["Valdagno", "VI"], - ["Piana", "VI"], - ["San Quirico", "VI"], - ], - "36100": [ - ["Vicenza", "VI"], - ["Setteca'", "VI"], - ["Anconetta", "VI"], - ["Longara", "VI"], - ["Polegge", "VI"], - ["Campedello", "VI"], - ], - "37010": [ - ["Brenzone", "VR"], - ["Albare' Stazione", "VR"], - ["Albare'", "VR"], - ["Torri Del Benaco", "VR"], - ["Costermano", "VR"], - ["Magugnano", "VR"], - ["San Zeno Di Montagna", "VR"], - ["Piovezzano", "VR"], - ["Rivoli Veronese", "VR"], - ["Castelletto Di Brenzone", "VR"], - ["Sega", "VR"], - ["Sega Di Cavaion", "VR"], - ["Affi", "VR"], - ["San Zeno", "VR"], - ["Cavaion Veronese", "VR"], - ["Castion Veronese", "VR"], - ["Pastrengo", "VR"], - ], - "37011": [["Cisano", "VR"], ["Calmasino", "VR"], ["Bardolino", "VR"]], - "37012": [["Bussolengo", "VR"], ["San Vito Al Mantico", "VR"]], - "37013": [["Pesina", "VR"], ["Spiazzi", "VR"], ["Caprino Veronese", "VR"], ["Boi", "VR"]], - "37014": [["Oliosi", "VR"], ["Castelnuovo Del Garda", "VR"], ["Sandra'", "VR"], ["Cavalcaselle", "VR"]], - "37015": [["Gargagnago", "VR"], ["Domegliara", "VR"], ["Monte", "VR"], ["Sant'Ambrogio Di Valpolicella", "VR"]], - "37016": [["Garda", "VR"]], - "37017": [["Lazise", "VR"], ["Cola' Di Lazise", "VR"], ["Cola'", "VR"], ["Pacengo", "VR"]], - "37018": [["Cassone", "VR"], ["Malcesine", "VR"]], - "37019": [["Peschiera Del Garda", "VR"], ["San Benedetto Di Lugana", "VR"]], - "37020": [ - ["Rivalta", "VR"], - ["Valgatara", "VR"], - ["Sant'Anna D'Alfaedo", "VR"], - ["Belluno Veronese", "VR"], - ["Peri", "VR"], - ["Cerro Veronese", "VR"], - ["Brentino Belluno", "VR"], - ["Ferrara Di Monte Baldo", "VR"], - ["Cerna", "VR"], - ["Marano Di Valpolicella", "VR"], - ["Prun", "VR"], - ["Fosse", "VR"], - ["Fane", "VR"], - ["Erbezzo", "VR"], - ["Dolce'", "VR"], - ["Volargne", "VR"], - ], - "37021": [["Bosco Chiesanuova", "VR"], ["Corbiolo", "VR"], ["Lughezzano", "VR"]], - "37022": [["Fumane", "VR"], ["Cavalo", "VR"], ["Breonio", "VR"]], - "37023": [ - ["Stallavena", "VR"], - ["Romagnano", "VR"], - ["Azzago", "VR"], - ["Grezzana", "VR"], - ["Lugo Di Grezzana", "VR"], - ], - "37024": [ - ["Negrar", "VR"], - ["Santa Maria Di Negrar", "VR"], - ["Arbizzano Di Valpolicella", "VR"], - ["Arbizzano", "VR"], - ], - "37026": [["Ospedaletto", "VR"], ["Pescantina", "VR"], ["Settimo", "VR"]], - "37028": [["Rovere' Veronese", "VR"]], - "37029": [ - ["Pedemonte", "VR"], - ["San Floriano", "VR"], - ["Negarine", "VR"], - ["San Pietro In Cariano", "VR"], - ["Corrubbio", "VR"], - ["Bure", "VR"], - ], - "37030": [ - ["Vestenanova", "VR"], - ["Lavagno", "VR"], - ["Montecchia Di Crosara", "VR"], - ["Vago", "VR"], - ["San Vittore", "VR"], - ["Colognola Ai Colli", "VR"], - ["San Bortolo", "VR"], - ["Mezzane Di Sotto", "VR"], - ["Selva Di Progno", "VR"], - ["Stra'", "VR"], - ["Velo Veronese", "VR"], - ["Montanara", "VR"], - ["Terrossa", "VR"], - ["San Rocco Di Piegara", "VR"], - ["San Briccio", "VR"], - ["Ronca'", "VR"], - ["San Mauro Di Saline", "VR"], - ["Cazzano Di Tramigna", "VR"], - ["San Pietro", "VR"], - ["Badia Calavena", "VR"], - ], - "37031": [["Cellore", "VR"], ["Illasi", "VR"]], - "37032": [["Monteforte D'Alpone", "VR"], ["Brognoligo", "VR"], ["Costalunga", "VR"]], - "37035": [["San Giovanni Ilarione", "VR"]], - "37036": [["Ferrazze", "VR"], ["Marcellise", "VR"], ["San Martino Buon Albergo", "VR"], ["Mambrotta", "VR"]], - "37038": [["Soave", "VR"], ["Castelletto", "VR"]], - "37039": [["Tregnago", "VR"], ["Cogollo", "VR"], ["Centro", "VR"]], - "37040": [ - ["Arcole", "VR"], - ["Caselle", "VR"], - ["Marega", "VR"], - ["Begosso", "VR"], - ["Zimella", "VR"], - ["Bevilacqua", "VR"], - ["Terrazzo", "VR"], - ["Bonavigo", "VR"], - ["Roveredo Di Gua'", "VR"], - ["San Gregorio Di Veronella", "VR"], - ["San Gregorio", "VR"], - ["Santo Stefano Di Zimella", "VR"], - ["Sabbion", "VR"], - ["Veronella", "VR"], - ["Pressana", "VR"], - ["Santo Stefano", "VR"], - ["Boschi Sant'Anna", "VR"], - ["Gazzolo", "VR"], - ["Orti", "VR"], - ], - "37041": [["Presina", "VR"], ["Albaredo D'Adige", "VR"], ["Michellorie", "VR"], ["Coriano Veronese", "VR"]], - "37042": [["Caldiero", "VR"], ["Caldierino", "VR"]], - "37043": [["Castagnaro", "VR"], ["Mena'", "VR"], ["Mena' Vallestrema", "VR"]], - "37044": [["Cologna Veneta", "VR"], ["San Sebastiano", "VR"], ["Sule'", "VR"], ["Baldaria", "VR"]], - "37045": [ - ["San Pietro Di Legnago", "VR"], - ["Casette", "VR"], - ["Gallese", "VR"], - ["Legnago", "VR"], - ["Vangadizza", "VR"], - ["Terranegra", "VR"], - ], - "37046": [["Minerbe", "VR"]], - "37047": [["Locara", "VR"], ["San Bonifacio", "VR"], ["Prova", "VR"], ["Villabella", "VR"]], - "37049": [["Spinimbecco", "VR"], ["Carpi Di Villa Bartolomea", "VR"], ["Villa Bartolomea", "VR"]], - "37050": [ - ["Belfiore", "VR"], - ["Concamarise", "VR"], - ["Bonavicina", "VR"], - ["Vallese", "VR"], - ["San Pietro Di Morubio", "VR"], - ["Roverchiaretta", "VR"], - ["Piazza", "VR"], - ["Roverchiara", "VR"], - ["Isola Rizza", "VR"], - ["Ca' Degli Oppi", "VR"], - ["Angiari", "VR"], - ["Oppeano", "VR"], - ["Palu'", "VR"], - ], - "37051": [["Bovolone", "VR"], ["Villafontana", "VR"]], - "37052": [["Casaleone", "VR"]], - "37053": [["Cherubine", "VR"], ["Asparetto", "VR"], ["Cerea", "VR"]], - "37054": [["Nogara", "VR"]], - "37055": [["Tombazosana", "VR"], ["Albaro", "VR"], ["Ronco All'Adige", "VR"]], - "37056": [["Crosarol", "VR"], ["Valmorsel", "VR"], ["Salizzole", "VR"], ["Bionde", "VR"], ["Engazza'", "VR"]], - "37057": [["Raldon", "VR"], ["San Giovanni Lupatoto", "VR"], ["Pozzo Camacici", "VR"]], - "37058": [["Sanguinetto", "VR"]], - "37059": [ - ["Zevio", "VR"], - ["Campagnola", "VR"], - ["Perzacco", "VR"], - ["Volon", "VR"], - ["Santa Maria Di Zevio", "VR"], - ], - "37060": [ - ["Maccacari", "VR"], - ["Pradelle", "VR"], - ["Castel D'Azzano", "VR"], - ["Pontepossero", "VR"], - ["Bovo", "VR"], - ["Correzzo", "VR"], - ["Azzano", "VR"], - ["Roncanova", "VR"], - ["Buttapietra", "VR"], - ["Bagnolo", "VR"], - ["Palazzolo", "VR"], - ["Bonferraro", "VR"], - ["Sorga'", "VR"], - ["San Pietro In Valle", "VR"], - ["Erbe'", "VR"], - ["Sona", "VR"], - ["Marchesino", "VR"], - ["Beccacivetta", "VR"], - ["Roncoleva'", "VR"], - ["Trevenzuolo", "VR"], - ["San Giorgio In Salici", "VR"], - ["Mozzecane", "VR"], - ["Nogarole Rocca", "VR"], - ["Lugagnano", "VR"], - ["Gazzo Veronese", "VR"], - ], - "37062": [["Dossobuono", "VR"], ["Alpo", "VR"]], - "37063": [["Pellegrina", "VR"], ["Tarmassia", "VR"], ["Isola Della Scala", "VR"]], - "37064": [["Povegliano Veronese", "VR"]], - "37066": [["Custoza", "VR"], ["Sommacampagna", "VR"], ["Caselle Di Sommacampagna", "VR"]], - "37067": [["Salionze", "VR"], ["Valeggio Sul Mincio", "VR"]], - "37068": [["Forette", "VR"], ["Vigasio", "VR"], ["Isolalta", "VR"]], - "37069": [ - ["Pizzoletta", "VR"], - ["Villafranca Di Verona", "VR"], - ["Caluri", "VR"], - ["Quaderni", "VR"], - ["Rosegaferro", "VR"], - ], - "37100": [["Verona", "VR"]], - "37121": [["Verona", "VR"]], - "37122": [["Verona", "VR"]], - "37123": [["Verona", "VR"]], - "37124": [["Verona", "VR"]], - "37125": [["Quinzano", "VR"], ["Verona", "VR"]], - "37126": [["Verona", "VR"]], - "37127": [["Verona", "VR"], ["Avesa", "VR"]], - "37128": [["Verona", "VR"]], - "37129": [["Verona", "VR"]], - "37131": [["Verona", "VR"]], - "37132": [["Verona", "VR"], ["San Michele Extra", "VR"]], - "37133": [["Verona", "VR"]], - "37134": [["Verona", "VR"]], - "37135": [["Verona", "VR"]], - "37136": [["Verona", "VR"]], - "37137": [["Verona", "VR"]], - "37138": [["Verona", "VR"]], - "37139": [["San Massimo All'Adige", "VR"], ["Verona", "VR"], ["Chievo", "VR"]], - "37142": [["Verona", "VR"]], - } - - city_prefixes = ("San", "Borgo", "Sesto", "Quarto", "Settimo") - city_suffixes = ( - "a mare", - "lido", - "ligure", - "del friuli", - "salentino", - "calabro", - "veneto", - "nell'emilia", - "umbro", - "laziale", - "terme", - "sardo", - ) - building_number_formats = ("@@#",) - street_suffixes = ( - "Piazza", - "Strada", - "Via", - "Borgo", - "Contrada", - "Rotonda", - "Incrocio", - "Viale", - "Stretto", - "Vicolo", - "Canale", - ) - postcode_formats = cap_city_province.keys() - - cities = getcities(cap_city_province) - states = ( - "Agrigento", - "Alessandria", - "Ancona", - "Aosta", - "Arezzo", - "Ascoli Piceno", - "Asti", - "Avellino", - "Bari", - "Barletta-Andria-Trani", - "Belluno", - "Benevento", - "Bergamo", - "Biella", - "Bologna", - "Bolzano", - "Brescia", - "Brindisi", - "Cagliari", - "Caltanissetta", - "Campobasso", - "Carbonia-Iglesias", - "Caserta", - "Catania", - "Catanzaro", - "Chieti", - "Como", - "Cosenza", - "Cremona", - "Crotone", - "Cuneo", - "Enna", - "Fermo", - "Ferrara", - "Firenze", - "Foggia", - "Forlì-Cesena", - "Frosinone", - "Genova", - "Gorizia", - "Grosseto", - "Imperia", - "Isernia", - "La Spezia", - "L'Aquila", - "Latina", - "Lecce", - "Lecco", - "Livorno", - "Lodi", - "Lucca", - "Macerata", - "Mantova", - "Massa-Carrara", - "Matera", - "Messina", - "Milano", - "Modena", - "Monza e della Brianza", - "Napoli", - "Novara", - "Nuoro", - "Olbia-Tempio", - "Oristano", - "Padova", - "Palermo", - "Parma", - "Pavia", - "Perugia", - "Pesaro e Urbino", - "Pescara", - "Piacenza", - "Pisa", - "Pistoia", - "Pordenone", - "Potenza", - "Prato", - "Ragusa", - "Ravenna", - "Reggio Calabria", - "Reggio Emilia", - "Rieti", - "Rimini", - "Roma", - "Rovigo", - "Salerno", - "Medio Campidano", - "Sassari", - "Savona", - "Siena", - "Siracusa", - "Sondrio", - "Taranto", - "Teramo", - "Terni", - "Torino", - "Ogliastra", - "Trapani", - "Trento", - "Treviso", - "Trieste", - "Udine", - "Varese", - "Venezia", - "Verbano-Cusio-Ossola", - "Vercelli", - "Verona", - "Vibo Valentia", - "Vicenza", - "Viterbo", - ) - states_abbr = ( - "AG", - "AL", - "AN", - "AO", - "AR", - "AP", - "AT", - "AV", - "BA", - "BT", - "BL", - "BN", - "BG", - "BI", - "BO", - "BZ", - "BS", - "BR", - "CA", - "CL", - "CB", - "CI", - "CE", - "CT", - "CZ", - "CH", - "CO", - "CS", - "CR", - "KR", - "CN", - "EN", - "FM", - "FE", - "FI", - "FG", - "FC", - "FR", - "GE", - "GO", - "GR", - "IM", - "IS", - "SP", - "AQ", - "LT", - "LE", - "LC", - "LI", - "LO", - "LU", - "MC", - "MN", - "MS", - "MT", - "ME", - "MI", - "MO", - "MB", - "NA", - "NO", - "NU", - "OT", - "OR", - "PD", - "PA", - "PR", - "PV", - "PG", - "PU", - "PE", - "PC", - "PI", - "PT", - "PN", - "PZ", - "PO", - "RG", - "RA", - "RC", - "RE", - "RI", - "RN", - "RM", - "RO", - "SA", - "VS", - "SS", - "SV", - "SI", - "SR", - "SO", - "TA", - "TE", - "TR", - "TO", - "OG", - "TP", - "TN", - "TV", - "TS", - "UD", - "VA", - "VE", - "VB", - "VC", - "VR", - "VV", - "VI", - "VT", - ) - countries = ( - "Afghanistan", - "Albania", - "Algeria", - "American Samoa", - "Andorra", - "Angola", - "Anguilla", - "Antartide (territori a sud del 60° parallelo)", - "Antigua e Barbuda", - "Argentina", - "Armenia", - "Aruba", - "Australia", - "Austria", - "Azerbaijan", - "Bahamas", - "Bahrain", - "Bangladesh", - "Barbados", - "Bielorussia", - "Belgio", - "Belize", - "Benin", - "Bermuda", - "Bhutan", - "Bolivia", - "Bosnia e Herzegovina", - "Botswana", - "Bouvet Island (Bouvetoya)", - "Brasile", - "Territorio dell'arcipelago indiano", - "Isole Vergini Britanniche", - "Brunei Darussalam", - "Bulgaria", - "Burkina Faso", - "Burundi", - "Cambogia", - "Cameroon", - "Canada", - "Capo Verde", - "Isole Cayman", - "Repubblica Centrale Africana", - "Chad", - "Cile", - "Cina", - "Isola di Pasqua", - "Isola di Cocos (Keeling)", - "Colombia", - "Comoros", - "Congo", - "Isole Cook", - "Costa Rica", - "Costa d'Avorio", - "Croazia", - "Cuba", - "Cipro", - "Repubblica Ceca", - "Danimarca", - "Gibuti", - "Repubblica Dominicana", - "Equador", - "Egitto", - "El Salvador", - "Guinea Equatoriale", - "Eritrea", - "Estonia", - "Etiopia", - "Isole Faroe", - "Isole Falkland (Malvinas)", - "Fiji", - "Finlandia", - "Francia", - "Guyana Francese", - "Polinesia Francese", - "Territori Francesi del sud", - "Gabon", - "Gambia", - "Georgia", - "Germania", - "Ghana", - "Gibilterra", - "Grecia", - "Groenlandia", - "Grenada", - "Guadalupa", - "Guam", - "Guatemala", - "Guernsey", - "Guinea", - "Guinea-Bissau", - "Guyana", - "Haiti", - "Heard Island and McDonald Islands", - "Città del Vaticano", - "Honduras", - "Hong Kong", - "Ungheria", - "Islanda", - "India", - "Indonesia", - "Iran", - "Iraq", - "Irlanda", - "Isola di Man", - "Israele", - "Italia", - "Giamaica", - "Giappone", - "Jersey", - "Giordania", - "Kazakhstan", - "Kenya", - "Kiribati", - "Korea", - "Kuwait", - "Republicca Kirgiza", - "Repubblica del Laos", - "Latvia", - "Libano", - "Lesotho", - "Liberia", - "Libyan Arab Jamahiriya", - "Liechtenstein", - "Lituania", - "Lussemburgo", - "Macao", - "Macedonia del Nord", - "Madagascar", - "Malawi", - "Malesia", - "Maldive", - "Mali", - "Malta", - "Isole Marshall", - "Martinica", - "Mauritania", - "Mauritius", - "Mayotte", - "Messico", - "Micronesia", - "Moldova", - "Principato di Monaco", - "Mongolia", - "Montenegro", - "Montserrat", - "Marocco", - "Mozambico", - "Myanmar", - "Namibia", - "Nauru", - "Nepal", - "Antille Olandesi", - "Olanda", - "Nuova Caledonia", - "Nuova Zelanda", - "Nicaragua", - "Niger", - "Nigeria", - "Niue", - "Isole Norfolk", - "Northern Mariana Islands", - "Norvegia", - "Oman", - "Pakistan", - "Palau", - "Palestina", - "Panama", - "Papua Nuova Guinea", - "Paraguay", - "Peru", - "Filippine", - "Pitcairn Islands", - "Polonia", - "Portogallo", - "Porto Rico", - "Qatar", - "Reunion", - "Romania", - "Russia", - "Rwanda", - "San Bartolomeo", - "Sant'Elena", - "Saint Kitts and Nevis", - "Saint Lucia", - "Saint Martin", - "Saint Pierre and Miquelon", - "Saint Vincent and the Grenadines", - "Samoa", - "San Marino", - "Sao Tome and Principe", - "Arabia Saudita", - "Senegal", - "Serbia", - "Seychelles", - "Sierra Leone", - "Singapore", - "Slovenia", - "Isole Solomon", - "Somalia", - "Sud Africa", - "Georgia del sud e South Sandwich Islands", - "Spagna", - "Sri Lanka", - "Sudan", - "Suriname", - "Svalbard & Jan Mayen Islands", - "Swaziland", - "Svezia", - "Svizzera", - "Siria", - "Taiwan", - "Tajikistan", - "Tanzania", - "Tailandia", - "Timor-Leste", - "Togo", - "Tokelau", - "Tonga", - "Trinidad e Tobago", - "Tunisia", - "Turchia", - "Turkmenistan", - "Isole di Turks and Caicos", - "Tuvalu", - "Uganda", - "Ucraina", - "Emirati Arabi Uniti", - "Regno Unito", - "Stati Uniti d'America", - "United States Minor Outlying Islands", - "Isole Vergini Statunitensi", - "Uruguay", - "Uzbekistan", - "Vanuatu", - "Venezuela", - "Vietnam", - "Wallis and Futuna", - "Western Sahara", - "Yemen", - "Zambia", - "Zimbabwe", - ) - city_formats = ( - "{{city_prefix}} {{first_name}} {{city_suffix}}", - "{{city_prefix}} {{first_name}}", - "{{first_name}} {{city_suffix}}", - "{{last_name}} {{city_suffix}}", - ) - street_name_formats = ( - "{{street_suffix}} {{first_name}}", - "{{street_suffix}} {{last_name}}", - ) - street_address_formats = ( - "{{street_name}}, {{building_number}}", - "{{street_name}}, {{building_number}} {{secondary_address}}", - ) - address_formats = ("{{street_address}}\n{{postcode_city_province}}",) - secondary_address_formats = ("Appartamento @#", "Piano #") - - def postcode_city_province(self) -> str: - """ - :sample: - """ - cap = self.postcode() - rand_city_prov: List[str] = self.random_element(self.cap_city_province[cap]) - return cap + ", " + rand_city_prov[0] + " (" + rand_city_prov[1] + ")" - - def city(self) -> str: - """ - :sample: - """ - return self.random_element(self.cities) - - def city_prefix(self) -> str: - """ - :sample: - """ - return self.random_element(self.city_prefixes) - - def secondary_address(self) -> str: - """ - :sample: - """ - return self.numerify(self.random_element(self.secondary_address_formats)) - - def administrative_unit(self) -> str: - """ - :sample: - """ - return self.random_element(self.states) - - state = administrative_unit - - def state_abbr(self) -> str: - """ - :sample: - """ - return self.random_element(self.states_abbr) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/it_IT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/it_IT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 17af922..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/it_IT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ja_JP/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/ja_JP/__init__.py deleted file mode 100644 index c2f7311..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/ja_JP/__init__.py +++ /dev/null @@ -1,649 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - address_formats = ( - "{{prefecture}}{{city}}{{town}}{{chome}}{{ban}}{{gou}}", - "{{prefecture}}{{city}}{{town}}{{chome}}{{ban}}{{gou}} {{town}}{{building_name}}{{building_number}}", - "{{prefecture}}{{city}}{{town}}{{chome}}{{ban}}{{gou}} {{building_name}}{{town}}{{building_number}}", - ) - - building_number_formats = ("###",) - - countries = ( - "アフガニスタン", - "アルバニア", - "アルジェリア", - "アメリカ領サモア", - "アンドラ", - "アンゴラ", - "アンギラ", - "南極大陸", - "アンティグアバーブーダ", - "アルゼンチン", - "アルメニア", - "アルバ", - "オーストラリア", - "オーストリア", - "アゼルバイジャン", - "バハマ", - "バーレーン", - "バングラデシュ", - "バルバドス", - "ベラルーシ", - "ベルギー", - "ベリーズ", - "ベナン", - "バミューダ島", - "ブータン", - "ボリビア", - "ボスニア・ヘルツェゴビナ", - "ボツワナ", - "ブーベ島", - "ブラジル", - "イギリス領インド洋地域", - "イギリス領ヴァージン諸島", - "ブルネイ", - "ブルガリア", - "ブルキナファソ", - "ブルンジ", - "カンボジア", - "カメルーン", - "カナダ", - "カーボベルデ", - "ケイマン諸島", - "中央アフリカ共和国", - "チャド", - "チリ", - "中国", - "クリスマス島", - "ココス諸島", - "コロンビア", - "コモロ", - "コンゴ共和国", - "クック諸島", - "コスタリカ", - "コートジボワール", - "クロアチア", - "キューバ", - "キプロス共和国", - "チェコ共和国", - "デンマーク", - "ジブチ共和国", - "ドミニカ国", - "ドミニカ共和国", - "エクアドル", - "エジプト", - "エルサルバドル", - "赤道ギニア共和国", - "エリトリア", - "エストニア", - "エチオピア", - "フェロー諸島", - "フォークランド諸島", - "フィジー共和国", - "フィンランド", - "フランス", - "フランス領ギアナ", - "フランス領ポリネシア", - "フランス領極南諸島", - "ガボン", - "ガンビア", - "グルジア", - "ドイツ", - "ガーナ", - "ジブラルタル", - "ギリシャ", - "グリーンランド", - "グレナダ", - "グアドループ", - "グアム", - "グアテマラ", - "ガーンジー", - "ギニア", - "ギニアビサウ", - "ガイアナ", - "ハイチ", - "ハード島とマクドナルド諸島", - "バチカン市国", - "ホンジュラス", - "香港", - "ハンガリー", - "アイスランド", - "インド", - "インドネシア", - "イラン", - "イラク", - "アイルランド共和国", - "マン島", - "イスラエル", - "イタリア", - "ジャマイカ", - "日本", - "ジャージー島", - "ヨルダン", - "カザフスタン", - "ケニア", - "キリバス", - "朝鮮", - "韓国", - "クウェート", - "キルギス共和国", - "ラオス人民民主共和国", - "ラトビア", - "レバノン", - "レソト", - "リベリア", - "リビア国", - "リヒテンシュタイン", - "リトアニア", - "ルクセンブルク", - "マカオ", - "北マケドニア共和国", - "マダガスカル", - "マラウィ", - "マレーシア", - "モルディブ", - "マリ", - "マルタ共和国", - "マーシャル諸島", - "マルティニーク", - "モーリタニア・イスラム共和国", - "モーリシャス", - "マヨット", - "メキシコ", - "ミクロネシア連邦", - "モルドバ共和国", - "モナコ公国", - "モンゴル", - "モンテネグロ共和国", - "モントセラト", - "モロッコ", - "モザンビーク", - "ミャンマー", - "ナミビア", - "ナウル", - "ネパール", - "オランダ領アンティル", - "オランダ", - "ニューカレドニア", - "ニュージーランド", - "ニカラグア", - "ニジェール", - "ナイジェリア", - "ニース", - "ノーフォーク島", - "北マリアナ諸島", - "ノルウェー", - "オマーン", - "パキスタン", - "パラオ", - "パレスチナ自治区", - "パナマ", - "パプアニューギニア", - "パラグアイ", - "ペルー", - "フィリピン", - "ピトケアン諸島", - "ポーランド", - "ポルトガル", - "プエルトリコ", - "カタール", - "レユニオン", - "ルーマニア", - "ロシア", - "ルワンダ", - "サン・バルテルミー島", - "セントヘレナ", - "セントクリストファー・ネイビス連邦", - "セントルシア", - "セント・マーチン島", - "サンピエール島・ミクロン島", - "セントビンセント・グレナディーン", - "サモア", - "サンマリノ", - "サントメプリンシペ", - "サウジアラビア", - "セネガル", - "セルビア", - "セイシェル", - "シエラレオネ", - "シンガポール", - "スロバキア", - "スロベニア", - "ソロモン諸島", - "ソマリア", - "南アフリカ共和国", - "サウスジョージア・サウスサンドウィッチ諸島", - "スペイン", - "スリランカ", - "スーダン", - "スリナム", - "スヴァールバル諸島およびヤンマイエン島", - "スワジランド王国", - "スウェーデン", - "スイス", - "シリア", - "台湾", - "タジキスタン共和国", - "タンザニア", - "タイ", - "東ティモール", - "トーゴ", - "トケラウ", - "トンガ", - "トリニダード・トバゴ", - "チュニジア", - "トルコ", - "トルクメニスタン", - "タークス・カイコス諸島", - "ツバル", - "ウガンダ", - "ウクライナ", - "アラブ首長国連邦", - "イギリス", - "アメリカ合衆国", - "合衆国領有小離島", - "アメリカ領ヴァージン諸島", - "ウルグアイ", - "ウズベキスタン", - "バヌアツ", - "ベネズエラ", - "ベトナム", - "ウォリス・フツナ", - "西サハラ", - "イエメン", - "ザンビア", - "ジンバブエ", - ) - - prefectures = ( - "北海道", - "青森県", - "岩手県", - "宮城県", - "秋田県", - "山形県", - "福島県", - "茨城県", - "栃木県", - "群馬県", - "埼玉県", - "千葉県", - "東京都", - "神奈川県", - "新潟県", - "富山県", - "石川県", - "福井県", - "山梨県", - "長野県", - "岐阜県", - "静岡県", - "愛知県", - "三重県", - "滋賀県", - "京都府", - "大阪府", - "兵庫県", - "奈良県", - "和歌山県", - "鳥取県", - "島根県", - "岡山県", - "広島県", - "山口県", - "徳島県", - "香川県", - "愛媛県", - "高知県", - "福岡県", - "佐賀県", - "長崎県", - "熊本県", - "大分県", - "宮崎県", - "鹿児島県", - "沖縄県", - ) - - cities = ( - "八千代市", - "我孫子市", - "鴨川市", - "鎌ケ谷市", - "君津市", - "富津市", - "浦安市", - "四街道市", - "袖ケ浦市", - "八街市", - "印西市", - "白井市", - "富里市", - "南房総市", - "匝瑳市", - "香取市", - "山武市", - "いすみ市", - "大網白里市", - "印旛郡酒々井町", - "印旛郡印旛村", - "印旛郡本埜村", - "印旛郡栄町", - "香取郡神崎町", - "香取郡多古町", - "香取郡東庄町", - "山武郡九十九里町", - "山武郡芝山町", - "山武郡横芝光町", - "長生郡一宮町", - "長生郡睦沢町", - "長生郡長生村", - "長生郡白子町", - "長生郡長柄町", - "長生郡長南町", - "夷隅郡大多喜町", - "夷隅郡御宿町", - "安房郡鋸南町", - "千代田区", - "中央区", - "港区", - "新宿区", - "文京区", - "台東区", - "墨田区", - "江東区", - "品川区", - "目黒区", - "大田区", - "世田谷区", - "渋谷区", - "中野区", - "杉並区", - "豊島区", - "北区", - "荒川区", - "板橋区", - "練馬区", - "足立区", - "葛飾区", - "江戸川区", - "八王子市", - "立川市", - "武蔵野市", - "三鷹市", - "青梅市", - "府中市", - "昭島市", - "調布市", - "町田市", - "小金井市", - "小平市", - "日野市", - "東村山市", - "国分寺市", - "国立市", - "福生市", - "狛江市", - "東大和市", - "清瀬市", - "東久留米市", - "武蔵村山市", - "多摩市", - "稲城市", - "羽村市", - "あきる野市", - "西東京市", - "西多摩郡瑞穂町", - "西多摩郡日の出町", - "西多摩郡檜原村", - "西多摩郡奥多摩町", - "大島町", - "利島村", - "新島村", - "神津島村", - "三宅島三宅村", - "御蔵島村", - "八丈島八丈町", - "青ヶ島村", - "小笠原村", - "横浜市鶴見区", - "横浜市神奈川区", - "横浜市西区", - "横浜市中区", - "横浜市南区", - "横浜市保土ケ谷区", - "横浜市磯子区", - "横浜市金沢区", - "横浜市港北区", - "横浜市戸塚区", - "横浜市港南区", - "横浜市旭区", - "横浜市緑区", - "横浜市瀬谷区", - "横浜市栄区", - "横浜市泉区", - "横浜市青葉区", - "横浜市都筑区", - "川崎市川崎区", - "川崎市幸区", - "川崎市中原区", - "川崎市高津区", - "川崎市多摩区", - "川崎市宮前区", - ) - - towns = ( - "丹勢", - "中宮祠", - "手岡", - "東和町", - "所野", - "土沢", - "独鈷沢", - "轟", - "土呂部", - "中小来川", - "長畑", - "中鉢石町", - "中三依", - "西小来川", - "西川", - "日光", - "東三島", - "東大和町", - "蟇沼", - "二つ室", - "方京", - "細竹", - "前弥六", - "前弥六南町", - "松浦町", - "南赤田", - "南郷屋", - "美原町", - "無栗屋", - "睦", - "百村", - "箭坪", - "山中新田", - "油井", - "湯宮", - "豊町", - "湯本塩原", - "横林", - "四区町", - "渡辺", - "氏家", - "氏家新田", - "卯の里", - "小入", - "大中", - "押上", - "柿木沢", - "柿木沢新田", - "鍛冶ケ沢", - "上高野", - "上吉羽", - "木立", - "権現堂", - "幸手", - "下宇和田", - "下吉羽", - "神明内", - "外国府間", - "千塚", - "天神島", - "戸島", - "中川崎", - "長間", - "西関宿", - "花島", - "平須賀", - "細野", - "松石", - "太田ヶ谷", - "上広谷", - "五味ヶ谷", - "脚折", - "脚折町", - "鶴ヶ丘", - "羽折町", - "藤金", - "九段南", - "皇居外苑", - "麹町", - "猿楽町", - "外神田", - "西神田", - "隼町", - "東神田", - "一ツ橋", - "日比谷公園", - "平河町", - "丸の内", - "丸の内JPタワー", - "四番町", - "六番町", - "明石町", - "勝どき", - "京橋", - "月島", - "北青山", - "港南", - "芝浦", - "芝公園", - "芝大門", - "白金", - "白金台", - "台場", - "高輪", - "虎ノ門", - "虎ノ門虎ノ門ヒルズ森タワー", - "大京町", - "高田馬場", - "箪笥町", - "津久戸町", - "筑土八幡町", - "戸塚町", - "富久町", - "戸山", - "秋葉原", - "浅草", - "浅草橋", - "池之端", - "今戸", - "入谷", - "上野公園", - "上野桜木", - "雷門", - "北上野", - "蔵前", - "千束", - "台東", - "鳥越", - "西浅草", - "日本堤", - "橋場", - "花川戸", - "東浅草", - "東上野", - "松が谷", - "三筋", - "三ノ輪", - "元浅草", - "竜泉", - "吾妻橋", - ) - - building_names = ( - "パレス", - "ハイツ", - "コーポ", - "アーバン", - "クレスト", - "パーク", - "シティ", - "シャルム", - "コート", - ) - - def administrative_unit(self) -> str: - """ - :example: '東京都' - """ - return self.random_element(self.prefectures) - - prefecture = administrative_unit - - def city(self) -> str: - """ - :example: '台東区' - """ - return self.random_element(self.cities) - - def town(self) -> str: - """ - :example: '浅草' - """ - return self.random_element(self.towns) - - def chome(self) -> str: - """ - :example: '1丁目' - """ - return "%d丁目" % self.generator.random.randint(1, 42) - - def ban(self) -> str: - """ - :example: '3番' - """ - return "%d番" % self.generator.random.randint(1, 27) - - def gou(self) -> str: - """ - :example: '10号' - """ - return "%d号" % self.generator.random.randint(1, 20) - - def building_name(self) -> str: - """ - :example: 'コーポ芝浦' - """ - return self.random_element(self.building_names) - - def postcode(self) -> str: - """ - :example: '101-1212' - """ - return "%03d-%04d" % ( - self.generator.random.randint(0, 999), - self.generator.random.randint(0, 9999), - ) - - def zipcode(self) -> str: - """ - :example: '101-1212' - """ - return self.postcode() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ja_JP/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/ja_JP/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3230f35..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/ja_JP/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ka_GE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/ka_GE/__init__.py deleted file mode 100644 index 102e08e..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/ka_GE/__init__.py +++ /dev/null @@ -1,1297 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ["{{city_name}}"] - street_name_formats = ["{{street_title}} {{street_suffix}}"] - street_address_formats = ["{{street_name}} {{building_number}}"] - address_formats = ["{{street_address}}, {{city}}"] - building_number_formats = ["##"] - street_suffixes = ["ქ."] - - # Source: Wikipedia's list of sovereign states - # https://en.wikipedia.org/wiki/List_of_sovereign_states - countries = ( - "ავსტრალია", - "ავსტრია", - "ავღანეთი", - "აზერბაიჯანი", - "ალბანეთი", - "ალჟირი", - "ამერიკის სამოა", - "ამერიკის ვირჯინიის კუნძულები", - "ამერიკის შეერთებული შტატები", - "ანგილია", - "ანგოლა", - "ანდორა", - "ანტიგუა და ბარბუდა", - "არაბთა გაერთიანებული საამიროები", - "არგენტინა", - "არუბა", - "აღმოსავლეთი ტიმორი", - "ახალი ზელანდია", - "ახალი კალედონია", - "ბანგლადეში", - "ბარბადოსი", - "ბასას-და-ინდია", - "ბაჰამის კუნძულები", - "ბაჰრეინი", - "ბელარუსი", - "ბელგია", - "ბელიზი", - "ბენინი", - "ბერმუდა", - "ბოლივია", - "ბოსნია და ჰერცეგოვინა", - "ბოტსვანა", - "ბრაზილია", - "ბრიტანეთის ვირჯინიის კუნძულები", - "ბრიტანეთის ინდოეთის ოკეანის ტერიტორია", - "ბრუნეი", - "ბულგარეთი", - "ბურკინა ფასო", - "ბურუნდი", - "ბუვე", - "ბჰუტანი", - "გაბონი", - "გაიანა", - "გამბია", - "განა", - "გერმანია", - "გვადელუპა", - "გვატემალა", - "გვინეა", - "გვინეა-ბისაუ", - "გიბრალტარი", - "გრენადა", - "გრენლანდია", - "გუამი", - "დანია", - "დიდი ბრიტანეთი", - "დომინიკელთა რესპუბლიკა", - "დომინიკა", - "ეგვიპტე", - "ევროპა (კუნძული)", - "ეთიოპია", - "ეკვადორი", - "ეკვატორული გვინეა", - "ერაყი", - "ერიტრეა", - "ესპანეთი", - "ესტონეთი", - "ეშმორის და კარტიეს კუნძულები", - "უოლისი და ფუტუნა", - "ვანუატუ", - "ვატიკანი", - "ვენესუელა", - "ვიეტნამი", - "ზამბია", - "ზიმბაბვე", - "თურქეთი", - "თურქმენეთი", - "იამაიკა", - "იან მაიენი", - "იაპონია", - "იემენი", - "ინდოეთი", - "ინდონეზია", - "იორდანია", - "ირანი", - "ირლანდია", - "ისლანდია", - "ისრაელი", - "იტალია", - "კაბო-ვერდე", - "კაიმანის კუნძულები", - "კამბოჯა", - "კამერუნი", - "კანადა", - "კატარი", - "კენია", - "კვიპროსი", - "კინგმენის რიფი", - "კირიბატი", - "ქოქოსის კუნძულები", - "კოლუმბია", - "კომორის კუნძულები", - "კონგოს დემოკრატიული რესპუბლიკა", - "კონგოს რესპუბლიკა", - "კორეის რესპუბლიკა", - "ჩრდილოეთი კორეა", - "კოსტა-რიკა", - "კოტ-დ’ივუარი", - "კუბა", - "კუკის კუნძულები", - "ლაოსი", - "ლატვია", - "ლესოთო", - "ლიბანი", - "ლიბერია", - "ლიბია", - "ლიტვა", - "ლიხტენშტაინი", - "ლუქსემბურგი", - "მადაგასკარი", - "მავრიკი", - "მავრიტანია", - "მაიოტა", - "მაკაო", - "მაკედონია", - "მალავი", - "მალაიზია", - "მალდივი", - "მალი", - "მალტა", - "მაროკო", - "მარშალის კუნძულები", - "მარჯნის ზღვის კუნძულები", - "მექსიკა", - "მიანმარი", - "მიკრონეზია", - "მოზამბიკი", - "მოლდოვა", - "მონაკო", - "მონსერატი", - "მონღოლეთი", - "ნამიბია", - "ნაურუ", - "ნეპალი", - "ნიგერი", - "ნიგერია", - "ნიდერლანდი", - "ნიდერლანდის ანტილები", - "ნიკარაგუა", - "ნიუე", - "ნორვეგია", - "ნორფოლკის კუნძული", - "ომანი", - "პაკისტანი", - "პალაუ", - "პალმირა (ატოლი)", - "პანამა", - "პაპუა-ახალი გვინეა", - "პარაგვაი", - "პერუ", - "პიტკერნის კუნძულები", - "პოლონეთი", - "პორტუგალია", - "პრინც-ედუარდის კუნძული", - "პუერტო-რიკო", - "ჟუან-დი-ნოვა", - "რეიუნიონი", - "რუანდა", - "რუმინეთი", - "რუსეთი", - "საბერძნეთი", - "სალვადორი", - "სამოა", - "სამხრეთ აფრიკის რესპუბლიკა", - "სამხრეთი გეორგია და სამხრეთ სენდვიჩის კუნძულები", - "სამხრეთი სუდანი", - "სან-მარინო", - "სან-ტომე და პრინსიპი", - "საუდის არაბეთი", - "საფრანგეთი", - "საფრანგეთის გვიანა", - "საფრანგეთის პოლინეზია", - "საფრანგეთის სამხრეთული და ანტარქტიდული ტერიტორია", - "საქართველო", - "სეიშელის კუნძულები", - "სენეგალი", - "სენ-პიერი და მიკელონი", - "სენტ-ვინსენტი და გრენადინები", - "სენტ-კიტსი და ნევისი", - "სენტ-ლუსია", - "სერბეთი", - "სეუტა", - "სვაზილენდი", - "სვალბარდი", - "სიერა-ლეონე", - "სინგაპური", - "სირია", - "სლოვაკეთი", - "სლოვენია", - "სოლომონის კუნძულები", - "სომალი", - "სომხეთი", - "სუდანი", - "სურინამი", - "ტაივანი", - "ტაილანდი", - "ტანზანია", - "ტაჯიკეთი", - "ტერქსისა და კაიკოსის კუნძულები", - "ტოგო", - "ტოკელაუ", - "ტონგა", - "ტრინიდადი და ტობაგო", - "ტუვალუ", - "ტუნისი", - "უგანდა", - "უზბეკეთი", - "უკრაინა", - "უნგრეთი", - "ურუგვაი", - "ფარერის კუნძულები", - "ფილიპინები", - "ფინეთი", - "ფიჯი", - "ფოლკლენდის კუნძულები", - "ქუვეითი", - "ღაზის სექტორი", - "ყაზახეთი", - "ყირგიზეთი", - "შვეიცარია", - "შვედეთი", - "შობის კუნძული", - "შრი-ლანკა", - "ჩადი", - "ჩერნოგორია", - "ჩეხეთი", - "ჩეჩნეთის რესპუბლიკა იჩქერია", - "ჩილე", - "ჩინეთი", - "ჩრდილოეთი მარიანას კუნძულები", - "ცენტრალური აფრიკის რესპუბლიკა", - "წმინდა ელენე, ამაღლება და ტრისტანი-და-კუნია", - "წყნარი ოკეანის კუნძულები", - "ხორვატია", - "ჯერსი", - "ჯიბუტი", - "ჰაიტი", - "ჰონდურასი", - "ჰონკონგი", - "ჰერდი და მაკდონალდის კუნძულები", - ) - - # Source: Tbilisi city directory - # http://directory.ge/map/index.php?lang=eng - street_titles = ( - "300 არაგველის", - "8 მარტის", - "აბაკელიას", - "აბანოს", - "აბასთუმანის", - "აბაშელის", - "აბაშის", - "აბაშიძე გრიგოლის", - "აბაშიძე დოდოს", - "აბაშიძე ირაკლის", - "აბაშიძე ჰეიდარის", - "აბაშიძის", - "აბდუშელიშვილი მალხაზის", - "აბესაძე გიას", - "აბზიანიძის", - "აბო ტბილელის", - "აბოვიანის", - "აბუსერიძე-ტბელის", - "აგარის", - "აგლაძე რაფიელის", - "ადიგენის", - "ავთანდილის", - "ავლაბრის", - "ავლევის", - "ათონელის", - "აკეთის", - "აკოფიანის", - "აკურის", - "ალადაშვილის", - "ალაზნის", - "ალგეთის", - "ალექსიძე მერაბის", - "ალვანის", - "ალიხანიანის", - "ალმასიანის", - "ამაღლების", - "ამბროლაურის", - "ამირანაშვილი პეტრეს", - "ამირეჯიბის", - "ანაკლიის", - "ანანურის", - "ანდრონიკაშვილის", - "ანდღულაძის", - "ანტონ კატალიკოსის", - "ანტონოვსკაიას", - "ანჯაფარიძე ვერიკოს", - "არაგვის", - "არაგვისპირელი შიოს", - "არალეთის", - "არარატის", - "არაყიშვილი დიმიტრის", - "არბოს", - "არბოშიკის", - "არგვეთის", - "არდაზიანის", - "არდონის", - "არეშიძის", - "არველაძის", - "ართვინის", - "არმაზის", - "არსენალის", - "ასათიანი ლადოს", - "ასკანის", - "ასურეთის", - "ასხინის", - "ატენის", - "აფანასიევის", - "აფხაზეთის", - "აწყურის", - "აჭარის", - "ახალარსენალის", - "ახალდაბის", - "ახალუბნის", - "ახალქალაქის", - "ახვლედიანი ელენეს", - "ახვლედიანი გიორგის", - "ახვლედიანის", - "ახმეტელის", - "ახმეტის", - "ახოსპირელის", - "ახტალის", - "ახუთის", - "ახუნდოვის", - "აჯამეთის", - "ბააზოვის", - "ბაგინეთის", - "ბადიაურის", - "ბაზალეთის", - "ბათუმის", - "ბაკურიანის", - "ბაკურციხის", - "ბალადინის", - "ბალანჩივაძე მელიტონის", - "ბარათაშვილი ნოკოლოზის", - "ბარათაშვილის", - "ბარალეთის", - "ბარამიძე ალექსანდრეს", - "ბარისახოს", - "ბარნოვის", - "ბაქოს", - "ბაქრაძე დავითის", - "ბაქრაძე დიმიტრის", - "ბაღდათის", - "ბაღნარის", - "ბახმაროს", - "ბახტრიონის", - "ბედიის", - "ბევრეთის", - "ბეთანიის", - "ბეთლემის", - "ბელიაშვილი აკაკის", - "ბენაშვილის", - "ბენდელიანი ჭიჭიკოს", - "ბეჟანიშვილი ეკას", - "ბერბუქის", - "ბერიაშვილის", - "ბერიკაშვილის", - "ბერიტაშვილის", - "ბერიძე ვუკოლის", - "ბერძენიშვილის", - "ბესიკის", - "ბექა ოპიზარის", - "ბეღლეთის", - "ბზიფის", - "ბიჭვინთის", - "ბოგვის", - "ბოდავის", - "ბოდბის", - "ბოლნისის", - "ბორბალოს", - "ბოროდინოს", - "მ. ლებანიძის", - "ბოტანიკურის", - "ბოცვაძის", - "ბოჭორიშვილის", - "ბოჭორმის", - "ბჟოლეთის", - "ბროლოსანის", - "ბროსეს", - "ბუაჩიძე თენგიზის", - "ბუდაპეშტის", - "ბულაჩაურის", - "ბურკიაშვილის", - "ბურძგლას", - "ბუღეულის", - "ბუხაიძის", - "გაბაშვილი ეკატერინეს", - "გაგარინი იურის", - "გალავნის", - "გალაქტიონ ტაბიძის", - "გალის", - "გამრეკელის", - "გამყრელიძის", - "გამცემლიძე შოთას", - "განთიადის", - "გარე კახეთის", - "გარეჯელი დავითის", - "გარიყული მარიამის", - "გაფრინდაულის", - "გახოკიძე აკაკის", - "გახოკიძის", - "გეგუთის", - "გედევანიშვილის", - "გეზათის", - "გელათის", - "გერგეტის", - "გვაზაურის", - "გვეტაძე რაჟდენის", - "გივიშვილის", - "გიორგაძის", - "გიორგი ბრწყინვალის", - "გიორგი მერჩულეს", - "გლინკას", - "გოგაშენის", - "გოგებაშვილის იაკობის", - "გოგიბერიძის", - "გოგოლაურის", - "გოგოლის", - "გოგჩის", - "გოთუას", - "გოკიელის", - "გომარეთის", - "გომბორის", - "გომის", - "გონაშვილი ჰამლეტის", - "გორგასლის", - "გორდის", - "გორის", - "გორკის", - "გოცირიძის", - "გოძიაშვილის", - "გრანელი ტერენტის", - "გრიბოედოვის", - "გრიშაშვილის", - "გროზნოს", - "გრუზინსკი პეტრეს", - "გუდამაყრის", - "გუდარეხის", - "გუდარის", - "გუდაუთის", - "გუდიაშვილი ლადოს", - "გუთნის", - "გულიას", - "გულისაშვილის", - "გულუა გიას", - "გუმათის", - "გუმათჰესის", - "გუმბრის", - "გუნიას", - "გურგენიძის", - "გურიელის", - "გურიის", - "გურჯაანის", - "დაბახანას", - "დადიანი შალვას", - "დადიანი ცოტნეს", - "დაისის", - "ლ. ელიავას", - "დარკვეთის", - "დგებუაძის", - "დედოფლისწყაროს", - "დეკაბრისტების", - "დელისის", - "დეპოს", - "დვალის", - "დვირის", - "დიდგორის", - "დიდხევის", - "დიდი ხეივნის", - "დიდი ჯიხაიშის", - "დ. ყიფიანის", - "დიმიტრი თავდადებულის", - "დირსიჭალას", - "დიუმა ალექსანდრეს", - "დმანისის", - "დობროლიუბოვის", - "დოდაშვილი სოლომონის", - "დოესის", - "დოლიძე გოგის", - "დოლიძის", - "დოქის", - "დოღუმბარის", - "დუტუ მეგრელის", - "დუშეთის", - "ედისის", - "ევდოშვილის", - "ეკალაძის", - "ელდარის", - "ენგურის", - "ენგურჰესის", - "ენისელის", - "ენუქიძის", - "ერევნის", - "ერისთავი თორნიკეს", - "ერისთავი კონსტანტინეს", - "ერისთავ-ხოშტარიას", - "ერწოს", - "ესენინის", - "სანდრო ეულის", - "ეფრემ მცირის", - "ექიმის", - "ვაზიანის", - "ვაზისუბნის", - "ვაკელი იონას", - "ვანის", - "ვარდევანის", - "ვარდისუბნის", - "ვართაგავას", - "რომის", - "ვასაძის", - "ვაშლოვანის", - "ვახტანგ VI–ის", - "ვეზიროვის", - "ვეკუა ვოვას", - "ვერცხლის", - "ვერჰარნის", - "ვეძათხევის", - "ვეძინის", - "ვირსალაძის", - "ვორონინის", - "საარბრჯუკენის", - "ზაზიშვილი გიგოს", - "ზალდასტანიშვილის", - "ზანდუკელი მიხეილის", - "ზარზმის", - "ზაქარიაძე სერგოს", - "ზედაზნის", - "ზედამზის", - "ზედაუბნის", - "ზეინკლის", - "ზეკარის", - "ზემო ვაკის", - "ზემო ვეძისის", - "ზესტაფონის", - "ზვარეთის", - "ზიარის", - "ზიგზაგის", - "ზინდისის", - "ზიჩი მიხაის", - "ზოვრეთის", - "ზუბალაშვილების", - "ზუგდიდის", - "ზურაბიშვილი ავლიპის", - "თაბუკაშვილი რეზოს", - "თავაძე ფერდინანდის", - "თამარაშენის", - "თამარაშვილი მიხეილის", - "გ. სვანიძის", - "თარხნიშვილის", - "თაქთაქიშვილის", - "თაყაიშვილი სესილიას", - "თევდორე მღვდლის", - "თეთნულდის", - "თეთრიწყაროს", - "თეკლათის", - "თელავის", - "ხახანაშვილის", - "თელეთის", - "თერგის", - "თეძმის", - "თვალჭრელიძის", - "თიანეთის", - "თმოგველის", - "თმოგვის", - "თოდრიას", - "თოიძის", - "თონეს", - "თორაძის", - "თოფურიას", - "თრიალეთის", - "თუმანიანის", - "თხინვალის", - "იალბუზის", - "იამანიძე შოთას", - "იაშვილი პაოლოს", - "იბრაჰიმ ისპაჰანელის", - "იდუმალას", - "იეთიმ გურჯის", - "იერუსალიმის", - "ივერიის", - "ივლეთის", - "იზაშვილის", - "ილორის", - "ილურიძე კონსტანტინეს", - "იმედაშვილი გაიოზის", - "იმერეთის", - "ინანიშვილი რამაზის", - "ინაშვილის", - "ინგოროყვა პავლეს", - "ინტერნატის", - "იორის", - "იოსებიძის", - "იოსელიანის", - "იპოლიტე-ივანოვის", - "ირბაქი ნიკიფორეს", - "ირგვლივის", - "ისაკიანის", - "ისნის", - "იფნის", - "იყალთოს", - "კავთისხევის", - "კავსაძის", - "კაიშაურის", - "კაკაბაძე პოლიკარპეს", - "კაკაბაძეების", - "კაკლიანის", - "კოტე ხიმშიაშვილის", - "კალატოზის", - "კალიუჟნის", - "კალოუბნის", - "კანდელაკის", - "კანდელაკის", - "კანკავას", - "კაპანაძის", - "კარალეთის", - "კარგარეთელის", - "კასპის", - "კაჭრეთის", - "კახიანის", - "კედია სპირიდონის", - "კეკელიძე კორნელის", - "კელაპტრიშვილი ომარის", - "კერესელიძე არჩილის", - "კერესელიძის", - "კეცხოველი ნიკოს", - "კვალეთის", - "კვალის", - "კვანტალიანის", - "კვერნაულის", - "კვესეთის", - "კიევის", - "კიკეთის", - "კიკვიძის", - "კისისხევის", - "კიშინიოვის", - "კლდეკარის", - "კლდიაშვილის", - "კნოლევის", - "კობახიძის", - "კობერიძის", - "კოდალოს", - "კოდორის", - "კოკინაკის", - "კოლმეურნეობის ველის", - "კოლხეთის", - "კომუნის", - "კონდოლის", - "კონსტიტუციის", - "კოფცოვის", - "კოსტავას", - "კოტეტიშვილი ვახტანგის", - "კოშკოვანის", - "კოხრეიძის", - "კოჯრის", - "ჯ. კახიძის", - "კრწანისის", - "კუმისის", - "კუპრაძის", - "კურნატოვსკის", - "კურსების", - "კურსკის", - "კუფტინის", - "ლაგოდეხის", - "ლაზოს", - "ლაითურის", - "ლაილაშის", - "ლალიონის", - "ლამის", - "ლამისყანის", - "ლანჩხუთის", - "ლარეხის", - "ლარსის", - "ლაღიძე მიტროფანეს", - "ლაღიძე რევაზის", - "ლებარდეს", - "ლეკიშვილის", - "ლენტეხის", - "ლეონიძე გიორგის", - "ლეჟავას", - "ლერმონტოვის", - "ლერწმის", - "ლესელიძის", - "ლესია უკრაინკას", - "ლეჩხუმის", - "ლიახვის", - "ლიბანის", - "ლიკანის", - "ლისაშვილის", - "ლიუბოვსკის", - "ლიხაურის", - "ლიხის", - "ლომაურის", - "ლომთათიძის", - "ლომონოსოვის", - "ლორთქიფანიძე გრიგოლის", - "ლორთქიფანიძის", - "ლოჭინის", - "ლუბლიანას", - "ლუსიანინის", - "მაზნიაშვილის", - "მათიაშვილის", - "მაიაკოვსკის", - "მამასახლისოვის", - "მამკოდის", - "მამკოდის", - "მამრაძის", - "მანაგაძე ალეხსანდეს", - "მანავის", - "მანგლისის", - "მანიჯაშვილი კახას", - "მანჯგალაძე ეროსის", - "მარაბდის", - "მარგიანი რევაზის", - "მარელისის", - "მარი ნიკოს", - "მარიჯანის", - "მარტვილის", - "მარტყოფის", - "მარუაშვილი გიორგის", - "მარუხის გმირების", - "მარჯანიშვილი კოტეს", - "მარჯანიშვილი კოტეს", - "მაღალაშვილის", - "მაღაროს", - "მაჩაბელი ივანეს", - "მაჩხაანის", - "მაცესტის", - "მაჭრის", - "მახათას", - "მახინჯაურის", - "მგალობლიშვილის", - "მებაღიშვილის", - "მეგობრობის", - "მეგრელაძის", - "მეველეს", - "მელაანის", - "მელიქიშვილის", - "მესხეთის", - "მესხიას", - "მესხიშვილი ალექსის", - "მესხიშვილის", - "მეტეხის", - "მეუნარგიას", - "მექანიზაციის", - "მეჯვრისხევის", - "მთავარანგელოზის", - "მთაწმინდის", - "მთისძირის", - "მიმინოშვილი რომანის", - "მინდელაურის", - "მინდელის", - "მირზა მეფის", - "მირზაანის", - "მიროტაძის", - "მიტინგის", - "მიქატაძის", - "მიქატაძის", - "მიქელაძე ევგენის", - "მიქელაძის", - "მიშველაძე არჩილის", - "მიჩურინის", - "მიცკევიჩის", - "მნათობის", - "მოლითის", - "მოლოკოვის", - "მორეტის", - "მოსაშვილის", - "მოსე ხონელის", - "მოსიძე ვახტანგის", - "მოსტკოვის", - "მოსულიშვილის", - "მრევლიშვილის", - "მტკვრის", - "მუკუზანის", - "მუსხელიშვილის", - "მუხაძის", - "მუხაძის", - "მუხრანის", - "მშველიძის", - "მცხეთის", - "ნაბახტაურის", - "ნაგომარის", - "ნადიკვარის", - "ნადირაძე კოლაუს", - "ნავთლუღის", - "ნათაძის", - "ნაკადულის", - "ნიშნიანიძის", - "ნანეიშვილი ვიქტორის", - "ნანეიშვილი ვლადიმერის", - "ნარგიზის", - "ნასაკირალის", - "ნასიძე სულხანის", - "ნაქალაქევის", - "ნაქერალას", - "ნიაბის", - "ნიაღვრის", - "ნიზამის", - "ნიკოლაძე ნიკოს", - "ნინიძის", - "ნიორაძის", - "ნოვოროსისკის", - "ნონეშვილი იოსების", - "ნოსირის", - "ნოსტეს", - "ნუცუბიძის", - "ობსერვატორიის", - "ოდესის", - "ონიაშვილის", - "ონის", - "ოჟიოს", - "ორბეთის", - "ორბელების", - "ორთაჭალის", - "ორპირის", - "ორხევის", - "ოსეთის", - "ოსიაურის", - "ოფრეთის", - "ოქრომჭედლების", - "ოქროყანის", - "ოჩამჩირის", - "ოცხელების", - "ოძელაშვილის", - "ოძისის", - "პაიჭაძის", - "პალიასტომის", - "პანკისის", - "პასტერის", - "პატარიძის", - "პატარძეულის", - "პეტეფი შანდორის", - "პეტრე იბერის", - "პეტრიაშვილის", - "პეტრიწის", - "პიატიგორსკის", - "პიონერის", - "პისარევის", - "პლატონის", - "პუშკინი ალექსანდრეს", - "ჟველაურის", - "ჟინვალის", - "ჟონეთის", - "ჟორესის", - "ჟღენტის", - "რადიანი შალვას", - "რაზიკაშვილის", - "რაზმაძის", - "რატევანის", - "რატილის", - "რაჭის", - "რევოლუცის", - "რთველაძის", - "რიონის", - "რიონჰესის", - "რიწის", - "რკინიგზის", - "რკინის", - "როდენის", - "როსტოვის", - "როსტომაშვილის", - "რუისპირის", - "რუსთაველის", - "რჩეულიშვილის", - "საადის", - "სააკაძე პაატას", - "სააკაძის", - "საბადურის", - "საბანისძის", - "საბაშვილის", - "საგარეჯოს", - "საგურამოს", - "სადმელის", - "სავანელის", - "სათემოს", - "საიათნოვას", - "საირმის", - "სალამის", - "სალხინოს", - "სამამულო ომის გმირების", - "სამგორის", - "სამტრედიის", - "სამურზაყანოს", - "სამურის", - "სამღებროს", - "სამღერეთის", - "სამშვილდეს", - "სანავარდოს", - "სანკტ-პეტერბურგის", - "სარაჯიშვილი დავითის", - "სარაჯიშვილი პეტრეს", - "სართანიას", - "სართიჭალის", - "სარკინეთის", - "საქანელას", - "საქარის", - "საყვირის", - "საჩხერის", - "საცხენისის", - "საჭილაოს", - "სახოკიას", - "სევანის", - "სენაკის", - "სვანეთის", - "გუდაურის", - "სვირის", - "სიონის", - "სიღნაღის", - "სიხარულიძის", - "სკოლის", - "სომხეთის", - "სოხუმის", - "სოღანლუღის", - "სპანდარიანის", - "სპარტაკის", - "სტამბის", - "სტანისლავსკის", - "სტურუას", - "სუვოროვის", - "სულიაშვილის", - "სულხანიშვილის", - "სულხან-საბას", - "სუმბატაშვილ-იუჟინსკის", - "სუნდუკიანის", - "სურამის", - "სურგულაძის", - "სხვიტორის", - "სხირტლაძის", - "სხულუხიას", - "ტაბახმელას", - "ტაბიძე ტიციანის", - "ტანძიის", - "ტარიელის", - "ტატიშვილი ერეკლეს", - "ტატიშვილის", - "ტაშირის", - "ტაშკენტის", - "ტელეგრაფის", - "ტეტელაშვილის", - "ტეხურის", - "ტვიშის", - "ტიბაანის", - "ტირიფონის", - "ტიულენევის", - "ტიხონოვის", - "ტოლენჯის", - "ტოლსტოის", - "ტოლსტონოგოვის", - "ტრანსპორტის", - "ტრაქტორის", - "ტრიკოტაჟის", - "ტურგენევის", - "ტუსკიას", - "ტყავის", - "ტყეკულტურის", - "ტყვარჩელის", - "ტყვიავის", - "ტყიბულის", - "ტყის", - "უბილავას", - "უზნაძე დიმიტრის", - "უზნაძის", - "უიარაღოს", - "უკლება კირილეს", - "უმიკაშვილის", - "უნივერსიტეტის", - "ურბნისის", - "ურეკის", - "ურიდიას", - "ურიცკის", - "უფლისციხის", - "უშაკოვის", - "უჩანეიშვილი ირაკლის", - "უწერის", - "უჯარმის", - "ფაბრიკის", - "ფალიაშვილის", - "ფანასკერტელ-ციციშვილის", - "ფანჯიკიძის", - "ფარავნის", - "ფასანაურის", - "ფაღავა ირაკლის", - "ფერისცვალების", - "ფიზკულტურის", - "ფილიას", - "ფირდოუსის", - "ფიროსმანის", - "ფიფიას", - "ფოთის", - "ფოსტის", - "ფოცხვერაშვილის", - "ფოცხიაშვილი მორისის", - "ფურცელაძის", - "ფშავის", - "ქავთარაძის", - "ქარელის", - "ქართველიშვილი ლევანის", - "ქართლის", - "ქებურიას", - "ქედის", - "ქერჩის", - "ქვალონის", - "ქვიშხეთის", - "ქიაჩელის", - "ქიზიყის", - "ქინქლაძე ოთარის", - "ქინძმარაულის", - "ქიქოძე გერონტის", - "ქობულაძის", - "ქობულეთის", - "ქსნის", - "ქსოვრელის", - "ქუთათელაძის", - "ქუთათელაძე აპოლონის", - "ქუთაისის", - "ქუმსიაშვილის", - "ქურდიანი არჩილის", - "ქურდიანი ზაქარიას", - "ქურხულის", - "ქუჩიშვილის", - "ღამბაშიძის", - "ღრმაღელეს", - "ღუდუშაური ოთარის", - "ყავლაშვილი შოთას", - "ყარყარაშვილის", - "ყვარელის", - "ყირიმის", - "ყიფიანის", - "ყიფშიძის", - "ყუშიტაშვილის", - "შავგულიძის", - "შავთელის", - "შავი ზღვის", - "შავიშვილის", - "შავნაბადას", - "შავსოფელის", - "შანიძე აკაკის", - "შანშიაშვილის", - "შარაშიძის", - "შარდენის", - "შარტავა ჟიულის", - "შატბერაშვილის", - "შატილის", - "შაქრიანის", - "შევჩენკო ტარასის", - "შენგელაიას", - "შერვაშიძის", - "შილდის", - "შინდისის", - "შიო მღვიმელის", - "შირაქის", - "შოვის", - "შორაპნის", - "შროშის", - "შუამთის", - "შურდულის", - "შხეფის", - "ჩაიკოვსკის", - "ჩაილურის", - "ჩაისუბნის", - "ჩანჩიბაძის", - "ჩარგლის", - "ჩარხის", - "ჩაქვის", - "ჩაჩავას", - "ჩახრუხაძის", - "ჩერნიშევსკის", - "ჩერქეზიშვილის", - "ჩეჩელაშვილის", - "ჩეხოვის", - "ჩიკვანიას", - "ჩიტაიას", - "ჩიტაძის", - "ჩიქობავა არნოლდის", - "ჩიქოვანის", - "ჩკალოვის", - "ჩოლოყაშვილი ქაიხოსროს", - "ჩოჩუას", - "ჩოხატაურის", - "ჩოხელის", - "ჩუბინაშვილი გიორგის", - "ჩუბინიძის", - "ჩხიკვაძის", - "ცაბაძე გიორგის", - "ცაგარელი არჩილის", - "ცაგერის", - "ცაიშის", - "ცემის", - "ციმაკურიძის", - "ცინცაძე კალისტრატეს", - "ცისარტკელას", - "ცისკრის", - "ციხისძირის", - "ცოდნისკარის", - "ცურტაველი იაკობის", - "ცუცქირიძის", - "ცხემის", - "ცხვედაძის", - "ცხრა აპრილის", - "ცხრა ძმის", - "ძეგამის", - "ძევერის", - "ძმობის", - "ძოწენიძის", - "წავკისის", - "წალენჯიხის", - "წალკის", - "წაღვერის", - "წერეთლის", - "წერნაკის", - "წერონისის", - "წიკლაურის", - "წინამძღვრიშვილის", - "წინამძღვრიშვილის", - "წინანაურის", - "წინანდლის", - "წინაუბნის", - "წიწამურის", - "წმ. ნიკოლოზის", - "წნორისწყლის", - "წრომის", - "წულაძის", - "წულუკიძის", - "წურწუმიას", - "წუწუნავას", - "წუწხვატის", - "წყალსადენის", - "წყალტუბოს", - "წყაროს", - "ჭაბუკიანი ვახტანგის", - "ჭავჭავაძე ზურაბის", - "ჭავჭავაძე ალექსანდრეს", - "ჭალადიდის", - "ჭანტურია გიას", - "ჭიათურის", - "ჭიაურელი მიხეილის", - "ჭიჭინაძე ზაქარიას", - "ჭოველიძე თამარის", - "ჭონქაძე დანიელის", - "ჭოპორტის", - "ჭოროხის", - "ჭრებალოს", - "ჭრელაშვილის", - "ხაბეიშვილის", - "ხაზინის", - "ხანძთელი გრიგოლის", - "ხარაბაძის", - "ხარაგაულის", - "ხარფუხის", - "ხაჩატურიანის", - "ხევის", - "ხევისუბნის", - "ხევსურეთის", - "ხევძმარის", - "ხეთაგუროვის", - "ხერგიანის", - "ხერთვისის", - "ხერხეულიძეების", - "ხეჩუაშვილის", - "ხვამლის", - "ხვანჭკარის", - "ხვედელიანის", - "ხვინგიას", - "ხვიჩია იპოლიტეს", - "ხიდის", - "ხიდისთავის", - "ხივინის", - "ხიმშიაშვილის", - "ხმელნიცკის", - "ხოდაშენის", - "ხომლელის", - "ხონის", - "ხორავა აკაკის", - "ხორნაბუჯის", - "ხოშარაულის", - "ხრამჰესის", - "ხრესილის", - "ხუდადოვის", - "ჯაბაურის", - "ჯაბიძის", - "ჯავახეთის", - "ჯავახიშვილი ივანეს", - "ჯავახიშვილი მიხეილის", - "ჯავის", - "ჯამბულის", - "ჯანაშვილის", - "ჯანაშიას", - "ჯანჯღავას", - "ჯვარედინის", - "პოლიტკოვსკაიას", - "ჯიქიას", - "ჯორბენაძის", - "ჯორჯაძის", - "ჰოსპიტალის", - ) - - # Source: List of cities and towns in Georgia (Wikipedia) - # https://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Georgia_(country) - city_names = ( - "აბაშა", - "ამბროლაური", - "ახალი ათონი", - "ახალქალაქი", - "ახალციხე", - "ახმეტა", - "ბათუმი", - "ბაღდათი", - "ბოლნისი", - "ბორჯომი", - "გაგრა", - "გალი", - "გარდაბანი", - "გორი", - "გუდაუთა", - "გურჯაანი", - "დედოფლისწყარო", - "დმანისი", - "დუშეთი", - "ვალე", - "ვანი", - "ზესტაფონი", - "ზუგდიდი", - "თბილისი", - "თეთრიწყარო", - "თელავი", - "თერჯოლა", - "კასპი", - "ლაგოდეხი", - "ლანჩხუთი", - "მარნეული", - "მარტვილი", - "მცხეთა", - "ნინოწმინდა", - "ოზურგეთი", - "ონი", - "ოჩამჩირე", - "რუსთავი", - "საგარეჯო", - "სამტრედია", - "საჩხერე", - "სენაკი", - "სიღნაღი", - "სოხუმი", - "ტყვარჩელი", - "ტყიბული", - "ფოთი", - "ქარელი", - "ქობულეთი", - "ქუთაისი", - "ყვარელი", - "ცაგერი", - "ცხინვალი", - "წალენჯიხა", - "წალკა", - "წნორი", - "წყალტუბო", - "ჭიათურა", - "ხაშური", - "ხობი", - "ხონი", - "ჯვარი", - ) - - def street_title(self) -> str: - return self.random_element(self.street_titles) - - def city_name(self) -> str: - return self.random_element(self.city_names) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ka_GE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/ka_GE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e54c371..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/ka_GE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ko_KR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/ko_KR/__init__.py deleted file mode 100644 index cdd004f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/ko_KR/__init__.py +++ /dev/null @@ -1,643 +0,0 @@ -import string - -from .. import Provider as AddressProvider - -ALPHABET = string.ascii_uppercase - - -class Provider(AddressProvider): - """ - Korean Address Provider - ======================= - - Korea has two address and postal code system. - - Address: - - Address based on land parcel numbers - (지번 주소, OLD, but someone use consistently) - - Address based on road names and building numbers (도로명 주소, NEW) - - :meth:`land_address` generate Address based on land parcel numbers and - :meth:`road_address` generate Address based on road names and building - numbers. - - Postal code: - - Old postal code (6-digit, OLD and dead) - - New postal code (5-digit, New) - - :meth:`old_postal_code` and :meth:`postcode` generate old 6-digit code - and :meth:`postal_code` generate newer 5-digit code. - - Reference: - - `Official Confirmation Prividing that Old and New Addresses are Identical`__ - (warn: cert error) - - __ https://www.juso.go.kr/addridentity/AddrIdentityHelp.htm - - """ - - building_suffixes = ( - "빌라", - "아파트", - "연립", - "마을", - "타운", - "타워", - ) - road_suffixes = ("로", "길", "거리", "가") - town_suffixes = ("동", "읍", "면", "리", "마을") - postcode_formats = ("###-###",) - new_postal_code_formats = ("#####",) - metropolitan_cities = ( - "서울특별시", - "부산광역시", - "대구광역시", - "인천광역시", - "광주광역시", - "대전광역시", - "울산광역시", - "세종특별자치시", - ) - provinces = ( - "경기도", - "강원도", - "충청북도", - "충청남도", - "전라북도", - "전라남도", - "경상북도", - "경상남도", - "제주특별자치도", - ) - cities = ( - "파주시", - "수원시", - "수원시 권선구", - "수원시 팔달구", - "수원시 영통구", - "성남시", - "성남시 수정구", - "성남시 중원구", - "화성시", - "성남시 분당구", - "안양시", - "안양시 만안구", - "안양시 동안구", - "부천시", - "부천시 원미구", - "부천시 소사구", - "부천시 오정구", - "광명시", - "평택시", - "이천시", - "동두천시", - "안산시", - "안산시 상록구", - "안산시 단원구", - "안성시", - "고양시", - "고양시 덕양구", - "고양시 일산동구", - "고양시 일산서구", - "과천시", - "구리시", - "남양주시", - "오산시", - "시흥시", - "군포시", - "의왕시", - "하남시", - "김포시", - "용인시", - "용인시 처인구", - "용인시 기흥구", - "용인시 수지구", - "연천군", - "가평군", - "양평군", - "광주시", - "포천시", - "양주시", - "수원시 장안구", - "의정부시", - "여주시", - "춘천시", - "원주시", - "강릉시", - "동해시", - "태백시", - "속초시", - "삼척시", - "홍천군", - "횡성군", - "영월군", - "평창군", - "정선군", - "철원군", - "화천군", - "양구군", - "인제군", - "고성군", - "양양군", - "천안시 동남구", - "천안시 서북구", - "공주시", - "보령시", - "아산시", - "서산시", - "논산시", - "계룡시", - "당진시", - "금산군", - "부여군", - "서천군", - "청양군", - "홍성군", - "예산군", - "태안군", - "청주시 상당구", - "청주시 서원구", - "청주시 흥덕구", - "청주시 청원구", - "충주시", - "제천시", - "보은군", - "옥천군", - "영동군", - "증평군", - "진천군", - "괴산군", - "음성군", - "단양군", - ) - road_names = ( - "압구정", - "도산대", - "학동", - "봉은사", - "테헤란", - "역삼", - "논현", - "언주", - "강남대", - "양재천", - "삼성", - "영동대", - "개포", - "선릉", - "반포대", - "서초중앙", - "서초대", - "잠실", - "석촌호수", - "백제고분", - "가락", - "오금", - ) - boroughs = ( - "종로구", - "중구", - "용산구", - "성동구", - "광진구", - "동대문구", - "중랑구", - "성북구", - "강북구", - "도봉구", - "노원구", - "은평구", - "서대문구", - "마포구", - "양천구", - "강서구", - "구로구", - "금천구", - "영등포구", - "동작구", - "관악구", - "서초구", - "강남구", - "송파구", - "강동구", - "동구", - "서구", - "남구", - "북구", - ) - countries = ( - "가나", - "가봉", - "가이아나", - "감비아", - "과테말라", - "그레나다", - "그리스", - "기니", - "기니비사우", - "나미비아", - "나우루", - "나이지리아", - "남수단", - "남아프리카 공화국", - "네덜란드 왕국", - "네팔", - "노르웨이", - "뉴질랜드", - "니제르", - "니카라과", - "대한민국", - "덴마크", - "도미니카 공화국", - "도미니카 연방", - "독일", - "동티모르", - "라오스", - "라이베리아", - "라트비아", - "러시아", - "레바논", - "레소토", - "루마니아", - "룩셈부르크", - "르완다", - "리비아", - "리투아니아", - "리히텐슈타인", - "마다가스카르", - "마셜 제도", - "북마케도니아 공화국", - "말라위", - "말레이시아", - "말리", - "멕시코", - "모나코", - "모로코", - "모리셔스", - "모리타니", - "모잠비크", - "몬테네그로", - "몰도바", - "몰디브", - "몰타", - "몽골", - "미국", - "미얀마", - "미크로네시아 연방", - "바누아투", - "바레인", - "바베이도스", - "바하마", - "방글라데시", - "베냉", - "베네수엘라", - "베트남", - "벨기에", - "벨라루스", - "벨리즈", - "보스니아 헤르체고비나", - "보츠와나", - "볼리비아", - "부룬디", - "부르키나파소", - "부탄", - "불가리아", - "브라질", - "브루나이", - "사모아", - "사우디아라비아", - "산마리노", - "상투메 프린시페", - "세네갈", - "세르비아", - "세이셸", - "세인트루시아", - "세인트빈센트 그레나딘", - "세인트키츠 네비스", - "소말리아", - "솔로몬 제도", - "수단", - "수리남", - "스리랑카", - "스와질란드", - "스웨덴", - "스위스", - "스페인", - "슬로바키아", - "슬로베니아", - "시리아", - "시에라리온 공화국", - "싱가포르", - "아랍에미리트", - "아르메니아", - "아르헨티나", - "아이슬란드", - "아이티", - "아일랜드", - "아제르바이잔", - "아프가니스탄", - "안도라", - "알바니아", - "알제리", - "앙골라", - "앤티가 바부다", - "에리트레아", - "에스토니아", - "에콰도르", - "에티오피아", - "엘살바도르", - "영국", - "예멘", - "오만", - "오스트레일리아", - "오스트리아", - "온두라스", - "요르단", - "우간다", - "우루과이", - "우즈베키스탄", - "우크라이나", - "이라크", - "이란", - "이스라엘", - "이집트", - "이탈리아", - "인도네시아", - "일본", - "자메이카", - "잠비아", - "적도 기니", - "조선민주주의인민공화국", - "조지아", - "중앙아프리카 공화국", - "중화인민공화국", - "지부티", - "짐바브웨", - "차드", - "체코", - "칠레", - "카메룬", - "카보베르데", - "카자흐스탄", - "카타르", - "캄보디아", - "캐나다", - "케냐", - "코모로", - "코스타리카", - "코트디부아르", - "콜롬비아", - "콩고 공화국", - "콩고 민주 공화국", - "쿠바", - "쿠웨이트", - "크로아티아", - "키르기스스탄", - "키리바시", - "키프로스", - "타이", - "타지키스탄", - "탄자니아", - "터키", - "토고", - "통가", - "투르크메니스탄", - "투발루", - "튀니지", - "트리니다드 토바고", - "파나마", - "파라과이", - "파키스탄", - "파푸아 뉴기니", - "팔라우", - "페루", - "포르투갈", - "폴란드", - "프랑스", - "피지", - "핀란드", - "필리핀", - "헝가리", - ) - building_dongs = ( - "가", - "나", - "다", - "라", - "마", - "바", - "##", - "###", - ) + tuple(ALPHABET) - land_numbers = ( - "###", - "###-#", - "###-##", - ) - road_numbers = ( - "#", - "##", - "###", - ) - - town_formats = ( - "{{first_name}}{{last_name}}{{town_suffix}}", - "{{first_name}}{{last_name}}{{last_name}}{{town_suffix}}", - ) - building_name_formats = ( - "{{first_name}}{{last_name}}{{building_suffix}}", - "{{first_name}}{{last_name}}{{last_name}}{{building_suffix}}", - ) - address_detail_formats = ( - "{{building_name}}", - "{{building_name}} ###호", - "{{building_name}} {{building_dong}}동 ###호", - ) - road_formats = ( - "{{road_name}}{{road_suffix}} {{building_number}}", - "{{road_name}}{{road_number}}{{road_suffix}} {{building_number}}", - ) - road_address_formats = ( - "{{metropolitan_city}} {{borough}} {{road}}", - "{{province}} {{city}} {{road}}", - "{{metropolitan_city}} {{borough}} {{road}} ({{town}})", - "{{province}} {{city}} {{road}} ({{town}})", - ) - land_address_formats = ( - "{{metropolitan_city}} {{borough}} {{town}} {{land_number}}", - "{{province}} {{city}} {{town}} {{land_number}}", - ) - - # Keep backward compatibility - city_suffixes = ("시",) - street_suffixes = road_suffixes - street_name_formats = ("{{road_name}}",) - street_address_formats = road_address_formats - address_formats = road_address_formats - - def land_number(self) -> str: - """ - :example: 507 - """ - return self.bothify(self.random_element(self.land_numbers)) - - def land_address(self) -> str: - """ - :example: 세종특별자치시 어진동 507 - """ - pattern: str = self.random_element(self.land_address_formats) - return self.generator.parse(pattern) - - def road_number(self) -> str: - """ - :example: 24 - """ - return self.bothify(self.random_element(self.road_numbers)) - - def road_address(self) -> str: - """ - :example: 세종특별자치시 도움5로 19 (어진동) - """ - pattern: str = self.random_element(self.road_address_formats) - return self.generator.parse(pattern) - - def address_detail(self) -> str: - """ - :example: 가나아파트 가동 102호 - """ - pattern: str = self.bothify(self.random_element(self.address_detail_formats)) - return self.generator.parse(pattern) - - def road(self) -> str: - """ - :example: 도움5로 - """ - pattern: str = self.random_element(self.road_formats) - return self.generator.parse(pattern) - - def road_name(self) -> str: - """ - :example: 압구정 - """ - return self.random_element(self.road_names) - - def road_suffix(self) -> str: - """ - :example: 길 - """ - return self.random_element(self.road_suffixes) - - def building_number(self) -> str: - """ - :returns: A random building number - - Generates building number(건물 번호). There are 3 types of building number with current ROK addressing system. - (1) 19: A typical format. Only marks one building. - (2) 지하11: The building entrance is underground. - (3) 132-1: Several buildings are distinguished with sub-building-number(가지 번호). - - Generating probability is arbitrarily. - - :example: 19, 지하11, 143-1 - """ - if self.random_int() % 9 < 1: - return self.building_number_underground() - elif self.random_int() % 9 < 4: - return self.building_number_segregated() - else: - return "%d" % self.generator.random.randint(1, 999) - - def building_number_underground(self) -> str: - """ - :returns: A random building number with undergrond entrances - - :example: 지하11 - """ - return "지하%d" % (self.generator.random.randint(1, 999)) - - def building_number_segregated(self) -> str: - """ - :returns: A random building number distinguished with sub-building-number(가지 번호) - - :example: 143-1 - """ - main_building_number = self.generator.random.randint(1, 999) - sub_building_number = self.generator.random.randint(1, 99) - return "%d-%d" % (main_building_number, sub_building_number) - - def metropolitan_city(self) -> str: - """ - :example: 서울특별시 - """ - return self.random_element(self.metropolitan_cities) - - def administrative_unit(self) -> str: - """ - :example: 경기도 - """ - return self.random_element(self.provinces) - - province = administrative_unit - - def city(self) -> str: - """ - :example: 고양시 - """ - pattern: str = self.random_element(self.cities) - return self.generator.parse(pattern) - - def borough(self) -> str: - """ - :example: 중구 - """ - return self.random_element(self.boroughs) - - def town(self) -> str: - """ - :example: 가나동 - """ - pattern: str = self.random_element(self.town_formats) - return self.generator.parse(pattern) - - def town_suffix(self) -> str: - """ - :example: 동 - """ - return self.random_element(self.town_suffixes) - - def building_name(self) -> str: - """ - :example: 김구아파트 - """ - pattern: str = self.random_element(self.building_name_formats) - return self.generator.parse(pattern) - - def building_suffix(self) -> str: - """ - :example: 아파트 - """ - return self.random_element(self.building_suffixes) - - def building_dong(self) -> str: - """ - :example: 가 - """ - return self.bothify(self.random_element(self.building_dongs)) - - def old_postal_code(self) -> str: - """ - :example: 123-456 - """ - return self.bothify(self.random_element(self.postcode_formats)) - - def postcode(self) -> str: - """ - :example: 12345 - """ - return self.bothify(self.random_element(self.new_postal_code_formats)) - - def postal_code(self) -> str: - """ - :example: 12345 - """ - return self.postcode() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ko_KR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/ko_KR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 6188846..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/ko_KR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ne_NP/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/ne_NP/__init__.py deleted file mode 100644 index 206b40c..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/ne_NP/__init__.py +++ /dev/null @@ -1,621 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - building_number_formats = ("#", "##", "###") - street_name_formats = ("{{last_name}} {{street_suffix}}",) - street_address_formats = ("{{street_name}}",) - city_formats = ("{{city}}",) - # http://www.nepalpost.gov.np/index.php/postal-codes-of-nepal - postcode_formats = ("#####",) - - address_formats = ("{{street_name}} {{building_prefix}} {{building_number}} \n{{city}}\n{{district}} {{postcode}}",) - - street_suffixes = ( - "मार्ग", - "आश्रम", - "बाटो", - "पथ", - "गल्ली", - "गेट", - "हाईट", - "टार", - "रोड", - "कुना", - "चौर", - "निवास", - ) - - building_prefixes = ("वडा", "घर") - # https://en.wikipedia.org/wiki/List_of_sovereign_states - countries = ( - "अंगोला", - "अक्रोटिरी र धेकेलिया", - "अजरबैजान", - "अफगानिस्तान", - "अमेरिकी सामोआ", - "अरुबा", - "अर्जेन्टिना", - "अर्मेनिया", - "अलडेर्नी", - "अल्जेरिया", - "अल्बानिया", - "अस्ट्रिया", - "अस्ट्रेलिया", - "आइजल अफ म्यान", - "आइभोरी कोस्ट", - "आइसल्याण्ड", - "आजाद कश्मीर", - "आयरल्याण्ड", - "इक्वेटोरियल गिनी", - "इक्वेडर", - "इजरायल", - "इटाली", - "इण्डोनेशिया", - "इथियोपिया", - "इराक", - "इरान", - "इस्टोनिया", - "उज्बेकिस्तान", - "उत्तर कोरिया", - "उत्तरी मारिआना टापु", - "उत्तरी साइप्रस", - "उरुग्वे", - "एङगुइला", - "एण्डोरा", - "एन्टिगुआ र बर्बुडा", - "एरिट्रिया", - "एल साल्भादोर", - "एशमोर र कर्टियर टापु", - "ओमान", - "कजाख्स्तान", - "कतार", - "कम्बोडिया", - "किरिबाटी", - "किर्गिजस्तान", - "कुक द्वीप", - "कुराकाओ", - "कुवैत", - "केन्या", - "केप भर्ड", - "केम्यान टापु", - "कोकोस टापु", - "कोटे डी आइभोरी", - "कोमोरोस", - "कोरल सी टापु क्षेत्र", - "कोलम्बिया", - "कोसोभो", - "कोस्टारिका", - "क्यानडा", - "क्यामेरून", - "क्युबा", - "क्रिसमस टापु", - "क्रोएसिया", - "क्लिप्परटन द्वीप", - "क्वीन माउड ल्याण्ड", - "गणतन्त्र कङ्गो", - "गणतन्त्र कोरिया", - "गणतन्त्र स्पर्स्का", - "गाबोन", - "गिनी", - "गिब्राल्टार", - "गिलगीत", - "गुयना", - "गुर्न्जी", - "ग्रिनाडा", - "ग्रीनल्याण्ड", - "ग्रीस", - "ग्वाटेमाला", - "ग्वाम", - "घाना", - "चाड", - "चिली", - "चीन", - "चेक गणतन्त्र", - "जमैका", - "जर्मनी", - "जर्सी", - "जापान", - "जाम्बिया", - "जिबुटी", - "जोर्डन", - "टर्की", - "टिमोर", - "टुभालु", - "टुर्क्स तथा काइकोस टापु", - "टोंगा", - "टोकेलाउ", - "टोगो", - "ट्युनिसिया", - "ट्रान्सनिसट्रिया", - "ट्रिनिडाड र टोबागो", - "डेनमार्क", - "डोमिनिकन गणतन्त्र", - "डोमिनिका", - "तन्जानिया", - "ताइवान", - "ताजिकिस्तान", - "तुर्कमेनिस्तान", - "थाइल्याण्ड", - "दक्षिण अफ्रिका", - "दक्षिण ओसेटिया", - "दक्षिण कोरिया", - "दक्षिण जर्जिया तथा दक्षिण स्याण्डवीच टापु", - "दक्षिणी सुडान", - "नर्वे", - "नर्वेको", - "नाइजर", - "नाइजेरिया", - "नाउरु", - "नागोर्नो", - "नामिबिया", - "निकाराग्वा", - "नियु", - "नेदरल्याण्ड", - "नेपाल", - "नोर्फोक टापु", - "न्यु क्यालोडेनिया", - "न्युजिल्यान्ड", - "पपुवा न्युगिनी", - "पलाउ", - "पाकिस्तान", - "पानामा", - "पाराग्वे", - "पिटकेर्न टापु", - "पिटर द्वीप", - "पूर्वी टिमोर", - "पेरु", - "पोर्चुगल", - "पोल्याण्ड", - "प्यालेस्टाइन", - "प्युर्तो रिको", - "प्रजातान्त्रिक गणतन्त्र कंगो", - "प्रजातान्त्रिक गणतन्त्र कोरिया", - "प्रिडेनेस्ट्रोभी", - "फकल्याण्ड टापु", - "फरोइ टापु", - "फिजी", - "फिनल्याण्ड", - "फिलिपिन्स", - "फ्रान्स", - "फ्रेन्च दक्षिणी र अन्टार्कटिक द्वीप", - "फ्रेन्च पोलिनेसिया", - "बंगलादेश", - "बर्मा", - "बर्मुडा", - "बहराइन", - "बहामस", - "बार्बाडोस", - "बुरुन्डी", - "बुर्किना फासो", - "बुल्गेरिया", - "बेनिन", - "बेलारूस", - "बेलिज", - "बेल्जियम", - "बोत्स्वाना", - "बोलिभिया", - "बोस्निया र हर्जगोभिना", - "बोस्निया र हर्जगोभिना संघ", - "बौभेट द्वीप", - "ब्राजिल", - "ब्रिटिस भर्जिन टापु", - "ब्रुनेई", - "भानुअटु", - "भारत", - "भियतनाम", - "भुटान", - "भेनेजुएला", - "भ्याटिकन", - "भ्याटिकन सिटी", - "मकाउ", - "मङ्गोलिया", - "मध्य अफ्रिकी गणतन्त्र", - "मलावी", - "मलेशिया", - "माइक्रोनेसियाको संघीय राज्य", - "माडागास्कर", - "मार्शल द्वीप", - "माली", - "माल्टा", - "माल्दिभ्स", - "मिश्र", - "मेक्सिको", - "मोजाम्बिक", - "मोनाको", - "मोन्टसेराट", - "मोन्टेनेग्रो", - "मोरक्को", - "मोल्डोभा", - "मौरिसनिया", - "मौरिसस", - "म्यानमार", - "उत्तरी म्यासेडोनिया", - "यमन", - "युक्रेन", - "युगान्डा", - "रसिया", - "रुवाण्डा", - "रोमानिया", - "रोस डिपेन्डेन्सी", - "लक्जेम्बर्ग", - "लाईबेरिया", - "लाओस", - "लात्भिया", - "लिचटेन्स्टाइन", - "लिथुआनिया", - "लिबिया", - "लेबनान", - "लेसोथो", - "वाल्लिस र फुटुना", - "श्रीलंका", - "संघीय राज्य माइक्रोनेसिया", - "संयुक्त अधिराज्य", - "संयुक्त अरब इमिरेट्स", - "संयुक्त राज्य अमेरिका", - "संयुक्त राज्य भर्जिन टापु", - "सर्बिया", - "साइप्रस", - "साउदी अरब", - "साओ टोमे र प्रिन्सिपे", - "सान मारिनो", - "साबा", - "सामोआ", - "साहरवी अरब लोकतान्त्रिक गणतन्त्र", - "सिंगापुर", - "सिन्ट मार्टिन", - "सीरियन कुर्दिस्तान", - "सीरिया", - "सुडान", - "सुरिनेम", - "सेनेगल", - "सेन्ट किट्स र नेभिस", - "सेन्ट पियेर्रे र मिकुएलन", - "सेन्ट बार्थेलेमी", - "सेन्ट भिन्सेन्ट र ग्रेनाडाइन्स", - "सेन्ट मार्टिन", - "सेन्ट लुसिया", - "सेन्ट हेलेना", - "सेरा लियोन", - "सेसेल्स", - "सोमालिया", - "सोमालील्याण्ड", - "सोलोमन द्वीप", - "स्पेन", - "स्लोभाकिया", - "स्लोभेनिया", - "स्वाजिल्याण्ड", - "स्विजरल्याण्ड", - "स्वीडेन", - "हंगेरी", - "हङकङ", - "हर्म", - "हाइटी", - "हेयर्ड द्वीप र म्याकडोनाल्ड टापु", - "होन्डुरस", - "अबखाजिया", - "जर्जिया", - ) - - # cities are taken from - # https://en.wikipedia.org/wiki/List_of_cities_in_Nepal - cities = ( - "मिर्चैया", - "प्युठान", - "कञ्चनपुर", - "लुम्बिनी सांस्कृतिक", - "बागलुङ", - "इलाम", - "भक्तपुर", - "भद्रपुर", - "घोराही", - "स्याङ्जा", - "खैरहानी नगरपालिका", - "म्याग्दी", - "रंगेली", - "काठमाडौं", - "शनि-अर्जुन", - "पर्वत", - "सप्तरी", - "पनौती", - "जयपृथ्वी", - "लहान", - "वालिङ", - "बर्दघाट", - "डोटी", - "धरान", - "पथरी शनिश्चरे", - "चन्दननाथ", - "नवलपरासी", - "किर्तिपुर", - "दैलेख", - "सुनसरी", - "बेलौरी", - "कुस्मा", - "मकवानपुर", - "कञ्चनरूप", - "गुलरिया", - "टीकापुर", - "राजापुर", - "फिदिम", - "खोटाङ", - "धनुषाधाम", - "झापा", - "पुनर्वास", - "भक्तपुर", - "बर्दिया", - "बागलुङ", - "दमक", - "तेह्रथुम", - "नारायण", - "ताप्लेजुङ", - "तानसेन", - "पाँचखाल", - "बनेपा", - "म्याङ्लुङ", - "ललितपुर", - "दिपायल", - "अपी", - "दाङ", - "सन्धिखर्क", - "धनकुटा", - "बिरेन्द्रनगर", - "गौर", - "मोरङ", - "सङ्खुवासभा", - "लम्की-चुहा", - "बारा", - "हरिवन नगरपालिका", - "मलङ्वा", - "सिराहा", - "जनकपुर", - "सल्यान", - "सिन्धुपाल्चोक", - "दुल्लु", - "ओखलढुङ्गा", - "पाल्पा", - "इटहरी", - "रेसुङगा", - "कृष्णनगर", - "शुक्लगण्डकी", - "नुवाकोट", - "साँफेबगर", - "राजविराज", - "नेपालगंज", - "भिमेश्वर", - "ताप्लेजुङ", - "धुलिखेल", - "व्यास", - "भोजपुर", - "धादिङ", - "बेनी", - "अर्घाखाँची", - "भीमदत्त", - "रौतहट", - "जलेश्वर", - "देवदह", - "बेलवारी", - "बुटवल", - "सुर्खेत", - "मङ्गलसेन", - "कैलाली", - "धनकुटा", - "रुपन्देही", - "सल्यान", - "रामपुर", - "बिराटनगर", - "चौतारा", - "देवचुली", - "कपिलवस्तु", - "सुनवल", - "शिवराज", - "चम्पापुर (चापागाउँ)", - "भरतपुर", - "गढिमाई", - "उर्लावारी", - "लेखनाथ", - "सिद्धिचरण", - "मेचीनगर", - "चित्रवन", - "कास्की", - "गौशाला", - "पुतलीबजार", - "बिदुर", - "शम्भुनाथ", - "पर्सा", - "प्युठान", - "निजगढ", - "डडेलधुरा", - "कन्काई", - "गैंडाकोट", - "पाल्पा", - "कार्यविनायक*", - "तिलोत्तमा", - "तुलसीपुर", - "वीरगञ्ज", - "शंखरपुर*", - "अत्तरिया", - "बझाङ", - "मन्थली*", - "कपिलवस्तु", - "कटारी", - "हेटौडा", - "कलैया", - "सुन्दर दुलारी", - "सिन्धुली", - "थाहा", - "बाँके", - "ललितपुर", - "दार्चुला", - "पोखरा", - "बन्दीपुर", - "सर्लाही", - "कोहलपुर", - "सैनामैना", - "अमरागढी", - "उदयपुर", - "काठमाडौं", - "सुर्योदय", - "सिराहा", - "महोत्तरी", - "धनगढी", - "शारदा", - "काभ्रेपलाञ्चोक", - "त्रियुगा", - "रामेछाप", - "पाँचथर", - "इलाम", - "भोजपुर", - "मध्यपुर ठिमी", - "दुहवी-भलुवा", - "दशरथचन्द", - "बैतडी", - "कोशी हरैंचा", - "चापाकोट", - "दिक्तेल", - "चन्द्रपुर", - "लालबन्दी", - "चितवन", - "रत्ननगर", - "पृथ्वीनारायण", - "धनुषा", - "गुल्मी", - "बेंसीशहर", - "लमजुङ", - "अछाम", - "तनहुँ", - "खाँदबारी", - "बिर्तामोड", - "कमलामाई", - "छिरेश्वरनाथ", - "सिद्धार्थनगर", - "निलकण्ठ", - "गोर्खा", - "दोलखा", - "रामग्राम", - "इनरूवा", - "कावासोती", - "बेल्टार बसाहा", - "जुम्ला", - "ईश्वरपुर", - ) - - # district taken from - # https://www.election.gov.np/election/np/district-wise-constituency-map.html - districts = ( - "अछाम", - "अर्घाखाँची", - "इलाम", - "उदयपुर", - "ओखलढुङ्गा", - "कञ्चनपुर", - "कपिलवस्तु", - "काठमाडौं", - "काभ्रेपलाञ्चोक", - "कालीकोट", - "कास्की", - "कैलाली", - "खोटाङ", - "गुल्मी", - "गोर्खा", - "चितवन", - "जाजरकोट", - "जुम्ला", - "झापा", - "डडेल्धुरा", - "डोटी", - "डोल्पा", - "तनहुँ", - "ताप्लेजुङ", - "तेह्रथुम", - "दाङ", - "दार्चुला", - "दैलेख", - "दोलखा", - "धनकुटा", - "धनुषा", - "धादिङ", - "नवलपरासी (बर्दघाट सुस्ता पूर्व)", - "नवलपरासी (बर्दघाट सुस्ता पश्चिम)", - "नुवाकोट", - "पर्वत", - "पर्सा", - "पाँचथर", - "पाल्पा", - "प्युठान", - "बझाङ", - "बर्दिया", - "बाँके", - "बाग्लुङ", - "बाजुरा", - "बारा", - "भक्तपुर", - "भोजपुर", - "मकवानपुर", - "मनाङ", - "महोत्तरी", - "मुगु", - "मुस्ताङ", - "मोरङ", - "म्याग्दी", - "रसुवा", - "रामेछाप", - "‍रुकुम पूर्व", - "रुकुम पश्चिम", - "रूपन्देही", - "रोल्पा", - "रौतहट", - "लमजुङ्", - "ललितपुर", - "वैतडी", - "संखुवासभा", - "सप्तरी", - "सर्लाही", - "सल्यान", - "सिन्धुपलाञ्चोक", - "सिन्धुली", - "सिराहा", - "सुनसरी", - "सुर्खेत", - "सोलुखुम्बु", - "स्याङ्जा", - "हुम्ला", - ) - - # province taken from - # https://ne.wikipedia.org/wiki/%E0%A4%A8%E0%A5%87%E0%A4%AA%E0%A4%BE%E0%A4%B2%E0%A4%95%E0%A4%BE_%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A4%A6%E0%A5%87%E0%A4%B6%E0%A4%B9%E0%A4%B0%E0%A5%82 # noqa: E501 - provinces = ( - "प्रदेश नं १", - "प्रदेश नं २", - "बाग्मती प्रदेश", - "गण्डकी प्रदेश", - "प्रदेश नं ५", - "कर्णाली प्रदेश", - "सुदूरपश्चिम प्रदेश", - ) - - def administrative_unit(self) -> str: - """ - :example: सुदूरपश्चिम प्रदेश - """ - return self.random_element(self.provinces) - - province = administrative_unit - - def district(self) -> str: - """ - :example: अछाम - """ - return self.random_element(self.districts) - - def city(self) -> str: - """ - :example: कावासोती - """ - return self.random_element(self.cities) - - def building_prefix(self) -> str: - """ - :example: वडा - """ - return self.random_element(self.building_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ne_NP/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/ne_NP/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 26b9e62..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/ne_NP/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/nl_BE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/nl_BE/__init__.py deleted file mode 100644 index 1568d20..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/nl_BE/__init__.py +++ /dev/null @@ -1,3047 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - building_number_formats = ("#", "##", "###", "#", "##", "###") - - street_suffixes = ( - "baan", - "boulevard", - "dreef", - "hof", - "laan", - "lei", - "pad", - "ring", - "singel", - "steeg", - "straat", - "weg", - ) - - # the 4 digit numerical part of Belgium postal codes is between 1000 and 9999; - # see https://nl.wikipedia.org/wiki/Postcode#Postnummers_in_België - postcode_formats = ("%###",) - - city_formats = ("{{city}}",) - - # countries are from http://nl.wikipedia.org/wiki/ISO_3166-1 - countries = ( - "Afghanistan", - "Albanië", - "Algerije", - "Amerikaans-Samoa", - "Amerikaanse Maagdeneilanden", - "Andorra", - "Angola", - "Anguilla", - "Antarctica", - "Antigua en Barbuda", - "Argentinië", - "Armenië", - "Aruba", - "Australië", - "Azerbeidzjan", - "Bahama's", - "Bahrein", - "Bangladesh", - "Barbados", - "België", - "Belize", - "Benin", - "Bermuda", - "Bhutan", - "Bolivia", - "Bonaire, Sint Eustatius en Saba", - "Bosnië en Herzegovina", - "Botswana", - "Bouveteiland", - "Brazilië", - "Brits Indische Oceaanterritorium", - "Britse Maagdeneilanden", - "Brunei", - "Bulgarije", - "Burkina Faso", - "Burundi", - "Cambodja", - "Canada", - "Centraal-Afrikaanse Republiek", - "Chili", - "China", - "Christmaseiland", - "Cocoseilanden", - "Colombia", - "Comoren", - "Congo-Brazzaville", - "Congo-Kinshasa", - "Cookeilanden", - "Costa Rica", - "Cuba", - "Curaçao", - "Cyprus", - "Denemarken", - "Djibouti", - "Dominica", - "Dominicaanse Republiek", - "Duitsland", - "Ecuador", - "Egypte", - "El Salvador", - "Equatoriaal-Guinea", - "Eritrea", - "Estland", - "Ethiopië", - "Faeröer", - "Falklandeilanden", - "Fiji", - "Filipijnen", - "Finland", - "Frankrijk", - "Frans-Guyana", - "Frans-Polynesië", - "Franse Zuidelijke en Antarctische Gebieden", - "Gabon", - "Gambia", - "Georgië", - "Ghana", - "Gibraltar", - "Grenada", - "Griekenland", - "Groenland", - "Guadeloupe", - "Guam", - "Guatemala", - "Guernsey", - "Guinee", - "Guinee-Bissau", - "Guyana", - "Haïti", - "Heard en McDonaldeilanden", - "Honduras", - "Hongarije", - "Hongkong", - "IJsland", - "Ierland", - "India", - "Indonesië", - "Irak", - "Iran", - "Israël", - "Italië", - "Ivoorkust", - "Jamaica", - "Japan", - "Jemen", - "Jersey", - "Jordanië", - "Kaaimaneilanden", - "Kaapverdië", - "Kameroen", - "Kazachstan", - "Kenia", - "Kirgizië", - "Kiribati", - "Kleine Pacifische eilanden van de Verenigde Staten", - "Koeweit", - "Kroatië", - "Laos", - "Lesotho", - "Letland", - "Libanon", - "Liberia", - "Libië", - "Liechtenstein", - "Litouwen", - "Luxemburg", - "Macau", - "Madagaskar", - "Malawi", - "Maldiven", - "Maleisië", - "Mali", - "Malta", - "Man", - "Marokko", - "Marshalleilanden", - "Martinique", - "Mauritanië", - "Mauritius", - "Mayotte", - "Mexico", - "Micronesia", - "Moldavië", - "Monaco", - "Mongolië", - "Montenegro", - "Montserrat", - "Mozambique", - "Myanmar", - "Namibië", - "Nauru", - "Nederland", - "Nepal", - "Nicaragua", - "Nieuw-Caledonië", - "Nieuw-Zeeland", - "Niger", - "Nigeria", - "Niue", - "Noord-Korea", - "Noord-Macedonië", - "Noordelijke Marianen", - "Noorwegen", - "Norfolk", - "Oeganda", - "Oekraïne", - "Oezbekistan", - "Oman", - "Oost-Timor", - "Oostenrijk", - "Pakistan", - "Palau", - "Palestina", - "Panama", - "Papoea-Nieuw-Guinea", - "Paraguay", - "Peru", - "Pitcairneilanden", - "Polen", - "Portugal", - "Puerto Rico", - "Qatar", - "Roemenië", - "Rusland", - "Rwanda", - "Réunion", - "Saint Kitts en Nevis", - "Saint Lucia", - "Saint Vincent en de Grenadines", - "Saint-Barthélemy", - "Saint-Pierre en Miquelon", - "Salomonseilanden", - "Samoa", - "San Marino", - "Sao Tomé en Principe", - "Saoedi-Arabië", - "Senegal", - "Servië", - "Seychellen", - "Sierra Leone", - "Singapore", - "Sint Maarten", - "Sint-Helena, Ascension en Tristan da Cunha", - "Sint-Maarten", - "Slovenië", - "Slowakije", - "Soedan", - "Somalië", - "Spanje", - "Spitsbergen en Jan Mayen", - "Sri Lanka", - "Suriname", - "Swaziland", - "Syrië", - "Tadzjikistan", - "Taiwan", - "Tanzania", - "Thailand", - "Togo", - "Tokelau", - "Tonga", - "Trinidad en Tobago", - "Tsjaad", - "Tsjechië", - "Tunesië", - "Turkije", - "Turkmenistan", - "Turks- en Caicoseilanden", - "Tuvalu", - "Uruguay", - "Vanuatu", - "Vaticaanstad", - "Venezuela", - "Verenigd Koninkrijk", - "Verenigde Arabische Emiraten", - "Verenigde Staten", - "Vietnam", - "Wallis en Futuna", - "Westelijke Sahara", - "Wit-Rusland", - "Zambia", - "Zimbabwe", - "Zuid-Afrika", - "Zuid-Georgia en de Zuidelijke Sandwicheilanden", - "Zuid-Korea", - "Zuid-Soedan", - "Zweden", - "Zwitserland", - "Åland", - ) - - # cities as listed on "postcodezoeker" - # http://www.postcodes-maps.be/postcodelijst.php - cities = ( - "'s Herenelderen", - "'s-Gravenvoeren", - "'s-Gravenwezel", - "Aaigem", - "Aalbeke", - "Aalst", - "Aalter", - "Aarschot", - "Aarsele", - "Aartrijke", - "Aartselaar", - "Abolens", - "Abée", - "Achel", - "Achet", - "Achêne", - "Acosse", - "Acoz", - "Adegem", - "Adinkerke", - "Affligem", - "Afsnee", - "Agimont", - "Aineffe", - "Aische-en-Refail", - "Aiseau", - "Aiseau-Presles", - "Aisemont", - "Alken", - "Alle", - "Alleur", - "Alsemberg", - "Alveringem", - "Amay", - "Amberloup", - "Ambly", - "Ambresin", - "Amel", - "Amonines", - "Amougies", - "Ampsin", - "Andenne", - "Anderlecht", - "Anderlues", - "Andrimont", - "Angleur", - "Angre", - "Angreau", - "Anhée", - "Anlier", - "Anloy", - "Annevoie-Rouillon", - "Ans", - "Anseremme", - "Anseroeul", - "Antheit", - "Anthisnes", - "Anthée", - "Antoing", - "Antwerpen", - "Anvaing", - "Anzegem", - "Appels", - "Appelterre-Eichem", - "Arbre", - "Arbrefontaine", - "Arc-Ainières", - "Arc-Wattripont", - "Archennes", - "Ardooie", - "Arendonk", - "Argenteau", - "Arlon", - "Arquennes", - "Arsimont", - "Arville", - "As", - "Aspelare", - "Asper", - "Asquillies", - "Asse", - "Assebroek", - "Assenede", - "Assenois", - "Assent", - "Assesse", - "Astene", - "Ath", - "Athis", - "Athus", - "Attenhoven", - "Attenrode", - "Attert", - "Attre", - "Aubange", - "Aubechies", - "Aubel", - "Aublain", - "Auby-sur-Semois", - "Audregnies", - "Aulnois", - "Autelbas", - "Autre-Eglise", - "Autreppe", - "Auvelais", - "Ave-et-Auffe", - "Avekapelle", - "Avelgem", - "Avennes", - "Averbode", - "Avernas-le-Bauduin", - "Avin", - "Awans", - "Awenne", - "Awirs", - "Aye", - "Ayeneux", - "Aywaille", - "Baaigem", - "Baal", - "Baardegem", - "Baarle-Hertog", - "Baasrode", - "Bachte-Maria-Leerne", - "Baelen", - "Bagimont", - "Baileux", - "Bailièvre", - "Baillamont", - "Bailleul", - "Baillonville", - "Baisieux", - "Baisy-Thy", - "Balegem", - "Balen", - "Balâtre", - "Bambrugge", - "Bande", - "Barbençon", - "Barchon", - "Baronville", - "Barry", - "Barvaux-Condroz", - "Barvaux-sur-Ourthe", - "Bas-Oha", - "Basse-Bodeux", - "Bassenge", - "Bassevelde", - "Bassilly", - "Bastogne", - "Basècles", - "Batsheers", - "Battice", - "Battignies", - "Baudour", - "Bauffe", - "Baugnies", - "Baulers", - "Bavegem", - "Bavikhove", - "Bazel", - "Beaufays", - "Beaumont", - "Beauraing", - "Beausaint", - "Beauvoorde", - "Beauwelz", - "Beclers", - "Beek", - "Beerlegem", - "Beernem", - "Beerse", - "Beersel", - "Beerst", - "Beert", - "Beervelde", - "Beerzel", - "Beez", - "Beffe", - "Begijnendijk", - "Beho", - "Beigem", - "Bekegem", - "Bekkerzeel", - "Bekkevoort", - "Belgrade", - "Bellaire", - "Bellecourt", - "Bellefontaine", - "Bellegem", - "Bellem", - "Bellevaux", - "Bellevaux-Ligneuville", - "Bellingen", - "Beloeil", - "Belsele", - "Ben-Ahin", - "Bende", - "Berbroek", - "Berchem", - "Berendrecht", - "Berg", - "Bergilers", - "Beringen", - "Berlaar", - "Berlare", - "Berlingen", - "Berloz", - "Berneau", - "Bernissart", - "Bersillies-l'Abbaye", - "Bertem", - "Bertogne", - "Bertrix", - "Bertrée", - "Berzée", - "Beselare", - "Betekom", - "Bettincourt", - "Beuzet", - "Bevekom", - "Bevel", - "Bever", - "Bevercé", - "Bevere", - "Beveren-Leie", - "Beveren-Roeselare", - "Beveren-Waas", - "Beveren-aan-den-Ijzer", - "Beverlo", - "Beverst", - "Beyne-Heusay", - "Bienne-lez-Happart", - "Bierbeek", - "Biercée", - "Bierges", - "Bierghes", - "Bierset", - "Bierwart", - "Biesme", - "Biesme-sous-Thuin", - "Biesmerée", - "Biez", - "Bihain", - "Bikschote", - "Bilstain", - "Bilzen", - "Binche", - "Binderveld", - "Binkom", - "Bioul", - "Bissegem", - "Bizet", - "Bièvre", - "Blaasveld", - "Blaimont", - "Blandain", - "Blanden", - "Blankenberge", - "Blaregnies", - "Blaton", - "Blaugies", - "Blehen", - "Bleid", - "Bleret", - "Blicquy", - "Blégny", - "Bléharies", - "Bocholt", - "Boechout", - "Boekhout", - "Boekhoute", - "Boezinge", - "Bogaarden", - "Bohan", - "Boignée", - "Boirs", - "Bois-d'Haine", - "Bois-de-Lessines", - "Bois-de-Villers", - "Bois-et-Borsu", - "Bolinne", - "Bolland", - "Bomal", - "Bomal-sur-Ourthe", - "Bombaye", - "Bommershoven", - "Bon-Secours", - "Boncelles", - "Boneffe", - "Bonheiden", - "Boninne", - "Bonlez", - "Bonnert", - "Bonneville", - "Bonsin", - "Booischot", - "Booitshoeke", - "Boom", - "Boorsem", - "Boortmeerbeek", - "Borchtlombeek", - "Borgerhout", - "Borgloon", - "Borlez", - "Borlo", - "Borlon", - "Bornem", - "Bornival", - "Borsbeek", - "Borsbeke", - "Bossière", - "Bossuit", - "Bossut-Gottechain", - "Bost", - "Bothey", - "Bottelare", - "Bouffioulx", - "Bouge", - "Bougnies", - "Bouillon", - "Bourlers", - "Bourseigne-Neuve", - "Bourseigne-Vieille", - "Boussoit", - "Boussu", - "Boussu-en-Fagne", - "Boussu-lez-Walcourt", - "Bousval", - "Boutersem", - "Bouvignes-sur-Meuse", - "Bouvignies", - "Bouwel", - "Bovekerke", - "Bovelingen", - "Bovenistier", - "Bovesse", - "Bovigny", - "Boëlhe", - "Bra", - "Braffe", - "Braibant", - "Braine-l'Alleud", - "Braine-le-Château", - "Braine-le-Comte", - "Braives", - "Brakel", - "Branchon", - "Bras", - "Brasmenil", - "Brasschaat", - "Bray", - "Brecht", - "Bredene", - "Bree", - "Breendonk", - "Bressoux", - "Briegden", - "Brielen", - "Broechem", - "Broekom", - "Brugelette", - "Brugge", - "Brunehaut", - "Brussegem", - "Brussel", - "Brustem", - "Bruyelle", - "Brye", - "Brûly", - "Brûly-de-Pesche", - "Budingen", - "Buggenhout", - "Buissenal", - "Buissonville", - "Buizingen", - "Buken", - "Bulskamp", - "Bunsbeek", - "Burcht", - "Burdinne", - "Bure", - "Burg-Reuland", - "Burst", - "Bury", - "Buvingen", - "Buvrinnes", - "Buzenol", - "Buzet", - "Büllingen", - "Bütgenbach", - "Callenelle", - "Calonne", - "Cambron-Casteau", - "Cambron-Saint-Vincent", - "Carlsbourg", - "Carnières", - "Casteau", - "Castillon", - "Celles", - "Cerfontaine", - "Chaineux", - "Chairière", - "Champion", - "Champlon", - "Chanly", - "Chantemelle", - "Chapelle-lez-Herlaimont", - "Chapelle-à-Oie", - "Chapelle-à-Wattines", - "Chapon-Seraing", - "Charleroi", - "Charneux", - "Chassepierre", - "Chastre", - "Chastre-Villeroux-Blanmont", - "Chastrès", - "Chaudfontaine", - "Chaumont-Gistoux", - "Chaussée-Notre-Dame-Louvignies", - "Cherain", - "Cheratte", - "Chercq", - "Chevetogne", - "Chevron", - "Chimay", - "Chiny", - "Chièvres", - "Chokier", - "Châtelet", - "Châtelineau", - "Châtillon", - "Chênée", - "Ciergnon", - "Ciney", - "Ciplet", - "Ciply", - "Clabecq", - "Clavier", - "Clermont", - "Clermont-sous-Huy", - "Cognelée", - "Colfontaine", - "Comblain-Fairon", - "Comblain-au-Pont", - "Comblain-la-Tour", - "Conneux", - "Corbais", - "Corbion", - "Cordes", - "Corenne", - "Cornesse", - "Cornimont", - "Corroy-le-Château", - "Corroy-le-Grand", - "Corswarem", - "Cortil-Noirmont", - "Cortil-Wodon", - "Couillet", - "Cour-sur-Heure", - "Courcelles", - "Courrière", - "Court-Saint-Etienne", - "Couthuin", - "Coutisse", - "Couture-Saint-Germain", - "Couvin", - "Cras-Avernas", - "Crehen", - "Crisnée", - "Croix-lez-Rouveroy", - "Crombach", - "Crupet", - "Cuesmes", - "Cugnon", - "Cul-des-Sarts", - "Custinne", - "Cérexhe-Heuseux", - "Céroux-Mousty", - "Dadizele", - "Dailly", - "Daknam", - "Dalhem", - "Damme", - "Dampicourt", - "Dampremy", - "Darion", - "Daussois", - "Daussoulx", - "Dave", - "Daverdisse", - "De Haan", - "De Klinge", - "De Moeren", - "De Panne", - "De Pinte", - "Deerlijk", - "Deftinge", - "Deinze", - "Denderbelle", - "Denderhoutem", - "Denderleeuw", - "Dendermonde", - "Denderwindeke", - "Dentergem", - "Denée", - "Dergneau", - "Dessel", - "Desselgem", - "Destelbergen", - "Desteldonk", - "Deurle", - "Deurne", - "Deux-Acren", - "Dhuy", - "Diepenbeek", - "Diest", - "Diets-Heur", - "Dikkebus", - "Dikkele", - "Dikkelvenne", - "Diksmuide", - "Dilbeek", - "Dilsen-Stokkem", - "Dinant", - "Dion", - "Dion-Valmont", - "Dison", - "Dochamps", - "Doel", - "Dohan", - "Doische", - "Dolembreux", - "Donceel", - "Dongelberg", - "Donk", - "Donstiennes", - "Dorinne", - "Dormaal", - "Dottenijs", - "Dour", - "Dourbes", - "Dranouter", - "Driekapellen", - "Drieslinter", - "Drogenbos", - "Drongen", - "Dréhance", - "Dudzele", - "Duffel", - "Duisburg", - "Duras", - "Durbuy", - "Durnal", - "Dworp", - "Eben-Emael", - "Ebly", - "Ecaussinnes", - "Ecaussinnes-Lalaing", - "Ecaussinnes-d'Enghien", - "Edegem", - "Edelare", - "Edingen", - "Eeklo", - "Eernegem", - "Egem", - "Eggewaartskapelle", - "Eghezée", - "Ehein", - "Eigenbilzen", - "Eindhout", - "Eine", - "Eisden", - "Eke", - "Ekeren", - "Eksaarde", - "Eksel", - "Elen", - "Elene", - "Elewijt", - "Eliksem", - "Elingen", - "Ellemelle", - "Ellezelles", - "Ellignies-Sainte-Anne", - "Ellignies-lez-Frasnes", - "Ellikom", - "Elouges", - "Elsegem", - "Elsenborn", - "Elsene", - "Elst", - "Elverdinge", - "Elversele", - "Emblem", - "Embourg", - "Emelgem", - "Emines", - "Emptinne", - "Ename", - "Engelmanshoven", - "Engis", - "Enines", - "Ensival", - "Epinois", - "Eppegem", - "Eprave", - "Erbaut", - "Erbisoeul", - "Ere", - "Erembodegem", - "Erezée", - "Ermeton-sur-Biert", - "Ernage", - "Erneuville", - "Ernonheid", - "Erondegem", - "Erpe", - "Erpe-Mere", - "Erpent", - "Erpion", - "Erps-Kwerps", - "Erquelinnes", - "Erquennes", - "Ertvelde", - "Erwetegem", - "Escanaffles", - "Esen", - "Esneux", - "Esplechin", - "Esquelmes", - "Essen", - "Essene", - "Estaimbourg", - "Estaimpuis", - "Estinnes", - "Estinnes-au-Mont", - "Estinnes-au-Val", - "Etalle", - "Ethe", - "Etikhove", - "Ettelgem", - "Etterbeek", - "Eugies", - "Eupen", - "Evegnée", - "Evelette", - "Everbeek", - "Everberg", - "Evere", - "Evergem", - "Evregnies", - "Evrehailles", - "Eynatten", - "Ezemaal", - "Fagnolle", - "Faimes", - "Falaën", - "Falisolle", - "Fallais", - "Falmagne", - "Falmignoul", - "Familleureux", - "Farciennes", - "Faulx-les-Tombes", - "Fauroeulx", - "Fauvillers", - "Faymonville", - "Fays-les-Veneurs", - "Fayt-le-Franc", - "Fayt-lez-Manage", - "Felenne", - "Feluy", - "Feneur", - "Fernelmont", - "Ferrières", - "Feschaux", - "Fexhe-Slins", - "Fexhe-le-Haut-Clocher", - "Filot", - "Finnevaux", - "Fize-Fontaine", - "Fize-le-Marsal", - "Flamierge", - "Flavion", - "Flawinne", - "Fleurus", - "Floreffe", - "Florennes", - "Florenville", - "Floriffoux", - "Florée", - "Flostoy", - "Flémalle", - "Flémalle-Grande", - "Flémalle-Haute", - "Flénu", - "Fléron", - "Flône", - "Focant", - "Folx-les-Caves", - "Fontaine-Valmont", - "Fontaine-l'Evêque", - "Fontenelle", - "Fontenoille", - "Fontenoy", - "Fooz", - "Forchies-la-Marche", - "Forest", - "Forges", - "Forges-Philippe", - "Forrières", - "Forville", - "Forêt", - "Fosse", - "Fosses-la-Ville", - "Fouleng", - "Fourbechies", - "Foy-Notre-Dame", - "Fraipont", - "Fraire", - "Fraiture", - "Frameries", - "Framont", - "Franc-Waret", - "Franchimont", - "Francorchamps", - "Franière", - "Frasnes", - "Frasnes-lez-Anvaing", - "Frasnes-lez-Buissenal", - "Frasnes-lez-Gosselies", - "Freloux", - "Freux", - "Froidchapelle", - "Froidfontaine", - "Froidmont", - "Fronville", - "Froyennes", - "Fumal", - "Furfooz", - "Furnaux", - "Gaasbeek", - "Gages", - "Gallaix", - "Galmaarden", - "Ganshoren", - "Gaurain-Ramecroix", - "Gavere", - "Gedinne", - "Geel", - "Geer", - "Geest-Gérompont-Petit-Rosière", - "Geetbets", - "Gelbressée", - "Gelinden", - "Gellik", - "Gelrode", - "Geluveld", - "Geluwe", - "Gembes", - "Gembloux", - "Gemmenich", - "Genappe", - "Genk", - "Genly", - "Genoelselderen", - "Gent", - "Gentbrugge", - "Gentinnes", - "Genval", - "Geraardsbergen", - "Gerdingen", - "Gerin", - "Gerpinnes", - "Gestel", - "Gesves", - "Ghislenghien", - "Ghlin", - "Ghoy", - "Gibecq", - "Gierle", - "Gijverinkhove", - "Gijzegem", - "Gijzelbrechtegem", - "Gijzenzele", - "Gilly", - "Gimnée", - "Gingelom", - "Gistel", - "Gits", - "Givry", - "Glabais", - "Glabbeek-Zuurbemde", - "Glain", - "Gleixhe", - "Glimes", - "Glons", - "Gochenée", - "Godarville", - "Godinne", - "Godveerdegem", - "Goeferdinge", - "Goegnies-Chaussée", - "Goesnes", - "Goetsenhoven", - "Gomzé-Andoumont", - "Gondregnies", - "Gonrieux", - "Gontrode", - "Gooik", - "Gors-Opleeuw", - "Gorsem", - "Gosselies", - "Gotem", - "Gottem", - "Gottignies", - "Gougnies", - "Gourdinne", - "Goutroux", - "Gouvy", - "Gouy-lez-Piéton", - "Gozée", - "Goé", - "Graide", - "Grammene", - "Grand-Axhe", - "Grand-Hallet", - "Grand-Halleux", - "Grand-Leez", - "Grand-Manil", - "Grand-Rechain", - "Grand-Reng", - "Grand-Rosière-Hottomont", - "Grandglise", - "Grandhan", - "Grandmenil", - "Grandmetz", - "Grandrieu", - "Grandville", - "Grandvoir", - "Grapfontaine", - "Graty", - "Graux", - "Grazen", - "Grembergen", - "Grez-Doiceau", - "Grimbergen", - "Grimminge", - "Grivegnée", - "Grobbendonk", - "Groot-Bijgaarden", - "Groot-Gelmen", - "Groot-Loon", - "Gros-Fays", - "Grosage", - "Grote-Brogel", - "Grote-Spouwen", - "Grotenberge", - "Gruitrode", - "Grune", - "Grupont", - "Grâce-Berleur", - "Grâce-Hollogne", - "Guignies", - "Guigoven", - "Guirsch", - "Gullegem", - "Gutschoven", - "Gérompont", - "Gérouville", - "Haacht", - "Haaltert", - "Haasdonk", - "Haasrode", - "Habay", - "Habay-la-Neuve", - "Habay-la-Vieille", - "Habergy", - "Haccourt", - "Hachy", - "Hacquegnies", - "Haillot", - "Haine-Saint-Paul", - "Haine-Saint-Pierre", - "Hainin", - "Hakendover", - "Halanzy", - "Halen", - "Hallaar", - "Halle", - "Halle-Booienhoven", - "Halleux", - "Halma", - "Halmaal", - "Haltinne", - "Ham", - "Ham-sur-Heure", - "Ham-sur-Heure-Nalinnes", - "Ham-sur-Sambre", - "Hamipré", - "Hamme", - "Hamme-Mille", - "Hamoir", - "Hamois", - "Hamont", - "Hamont-Achel", - "Hampteau", - "Han-sur-Lesse", - "Handzame", - "Haneffe", - "Hannut", - "Hannêche", - "Hanret", - "Hansbeke", - "Hantes-Wihéries", - "Hanzinelle", - "Hanzinne", - "Harchies", - "Harelbeke", - "Haren", - "Haren-Borgloon", - "Haren-Tongeren", - "Hargimont", - "Harmignies", - "Harnoncourt", - "Harre", - "Harsin", - "Harveng", - "Harzé", - "Hasselt", - "Hastière", - "Hastière-Lavaux", - "Hastière-par-Delà", - "Hatrival", - "Haulchin", - "Hauset", - "Haut-Fays", - "Haut-Ittre", - "Haut-le-Wastia", - "Hautrage", - "Havay", - "Havelange", - "Haversin", - "Havinnes", - "Havré", - "Hechtel", - "Hechtel-Eksel", - "Heer", - "Heers", - "Hees", - "Heestert", - "Heffen", - "Heikruis", - "Heindonk", - "Heinsch", - "Heist-aan-Zee", - "Heist-op-den-Berg", - "Hekelgem", - "Heks", - "Helchteren", - "Heldergem", - "Helen-Bos", - "Helkijn", - "Hellebecq", - "Hemelveerdegem", - "Hemiksem", - "Hemptinne", - "Hemptinne-lez-Florennes", - "Hendrieken", - "Henis", - "Hennuyères", - "Henri-Chapelle", - "Henripont", - "Hensies", - "Heppen", - "Heppenbach", - "Heppignies", - "Herbeumont", - "Herchies", - "Herderen", - "Herdersem", - "Herent", - "Herentals", - "Herenthout", - "Herfelingen", - "Hergenrath", - "Herk-de-Stad", - "Hermalle-sous-Argenteau", - "Hermalle-sous-Huy", - "Hermeton-sur-Meuse", - "Hermée", - "Herne", - "Herquegies", - "Herseaux", - "Herselt", - "Herstal", - "Herstappe", - "Hertain", - "Herten", - "Hertsberge", - "Herve", - "Herzele", - "Heule", - "Heure", - "Heure-le-Romain", - "Heurne", - "Heusden", - "Heusden-Zolder", - "Heusy", - "Heuvelland", - "Hever", - "Heverlee", - "Heyd", - "Hillegem", - "Hingene", - "Hingeon", - "Hives", - "Hoboken", - "Hodeige", - "Hodister", - "Hody", - "Hoegaarden", - "Hoeilaart", - "Hoeke", - "Hoelbeek", - "Hoeleden", - "Hoepertingen", - "Hoeselt", - "Hoevenen", - "Hofstade", - "Hogne", - "Hognoul", - "Hollain", - "Hollange", - "Hollebeke", - "Hollogne-aux-Pierres", - "Hollogne-sur-Geer", - "Holsbeek", - "Hombeek", - "Hombourg", - "Hompré", - "Hondelange", - "Honnay", - "Honnelles", - "Hooglede", - "Hoogstade", - "Hoogstraten", - "Horebeke", - "Horion-Hozémont", - "Hornu", - "Horpmaal", - "Horrues", - "Hotton", - "Houdemont", - "Houdeng-Aimeries", - "Houdeng-Goegnies", - "Houdremont", - "Houffalize", - "Hour", - "Housse", - "Houtain-Saint-Siméon", - "Houtain-le-Val", - "Houtaing", - "Houtave", - "Houtem", - "Houthalen", - "Houthalen-Helchteren", - "Houthem", - "Houthulst", - "Houtvenne", - "Houwaart", - "Houx", - "Houyet", - "Hove", - "Hoves", - "Howardries", - "Huccorgne", - "Huise", - "Huissignies", - "Huizingen", - "Huldenberg", - "Hulshout", - "Hulsonniaux", - "Hulste", - "Humain", - "Humbeek", - "Hundelgem", - "Huppaye", - "Huy", - "Hyon", - "Hélécine", - "Hérinnes-lez-Pecq", - "Héron", - "Hévillers", - "Ichtegem", - "Iddergem", - "Idegem", - "Ieper", - "Impe", - "Incourt", - "Ingelmunster", - "Ingooigem", - "Irchonwelz", - "Isières", - "Isnes", - "Itegem", - "Itterbeek", - "Ittre", - "Ivoz-Ramet", - "Izegem", - "Izel", - "Izenberge", - "Izier", - "Jabbeke", - "Jalhay", - "Jallet", - "Jamagne", - "Jambes", - "Jamiolle", - "Jamioulx", - "Jamoigne", - "Jandrain-Jandrenouille", - "Jauche", - "Jauchelette", - "Javingue", - "Jehay", - "Jehonville", - "Jemappes", - "Jemelle", - "Jemeppe-sur-Meuse", - "Jemeppe-sur-Sambre", - "Jeneffe", - "Jesseren", - "Jette", - "Jeuk", - "Jodoigne", - "Jodoigne-Souveraine", - "Jollain-Merlin", - "Joncret", - "Julémont", - "Jumet", - "Jupille-sur-Meuse", - "Juprelle", - "Jurbise", - "Juseret", - "Kaaskerke", - "Kachtem", - "Kaggevinne", - "Kain", - "Kalken", - "Kallo", - "Kallo-Kieldrecht", - "Kalmthout", - "Kampenhout", - "Kanegem", - "Kanne", - "Kapelle-op-den-Bos", - "Kapellen", - "Kaprijke", - "Kaster", - "Kasterlee", - "Kaulille", - "Keerbergen", - "Keiem", - "Kelmis", - "Kemexhe", - "Kemmel", - "Kemzeke", - "Kerkhove", - "Kerkom", - "Kerkom-bij-Sint-Truiden", - "Kerksken", - "Kermt", - "Kerniel", - "Kersbeek-Miskom", - "Kessel", - "Kessel-Lo", - "Kessenich", - "Kester", - "Kettenis", - "Keumiée", - "Kieldrecht", - "Kinrooi", - "Klein-Gelmen", - "Kleine-Brogel", - "Kleine-Spouwen", - "Klemskerke", - "Klerken", - "Kluisbergen", - "Kluizen", - "Knesselare", - "Knokke", - "Knokke-Heist", - "Kobbegem", - "Koekelare", - "Koekelberg", - "Koersel", - "Koksijde", - "Kolmont-Borgloon", - "Kolmont-Tongeren", - "Komen", - "Komen-Waasten", - "Koningshooikt", - "Koninksem", - "Kontich", - "Kooigem", - "Koolkerke", - "Koolskamp", - "Korbeek-Dijle", - "Korbeek-Lo", - "Kortemark", - "Kortenaken", - "Kortenberg", - "Kortessem", - "Kortijs", - "Kortrijk", - "Kortrijk-Dutsel", - "Kozen", - "Kraainem", - "Krombeke", - "Kruibeke", - "Kruishoutem", - "Kumtich", - "Kuringen", - "Kuttekoven", - "Kuurne", - "Kwaadmechelen", - "Kwaremont", - "La", - "La Bruyère", - "La Glanerie", - "La Gleize", - "La Hestre", - "La Hulpe", - "La Louvière", - "La bouverie", - "La-Roche-en-Ardenne", - "Laakdal", - "Laar", - "Laarne", - "Labuissière", - "Lacuisine", - "Ladeuze", - "Laforêt", - "Lahamaide", - "Laken", - "Lamain", - "Lambermont", - "Lambusart", - "Lamine", - "Lamontzée", - "Lamorteau", - "Lampernisse", - "Lanaken", - "Lanaye", - "Landegem", - "Landelies", - "Landen", - "Landenne", - "Landskouter", - "Laneffe", - "Langdorp", - "Langemark", - "Langemark-Poelkapelle", - "Lanklaar", - "Lanquesaint", - "Lantin", - "Lantremange", - "Laplaigne", - "Lapscheure", - "Lasne", - "Lasne-Chapelle-Saint-Lambert", - "Lathuy", - "Latinne", - "Latour", - "Lauw", - "Lauwe", - "Lavacherie", - "Lavaux-Sainte-Anne", - "Lavoir", - "Le Mesniel", - "Le Roeulx", - "Le Roux", - "Lebbeke", - "Lede", - "Ledeberg", - "Ledegem", - "Leefdaal", - "Leerbeek", - "Leernes", - "Leers-Nord", - "Leers-et-Fosteau", - "Leest", - "Leeuwergem", - "Leffinge", - "Leignon", - "Leisele", - "Leke", - "Lembeek", - "Lembeke", - "Lemberge", - "Lendelede", - "Lennik", - "Lens", - "Lens-Saint-Remy", - "Lens-Saint-Servais", - "Lens-sur-Geer", - "Leopoldsburg", - "Les Avins", - "Les Bons", - "Les Bulles", - "Les Hayons", - "Les Waleffes", - "Lesdain", - "Lessines", - "Lessive", - "Lesterny", - "Lesve", - "Lettelingen", - "Letterhoutem", - "Leugnies", - "Leupegem", - "Leut", - "Leuven", - "Leuze", - "Leuze-en-Hainaut", - "Leval-Chaudeville", - "Leval-Trahegnies", - "Liberchies", - "Libin", - "Libramont", - "Libramont-Chevigny", - "Lichtaart", - "Lichtervelde", - "Liedekerke", - "Lieferinge", - "Lier", - "Lierde", - "Lierneux", - "Liernu", - "Liers", - "Liezele", - "Ligne", - "Ligney", - "Ligny", - "Lille", - "Lillo", - "Lillois-Witterzée", - "Limal", - "Limbourg", - "Limelette", - "Limerlé", - "Limont", - "Lincent", - "Linden", - "Linkebeek", - "Linkhout", - "Linsmeau", - "Lint", - "Linter", - "Lippelo", - "Lisogne", - "Lissewege", - "Lives-sur-Meuse", - "Lixhe", - "Liège", - "Lo", - "Lo-Reninge", - "Lobbes", - "Lochristi", - "Lodelinsart", - "Loenhout", - "Loker", - "Lokeren", - "Loksbergen", - "Lombardsijde", - "Lombise", - "Lommel", - "Lommersweiler", - "Lompret", - "Lomprez", - "Loncin", - "Londerzeel", - "Longchamps", - "Longlier", - "Longueville", - "Longvilly", - "Lontzen", - "Lonzée", - "Loonbeek", - "Loppem", - "Lorcé", - "Lot", - "Lotenhulle", - "Louette-Saint-Denis", - "Louette-Saint-Pierre", - "Loupoigne", - "Louvain-la-Neuve", - "Louveigné", - "Lovendegem", - "Lovenjoel", - "Loverval", - "Loyers", - "Lubbeek", - "Luingne", - "Lummen", - "Lustin", - "Luttre", - "Léglise", - "Maarke-Kerkem", - "Maarkedal", - "Maaseik", - "Maasmechelen", - "Mabompré", - "Machelen", - "Macon", - "Macquenoise", - "Maffe", - "Maffle", - "Magnée", - "Maillen", - "Mainvault", - "Maisières", - "Maissin", - "Maizeret", - "Mal", - "Maldegem", - "Malderen", - "Malempré", - "Malle", - "Malmedy", - "Malonne", - "Malvoisin", - "Malèves-Sainte-Marie-Wastines", - "Manage", - "Manderfeld", - "Manhay", - "Mannekensvere", - "Maransart", - "Marbais", - "Marbaix", - "Marbehan", - "Marche-en-Famenne", - "Marche-les-Dames", - "Marche-lez-Ecaussinnes", - "Marchienne-au-Pont", - "Marchin", - "Marchipont", - "Marchovelette", - "Marcinelle", - "Marcourt", - "Marenne", - "Mariakerke", - "Mariekerke", - "Mariembourg", - "Marilles", - "Mark", - "Marke", - "Markegem", - "Marneffe", - "Marquain", - "Martelange", - "Martenslinde", - "Martouzin-Neuville", - "Masbourg", - "Masnuy-Saint-Jean", - "Masnuy-Saint-Pierre", - "Massemen", - "Massenhoven", - "Matagne-la-Grande", - "Matagne-la-Petite", - "Mater", - "Maubray", - "Maulde", - "Maurage", - "Mazenzele", - "Mazy", - "Mazée", - "Mechelen", - "Mechelen-Bovelingen", - "Mechelen-aan-de-Maas", - "Meeffe", - "Meensel-Kiezegem", - "Meer", - "Meerbeek", - "Meerbeke", - "Meerdonk", - "Meerhout", - "Meerle", - "Meeswijk", - "Meetkerke", - "Meeuwen", - "Meeuwen-Gruitrode", - "Mehaigne", - "Meigem", - "Meilegem", - "Meise", - "Meix-devant-Virton", - "Meix-le-Tige", - "Melden", - "Meldert", - "Melen", - "Melkwezer", - "Melle", - "Mellery", - "Melles", - "Mellet", - "Mellier", - "Melsbroek", - "Melsele", - "Melsen", - "Membach", - "Membre", - "Membruggen", - "Mendonk", - "Menen", - "Merbes-Sainte-Marie", - "Merbes-le-Château", - "Merchtem", - "Merdorp", - "Mere", - "Merelbeke", - "Merendree", - "Merkem", - "Merksem", - "Merksplas", - "Merlemont", - "Mesen", - "Meslin-l'Evêque", - "Mesnil-Eglise", - "Mesnil-Saint-Blaise", - "Mespelare", - "Messancy", - "Messelbroek", - "Mesvin", - "Mettekoven", - "Mettet", - "Meulebeke", - "Meux", - "Meyerode", - "Michelbeke", - "Micheroux", - "Middelburg", - "Middelkerke", - "Mielen-boven-Aalst", - "Mignault", - "Millen", - "Milmort", - "Minderhout", - "Mirwart", - "Miécret", - "Modave", - "Moelingen", - "Moen", - "Moerbeke", - "Moerbeke-Waas", - "Moere", - "Moerkerke", - "Moerzeke", - "Moeskroen", - "Moha", - "Mohiville", - "Moignelée", - "Moircy", - "Mol", - "Molenbaix", - "Molenbeek-Wersbeek", - "Molenbeersel", - "Molenstede", - "Mollem", - "Momalle", - "Momignies", - "Monceau-Imbrechies", - "Monceau-en-Ardenne", - "Monceau-sur-Sambre", - "Mons", - "Mons-lez-Liège", - "Monstreux", - "Mont", - "Mont-Gauthier", - "Mont-Saint-André", - "Mont-Saint-Aubert", - "Mont-Saint-Guibert", - "Mont-Sainte-Aldegonde", - "Mont-Sainte-Geneviève", - "Mont-de-l'Enclus", - "Mont-sur-Marchienne", - "Montbliart", - "Montegnée", - "Montenaken", - "Montignies-Saint-Christophe", - "Montignies-lez-Lens", - "Montignies-sur-Roc", - "Montignies-sur-Sambre", - "Montigny-le-Tilleul", - "Montleban", - "Montroeul-au-Bois", - "Montroeul-sur-Haine", - "Montzen", - "Moorsel", - "Moorsele", - "Moorslede", - "Moortsele", - "Mopertingen", - "Moregem", - "Moresnet", - "Morhet", - "Morialmé", - "Morkhoven", - "Morlanwelz", - "Morlanwelz-Mariemont", - "Mormont", - "Mornimont", - "Mortier", - "Mortroux", - "Mortsel", - "Morville", - "Moulbaix", - "Mourcourt", - "Moustier", - "Moustier-sur-Sambre", - "Mouzaive", - "Moxhe", - "Mozet", - "Muizen", - "Mullem", - "Munkzwalm", - "Muno", - "Munsterbilzen", - "Munte", - "Musson", - "Mussy-la-Ville", - "My", - "Méan", - "Mélin", - "Mévergnies-lez-Lens", - "Naast", - "Nadrin", - "Nafraiture", - "Nalinnes", - "Namur", - "Namêche", - "Nandrin", - "Naninne", - "Naomé", - "Nassogne", - "Natoye", - "Nazareth", - "Neder-over-Heembeek", - "Nederboelare", - "Nederbrakel", - "Nederename", - "Nederhasselt", - "Nederokkerzeel", - "Nederzwalm-Hermelgem", - "Neerglabbeek", - "Neerharen", - "Neerhespen", - "Neerheylissem", - "Neerijse", - "Neerlanden", - "Neerlinter", - "Neeroeteren", - "Neerpelt", - "Neerrepen", - "Neervelp", - "Neerwaasten", - "Neerwinden", - "Neigem", - "Nerem", - "Nessonvaux", - "Nethen", - "Nettinne", - "Neu-Moresnet", - "Neufchâteau", - "Neufmaison", - "Neufvilles", - "Neupré", - "Neuville", - "Neuville-en-Condroz", - "Nevele", - "Niel", - "Niel-bij-As", - "Niel-bij-Sint-Truiden", - "Nieuwenhove", - "Nieuwenrode", - "Nieuwerkerken", - "Nieuwkapelle", - "Nieuwkerke", - "Nieuwkerken-Waas", - "Nieuwmunster", - "Nieuwpoort", - "Nieuwrode", - "Nijlen", - "Nil-Saint-Vincent-Saint-Martin", - "Nimy", - "Ninove", - "Nismes", - "Nivelles", - "Niverlée", - "Nives", - "Nobressart", - "Nodebais", - "Noduwez", - "Noirchain", - "Noirefontaine", - "Noiseux", - "Nokere", - "Nollevaux", - "Noorderwijk", - "Noordschote", - "Nossegem", - "Nothomb", - "Nouvelles", - "Noville", - "Noville-les-Bois", - "Noville-sur-Méhaigne", - "Nukerke", - "Néchin", - "Obaix", - "Obigies", - "Obourg", - "Ochamps", - "Ocquier", - "Odeigne", - "Odeur", - "Oedelem", - "Oekene", - "Oelegem", - "Oeren", - "Oeselgem", - "Oetingen", - "Oeudeghien", - "Oevel", - "Offagne", - "Ogy", - "Ohain", - "Ohey", - "Oignies-en-Thiérache", - "Oisquercq", - "Oizy", - "Okegem", - "Olen", - "Oleye", - "Ollignies", - "Olloy-sur-Viroin", - "Olmen", - "Olne", - "Olsene", - "Omal", - "Ombret", - "Omezée", - "On", - "Onhaye", - "Onkerzele", - "Onnezies", - "Onoz", - "Onze-Lieve-Vrouw-Lombeek", - "Onze-Lieve-Vrouw-Waver", - "Ooigem", - "Ooike", - "Oombergen", - "Oorbeek", - "Oordegem", - "Oostakker", - "Oostduinkerke", - "Oosteeklo", - "Oostende", - "Oosterzele", - "Oostham", - "Oostkamp", - "Oostkerke-Damme", - "Oostkerke-Diksmuide", - "Oostmalle", - "Oostnieuwkerke", - "Oostrozebeke", - "Oostvleteren", - "Oostwinkel", - "Opbrakel", - "Opdorp", - "Opglabbeek", - "Opgrimbie", - "Ophain-Bois-Seigneur-Isaac", - "Ophasselt", - "Opheers", - "Opheylissem", - "Ophoven", - "Opitter", - "Oplinter", - "Opoeteren", - "Opont", - "Opprebais", - "Oppuurs", - "Opvelp", - "Opwijk", - "Orbais", - "Orchimont", - "Orcq", - "Ordingen", - "Oret", - "Oreye", - "Orgeo", - "Ormeignies", - "Orp-Jauche", - "Orp-le-Grand", - "Orroir", - "Orsmaal-Gussenhoven", - "Ortho", - "Ostiches", - "Otegem", - "Oteppe", - "Othée", - "Otrange", - "Ottenburg", - "Ottergem", - "Ottignies", - "Ottignies-Louvain-la-Neuve", - "Oud-Heverlee", - "Oud-Turnhout", - "Oudegem", - "Oudekapelle", - "Oudenaarde", - "Oudenaken", - "Oudenburg", - "Oudergem", - "Ouffet", - "Ougrée", - "Oupeye", - "Outer", - "Outgaarden", - "Outrelouxhe", - "Outrijve", - "Ouwegem", - "Overboelare", - "Overhespen", - "Overijse", - "Overmere", - "Overpelt", - "Overrepen", - "Overwinden", - "Paal", - "Paifve", - "Pailhe", - "Paliseul", - "Pamel", - "Papignies", - "Parike", - "Passendale", - "Patignies", - "Paturages", - "Paulatem", - "Pecq", - "Peer", - "Peissant", - "Pellaines", - "Pellenberg", - "Pepingen", - "Pepinster", - "Perk", - "Pervijze", - "Perwez", - "Perwez-Haillot", - "Pesche", - "Pessoux", - "Petegem-aan-de-Leie", - "Petegem-aan-de-Schelde", - "Petigny", - "Petit-Fays", - "Petit-Hallet", - "Petit-Rechain", - "Petit-Roeulx-lez-Braine", - "Petit-Roeulx-lez-Nivelles", - "Petit-Thier", - "Petite-Chapelle", - "Peutie", - "Philippeville", - "Pipaix", - "Piringen", - "Pironchamps", - "Pittem", - "Piéton", - "Piétrain", - "Piétrebais", - "Plainevaux", - "Plancenoit", - "Ploegsteert", - "Plombières", - "Poederlee", - "Poeke", - "Poelkapelle", - "Poesele", - "Pollare", - "Polleur", - "Pollinkhove", - "Pommeroeul", - "Pondrôme", - "Pont-de-Loup", - "Pont-à-Celles", - "Pontillas", - "Poperinge", - "Poppel", - "Popuelles", - "Porcheresse", - "Pottes", - "Poucet", - "Poulseur", - "Poupehan", - "Pousset", - "Presgaux", - "Presles", - "Profondeville", - "Proven", - "Pry", - "Pulderbos", - "Pulle", - "Purnode", - "Pussemange", - "Putte", - "Puurs", - "Péronnes-lez-Antoing", - "Péronnes-lez-Binche", - "Péruwelz", - "Quaregnon", - "Quartes", - "Quenast", - "Queue-du-Bois", - "Quevaucamps", - "Quiévrain", - "Quévy", - "Quévy-le-Grand", - "Quévy-le-Petit", - "Rachecourt", - "Racour", - "Raeren", - "Ragnies", - "Rahier", - "Ramegnies", - "Ramegnies-Chin", - "Ramelot", - "Ramillies-Offus", - "Ramsdonk", - "Ramsel", - "Ramskapelle-Knokke-Heist", - "Ramskapelle-Nieuwpoort", - "Rance", - "Ransart", - "Ransberg", - "Ranst", - "Ravels", - "Rebaix", - "Rebecq", - "Rebecq-Rognon", - "Recht", - "Recogne", - "Redu", - "Reet", - "Rekem", - "Rekkem", - "Relegem", - "Remagne", - "Remersdaal", - "Remicourt", - "Rendeux", - "Reninge", - "Reningelst", - "Renlies", - "Reppel", - "Ressaix", - "Ressegem", - "Resteigne", - "Retie", - "Retinne", - "Reuland", - "Rhisnes", - "Richelle", - "Riemst", - "Rienne", - "Rijkel", - "Rijkevorsel", - "Rijkhoven", - "Rijmenam", - "Riksingen", - "Rillaar", - "Rivière", - "Rixensart", - "Rièzes", - "Robechies", - "Robelmont", - "Robertville", - "Roborst", - "Rochefort", - "Rochehaut", - "Rocherath", - "Roclenge-sur-Geer", - "Rocourt", - "Roesbrugge-Haringe", - "Roeselare", - "Rognée", - "Roisin", - "Roksem", - "Rollegem", - "Rollegem-Kapelle", - "Roloux", - "Roly", - "Romedenne", - "Romershoven", - "Romerée", - "Romsée", - "Rongy", - "Ronquières", - "Ronse", - "Ronsele", - "Roosbeek", - "Roosdaal", - "Roselies", - "Rosières", - "Rosmeer", - "Rosoux-Crenwick", - "Rossignol", - "Rosée", - "Rotem", - "Rotheux-Rimière", - "Rotselaar", - "Roucourt", - "Rouveroy", - "Rouvreux", - "Rouvroy", - "Roux", - "Roux-Miroir", - "Roy", - "Rozebeke", - "Ruddervoorde", - "Ruette", - "Ruien", - "Ruisbroek", - "Ruiselede", - "Rukkelingen-Loon", - "Rulles", - "Rumbeke", - "Rumes", - "Rumillies", - "Rummen", - "Rumsdorp", - "Rumst", - "Runkelen", - "Rupelmonde", - "Russeignies", - "Rutten", - "Rèves", - "Saint-Amand", - "Saint-André", - "Saint-Aubin", - "Saint-Denis", - "Saint-Denis-Bovesse", - "Saint-Georges-sur-Meuse", - "Saint-Germain", - "Saint-Ghislain", - "Saint-Gérard", - "Saint-Géry", - "Saint-Hubert", - "Saint-Jean-Geest", - "Saint-Léger", - "Saint-Marc", - "Saint-Mard", - "Saint-Martin", - "Saint-Maur", - "Saint-Médard", - "Saint-Nicolas", - "Saint-Pierre", - "Saint-Remy", - "Saint-Remy-Geest", - "Saint-Sauveur", - "Saint-Servais", - "Saint-Symphorien", - "Saint-Séverin", - "Saint-Vaast", - "Saint-Vincent", - "Sainte-Cécile", - "Sainte-Marie-Chevigny", - "Sainte-Marie-sur-Semois", - "Sainte-Ode", - "Saintes", - "Saive", - "Salles", - "Samart", - "Sambreville", - "Samrée", - "Sankt-Vith", - "Sars-la-Bruyère", - "Sars-la-Buissière", - "Sart-Bernard", - "Sart-Custinne", - "Sart-Dames-Avelines", - "Sart-Eustache", - "Sart-Saint-Laurent", - "Sart-en-Fagne", - "Sart-lez-Spa", - "Sautin", - "Sautour", - "Sauvenière", - "Schaarbeek", - "Schaffen", - "Schalkhoven", - "Schaltin", - "Schelderode", - "Scheldewindeke", - "Schelle", - "Schellebelle", - "Schendelbeke", - "Schepdaal", - "Scherpenheuvel", - "Scherpenheuvel-Zichem", - "Schilde", - "Schoonaarde", - "Schore", - "Schorisse", - "Schoten", - "Schriek", - "Schuiferskapelle", - "Schulen", - "Schönberg", - "Sclayn", - "Scy", - "Seilles", - "Seloignes", - "Semmerzake", - "Seneffe", - "Sensenruth", - "Seny", - "Senzeille", - "Septon", - "Seraing", - "Seraing-le-Château", - "Serinchamps", - "Serskamp", - "Serville", - "Sibret", - "Signeulx", - "Sijsele", - "Silenrieux", - "Silly", - "Sinaai-Waas", - "Sinsin", - "Sint-Agatha-Berchem", - "Sint-Agatha-Rode", - "Sint-Amands", - "Sint-Amandsberg", - "Sint-Andries", - "Sint-Antelinks", - "Sint-Baafs-Vijve", - "Sint-Blasius-Boekel", - "Sint-Denijs", - "Sint-Denijs-Boekel", - "Sint-Denijs-Westrem", - "Sint-Eloois-Vijve", - "Sint-Eloois-Winkel", - "Sint-Genesius-Rode", - "Sint-Gillis", - "Sint-Gillis-Waas", - "Sint-Gillis-bij-Dendermonde", - "Sint-Goriks-Oudenhove", - "Sint-Huibrechts-Hern", - "Sint-Huibrechts-Lille", - "Sint-Jacobs-Kapelle", - "Sint-Jan", - "Sint-Jan-in-Eremo", - "Sint-Jans-Molenbeek", - "Sint-Job-in-'t-Goor", - "Sint-Joost-ten-Node", - "Sint-Joris-Beernem", - "Sint-Joris-Nieuwpoort", - "Sint-Joris-Weert", - "Sint-Joris-Winge", - "Sint-Katelijne-Waver", - "Sint-Katherina-Lombeek", - "Sint-Kornelis-Horebeke", - "Sint-Kruis", - "Sint-Kruis-Winkel", - "Sint-Kwintens-Lennik", - "Sint-Lambrechts-Herk", - "Sint-Lambrechts-Woluwe", - "Sint-Laureins", - "Sint-Laureins-Berchem", - "Sint-Lenaarts", - "Sint-Lievens-Esse", - "Sint-Lievens-Houtem", - "Sint-Margriete", - "Sint-Margriete-Houtem", - "Sint-Maria-Horebeke", - "Sint-Maria-Latem", - "Sint-Maria-Lierde", - "Sint-Maria-Oudenhove-Brakel", - "Sint-Maria-Oudenhove-Zottegem", - "Sint-Martens-Bodegem", - "Sint-Martens-Latem", - "Sint-Martens-Leerne", - "Sint-Martens-Lennik", - "Sint-Martens-Lierde", - "Sint-Martens-Voeren", - "Sint-Michiels", - "Sint-Niklaas", - "Sint-Pauwels", - "Sint-Pieters-Kapelle", - "Sint-Pieters-Leeuw", - "Sint-Pieters-Rode", - "Sint-Pieters-Voeren", - "Sint-Pieters-Woluwe", - "Sint-Rijkers", - "Sint-Stevens-Woluwe", - "Sint-Truiden", - "Sint-Ulriks-Kapelle", - "Sippenaeken", - "Sirault", - "Sivry", - "Sivry-Rance", - "Sleidinge", - "Slijpe", - "Slins", - "Sluizen", - "Smeerebbe-Vloerzegem", - "Smetlede", - "Smuid", - "Snaaskerke", - "Snellegem", - "Soheit-Tinlot", - "Sohier", - "Soignies", - "Soiron", - "Solre-Saint-Géry", - "Solre-sur-Sambre", - "Sombreffe", - "Somme-Leuze", - "Sommethonne", - "Sommière", - "Somzée", - "Sorinne-la-Longue", - "Sorinnes", - "Sorée", - "Sosoye", - "Sougné-Remouchamps", - "Soulme", - "Soumagne", - "Soumoy", - "Sourbrodt", - "Souvret", - "Sovet", - "Soy", - "Soye", - "Spa", - "Spalbeek", - "Spermalie", - "Spiennes", - "Spiere", - "Spiere-Helkijn", - "Spontin", - "Spouwen", - "Sprimont", - "Spy", - "Stabroek", - "Staden", - "Stalhille", - "Stambruges", - "Stave", - "Stavele", - "Stavelot", - "Steendorp", - "Steenhuffel", - "Steenhuize-Wijnhuize", - "Steenkerke", - "Steenkerque", - "Steenokkerzeel", - "Stekene", - "Stembert", - "Stene", - "Sterrebeek", - "Stevoort", - "Stokrooie", - "Stoumont", - "Straimont", - "Strijpen", - "Strijtem", - "Strombeek-Bever", - "Strée", - "Strée-lez-Huy", - "Strépy-Bracquegnies", - "Stuivekenskerke", - "Suarlée", - "Sugny", - "Surice", - "Suxy", - "Sélange", - "Tailles", - "Taintignies", - "Tamines", - "Tarcienne", - "Tavier", - "Taviers", - "Tavigny", - "Tellin", - "Templeuve", - "Temploux", - "Temse", - "Tenneville", - "Teralfene", - "Terhagen", - "Termes", - "Ternat", - "Tertre", - "Tervuren", - "Terwagne", - "Tessenderlo", - "Testelt", - "Teuven", - "Theux", - "Thiaumont", - "Thieu", - "Thieulain", - "Thieusies", - "Thimister", - "Thimister-Clermont", - "Thimougies", - "Thiméon", - "Thines", - "Thirimont", - "Thisnes", - "Thommen", - "Thon", - "Thorembais-Saint-Trond", - "Thorembais-les-Béguines", - "Thoricourt", - "Thuillies", - "Thuin", - "Thulin", - "Thumaide", - "Thy-le-Bauduin", - "Thy-le-Château", - "Thynes", - "Thys", - "Tiegem", - "Tielen", - "Tielrode", - "Tielt", - "Tielt-Winge", - "Tienen", - "Tignée", - "Tihange", - "Tildonk", - "Tilff", - "Tillet", - "Tilleur", - "Tillier", - "Tilly", - "Tinlot", - "Tintange", - "Tintigny", - "Tisselt", - "Toernich", - "Tohogne", - "Tollembeek", - "Tongeren", - "Tongerlo", - "Tongre-Notre-Dame", - "Tongre-Saint-Martin", - "Tongrinne", - "Tontelange", - "Torgny", - "Torhout", - "Tourinne", - "Tourinnes-Saint-Lambert", - "Tournai", - "Tournay", - "Tourpes", - "Transinne", - "Trazegnies", - "Treignes", - "Trembleur", - "Tremelo", - "Trivières", - "Trognée", - "Trois-Ponts", - "Trooz", - "Tubize", - "Turnhout", - "Ucimont", - "Uikhoven", - "Uitbergen", - "Uitkerke", - "Ukkel", - "Ulbeek", - "Upigny", - "Ursel", - "Vaalbeek", - "Val-Meer", - "Vance", - "Varendonk", - "Varsenare", - "Vaucelles", - "Vaulx", - "Vaulx-lez-Chimay", - "Vaux-Chavanne", - "Vaux-et-Borset", - "Vaux-lez-Rosières", - "Vaux-sous-Chèvremont", - "Vaux-sur-Sûre", - "Vechmaal", - "Vedrin", - "Veerle", - "Velaine-sur-Sambre", - "Velaines", - "Veldegem", - "Veldwezelt", - "Vellereille-le-Sec", - "Vellereille-les-Brayeux", - "Velm", - "Velroux", - "Veltem-Beisem", - "Velzeke-Ruddershove", - "Vencimont", - "Vergnies", - "Verlaine", - "Verlée", - "Verrebroek", - "Vertrijk", - "Verviers", - "Vesqueville", - "Veulen", - "Veurne", - "Vezin", - "Vezon", - "Viane", - "Vichte", - "Vielsalm", - "Viemme", - "Viersel", - "Vierset-Barse", - "Vierves-sur-Viroin", - "Viesville", - "Vieux-Genappe", - "Vieux-Waleffe", - "Vieuxville", - "Villance", - "Ville-Pommeroeul", - "Ville-en-Hesbaye", - "Ville-sur-Haine", - "Villerot", - "Villers-Deux-Eglises", - "Villers-Notre-Dame", - "Villers-Perwin", - "Villers-Poterie", - "Villers-Saint-Amand", - "Villers-Saint-Ghislain", - "Villers-Saint-Siméon", - "Villers-Sainte-Gertrude", - "Villers-aux-Tours", - "Villers-devant-Orval", - "Villers-en-Fagne", - "Villers-l'Evêque", - "Villers-la-Bonne-Eau", - "Villers-la-Loue", - "Villers-la-Tour", - "Villers-la-Ville", - "Villers-le-Bouillet", - "Villers-le-Gambon", - "Villers-le-Peuplier", - "Villers-le-Temple", - "Villers-lez-Heest", - "Villers-sur-Lesse", - "Villers-sur-Semois", - "Vilvoorde", - "Vinalmont", - "Vinderhoute", - "Vinkem", - "Vinkt", - "Virelles", - "Virginal-Samme", - "Viroinval", - "Virton", - "Vissenaken", - "Visé", - "Vitrival", - "Vivegnis", - "Vivy", - "Vladslo", - "Vlamertinge", - "Vlekkem", - "Vleteren", - "Vlezenbeek", - "Vliermaal", - "Vliermaalroot", - "Vlierzele", - "Vlijtingen", - "Vlimmeren", - "Vlissegem", - "Vloesberg", - "Vodecée", - "Vodelée", - "Voeren", - "Vogenée", - "Volkegem", - "Vollezele", - "Vonêche", - "Voorde", - "Voormezele", - "Voort", - "Voroux-Goreux", - "Voroux-lez-Liers", - "Vorselaar", - "Vorsen", - "Vorst", - "Vosselaar", - "Vosselare", - "Vossem", - "Vottem", - "Vrasene", - "Vremde", - "Vreren", - "Vresse-sur-Semois", - "Vroenhoven", - "Vucht", - "Vurste", - "Vyle-et-Tharoul", - "Waanrode", - "Waarbeke", - "Waardamme", - "Waarloos", - "Waarmaarde", - "Waarschoot", - "Waasmont", - "Waasmunster", - "Waasten", - "Wachtebeke", - "Wadelincourt", - "Wagnelée", - "Waha", - "Waillet", - "Wakken", - "Walcourt", - "Walem", - "Walhain", - "Walhain-Saint-Paul", - "Walhorn", - "Walsbets", - "Walshoutem", - "Waltwilder", - "Wambeek", - "Wancennes", - "Wandre", - "Wanfercée-Baulet", - "Wange", - "Wangenies", - "Wanlin", - "Wanne", - "Wannebecq", - "Wannegem-Lede", - "Wansin", - "Wanze", - "Wanzele", - "Warchin", - "Warcoing", - "Wardin", - "Waregem", - "Waremme", - "Waret-l'Evêque", - "Waret-la-Chaussée", - "Warisoulx", - "Warnant", - "Warnant-Dreye", - "Warquignies", - "Warsage", - "Warzée", - "Wasmes", - "Wasmes-Audemez-Briffoeil", - "Wasmuel", - "Wasseiges", - "Waterland-Oudeman", - "Waterloo", - "Watermaal-Bosvoorde", - "Watervliet", - "Watou", - "Wattripont", - "Waudrez", - "Waulsort", - "Wauthier-Braine", - "Waver", - "Wavreille", - "Wayaux", - "Ways", - "Webbekom", - "Wechelderzande", - "Weelde", - "Weerde", - "Weert", - "Wegnez", - "Weillen", - "Weismes", - "Welden", - "Welkenraedt", - "Welle", - "Wellen", - "Wellin", - "Wemmel", - "Wenduine", - "Werbomont", - "Werchter", - "Werken", - "Werm", - "Wervik", - "Wespelaar", - "Westende", - "Westerlo", - "Westkapelle", - "Westkerke", - "Westmalle", - "Westmeerbeek", - "Westouter", - "Westrem", - "Westrozebeke", - "Westvleteren", - "Wetteren", - "Wevelgem", - "Wez-Velvain", - "Wezemaal", - "Wezembeek-Oppem", - "Wezeren", - "Wibrin", - "Wichelen", - "Widooie", - "Wiekevorst", - "Wielsbeke", - "Wierde", - "Wiers", - "Wiesme", - "Wieze", - "Wihogne", - "Wihéries", - "Wijchmaal", - "Wijer", - "Wijgmaal", - "Wijnegem", - "Wijshagen", - "Wijtschate", - "Wilderen", - "Willaupuis", - "Willebringen", - "Willebroek", - "Willemeau", - "Willerzie", - "Wilrijk", - "Wilsele", - "Wilskerke", - "Wimmertingen", - "Winenne", - "Wingene", - "Winksele", - "Wintershoven", - "Witry", - "Wodecq", - "Woesten", - "Wolkrange", - "Wolvertem", - "Wommelgem", - "Wommersom", - "Wonck", - "Wondelgem", - "Wontergem", - "Wortegem", - "Wortegem-Petegem", - "Wortel", - "Woubrechtegem", - "Woumen", - "Wulpen", - "Wulvergem", - "Wulveringem", - "Wuustwezel", - "Wépion", - "Wéris", - "Xhendelesse", - "Xhendremael", - "Xhoris", - "Yernée-Fraineux", - "Yves-Gomezée", - "Yvoir", - "Zaffelare", - "Zandbergen", - "Zande", - "Zandhoven", - "Zandvliet", - "Zandvoorde-Oostende", - "Zandvoorde-Zonnebeke", - "Zarlardinge", - "Zarren", - "Zaventem", - "Zedelgem", - "Zeebrugge", - "Zegelsem", - "Zele", - "Zelem", - "Zellik", - "Zelzate", - "Zemst", - "Zepperen", - "Zerkegem", - "Zevekote", - "Zeveneken", - "Zeveren", - "Zevergem", - "Zichem", - "Zichen-Zussen-Bolder", - "Zillebeke", - "Zingem", - "Zoerle-Parwijs", - "Zoersel", - "Zolder", - "Zomergem", - "Zonhoven", - "Zonnebeke", - "Zonnegem", - "Zottegem", - "Zoutenaaie", - "Zoutleeuw", - "Zuidschote", - "Zuienkerke", - "Zulte", - "Zulzeke", - "Zutendaal", - "Zwalm", - "Zwevegem", - "Zwevezele", - "Zwijnaarde", - "Zwijndrecht", - "Zétrud-Lumay", - "l'Escaillère", - ) - - provinces = ( - "Antwerpen", - "Henegouwen", - "Limburg", - "Luik", - "Luxemburg", - "Namen", - "Oost-Vlaanderen", - "Vlaams-Brabant", - "Waals-Brabant", - "West-Vlaanderen", - ) - - street_name_formats = ("{{first_name}}{{street_suffix}}",) - - street_address_formats = ("{{street_name}} {{building_number}}",) - - address_formats = ( - "{{street_address}}\n{{postcode}}\n{{city}}", - "{{street_address}}\n{{postcode}} {{city}}", - ) - - def administrative_unit(self) -> str: - return self.random_element(self.provinces) - - province = administrative_unit - - def city(self) -> str: - return self.random_element(self.cities) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/nl_BE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/nl_BE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3a77724..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/nl_BE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/nl_NL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/nl_NL/__init__.py deleted file mode 100644 index d7ff67a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/nl_NL/__init__.py +++ /dev/null @@ -1,2737 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - building_number_formats = ("#", "##", "###", "#", "##", "###") - - street_suffixes = ( - "baan", - "boulevard", - "dreef", - "hof", - "laan", - "pad", - "ring", - "singel", - "steeg", - "straat", - "weg", - ) - - # the 4 digit numerical part of Dutch postcodes is between 1000 and 9999; - # see http://nl.wikipedia.org/wiki/Postcode#Postcodes_in_Nederland - postcode_formats = ("%###??", "%### ??") - - city_formats = ("{{city}}",) - - # countries are from http://nl.wikipedia.org/wiki/ISO_3166-1 - countries = ( - "Afghanistan", - "Albanië", - "Algerije", - "Amerikaans-Samoa", - "Amerikaanse Maagdeneilanden", - "Andorra", - "Angola", - "Anguilla", - "Antarctica", - "Antigua en Barbuda", - "Argentinië", - "Armenië", - "Aruba", - "Australië", - "Azerbeidzjan", - "Bahama's", - "Bahrein", - "Bangladesh", - "Barbados", - "België", - "Belize", - "Benin", - "Bermuda", - "Bhutan", - "Bolivia", - "Bonaire, Sint Eustatius en Saba", - "Bosnië en Herzegovina", - "Botswana", - "Bouveteiland", - "Brazilië", - "Brits Indische Oceaanterritorium", - "Britse Maagdeneilanden", - "Brunei", - "Bulgarije", - "Burkina Faso", - "Burundi", - "Cambodja", - "Canada", - "Centraal-Afrikaanse Republiek", - "Chili", - "China", - "Christmaseiland", - "Cocoseilanden", - "Colombia", - "Comoren", - "Congo-Brazzaville", - "Congo-Kinshasa", - "Cookeilanden", - "Costa Rica", - "Cuba", - "Curaçao", - "Cyprus", - "Denemarken", - "Djibouti", - "Dominica", - "Dominicaanse Republiek", - "Duitsland", - "Ecuador", - "Egypte", - "El Salvador", - "Equatoriaal-Guinea", - "Eritrea", - "Estland", - "Ethiopië", - "Faeröer", - "Falklandeilanden", - "Fiji", - "Filipijnen", - "Finland", - "Frankrijk", - "Frans-Guyana", - "Frans-Polynesië", - "Franse Zuidelijke en Antarctische Gebieden", - "Gabon", - "Gambia", - "Georgië", - "Ghana", - "Gibraltar", - "Grenada", - "Griekenland", - "Groenland", - "Guadeloupe", - "Guam", - "Guatemala", - "Guernsey", - "Guinee", - "Guinee-Bissau", - "Guyana", - "Haïti", - "Heard en McDonaldeilanden", - "Honduras", - "Hongarije", - "Hongkong", - "IJsland", - "Ierland", - "India", - "Indonesië", - "Irak", - "Iran", - "Israël", - "Italië", - "Ivoorkust", - "Jamaica", - "Japan", - "Jemen", - "Jersey", - "Jordanië", - "Kaaimaneilanden", - "Kaapverdië", - "Kameroen", - "Kazachstan", - "Kenia", - "Kirgizië", - "Kiribati", - "Kleine Pacifische eilanden van de Verenigde Staten", - "Koeweit", - "Kroatië", - "Laos", - "Lesotho", - "Letland", - "Libanon", - "Liberia", - "Libië", - "Liechtenstein", - "Litouwen", - "Luxemburg", - "Macau", - "Madagaskar", - "Malawi", - "Maldiven", - "Maleisië", - "Mali", - "Malta", - "Man", - "Marokko", - "Marshalleilanden", - "Martinique", - "Mauritanië", - "Mauritius", - "Mayotte", - "Mexico", - "Micronesia", - "Moldavië", - "Monaco", - "Mongolië", - "Montenegro", - "Montserrat", - "Mozambique", - "Myanmar", - "Namibië", - "Nauru", - "Nederland", - "Nepal", - "Nicaragua", - "Nieuw-Caledonië", - "Nieuw-Zeeland", - "Niger", - "Nigeria", - "Niue", - "Noord-Korea", - "Noord-Macedonië", - "Noordelijke Marianen", - "Noorwegen", - "Norfolk", - "Oeganda", - "Oekraïne", - "Oezbekistan", - "Oman", - "Oost-Timor", - "Oostenrijk", - "Pakistan", - "Palau", - "Palestina", - "Panama", - "Papoea-Nieuw-Guinea", - "Paraguay", - "Peru", - "Pitcairneilanden", - "Polen", - "Portugal", - "Puerto Rico", - "Qatar", - "Roemenië", - "Rusland", - "Rwanda", - "Réunion", - "Saint Kitts en Nevis", - "Saint Lucia", - "Saint Vincent en de Grenadines", - "Saint-Barthélemy", - "Saint-Pierre en Miquelon", - "Salomonseilanden", - "Samoa", - "San Marino", - "Sao Tomé en Principe", - "Saoedi-Arabië", - "Senegal", - "Servië", - "Seychellen", - "Sierra Leone", - "Singapore", - "Sint Maarten", - "Sint-Helena, Ascension en Tristan da Cunha", - "Sint-Maarten", - "Slovenië", - "Slowakije", - "Soedan", - "Somalië", - "Spanje", - "Spitsbergen en Jan Mayen", - "Sri Lanka", - "Suriname", - "Swaziland", - "Syrië", - "Tadzjikistan", - "Taiwan", - "Tanzania", - "Thailand", - "Togo", - "Tokelau", - "Tonga", - "Trinidad en Tobago", - "Tsjaad", - "Tsjechië", - "Tunesië", - "Turkije", - "Turkmenistan", - "Turks- en Caicoseilanden", - "Tuvalu", - "Uruguay", - "Vanuatu", - "Vaticaanstad", - "Venezuela", - "Verenigd Koninkrijk", - "Verenigde Arabische Emiraten", - "Verenigde Staten", - "Vietnam", - "Wallis en Futuna", - "Westelijke Sahara", - "Wit-Rusland", - "Zambia", - "Zimbabwe", - "Zuid-Afrika", - "Zuid-Georgia en de Zuidelijke Sandwicheilanden", - "Zuid-Korea", - "Zuid-Soedan", - "Zweden", - "Zwitserland", - "Åland", - ) - - # cities are taken from the BAG "woonplaats"; - # in this case the 8-Mar-2014 extract; - # see http://data.nlextract.nl/bag/csv/ - cities = ( - "'s Gravenmoer", - "'s-Graveland", - "'s-Gravendeel", - "'s-Gravenhage", - "'s-Gravenpolder", - "'s-Gravenzande", - "'s-Heer Abtskerke", - "'s-Heer Arendskerke", - "'s-Heer Hendrikskinderen", - "'s-Heerenberg", - "'s-Heerenbroek", - "'s-Heerenhoek", - "'s-Hertogenbosch", - "'t Goy", - "'t Haantje", - "'t Harde", - "'t Loo Oldebroek", - "'t Veld", - "'t Waar", - "'t Zand", - "'t Zandt", - "1e Exloërmond", - "2e Exloërmond", - "2e Valthermond", - "Aadorp", - "Aagtekerke", - "Aalden", - "Aalsmeer", - "Aalsmeerderbrug", - "Aalst", - "Aalsum", - "Aalten", - "Aardenburg", - "Aarlanderveen", - "Aarle-Rixtel", - "Aartswoud", - "Abbega", - "Abbekerk", - "Abbenbroek", - "Abbenes", - "Abcoude", - "Achlum", - "Achterveld", - "Achthuizen", - "Achtmaal", - "Acquoy", - "Adorp", - "Aduard", - "Aerdenhout", - "Aerdt", - "Afferden", - "Afferden L", - "Agelo", - "Akersloot", - "Akkrum", - "Akmarijp", - "Albergen", - "Alblasserdam", - "Alde Leie", - "Aldeboarn", - "Aldtsjerk", - "Alem", - "Alkmaar", - "Allingawier", - "Almelo", - "Almen", - "Almere", - "Almkerk", - "Alphen", - "Alphen aan den Rijn", - "Alteveer", - "Alteveer gem Hoogeveen", - "Altforst", - "Ambt Delden", - "Ameide", - "Amen", - "America", - "Amerongen", - "Amersfoort", - "Ammerstol", - "Ammerzoden", - "Amstelhoek", - "Amstelveen", - "Amstenrade", - "Amsterdam", - "Amsterdam-Duivendrecht", - "Andel", - "Andelst", - "Anderen", - "Andijk", - "Ane", - "Anerveen", - "Anevelde", - "Angeren", - "Angerlo", - "Anjum", - "Ankeveen", - "Anloo", - "Anna Paulowna", - "Annen", - "Annerveenschekanaal", - "Ansen", - "Apeldoorn", - "Appelscha", - "Appeltern", - "Appingedam", - "Arcen", - "Arkel", - "Arnemuiden", - "Arnhem", - "Arriën", - "Arum", - "Asch", - "Asperen", - "Assen", - "Assendelft", - "Asten", - "Augsbuurt", - "Augustinusga", - "Austerlitz", - "Avenhorn", - "Axel", - "Azewijn", - "Baaiduinen", - "Baaium", - "Baak", - "Baambrugge", - "Baard", - "Baarland", - "Baarle-Nassau", - "Baarlo", - "Baarn", - "Baars", - "Babberich", - "Babyloniënbroek", - "Bad Nieuweschans", - "Badhoevedorp", - "Baexem", - "Baflo", - "Bakel", - "Bakhuizen", - "Bakkeveen", - "Balgoij", - "Balinge", - "Balk", - "Balkbrug", - "Balloo", - "Balloërveld", - "Ballum", - "Baneheide", - "Banholt", - "Bant", - "Bantega", - "Barchem", - "Barendrecht", - "Barger-Compascuum", - "Barneveld", - "Barsingerhorn", - "Basse", - "Batenburg", - "Bathmen", - "Bavel", - "Bavel AC", - "Bears", - "Bedum", - "Beegden", - "Beek", - "Beek en Donk", - "Beekbergen", - "Beemte Broekland", - "Beers NB", - "Beerta", - "Beerze", - "Beerzerveld", - "Beesd", - "Beesel", - "Beets", - "Beetsterzwaag", - "Beilen", - "Beinsdorp", - "Belfeld", - "Bellingwolde", - "Belt-Schutsloot", - "Beltrum", - "Bemelen", - "Bemmel", - "Beneden-Leeuwen", - "Bennebroek", - "Bennekom", - "Benneveld", - "Benningbroek", - "Benschop", - "Bentelo", - "Benthuizen", - "Bentveld", - "Berg en Dal", - "Berg en Terblijt", - "Bergambacht", - "Bergeijk", - "Bergen (NH)", - "Bergen L", - "Bergen aan Zee", - "Bergen op Zoom", - "Bergentheim", - "Bergharen", - "Berghem", - "Bergschenhoek", - "Beringe", - "Berkel en Rodenrijs", - "Berkel-Enschot", - "Berkenwoude", - "Berkhout", - "Berlicum", - "Berltsum", - "Bern", - "Best", - "Beugen", - "Beuningen", - "Beuningen Gld", - "Beusichem", - "Beutenaken", - "Beverwijk", - "Biddinghuizen", - "Bierum", - "Biervliet", - "Biest-Houtakker", - "Biezenmortel", - "Biggekerke", - "Bilthoven", - "Bingelrade", - "Bitgum", - "Bitgummole", - "Bladel", - "Blankenham", - "Blaricum", - "Blauwestad", - "Blauwhuis", - "Bleiswijk", - "Blesdijke", - "Bleskensgraaf ca", - "Blessum", - "Blije", - "Blijham", - "Blitterswijck", - "Bloemendaal", - "Blokker", - "Blokzijl", - "Boazum", - "Bocholtz", - "Bodegraven", - "Boekel", - "Boelenslaan", - "Boer", - "Boerakker", - "Boesingheliede", - "Boijl", - "Boksum", - "Bolsward", - "Bontebok", - "Boornbergum", - "Boornzwaag", - "Borculo", - "Borger", - "Borgercompagnie", - "Borgsweer", - "Born", - "Borne", - "Bornerbroek", - "Bornwird", - "Borssele", - "Bosch en Duin", - "Boschoord", - "Boskoop", - "Bosschenhoofd", - "Botlek Rotterdam", - "Bourtange", - "Boven-Leeuwen", - "Bovenkarspel", - "Bovensmilde", - "Boxmeer", - "Boxtel", - "Braamt", - "Brakel", - "Brandwijk", - "Brantgum", - "Breda", - "Bredevoort", - "Breedenbroek", - "Breezand", - "Breezanddijk", - "Breskens", - "Breukelen", - "Breukeleveen", - "Brielle", - "Briltil", - "Britsum", - "Britswert", - "Broek", - "Broek in Waterland", - "Broek op Langedijk", - "Broekhuizen", - "Broekhuizenvorst", - "Broekland", - "Broeksterwâld", - "Bronkhorst", - "Bronneger", - "Bronnegerveen", - "Brouwershaven", - "Bruchem", - "Brucht", - "Bruchterveld", - "Bruinehaar", - "Bruinisse", - "Brummen", - "Brunssum", - "Bruntinge", - "Buchten", - "Budel", - "Budel-Dorplein", - "Budel-Schoot", - "Buggenum", - "Buinen", - "Buinerveen", - "Buitenkaag", - "Buitenpost", - "Bunde", - "Bunne", - "Bunnik", - "Bunschoten-Spakenburg", - "Burdaard", - "Buren", - "Burgerbrug", - "Burgerveen", - "Burgh-Haamstede", - "Burgum", - "Burgwerd", - "Burum", - "Bussum", - "Buurmalsen", - "Cadier en Keer", - "Cadzand", - "Callantsoog", - "Capelle aan den IJssel", - "Castelre", - "Castenray", - "Casteren", - "Castricum", - "Chaam", - "Clinge", - "Coevorden", - "Colijnsplaat", - "Collendoorn", - "Colmschate", - "Cornwerd", - "Cothen", - "Creil", - "Cromvoirt", - "Cruquius", - "Cuijk", - "Culemborg", - "Daarle", - "Daarlerveen", - "Dalem", - "Dalen", - "Dalerpeel", - "Dalerveen", - "Dalfsen", - "Dalmsholte", - "Damwâld", - "Darp", - "De Bilt", - "De Blesse", - "De Bult", - "De Cocksdorp", - "De Falom", - "De Glind", - "De Goorn", - "De Groeve", - "De Heen", - "De Heurne", - "De Hoeve", - "De Kiel", - "De Klomp", - "De Knipe", - "De Koog", - "De Krim", - "De Kwakel", - "De Lier", - "De Meern", - "De Moer", - "De Mortel", - "De Pol", - "De Punt", - "De Rijp", - "De Rips", - "De Schiphorst", - "De Steeg", - "De Tike", - "De Veenhoop", - "De Waal", - "De Weere", - "De Westereen", - "De Wilgen", - "De Wilp", - "De Zilk", - "Dearsum", - "Dedemsvaart", - "Dedgum", - "Deelen", - "Deest", - "Deil", - "Deinum", - "Delden", - "Delfgauw", - "Delfstrahuizen", - "Delft", - "Delfzijl", - "Delwijnen", - "Demen", - "Den Andel", - "Den Bommel", - "Den Burg", - "Den Dolder", - "Den Dungen", - "Den Ham", - "Den Helder", - "Den Hoorn", - "Den Horn", - "Den Hout", - "Den Ilp", - "Den Oever", - "Den Velde", - "Denekamp", - "Deurne", - "Deurningen", - "Deursen-Dennenburg", - "Deurze", - "Deventer", - "Didam", - "Dieden", - "Diemen", - "Diepenheim", - "Diepenveen", - "Dieren", - "Diessen", - "Diever", - "Dieverbrug", - "Diffelen", - "Dijken", - "Dinteloord", - "Dinxperlo", - "Diphoorn", - "Dirkshorn", - "Dirksland", - "Dodewaard", - "Doenrade", - "Doesburg", - "Doetinchem", - "Doeveren", - "Doezum", - "Dokkum", - "Doldersum", - "Domburg", - "Donderen", - "Dongen", - "Dongjum", - "Doniaga", - "Donkerbroek", - "Doorn", - "Doornenburg", - "Doornspijk", - "Doorwerth", - "Dordrecht", - "Dorst", - "Drachten", - "Drachten-Azeven", - "Drachtstercompagnie", - "Dreischor", - "Drempt", - "Dreumel", - "Driebergen-Rijsenburg", - "Drieborg", - "Driebruggen", - "Driehuis NH", - "Driehuizen", - "Driel", - "Driewegen", - "Driezum", - "Drijber", - "Drimmelen", - "Drogeham", - "Drogteropslagen", - "Drongelen", - "Dronryp", - "Dronten", - "Drouwen", - "Drouwenermond", - "Drouwenerveen", - "Drunen", - "Druten", - "Duiven", - "Duivendrecht", - "Duizel", - "Dussen", - "Dwingeloo", - "Eagum", - "Earnewâld", - "Easterein", - "Easterlittens", - "Eastermar", - "Easterwierrum", - "Echt", - "Echteld", - "Echten", - "Echtenerbrug", - "Eck en Wiel", - "Eckelrade", - "Edam", - "Ede", - "Ederveen", - "Ee", - "Eede", - "Eefde", - "Eelde", - "Eelderwolde", - "Eemdijk", - "Eemnes", - "Eemshaven", - "Een", - "Een-West", - "Eenrum", - "Eenum", - "Eerbeek", - "Eersel", - "Ees", - "Eesergroen", - "Eeserveen", - "Eesterga", - "Eesveen", - "Eethen", - "Eext", - "Eexterveen", - "Eexterveenschekanaal", - "Eexterzandvoort", - "Egchel", - "Egmond aan Zee", - "Egmond aan den Hoef", - "Egmond-Binnen", - "Eibergen", - "Eijsden", - "Eindhoven", - "Einighausen", - "Ekehaar", - "Elahuizen", - "Elburg", - "Eldersloo", - "Eleveld", - "Elim", - "Elkenrade", - "Ell", - "Ellecom", - "Ellemeet", - "Ellertshaar", - "Ellewoutsdijk", - "Elp", - "Elsendorp", - "Elshout", - "Elsloo", - "Elspeet", - "Elst", - "Elst Ut", - "Emmeloord", - "Emmen", - "Emmer-Compascuum", - "Empe", - "Emst", - "Engwierum", - "Enkhuizen", - "Ens", - "Enschede", - "Enspijk", - "Enter", - "Enumatil", - "Epe", - "Epen", - "Eppenhuizen", - "Epse", - "Erica", - "Erichem", - "Erlecom", - "Erm", - "Ermelo", - "Erp", - "Esbeek", - "Esch", - "Escharen", - "Espel", - "Est", - "Etten", - "Etten-Leur", - "Europoort Rotterdam", - "Eursinge", - "Everdingen", - "Evertsoord", - "Ewijk", - "Exloo", - "Exloërveen", - "Exmorra", - "Eygelshoven", - "Eys", - "Ezinge", - "Farmsum", - "Feanwâlden", - "Feerwerd", - "Feinsum", - "Ferwert", - "Ferwoude", - "Fijnaart", - "Finsterwolde", - "Firdgum", - "Fleringen", - "Fluitenberg", - "Fochteloo", - "Follega", - "Folsgare", - "Formerum", - "Foudgum", - "Foxhol", - "Foxwolde", - "Franeker", - "Frederiksoord", - "Friens", - "Frieschepalen", - "Froombosch", - "Gaanderen", - "Gaast", - "Gaastmeer", - "Galder", - "Gameren", - "Gapinge", - "Garderen", - "Garmerwolde", - "Garminge", - "Garnwerd", - "Garrelsweer", - "Garsthuizen", - "Garyp", - "Gassel", - "Gasselte", - "Gasselternijveen", - "Gasselternijveenschemond", - "Gastel", - "Gasteren", - "Gauw", - "Geelbroek", - "Geerdijk", - "Geersdijk", - "Geertruidenberg", - "Geervliet", - "Gees", - "Geesbrug", - "Geesteren", - "Geeuwenbrug", - "Geffen", - "Geijsteren", - "Geldermalsen", - "Gelderswoude", - "Geldrop", - "Geleen", - "Gellicum", - "Gelselaar", - "Gemert", - "Gemonde", - "Genderen", - "Gendringen", - "Gendt", - "Genemuiden", - "Gennep", - "Gerkesklooster", - "Gersloot", - "Geulle", - "Giesbeek", - "Giessen", - "Giessenburg", - "Gieten", - "Gieterveen", - "Giethmen", - "Giethoorn", - "Gilze", - "Ginnum", - "Glane", - "Glimmen", - "Godlinze", - "Goedereede", - "Goes", - "Goingarijp", - "Goirle", - "Goor", - "Gorinchem", - "Gorredijk", - "Gorssel", - "Gouda", - "Gouderak", - "Goudriaan", - "Goudswaard", - "Goutum", - "Goënga", - "Goëngahuizen", - "Graauw", - "Grafhorst", - "Graft", - "Gramsbergen", - "Grashoek", - "Grathem", - "Grave", - "Greonterp", - "Grevenbicht", - "Griendtsveen", - "Grijpskerk", - "Grijpskerke", - "Groede", - "Groenekan", - "Groeningen", - "Groenlo", - "Groesbeek", - "Groessen", - "Groet", - "Grolloo", - "Groningen", - "Gronsveld", - "Groot-Ammers", - "Grootebroek", - "Grootegast", - "Grootschermer", - "Grou", - "Grubbenvorst", - "Gulpen", - "Guttecoven", - "Gytsjerk", - "Haaften", - "Haaksbergen", - "Haalderen", - "Haaren", - "Haarle", - "Haarlem", - "Haarlemmerliede", - "Haarlo", - "Haarsteeg", - "Haarzuilens", - "Haastrecht", - "Haelen", - "Hagestein", - "Haghorst", - "Haler", - "Halfweg", - "Hall", - "Halle", - "Hallum", - "Halsteren", - "Handel", - "Hank", - "Hansweert", - "Hantum", - "Hantumeruitburen", - "Hantumhuizen", - "Hapert", - "Haps", - "Harbrinkhoek", - "Hardenberg", - "Harderwijk", - "Hardinxveld-Giessendam", - "Haren", - "Haren Gn", - "Harfsen", - "Harich", - "Haringhuizen", - "Harkema", - "Harkstede", - "Harlingen", - "Harmelen", - "Harreveld", - "Harskamp", - "Hartwerd", - "Haskerdijken", - "Haskerhorne", - "Hasselt", - "Hattem", - "Hattemerbroek", - "Haule", - "Haulerwijk", - "Hauwert", - "Havelte", - "Havelterberg", - "Hazerswoude-Dorp", - "Hazerswoude-Rijndijk", - "Hedel", - "Hedikhuizen", - "Hee", - "Heeg", - "Heel", - "Heelsum", - "Heelweg", - "Heemserveen", - "Heemskerk", - "Heemstede", - "Heenvliet", - "Heerde", - "Heerenveen", - "Heerewaarden", - "Heerhugowaard", - "Heerjansdam", - "Heerle", - "Heerlen", - "Heesbeen", - "Heesch", - "Heesselt", - "Heeswijk-Dinther", - "Heeten", - "Heeze", - "Hegebeintum", - "Hegelsom", - "Hei- en Boeicop", - "Heibloem", - "Heide", - "Heijen", - "Heijenrath", - "Heijningen", - "Heikant", - "Heilig Landstichting", - "Heiligerlee", - "Heiloo", - "Heinenoord", - "Heinkenszand", - "Heino", - "Hekelingen", - "Hekendorp", - "Helden", - "Helenaveen", - "Hellendoorn", - "Hellevoetsluis", - "Hellouw", - "Hellum", - "Helmond", - "Helvoirt", - "Hem", - "Hemelum", - "Hemmen", - "Hempens", - "Hemrik", - "Hendrik-Ido-Ambacht", - "Hengelo", - "Hengelo (Gld)", - "Hengevelde", - "Hengstdijk", - "Hensbroek", - "Herbaijum", - "Herkenbosch", - "Herkingen", - "Hernen", - "Herpen", - "Herpt", - "Herten", - "Hertme", - "Herveld", - "Herwen", - "Herwijnen", - "Heteren", - "Heukelom", - "Heukelum", - "Heumen", - "Heusden", - "Heveadorp", - "Heythuysen", - "Hezingen", - "Hiaure", - "Hichtum", - "Hidaard", - "Hierden", - "Hieslum", - "Hijken", - "Hijum", - "Hilaard", - "Hillegom", - "Hilvarenbeek", - "Hilversum", - "Hindeloopen", - "Hinnaard", - "Hippolytushoef", - "Hitzum", - "Hobrede", - "Hoedekenskerke", - "Hoek", - "Hoek van Holland", - "Hoenderloo", - "Hoensbroek", - "Hoenzadriel", - "Hoevelaken", - "Hoeven", - "Hoge Hexel", - "Hollandsche Rading", - "Hollandscheveld", - "Hollum", - "Holsloot", - "Holten", - "Holthees", - "Holtheme", - "Holthone", - "Holtum", - "Holwerd", - "Holwierde", - "Hommerts", - "Homoet", - "Honselersdijk", - "Hoofddorp", - "Hoofdplaat", - "Hoog Soeren", - "Hoog-Keppel", - "Hoogblokland", - "Hooge Mierde", - "Hooge Zwaluwe", - "Hoogeloon", - "Hoogenweg", - "Hoogerheide", - "Hoogersmilde", - "Hoogeveen", - "Hoogezand", - "Hooghalen", - "Hoogkarspel", - "Hoogland", - "Hooglanderveen", - "Hoogmade", - "Hoogvliet Rotterdam", - "Hoogwoud", - "Hoorn", - "Hoornaar", - "Hoornsterzwaag", - "Horn", - "Hornhuizen", - "Horssen", - "Horst", - "Houten", - "Houtigehage", - "Houwerzijl", - "Huijbergen", - "Huis ter Heide", - "Huisduinen", - "Huisseling", - "Huissen", - "Huizen", - "Huizinge", - "Hulsberg", - "Hulsel", - "Hulshorst", - "Hulst", - "Hulten", - "Hummelo", - "Hunsel", - "Hurdegaryp", - "Hurwenen", - "Húns", - "IJhorst", - "IJlst", - "IJmuiden", - "IJsselham", - "IJsselmuiden", - "IJsselstein", - "IJzendijke", - "IJzendoorn", - "Idaerd", - "Idsegahuizum", - "Idskenhuizen", - "Idzega", - "Iens", - "Ilpendam", - "Indijk", - "Ingber", - "Ingelum", - "Ingen", - "It Heidenskip", - "Itens", - "Ittervoort", - "Jaarsveld", - "Jabeek", - "Jannum", - "Jellum", - "Jelsum", - "Jirnsum", - "Jislum", - "Jisp", - "Jistrum", - "Jonkerslân", - "Jonkersvaart", - "Joppe", - "Jorwert", - "Joure", - "Jouswier", - "Jubbega", - "Julianadorp", - "Jutrijp", - "Kaag", - "Kaard", - "Kaatsheuvel", - "Kalenberg", - "Kallenkote", - "Kamerik", - "Kampen", - "Kamperland", - "Kamperveen", - "Kantens", - "Kapel Avezaath", - "Kapel-Avezaath", - "Kapelle", - "Kapellebrug", - "Katlijk", - "Kats", - "Kattendijke", - "Katwijk", - "Katwijk NB", - "Katwoude", - "Kedichem", - "Keent", - "Keijenborg", - "Kekerdom", - "Kelpen-Oler", - "Kerk Avezaath", - "Kerk-Avezaath", - "Kerkdriel", - "Kerkenveld", - "Kerkrade", - "Kerkwerve", - "Kerkwijk", - "Kessel", - "Kesteren", - "Kiel-Windeweer", - "Kilder", - "Kimswerd", - "Kinderdijk", - "Kinnum", - "Klaaswaal", - "Klarenbeek", - "Klazienaveen", - "Klazienaveen-Noord", - "Klein Zundert", - "Klijndijk", - "Klimmen", - "Kloetinge", - "Klooster Lidlum", - "Kloosterburen", - "Kloosterhaar", - "Kloosterzande", - "Klundert", - "Knegsel", - "Koarnjum", - "Kockengen", - "Koedijk", - "Koekange", - "Koewacht", - "Kolderwolde", - "Kolham", - "Kolhorn", - "Kollum", - "Kollumerpomp", - "Kollumerzwaag", - "Kommerzijl", - "Koningsbosch", - "Koningslust", - "Koog aan de Zaan", - "Koolwijk", - "Kootstertille", - "Kootwijk", - "Kootwijkerbroek", - "Kornhorn", - "Kornwerderzand", - "Kortehemmen", - "Kortenhoef", - "Kortgene", - "Koudekerk aan den Rijn", - "Koudekerke", - "Koudum", - "Koufurderrige", - "Krabbendijke", - "Kraggenburg", - "Kreileroord", - "Krewerd", - "Krimpen aan de Lek", - "Krimpen aan den IJssel", - "Kring van Dorth", - "Krommenie", - "Kronenberg", - "Kropswolde", - "Kruiningen", - "Kruisland", - "Kudelstaart", - "Kuinre", - "Kuitaart", - "Kwadendamme", - "Kwadijk", - "Kwintsheul", - "Kûbaard", - "Laag Zuthem", - "Laag-Keppel", - "Laag-Soeren", - "Lage Mierde", - "Lage Vuursche", - "Lage Zwaluwe", - "Lageland", - "Lambertschaag", - "Lamswaarde", - "Landerum", - "Landgraaf", - "Landhorst", - "Landsmeer", - "Langbroek", - "Langedijke", - "Langelille", - "Langelo", - "Langenboom", - "Langerak", - "Langeveen", - "Langeweg", - "Langezwaag", - "Langweer", - "Laren", - "Lathum", - "Lattrop-Breklenkamp", - "Lauwersoog", - "Lauwerzijl", - "Ledeacker", - "Leek", - "Leende", - "Leens", - "Leerbroek", - "Leerdam", - "Leermens", - "Leersum", - "Leeuwarden", - "Legemeer", - "Leiden", - "Leiderdorp", - "Leidschendam", - "Leimuiden", - "Leimuiderbrug", - "Lekkerkerk", - "Lekkum", - "Lellens", - "Lelystad", - "Lemele", - "Lemelerveld", - "Lemiers", - "Lemmer", - "Lengel", - "Lent", - "Leons", - "Lepelstraat", - "Lettelbert", - "Lettele", - "Leunen", - "Leur", - "Leusden", - "Leuth", - "Leutingewolde", - "Leuvenheim", - "Leveroy", - "Lewedorp", - "Lexmond", - "Lichtaard", - "Lichtenvoorde", - "Liempde", - "Lienden", - "Lierderholthuis", - "Lieren", - "Lierop", - "Lies", - "Lieshout", - "Liessel", - "Lievelde", - "Lieveren", - "Lijnden", - "Limbricht", - "Limmen", - "Linde", - "Linden", - "Linne", - "Linschoten", - "Lioessens", - "Lippenhuizen", - "Lisse", - "Lisserbroek", - "Lith", - "Lithoijen", - "Lobith", - "Lochem", - "Loenen", - "Loenen aan de Vecht", - "Loenersloot", - "Loerbeek", - "Lollum", - "Lomm", - "Longerhouw", - "Loo Gld", - "Loon", - "Loon op Zand", - "Loosbroek", - "Loosdrecht", - "Loozen", - "Lopik", - "Lopikerkapel", - "Loppersum", - "Losdorp", - "Losser", - "Lottum", - "Loënga", - "Lucaswolde", - "Luddeweer", - "Luinjeberd", - "Lunteren", - "Lutjebroek", - "Lutjegast", - "Lutjewinkel", - "Luttelgeest", - "Lutten", - "Luttenberg", - "Luxwoude", - "Luyksgestel", - "Lytsewierrum", - "Maarheeze", - "Maarn", - "Maarsbergen", - "Maarssen", - "Maartensdijk", - "Maasbommel", - "Maasbracht", - "Maasbree", - "Maasdam", - "Maasdijk", - "Maashees", - "Maasland", - "Maassluis", - "Maastricht", - "Maastricht-Airport", - "Maasvlakte Rotterdam", - "Macharen", - "Made", - "Makkinga", - "Makkum", - "Malden", - "Mander", - "Manderveen", - "Mantgum", - "Mantinge", - "Maren-Kessel", - "Margraten", - "Maria Hoop", - "Mariahout", - "Mariaparochie", - "Marijenkampen", - "Mariënberg", - "Mariënheem", - "Mariënvelde", - "Markelo", - "Marken", - "Markenbinnen", - "Marknesse", - "Marle", - "Marrum", - "Marsum", - "Marum", - "Marwijksoord", - "Mastenbroek", - "Matsloot", - "Maurik", - "Mechelen", - "Medemblik", - "Meeden", - "Meedhuizen", - "Meerkerk", - "Meerlo", - "Meerssen", - "Meerstad", - "Meeuwen", - "Megchelen", - "Megen", - "Meijel", - "Melderslo", - "Melick", - "Meliskerke", - "Melissant", - "Menaam", - "Mensingeweer", - "Meppel", - "Meppen", - "Merkelbeek", - "Merselo", - "Meteren", - "Meterik", - "Metslawier", - "Mheer", - "Middelaar", - "Middelburg", - "Middelharnis", - "Middelie", - "Middelstum", - "Middenbeemster", - "Middenmeer", - "Midlaren", - "Midlum", - "Midsland", - "Midwolda", - "Midwolde", - "Midwoud", - "Miedum", - "Mierlo", - "Mijdrecht", - "Mijnsheerenland", - "Mildam", - "Milheeze", - "Mill", - "Millingen aan de Rijn", - "Milsbeek", - "Minnertsga", - "Mirns", - "Moddergat", - "Moerdijk", - "Moergestel", - "Moerkapelle", - "Moerstraten", - "Molenaarsgraaf", - "Molenhoek", - "Molenschot", - "Molkwerum", - "Monnickendam", - "Monster", - "Montfoort", - "Montfort", - "Mook", - "Mookhoek", - "Moordrecht", - "Moorveld", - "Morra", - "Muiden", - "Muiderberg", - "Munnekeburen", - "Munnekezijl", - "Munstergeleen", - "Muntendam", - "Mussel", - "Musselkanaal", - "Mûnein", - "Naaldwijk", - "Naarden", - "Nagele", - "Nederasselt", - "Nederhemert", - "Nederhorst den Berg", - "Nederland", - "Nederweert", - "Nederweert-Eind", - "Neede", - "Neer", - "Neerijnen", - "Neeritter", - "Neerkant", - "Neerlangel", - "Neerloon", - "Nes", - "Netersel", - "Netterden", - "Niawier", - "Nibbixwoud", - "Niebert", - "Niehove", - "Niekerk", - "Nietap", - "Nieuw Annerveen", - "Nieuw Beerta", - "Nieuw Heeten", - "Nieuw Namen", - "Nieuw Scheemda", - "Nieuw- en Sint Joosland", - "Nieuw-Amsterdam", - "Nieuw-Balinge", - "Nieuw-Beijerland", - "Nieuw-Buinen", - "Nieuw-Dordrecht", - "Nieuw-Lekkerland", - "Nieuw-Roden", - "Nieuw-Schoonebeek", - "Nieuw-Vennep", - "Nieuw-Vossemeer", - "Nieuw-Weerdinge", - "Nieuwaal", - "Nieuwdorp", - "Nieuwe Niedorp", - "Nieuwe Pekela", - "Nieuwe Wetering", - "Nieuwe-Tonge", - "Nieuwebrug", - "Nieuwediep", - "Nieuwegein", - "Nieuwehorne", - "Nieuwendijk", - "Nieuwer Ter Aa", - "Nieuwerbrug aan den Rijn", - "Nieuwerkerk", - "Nieuwerkerk aan den IJssel", - "Nieuweroord", - "Nieuwersluis", - "Nieuweschoot", - "Nieuwkoop", - "Nieuwkuijk", - "Nieuwland", - "Nieuwlande", - "Nieuwlande Coevorden", - "Nieuwleusen", - "Nieuwolda", - "Nieuwpoort", - "Nieuwstadt", - "Nieuwveen", - "Nieuwvliet", - "Niezijl", - "Niftrik", - "Nigtevecht", - "Nij Altoenae", - "Nij Beets", - "Nijbroek", - "Nijeberkoop", - "Nijega", - "Nijehaske", - "Nijeholtpade", - "Nijeholtwolde", - "Nijelamer", - "Nijemirdum", - "Nijensleek", - "Nijetrijne", - "Nijeveen", - "Nijhuizum", - "Nijkerk", - "Nijkerkerveen", - "Nijland", - "Nijlande", - "Nijmegen", - "Nijverdal", - "Nispen", - "Nisse", - "Nistelrode", - "Noardburgum", - "Nooitgedacht", - "Noorbeek", - "Noord-Scharwoude", - "Noord-Sleen", - "Noordbeemster", - "Noordbroek", - "Noordeinde", - "Noordeinde Gld", - "Noordeloos", - "Noorden", - "Noordgouwe", - "Noordhoek", - "Noordhorn", - "Noordlaren", - "Noordscheschut", - "Noordwelle", - "Noordwijk", - "Noordwijkerhout", - "Noordwolde", - "Nootdorp", - "Norg", - "Notter", - "Nuenen", - "Nuis", - "Nuland", - "Numansdorp", - "Nunhem", - "Nunspeet", - "Nuth", - "Nutter", - "Obbicht", - "Obdam", - "Ochten", - "Odijk", - "Odiliapeel", - "Odoorn", - "Odoornerveen", - "Oeffelt", - "Oegstgeest", - "Oene", - "Oentsjerk", - "Offingawier", - "Ohé en Laak", - "Oijen", - "Oirlo", - "Oirsbeek", - "Oirschot", - "Oisterwijk", - "Okkenbroek", - "Olburgen", - "Oldeberkoop", - "Oldebroek", - "Oldeholtpade", - "Oldeholtwolde", - "Oldehove", - "Oldekerk", - "Oldelamer", - "Oldemarkt", - "Oldenzaal", - "Oldenzijl", - "Oldeouwer", - "Oldetrijne", - "Olst", - "Olterterp", - "Ommel", - "Ommen", - "Ommeren", - "Onderdendam", - "Onna", - "Onnen", - "Onstwedde", - "Ooij", - "Ooltgensplaat", - "Oost West en Middelbeers", - "Oost-Graftdijk", - "Oost-Souburg", - "Oostburg", - "Oostdijk", - "Oosteind", - "Oosterbeek", - "Oosterbierum", - "Oosterblokker", - "Oosterend", - "Oosterhesselen", - "Oosterhout", - "Oosterland", - "Oosterleek", - "Oosternieland", - "Oosternijkerk", - "Oosterstreek", - "Oosterwijk", - "Oosterwijtwerd", - "Oosterwolde", - "Oosterwolde Gld", - "Oosterzee", - "Oosthem", - "Oosthuizen", - "Oostkapelle", - "Oostknollendam", - "Oostrum", - "Oostvoorne", - "Oostwold", - "Oostwoud", - "Oostzaan", - "Ootmarsum", - "Opeinde", - "Opende", - "Ophemert", - "Opheusden", - "Opijnen", - "Oploo", - "Opmeer", - "Oppenhuizen", - "Opperdoes", - "Oranje", - "Oranjewoud", - "Orvelte", - "Ospel", - "Oss", - "Ossendrecht", - "Ossenisse", - "Ossenwaard", - "Ossenzijl", - "Oterleek", - "Otterlo", - "Ottersum", - "Ottoland", - "Oud Ade", - "Oud Annerveen", - "Oud Gastel", - "Oud Ootmarsum", - "Oud Zuilen", - "Oud-Alblas", - "Oud-Beijerland", - "Oud-Vossemeer", - "Ouddorp", - "Oude Meer", - "Oude Niedorp", - "Oude Pekela", - "Oude Wetering", - "Oude Willem", - "Oude-Tonge", - "Oudebildtzijl", - "Oudega", - "Oudehaske", - "Oudehorne", - "Oudelande", - "Oudemirdum", - "Oudemolen", - "Oudenbosch", - "Oudendijk", - "Oudenhoorn", - "Ouderkerk aan de Amstel", - "Ouderkerk aan den IJssel", - "Oudeschans", - "Oudeschild", - "Oudeschip", - "Oudeschoot", - "Oudesluis", - "Oudewater", - "Oudezijl", - "Oudheusden", - "Oudkarspel", - "Oudorp", - "Oudwoude", - "Ouwerkerk", - "Ouwster-Nijega", - "Ouwsterhaule", - "Overasselt", - "Overberg", - "Overdinkel", - "Overlangel", - "Overloon", - "Overschild", - "Overslag", - "Overveen", - "Ovezande", - "Paasloo", - "Paesens", - "Pannerden", - "Panningen", - "Papekop", - "Papendrecht", - "Papenhoven", - "Papenvoort", - "Parrega", - "Paterswolde", - "Peest", - "Peins", - "Peize", - "Peperga", - "Pernis Rotterdam", - "Persingen", - "Pesse", - "Petten", - "Philippine", - "Piaam", - "Piershil", - "Pieterburen", - "Pietersbierum", - "Pieterzijl", - "Pijnacker", - "Pingjum", - "Plasmolen", - "Poederoijen", - "Poeldijk", - "Polsbroek", - "Poortugaal", - "Poortvliet", - "Poppenwier", - "Posterholt", - "Prinsenbeek", - "Puiflijk", - "Punthorst", - "Purmer", - "Purmerend", - "Purmerland", - "Puth", - "Putte", - "Putten", - "Puttershoek", - "Raalte", - "Raamsdonk", - "Raamsdonksveer", - "Raard", - "Radewijk", - "Radio Kootwijk", - "Raerd", - "Randwijk", - "Ransdaal", - "Rasquert", - "Ravenstein", - "Ravenswaaij", - "Ravenswoud", - "Readtsjerk", - "Reahûs", - "Reduzum", - "Reek", - "Reeuwijk", - "Reijmerstok", - "Reitsum", - "Rekken", - "Renesse", - "Renkum", - "Renswoude", - "Ressen", - "Retranchement", - "Reusel", - "Reutum", - "Reuver", - "Rha", - "Rheden", - "Rhee", - "Rheeze", - "Rheezerveen", - "Rhenen", - "Rhenoy", - "Rhoon", - "Ridderkerk", - "Ried", - "Riel", - "Rien", - "Riethoven", - "Rietmolen", - "Rijen", - "Rijkevoort", - "Rijkevoort-De Walsert", - "Rijnsaterwoude", - "Rijnsburg", - "Rijpwetering", - "Rijs", - "Rijsbergen", - "Rijsenhout", - "Rijssen", - "Rijswijk", - "Rijswijk (GLD)", - "Rijswijk (NB)", - "Rilland", - "Rinsumageast", - "Ritthem", - "Rockanje", - "Roden", - "Roderesch", - "Roderwolde", - "Roelofarendsveen", - "Roermond", - "Rogat", - "Roggel", - "Rohel", - "Rolde", - "Roodeschool", - "Roosendaal", - "Roosteren", - "Rosmalen", - "Rossum", - "Roswinkel", - "Rotstergaast", - "Rotsterhaule", - "Rotterdam", - "Rotterdam-Albrandswaard", - "Rottevalle", - "Rottum", - "Rouveen", - "Rozenburg", - "Rozendaal", - "Rucphen", - "Ruigahuizen", - "Ruinen", - "Ruinerwold", - "Rumpt", - "Rutten", - "Ruurlo", - "Ryptsjerk", - "Saaksum", - "Saasveld", - "Saaxumhuizen", - "Sambeek", - "Sandfirden", - "Santpoort-Noord", - "Santpoort-Zuid", - "Sappemeer", - "Sas van Gent", - "Sassenheim", - "Sauwerd", - "Schagen", - "Schagerbrug", - "Schaijk", - "Schalkhaar", - "Schalkwijk", - "Schalsum", - "Schardam", - "Scharendijke", - "Scharmer", - "Scharnegoutum", - "Scharsterbrug", - "Scharwoude", - "Scheemda", - "Scheerwolde", - "Schellinkhout", - "Schelluinen", - "Schermerhorn", - "Scherpenisse", - "Scherpenzeel", - "Schettens", - "Scheulder", - "Schiedam", - "Schiermonnikoog", - "Schijf", - "Schijndel", - "Schildwolde", - "Schimmert", - "Schin op Geul", - "Schinnen", - "Schinveld", - "Schipborg", - "Schiphol", - "Schiphol-Rijk", - "Schipluiden", - "Schokland", - "Schoondijke", - "Schoonebeek", - "Schoonhoven", - "Schoonloo", - "Schoonoord", - "Schoonrewoerd", - "Schoorl", - "Schore", - "Schouwerzijl", - "Schraard", - "Schuinesloot", - "Sebaldeburen", - "Sellingen", - "Serooskerke", - "Sevenum", - "Sexbierum", - "Sibculo", - "Sibrandabuorren", - "Sibrandahûs", - "Siddeburen", - "Siebengewald", - "Siegerswoude", - "Sijbekarspel", - "Silvolde", - "Simonshaven", - "Simpelveld", - "Sinderen", - "Sint Agatha", - "Sint Annen", - "Sint Anthonis", - "Sint Geertruid", - "Sint Hubert", - "Sint Jansklooster", - "Sint Jansteen", - "Sint Joost", - "Sint Kruis", - "Sint Maarten", - "Sint Maartensbrug", - "Sint Maartensvlotbrug", - "Sint Nicolaasga", - "Sint Odiliënberg", - "Sint Pancras", - "Sint Philipsland", - "Sint-Annaland", - "Sint-Maartensdijk", - "Sint-Michielsgestel", - "Sint-Oedenrode", - "Sintjohannesga", - "Sirjansland", - "Sittard", - "Skingen", - "Slagharen", - "Slappeterp", - "Sleen", - "Sleeuwijk", - "Slenaken", - "Sliedrecht", - "Slijk-Ewijk", - "Slijkenburg", - "Slochteren", - "Slootdorp", - "Sloten", - "Sluis", - "Sluiskil", - "Smakt", - "Smalle Ee", - "Smallebrugge", - "Smilde", - "Snakkerburen", - "Sneek", - "Snelrewaard", - "Snikzwaag", - "Soerendonk", - "Soest", - "Soesterberg", - "Someren", - "Sommelsdijk", - "Son en Breugel", - "Sondel", - "Sonnega", - "Spaarndam", - "Spaarndam gem. Haarlem", - "Spanbroek", - "Spanga", - "Spankeren", - "Spannum", - "Spaubeek", - "Spier", - "Spierdijk", - "Spijk", - "Spijk Gn", - "Spijkenisse", - "Spijkerboor", - "Sprang-Capelle", - "Sprundel", - "Spui", - "St. Willebrord", - "St.-Annaparochie", - "St.-Jacobiparochie", - "Stad aan 't Haringvliet", - "Stadskanaal", - "Stampersgat", - "Standdaarbuiten", - "Staphorst", - "Starnmeer", - "Startenhuizen", - "Stavenisse", - "Stavoren", - "Stedum", - "Steenbergen", - "Steendam", - "Steenderen", - "Steenenkamer", - "Steensel", - "Steenwijk", - "Steenwijkerwold", - "Stegeren", - "Steggerda", - "Stein", - "Stellendam", - "Sterksel", - "Stevensbeek", - "Stevensweert", - "Steyl", - "Stieltjeskanaal", - "Stiens", - "Stitswerd", - "Stokkum", - "Stolwijk", - "Stompetoren", - "Stoutenburg", - "Stoutenburg Noord", - "Stramproy", - "Streefkerk", - "Striep", - "Strijbeek", - "Strijen", - "Strijensas", - "Stroe", - "Stroobos", - "Stuifzand", - "Sumar", - "Surhuisterveen", - "Surhuizum", - "Susteren", - "Suwâld", - "Swalmen", - "Sweikhuizen", - "Swichum", - "Swifterbant", - "Swolgen", - "Taarlo", - "Teeffelen", - "Teerns", - "Tegelen", - "Ten Boer", - "Ten Post", - "Ter Aar", - "Ter Aard", - "Ter Apel", - "Ter Apelkanaal", - "Ter Heijde", - "Ter Idzard", - "Terband", - "Terborg", - "Terheijden", - "Terherne", - "Terhole", - "Terkaple", - "Termunten", - "Termunterzijl", - "Ternaard", - "Terneuzen", - "Teroele", - "Terschuur", - "Tersoal", - "Terwispel", - "Terwolde", - "Teteringen", - "Teuge", - "Thesinge", - "Tholen", - "Thorn", - "Tiel", - "Tiendeveen", - "Tienhoven", - "Tienray", - "Tijnje", - "Tilburg", - "Tilligte", - "Tinallinge", - "Tinte", - "Tirns", - "Tjalhuizum", - "Tjalleberd", - "Tjerkgaast", - "Tjerkwerd", - "Tjuchem", - "Tolbert", - "Toldijk", - "Tolkamer", - "Tollebeek", - "Tonden", - "Toornwerd", - "Tricht", - "Triemen", - "Tripscompagnie", - "Tubbergen", - "Tuil", - "Tuitjenhorn", - "Tuk", - "Tull en 't Waal", - "Twello", - "Twijzel", - "Twijzelerheide", - "Twisk", - "Tynaarlo", - "Tytsjerk", - "Tzum", - "Tzummarum", - "Ubbena", - "Ubbergen", - "Uddel", - "Uden", - "Udenhout", - "Uffelte", - "Ugchelen", - "Uitdam", - "Uitgeest", - "Uithoorn", - "Uithuizen", - "Uithuizermeeden", - "Uitwellingerga", - "Uitwijk", - "Ulestraten", - "Ulft", - "Ulicoten", - "Ulrum", - "Ulvenhout", - "Ulvenhout AC", - "Ureterp", - "Urk", - "Urmond", - "Ursem", - "Ursem gem. S", - "Usquert", - "Utrecht", - "Vaals", - "Vaassen", - "Valburg", - "Valkenburg", - "Valkenswaard", - "Valthe", - "Valthermond", - "Varik", - "Varsselder", - "Varsseveld", - "Vasse", - "Veelerveen", - "Veen", - "Veendam", - "Veenendaal", - "Veenhuizen", - "Veeningen", - "Veenklooster", - "Veenoord", - "Veere", - "Veessen", - "Vegelinsoord", - "Veghel", - "Velddriel", - "Velden", - "Veldhoven", - "Velp", - "Velsen-Noord", - "Velsen-Zuid", - "Velserbroek", - "Ven-Zelderheide", - "Venebrugge", - "Venhorst", - "Venhuizen", - "Venlo", - "Venray", - "Vessem", - "Vethuizen", - "Veulen", - "Vianen", - "Vianen NB", - "Vierakker", - "Vierhouten", - "Vierhuizen", - "Vierlingsbeek", - "Vierpolders", - "Vijfhuizen", - "Vijlen", - "Vilsteren", - "Vinkega", - "Vinkel", - "Vinkenbuurt", - "Vinkeveen", - "Visvliet", - "Vlaardingen", - "Vlagtwedde", - "Vledder", - "Vledderveen", - "Vleuten", - "Vlieland", - "Vlierden", - "Vlijmen", - "Vlissingen", - "Vlist", - "Vlodrop", - "Voerendaal", - "Vogelenzang", - "Vogelwaarde", - "Volendam", - "Volkel", - "Vollenhove", - "Vondelingenplaat Rotterdam", - "Voorburg", - "Voorhout", - "Voorschoten", - "Voorst", - "Voorthuizen", - "Vorchten", - "Vorden", - "Vorstenbosch", - "Vortum-Mullem", - "Vragender", - "Vredenheim", - "Vredepeel", - "Vreeland", - "Vries", - "Vriescheloo", - "Vriezenveen", - "Vroomshoop", - "Vrouwenakker", - "Vrouwenparochie", - "Vrouwenpolder", - "Vught", - "Vuren", - "Waaksens", - "Waal", - "Waalre", - "Waalwijk", - "Waarde", - "Waardenburg", - "Waarder", - "Waardhuizen", - "Waarland", - "Waaxens", - "Wachtum", - "Waddinxveen", - "Wadenoijen", - "Wagenberg", - "Wagenborgen", - "Wageningen", - "Walem", - "Walsoorden", - "Wamel", - "Wanneperveen", - "Wanroij", - "Wanssum", - "Wapenveld", - "Wapse", - "Wapserveen", - "Warder", - "Warffum", - "Warfhuizen", - "Warfstermolen", - "Warmenhuizen", - "Warmond", - "Warns", - "Warnsveld", - "Warstiens", - "Warten", - "Waskemeer", - "Waspik", - "Wassenaar", - "Wateren", - "Watergang", - "Waterhuizen", - "Wateringen", - "Waterlandkerkje", - "Waverveen", - "Wedde", - "Weerselo", - "Weert", - "Weesp", - "Wehe-den Hoorn", - "Wehl", - "Weidum", - "Weiteveen", - "Wekerom", - "Well", - "Well L", - "Wellerlooi", - "Welsum", - "Wemeldinge", - "Wenum Wiesel", - "Wergea", - "Werkendam", - "Werkhoven", - "Wernhout", - "Wervershoof", - "Wesepe", - "Wessem", - "West-Graftdijk", - "West-Terschelling", - "Westbeemster", - "Westbroek", - "Westdorp", - "Westdorpe", - "Westendorp", - "Westerbeek", - "Westerbork", - "Westerbroek", - "Westeremden", - "Westergeest", - "Westerhaar-Vriezenveensewijk", - "Westerhoven", - "Westerland", - "Westerlee", - "Westernieland", - "Westervelde", - "Westervoort", - "Westerwijtwerd", - "Westhem", - "Westhoek", - "Westkapelle", - "Westknollendam", - "Westmaas", - "Westwoud", - "Westzaan", - "Wetering", - "Weteringbrug", - "Wetsens", - "Wetsinge", - "Weurt", - "Wezep", - "Wezup", - "Wezuperbrug", - "Wichmond", - "Wier", - "Wierden", - "Wieringerwaard", - "Wieringerwerf", - "Wierum", - "Wijchen", - "Wijckel", - "Wijdenes", - "Wijdewormer", - "Wijhe", - "Wijk aan Zee", - "Wijk bij Duurstede", - "Wijk en Aalburg", - "Wijlre", - "Wijnaldum", - "Wijnandsrade", - "Wijnbergen", - "Wijngaarden", - "Wijnjewoude", - "Wijster", - "Wilbertoord", - "Wildervank", - "Wilhelminadorp", - "Wilhelminaoord", - "Willemsoord", - "Willemstad", - "Wilnis", - "Wilp", - "Wilsum", - "Winde", - "Windraak", - "Winkel", - "Winneweer", - "Winschoten", - "Winssen", - "Winsum", - "Wintelre", - "Winterswijk", - "Winterswijk Brinkheurne", - "Winterswijk Corle", - "Winterswijk Henxel", - "Winterswijk Huppel", - "Winterswijk Kotten", - "Winterswijk Meddo", - "Winterswijk Miste", - "Winterswijk Ratum", - "Winterswijk Woold", - "Wirdum", - "Wirdum Gn", - "Wissenkerke", - "Witharen", - "Witmarsum", - "Witte Paarden", - "Wittelte", - "Wittem", - "Witteveen", - "Wiuwert", - "Wjelsryp", - "Woensdrecht", - "Woerden", - "Woerdense Verlaat", - "Wognum", - "Woldendorp", - "Wolfheze", - "Wolphaartsdijk", - "Wolsum", - "Woltersum", - "Wolvega", - "Wommels", - "Wons", - "Workum", - "Wormer", - "Wormerveer", - "Woubrugge", - "Woudbloem", - "Woudenberg", - "Woudrichem", - "Woudsend", - "Wouw", - "Wouwse Plantage", - "Wyns", - "Wytgaard", - "Wâlterswâld", - "Wânswert", - "Yde", - "Yerseke", - "Ypecolsga", - "Ysbrechtum", - "Ysselsteyn", - "Zaamslag", - "Zaandam", - "Zaandijk", - "Zalk", - "Zaltbommel", - "Zandberg", - "Zandeweer", - "Zandhuizen", - "Zandpol", - "Zandvoort", - "Zeddam", - "Zeegse", - "Zeeland", - "Zeerijp", - "Zeewolde", - "Zegge", - "Zegveld", - "Zeijen", - "Zeijerveen", - "Zeijerveld", - "Zeist", - "Zelhem", - "Zenderen", - "Zennewijnen", - "Zetten", - "Zevenaar", - "Zevenbergen", - "Zevenbergschen Hoek", - "Zevenhoven", - "Zevenhuizen", - "Zierikzee", - "Zieuwent", - "Zijderveld", - "Zijdewind", - "Zijldijk", - "Zoelen", - "Zoelmond", - "Zoetermeer", - "Zoeterwoude", - "Zonnemaire", - "Zorgvlied", - "Zoutelande", - "Zoutkamp", - "Zuid-Beijerland", - "Zuid-Scharwoude", - "Zuidbroek", - "Zuiddorpe", - "Zuidermeer", - "Zuiderwoude", - "Zuidhorn", - "Zuidlaarderveen", - "Zuidland", - "Zuidlaren", - "Zuidoostbeemster", - "Zuidschermer", - "Zuidveen", - "Zuidveld", - "Zuidvelde", - "Zuidwolde", - "Zuidzande", - "Zuilichem", - "Zuna", - "Zundert", - "Zurich", - "Zutphen", - "Zuurdijk", - "Zwaag", - "Zwaagdijk-Oost", - "Zwaagdijk-West", - "Zwaanshoek", - "Zwagerbosch", - "Zwammerdam", - "Zwanenburg", - "Zwartebroek", - "Zwartemeer", - "Zwartewaal", - "Zwartsluis", - "Zweeloo", - "Zweins", - "Zwiggelte", - "Zwijndrecht", - "Zwinderen", - "Zwolle", - "de Hoef", - "de Lutte", - "de Wijk", - "de Woude", - ) - - provinces = ( - "Drenthe", - "Flevoland", - "Friesland", - "Gelderland", - "Groningen", - "Limburg", - "Noord-Brabant", - "Noord-Holland", - "Overijssel", - "Utrecht", - "Zeeland", - "Zuid-Holland", - ) - - street_name_formats = ("{{first_name}}{{street_suffix}}",) - - street_address_formats = ("{{street_name}} {{building_number}}",) - - address_formats = ("{{street_address}}\n{{postcode}}\n{{city}}",) - - def administrative_unit(self) -> str: - return self.random_element(self.provinces) - - province = administrative_unit - - def city(self) -> str: - return self.random_element(self.cities) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/nl_NL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/nl_NL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4792e27..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/nl_NL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/no_NO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/no_NO/__init__.py deleted file mode 100644 index 170cba5..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/no_NO/__init__.py +++ /dev/null @@ -1,114 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_suffixes = [ - "berg", - "borg", - "by", - "bø", - "dal", - "eid", - "fjell", - "fjord", - "foss", - "grunn", - "hamn", - "havn", - "helle", - "mark", - "nes", - "odden", - "sand", - "sjøen", - "stad", - "strand", - "strøm", - "sund", - "vik", - "vær", - "våg", - "ø", - "øy", - "ås", - ] - street_suffixes = [ - "alléen", - "bakken", - "berget", - "bråten", - "eggen", - "engen", - "ekra", - "faret", - "flata", - "gata", - "gjerdet", - "grenda", - "gropa", - "hagen", - "haugen", - "havna", - "holtet", - "høgda", - "jordet", - "kollen", - "kroken", - "lia", - "lunden", - "lyngen", - "løkka", - "marka", - "moen", - "myra", - "plassen", - "ringen", - "roa", - "røa", - "skogen", - "skrenten", - "spranget", - "stien", - "stranda", - "stubben", - "stykket", - "svingen", - "tjernet", - "toppen", - "tunet", - "vollen", - "vika", - "åsen", - ] - city_formats = ["{{first_name}}{{city_suffix}}", "{{last_name}}"] - street_name_formats = [ - "{{last_name}}{{street_suffix}}", - ] - street_address_formats = ("{{street_name}} {{building_number}}",) - address_formats = ("{{street_address}}, {{postcode}} {{city}}",) - building_number_formats = ("%", "%", "%", "%?", "##", "##", "##?", "###") - building_number_suffixes = OrderedDict( - [ - ("A", 0.2), - ("B", 0.2), - ("C", 0.2), - ("D", 0.1), - ("E", 0.1), - ("F", 0.1), - ("G", 0.05), - ("H", 0.05), - ] - ) - postcode_formats = ("####",) - - def building_number(self) -> str: - suffix: str = self.random_element(self.building_number_suffixes) - return self.numerify(self.random_element(self.building_number_formats)).replace("?", suffix) - - def city_suffix(self) -> str: - return self.random_element(self.city_suffixes) - - def street_suffix(self) -> str: - return self.random_element(self.street_suffixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/no_NO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/no_NO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index bbe1655..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/no_NO/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/pl_PL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/pl_PL/__init__.py deleted file mode 100644 index d5b33e5..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/pl_PL/__init__.py +++ /dev/null @@ -1,750 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - cities = ( - "Warszawa", - "Kraków", - "Łódź", - "Wrocław", - "Poznań", - "Gdańsk", - "Szczecin", - "Bydgoszcz", - "Lublin", - "Katowice", - "Białystok", - "Gdynia", - "Częstochowa", - "Radom", - "Sosnowiec", - "Toruń", - "Kielce", - "Gliwice", - "Rzeszów", - "Zabrze", - "Bytom", - "Olsztyn", - "Bielsko-Biała", - "Ruda Śląska", - "Rybnik", - "Tychy", - "Dąbrowa Górnicza", - "Gorzów Wielkopolski", - "Elbląg", - "Płock", - "Opole", - "Wałbrzych", - "Zielona Góra", - "Włocławek", - "Tarnów", - "Chorzów", - "Koszalin", - "Kalisz", - "Legnica", - "Grudziądz", - "Słupsk", - "Jaworzno", - "Jastrzębie-Zdrój", - "Nowy Sącz", - "Jelenia Góra", - "Konin", - "Piotrków Trybunalski", - "Siedlce", - "Inowrocław", - "Mysłowice", - "Piła", - "Lubin", - "Ostrów Wielkopolski", - "Ostrowiec Świętokrzyski", - "Gniezno", - "Stargard Szczeciński", - "Siemianowice Śląskie", - "Suwałki", - "Głogów", - "Pabianice", - "Chełm", - "Zamość", - "Tomaszów Mazowiecki", - "Leszno", - "Przemyśl", - "Stalowa Wola", - "Kędzierzyn-Koźle", - "Łomża", - "Żory", - "Mielec", - "Tarnowskie Góry", - "Tczew", - "Bełchatów", - "Świdnica", - "Ełk", - "Pruszków", - "Będzin", - "Biała Podlaska", - "Zgierz", - "Piekary Śląskie", - "Racibórz", - "Legionowo", - "Ostrołęka", - "Świętochłowice", - "Starachowice", - "Zawiercie", - "Wejherowo", - "Puławy", - "Wodzisław Śląski", - "Starogard Gdański", - "Skierniewice", - "Tarnobrzeg", - "Skarżysko-Kamienna", - "Radomsko", - "Krosno", - "Rumia", - "Dębica", - "Kołobrzeg", - "Kutno", - "Nysa", - "Ciechanów", - "Otwock", - "Piaseczno", - "Zduńska Wola", - "Sieradz", - "Świnoujście", - "Żyrardów", - "Szczecinek", - "Świdnik", - "Chojnice", - "Nowa Sól", - "Oświęcim", - "Bolesławiec", - "Mińsk Mazowiecki", - "Mikołów", - "Jarosław", - "Sanok", - "Knurów", - "Malbork", - "Żary", - "Kwidzyn", - "Chrzanów", - "Sopot", - "Sochaczew", - "Wołomin", - "Oleśnica", - "Brzeg", - "Olkusz", - "Jasło", - "Cieszyn", - "Kraśnik", - "Lębork", - "Czechowice-Dziedzice", - "Dzierżoniów", - "Ostróda", - "Police", - "Nowy Targ", - "Iława", - "Czeladź", - "Myszków", - "Żywiec", - "Zgorzelec", - "Oława", - "Bielawa", - "Swarzędz", - "Mława", - "Ząbki", - "Łuków", - "Augustów", - "Śrem", - "Bochnia", - "Luboń", - "Giżycko", - "Grodzisk Mazowiecki", - "Łowicz", - "Krotoszyn", - "Września", - "Turek", - "Pruszcz Gdański", - "Brodnica", - "Gorlice", - "Czerwionka-Leszczyny", - "Kłodzko", - "Marki", - "Nowy Dwór Mazowiecki", - "Kętrzyn", - "Zakopane", - "Wyszków", - "Biłgoraj", - "Żagań", - "Bielsk Podlaski", - "Świecie", - "Wałcz", - "Jarocin", - "Pszczyna", - "Wągrowiec", - "Szczytno", - "Białogard", - "Sandomierz", - "Bartoszyce", - "Kluczbork", - "Lubliniec", - "Skawina", - "Jawor", - "Kościan", - "Wieluń", - "Kościerzyna", - "Nowa Ruda", - "Świebodzice", - "Koło", - "Piastów", - "Goleniów", - "Ostrów Mazowiecka", - "Polkowice", - "Lubartów", - "Zambrów", - "Płońsk", - "Reda", - "Łaziska Górne", - "Środa Wielkopolska", - ) - - street_prefixes_feminine = ( - "ulica", - "aleja", - ) - - street_prefixes_masculine = ("plac",) - - street_prefixes = street_prefixes_feminine + street_prefixes_masculine - - streets_adjective_feminine = ( - "Polna", - "Leśna", - "Słoneczna", - "Krótka", - "Szkolna", - "Ogrodowa", - "Lipowa", - "Brzozowa", - "Łąkowa", - "Kwiatowa", - "Sosnowa", - "Kościelna", - "Akacjowa", - "Parkowa", - "Zielona", - "Kolejowa", - "Sportowa", - "Dębowa", - "Cicha", - "Spokojna", - "Klonowa", - "Spacerowa", - "Swierkowa", - "Kasztanowa", - "Nowa", - "Piaskowa", - "Rózana", - "Topolowa", - "Wiśniowa", - "Dworcowa", - "Wiejska", - "Graniczna", - "Długa", - "Wrzosowa", - "Boczna", - "Wąska", - "Wierzbowa", - "Jaśminowa", - "Wspólna", - "Modrzewiowa", - "Poprzeczna", - "Wesoła", - "Pogodna", - "Bukowa", - "Sadowa", - "Górna", - "Jodłowa", - "Glówna", - "Młyńska", - "Strażacka", - "Jesionowa", - "Przemysłowa", - "Osiedlowa", - "Wiosenna", - "Południowa", - "Malinowa", - "Stawowa", - "Reymonta", - "Zacisze", - "Cmentarna", - "Okrężna", - "Miła", - "Jasna", - "Wodna", - "Zamkowa", - "Warszawska", - "Miodowa", - "Krzywa", - "Dolna", - "Podgórna", - "Kreta", - "Jarzębinowa", - "Targowa", - "Prosta", - "Spółdzielcza", - "Jagodowa", - "Działkowa", - "Orzechowa", - "Rzemieślnicza", - "Rzeczna", - "Fabryczna", - "Tęczowa", - "Chabrowa", - "Poziomkowa", - "Konwaliowa", - "Kalinowa", - "Północna", - "Grunwaldzka", - "Cisowa", - "Nadrzeczna", - "Pocztowa", - "Zachodnia", - "Dąbrowskiego", - "Grabowa", - "Źródlana", - "Gajowa", - "Mostowa", - "Wschodnia", - "Jaworowa", - "Poznańska", - "Makowa", - "Jeziorna", - "Piękna", - "Czereśniowa", - "Mała", - "Krakowska", - "Radosna", - "Leszczynowa", - "Rolna", - "Piastowska", - "Grzybowa", - "Podleśna", - "Żytnia", - "Złota", - "Bursztynowa", - "Żwirowa", - "Widokowa", - "Kamienna", - "Jałowcowa", - "Morelowa", - "Myśliwska", - "Łączna", - "Szpitalna", - "Wczasowa", - "Żurawia", - "Fiołkowa", - "Rolnicza", - "Tulipanowa", - "Dworska", - "Letnia", - "Liliowa", - "Owocowa", - "Harcerska", - "Strzelecka", - "Wrocławska", - "Gdańska", - "Turystyczna", - "Rybacka", - "Okrzei", - "Krucza", - "Jagiellońska", - "Szeroka", - "Młynarska", - "Olchowa", - "Rumiankowa", - "Stroma", - "Starowiejska", - "Mazowiecka", - "Lawendowa", - "Robotnicza", - "Zbożowa", - "Mokra", - "Towarowa", - "Dobra", - "Środkowa", - "Willowa", - "Zielna", - "Zdrojowa", - "Opolska", - "Agrestowa", - "Księżycowa", - "Zwycięstwa", - "Letniskowa", - "Orla", - "Błękitna", - "Rubinowa", - "Brzoskwiniowa", - "Urocza", - "Pomorska", - "Jeżynowa", - "Zaciszna", - "Porzeczkowa", - "Krańcowa", - "Jesienna", - "Klasztorna", - "Irysowa", - "Niecała", - "Nadbrzeżna", - "Wałowa", - "Strumykowa", - "Gołębia", - "Torowa", - "Cegielniana", - "Cyprysowa", - "Słowianska", - "Diamentowa", - "Częstochowska", - "Dojazdowa", - "Przechodnia", - "Lubelska", - "Borówkowa", - "Plażowa", - "Tartaczna", - "Jabłoniowa", - "Ludowa", - "Sokola", - "Azaliowa", - "Szmaragdowa", - "Lipca", - "Jastrzębia", - "Storczykowa", - "Wilcza", - "Górnicza", - "Szafirowa", - "Handlowa", - "Krokusowa", - "Składowa", - "Widok", - "Perłowa", - "Skośna", - "Wypoczynkowa", - "Chmielna", - "Jaskółcza", - "Nowowiejska", - "Piwna", - "Śląska", - "Zaułek", - "Głogowa", - "Górska", - "Truskawkowa", - "Kaszubska", - "Mazurska", - "Srebrna", - "Bociania", - "Ptasia", - "Cedrowa", - "Rycerska", - "Żabia", - "Toruńska", - "Podmiejska", - "Słonecznikowa", - "Sowia", - "Stolarska", - "Szczęśliwa", - "Lazurowa", - "Miarki", - "Narcyzowa", - "Browarna", - "Majowa", - "Orkana", - "Skrajna", - "Bankowa", - "Bydgoska", - "Piekarska", - "Żeglarska", - "Turkusowa", - "Tylna", - "Wysoka", - "Zakątek", - "Morska", - "Rataja", - "Szewska", - "Podwale", - "Pałacowa", - "Magnoliowa", - "Ceglana", - "Wiklinowa", - "Zakole", - "Borowa", - "Kolorowa", - "Lisia", - "Lotnicza", - "Sarnia", - "Wiązowa", - "Kolonia", - "Królewska", - "Promienna", - "Daleka", - "Wiatraczna", - "Kaliska", - "Łanowa", - "Średnia", - "Wiślana", - "Koralowa", - "Sybiraków", - "Kowalska", - "Morcinka", - "Odrzańska", - "Okulickiego", - "Zapolskiej", - "Łabędzia", - "Bałtycka", - "Lwowska", - "Rajska", - "Pszenna", - "Ciasna", - "Hutnicza", - "Kielecka", - ) - - streets_universal = ( - "Stycznia", - "Maja", - "Listopada", - "Rynek", - "Kościuszki", - "Mickiewicza", - "Sienkiewicza", - "Słowackiego", - "Konopnickiej", - "Kopernika", - "Jana Pawła II", - "Żeromskiego", - "Wojska Polskiego", - "Wolności", - "Prusa", - "Sikorskiego", - "Chopina", - "Piłsudskiego", - "Kochanowskiego", - "Armii Krajowej", - "Witosa", - "Reja", - "Partyzantów", - "Kilińskiego", - "Moniuszki", - "Orzeszkowej", - "Staszica", - "Bolesława Chrobrego", - "Wyszyńskiego", - "Matejki", - "Norwida", - "Asnyka", - "Paderewskiego", - "Wyspiańskiego", - "Broniewskiego", - "Tuwima", - "Bema", - "Traugutta", - "Jadwigi", - "Wyzwolenia", - "Krasickiego", - "Kazimierza Wielkiego", - "Mieszka I", - "Głowackiego", - "Władysława Jagiełły", - "Pułaskiego", - "Stefana Batorego", - "Kołłątaja", - "Kraszewskiego", - "Władysława Łokietka", - "Żwirki i Wigury", - "Niepodległości", - "Poniatowskiego", - "Korczaka", - "Narutowicza", - "Świerczewskiego", - "Kasprowicza", - "Jana III Sobieskiego", - "Powstańców Śląskich", - "Powstańców Wielkopolskich", - "Fredry", - "Andersa", - "Baczyńskiego", - "Batalionów Chłopskich", - "Dąbrowskiej", - "Skłodowskiej-Curie", - "Gałczyńskiego", - "Krasińskiego", - "Szymanowskiego", - "Czarnieckiego", - "Nałkowskiej", - "Wybickiego", - "Szarych Szeregów", - "Słowicza", - "Drzymały", - "Waryńskiego", - "Hallera", - "Plater", - "Popiełuszki", - "Chełmońskiego", - "Daszyńskiego", - "Kossaka", - "Skargi", - "Staffa", - "Tysiąclecia", - "Brzechwy", - "Kusocińskiego", - "Długosza", - "Kosynierów", - "Wieniawskiego", - "Powstańców", - "Sucharskiego", - "Bolesława Krzywoustego", - "Konarskiego", - "Konstytucji 3 Maja", - "Miłosza", - "Malczewskiego", - "Jana", - "Maczka", - "Sawickiej", - "Ściegiennego", - "Grottgera", - "Jana Sobieskiego", - "Rejtana", - "Wróblewskiego", - "Kruczkowskiego", - "Lelewela", - "Makuszyńskiego", - "Solidarności", - "Wojciecha", - "Korfantego", - "Floriana", - ) - - streets = streets_adjective_feminine + streets_universal - - regions = ( - "Dolnośląskie", - "Kujawsko - pomorskie", - "Lubelskie", - "Lubuskie", - "Łódzkie", - "Małopolskie", - "Mazowieckie", - "Opolskie", - "Podkarpackie", - "Podlaskie", - "Pomorskie", - "Śląskie", - "Świętokrzyskie", - "Warmińsko - mazurskie", - "Wielkopolskie", - "Zachodniopomorskie", - ) - - building_number_formats = ("##", "###", "##/##") - postcode_formats = ("##-###",) - street_address_formats = ( - "{{street_prefix_feminine}} {{street_name_adjective_feminine}} {{building_number}}", - "{{street_prefix_feminine}} {{street_name_universal}} {{building_number}}", - "{{street_prefix_masculine}} {{street_name_universal}} {{building_number}}", - "{{street_prefix_feminine_short}} {{street_name_adjective_feminine}} {{building_number}}", - "{{street_prefix_feminine_short}} {{street_name_universal}} {{building_number}}", - "{{street_prefix_masculine_short}} {{street_name_universal}} {{building_number}}", - ) - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - def street_prefix(self) -> str: - """ - Randomly returns a street prefix - :example: 'aleja' - """ - return self.random_element(self.street_prefixes) - - def street_prefix_feminine(self) -> str: - """ - Randomly returns a feminine street prefix - :example: 'aleja' - """ - return self.random_element(self.street_prefixes_feminine) - - def street_prefix_masculine(self) -> str: - """ - Randomly returns a masculine street prefix - :example: 'plac' - """ - return self.random_element(self.street_prefixes_masculine) - - def street_prefix_short(self) -> str: - """ - Randomly returns an abbreviation of the street prefix. - :example: 'al.' - """ - return self.random_element(self.street_prefixes)[:2] + "." # type: ignore - - def street_prefix_feminine_short(self) -> str: - """ - Randomly returns an abbreviation of the feminine street prefix. - :example: 'al.' - """ - return self.random_element(self.street_prefixes_feminine)[:2] + "." # type: ignore - - def street_prefix_masculine_short(self) -> str: - """ - Randomly returns an abbreviation of the masculine street prefix. - :example: 'pl.' - """ - return self.random_element(self.street_prefixes_masculine)[:2] + "." # type: ignore - - def street_name(self) -> str: - """ - Randomly returns a street name - :example: 'Wróblewskiego' - """ - return self.random_element(self.streets) - - def street_name_adjective_feminine(self) -> str: - """ - Randomly returns an adjective feminine street name - :example: 'Zielona' - """ - return self.random_element(self.streets_adjective_feminine) - - def street_name_universal(self) -> str: - """ - Randomly returns a universal street name - :example: 'Wróblewskiego' - """ - return self.random_element(self.streets_universal) - - def city(self) -> str: - """ - Randomly returns a city name - :example: 'Konin' - """ - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - """ - :example: 'Wielkopolskie' - """ - return self.random_element(self.regions) - - def postcode(self) -> str: - """ - :example: '62-200' - """ - return "%02d-%03d" % (self.generator.random.randint(1, 99), self.generator.random.randint(1, 999)) - - def zipcode(self) -> str: - """ - :example: '62-200' - """ - return self.postcode() - - def postalcode(self) -> str: - """ - :example: '62-200' - """ - return self.postcode() - - region = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/pl_PL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/pl_PL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 485d4ec..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/pl_PL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/pt_BR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/pt_BR/__init__.py deleted file mode 100644 index 69ca1eb..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/pt_BR/__init__.py +++ /dev/null @@ -1,935 +0,0 @@ -from typing import Tuple - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_suffixes = ( - "do Sul", - "do Norte", - "de Minas", - "do Campo", - "Grande", - "da Serra", - "do Oeste", - "de Goiás", - "Paulista", - "da Mata", - "Alegre", - "da Praia", - "das Flores", - "das Pedras", - "dos Dourados", - "do Amparo", - "do Galho", - "da Prata", - "Verde", - ) - street_prefixes = ( - "Aeroporto", - "Alameda", - "Área", - "Avenida", - "Campo", - "Chácara", - "Colônia", - "Condomínio", - "Conjunto", - "Distrito", - "Esplanada", - "Estação", - "Estrada", - "Favela", - "Fazenda", - "Feira", - "Jardim", - "Ladeira", - "Lago", - "Lagoa", - "Largo", - "Loteamento", - "Morro", - "Núcleo", - "Parque", - "Passarela", - "Pátio", - "Praça", - "Praia", - "Quadra", - "Recanto", - "Residencial", - "Rodovia", - "Rua", - "Setor", - "Sítio", - "Travessa", - "Trecho", - "Trevo", - "Vale", - "Vereda", - "Via", - "Viaduto", - "Viela", - "Vila", - ) - city_formats = ( - "{{last_name}}", - "{{last_name}}", - "{{last_name}}", - "{{last_name}}", - "{{last_name}} {{city_suffix}}", - "{{last_name}} {{city_suffix}}", - "{{last_name}} {{city_suffix}}", - "{{last_name}} de {{last_name}}", - ) - street_name_formats = ( - "{{street_prefix}} {{last_name}}", - "{{street_prefix}} {{first_name}} {{last_name}}", - "{{street_prefix}} de {{last_name}}", - ) - - street_address_formats = ( - "{{street_name}}", - "{{street_name}}, {{building_number}}", - "{{street_name}}, {{building_number}}", - "{{street_name}}, {{building_number}}", - "{{street_name}}, {{building_number}}", - "{{street_name}}, {{building_number}}", - "{{street_name}}, {{building_number}}", - ) - - address_formats = ("{{street_address}}\n{{bairro}}\n{{postcode}} {{city}} / {{estado_sigla}}",) - - building_number_formats = ("%", "%#", "%#", "%#", "%##") - - postcode_raw_formats = ("########",) - postcode_all_formats = postcode_raw_formats + ("#####-###",) - - bairros = ( - "Aarão Reis", - "Acaba Mundo", - "Acaiaca", - "Ademar Maldonado", - "Aeroporto", - "Aguas Claras", - "Alípio De Melo", - "Alpes", - "Alta Tensão 1ª Seção", - "Alta Tensão 2ª Seção", - "Alto Caiçaras", - "Alto Das Antenas", - "Alto Dos Pinheiros", - "Alto Vera Cruz", - "Álvaro Camargos", - "Ambrosina", - "Andiroba", - "Antonio Ribeiro De Abreu 1ª Seção", - "Aparecida 7ª Seção", - "Ápia", - "Apolonia", - "Araguaia", - "Atila De Paiva", - "Bacurau", - "Bairro Das Indústrias Ii", - "Baleia", - "Barão Homem De Melo 1ª Seção", - "Barão Homem De Melo 2ª Seção", - "Barão Homem De Melo 3ª Seção", - "Barreiro", - "Beija Flor", - "Beira Linha", - "Bela Vitoria", - "Belmonte", - "Bernadete", - "Betânia", - "Biquinhas", - "Boa Esperança", - "Boa União 1ª Seção", - "Boa União 2ª Seção", - "Boa Viagem", - "Boa Vista", - "Bom Jesus", - "Bonfim", - "Bonsucesso", - "Brasil Industrial", - "Braúnas", - "Buraco Quente", - "Cabana Do Pai Tomás", - "Cachoeirinha", - "Caetano Furquim", - "Caiçara - Adelaide", - "Calafate", - "Califórnia", - "Camargos", - "Campo Alegre", - "Camponesa 1ª Seção", - "Camponesa 2ª Seção", - "Canaa", - "Canadá", - "Candelaria", - "Capitão Eduardo", - "Cardoso", - "Casa Branca", - "Castanheira", - "Cdi Jatoba", - "Cenaculo", - "Céu Azul", - "Chácara Leonina", - "Cidade Jardim Taquaril", - "Cinquentenário", - "Colégio Batista", - "Comiteco", - "Concórdia", - "Cônego Pinheiro 1ª Seção", - "Cônego Pinheiro 2ª Seção", - "Confisco", - "Conjunto Bonsucesso", - "Conjunto Califórnia I", - "Conjunto Califórnia Ii", - "Conjunto Capitão Eduardo", - "Conjunto Celso Machado", - "Conjunto Floramar", - "Conjunto Jardim Filadélfia", - "Conjunto Jatoba", - "Conjunto Lagoa", - "Conjunto Minas Caixa", - "Conjunto Novo Dom Bosco", - "Conjunto Paulo Vi", - "Conjunto Providencia", - "Conjunto Santa Maria", - "Conjunto São Francisco De Assis", - "Conjunto Serra Verde", - "Conjunto Taquaril", - "Copacabana", - "Coqueiros", - "Corumbiara", - "Custodinha", - "Das Industrias I", - "Delta", - "Diamante", - "Distrito Industrial Do Jatoba", - "Dom Bosco", - "Dom Cabral", - "Dom Joaquim", - "Dom Silverio", - "Dona Clara", - "Embaúbas", - "Engenho Nogueira", - "Ermelinda", - "Ernesto Nascimento", - "Esperança", - "Estrela", - "Estrela Do Oriente", - "Etelvina Carneiro", - "Europa", - "Eymard", - "Fazendinha", - "Flamengo", - "Flavio De Oliveira", - "Flavio Marques Lisboa", - "Floramar", - "Frei Leopoldo", - "Gameleira", - "Garças", - "Glória", - "Goiania", - "Graça", - "Granja De Freitas", - "Granja Werneck", - "Grota", - "Grotinha", - "Guarani", - "Guaratã", - "Havaí", - "Heliopolis", - "Horto Florestal", - "Inconfidência", - "Indaiá", - "Independência", - "Ipe", - "Itapoa", - "Itatiaia", - "Jaqueline", - "Jaraguá", - "Jardim Alvorada", - "Jardim Atlântico", - "Jardim Do Vale", - "Jardim Dos Comerciarios", - "Jardim Felicidade", - "Jardim Guanabara", - "Jardim Leblon", - "Jardim Montanhês", - "Jardim São José", - "Jardim Vitoria", - "Jardinópolis", - "Jatobá", - "João Alfredo", - "João Paulo Ii", - "Jonas Veiga", - "Juliana", - "Lagoa", - "Lagoinha", - "Lagoinha Leblon", - "Lajedo", - "Laranjeiras", - "Leonina", - "Leticia", - "Liberdade", - "Lindéia", - "Lorena", - "Madre Gertrudes", - "Madri", - "Mala E Cuia", - "Manacas", - "Mangueiras", - "Mantiqueira", - "Marajó", - "Maravilha", - "Marçola", - "Maria Goretti", - "Maria Helena", - "Maria Tereza", - "Maria Virgínia", - "Mariano De Abreu", - "Marieta 1ª Seção", - "Marieta 2ª Seção", - "Marieta 3ª Seção", - "Marilandia", - "Mariquinhas", - "Marmiteiros", - "Milionario", - "Minas Brasil", - "Minas Caixa", - "Minaslandia", - "Mineirão", - "Miramar", - "Mirante", - "Mirtes", - "Monsenhor Messias", - "Monte Azul", - "Monte São José", - "Morro Dos Macacos", - "Nazare", - "Nossa Senhora Aparecida", - "Nossa Senhora Da Aparecida", - "Nossa Senhora Da Conceição", - "Nossa Senhora De Fátima", - "Nossa Senhora Do Rosário", - "Nova America", - "Nova Cachoeirinha", - "Nova Cintra", - "Nova Esperança", - "Nova Floresta", - "Nova Gameleira", - "Nova Pampulha", - "Novo Aarão Reis", - "Novo Das Industrias", - "Novo Glória", - "Novo Santa Cecilia", - "Novo Tupi", - "Oeste", - "Olaria", - "Olhos D'água", - "Ouro Minas", - "Pantanal", - "Paquetá", - "Paraíso", - "Parque São José", - "Parque São Pedro", - "Paulo Vi", - "Pedreira Padro Lopes", - "Penha", - "Petropolis", - "Pilar", - "Pindorama", - "Pindura Saia", - "Piraja", - "Piratininga", - "Pirineus", - "Pompéia", - "Pongelupe", - "Pousada Santo Antonio", - "Primeiro De Maio", - "Providencia", - "Ribeiro De Abreu", - "Rio Branco", - "Salgado Filho", - "Santa Amelia", - "Santa Branca", - "Santa Cecilia", - "Santa Cruz", - "Santa Helena", - "Santa Inês", - "Santa Isabel", - "Santa Margarida", - "Santa Maria", - "Santa Rita", - "Santa Rita De Cássia", - "Santa Sofia", - "Santa Terezinha", - "Santana Do Cafezal", - "Santo André", - "São Benedito", - "São Bernardo", - "São Cristóvão", - "São Damião", - "São Francisco", - "São Francisco Das Chagas", - "São Gabriel", - "São Geraldo", - "São Gonçalo", - "São João", - "São João Batista", - "São Jorge 1ª Seção", - "São Jorge 2ª Seção", - "São Jorge 3ª Seção", - "São José", - "São Marcos", - "São Paulo", - "São Salvador", - "São Sebastião", - "São Tomaz", - "São Vicente", - "Satelite", - "Saudade", - "Senhor Dos Passos", - "Serra Do Curral", - "Serra Verde", - "Serrano", - "Solar Do Barreiro", - "Solimoes", - "Sport Club", - "Suzana", - "Taquaril", - "Teixeira Dias", - "Tiradentes", - "Tirol", - "Tres Marias", - "Trevo", - "Túnel De Ibirité", - "Tupi A", - "Tupi B", - "União", - "Unidas", - "Universitário", - "Universo", - "Urca", - "Vale Do Jatoba", - "Varzea Da Palma", - "Venda Nova", - "Ventosa", - "Vera Cruz", - "Vila Aeroporto", - "Vila Aeroporto Jaraguá", - "Vila Antena", - "Vila Antena Montanhês", - "Vila Atila De Paiva", - "Vila Bandeirantes", - "Vila Barragem Santa Lúcia", - "Vila Batik", - "Vila Betânia", - "Vila Boa Vista", - "Vila Calafate", - "Vila Califórnia", - "Vila Canto Do Sabiá", - "Vila Cemig", - "Vila Cloris", - "Vila Copacabana", - "Vila Copasa", - "Vila Coqueiral", - "Vila Da Amizade", - "Vila Da Ária", - "Vila Da Luz", - "Vila Da Paz", - "Vila Das Oliveiras", - "Vila Do Pombal", - "Vila Dos Anjos", - "Vila Ecológica", - "Vila Engenho Nogueira", - "Vila Esplanada", - "Vila Formosa", - "Vila Fumec", - "Vila Havaí", - "Vila Independencia 1ª Seção", - "Vila Independencia 2ª Seção", - "Vila Independencia 3ª Seção", - "Vila Inestan", - "Vila Ipiranga", - "Vila Jardim Alvorada", - "Vila Jardim Leblon", - "Vila Jardim São José", - "Vila Madre Gertrudes 1ª Seção", - "Vila Madre Gertrudes 2ª Seção", - "Vila Madre Gertrudes 3ª Seção", - "Vila Madre Gertrudes 4ª Seção", - "Vila Maloca", - "Vila Mangueiras", - "Vila Mantiqueira", - "Vila Maria", - "Vila Minaslandia", - "Vila Nossa Senhora Do Rosário", - "Vila Nova", - "Vila Nova Cachoeirinha 1ª Seção", - "Vila Nova Cachoeirinha 2ª Seção", - "Vila Nova Cachoeirinha 3ª Seção", - "Vila Nova Dos Milionarios", - "Vila Nova Gameleira 1ª Seção", - "Vila Nova Gameleira 2ª Seção", - "Vila Nova Gameleira 3ª Seção", - "Vila Nova Paraíso", - "Vila Novo São Lucas", - "Vila Oeste", - "Vila Olhos D'água", - "Vila Ouro Minas", - "Vila Paquetá", - "Vila Paraíso", - "Vila Petropolis", - "Vila Pilar", - "Vila Pinho", - "Vila Piratininga", - "Vila Piratininga Venda Nova", - "Vila Primeiro De Maio", - "Vila Puc", - "Vila Real 1ª Seção", - "Vila Real 2ª Seção", - "Vila Rica", - "Vila Santa Monica 1ª Seção", - "Vila Santa Monica 2ª Seção", - "Vila Santa Rosa", - "Vila Santo Antônio", - "Vila Santo Antônio Barroquinha", - "Vila São Dimas", - "Vila São Francisco", - "Vila São Gabriel", - "Vila São Gabriel Jacui", - "Vila São Geraldo", - "Vila São João Batista", - "Vila São Paulo", - "Vila São Rafael", - "Vila Satélite", - "Vila Sesc", - "Vila Sumaré", - "Vila Suzana Primeira Seção", - "Vila Suzana Segunda Seção", - "Vila Tirol", - "Vila Trinta E Um De Março", - "Vila União", - "Vila Vista Alegre", - "Virgínia", - "Vista Alegre", - "Vista Do Sol", - "Vitoria", - "Vitoria Da Conquista", - "Xangri-Lá", - "Xodo-Marize", - "Zilah Sposito", - "Outro", - "Novo São Lucas", - "Esplanada", - "Estoril", - "Novo Ouro Preto", - "Ouro Preto", - "Padre Eustáquio", - "Palmares", - "Palmeiras", - "Vila De Sá", - "Floresta", - "Anchieta", - "Aparecida", - "Grajaú", - "Planalto", - "Bandeirantes", - "Gutierrez", - "Jardim América", - "Renascença", - "Barro Preto", - "Barroca", - "Sagrada Família", - "Ipiranga", - "Belvedere", - "Santa Efigênia", - "Santa Lúcia", - "Santa Monica", - "Vila Jardim Montanhes", - "Santa Rosa", - "Santa Tereza", - "Buritis", - "Vila Paris", - "Santo Agostinho", - "Santo Antônio", - "Caiçaras", - "São Bento", - "Prado", - "Lourdes", - "Fernão Dias", - "Carlos Prates", - "Carmo", - "Luxemburgo", - "São Lucas", - "São Luiz", - "Mangabeiras", - "São Pedro", - "Horto", - "Cidade Jardim", - "Castelo", - "Cidade Nova", - "Savassi", - "Serra", - "Silveira", - "Sion", - "Centro", - "Alto Barroca", - "Nova Vista", - "Coração De Jesus", - "Coração Eucarístico", - "Funcionários", - "Cruzeiro", - "João Pinheiro", - "Nova Granada", - "Nova Suíça", - "Itaipu", - ) - countries = ( - "Afeganistão", - "África do Sul", - "Akrotiri", - "Albânia", - "Alemanha", - "Andorra", - "Angola", - "Anguila", - "Antártica", - "Antígua e Barbuda", - "Antilhas Holandesas", - "Arábia Saudita", - "Argélia", - "Argentina", - "Armênia", - "Aruba", - "Ashmore and Cartier Islands", - "Austrália", - "Áustria", - "Azerbaijão", - "Bahamas", - "Bangladesh", - "Barbados", - "Barein", - "Bélgica", - "Belize", - "Benim", - "Bermudas", - "Bielorrússia", - "Birmânia", - "Bolívia", - "Bósnia e Herzegovina", - "Botsuana", - "Brasil", - "Brunei", - "Bulgária", - "Burquina Faso", - "Burundi", - "Butão", - "Cabo Verde", - "Camarões", - "Camboja", - "Canadá", - "Catar", - "Cazaquistão", - "Chade", - "Chile", - "China", - "Chipre", - "Clipperton Island", - "Colômbia", - "Comores", - "Congo-Brazzaville", - "Congo-Kinshasa", - "Coral Sea Islands", - "Coreia do Norte", - "Coreia do Sul", - "Costa do Marfim", - "Costa Rica", - "Croácia", - "Cuba", - "Dhekelia", - "Dinamarca", - "Domínica", - "Egito", - "Costa do Marfim", - "Costa Rica", - "Croácia", - "Cuba", - "Dhekelia", - "Dinamarca", - "Domínica", - "Egito", - "Emirados Árabes Unidos", - "Equador", - "Eritreia", - "Eslováquia", - "Eslovênia", - "Espanha", - "Estados Unidos", - "Estônia", - "Etiópia", - "Faroé", - "Fiji", - "Filipinas", - "Finlândia", - "França", - "Gabão", - "Gâmbia", - "Gana", - "Geórgia", - "Geórgia do Sul e Sandwich do Sul", - "Gibraltar", - "Granada", - "Grécia", - "Groenlândia", - "Guam", - "Guatemala", - "Guernsey", - "Guiana", - "Guiné", - "Guiné Equatorial", - "Guiné-Bissau", - "Haiti", - "Honduras", - "Hong Kong", - "Hungria", - "Iêmen", - "Ilha Bouvet", - "Ilha do Natal", - "Ilha Norfolk", - "Ilhas Caiman", - "Ilhas Cook", - "Ilhas dos Cocos", - "Ilhas Falkland", - "Ilhas Heard e McDonald", - "Ilhas Marshall", - "Ilhas Salomão", - "Ilhas Turcas e Caicos", - "Ilhas Virgens Americanas", - "Ilhas Virgens Britânicas", - "Índia", - "Indonésia", - "Iran", - "Iraque", - "Irlanda", - "Islândia", - "Israel", - "Itália", - "Jamaica", - "Jan Mayen", - "Japão", - "Jersey", - "Jibuti", - "Jordânia", - "Kuwait", - "Laos", - "Lesoto", - "Letônia", - "Líbano", - "Libéria", - "Líbia", - "Liechtenstein", - "Lituânia", - "Luxemburgo", - "Macau", - "Macedônia do Norte", - "Madagascar", - "Malásia", - "Malávi", - "Maldivas", - "Mali", - "Malta", - "Ilha de Man", - "Marianas do Norte", - "Marrocos", - "Maurícia", - "Mauritânia", - "Mayotte", - "México", - "Micronésia", - "Moçambique", - "Moldávia", - "Mônaco", - "Mongólia", - "Monserrate", - "Montenegro", - "Namíbia", - "Nauru", - "Navassa Island", - "Nepal", - "Nicarágua", - "Níger", - "Nigéria", - "Niue", - "Noruega", - "Nova Caledónia", - "Nova Zelândia", - "Omã", - "Países Baixos", - "Palau", - "Panamá", - "Papua-Nova Guiné", - "Paquistão", - "Paracel Islands", - "Paraguai", - "Peru", - "Pitcairn", - "Polinésia Francesa", - "Polônia", - "Porto Rico", - "Portugal", - "Quênia", - "Quirguizistão", - "Quiribáti", - "Reino Unido", - "República Centro-Africana", - "República Checa", - "República Dominicana", - "Roménia", - "Ruanda", - "Rússia", - "Salvador", - "Samoa", - "Samoa Americana", - "Santa Helena", - "Santa Lúcia", - "São Cristóvão e Neves", - "São Marinho", - "São Pedro e Miquelon", - "São Tomé e Príncipe", - "São Vicente e Granadinas", - "Sara Ocidental", - "Seicheles", - "Senegal", - "Serra Leoa", - "Sérvia", - "Singapura", - "Síria", - "Somália", - "Sri Lanka", - "Suazilândia", - "Sudão", - "Suécia", - "Suíça", - "Suriname", - "Svalbard e Jan Mayen", - "Tailândia", - "Taiwan", - "Tajiquistão", - "Tanzânia", - "Território Britânico do Oceano Índico", - "Territórios Austrais Franceses", - "Timor Leste", - "Togo", - "Tokelau", - "Tonga", - "Trindade e Tobago", - "Tunísia", - "Turquemenistão", - "Turquia", - "Tuvalu", - "Ucrânia", - "Uganda", - "União Europeia", - "Uruguai", - "Usbequistão", - "Vanuatu", - "Vaticano", - "Venezuela", - "Vietnam", - "Ilha Wake", - "Wallis e Futuna", - "Zâmbia", - "Zimbábue", - ) - - estados = ( - ("AC", "Acre"), - ("AL", "Alagoas"), - ("AP", "Amapá"), - ("AM", "Amazonas"), - ("BA", "Bahia"), - ("CE", "Ceará"), - ("DF", "Distrito Federal"), - ("ES", "Espírito Santo"), - ("GO", "Goiás"), - ("MA", "Maranhão"), - ("MT", "Mato Grosso"), - ("MS", "Mato Grosso do Sul"), - ("MG", "Minas Gerais"), - ("PA", "Pará"), - ("PB", "Paraíba"), - ("PR", "Paraná"), - ("PE", "Pernambuco"), - ("PI", "Piauí"), - ("RJ", "Rio de Janeiro"), - ("RN", "Rio Grande do Norte"), - ("RS", "Rio Grande do Sul"), - ("RO", "Rondônia"), - ("RR", "Roraima"), - ("SC", "Santa Catarina"), - ("SP", "São Paulo"), - ("SE", "Sergipe"), - ("TO", "Tocantins"), - ) - - def street_prefix(self) -> str: - """ - :example: 'rua' - """ - return self.random_element(self.street_prefixes) - - def estado(self) -> Tuple[str, str]: - """ - Randomly returns a Brazilian State ('sigla' , 'nome'). - :example: ('MG' . 'Minas Gerais') - """ - return self.random_element(self.estados) - - def estado_nome(self) -> str: - """ - Randomly returns a Brazilian State Name - :example: 'Minas Gerais' - """ - return self.estado()[1] - - def estado_sigla(self) -> str: - """ - Randomly returns the abbreviation of a Brazilian State - :example: 'MG' - """ - return self.estado()[0] - - def bairro(self) -> str: - """ - Randomly returns a bairro (neighborhood) name. - The names were taken from the city of Belo Horizonte - Minas Gerais - :example: 'Serra' - """ - return self.random_element(self.bairros) - - def postcode(self, formatted: bool = True) -> str: - """ - Randomly returns a postcode. - :param formatted: True to allow formatted postcodes, else False (default True) - :example formatted: '41224-212' '83992-291' '12324322' - :example raw: '43920231' '34239530' - """ - template = self.postcode_all_formats if formatted else self.postcode_raw_formats - return self.bothify(self.random_element(template)) - - # aliases - def neighborhood(self) -> str: - return self.bairro() - - def administrative_unit(self) -> str: - return self.estado_nome() - - state = administrative_unit - - def state_abbr(self) -> str: - return self.estado_sigla() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/pt_BR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/pt_BR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 6f69692..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/pt_BR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/pt_PT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/pt_PT/__init__.py deleted file mode 100644 index 23047fe..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/pt_PT/__init__.py +++ /dev/null @@ -1,1592 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - street_prefixes = ( - "Av", - "Avenida", - "R.", - "Rua", - "Travessa", - "Largo", - "Alameda", - "Praça", - ) - - city_formats = ("{{city_name}}",) - street_name_formats = ( - "{{street_prefix}} {{last_name}}", - "{{street_prefix}} {{first_name}} {{last_name}}", - "{{street_prefix}} de {{last_name}}", - "{{street_prefix}} {{place_name}}", - ) - - street_address_formats = ("{{street_name}}, {{building_number}}",) - - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - building_number_formats = ("S/N", "%", "%#", "%#", "%#", "%##") - - postcode_formats = ("%###-###",) - - cities = ( - "Abrantes", - "Agualva-Cacém", - "Albufeira", - "Alcobaça", - "Alcácer do Sal", - "Almada", - "Almeirim", - "Alverca do Ribatejo", - "Amadora", - "Amarante", - "Amora", - "Anadia", - "Angra do Heroísmo", - "Aveiro", - "Barcelos", - "Barreiro", - "Beja", - "Braga", - "Bragança", - "Caldas da Rainha", - "Caniço", - "Cantanhede", - "Cartaxo", - "Castelo Branco", - "Chaves", - "Coimbra", - "Costa da Caparica", - "Covilhã", - "Câmara de Lobos", - "Elvas", - "Entroncamento", - "Ermesinde", - "Esmoriz", - "Espinho", - "Esposende", - "Estarreja", - "Estremoz", - "Fafe", - "Faro", - "Felgueiras", - "Figueira da Foz", - "Fiães", - "Freamunde", - "Funchal", - "Fundão", - "Fátima", - "Gafanha da Nazaré", - "Gandra", - "Gondomar", - "Gouveia", - "Guarda", - "Guimarães", - "Horta", - "Lagoa", - "Lagos", - "Lamego", - "Leiria", - "Lisboa", - "Lixa", - "Loulé", - "Loures", - "Lourosa", - "Macedo de Cavaleiros", - "Maia", - "Mangualde", - "Marco de Canaveses", - "Marinha Grande", - "Matosinhos", - "Mealhada", - "Miranda do Douro", - "Mirandela", - "Montemor-o-Novo", - "Montijo", - "Moura", - "Mêda", - "Odivelas", - "Olhão", - "Oliveira de Azeméis", - "Oliveira do Bairro", - "Oliveira do Hospital", - "Ourém", - "Ovar", - "Paredes", - "Paços de Ferreira", - "Penafiel", - "Peniche", - "Peso da Régua", - "Pinhel", - "Pombal", - "Ponta Delgada", - "Ponte de Sor", - "Portalegre", - "Portimão", - "Porto", - "Porto Santo", - "Praia da Vitória", - "Póvoa de Santa Iria", - "Póvoa de Varzim", - "Quarteira", - "Queluz", - "Rebordosa", - "Reguengos de Monsaraz", - "Ribeira Grande", - "Rio Maior", - "Rio Tinto", - "Sabugal", - "Sacavém", - "Santa Comba Dão", - "Santa Cruz", - "Santa Maria da Feira", - "Santana", - "Santarém", - "Santiago do Cacém", - "Santo Tirso", - "Seia", - "Seixal", - "Serpa", - "Setúbal", - "Silves", - "Sines", - "Sintra", - "São João da Madeira", - "São Mamede de Infesta", - "São Salvador de Lordelo", - "Tarouca", - "Tavira", - "Tomar", - "Tondela", - "Torres Novas", - "Torres Vedras", - "Trancoso", - "Trofa", - "Valbom", - "Vale de Cambra", - "Valongo", - "Valpaços", - "Vendas Novas", - "Viana do Castelo", - "Vila Franca de Xira", - "Vila Nova de Famalicão", - "Vila Nova de Foz Côa", - "Vila Nova de Gaia", - "Vila Nova de Santo André", - "Vila Real", - "Vila Real de Santo António", - "Vila do Conde", - "Viseu", - "Vizela", - "Évora", - "Ílhavo", - ) - - countries = ( - "Afeganistão", - "África do Sul", - "Akrotiri", - "Albânia", - "Alemanha", - "Andorra", - "Angola", - "Anguila", - "Antárctida", - "Antígua e Barbuda", - "Antilhas Neerlandesas", - "Arábia Saudita", - "Arctic Ocean", - "Argélia", - "Argentina", - "Arménia", - "Aruba", - "Ashmore and Cartier Islands", - "Atlantic Ocean", - "Austrália", - "Áustria", - "Azerbaijão", - "Baamas", - "Bangladeche", - "Barbados", - "Barém", - "Bélgica", - "Belize", - "Benim", - "Bermudas", - "Bielorrússia", - "Birmânia", - "Bolívia", - "Bósnia e Herzegovina", - "Botsuana", - "Brasil", - "Brunei", - "Bulgária", - "Burquina Faso", - "Burúndi", - "Butão", - "Cabo Verde", - "Camarões", - "Camboja", - "Canadá", - "Catar", - "Cazaquistão", - "Chade", - "Chile", - "China", - "Chipre", - "Clipperton Island", - "Colômbia", - "Comores", - "Congo-Brazzaville", - "Congo-Kinshasa", - "Coral Sea Islands", - "Coreia do Norte", - "Coreia do Sul", - "Costa do Marfim", - "Costa Rica", - "Croácia", - "Cuba", - "Dhekelia", - "Dinamarca", - "Domínica", - "Egipto", - "Emiratos Árabes Unidos", - "Equador", - "Eritreia", - "Eslováquia", - "Eslovénia", - "Espanha", - "Estados Unidos", - "Estónia", - "Etiópia", - "Faroé", - "Fiji", - "Filipinas", - "Finlândia", - "França", - "Gabão", - "Gâmbia", - "Gana", - "Gaza Strip", - "Geórgia", - "Geórgia do Sul e Sandwich do Sul", - "Gibraltar", - "Granada", - "Grécia", - "Gronelândia", - "Guame", - "Guatemala", - "Guernsey", - "Guiana", - "Guiné", - "Guiné Equatorial", - "Guiné-Bissau", - "Haiti", - "Honduras", - "Hong Kong", - "Hungria", - "Iémen", - "Ilha Bouvet", - "Ilha do Natal", - "Ilha Norfolk", - "Ilhas Caimão", - "Ilhas Cook", - "Ilhas dos Cocos", - "Ilhas Falkland", - "Ilhas Heard e McDonald", - "Ilhas Marshall", - "Ilhas Salomão", - "Ilhas Turcas e Caicos", - "Ilhas Virgens Americanas", - "Ilhas Virgens Britânicas", - "Índia", - "Indian Ocean", - "Indonésia", - "Irão", - "Iraque", - "Irlanda", - "Islândia", - "Israel", - "Itália", - "Jamaica", - "Jan Mayen", - "Japão", - "Jersey", - "Jibuti", - "Jordânia", - "Kuwait", - "Laos", - "Lesoto", - "Letónia", - "Líbano", - "Libéria", - "Líbia", - "Listenstaine", - "Lituânia", - "Luxemburgo", - "Macau", - "Macedónia do Norte", - "Madagáscar", - "Malásia", - "Malávi", - "Maldivas", - "Mali", - "Malta", - "Man, Isle of", - "Marianas do Norte", - "Marrocos", - "Maurícia", - "Mauritânia", - "Mayotte", - "México", - "Micronésia", - "Moçambique", - "Moldávia", - "Mónaco", - "Mongólia", - "Monserrate", - "Montenegro", - "Mundo", - "Namíbia", - "Nauru", - "Navassa Island", - "Nepal", - "Nicarágua", - "Níger", - "Nigéria", - "Niue", - "Noruega", - "Nova Caledónia", - "Nova Zelândia", - "Omã", - "Pacific Ocean", - "Países Baixos", - "Palau", - "Panamá", - "Papua-Nova Guiné", - "Paquistão", - "Paracel Islands", - "Paraguai", - "Peru", - "Pitcairn", - "Polinésia Francesa", - "Polónia", - "Porto Rico", - "Portugal", - "Quénia", - "Quirguizistão", - "Quiribáti", - "Reino Unido", - "República Centro-Africana", - "República Checa", - "República Dominicana", - "Roménia", - "Ruanda", - "Rússia", - "Salvador", - "Samoa", - "Samoa Americana", - "Santa Helena", - "Santa Lúcia", - "São Cristóvão e Neves", - "São Marinho", - "São Pedro e Miquelon", - "São Tomé e Príncipe", - "São Vicente e Granadinas", - "Sara Ocidental", - "Seicheles", - "Senegal", - "Serra Leoa", - "Sérvia", - "Singapura", - "Síria", - "Somália", - "Southern Ocean", - "Spratly Islands", - "Sri Lanca", - "Suazilândia", - "Sudão", - "Suécia", - "Suíça", - "Suriname", - "Svalbard e Jan Mayen", - "Tailândia", - "Taiwan", - "Tajiquistão", - "Tanzânia", - "Território Britânico do Oceano Índico", - "Territórios Austrais Franceses", - "Timor Leste", - "Togo", - "Tokelau", - "Tonga", - "Trindade e Tobago", - "Tunísia", - "Turquemenistão", - "Turquia", - "Tuvalu", - "Ucrânia", - "Uganda", - "União Europeia", - "Uruguai", - "Usbequistão", - "Vanuatu", - "Vaticano", - "Venezuela", - "Vietname", - "Wake Island", - "Wallis e Futuna", - "West Bank", - "Zâmbia", - "Zimbabué", - ) - - # From https://pt.wikipedia.org/wiki/Distritos_de_Portugal - distritos = ( - "Aveiro", - "Beja", - "Braga", - "Bragança", - "Castelo Branco", - "Coimbra", - "Évora", - "Faro", - "Guarda", - "Leiria", - "Lisboa", - "Portalegre", - "Porto", - "Santarém", - "Setúbal", - "Viana do Castelo", - "Vila Real", - "Viseu", - ) - - # From https://pt.wikipedia.org/wiki/Lista_de_concelhos_por_NUTS,_distritos_e_ilhas - concelhos = ( - "Águeda", - "Aguiar da Beira", - "Alandroal", - "Albergaria-a-Velha", - "Albufeira", - "Alcácer do Sal", - "Alcanena", - "Alcobaça", - "Alcochete", - "Alcoutim", - "Alenquer", - "Alfândega da Fé", - "Alijó", - "Aljezur", - "Aljustrel", - "Almada", - "Almeida", - "Almeirim", - "Almodôvar", - "Alpiarça", - "Alter do Chão", - "Alvaiázere", - "Alvito", - "Amadora", - "Amarante", - "Amares", - "Anadia", - "Angra do Heroísmo", - "Ansião", - "Arcos de Valdevez", - "Arganil", - "Armamar", - "Arouca", - "Arraiolos", - "Arronches", - "Arruda dos Vinhos", - "Aveiro", - "Avis", - "Azambuja", - "Baião", - "Barcelos", - "Barrancos", - "Barreiro", - "Batalha", - "Beja", - "Belmonte", - "Benavente", - "Bombarral", - "Borba", - "Boticas", - "Braga", - "Bragança", - "Cabeceiras de Basto", - "Cadaval", - "Caldas da Rainha", - "Calheta (R.A.A.)", - "Calheta (R.A.M.)", - "Câmara de Lobos", - "Caminha", - "Campo Maior", - "Cantanhede", - "Carrazeda de Ansiães", - "Carregal do Sal", - "Cartaxo", - "Cascais", - "Castanheira de Pêra", - "Castelo Branco", - "Castelo de Paiva", - "Castelo de Vide", - "Castro Daire", - "Castro Marim", - "Castro Verde", - "Celorico da Beira", - "Celorico de Basto", - "Chamusca", - "Chaves", - "Cinfães", - "Coimbra", - "Condeixa-a-Nova", - "Constância", - "Coruche", - "Corvo", - "Covilhã", - "Crato", - "Cuba", - "Elvas", - "Entroncamento", - "Espinho", - "Esposende", - "Estarreja", - "Estremoz", - "Évora", - "Fafe", - "Faro", - "Felgueiras", - "Ferreira do Alentejo", - "Ferreira do Zêzere", - "Figueira da Foz", - "Figueira de Castelo Rodrigo", - "Figueiró dos Vinhos", - "Fornos de Algodres", - "Freixo de Espada à Cinta", - "Fronteira", - "Funchal", - "Fundão", - "Gavião", - "Góis", - "Golegã", - "Gondomar", - "Gouveia", - "Grândola", - "Guarda", - "Guimarães", - "Horta", - "Idanha-a-Nova", - "Ílhavo", - "Lagoa", - "Lagoa (R.A.A)", - "Lagos", - "Lajes das Flores", - "Lajes do Pico", - "Lamego", - "Leiria", - "Lisboa", - "Loulé", - "Loures", - "Lourinhã", - "Lousã", - "Lousada", - "Mação", - "Macedo de Cavaleiros", - "Machico", - "Madalena", - "Mafra", - "Maia", - "Mangualde", - "Manteigas", - "Marco de Canaveses", - "Marinha Grande", - "Marvão", - "Matosinhos", - "Mealhada", - "Meda", - "Melgaço", - "Mértola", - "Mesão Frio", - "Mira", - "Miranda do Corvo", - "Miranda do Douro", - "Mirandela", - "Mogadouro", - "Moimenta da Beira", - "Moita", - "Monção", - "Monchique", - "Mondim de Basto", - "Monforte", - "Montalegre", - "Montemor-o-Novo", - "Montemor-o-Velho", - "Montijo", - "Mora", - "Mortágua", - "Moura", - "Mourão", - "Murça", - "Murtosa", - "Nazaré", - "Nelas", - "Nisa", - "Nordeste", - "Óbidos", - "Odemira", - "Odivelas", - "Oeiras", - "Oleiros", - "Olhão", - "Oliveira de Azeméis", - "Oliveira de Frades", - "Oliveira do Bairro", - "Oliveira do Hospital", - "Ourém", - "Ourique", - "Ovar", - "Paços de Ferreira", - "Palmela", - "Pampilhosa da Serra", - "Paredes", - "Paredes de Coura", - "Pedrógão Grande", - "Penacova", - "Penafiel", - "Penalva do Castelo", - "Penamacor", - "Penedono", - "Penela", - "Peniche", - "Peso da Régua", - "Pinhel", - "Pombal", - "Ponta Delgada", - "Ponta do Sol", - "Ponte da Barca", - "Ponte de Lima", - "Ponte de Sor", - "Portalegre", - "Portel", - "Portimão", - "Porto", - "Porto de Mós", - "Porto Moniz", - "Porto Santo", - "Povoação", - "Póvoa de Lanhoso", - "Póvoa de Varzim", - "Proença-a-Nova", - "Redondo", - "Reguengos de Monsaraz", - "Resende", - "Ribeira Brava", - "Ribeira de Pena", - "Ribeira Grande", - "Rio Maior", - "Sabrosa", - "Sabugal", - "Salvaterra de Magos", - "Santa Comba Dão", - "Santa Cruz", - "Santa Cruz da Graciosa", - "Santa Cruz das Flores", - "Santa Maria da Feira", - "Santa Marta de Penaguião", - "Santana", - "Santarém", - "Santiago do Cacém", - "Santo Tirso", - "São Brás de Alportel", - "São João da Madeira", - "São João da Pesqueira", - "São Pedro do Sul", - "São Roque do Pico", - "São Vicente", - "Sardoal", - "Sátão", - "Seia", - "Seixal", - "Sernancelhe", - "Serpa", - "Sertã", - "Sesimbra", - "Setúbal", - "Sever do Vouga", - "Silves", - "Sines", - "Sintra", - "Sobral de Monte Agraço", - "Soure", - "Sousel", - "Tábua", - "Tabuaço", - "Tarouca", - "Tavira", - "Terras de Bouro", - "Tomar", - "Tondela", - "Torre de Moncorvo", - "Torres Novas", - "Torres Vedras", - "Trancoso", - "Trofa", - "Vagos", - "Vale de Cambra", - "Valença", - "Valongo", - "Valpaços", - "Velas", - "Vendas Novas", - "Viana do Alentejo", - "Viana do Castelo", - "Vidigueira", - "Vieira do Minho", - "Vila da Praia da Vitória", - "Vila de Rei", - "Vila do Bispo", - "Vila do Conde", - "Vila do Porto", - "Vila Flor", - "Vila Franca de Xira", - "Vila Franca do Campo", - "Vila Nova da Barquinha", - "Vila Nova de Cerveira", - "Vila Nova de Famalicão", - "Vila Nova de Foz Côa", - "Vila Nova de Gaia", - "Vila Nova de Paiva", - "Vila Nova de Poiares", - "Vila Pouca de Aguiar", - "Vila Real", - "Vila Real de Santo António", - "Vila Velha de Ródão", - "Vila Verde", - "Vila Viçosa", - "Vimioso", - "Vinhais", - "Viseu", - "Vizela", - "Vouzela", - ) - - # From https://pt.wikipedia.org/wiki/Lista_de_freguesias_de_Portugal - freguesias = [ - "Abrantes", - "Águeda", - "Aguiar da Beira", - "Alandroal", - "Albergaria-a-Velha", - "Albufeira", - "Alcácer do Sal", - "Alcanena", - "Alcobaça", - "Alcochete", - "Alcoutim", - "Alenquer", - "Alfândega da Fé", - "Alijó", - "Aljezur", - "Aljustrel", - "Almada", - "Almeida", - "Almeirim", - "Almodôvar", - "Alpiarça", - "Alter do Chão", - "Alvaiázere", - "Alvito", - "Amadora", - "Amarante", - "Amares", - "Anadia", - "Angra do Heroísmo", - "Ansião", - "Arcos de Valdevez", - "Arganil", - "Armamar", - "Arouca", - "Arraiolos", - "Arronches", - "Arruda dos Vinhos", - "Aveiro", - "Avis", - "Azambuja", - "Baião", - "Barcelos", - "Barrancos", - "Barreiro", - "Batalha", - "Beja", - "Belmonte", - "Benavente", - "Bombarral", - "Borba", - "Boticas", - "Braga", - "Bragança", - "Cabeceiras de Basto", - "Cadaval", - "Caldas da Rainha", - "Calheta (Açores)", - "Calheta (Madeira)", - "Câmara de Lobos", - "Caminha", - "Campo Maior", - "Cantanhede", - "Carrazeda de Ansiães", - "Carregal do Sal", - "Cartaxo", - "Cascais", - "Castanheira de Pêra", - "Castelo Branco", - "Castelo de Paiva", - "Castelo de Vide", - "Castro Daire", - "Castro Marim", - "Castro Verde", - "Celorico da Beira", - "Celorico de Basto", - "Chamusca", - "Chaves", - "Cinfães", - "Coimbra", - "Condeixa-a-Nova", - "Constância", - "Coruche", - "Corvo", - "Covilhã", - "Crato", - "Cuba", - "Elvas", - "Entroncamento", - "Espinho", - "Esposende", - "Estarreja", - "Estremoz", - "Évora", - "Fafe", - "Faro", - "Felgueiras", - "Ferreira do Alentejo", - "Ferreira do Zêzere", - "Figueira da Foz", - "Figueira de Castelo Rodrigo", - "Figueiró dos Vinhos", - "Fornos de Algodres", - "Freixo de Espada à Cinta", - "Fronteira", - "Funchal", - "Fundão", - "Gavião", - "Góis", - "Golegã", - "Gondomar", - "Gouveia", - "Grândola", - "Guarda", - "Guimarães", - "Horta", - "Idanha-a-Nova", - "Ílhavo", - "Lagoa", - "Lagoa (Açores)", - "Lagos", - "Lajes das Flores", - "Lajes do Pico", - "Lamego", - "Leiria", - "Lisboa", - "Loulé", - "Loures", - "Lourinhã", - "Lousã", - "Lousada", - "Mação", - "Macedo de Cavaleiros", - "Machico", - "Madalena", - "Mafra", - "Maia", - "Mangualde", - "Manteigas", - "Marco de Canaveses", - "Marinha Grande", - "Marvão", - "Matosinhos", - "Mealhada", - "Mêda", - "Melgaço", - "Mértola", - "Mesão Frio", - "Mira", - "Miranda do Corvo", - "Miranda do Douro", - "Mirandela", - "Mogadouro", - "Moimenta da Beira", - "Moita", - "Monção", - "Monchique", - "Mondim de Basto", - "Monforte", - "Montalegre", - "Montemor-o-Novo", - "Montemor-o-Velho", - "Montijo", - "Mora", - "Mortágua", - "Moura", - "Mourão", - "Murça", - "Murtosa", - "Nazaré", - "Nelas", - "Nisa", - "Nordeste", - "Óbidos", - "Odemira", - "Odivelas", - "Oeiras", - "Oleiros", - "Olhão", - "Oliveira de Azeméis", - "Oliveira de Frades", - "Oliveira do Bairro", - "Oliveira do Hospital", - "Ourém", - "Ourique", - "Ovar", - "Paços de Ferreira", - "Palmela", - "Pampilhosa da Serra", - "Paredes", - "Paredes de Coura", - "Pedrógão Grande", - "Penacova", - "Penafiel", - "Penalva do Castelo", - "Penamacor", - "Penedono", - "Penela", - "Peniche", - "Peso da Régua", - "Pinhel", - "Pombal", - "Ponta Delgada", - "Ponta do Sol", - "Ponte da Barca", - "Ponte de Lima", - "Ponte de Sor", - "Portalegre", - "Portel", - "Portimão", - "Porto", - "Porto de Mós", - "Porto Moniz", - "Porto Santo", - "Póvoa de Lanhoso", - "Póvoa de Varzim", - "Povoação", - "Praia da Vitória", - "Proença-a-Nova", - "Redondo", - "Reguengos de Monsaraz", - "Resende", - "Ribeira Brava", - "Ribeira de Pena", - "Ribeira Grande", - "Rio Maior", - "Sabrosa", - "Sabugal", - "Salvaterra de Magos", - "Santa Comba Dão", - "Santa Cruz", - "Santa Cruz da Graciosa", - "Santa Cruz das Flores", - "Santa Maria da Feira", - "Santa Marta de Penaguião", - "Santana", - "Santarém", - "Santiago do Cacém", - "Santo Tirso", - "São Brás de Alportel", - "São João da Madeira", - "São João da Pesqueira", - "São Pedro do Sul", - "São Roque do Pico", - "São Vicente (Madeira)", - "Sardoal", - "Sátão", - "Seia", - "Seixal", - "Sernancelhe", - "Serpa", - "Sertã", - "Sesimbra", - "Setúbal", - "Sever do Vouga", - "Silves", - "Sines", - "Sintra", - "Sobral de Monte Agraço", - "Soure", - "Sousel", - "Tábua", - "Tabuaço", - "Tarouca", - "Tavira", - "Terras de Bouro", - "Tomar", - "Tondela", - "Torre de Moncorvo", - "Torres Novas", - "Torres Vedras", - "Trancoso", - "Trofa", - "Vagos", - "Vale de Cambra", - "Valença", - "Valongo", - "Valpaços", - "Velas", - "Vendas Novas", - "Viana do Alentejo", - "Viana do Castelo", - "Vidigueira", - "Vieira do Minho", - "Vila de Rei", - "Vila do Bispo", - "Vila do Conde", - "Vila do Porto", - "Vila Flor", - "Vila Franca de Xira", - "Vila Franca do Campo", - "Vila Nova da Barquinha", - "Vila Nova de Cerveira", - "Vila Nova de Famalicão", - "Vila Nova de Foz Côa", - "Vila Nova de Gaia", - "Vila Nova de Paiva", - "Vila Nova de Poiares", - "Vila Pouca de Aguiar", - "Vila Real", - "Vila Real de Santo António", - "Vila Velha de Ródão", - "Vila Verde", - "Vila Viçosa", - "Vimioso", - "Vinhais", - "Viseu", - "Vizela", - "Vouzela", - ] - - # from https://pt.wikipedia.org/wiki/Lista_de_arruamentos_de_Lisboa - # and https://pt.wikipedia.org/wiki/Lista_de_arruamentos_do_Porto - places = ( - "da Igreja", - "António Sérgio", - "Cardeal Cerejeira", - "Coronel Marques Júnior", - "da Encarnação", - "da Música", - "da Quinta de Santo António", - "da Universidade", - "das Comunidades Portuguesas", - "das Linhas de Torres", - "de Santo António dos Capuchos", - "do Beato", - "Dom Afonso Henriques", - "dos Oceanos", - "dos Pinheiros", - "Edgar Cardoso", - "Mahatma Gandhi", - "Manuel Ricardo Espírito Santo", - "Padre Álvaro Proença", - "Roentgen", - "da Boavista", - "da Cova da Moura", - "das Conchas", - "de Caselas", - "de São Francisco", - "do Carvalhão", - "do Longo", - "do Penalva", - "do Varejão", - "dos Moinhos", - "da Conceição", - "das Portas do Mar", - "de Jesus", - "do Evaristo", - "do Rosário", - "Escuro", - "Grande de Cima", - "Areeiro", - "Campolide", - "Madrid", - "Paris (Nascente)", - "Paris (Poente)", - "Roma", - "Sabugosa", - "Novo (à Travessa das Águas Boas)", - "da Ponte da Lama", - "da Praia da Galé", - "do Duro", - "dos Ferreiros", - "das Rolas", - "da Lingueta", - "das Naus", - "do Olival", - "do Sodré", - "dos Argonautas", - "Português", - "da Figueira", - "de Santo Estêvão", - "de São Lourenço", - "de São Miguel", - "do Tijolo", - "dos Olivais", - "da Feiteira", - "da Rainha", - "da Raposa", - "das Andorinhas", - "das Cegonhas", - "das Gaivotas ao Parque das Nações", - "de Baixo da Penha", - "de Palma de Cima", - "do Alto do Varejão", - "do Arboreto", - "dos Estorninhos", - "dos Flamingos", - "dos Melros", - "dos Pardais", - "dos Pinheiros ao Parque das Nações", - "dos Rouxinóis", - "Velho do Outeiro", - "das Amoreiras", - "das Cebolas", - "de Santa Clara", - "dos Mártires da Pátria", - "Grande", - "Pequeno", - "de Campolide", - "da Graça", - "de Colares", - "Norte do Bairro da Encarnação", - "Sul do Bairro da Encarnação", - "da Torrinha", - "do Castelo", - "de Santa Helena", - "da Sé", - "das Bolas", - "das Chagas", - "José António Marques", - "do Monte", - "Gerais", - "D. Carlos I ao Parque das Nações", - "Adão Barata", - "Alfredo Keil", - "Alice Cruz", - "Amália Rodrigues", - "Amélia Carvalheira", - "Amnistia Internacional", - "Augusto Monjardino", - "Bento Martins", - "das Nações", - "Ducla Soares", - "Eduardo Prado Coelho", - "Elisa Baptista de Sousa Pedroso", - "Fernanda de Castro", - "Fernando Pessa", - "Ferreira de Mira", - "Garcia de Orta ao Parque das Nações", - "Irmã Lúcia", - "Jorge Luis Borges", - "Luís Ferreira", - "Maria da Luz Ponces de Carvalho", - "Maria de Lourdes Sá Teixeira", - "Maria José Moura", - "Mário Ruivo", - "Mário Soares", - "9 de Abril", - "Prof. António de Sousa Franco", - "Prof. Francisco Caldeira Cabral", - "Pulido Garcia", - "Tristão da Silva", - "Ribeirinhos", - "Sophia de Mello Breyner Andresen", - "do Mirante", - "do Alto de São João", - "General Afonso Botelho", - "Eduardo VII de Inglaterra", - "Silva Porto", - "Artur Agostinho", - "da Ilha dos Amores", - "da Nau Catrineta", - "da Vila Expo", - "das Âncoras", - "das Fragatas", - "das Garças", - "das Gáveas ao Parque das Nações", - "das Musas", - "das Tágides", - "de Neptuno", - "de Ulisses", - "do Adamastor", - "do Amazonas", - "do Báltico", - "do Campo da Bola", - "do Cantábrico", - "do Levante", - "do Parque", - "do Ródano", - "do Sapal", - "do Tejo", - "do Trancão", - "dos Aventureiros", - "dos Cruzados", - "dos Fenícios", - "dos Heróis do Mar", - "dos Jacarandás", - "dos Mastros", - "dos Navegadores", - "João Jayme Faria Affonso", - "Júlio Verne", - "Afonso de Albuquerque", - "da Cruz", - "da Galega", - "das Canas", - "das Galeotas ao Parque das Nações", - "das Pirogas", - "de Dom Fradique", - "do Carrasco", - "do Peneireiro", - "do Pimenta", - "do Pinzaleiro", - "do Seabra", - "do Sequeiro", - "do Sextante", - "do Tronco", - "dos Escaleres", - "do Borratém", - "do Mar", - "Adolfo Ayala", - "Cuf", - "da Quinta de São João Baptista", - "da Quinta do Guarda-Mor", - "da Rua Duque de Palmela", - "das Torres do Restelo", - "do Chinquilho", - "Fernando Valle", - "Maestro Ivo Cruz", - "Prof. António José Saraiva", - "Professor Gonçalves Ferreira", - "Professor José Conde", - "Teófilo Ferreira", - "das Necessidades", - "do Mercado", - "dos Anjos", - "do Conde de Óbidos", - "de Palma", - "Almirante Pinheiro de Azevedo", - "António Dias Lourenço", - "Coronel Vítor Alves", - "da Expo 98", - "das Olaias", - "das Oliveiras", - "de Pina Manique", - "dos Vice-reis", - "Matilde Bensaúde", - "Nelson Mandela", - "Pupilos do Exército", - "República Argentina", - "República da Colômbia", - "Visconde de Alvalade", - "do Barcal", - "do Calhau", - "de São Vicente", - "das Ondas", - "dos Corvos", - "Feia", - "Arquitecto Carlos Ramos", - "das Antas", - "das Fontainhas", - "de 25 de Abril", - "de Aquilino Ribeiro", - "de Basílio Teles", - "de Cartes", - "de Cláudio Carneiro", - "de Eça de Queirós", - "de Manuel d'Arriaga", - "do Dr. António Macedo", - "do Dr. Fernando de Azeredo Antas", - "do Prof. Hernâni Monteiro", - "do Prof. Ruy Luís Gomes", - "dos Capitães de Abril", - "25 de Abril", - "da Associação Empresarial de Portugal", - "da França", - "de Camilo", - "de D. Afonso Henriques", - "de D. Carlos I", - "de D. João II", - "de Fernão de Magalhães", - "de Fontes Pereira de Melo", - "de Gustavo Eiffel", - "de Montevideu", - "de Nun'Álvares Pereira", - "de Paiva Couceiro", - "de Rodrigues de Freitas", - "de Sidónio Pais", - "de Vasco da Gama", - "de Vímara Peres", - "do Bessa", - "do Brasil (Porto)", - "do Conselho da Europa", - "do Dr. Antunes Guimarães", - "do Marechal Gomes da Costa", - "dos Aliados", - "dos Combatentes da Grande Guerra", - "Flor da Rosa", - "José Domingues dos Santos", - "da Agra do Amial", - "da Fonte da Moura", - "da Pasteleira", - "da Rainha D. Leonor", - "de Costa Cabral", - "de Francos", - "de Manuel Cardoso Agrelos", - "de Pio XII", - "de Ramalde", - "de São João de Deus", - "de São Roque da Lameira", - "de São Vicente de Paulo", - "de Santo Eugénio", - "do Aleixo", - "do Bom Sucesso", - "do Carvalhido", - "do Cerco do Porto", - "do Dr. Nuno Pinheiro Torres", - "do Falcão", - "do Lagarteiro", - "do Leal", - "do Outeiro", - "do Regado", - "do Viso", - "Herculano", - "Central", - "da Bela Vista", - "da Beneditina", - "da Senhora da Luz", - "de Bonjóia", - "de Carreiras", - "de Passos Manuel", - "de S. João da Foz", - "de S. Macário", - "de S. Marçal", - "do Arrabalde", - "do Campo", - "do Campo Alegre", - "do Machado", - "do Meiral", - "do Paço", - "do Pedregulho", - "do Preto", - "de Baixo", - "de Cima", - "da Alfândega", - "da Estiva", - "da Ribeira", - "das Pedras", - "do Bicalho", - "dos Guindais", - "da Arrábida", - "da Boa Viagem", - "da Póvoa", - "da Ranha", - "das Carquejeiras", - "das Laranjeiras", - "das Virtudes", - "de Chaves de Oliveira", - "de D. Pedro Pitões", - "de Godim", - "de João do Carmo", - "de Maceda", - "de Marques Marinho", - "de Monchique", - "de Nova Sintra", - "de São Pedro", - "de Serrúbia", - "de Sobre-o-Douro", - "de Vandoma", - "do Calvário", - "do Carregal", - "do Forno Velho", - "do Monte da Lapa", - "do Monte de S. João", - "do Ouro", - "do Rego Lameiro", - "dos Ingleses", - "da Fonte de Cima", - "das Congostas", - "da Asprela", - "de Vinte e Quatro de Agosto", - "do Rou", - "de Antero de Quental", - "de Estêvão Vasconcelos", - "de Viterbo de Campos", - "do Dr. Manuel Laranjeira", - "Carolina Michaelis de Vasconcelos", - "da Vitória", - "das Sereias", - "das Verdades", - "de S. Francisco de Borja", - "do Adro", - "do Barredo", - "do Caminho Novo", - "do Cidral de Baixo", - "do Cidral de Cima", - "do Codeçal", - "do Colégio", - "do Monte Cativo", - "do Monte dos Judeus", - "do Pinheiro", - "do Recanto", - "do Roleto", - "dos Armazéns", - "do Molhe", - "da Circunvalação", - "de Gondomar", - "Nacional 108", - "Nacional 209", - "de Moradias Populares do Eng.º Machado Vaz", - "de Moradais Populares do Carriçal", - "de Antero de Figueiredo", - "de Arnaldo Gama", - "de Belém", - "de Carrilho Videira", - "de Guedes de Oliveira", - "de João Chagas", - "de Marques de Oliveira", - "de Teófilo Braga", - "do Moreda", - "do Passeio Alegre", - "Machado de Asis", - "Severo Portela", - "da Foz", - "do Bolhão", - "dos Bacalhoeiros", - "da Luz", - "do Seminário", - "S. Bartolomeu", - "de S. Lázaro", - "das Escadas do Monte dos Judeus", - "das Japoneiras", - "de S. Salvador", - "do Bonjardim", - "de Luiz I", - "de Maria Pia", - "do Freixo", - "do Carvão", - "da Banda de Ramalde", - "da Cidade da Praia", - "das Mimosas", - "de Adelino Amaro da Costa", - "de Augusto Gomes", - "de Bernarda Ferreira Lacerda", - "de Eduardo Soares", - "de Francisco Borges", - "de Irene de Castro", - "de João Augusto Ribeiro", - "de José Régio", - "de José Serra", - "de Luís António Verney", - "de Públia Hortênsia", - "de Ribeiro Sanches", - "de S. Mamede", - "do Dr. Jaime Cortesão", - "do Maestro Afonso Valentim", - "do Maestro Resende Dias", - "do Mestre de Aviz", - "do Prof. Egas Moniz", - "Egito Gonçalves", - "Ernesto Veiga de Oliveira", - "João Glama", - "José Luís Nunes", - "Manuel Gonçalves Moreira", - "Artur Cupertino de Miranda", - "Associação Empresarial de Portugal", - "Manuel Pinto de Azevedo Júnior", - "Goelas de Pau", - "de Cintura Interna", - "do Almirante Gago Coutinho", - "do Castelo do Queijo", - "Futebol Clube do Porto", - "Panorâmica", - "Panorâmica Edgar Cardoso", - "de Gonçalo Cristóvão", - "do Cais das Pedras", - "da Aldeia", - "da Baleia", - "da Bouça", - "da Carvalhosa", - "da Companhia", - "da Ilha do Ferro", - "da Pedreira", - "da Senhora da Lapa", - "das Andrezas", - "de Grijó", - "de Lamas", - "de S. Brás", - "de Santana", - "do Anjo", - "do Anjo da Guarda", - "do Buraco", - "do José da Mestra", - "do Monte da Pena", - "do Picoto", - "do Sobreirinho", - ) - - def street_prefix(self) -> str: - """ - :example: 'Rua' - """ - return self.random_element(self.street_prefixes) - - def city_name(self) -> str: - """ - :example: 'Amora' - """ - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - """ - :example: 'Bragança' - """ - return self.random_element(self.distritos) - - distrito = administrative_unit - - def concelho(self) -> str: - """ - :example: 'Tondela' - """ - return self.random_element(self.concelhos) - - def freguesia(self) -> str: - """ - :example: 'Miranda do Douro' - """ - return self.random_element(self.freguesias) - - def place_name(self) -> str: - """ - :example: "do Pombal" - """ - return self.random_element(self.places) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/pt_PT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/pt_PT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index eada29b..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/pt_PT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ro_RO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/ro_RO/__init__.py deleted file mode 100644 index 99155de..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/ro_RO/__init__.py +++ /dev/null @@ -1,438 +0,0 @@ -from typing import Tuple - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - street_prefixes = ( - "Strada", - "Aleea", - "Intrarea", - "Bulevardul", - "Soseaua", - "Drumul", - ) - street_name_formats = ( - "{{street_prefix}} {{last_name}}", - "{{street_prefix}} {{first_name}} {{last_name}}", - "{{street_prefix}} {{last_name}}", - ) - street_address_formats = ( - "{{street_name}}", - "{{street_name}} {{building_number}}", - "{{street_name}} {{building_number}} {{secondary_address}}", - ) - address_formats = ("{{street_address}}\n{{city}}, {{postcode}}",) - building_number_formats = ("Nr. %#", "Nr. %##") - secondary_address_formats = ("Bl. %# Sc. %# Ap. %##",) - postcode_formats = ( - "1#####", - "2#####", - "3#####", - "4#####", - "5#####", - "6#####", - "7#####", - "8#####", - "9#####", - ) - city_formats = ("{{city_name}}",) - cities = ( - "Cluj-Napoca", - "Timisoara", - "Iasi", - "Constanta", - "Craiova", - "Brasov", - "Galati", - "Ploiesti", - "Oradea", - "Braila", - "Arad", - "Pitesti", - "Sibiu", - "Bacau", - "Targu Mures", - "Baia Mare", - "Buzau", - "Botosani", - "Satu Mare", - "Suceava", - "Ramnicu Valcea", - "Drobeta-Turnu Severin", - "Piatra-Neamt", - "Targoviste", - "Targu Jiu", - "Focsani", - "Tulcea", - "Resita", - "Slatina", - "Bistrita", - "Calarasi", - "Giurgiu", - "Deva", - "Hunedoara", - "Zalau", - "Barlad", - "Alba Iulia", - "Sfantu Gheorghe", - "Roman", - "Vaslui", - "Turda", - "Medias", - "Alexandria", - "Voluntari", - "Pipera (Voluntari)", - "Slobozia", - "Lugoj", - "Medgidia", - "Onesti", - "Miercurea-Ciuc", - "Petrosani", - "Tecuci", - "Mangalia", - "Odorheiu Secuiesc", - "Ramnicu Sarat", - "Sighetu Marmatiei", - "Campina", - "Navodari", - "Campulung", - "Caracal", - "Sacele", - "Fagaras", - "Dej", - "Rosiori de Vede", - "Mioveni", - "Curtea de Arges", - "Husi", - "Reghin", - "Sighisoara", - "Pantelimon", - "Pascani", - "Oltenita", - "Turnu Magurele", - "Caransebes", - "Falticeni", - "Radauti", - "Lupeni", - "Dorohoi", - "Vulcan", - "Campia Turzii", - "Zarnesti", - "Borsa", - "Popesti-Leordeni", - "Codlea", - "Carei", - "Moinesti", - "Petrila", - "Sebes", - "Tarnaveni", - "Floresti", - "Gherla", - "Fetesti-Gara", - "Buftea", - "Cugir", - "Moreni", - "Gheorgheni", - "Comanesti", - "Salonta", - "Cernavoda", - "Targu Secuiesc", - "Bailesti", - "Campulung Moldovenesc", - "Aiud", - "Dragasani", - "Valea Caselor (Dragasani)", - "Bals", - "Bocsa", - "Motru", - "Corabia", - "Bragadiru", - "Urziceni", - "Rasnov", - "Rasnov Romacril", - "Buhusi", - "Zimnicea", - "Marghita", - "Mizil", - "Cisnadie", - "Targu Neamt", - "Calafat", - "Vatra Dornei", - "Adjud", - "Gaesti", - "Tandarei", - "Gura Humorului", - "Chitila", - "Viseu de Sus", - "Otopeni", - "Ludus", - "Brad", - "Dragu-Brad", - "Valu lui Traian", - "Cumpana", - "Sannicolau Mare", - "Valenii de Munte", - "Jilava", - "Dabuleni", - "Filiasi", - "Blaj", - "Ovidiu", - "Simleu Silvaniei", - "Matca", - "Pecica", - "Rovinari", - "Videle", - "Baicoi", - "Pucioasa", - "Jimbolia", - "Baia Sprie", - "Targu Frumos", - "Vicovu de Sus", - "Orsova", - "Sinaia", - "Negresti-Oas", - "Beius", - "Santana", - "Pechea", - "Simeria", - "Boldesti-Scaeni", - "Poienile de sub Munte", - "Valea lui Mihai", - "Covasna", - "Targu Ocna", - "Toplita", - "Sovata", - "Otelu Rosu", - "Oravita", - "Moisei", - "Harsova", - "Murfatlar", - "Beclean", - "Poiana Mare", - "Huedin", - "Babadag", - "Marasesti", - "Topoloveni", - "Sangeorgiu de Mures", - "Jibou", - "Sabaoani", - "Hateg", - "Avrig", - "Darmanesti", - "Marginea", - "Moldova Veche", - "Ineu", - "Bolintin-Vale", - "Mihail Kogalniceanu", - "Macin", - "Tomesti", - "Nasaud", - "Uricani", - "Rosu", - "Calan", - "Borcea", - "Afumati", - "Domnesti", - "Draganesti-Olt", - "Cristuru Secuiesc", - "1 Decembrie", - "Lumina", - "Fetesti", - "Mogosoaia", - "Modelu", - "Dumbravita", - "Seini", - "Alesd", - "Sangeorz-Bai", - "Curtici", - "Darabani", - "Nadlac", - "Victoria", - "Amara", - "Branesti", - "Harlau", - "Lipova", - "Techirghiol", - "Agnita", - "Sacueni", - "Titu", - "Siret", - "Segarcea", - "Odobesti", - "Podu Iloaiei", - "Ocna Mures", - "Urlati", - "Strehaia", - "Tasnad", - "Cajvana", - "Tuzla", - "Sadova", - "Vlahita", - "Stei", - "Diosig", - "Cobadin", - "Gilau", - "Vladimirescu", - "Dancu", - "Bumbesti-Jiu", - "Busteni", - "Peretu", - "Cudalbi", - "Bosanci", - "Balotesti", - "Lunca Cetatuii", - "Dragalina", - "Fieni", - "Chisineu-Cris", - "Balan", - "Sandominic", - "Strejnicu", - "Baciu", - "Fundulea", - "Remetea", - "Fagetel (Remetea)", - "Ianca", - "Roseti", - "Breaza de Sus", - "Cornetu", - "Insuratei", - "Apahida", - "Berceni", - "Vicovu de Jos", - "Savinesti (Poiana Teiului)", - "Savinesti", - "Teius", - "Barbulesti", - "Plosca", - "Toflea", - "Magurele", - "Feldru", - "Anina", - "Negresti", - "Valea Mare (Negresti)", - "Peris", - "Fundeni", - "Giroc", - "Baile Borsa", - "Oituz", - "Rucar", - "Curcani", - "Babeni", - "Valea Mare (Babeni)", - "Rodna", - "Deta", - "Ruscova", - "Intorsura Buzaului", - "Pancota", - "Glina", - "Talmaciu", - "Copsa Mica", - "Motatei", - "Gugesti", - "Schela Cladovei", - "Sancraiu de Mures", - "Iernut", - "Targu Lapus", - "Maieru", - "Prejmer", - "Pogoanele", - "Dobroesti", - "Baraolt", - "Arbore", - "Homocea", - "Corund", - "Tufesti", - "Giarmata", - "Baia", - "Dumbraveni", - "Eforie Nord", - "Horodnic de Sus", - "Greci", - "Tudora", - "Straja", - "Rasinari", - "Sebis", - "Raducaneni", - "Siria", - "Paunesti", - "Saveni", - "Tunari", - ) - - states: Tuple[Tuple[str, str], ...] = ( - ("AB", "Alba"), - ("AG", "Argeș"), - ("AR", "Arad"), - ("B", "București"), - ("BC", "Bacău"), - ("BH", "Bihor"), - ("BN", "Bistrița-Năsăud"), - ("BR", "Brăila"), - ("BT", "Botoșani"), - ("BV", "Brașov"), - ("BZ", "Buzău"), - ("CJ", "Cluj"), - ("CL", "Călărași"), - ("CS", "Caraș Severin"), - ("CT", "Constanța"), - ("CV", "Covasna"), - ("DB", "Dâmbovița"), - ("DJ", "Dolj"), - ("GJ", "Gorj"), - ("GL", "Galați"), - ("GR", "Giurgiu"), - ("HD", "Hunedoara"), - ("HR", "Harghita"), - ("IF", "Ilfov"), - ("IL", "Ialomița"), - ("IS", "Iași"), - ("MH", "Mehedinți"), - ("MM", "Maramureș"), - ("MS", "Mureș"), - ("NT", "Neamț"), - ("OT", "Olt"), - ("PH", "Prahova"), - ("SB", "Sibiu"), - ("SJ", "Sălaj"), - ("SM", "Satu Mare"), - ("SV", "Suceava"), - ("TL", "Tulcea"), - ("TM", "Timiș"), - ("TR", "Teleorman"), - ("VL", "Vâlcea"), - ("VN", "Vrancea"), - ("VS", "Vaslui"), - ) - - def street_prefix(self) -> str: - """ - :example: 'Strada' - """ - return self.random_element(self.street_prefixes) - - def secondary_address(self) -> str: - """ - :example: 'Bl. 123 Sc. 2 Ap. 15' - """ - return self.numerify(self.random_element(self.secondary_address_formats)) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def city_with_postcode(self) -> str: - return self.postcode() + " " + self.random_element(self.cities) - - def administrative_unit(self) -> str: - """ - :example: u'Timiș' - """ - return self.random_element(self.states)[1] # type: ignore - - state = administrative_unit - - def state_abbr(self) -> str: - """ - :example: u'TM' - """ - return self.random_element(self.states)[0] # type: ignore diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ro_RO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/ro_RO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5dd3edd..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/ro_RO/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ru_RU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/ru_RU/__init__.py deleted file mode 100644 index 9b3ac39..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/ru_RU/__init__.py +++ /dev/null @@ -1,1597 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_suffixes = ("ск", "вль", "град", "поль", "ин", "ов", "бург") - street_suffixes = ("ул.", "алл.", "наб.", "пр.", "пер.", "бул.", "ш.") - region_suffixes = ("респ.", "обл.", "край", "АО") - city_formats = ("{{city_prefix}} {{city_name}}",) - street_address_formats = ( - "{{street_name}}, д. {{building_number}}", - "{{street_name}}, д. {{building_number}} к. {{building_number}}", - "{{street_name}}, д. {{building_number}} стр. {{building_number}}", - ) - address_formats = ("{{city}}, {{street_address}}, {{postcode}}",) - postcode_formats = ("######",) - building_number_formats = ("%##", "%#", "%", "%/%") - - city_prefixes = ("г.", "п.", "к.", "с.", "д.", "клх", "ст.") - - street_suffixes_masc = ("пр.", "пер.", "бул.") - street_suffixes_fem = ("ул.", "алл.", "наб.") - street_suffixes_neu = ("ш.",) - - street_titles = ( - "Советская", - "Молодежная", - "Центральная", - "Школьная", - "Новая", - "Садовая", - "Лесная", - "Набережная", - "Октябрьская", - "Зеленая", - "Комсомольская", - "Заречная", - "Первомайская", - "Полевая", - "Луговая", - "Пионерская", - "Юбилейная", - "Северная", - "Пролетарская", - "Степная", - "Южная", - "Колхозная", - "Рабочая", - "Солнечная", - "Железнодорожная", - "Восточная", - "Заводская", - "Нагорная", - "Береговая", - "Кооперативная", - "Красноармейская", - "Совхозная", - "Речная", - "Спортивная", - "Озерная", - "Строительная", - "Парковая", - "Подгорная", - "Почтовая", - "Партизанская", - "Вокзальная", - "Дорожная", - "Дачная", - "Западная", - "Московская", - "Красная", - "Трудовая", - "Шоссейная", - "Коммунистическая", - "Сосновая", - "Клубная", - "Березовая", - "Больничная", - "Интернациональная", - "Цветочная", - "Трактовая", - "Горная", - "Весенняя", - "Коммунальная", - "Майская", - "Привокзальная", - "Таежная", - "Транспортная", - "Овражная", - "Светлая", - "Вишневая", - "Ключевая", - "Песчаная", - "Ленинградская", - "Профсоюзная", - "Верхняя", - "Ленинская", - "Кирпичная", - "Мостовая", - "Станционная", - "Уральская", - "Линейная", - "Фабричная", - "Магистральная", - "Сибирская", - "Крестьянская", - "Российская", - "Тихая", - "Широкая", - "Нижняя", - "Народная", - "Промышленная", - "Кольцевая", - "Дальняя", - "Базарная", - "Целинная", - "Родниковая", - "Революционная", - "Социалистическая", - "Звездная", - "Студенческая", - "Мирная", - "Кубанская", - "Гаражная", - "Фестивальная", - "Гражданская", - "Песочная", - "Сиреневая", - "Сельская", - "Кузнечная", - "Пушкинская", - "Крайняя", - "Гвардейская", - "Веселая", - "Загородная", - "Олимпийская", - "Приозерная", - "Рябиновая", - "Заозерная", - "Боровая", - "Урожайная", - "Торговая", - "Донская", - "Пограничная", - "Огородная", - "Пригородная", - "Стадионная", - "Виноградная", - "Киевская", - "Индустриальная", - "Красногвардейская", - "Волжская", - "Свободная", - "Кедровая", - "Подлесная", - "Полярная", - "Раздольная", - "Карьерная", - "Мельничная", - "Украинская", - "Шахтерская", - "Запрудная", - "Элеваторная", - "Театральная", - "Геологическая", - "Болотная", - "Придорожная", - "Кленовая", - "Казачья", - "Малая", - "Морская", - "Волгоградская", - "Средняя", - "Безымянная", - "Краснофлотская", - "Братская", - "Тенистая", - "Учительская", - "Кавказская", - "Короткая", - "Деповская", - "Амурская", - "Сенная", - "Поселковая", - "Прудовая", - "Депутатская", - "Авиационная", - "Аэродромная", - "Большая", - "Приморская", - "Алтайская", - "Тополиная", - "Ростовская", - "Тракторная", - "Мелиоративная", - "Ольховая", - "Славянская", - "Радужная", - "Краснодарская", - "Стахановская", - "Ярославская", - "Коллективная", - "Ангарская", - "Локомотивная", - "Ягодная", - "Смоленская", - "Тепличная", - "Водопроводная", - "Республиканская", - "Осенняя", - "Байкальская", - "Саратовская", - "Казанская", - "Воронежская", - "Брянская", - "Производственная", - "Техническая", - "Енисейская", - "Севастопольская", - "Окружная", - "Орловская", - "Хуторская", - "Тупиковая", - "Каштановая", - "Омская", - "Привольная", - "Курортная", - "Ивановская", - "Выгонная", - "Крымская", - "Путейская", - "Проезжая", - "Краснознаменная", - "Одесская", - "Логовая", - "Высокая", - "Ясная", - "Портовая", - "Снежная", - "Санаторная", - "Союзная", - "Ульяновская", - "Сахалинская", - "Горняцкая", - "Прибрежная", - "Рыбацкая", - "Полтавская", - "Тамбовская", - "Красноярская", - "Новосельская", - "Проточная", - "Черноморская", - "Минская", - "Главная", - "Вольная", - "Хвойная", - "Космическая", - "Моховая", - "Курская", - "Курганная", - "Угловая", - "Камская", - "Инженерная", - "Лесозаводская", - "Астраханская", - "Белорусская", - "Заовражная", - "Азовская", - "Ручейная", - "Волочаевская", - "Ставропольская", - "Слободская", - "Тульская", - "Харьковская", - "Петровская", - "Владимирская", - "Высоковольтная", - "Лазурная", - "Покровская", - "Новгородская", - "Ленская", - "Сплавная", - "Ударная", - "Калужская", - "Прудная", - "Краснопартизанская", - "Ореховая", - "Таманская", - "Иркутская", - "Отрадная", - "Большевистская", - "Троицкая", - "Лесхозная", - "Васильковая", - "Механическая", - "Путевая", - "Кузнецкая", - "Физкультурная", - "Черемуховая", - "Флотская", - "Угольная", - "Просторная", - "Поперечная", - "Городская", - "Абрикосовая", - "Бульварная", - "Прохладная", - "Томская", - "Энергетическая", - "Литейная", - "Медицинская", - "Заливная", - "Бригадная", - "Детская", - "Запорожская", - "Дальневосточная", - "Балтийская", - "Февральская", - "Лунная", - "Высотная", - "Рязанская", - "Малиновая", - ) - - street_titles_noflex = ( - "Ленина", - "Мира", - "Гагарина", - "Кирова", - "Пушкина", - "Калинина", - "Чапаева", - "Строителей", - "Победы", - "Горького", - "Чкалова", - "Мичурина", - "Дружбы", - "Лермонтова", - "Свободы", - "Маяковского", - "Фрунзе", - "Дзержинского", - "Свердлова", - "Некрасова", - "Гоголя", - "Чехова", - "Труда", - "Комарова", - "Матросова", - "Островского", - "Куйбышева", - "Крупской", - "Карла Маркса", - "8 Марта", - "Суворова", - "Ломоносова", - "Космонавтов", - "Энергетиков", - "Шевченко", - "Механизаторов", - "40 лет Победы", - "Энгельса", - "Чернышевского", - "Урицкого", - "Ворошилова", - "Тургенева", - "Толстого", - "Буденного", - "Орджоникидзе", - "Герцена", - "Щорса", - "Луначарского", - "Энтузиастов", - "Титова", - "Лазо", - "50 лет Октября", - "Пугачева", - "Володарского", - "Кутузова", - "Чайковского", - "Мелиораторов", - "Новоселов", - "Белинского", - "Тельмана", - "Тимирязева", - "Котовского", - "60 лет Октября", - "Есенина", - "К.Маркса", - "40 лет Октября", - "Крылова", - "Декабристов", - "70 лет Октября", - "Фурманова", - "Гайдара", - "Терешковой", - "Ватутина", - "Коммунаров", - "Гастелло", - "Жданова", - "Радищева", - "Нефтяников", - "Осипенко", - "Нахимова", - "Жукова", - "Павлова", - "Степана Разина", - "Попова", - "Жуковского", - "Королева", - "Грибоедова", - "Менделеева", - "Достоевского", - "Репина", - "Циолковского", - "Воровского", - "Максима Горького", - "Революции", - "Кошевого", - "Пархоменко", - "Серова", - "Добролюбова", - "50 лет Победы", - "Красина", - "Коминтерна", - "30 лет Победы", - "Разина", - "Черняховского", - "Ветеранов", - "Пирогова", - "Льва Толстого", - "Геологов", - "Димитрова", - "М.Горького", - "Розы Люксембург", - "Маркса", - "Ушакова", - "Юности", - "Короленко", - "Шолохова", - "50 лет ВЛКСМ", - "Черемушки", - "Кольцова", - "Плеханова", - "Макаренко", - "Глинки", - "Специалистов", - "Халтурина", - "Морозова", - "Коммуны", - "Красных Партизан", - "Зои Космодемьянской", - "Карбышева", - "Баумана", - "Марта 8", - "Правды", - "Маркса Карла", - "Фадеева", - "60 лет СССР", - "Челюскинцев", - "Олега Кошевого", - "Новостройка", - "Шмидта", - "Кузнецова", - "Войкова", - "Панфилова", - "Карла Либкнехта", - "Парижской Коммуны", - "Автомобилистов", - "Космодемьянской", - "Седова", - "Блюхера", - "Демьяна Бедного", - "Спартака", - "Николаева", - "Бабушкина", - "Октября", - "Щетинкина", - "Гончарова", - "Щербакова", - "Азина", - "Сурикова", - "9 Января", - "Подстанция", - "Волкова", - "Никитина", - "Рылеева", - "Химиков", - "Курчатова", - "Микрорайон", - "Докучаева", - "Просвещения", - "Смирнова", - "Макарова", - "Иванова", - "Л.Толстого", - "Гафури", - "Высоцкого", - "Бажова", - "Кочубея", - "Леонова", - "Надежды", - "Металлистов", - "Вавилова", - "Ульянова", - "Павлика Морозова", - "Семашко", - "Шаумяна", - "Чайкиной", - "Ермака", - "Дорожников", - "Советской Армии", - "Монтажников", - "Шишкина", - "Металлургов", - "Беляева", - "Дружба", - "Серафимовича", - "Ильича", - "Мусы Джалиля", - "Невского", - "Клары Цеткин", - "Леваневского", - "Водников", - "Вахитова", - "Станиславского", - "Советов", - "Восьмого Марта", - "Пожарского", - "Папанина", - "Победа", - "8-е Марта", - "Журавлева", - "Культуры", - "Мая 1", - "Минина", - "Машиностроителей", - "ДОС", - "Тюленина", - "Громова", - "О.Кошевого", - "Р.Люксембург", - "Толбухина", - "Дарвина", - "З.Космодемьянской", - "1 Мая", - "9 мая", - "Тукая", - ) - - street_titles_irregular_masc = { - "Полевая": "Полевой", - "Луговая": "Луговой", - "Степная": "Степной", - "Заводская": "Заводской", - "Береговая": "Береговой", - "Речная": "Речной", - "Трудовая": "Трудовой", - "Ключевая": "Ключевой", - "Мостовая": "Мостовой", - "Кольцевая": "Кольцевой", - "Боровая": "Боровой", - "Донская": "Донской", - "Морская": "Морской", - "Сенная": "Сенной", - "Прудовая": "Прудовой", - "Большая": "Большой", - "Окружная": "Окружной", - "Хуторская": "Хуторской", - "Логовая": "Логовой", - "Моховая": "Моховой", - "Угловая": "Угловой", - "Слободская": "Слободской", - "Путевая": "Путевой", - "Городская": "Городской", - "Рабочая": "Рабочий", - "Верхняя": "Верхний", - "Тихая": "Тихий", - "Широкая": "Широкий", - "Нижняя": "Нижний", - "Дальняя": "Дальний", - "Крайняя": "Крайний", - "Казачья": "Казачий", - "Весенняя": "Весенний", - "Средняя": "Средний", - "Короткая": "Короткий", - "Осенняя": "Осенний", - "Проезжая": "Проезжий", - "Высокая": "Высокий", - } - - street_titles_irregular_neu = { - "Весенняя": "Весеннее", - "Верхняя": "Верхнее", - "Нижняя": "Нижнее", - "Средняя": "Среднее", - "Дальняя": "Дальнее", - "Крайняя": "Крайнее", - "Казачья": "Казачье", - "Рабочая": "Рабочее", - "Осеняя": "Осеннее", - "Проезжая": "Проезжее", - } - - city_names = ( - "Абакан", - "Абинск", - "Агата", - "Агинское (Забайк.)", - "Адлер", - "Адыгейск", - "Азов (Рост.)", - "Алагир", - "Алапаевск", - "Алдан", - "Александров", - "Александров Гай", - "Александровск", - "Александровск-Сахалинский", - "Алексин", - "Амдерма", - "Амурск", - "Анадырь", - "Анапа", - "Ангарск", - "Андреаполь", - "Анива", - "Апатиты", - "Апрелевка", - "Апшеронск", - "Аргаяш", - "Ардон", - "Арзамас", - "Армавир", - "Арсеньев", - "Артем", - "Архангельск", - "Архыз", - "Аршан (Бурят.)", - "Асбест", - "Асино", - "Астрахань", - "Ахтубинск", - "Ачинск", - "Ачхой Мартан", - "Аша", - "Бавлы", - "Байкальск", - "Баксан", - "Балашиха", - "Балашов", - "Балтийск", - "Баргузин", - "Барнаул", - "Батайск", - "Белгород", - "Белогорск (Амур.)", - "Белокуриха", - "Беломорск", - "Белорецк", - "Белореченск", - "Белоярский", - "Белый Яр (Томск.)", - "Березники", - "Беслан", - "Бийск", - "Билибино", - "Биробиджан", - "Бирск", - "Благовещенск (Амур.)", - "Богучар", - "Бодайбо", - "Бологое", - "Бомнак", - "Борзя", - "Боровск", - "Братск", - "Бреды", - "Бронницы", - "Брянск", - "Бугульма", - "Бугуруслан", - "Буденновск", - "Бузулук", - "Буйнакск", - "Быково (метеост.)", - "Валаам", - "Валдай", - "Ведено", - "Великие Луки", - "Великий Устюг", - "Вендинга", - "Верещагино (Перм.)", - "Верхнее Пенжино", - "Верхний Баскунчак", - "Верхний Тагил", - "Верхний Уфалей", - "Верхотурье", - "Верхоянск", - "Видное", - "Вилюйск", - "Витим", - "Владивосток", - "Владикавказ", - "Владимир", - "Внуково (метеост.)", - "Волгоград", - "Волгодонск", - "Вологда", - "Волоколамск", - "Волхов", - "Воркута", - "Воронеж", - "Воскресенск", - "Воткинск", - "Всеволожск", - "Вуктыл", - "Выборг", - "Вытегра", - "Вязьма", - "Гаврилов-Ям", - "Гагарин", - "Галич", - "Гатчина", - "Гдов", - "Геленджик", - "Глазов", - "Голицыно", - "Горно-Алтайск", - "Городовиковск", - "Горячий Ключ", - "Горячинск", - "Гремячинск (Бурят.)", - "Гремячинск (Перм.)", - "Грозный", - "Губаха", - "Губкин", - "Губкинский", - "Гудермес", - "Гусь-Хрустальный", - "Дагомыс", - "Далматово", - "Данков", - "Двинской", - "Дербент", - "Джейрах", - "Джубга", - "Дзержинск", - "Дивногорск", - "Диксон", - "Дмитров", - "Дно", - "Добрянка", - "Долинск", - "Домбай", - "Домодедово", - "Дубна", - "Дудинка", - "Егорьевск", - "Ейск", - "Екатеринбург", - "Елабуга", - "Елатьма", - "Елец", - "Ельня", - "Енисейск", - "Ербогачен", - "Ершов", - "Ессентуки", - "Железногорск(Курск.)", - "Жиганск", - "Жигулевск", - "Жуковский", - "Забайкальск", - "Заводоуковск", - "Завьялиха", - "Зарайск", - "Звенигород", - "Зеленогорск (Ленин.)", - "Зеленоград", - "Златоуст", - "Змеиногорск", - "Иваново", - "Ивдель", - "Игарка", - "Игнашино", - "Ижевск", - "Избербаш", - "Инта", - "Ирбит", - "Иркутск", - "Истра", - "Ишим", - "Йошкар-Ола", - "Кабанск", - "Кажим", - "Казань", - "Калач", - "Калач-на-Дону", - "Калачинск", - "Калевала", - "Калининград", - "Калуга", - "Калязин", - "Каменномостский", - "Каменск-Уральский", - "Каменск-Шахтинский", - "Камень-на-Оби", - "Камышин", - "Камышлов", - "Кандалакша", - "Каневская", - "Канск", - "Карабудахкент", - "Карабулак", - "Карачаевск", - "Каргасок", - "Каргополь", - "Карпинск", - "Карталы", - "Касимов", - "Каспийск", - "Катав-Ивановск", - "Катайск", - "Качканар", - "Кашира", - "Кашхатау", - "Кедровый", - "Кежма", - "Кемерово", - "Кетченеры", - "Кижи", - "Кизел", - "Кизилюрт", - "Кизляр", - "Кимры", - "Кингисепп", - "Кинешма", - "Киренск", - "Киржач", - "Кириши", - "Киров (Вятка)", - "Кирово-Чепецк", - "Кировск (Мурм.)", - "Кировск (Ленин.)", - "Кисловодск", - "Клин", - "Ковров", - "Когалым", - "Коломна", - "Колпашево", - "Комсомольск-на-Амуре", - "Кондопога", - "Королев", - "Корсаков", - "Костомукша", - "Кострома", - "Котельнич", - "Котлас", - "Кош-Агач", - "Красная Поляна", - "Красновишерск", - "Красногорск (Моск.)", - "Краснодар", - "Краснокамск", - "Красноселькуп", - "Краснотурьинск", - "Красноуральск", - "Красноуфимск", - "Красноярск", - "Кропоткин (Краснод.)", - "Крымск", - "Кудымкар", - "Кузнецк", - "Кулу", - "Кулунда", - "Кунгур", - "Курган", - "Курганинск", - "Курильск", - "Курск", - "Куртамыш", - "Курумкан", - "Курчатов", - "Кущевская", - "Кызыл", - "Кырен", - "Кыштым", - "Кяхта", - "Лабинск", - "Лабытнанги", - "Лагань", - "Лазаревское", - "Лесной (Сверд.)", - "Липецк", - "Листвянка (Иркут.)", - "Лодейное Поле", - "Лотошино", - "Луга", - "Луховицы", - "Лысьва", - "Льгов", - "Любань", - "Люберцы", - "Лянтор", - "Магадан", - "Магас", - "Магнитогорск", - "Майкоп", - "Макаров", - "Макушино", - "Малая Вишера", - "Малгобек", - "Малоярославец", - "Махачкала", - "Медногорск", - "Междуреченский", - "Мезень", - "Мелеуз", - "Меренга", - "Миасс", - "Миллерово", - "Минеральные Воды", - "Минусинск", - "Мирный", - "Мичуринск", - "Можайск", - "Можга", - "Моздок", - "Мокшан", - "Мончегорск", - "Морозовск", - "Моршанск", - "Москва", - "Москва, МГУ", - "Мостовской", - "Муравленко", - "Мураши", - "Мурманск", - "Муром", - "Мценск", - "Мыс Шмидта", - "Мытищи", - "Набережные Челны", - "Надым", - "Назрань", - "Нальчик", - "Наро-Фоминск", - "Нарткала", - "Нарым", - "Нарьян-Мар", - "Находка", - "Невельск", - "Невинномысск", - "Невьянск", - "Неплюевка", - "Нерчинск", - "Нефедова", - "Нефтегорск (Самар.)", - "Нефтекамск", - "Нефтеюганск", - "Нижневартовск", - "Нижнекамск", - "Нижнеудинск", - "Нижний Новгород", - "Нижний Тагил", - "Новая Игирма", - "Новгород Великий", - "Новокузнецк", - "Новомичуринск", - "Новомосковск", - "Новороссийка", - "Новороссийск", - "Новосибирск", - "Новочеркасск", - "Новый Оскол", - "Новый Уренгой", - "Ногинск (Моск.)", - "Ноглики", - "Норильск", - "Ноябрьск", - "Нурлат", - "Нягань", - "Нязепетровск", - "Обнинск", - "Обоянь", - "Объячево", - "Одинцово", - "Озеры", - "Оймякон", - "Октябрьский (Башк.)", - "Октябрьское (Хант.)", - "Октябрьское (Челяб.)", - "Оленегорск (Якут.)", - "Оленек", - "Омск", - "Онега", - "Орел", - "Оренбург", - "Орехово-Зуево", - "Орск", - "Оса", - "Осташков", - "Оха", - "Охотск", - "Павловская", - "Павловский Посад", - "Палана", - "Партизанск", - "Певек", - "Пенза", - "Переславль-Залесский", - "Пермь", - "Петрозаводск", - "Петропавловск-Камчатский", - "Петухово", - "Петушки", - "Печенга", - "Печора", - "Пинега", - "Плес", - "Плесецк", - "Подольск", - "Поронайск", - "Поярково", - "Приморско-Ахтарск", - "Приозерск", - "Прохладный", - "Псебай", - "Псков", - "Пушкин", - "Пушкино (Моск.)", - "Пушкинские Горы", - "Пышма", - "Пятигорск", - "Радужный", - "Раменское", - "Ребриха", - "Ревда (Сверд.)", - "Ржев", - "Рославль", - "Россошь", - "Ростов", - "Ростов-на-Дону", - "Рубцовск", - "Руза", - "Рыбинск", - "Рыльск", - "Ряжск", - "Рязань", - "Салават", - "Салехард", - "Сальск", - "Самара", - "Санкт-Петербург", - "Саранск", - "Сарапул", - "Саратов", - "Саров (Морд.)", - "Сасово", - "Саянск", - "Светлогорск (Калин.)", - "Северо-Курильск", - "Северобайкальск", - "Северодвинск", - "Североморск", - "Североуральск", - "Сеймчан", - "Семлячики", - "Серафимович", - "Сергиев Посад", - "Серебряные Пруды", - "Середниково", - "Серов", - "Серпухов", - "Сибай", - "Сковородино", - "Славгород", - "Славянск-на-Кубани", - "Сладково", - "Слюдянка", - "Смирных", - "Смоленск", - "Снежинск", - "Снежногорск (Мурм.)", - "Соболево", - "Советский", - "Соликамск", - "Солнечногорск", - "Соловки", - "Соль-Илецк", - "Сорочинск", - "Сортавала", - "Сосновый Бор", - "Сосногорск", - "Сосьва (Хант.)", - "Сочи", - "Ставрополь", - "Старая Русса", - "Старый Оскол", - "Стерлитамак", - "Стрежевой", - "Ступино", - "Суздаль", - "Сузун", - "Сунтар", - "Сургут (Хант.)", - "Сусуман", - "Сухиничи", - "Сызрань", - "Сыктывкар", - "Тавда", - "Таганрог", - "Тайшет", - "Талдом", - "Тамбей", - "Тамбов", - "Тарко-Сале", - "Таштагол", - "Тверь", - "Теберда", - "Темрюк", - "Териберка", - "Терней", - "Терскол", - "Тикси", - "Тимашевск", - "Тихвин", - "Тихорецк", - "Тобольск", - "Токма", - "Токсово", - "Тольятти", - "Томари", - "Томпа", - "Томск", - "Торжок", - "Тосно", - "Тотьма", - "Троицк (Челяб.)", - "Троицк (Моск.)", - "Троицко-Печорск", - "Туапсе", - "Тула", - "Тулпан", - "Тулун", - "Тура", - "Туруханск", - "Тутаев", - "Тутончаны", - "Тымовское", - "Тында", - "Тырныауз", - "Тюмень", - "Уварово", - "Углегорск", - "Углич", - "Улан-Удэ", - "Ульяновск", - "Урай", - "Уренгой", - "Урус-Мартан", - "Урюпинск", - "Усинск", - "Усмань", - "Усолье Сибирское", - "Уссурийск", - "Усть-Баргузин", - "Усть-Джегута", - "Усть-Илимск", - "Усть-Ишим", - "Усть-Калманка", - "Усть-Камчатск", - "Усть-Катав", - "Усть-Кулом", - "Усть-Кут", - "Усть-Ордынский", - "Устюжна", - "Уфа", - "Ухта", - "Учалы", - "Уэлен", - "Фатеж", - "Хабаровск", - "Ханты-Мансийск", - "Хасавюрт", - "Хасан", - "Хатанга", - "Химки", - "Холмогоры", - "Холмск", - "Хоста", - "Хужир", - "Цимлянск", - "Чайковский", - "Чебаркуль", - "Чебоксары", - "Чегем", - "Челюскин", - "Челябинск", - "Черемхово", - "Череповец", - "Черкесск", - "Чермоз", - "Черняховск", - "Черский", - "Черусти", - "Чехов", - "Чикола", - "Чита", - "Чокурдах", - "Чулым", - "Чусовой", - "Шадринск", - "Шали", - "Шамары", - "Шарья", - "Шатки", - "Шатой", - "Шатура", - "Шаховская", - "Шахты", - "Шелагонцы", - "Шелехов", - "Шенкурск", - "Шерегеш", - "Шереметьево", - "Шилка", - "Шумиха", - "Шуя", - "Щелково", - "Щельяюр", - "Элиста", - "Эльбрус", - "Эльтон", - "Энгельс", - "Югорск", - "Южно-Курильск", - "Южно-Сахалинск", - "Южноуральск", - "Юровск", - "Юрьев-Польский", - "Юрьевец (Иван.)", - "Юрюзань", - "Якутск", - "Якша", - "Ялуторовск", - "Ямбург", - "Яр-Сале", - "Ярославль", - "Ясный (Оренб.)", - "Яхрома", - "Яшалта", - "Яшкуль", - ) - - # https://en.wikipedia.org/wiki/Federal_subjects_of_Russia - region_republics = ( - "Адыгея", - "Алтай", - "Башкортостан", - "Бурятия", - "Дагестан", - "Ингушетия", - "Кабардино-Балкария", - "Калмыкия", - "Карачаево-Черкесия", - "Карелия", - "Коми", - "Крым", - "Марий-Эл", - "Мордовия", - "Саха (Якутия)", - "Северная Осетия - Алания", - "Татарстан", - "Тыва", - "Удмуртия", - "Хакасия", - "Чечня", - "Чувашия", - ) - - region_krai = ( - "Алтайский", - "Забайкальский", - "Камчатский", - "Краснодарский", - "Красноярский", - "Пермский", - "Приморский", - "Ставропольский", - "Хабаровский", - ) - - region_oblast = ( - "Амурская", - "Архангельская", - "Астраханская", - "Белгородская", - "Брянская", - "Владимирская", - "Волгоградская", - "Вологодская", - "Воронежская", - "Ивановская", - "Иркутская", - "Калининградская", - "Калужская", - "Кемеровская", - "Кировская", - "Костромская", - "Курганская", - "Курская", - "Ленинградская", - "Липецкая", - "Магаданская", - "Московская", - "Мурманская", - "Нижегородская", - "Новгородская", - "Новосибирская", - "Омская", - "Оренбургская", - "Орловская", - "Пензенская", - "Псковская", - "Ростовская", - "Рязанская", - "Самарская", - "Саратовская", - "Сахалинская", - "Свердловская", - "Смоленская", - "Тамбовская", - "Тверская", - "Томская", - "Тульская", - "Тюменская", - "Ульяновская", - "Челябинская", - "Ярославская", - ) - - region_ao = ( - "Еврейская", - "Ханты-Мансийский", - "Чукотский", - "Ямало-Ненецкий", - "Ненецкий", - ) - - countries = ( - "Австралия", - "Австрия", - "Азербайджан", - "Албания", - "Алжир", - "Ангола", - "Андорра", - "Антигуа и Барбуда", - "Аргентина", - "Армения", - "Афганистан", - "Багамские Острова", - "Бангладеш", - "Барбадос", - "Бахрейн", - "Белоруссия", - "Белиз", - "Бельгия", - "Бенин", - "Болгария", - "Боливия", - "Босния и Герцеговина", - "Ботсвана", - "Бразилия", - "Бруней", - "Буркина-Фасо", - "Бурунди", - "Бутан", - "Вануату", - "Великобритания", - "Венгрия", - "Венесуэла", - "Восточный Тимор", - "Вьетнам", - "Габон", - "Гаити", - "Гайана", - "Гамбия", - "Гана", - "Гватемала", - "Гвинея", - "Гвинея-Бисау", - "Германия", - "Гондурас", - "Гренада", - "Греция", - "Грузия", - "Дания", - "Джибути", - "Доминика", - "Доминиканская Республика", - "Египет", - "Замбия", - "Зимбабве", - "Израиль", - "Индия", - "Индонезия", - "Иордания", - "Ирак", - "Иран", - "Ирландия", - "Исландия", - "Испания", - "Италия", - "Йемен", - "Кабо-Верде", - "Казахстан", - "Камбоджа", - "Камерун", - "Канада", - "Катар", - "Кения", - "Кипр", - "Киргизия", - "Кирибати", - "Китай", - "Колумбия", - "Коморы", - "Республика Конго", - "Демократическая Республика Конго", - "КНДР", - "Республика Корея", - "Коста-Рика", - "Кот-д’Ивуар", - "Куба", - "Кувейт", - "Лаос", - "Латвия", - "Лесото", - "Либерия", - "Ливан", - "Ливия", - "Литва", - "Лихтенштейн", - "Люксембург", - "Маврикий", - "Мавритания", - "Мадагаскар", - "Малави", - "Малайзия", - "Мали", - "Мальдивы", - "Мальта", - "Марокко", - "Маршалловы Острова", - "Мексика", - "Мозамбик", - "Молдавия", - "Монако", - "Монголия", - "Мьянма", - "Намибия", - "Науру", - "Непал", - "Нигер", - "Нигерия", - "Нидерланды", - "Никарагуа", - "Новая Зеландия", - "Норвегия", - "ОАЭ", - "Оман", - "Пакистан", - "Палау", - "Панама", - "Папуа", - "Парагвай", - "Перу", - "Польша", - "Португалия", - "Россия", - "Руанда", - "Румыния", - "Сальвадор", - "Самоа", - "Сан-Марино", - "Сан-Томе и Принсипи", - "Саудовская Аравия", - "Северная Македония", - "Сейшельские Острова", - "Сенегал", - "Сент-Винсент и Гренадины", - "Сент-Китс и Невис", - "Сент-Люсия", - "Сербия", - "Сингапур", - "Сирия", - "Словакия", - "Словения", - "США", - "Соломоновы Острова", - "Сомали", - "Судан", - "Суринам", - "Сьерра-Леоне", - "Таджикистан", - "Таиланд", - "Танзания", - "Того", - "Тонга", - "Тринидад и Тобаго", - "Тувалу", - "Тунис", - "Туркмения", - "Турция", - "Уганда", - "Узбекистан", - "Украина", - "Уругвай", - "Федеративные Штаты Микронезии", - "Фиджи", - "Филиппины", - "Финляндия", - "Франция", - "Хорватия", - "Центральноафриканская Республика", - "Чад", - "Черногория", - "Чехия", - "Чили", - "Швейцария", - "Швеция", - "Шри-Ланка", - "Эквадор", - "Экваториальная Гвинея", - "Эритрея", - "Эсватини", - "Эстония", - "Эфиопия", - "ЮАР", - "Южный Судан", - "Ямайка", - "Япония", - ) - - def city_prefix(self) -> str: - return self.random_element(self.city_prefixes) - - def city_name(self) -> str: - return self.random_element(self.city_names) - - def country(self) -> str: - return self.random_element(self.countries) - - def administrative_unit(self) -> str: - regions_suffix: str = self.random_element(self.region_suffixes) - if regions_suffix == "респ.": - return f"{regions_suffix} {self.random_element(self.region_republics)}" - elif regions_suffix == "край": - return f"{self.random_element(self.region_krai)} {regions_suffix}" - elif regions_suffix == "обл.": - return f"{self.random_element(self.region_oblast)} {regions_suffix}" - elif regions_suffix == "АО": - return f"{self.random_element(self.region_ao)} {regions_suffix}" - else: - raise ValueError(f'Unknown region "{regions_suffix}"') - - region = administrative_unit - - def street_suffix(self) -> str: - return self.random_element(self.street_suffixes) - - def street_title(self) -> str: - return self.random_element(self.street_titles + self.street_titles_noflex) - - def street_name(self) -> str: - suffix = self.street_suffix() - street = self.street_title() - stem = street[:-2] - result = street - if street not in self.street_titles_noflex and suffix not in self.street_suffixes_fem: - if suffix in self.street_suffixes_masc: - if street in self.street_titles_irregular_masc.keys(): - result = self.street_titles_irregular_masc[street] - else: - if stem.endswith("ск") or stem.endswith("цк"): - result = stem + "ий" - else: - result = stem + "ый" - elif suffix in self.street_suffixes_neu: - if street in self.street_titles_irregular_neu.keys(): - result = self.street_titles_irregular_neu[street] - else: - result = stem + "ое" - return f"{suffix} {result}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ru_RU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/ru_RU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 685aa8d..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/ru_RU/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/sk_SK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/sk_SK/__init__.py deleted file mode 100644 index e5f72d7..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/sk_SK/__init__.py +++ /dev/null @@ -1,5266 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{city_name}}",) - - street_name_formats = ("{{street_name}}",) - street_address_formats = ("{{street_name}} {{building_number}}",) - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - building_number_formats = ("%", "%#", "%##") - - street_suffixes_long = ("ulica", "trieda", "nábrežie", "námestie") - street_suffixes_short = ("ul.", "tr.", "nábr.", "nám.") - - postcode_formats = ( - "8## ##", - "9## ##", - "0## ##", - ) - - cities = ( - "Ábelová", - "Abovce", - "Abrahám", - "Abrahámovce", - "Abrahámovce", - "Abramová", - "Abranovce", - "Adidovce", - "Alekšince", - "Andovce", - "Andrejová", - "Ardanovce", - "Ardovo", - "Arnutovce", - "Báb", - "Babie", - "Babín", - "Babiná", - "Babindol", - "Babinec", - "Bacúch", - "Bacúrov", - "Báč", - "Bačka", - "Bačkov", - "Bačkovík", - "Badín", - "Baďan", - "Báhoň", - "Bajany", - "Bajč", - "Bajerov", - "Bajerovce", - "Bajka", - "Bajtava", - "Baka", - "Baláže", - "Baldovce", - "Balog nad Ipľom", - "Baloň", - "Banka", - "Bánov", - "Bánovce nad Bebravou", - "Bánovce nad Ondavou", - "Banská Belá", - "Banská Štiavnica", - "Banská Bystrica", - "Banské", - "Banský Studenec", - "Baňa", - "Bara", - "Barca", - "Bartošovce", - "Bardoňovo", - "Bartošova Lehôtka", - "Bardejov", - "Baška", - "Baškovce", - "Baškovce", - "Bašovce", - "Batizovce", - "Bátorová", - "Bátka", - "Bátorove Kosihy", - "Bátovce", - "Beharovce", - "Beckov", - "Becherov", - "Belá", - "Belá", - "Belá - Dulice", - "Belá nad Cirochou", - "Beladice", - "Belejovce", - "Belín", - "Belina", - "Belince", - "Bellova Ves", - "Beloveža", - "Beluj", - "Beluša", - "Belža", - "Beniakovce", - "Benice", - "Benkovce", - "Beňadiková", - "Beňadikovce", - "Beňadovo", - "Beňatina", - "Beňuš", - "Bernolákovo", - "Bertotovce", - "Beša", - "Beša", - "Bešeňov", - "Bešeňová", - "Betlanovce", - "Betliar", - "Bežovce", - "Bidovce", - "Biel", - "Bielovce", - "Biely Kostol", - "Bijacovce", - "Bílkove Humence", - "Bíňa", - "Bíňovce", - "Biskupice", - "Biskupová", - "Bitarová", - "Blahová", - "Blatná na Ostrove", - "Blatná Polianka", - "Blatné", - "Blatné Remety", - "Blatné Revištia", - "Blatnica", - "Blažice", - "Blažovce", - "Blesovce", - "Blhovce", - "Bobot", - "Bobrov", - "Bobrovček", - "Bobrovec", - "Bobrovník", - "Bočiar", - "Bodíky", - "Bodiná", - "Bodorová", - "Bodovce", - "Bodružal", - "Bodza", - "Bodzianske Lúky", - "Bogliarka", - "Bohdanovce", - "Bohdanovce nad Trnavou", - "Boheľov", - "Bohunice", - "Bohunice", - "Bohúňovo", - "Bojná", - "Bojnice", - "Bojničky", - "Boldog", - "Boleráz", - "Bolešov", - "Boliarov", - "Boľ", - "Boľkovce", - "Borcová", - "Borčany", - "Borčice", - "Borinka", - "Borová", - "Borovce", - "Borský Mikuláš", - "Borský Svätý Jur", - "Borša", - "Bory", - "Bošáca", - "Bošany", - "Bottovo", - "Boťany", - "Bôrka", - "Bracovce", - "Branč", - "Branovo", - "Bratislava", - "Okres Bratislava II", - "Okres Bratislava III", - "Okres Bratislava IV", - "Okres Bratislava V", - "Braväcovo", - "Brdárka", - "Brehov", - "Brehy", - "Brekov", - "Brestov", - "Brestov", - "Brestov nad Laborcom", - "Brestovany", - "Brestovec", - "Brestovec", - "Bretejovce", - "Bretka", - "Breza", - "Brezany", - "Brezina", - "Breziny", - "Breznica", - "Breznička", - "Breznička", - "Brezno", - "Brezolupy", - "Brezov", - "Brezová pod Bradlom", - "Brezovec", - "Brezovica", - "Brezovica", - "Brezovička", - "Brezovka", - "Brežany", - "Brhlovce", - "Brieštie", - "Brodské", - "Brodzany", - "Brunovce", - "Brusnica", - "Brusník", - "Brusno", - "Brutovce", - "Bruty", - "Brvnište", - "Brzotín", - "Buclovany", - "Búč", - "Bučany", - "Budča", - "Budikovany", - "Budimír", - "Budiná", - "Budince", - "Budiš", - "Budkovce", - "Budmerice", - "Buglovce", - "Buková", - "Bukovce", - "Bukovec", - "Bukovec", - "Bukovina", - "Bulhary", - "Bunetice", - "Bunkovce", - "Bušince", - "Bušovce", - "Buzica", - "Buzitka", - "Bystrá", - "Bystrá", - "Bystrany", - "Bystré", - "Bystričany", - "Bystrička", - "Byšta", - "Bytča", - "Bzenica", - "Bzenov", - "Bzince pod Javorinou", - "Bziny", - "Bzovík", - "Bzovská Lehôtka", - "Bžany", - "Cabaj - Čápor", - "Cabov", - "Cakov", - "Cejkov", - "Cernina", - "Cerová", - "Cerovo", - "Cestice", - "Cífer", - "Cigeľ", - "Cigeľka", - "Cigla", - "Cimenná", - "Cinobaňa", - "Čabalovce", - "Čabiny", - "Čabradský Vrbovok", - "Čadca", - "Čachtice", - "Čajkov", - "Čaka", - "Čakajovce", - "Čakanovce", - "Čakanovce", - "Čakany", - "Čaklov", - "Čalovec", - "Čamovce", - "Čaňa", - "Čaradice", - "Čáry", - "Častá", - "Častkov", - "Častkovce", - "Čata", - "Čataj", - "Čavoj", - "Čebovce", - "Čečehov", - "Čečejovce", - "Čechy", - "Čechynce", - "Čekovce", - "Čeláre", - "Čelkova Lehota", - "Čelovce", - "Čelovce", - "Čeľadice", - "Čeľadince", - "Čeľovce", - "Čenkovce", - "Čerenčany", - "Čereňany", - "Čerhov", - "Čerín", - "Čermany", - "Černík", - "Černina", - "Černochov", - "Čertižné", - "Červená Voda", - "Červenica", - "Červenica pri Sabinove", - "Červeník", - "Červený Hrádok", - "Červený Kameň", - "Červený Kláštor", - "Červeňany", - "České Brezovo", - "Čičarovce", - "Čičava", - "Čičmany", - "Číčov", - "Čierna", - "Čierna Lehota", - "Čierna Lehota", - "Čierna nad Tisou", - "Čierna Voda", - "Čierne", - "Čierne Kľačany", - "Čierne nad Topľou", - "Čierne Pole", - "Čierny Balog", - "Čierny Brod", - "Čierny Potok", - "Čifáre", - "Čiližská Radvaň", - "Čimhová", - "Čirč", - "Číž", - "Čižatice", - "Čoltovo", - "Čremošné", - "Čučma", - "Čukalovce", - "Dačov Lom", - "Daletice", - "Danišovce", - "Dargov", - "Davidov", - "Debraď", - "Dedačov", - "Dedina Mládeže", - "Dedinka", - "Dedinky", - "Dechtice", - "Dekýš", - "Demandice", - "Demänovská Dolina", - "Demjata", - "Detrík", - "Detva", - "Detvianska Huta", - "Devičany", - "Devičie", - "Dežerice", - "Diaková", - "Diakovce", - "Diviacka Nová Ves", - "Diviaky nad Nitricou", - "Divín", - "Divina", - "Divinka", - "Dlhá", - "Dlhá nad Kysucou", - "Dlhá nad Oravou", - "Dlhá nad Váhom", - "Dlhá Ves", - "Dlhé Klčovo", - "Dlhé nad Cirochou", - "Dlhé Pole", - "Dlhé Stráže", - "Dlhoňa", - "Dlžín", - "Dobrá", - "Dobrá Niva", - "Dobrá Voda", - "Dobroč", - "Dobrohošť", - "Dobroslava", - "Dobšiná", - "Dohňany", - "Dojč", - "Dolinka", - "Dolná Breznica", - "Dolná Krupá", - "Dolná Lehota", - "Dolná Mariková", - "Dolná Mičiná", - "Dolná Poruba", - "Dolná Seč", - "Dolná Streda", - "Dolná Strehová", - "Dolná Súča", - "Dolná Tižina", - "Dolná Trnávka", - "Dolná Ves", - "Dolná Ždaňa", - "Dolné Dubové", - "Dolné Kočkovce", - "Dolné Lefantovce", - "Dolné Lovčice", - "Dolné Mladonice", - "Dolné Naštice", - "Dolné Obdokovce", - "Dolné Orešany", - "Dolné Otrokovce", - "Dolné Plachtince", - "Dolné Saliby", - "Dolné Semerovce", - "Dolné Srnie", - "Dolné Strháre", - "Dolné Trhovište", - "Dolné Vestenice", - "Dolné Zahorany", - "Dolné Zelenice", - "Dolný Badín", - "Dolný Bar", - "Dolný Harmanec", - "Dolný Hričov", - "Dolný Chotár", - "Dolný Kalník", - "Dolný Kubín", - "Dolný Lieskov", - "Dolný Lopašov", - "Dolný Ohaj", - "Dolný Pial", - "Dolný Štál", - "Dolný Vadičov", - "Doľany", - "Doľany", - "Domadice", - "Domaníky", - "Domaniža", - "Domaňovce", - "Donovaly", - "Drábsko", - "Drahňov", - "Drahovce", - "Dravce", - "Dražice", - "Dražkovce", - "Drážovce", - "Drienčany", - "Drienica", - "Drienov", - "Drienovec", - "Drienovo", - "Drienovská Nová Ves", - "Drietoma", - "Drnava", - "Drňa", - "Družstevná pri Hornáde", - "Drženice", - "Držkovce", - "Dubinné", - "Dubnica nad Váhom", - "Dubnička", - "Dubník", - "Dubno", - "Dubodiel", - "Dubová", - "Dubová", - "Dubovany", - "Dubovce", - "Dubové", - "Dubové", - "Dubovec", - "Dubovica", - "Dúbrava", - "Dúbrava", - "Dúbrava", - "Dúbravica", - "Dúbravka", - "Dúbravy", - "Ducové", - "Dudince", - "Dukovce", - "Dulov", - "Dulova Ves", - "Dulovce", - "Dulovo", - "Dunajská Lužná", - "Dunajov", - "Dunajská Streda", - "Dunajský Klátov", - "Duplín", - "Dvorany nad Nitrou", - "Dvorec", - "Dvorianky", - "Dvorníky", - "Dvorníky - Včeláre", - "Dvory nad Žitavou", - "Ďačov", - "Ďanová", - "Ďapalovce", - "Ďubákovo", - "Ďurčiná", - "Ďurďoš", - "Ďurďošík", - "Ďurďové", - "Ďurkov", - "Ďurková", - "Ďurkovce", - "Egreš", - "Fačkov", - "Falkušovce", - "Farná", - "Fekišovce", - "Figa", - "Fijaš", - "Fiľakovo", - "Fiľakovské Kováče", - "Fintice", - "Folkušová", - "Forbasy", - "Frička", - "Fričkovce", - "Fričovce", - "Fulianka", - "Gabčíkovo", - "Gaboltov", - "Gajary", - "Galanta", - "Galovany", - "Gánovce", - "Gáň", - "Gbelce", - "Gbely", - "Gbeľany", - "Geča", - "Gelnica", - "Gemer", - "Gemerček", - "Gemerská Hôrka", - "Gemerská Panica", - "Gemerská Poloma", - "Gemerská Ves", - "Gemerské Dechtáre", - "Gemerské Michalovce", - "Gemerské Teplice", - "Gemerský Jablonec", - "Gemerský Sad", - "Geraltov", - "Gerlachov", - "Gerlachov", - "Giglovce", - "Giraltovce", - "Girovce", - "Glabušovce", - "Gočaltovo", - "Gočovo", - "Golianovo", - "Gortva", - "Gôtovany", - "Granč - Petrovce", - "Gregorova Vieska", - "Gregorovce", - "Gribov", - "Gruzovce", - "Gyňov", - "Habovka", - "Habura", - "Hačava", - "Háj", - "Háj", - "Hajná Nová Ves", - "Hajnáčka", - "Hájske", - "Hajtovka", - "Haláčovce", - "Halič", - "Haligovce", - "Haluzice", - "Hamuliakovo", - "Handlová", - "Hanigovce", - "Haniska", - "Haniska", - "Hanková", - "Hankovce", - "Hankovce", - "Hanušovce nad Topľou", - "Harakovce", - "Harhaj", - "Harichovce", - "Harmanec", - "Hatalov", - "Hatné", - "Havaj", - "Havka", - "Havranec", - "Hažín", - "Hažín nad Cirochou", - "Hažlín", - "Helcmanovce", - "Heľpa", - "Henckovce", - "Henclová", - "Hencovce", - "Hendrichovce", - "Herľany", - "Hermanovce", - "Hermanovce nad Topľou", - "Hertník", - "Hervartov", - "Hiadeľ", - "Hincovce", - "Hladovka", - "Hlboké", - "Hliník nad Hronom", - "Hlinné", - "Hlivištia", - "Hlohovec", - "Hniezdne", - "Hnilčík", - "Hnilec", - "Hnojné", - "Hnúšťa", - "Hodejov", - "Hodejovec", - "Hodkovce", - "Hodruša - Hámre", - "Hokovce", - "Holčíkovce", - "Holiare", - "Holice", - "Holíč", - "Holiša", - "Holumnica", - "Honce", - "Hontianska Vrbica", - "Hontianske Moravce", - "Hontianske Nemce", - "Hontianske Tesáre", - "Hontianske Trsťany", - "Horná Breznica", - "Horná Kráľová", - "Horná Krupá", - "Horná Lehota", - "Horná Lehota", - "Horná Mariková", - "Horná Mičiná", - "Horná Poruba", - "Horná Potôň", - "Horná Seč", - "Horná Streda", - "Horná Strehová", - "Horná Súča", - "Horná Štubňa", - "Horná Ves", - "Horná Ves", - "Horná Ždaňa", - "Horné Dubové", - "Horné Hámre", - "Horné Chlebany", - "Horné Lefantovce", - "Horné Mladonice", - "Horné Mýto", - "Horné Naštice", - "Horné Obdokovce", - "Horné Orešany", - "Horné Otrokovce", - "Horné Plachtince", - "Horné Pršany", - "Horné Saliby", - "Horné Semerovce", - "Horné Srnie", - "Horné Strháre", - "Horné Štitáre", - "Horné Trhovište", - "Horné Turovce", - "Horné Vestenice", - "Horné Zahorany", - "Horné Zelenice", - "Horný Badín", - "Horný Bar", - "Horný Hričov", - "Horný Kalník", - "Horný Lieskov", - "Horný Pial", - "Horný Tisovník", - "Horný Vadičov", - "Horňa", - "Horňany", - "Horovce", - "Horovce", - "Hoste", - "Hostice", - "Hostie", - "Hostišovce", - "Hostovice", - "Hosťová", - "Hosťovce", - "Hosťovce", - "Hozelec", - "Hôrka", - "Hôrka nad Váhom", - "Hôrky", - "Hrabičov", - "Hrabkov", - "Hrabová Roztoka", - "Hrabovčík", - "Hrabovec", - "Hrabovec nad Laborcom", - "Hrabské", - "Hrabušice", - "Hradisko", - "Hradište", - "Hradište", - "Hradište pod Vrátnom", - "Hrádok", - "Hrachovište", - "Hrachovo", - "Hraničné", - "Hranovnica", - "Hraň", - "Hrašné", - "Hrašovík", - "Hrčeľ", - "Hrhov", - "Hriadky", - "Hričovské Podhradie", - "Hriňová", - "Hrišovce", - "Hrkovce", - "Hrlica", - "Hrnčiarovce nad Parnou", - "Hrnčiarska Ves", - "Hrnčiarske Zalužany", - "Hrochoť", - "Hromoš", - "Hronec", - "Hronovce", - "Hronsek", - "Hronská Breznica", - "Hronská Dúbrava", - "Hronské Kľačany", - "Hronské Kosihy", - "Hronský Beňadik", - "Hrubá Borša", - "Hruboňovo", - "Hrubov", - "Hrubý Šúr", - "Hrušov", - "Hrušov", - "Hrušovany", - "Hrušovo", - "Hruštín", - "Hubice", - "Hubina", - "Hubošovce", - "Hubová", - "Hubovo", - "Hucín", - "Hudcovce", - "Hul", - "Humenné", - "Huncovce", - "Hunkovce", - "Hurbanova Ves", - "Hurbanovo", - "Husák", - "Husiná", - "Hutka", - "Huty", - "Hviezdoslavov", - "Hvozdnica", - "Hybe", - "Hýľov", - "Chanava", - "Chlebnice", - "Chlmec", - "Chľaba", - "Chmeľnica", - "Chmeľov", - "Chmeľová", - "Chmeľovec", - "Chminianska Nová Ves", - "Chminianske Jakubovany", - "Chmiňany", - "Choča", - "Chocholná - Velčice", - "Choňkovce", - "Chorvátsky Grob", - "Chorváty", - "Chotča", - "Chotín", - "Chrabrany", - "Chrámec", - "Chrastince", - "Chrastné", - "Chrasť nad Hornádom", - "Chrenovec - Brusno", - "Chropov", - "Chrťany", - "Chtelnica", - "Chudá Lehota", - "Chvalová", - "Chvojnica", - "Chvojnica", - "Chynorany", - "Chyžné", - "Igram", - "Ihľany", - "Ihráč", - "Ilava", - "Iliašovce", - "Ilija", - "Imeľ", - "Inovce", - "Iňa", - "Iňačovce", - "Ipeľské Predmostie", - "Ipeľské Úľany", - "Ipeľský Sokolec", - "Istebné", - "Ivachnová", - "Ivančiná", - "Ivanice", - "Ivanka pri Dunaji", - "Ivanka pri Nitre", - "Ivanovce", - "Iža", - "Ižipovce", - "Ižkovce", - "Jablonec", - "Jablonica", - "Jablonka", - "Jablonov", - "Jablonov nad Turňou", - "Jablonové", - "Jablonové", - "Jabloň", - "Jabloňovce", - "Jacovce", - "Jahodná", - "Jaklovce", - "Jakovany", - "Jakubany", - "Jakubov", - "Jakubova Voľa", - "Jakubovany", - "Jakubovany", - "Jakušovce", - "Jalová", - "Jalovec", - "Jalovec", - "Jalšové", - "Jalšovík", - "Jamník", - "Jamník", - "Janice", - "Janík", - "Janíky", - "Jankovce", - "Janov", - "Janova Lehota", - "Janovce", - "Jánovce", - "Jánovce", - "Janovík", - "Jarabá", - "Jarabina", - "Jarok", - "Jarovnice", - "Jasenica", - "Jasenie", - "Jasenov", - "Jasenov", - "Jasenová", - "Jasenovce", - "Jasenové", - "Jasenovo", - "Jaslovské Bohunice", - "Jasov", - "Jasová", - "Jastrabá", - "Jastrabie nad Topľou", - "Jastrabie pri Michalovciach", - "Jatov", - "Javorina (vojenský obvod)", - "Jazernica", - "Jedlinka", - "Jedľové Kostoľany", - "Jelenec", - "Jelka", - "Jelšava", - "Jelšovce", - "Jelšovec", - "Jenkovce", - "Jesenské", - "Jesenské", - "Jestice", - "Ješkova Ves", - "Jezersko", - "Jovice", - "Jovsa", - "Jur nad Hronom", - "Jurkova Voľa", - "Jurová", - "Jurské", - "Juskova Voľa", - "Kačanov", - "Kajal", - "Kalameny", - "Kalinkovo", - "Kalinov", - "Kalinovo", - "Kalná nad Hronom", - "Kalná Roztoka", - "Kálnica", - "Kalnište", - "Kalonda", - "Kalša", - "Kaloša", - "Kaluža", - "Kaľamenová", - "Kaľava", - "Kamanová", - "Kamenec pod Vtáčnikom", - "Kamenica", - "Kamenica nad Cirochou", - "Kamenica nad Hronom", - "Kameničany", - "Kameničná", - "Kamenín", - "Kamenná Poruba", - "Kamenná Poruba", - "Kamenné Kosihy", - "Kamenný Most", - "Kameňany", - "Kamienka", - "Kamienka", - "Kanianka", - "Kapišová", - "Kaplna", - "Kapušany", - "Kapušianske Kľačany", - "Karlová", - "Karná", - "Kašov", - "Kátlovce", - "Kátov", - "Kazimír", - "Kecerovce", - "Kecerovský Lipovec", - "Kečkovce", - "Kečovo", - "Kechnec", - "Kendice", - "Kesovce", - "Keť", - "Kežmarok", - "Kiarov", - "Kladzany", - "Klasov", - "Kláštor pod Znievom", - "Klátova Nová Ves", - "Klčov", - "Klenov", - "Klenová", - "Klenovec", - "Kleňany", - "Klieština", - "Klin", - "Klin nad Bodrogom", - "Klížska Nemá", - "Klokoč", - "Klokočov", - "Klokočov", - "Klubina", - "Kluknava", - "Kľačany", - "Kľače", - "Kľačno", - "Kľak", - "Kľúčovec", - "Kľušov", - "Kmeťovo", - "Kobeliarovo", - "Kobylnice", - "Kobyly", - "Koceľovce", - "Kociha", - "Kocurany", - "Kočín - Lančár", - "Kočovce", - "Kochanovce", - "Kochanovce", - "Kojatice", - "Kojšov", - "Kokava nad Rimavicou", - "Kokošovce", - "Kokšov - Bakša", - "Kolačkov", - "Kolačno", - "Koláre", - "Kolárovice", - "Kolárovo", - "Kolbasov", - "Kolbovce", - "Kolibabovce", - "Kolinovce", - "Kolíňany", - "Kolonica", - "Kolta", - "Komárany", - "Komárno", - "Komárov", - "Komárovce", - "Komjatice", - "Komjatná", - "Komoča", - "Koniarovce", - "Konrádovce", - "Konská", - "Konská", - "Koňuš", - "Kopčany", - "Kopernica", - "Koplotovce", - "Koprivnica", - "Kordíky", - "Korejovce", - "Korňa", - "Koromľa", - "Korunková", - "Korytárky", - "Korytné", - "Kosihovce", - "Kosihy nad Ipľom", - "Kosorín", - "Kostolec", - "Kostolište", - "Kostolná pri Dunaji", - "Kostolná Ves", - "Kostolná - Záriečie", - "Kostolné", - "Kostolné Kračany", - "Kostoľany pod Tribečom", - "Koš", - "Košariská", - "Košarovce", - "Košeca", - "Košecké Podhradie", - "Košice", - "Okres Košice II", - "Okres Košice III", - "Okres Košice IV", - "Košická Belá", - "Košická Polianka", - "Košické Oľšany", - "Košický Klečenov", - "Koškovce", - "Košolná", - "Košúty", - "Košťany nad Turcom", - "Kotešová", - "Kotmanová", - "Kotrčiná Lúčka", - "Kováčová", - "Kováčová", - "Kováčovce", - "Koválov", - "Koválovec", - "Kovarce", - "Kozárovce", - "Kozelník", - "Kozí Vrbovok", - "Kožany", - "Kožuchov", - "Kožuchovce", - "Kračúnovce", - "Krahule", - "Krajná Bystrá", - "Krajná Poľana", - "Krajná Porúbka", - "Krajné", - "Krajné Čierno", - "Krakovany", - "Králiky", - "Kráľ", - "Kráľov Brod", - "Kráľova Lehota", - "Kráľová nad Váhom", - "Kráľová pri Senci", - "Kraľovany", - "Kráľovce", - "Kráľovce - Krnišov", - "Kráľovičove Kračany", - "Kráľovský Chlmec", - "Kraskovo", - "Krásna Lúka", - "Krásna Ves", - "Krásno", - "Krásno nad Kysucou", - "Krásnohorská Dlhá Lúka", - "Krásnohorské Podhradie", - "Krásnovce", - "Krásny Brod", - "Krasňany", - "Kravany", - "Kravany", - "Kravany nad Dunajom", - "Krčava", - "Kremná", - "Kremnica", - "Kremnické Bane", - "Kristy", - "Krišľovce", - "Krišovská Liesková", - "Krivá", - "Krivany", - "Kriváň", - "Krivé", - "Krivoklát", - "Krivosúd - Bodovka", - "Kríže", - "Krížová Ves", - "Krížovany", - "Križovany nad Dudváhom", - "Krná", - "Krnča", - "Krokava", - "Krompachy", - "Krpeľany", - "Krškany", - "Krtovce", - "Kručov", - "Krupina", - "Krušetnica", - "Krušinec", - "Krušovce", - "Kružlov", - "Kružlová", - "Kružná", - "Kružno", - "Kšinná", - "Kubáňovo", - "Kučín", - "Kučín", - "Kuchyňa", - "Kuklov", - "Kuková", - "Kukučínov", - "Kunerad", - "Kunešov", - "Kunova Teplica", - "Kuraľany", - "Kurima", - "Kurimany", - "Kurimka", - "Kurov", - "Kusín", - "Kútniky", - "Kúty", - "Kuzmice", - "Kuzmice", - "Kvačany", - "Kvačany", - "Kvakovce", - "Kvašov", - "Kvetoslavov", - "Kyjatice", - "Kyjov", - "Kynceľová", - "Kysak", - "Kyselica", - "Kysta", - "Kysucké Nové Mesto", - "Kysucký Lieskovec", - "Láb", - "Lackov", - "Lacková", - "Lada", - "Ladce", - "Ladice", - "Ladmovce", - "Ladomerská Vieska", - "Ladomirov", - "Ladomirová", - "Ladzany", - "Lakšárska Nová Ves", - "Lascov", - "Laskár", - "Lastomír", - "Lastovce", - "Laškovce", - "Látky", - "Lazany", - "Lazisko", - "Lazy pod Makytou", - "Lažany", - "Lednica", - "Lednické Rovne", - "Legnava", - "Lehnice", - "Lehota", - "Lehota nad Rimavicou", - "Lehota pod Vtáčnikom", - "Lehôtka", - "Lehôtka pod Brehmi", - "Lechnica", - "Lekárovce", - "Leles", - "Leľa", - "Lemešany", - "Lenartov", - "Lenartovce", - "Lendak", - "Lenka", - "Lentvora", - "Leopoldov", - "Lesenice", - "Lesíček", - "Lesné", - "Lesnica", - "Leštiny", - "Lešť (vojenský obvod)", - "Letanovce", - "Letničie", - "Leváre", - "Levice", - "Levkuška", - "Levoča", - "Ležiachov", - "Libichava", - "Licince", - "Ličartovce", - "Liesek", - "Lieskovany", - "Lieskovec", - "Lieskovec", - "Liešno", - "Liešťany", - "Lietava", - "Lietavská Lúčka", - "Lietavská Svinná - Babkov", - "Likavka", - "Limbach", - "Lipany", - "Lipník", - "Lipníky", - "Lipová", - "Lipová", - "Lipovany", - "Lipovce", - "Lipové", - "Lipovec", - "Lipovec", - "Lipovník", - "Lipovník", - "Liptovská Anna", - "Liptovská Kokava", - "Liptovská Lúžna", - "Liptovská Osada", - "Liptovská Porúbka", - "Liptovská Sielnica", - "Liptovská Štiavnica", - "Liptovská Teplá", - "Liptovská Teplička", - "Liptovské Beharovce", - "Liptovské Kľačany", - "Liptovské Matiašovce", - "Liptovské Revúce", - "Liptovské Sliače", - "Liptovský Hrádok", - "Liptovský Ján", - "Liptovský Michal", - "Liptovský Mikuláš", - "Liptovský Ondrej", - "Liptovský Peter", - "Liptovský Trnovec", - "Lisková", - "Lišov", - "Litava", - "Litmanová", - "Livina", - "Livinské Opatovce", - "Livov", - "Livovská Huta", - "Lodno", - "Lok", - "Lokca", - "Lom nad Rimavicou", - "Lomná", - "Lomné", - "Lomnička", - "Lontov", - "Lopašov", - "Lopúchov", - "Lopušné Pažite", - "Lošonec", - "Lovce", - "Lovča", - "Lovčica - Trubín", - "Lovinobaňa", - "Lozorno", - "Ložín", - "Lubeník", - "Lubina", - "Lúč na Ostrove", - "Lučatín", - "Lučenec", - "Lúčina", - "Lučivná", - "Lúčka", - "Lúčka", - "Lúčka", - "Lúčka", - "Lúčky", - "Lúčky", - "Lúčky", - "Lúčnica nad Žitavou", - "Ludanice", - "Ludrová", - "Luhyňa", - "Lúka", - "Lukačovce", - "Lukáčovce", - "Lukavica", - "Lukavica", - "Lukov", - "Lukovištia", - "Lúky", - "Lula", - "Lupoč", - "Lutila", - "Lutiše", - "Lužany", - "Lužany pri Topli", - "Lužianky", - "Lysá pod Makytou", - "Lysica", - "Ľubá", - "Ľubela", - "Ľubica", - "Ľubietová", - "Ľubiša", - "Ľubochňa", - "Ľuboreč", - "Ľuboriečka", - "Ľubotice", - "Ľubotín", - "Ľubovec", - "Ľudovítová", - "Ľutina", - "Ľutov", - "Macov", - "Mad", - "Madunice", - "Magnezitovce", - "Machulince", - "Majcichov", - "Majere", - "Majerovce", - "Makov", - "Makovce", - "Malacky", - "Malachov", - "Malá Čalomija", - "Malá Čausa", - "Malá Čierna", - "Malá Domaša", - "Malá Franková", - "Malá Hradná", - "Malá Ida", - "Malá Lehota", - "Malá Lodina", - "Malá nad Hronom", - "Malá Poľana", - "Malá Tŕňa", - "Málaš", - "Malatiná", - "Malatíny", - "Malcov", - "Malčice", - "Malé Borové", - "Malé Dvorníky", - "Malé Chyndice", - "Malé Hoste", - "Malé Kosihy", - "Malé Kozmálovce", - "Malé Kršteňany", - "Malé Lednice", - "Malé Leváre", - "Malé Ludince", - "Malé Ozorovce", - "Malé Raškovce", - "Malé Ripňany", - "Malé Straciny", - "Malé Trakany", - "Malé Uherce", - "Malé Vozokany", - "Malé Zálužie", - "Malé Zlievce", - "Málinec", - "Malinová", - "Malinovo", - "Malužiná", - "Malý Cetín", - "Malý Čepčín", - "Malý Horeš", - "Malý Kamenec", - "Malý Krtíš", - "Malý Lapáš", - "Malý Lipník", - "Malý Slavkov", - "Malý Slivník", - "Malý Šariš", - "Malženice", - "Mankovce", - "Maňa", - "Marcelová", - "Margecany", - "Marhaň", - "Marianka", - "Markovce", - "Markuška", - "Markušovce", - "Maršová - Rašov", - "Martin", - "Martin nad Žitavou", - "Martinček", - "Martinová", - "Martovce", - "Mašková", - "Maškovce", - "Matejovce nad Hornádom", - "Matiaška", - "Matiašovce", - "Matovce", - "Matúškovo", - "Matysová", - "Maťovské Vojkovce", - "Medovarce", - "Medvedie", - "Medveďov", - "Medzany", - "Medzev", - "Medzianky", - "Medzibrod", - "Medzibrodie nad Oravou", - "Medzilaborce", - "Melčice - Lieskové", - "Melek", - "Meliata", - "Mengusovce", - "Merašice", - "Merník", - "Mestečko", - "Mestisko", - "Mičakovce", - "Mierovo", - "Miezgovce", - "Michajlov", - "Michal na Ostrove", - "Michal nad Žitavou", - "Michalková", - "Michalok", - "Michalová", - "Michalovce", - "Michaľany", - "Miklušovce", - "Miková", - "Mikulášová", - "Mikušovce", - "Mikušovce", - "Milhosť", - "Miloslavov", - "Milpoš", - "Miňovce", - "Mirkovce", - "Miroľa", - "Mládzovo", - "Mlynárovce", - "Mlynčeky", - "Mlynica", - "Mlynky", - "Mníchova Lehota", - "Mníšek nad Hnilcom", - "Mníšek nad Popradom", - "Moča", - "Močenok", - "Močiar", - "Modra", - "Modra nad Cirochou", - "Modrany", - "Modrová", - "Modrovka", - "Modrý Kameň", - "Mojmírovce", - "Mojš", - "Mojtín", - "Mojzesovo", - "Mokrá Lúka", - "Mokrance", - "Mokroluh", - "Mokrý Háj", - "Moldava nad Bodvou", - "Moravany", - "Moravany nad Váhom", - "Moravské Lieskové", - "Moravský Svätý Ján", - "Most pri Bratislave", - "Mostová", - "Moškovec", - "Mošovce", - "Moštenica", - "Mošurov", - "Motešice", - "Motyčky", - "Môlča", - "Mrázovce", - "Mučín", - "Mudroňovo", - "Mudrovce", - "Muľa", - "Muráň", - "Muránska Dlhá Lúka", - "Muránska Huta", - "Muránska Lehota", - "Muránska Zdychava", - "Mútne", - "Mužla", - "Myjava", - "Myslina", - "Mýtna", - "Mýtne Ludany", - "Mýto pod Ďumbierom", - "Nacina Ves", - "Nadlice", - "Naháč", - "Nálepkovo", - "Námestovo", - "Nána", - "Nandraž", - "Necpaly", - "Nedanovce", - "Nedašovce", - "Neded", - "Nededza", - "Nedožery - Brezany", - "Nechválova Polianka", - "Nemce", - "Nemcovce", - "Nemcovce", - "Nemčice", - "Nemčiňany", - "Nemecká", - "Nemečky", - "Nemešany", - "Nemšová", - "Nenince", - "Neporadza", - "Neporadza", - "Nesvady", - "Nesluša", - "Neverice", - "Nevidzany", - "Nevidzany", - "Nevoľné", - "Nezbudská Lúčka", - "Nimnica", - "Nitra", - "Nitra nad Ipľom", - "Nitrianska Blatnica", - "Nitrianska Streda", - "Nitrianske Hrnčiarovce", - "Nitrianske Pravno", - "Nitrianske Rudno", - "Nitrianske Sučany", - "Nitrica", - "Nižná", - "Nižná", - "Nižná Boca", - "Nižná Hutka", - "Nižná Jablonka", - "Nižná Jedľová", - "Nižná Kamenica", - "Nižná Myšľa", - "Nižná Olšava", - "Nižná Pisaná", - "Nižná Polianka", - "Nižná Rybnica", - "Nižná Sitnica", - "Nižná Slaná", - "Nižná Voľa", - "Nižné Ladičkovce", - "Nižné Nemecké", - "Nižné Repaše", - "Nižné Ružbachy", - "Nižný Čaj", - "Nižný Hrabovec", - "Nižný Hrušov", - "Nižný Klátov", - "Nižný Komárnik", - "Nižný Kručov", - "Nižný Lánec", - "Nižný Mirošov", - "Nižný Orlík", - "Nižný Skálnik", - "Nižný Slavkov", - "Nižný Tvarožec", - "Nižný Žipov", - "Nolčovo", - "Norovce", - "Nová Baňa", - "Nová Bašta", - "Nová Bošáca", - "Nová Bystrica", - "Nová Dedina", - "Nová Dedinka", - "Nová Dubnica", - "Nová Kelča", - "Nová Lehota", - "Nová Lesná", - "Nová Ľubovňa", - "Nová Polhora", - "Nová Polianka", - "Nová Sedlica", - "Nová Ves", - "Nová Ves nad Váhom", - "Nová Ves nad Žitavou", - "Nová Vieska", - "Nováčany", - "Nováky", - "Nové Hony", - "Nové Mesto nad Váhom", - "Nové Sady", - "Nové Zámky", - "Novosad", - "Novoť", - "Nový Ruskov", - "Nový Salaš", - "Nový Tekov", - "Nový Život", - "Nýrovce", - "Ňagov", - "Ňárad", - "Obeckov", - "Obišovce", - "Oborín", - "Obručné", - "Obyce", - "Očkov", - "Očová", - "Odorín", - "Ohrady", - "Ohradzany", - "Ochodnica", - "Ochtiná", - "Okoč", - "Okoličná na Ostrove", - "Okrúhle", - "Okružná", - "Olcnava", - "Olejníkov", - "Olešná", - "Olováry", - "Olšovany", - "Oľdza", - "Oľka", - "Oľšavce", - "Oľšavica", - "Oľšavka", - "Oľšavka", - "Oľšinkov", - "Oľšov", - "Omastiná", - "Omšenie", - "Ondavka", - "Ondavské Matiašovce", - "Ondrašovce", - "Ondrašová", - "Ondrejovce", - "Opátka", - "Opatovce", - "Opatovce nad Nitrou", - "Opatovská Nová Ves", - "Opava", - "Opiná", - "Opoj", - "Oponice", - "Oravce", - "Orávka", - "Oravská Jasenica", - "Oravská Lesná", - "Oravská Polhora", - "Oravská Poruba", - "Oravský Biely Potok", - "Oravský Podzámok", - "Ordzovany", - "Orechová", - "Orechová Potôň", - "Oravské Veselé", - "Oreské", - "Oreské", - "Orešany", - "Orlov", - "Orovnica", - "Ortuťová", - "Osádka", - "Osadné", - "Osikov", - "Oslany", - "Osrblie", - "Ostrá Lúka", - "Ostratice", - "Ostrov", - "Ostrov", - "Ostrovany", - "Ostrý Grúň", - "Osturňa", - "Osuské", - "Oščadnica", - "Otrhánky", - "Otročok", - "Ovčiarsko", - "Ovčie", - "Ozdín", - "Ožďany", - "Pača", - "Padáň", - "Padarovce", - "Pakostov", - "Palárikovo", - "Palín", - "Palota", - "Panické Dravce", - "Paňa", - "Paňovce", - "Papín", - "Papradno", - "Parchovany", - "Parihuzovce", - "Párnica", - "Partizánska Ľupča", - "Partizánske", - "Pastovce", - "Pastuchov", - "Pašková", - "Paština Závada", - "Pata", - "Pataš", - "Pavčina Lehota", - "Pavlice", - "Pavlová", - "Pavlova Ves", - "Pavlovce", - "Pavlovce", - "Pavlovce nad Uhom", - "Pavľany", - "Pažiť", - "Pčoliné", - "Pečenice", - "Pečeňady", - "Pečeňany", - "Pečovská Nová Ves", - "Peder", - "Perín - Chym", - "Pernek", - "Petkovce", - "Petrikovce", - "Petrová", - "Petrova Lehota", - "Petrova Ves", - "Petrovany", - "Petrovce", - "Petrovce", - "Petrovce", - "Petrovce nad Laborcom", - "Petrovice", - "Petrovo", - "Pezinok", - "Piešťany", - "Pichne", - "Píla", - "Píla", - "Píla", - "Pinciná", - "Pinkovce", - "Piskorovce", - "Pitelová", - "Plášťovce", - "Plavé Vozokany", - "Plavecké Podhradie", - "Plavecký Mikuláš", - "Plavecký Peter", - "Plavecký Štvrtok", - "Plaveč", - "Plavnica", - "Plechotice", - "Pleš", - "Plešivec", - "Plevník - Drienové", - "Pliešovce", - "Ploské", - "Ploské", - "Pobedim", - "Počarová", - "Počúvadlo", - "Podbiel", - "Podbranč", - "Podbrezová", - "Podhájska", - "Podhorany", - "Podhorany", - "Podhorany", - "Podhorie", - "Podhorie", - "Podhoroď", - "Podhradie", - "Podhradie", - "Podhradie", - "Podhradík", - "Podkonice", - "Podkriváň", - "Podkylava", - "Podlužany", - "Podlužany", - "Podolie", - "Podolínec", - "Podrečany", - "Podskalie", - "Podtureň", - "Podvysoká", - "Podzámčok", - "Pohorelá", - "Pohranice", - "Pohronská Polhora", - "Pohronský Bukovec", - "Pohronský Ruskov", - "Pochabany", - "Pokryváč", - "Poliakovce", - "Polianka", - "Polichno", - "Polina", - "Poloma", - "Polomka", - "Poltár", - "Poluvsie", - "Poľanovce", - "Poľany", - "Poľný Kesov", - "Pongrácovce", - "Poniky", - "Poprad", - "Poproč", - "Poproč", - "Popudinské Močidľany", - "Poráč", - "Poriadie", - "Porostov", - "Poruba", - "Poruba pod Vihorlatom", - "Porúbka", - "Porúbka", - "Porúbka", - "Porúbka", - "Poša", - "Potok", - "Potok", - "Potoky", - "Potôčky", - "Potvorice", - "Považany", - "Považská Bystrica", - "Povina", - "Povoda", - "Povrazník", - "Pozba", - "Pozdišovce", - "Pôtor", - "Praha", - "Prakovce", - "Prašice", - "Prašník", - "Pravenec", - "Pravica", - "Pravotice", - "Práznovce", - "Prečín", - "Predajná", - "Predmier", - "Prenčov", - "Preseľany", - "Prestavlky", - "Prešov", - "Príbelce", - "Pribeník", - "Pribeta", - "Pribiš", - "Príbovce", - "Pribylina", - "Priechod", - "Priekopa", - "Priepasné", - "Prietrž", - "Prietržka", - "Prievaly", - "Prievidza", - "Prihradzany", - "Príkra", - "Príslop", - "Prituľany", - "Proč", - "Prochot", - "Prosačov", - "Prosiek", - "Prša", - "Pruské", - "Prusy", - "Pružina", - "Pstriná", - "Ptičie", - "Ptrukša", - "Pucov", - "Púchov", - "Pukanec", - "Pusté Čemerné", - "Pusté Pole", - "Pusté Sady", - "Pusté Úľany", - "Pušovce", - "Rabča", - "Rabčice", - "Rad", - "Radatice", - "Radava", - "Radimov", - "Radnovce", - "Radobica", - "Radoľa", - "Radoma", - "Radošina", - "Radošovce", - "Radošovce", - "Radôstka", - "Radvanovce", - "Radvaň nad Dunajom", - "Radvaň nad Laborcom", - "Radzovce", - "Rafajovce", - "Rajčany", - "Rajec", - "Rajecká Lesná", - "Rajecké Teplice", - "Rákoš", - "Rákoš", - "Raková", - "Rakovčík", - "Rakovec nad Ondavou", - "Rakovice", - "Rakovnica", - "Rakovo", - "Rakša", - "Rakúsy", - "Rakytník", - "Rankovce", - "Rapovce", - "Raslavice", - "Rastislavice", - "Rašice", - "Ratka", - "Ratková", - "Ratkovce", - "Ratkovo", - "Ratkovská Lehota", - "Ratkovská Suchá", - "Ratkovské Bystré", - "Ratnovce", - "Ratvaj", - "Ráztočno", - "Ráztoka", - "Ražňany", - "Reca", - "Regetovka", - "Rejdová", - "Reľov", - "Remeniny", - "Remetské Hámre", - "Renčišov", - "Repejov", - "Repište", - "Rešica", - "Rešov", - "Revúca", - "Revúcka Lehota", - "Riečka", - "Riečka", - "Richnava", - "Richvald", - "Rimavská Baňa", - "Rimavská Seč", - "Rimavská Sobota", - "Rimavské Brezovo", - "Rimavské Janovce", - "Rimavské Zalužany", - "Rohov", - "Rohovce", - "Rohožník", - "Rohožník", - "Rochovce", - "Rokycany", - "Rokytov", - "Rokytov pri Humennom", - "Rokytovce", - "Rosina", - "Roškovce", - "Roštár", - "Rovensko", - "Rovinka", - "Rovné", - "Rovné", - "Rovné", - "Rovňany", - "Rozhanovce", - "Rozložná", - "Roztoky", - "Rožkovany", - "Rožňava", - "Rožňavské Bystré", - "Rúbaň", - "Rudina", - "Rudinka", - "Rudinská", - "Rudlov", - "Rudná", - "Rudnianska Lehota", - "Rudník", - "Rudník", - "Rudno", - "Rudno nad Hronom", - "Rudňany", - "Rumanová", - "Rumince", - "Runina", - "Ruská", - "Ruská Bystrá", - "Ruská Kajňa", - "Ruská Nová Ves", - "Ruská Poruba", - "Ruská Volová", - "Ruská Voľa", - "Ruská Voľa nad Popradom", - "Ruskov", - "Ruskovce", - "Ruskovce", - "Ruský Hrabovec", - "Ruský Potok", - "Ružiná", - "Ružindol", - "Ružomberok", - "Rybany", - "Rybky", - "Rybník", - "Rybník", - "Rykynčice", - "Sabinov", - "Sačurov", - "Sádočné", - "Sady nad Torysou", - "Salka", - "Santovka", - "Sap", - "Sása", - "Sása", - "Sasinkovo", - "Sazdice", - "Sebedín - Bečov", - "Sebedražie", - "Sebechleby", - "Seč", - "Sečianky", - "Sečovce", - "Sečovská Polianka", - "Sedliacka Dubová", - "Sedliská", - "Sedmerovec", - "Sejkov", - "Sekule", - "Selce", - "Selce", - "Selce", - "Selec", - "Selice", - "Seľany", - "Semerovo", - "Senec", - "Seniakovce", - "Senica", - "Senné", - "Senné", - "Senohrad", - "Seňa", - "Sereď", - "Sielnica", - "Sihelné", - "Sihla", - "Sikenica", - "Sikenička", - "Siladice", - "Silica", - "Silická Brezová", - "Silická Jablonica", - "Sirk", - "Sirník", - "Skačany", - "Skalica", - "Skalité", - "Skalka nad Váhom", - "Skároš", - "Skerešovo", - "Sklabiná", - "Sklabinský Podzámok", - "Sklabiňa", - "Sklené", - "Sklené Teplice", - "Skrabské", - "Skýcov", - "Sládkovičovo", - "Slančík", - "Slanec", - "Slanská Huta", - "Slanské Nové Mesto", - "Slaská", - "Slatina", - "Slatina nad Bebravou", - "Slatinka nad Bebravou", - "Slatinské Lazy", - "Slatvina", - "Slavec", - "Slavkovce", - "Slavnica", - "Slavoška", - "Slavošovce", - "Slepčany", - "Sliač", - "Sliepkovce", - "Slizké", - "Slivník", - "Slopná", - "Slovany", - "Slovenská Kajňa", - "Slovenská Ľupča", - "Slovenská Nová Ves", - "Slovenská Ves", - "Slovenská Volová", - "Slovenské Ďarmoty", - "Slovenské Kľačany", - "Slovenské Krivé", - "Slovenské Nové Mesto", - "Slovenské Pravno", - "Slovenský Grob", - "Slovinky", - "Sľažany", - "Smilno", - "Smižany", - "Smolenice", - "Smolinské", - "Smolnícka Huta", - "Smolník", - "Smrdáky", - "Smrečany", - "Snakov", - "Snežnica", - "Snina", - "Socovce", - "Soblahov", - "Soboš", - "Sobotište", - "Sobrance", - "Sokolce", - "Sokolovce", - "Sokoľ", - "Sokoľany", - "Solčany", - "Solčianky", - "Sološnica", - "Soľ", - "Soľnička", - "Soľník", - "Somotor", - "Sopkovce", - "Spišská Belá", - "Spišská Nová Ves", - "Spišská Stará Ves", - "Spišská Teplica", - "Spišské Bystré", - "Spišské Hanušovce", - "Spišské Podhradie", - "Spišské Tomášovce", - "Spišské Vlachy", - "Spišský Hrhov", - "Spišský Hrušov", - "Spišský Štiavnik", - "Spišský Štvrtok", - "Stakčín", - "Stakčínska Roztoka", - "Stanča", - "Stankovany", - "Stankovce", - "Stará Bašta", - "Stará Bystrica", - "Stará Halič", - "Stará Huta", - "Stará Kremnička", - "Stará Lehota", - "Stará Lesná", - "Stará Ľubovňa", - "Stará Myjava", - "Stará Turá", - "Stará Voda", - "Staré", - "Staré Hory", - "Starina", - "Starý Hrádok", - "Starý Tekov", - "Staškov", - "Staškovce", - "Stebnícka Huta", - "Stebník", - "Stožok", - "Stráne pod Tatrami", - "Stránska", - "Stránske", - "Stráňany", - "Stráňavy", - "Stratená", - "Stráža", - "Strážne", - "Strážske", - "Strečno", - "Streda nad Bodrogom", - "Stredné Plachtince", - "Strekov", - "Strelníky", - "Stretava", - "Stretavka", - "Streženice", - "Strihovce", - "Stročín", - "Stropkov", - "Studená", - "Studenec", - "Studienka", - "Stuľany", - "Stupava", - "Stupné", - "Sučany", - "Sudince", - "Súdovce", - "Suchá Dolina", - "Suchá Hora", - "Suchá nad Parnou", - "Sucháň", - "Suché", - "Suché Brezovo", - "Suchohrad", - "Sukov", - "Sulín", - "Súlovce", - "Súľov - Hradná", - "Sušany", - "Sútor", - "Svätá Mária", - "Svätoplukovo", - "Svätuš", - "Svätuše", - "Svätý Anton", - "Svätý Jur", - "Svätý Kríž", - "Svätý Peter", - "Svederník", - "Sverepec", - "Sveržov", - "Svetlice", - "Svidnička", - "Svidník", - "Svinia", - "Svinica", - "Svinice", - "Svinná", - "Svit", - "Svodín", - "Svrbice", - "Svrčinovec", - "Šahy", - "Šajdíkove Humence", - "Šalgovce", - "Šalgočka", - "Šalov", - "Šaľa", - "Šambron", - "Šamorín", - "Šamudovce", - "Šandal", - "Šarbov", - "Šarišská Poruba", - "Šarišská Trstená", - "Šarišské Bohdanovce", - "Šarišské Čierne", - "Šarišské Dravce", - "Šarišské Jastrabie", - "Šarišské Michaľany", - "Šarišské Sokolovce", - "Šarišský Štiavnik", - "Šarkan", - "Šarovce", - "Šašová", - "Šaštín - Stráže", - "Šávoľ", - "Šelpice", - "Šemetkovce", - "Šemša", - "Šenkvice", - "Šiatorská Bukovinka", - "Šiba", - "Šíd", - "Šimonovce", - "Šindliar", - "Šintava", - "Šípkov", - "Šípkové", - "Širákov", - "Širkovce", - "Široké", - "Šišov", - "Šivetice", - "Šmigovec", - "Šoltýska", - "Šoporňa", - "Špačince", - "Špania Dolina", - "Španie Pole", - "Šrobárová", - "Štefanov", - "Štefanov nad Oravou", - "Štefanová", - "Štefanovce", - "Štefanovce", - "Štefanovičová", - "Štefurov", - "Šterusy", - "Štiavnické Bane", - "Štiavnička", - "Štiavnik", - "Štítnik", - "Štós", - "Štôla", - "Štrba", - "Štrkovec", - "Štúrovo", - "Štvrtok", - "Štvrtok na Ostrove", - "Šuľa", - "Šumiac", - "Šuňava", - "Šurany", - "Šurianky", - "Šurice", - "Šúrovce", - "Šútovo", - "Šútovce", - "Švábovce", - "Švedlár", - "Švošov", - "Tachty", - "Tajná", - "Tajov", - "Tarnov", - "Tatranská Javorina", - "Tašuľa", - "Tehla", - "Tekolďany", - "Tekovská Breznica", - "Tekovské Lužany", - "Tekovské Nemce", - "Tekovský Hrádok", - "Telgárt", - "Telince", - "Temeš", - "Teplička", - "Teplička nad Váhom", - "Tepličky", - "Teplý Vrch", - "Terany", - "Terchová", - "Teriakovce", - "Terňa", - "Tesáre", - "Tesárske Mlyňany", - "Tešedíkovo", - "Tibava", - "Tichý Potok", - "Timoradza", - "Tisinec", - "Tisovec", - "Tlmače", - "Točnica", - "Tokajík", - "Tomášikovo", - "Tomášov", - "Tomášovce", - "Tomášovce", - "Topoľa", - "Topoľčany", - "Topoľčianky", - "Topoľnica", - "Topoľníky", - "Topoľovka", - "Toporec", - "Tornaľa", - "Torysa", - "Torysky", - "Tovarné", - "Tovarnianska Polianka", - "Tovarníky", - "Tôň", - "Trakovice", - "Trávnica", - "Trávnik", - "Trebatice", - "Trebejov", - "Trebeľovce", - "Trebichava", - "Trebišov", - "Trebostovo", - "Trebušovce", - "Trenč", - "Trenčianska Teplá", - "Trenčianska Turná", - "Trenčianske Bohuslavice", - "Trenčianske Jastrabie", - "Trenčianske Mitice", - "Trenčianske Stankovce", - "Trenčianske Teplice", - "Trenčín", - "Trhová Hradská", - "Trhovište", - "Trnava", - "Trnavá Hora", - "Trnava pri Laborci", - "Trnávka", - "Trnávka", - "Trnkov", - "Trnovec", - "Trnovec nad Váhom", - "Trnovo", - "Tročany", - "Trpín", - "Trstená", - "Trstená na Ostrove", - "Trstené", - "Trstené pri Hornáde", - "Trstice", - "Trstín", - "Trsťany", - "Tŕnie", - "Tuhár", - "Tuhrina", - "Tuchyňa", - "Tulčík", - "Tupá", - "Turá", - "Turany", - "Turany nad Ondavou", - "Turcovce", - "Turček", - "Turčianky", - "Turčianska Štiavnička", - "Turčianske Jaseno", - "Turčianske Kľačany", - "Turčianske Teplice", - "Turčiansky Ďur", - "Turčiansky Peter", - "Turčok", - "Turecká", - "Tureň", - "Turie", - "Turík", - "Turnianska Nová Ves", - "Turňa nad Bodvou", - "Turová", - "Turzovka", - "Tušice", - "Tušická Nová Ves", - "Tužina", - "Tvarožná", - "Tvrdomestice", - "Tvrdošín", - "Tvrdošovce", - "Ťapešovo", - "Ubľa", - "Úbrež", - "Udavské", - "Udiča", - "Údol", - "Uhliská", - "Úhorná", - "Uhorská Ves", - "Uhorské", - "Uhrovec", - "Uhrovské Podhradie", - "Ulič", - "Uličské Krivé", - "Uloža", - "Úľany nad Žitavou", - "Unín", - "Uňatín", - "Urmince", - "Utekáč", - "Uzovce", - "Uzovská Panica", - "Uzovské Pekľany", - "Uzovský Šalgov", - "Vaďovce", - "Vagrinec", - "Váhovce", - "Vajkovce", - "Valaliky", - "Valaská", - "Valaská Belá", - "Valaská Dubová", - "Valaškovce (vojenský obvod)", - "Valča", - "Valentovce", - "Valice", - "Valkovce", - "Vaľkovňa", - "Vaniškovce", - "Vápeník", - "Varadka", - "Varechovce", - "Varhaňovce", - "Varín", - "Vasiľov", - "Vavrečka", - "Vavrinec", - "Vavrišovo", - "Važec", - "Vechec", - "Velčice", - "Veličná", - "Velušovce", - "Veľaty", - "Veľká Čausa", - "Veľká Čierna", - "Veľká Dolina", - "Veľká Franková", - "Veľká Hradná", - "Veľká Ida", - "Veľká Lesná", - "Veľká Lodina", - "Veľká Lomnica", - "Veľká Mača", - "Veľká Paka", - "Veľká Tŕňa", - "Veľké Bierovce", - "Veľké Blahovo", - "Veľké Borové", - "Veľké Držkovce", - "Veľké Dvorany", - "Veľké Dvorníky", - "Veľké Hoste", - "Veľké Chlievany", - "Veľké Chyndice", - "Veľké Kapušany", - "Veľké Kosihy", - "Veľké Kostoľany", - "Veľké Kozmálovce", - "Veľké Kršteňany", - "Veľké Leváre", - "Veľké Lovce", - "Veľké Ludince", - "Veľké Orvište", - "Veľké Ozorovce", - "Veľké Raškovce", - "Veľké Revištia", - "Veľké Ripňany", - "Veľké Rovné", - "Veľké Slemence", - "Veľké Trakany", - "Veľké Turovce", - "Veľké Uherce", - "Veľké Úľany", - "Veľké Vozokany", - "Veľké Zálužie", - "Veľkrop", - "Veľký Biel", - "Veľký Cetín", - "Veľký Čepčín", - "Veľký Ďur", - "Veľký Folkmar", - "Veľký Grob", - "Veľký Horeš", - "Veľký Kamenec", - "Veľký Klíž", - "Veľký Krtíš", - "Veľký Kýr", - "Veľký Lapáš", - "Veľký Lipník", - "Veľký Meder", - "Veľký Slavkov", - "Veľký Slivník", - "Veľký Šariš", - "Veľopolie", - "Vernár", - "Veselé", - "Veterná Poruba", - "Vieska", - "Vieska", - "Vieska nad Žitavou", - "Vikartovce", - "Vinica", - "Viničky", - "Viničné", - "Vinné", - "Vinodol", - "Vinohrady nad Váhom", - "Vinosady", - "Virt", - "Vislanka", - "Vislava", - "Visolaje", - "Višňov", - "Višňové", - "Višňové", - "Vištuk", - "Vitanová", - "Vítkovce", - "Víťaz", - "Víťazovce", - "Vlača", - "Vladiča", - "Vlachovo", - "Vlachy", - "Vlčany", - "Vlčkovce", - "Vlkas", - "Vlková", - "Vlkovce", - "Vlky", - "Voderady", - "Vojany", - "Vojčice", - "Vojka", - "Vojka nad Dunajom", - "Vojkovce", - "Vojnatina", - "Vojňany", - "Vojtovce", - "Volica", - "Volkovce", - "Voľa", - "Vozokany", - "Vozokany", - "Vráble", - "Vrádište", - "Vrakúň", - "Vranov nad Topľou", - "Vrbnica", - "Vrbov", - "Vrbovce", - "Vrbová nad Váhom", - "Vrbové", - "Vrchteplá", - "Vrícko", - "Vršatské Podhradie", - "Vrútky", - "Vtáčkovce", - "Výborná", - "Výčapy - Opatovce", - "Vydrany", - "Vydrná", - "Vydrník", - "Východná", - "Výrava", - "Vysočany", - "Vysoká", - "Vysoká", - "Vysoká nad Kysucou", - "Vysoká nad Uhom", - "Vysoká pri Morave", - "Vysoké Tatry", - "Vyškovce", - "Vyškovce nad Ipľom", - "Vyšná Boca", - "Vyšná Hutka", - "Vyšná Jablonka", - "Vyšná Jedľová", - "Vyšná Kamenica", - "Vyšná Myšľa", - "Vyšná Olšava", - "Vyšná Pisaná", - "Vyšná Polianka", - "Vyšná Rybnica", - "Vyšná Sitnica", - "Vyšná Slaná", - "Vyšná Šebastová", - "Vyšná Voľa", - "Vyšné Ladičkovce", - "Vyšné nad Hronom", - "Vyšné Nemecké", - "Vyšné Remety", - "Vyšné Repaše", - "Vyšné Ružbachy", - "Vyšný Čaj", - "Vyšný Hrabovec", - "Vyšný Hrušov", - "Vyšný Kazimír", - "Vyšný Klátov", - "Vyšný Komárnik", - "Vyšný Kručov", - "Vyšný Kubín", - "Vyšný Mirošov", - "Vyšný Orlík", - "Vyšný Slavkov", - "Vyšný Tvarožec", - "Vyšný Žipov", - "Zábiedovo", - "Záborie", - "Záborské", - "Zádiel", - "Záhor", - "Záhorie (vojenský obvod)", - "Záhorská Ves", - "Záhradné", - "Zákamenné", - "Zákopčie", - "Zalaba", - "Zálesie", - "Zálesie", - "Zalužice", - "Zamarovce", - "Zámutov", - "Záriečie", - "Záskalie", - "Zatín", - "Závada", - "Závada", - "Závadka", - "Závadka", - "Závadka", - "Zavar", - "Závažná Poruba", - "Závod", - "Zázrivá", - "Zbehňov", - "Zbehy", - "Zboj", - "Zbojné", - "Zborov", - "Zborov nad Bystricou", - "Zbrojníky", - "Zbudská Belá", - "Zbudské Dlhé", - "Zbudza", - "Zbyňov", - "Zeleneč", - "Zemianska Olča", - "Zemianske Kostoľany", - "Zemianske Podhradie", - "Zemianske Sady", - "Zemné", - "Zemplín", - "Zemplínska Nová Ves", - "Zemplínska Široká", - "Zemplínska Teplica", - "Zemplínske Hámre", - "Zemplínske Hradište", - "Zemplínske Jastrabie", - "Zemplínske Kopčany", - "Zemplínsky Branč", - "Zlatá Baňa", - "Zlatá Idka", - "Zlaté", - "Zlaté Klasy", - "Zlaté Moravce", - "Zlatná na Ostrove", - "Zlatník", - "Zlatníky", - "Zlatno", - "Zlatno", - "Zliechov", - "Zohor", - "Zubák", - "Zuberec", - "Zubné", - "Zubrohlava", - "Zvolen", - "Zvončín", - "Žabokreky", - "Žabokreky nad Nitrou", - "Žakarovce", - "Žakovce", - "Žalobín", - "Žarnov", - "Žarnovica", - "Žaškov", - "Žbince", - "Ždaňa", - "Ždiar", - "Žehňa", - "Žehra", - "Železník", - "Želiezovce", - "Želmanovce", - "Žemberovce", - "Žemliare", - "Žiar", - "Žiar", - "Žiar nad Hronom", - "Žihárec", - "Žikava", - "Žilina", - "Žipov", - "Žirany", - "Žitavany", - "Žitavce", - "Žitná - Radiša", - "Žlkovce", - "Župčany", - ) - - streets = ( - "Adámiho", - "Agátová", - "Ahoj", - "Albánska", - "Albrechtova", - "Alejová", - "Alešova", - "Alstrova", - "Alžbetínska", - "Alžbety Gwerkovej", - "Amarelková", - "Ambroseho", - "Ambrova", - "Ambrušova", - "Americká", - "Americké námestie", - "Americké námestie", - "Amurská", - "Andreja Mráza", - "Andreja Plávku", - "Andrusovova", - "Anenská", - "Anenská", - "Anízová", - "Antická", - "Antolská", - "Arménska", - "Astronomická", - "Astrová", - "Avarská", - "Azalková", - "Azovská", - "Babuškova", - "Bagarova", - "Báger", - "Bahniatková", - "Bachova", - "Bajkalská", - "Bajkalská", - "Bajkalská", - "Bajkalská", - "Bajkalská", - "Bajkalská", - "Bajzova", - "Bakošova", - "Balkánska", - "Baltská", - "Bancíkovej", - "Banícka", - "Baničova", - "Baníkova", - "Banskobystrická", - "Banšelova", - "Bardejovská", - "Bárdošova", - "Barónka", - "Bartókova", - "Bartoňova", - "Bartoškova", - "Baštová", - "Batkova", - "Bazalková", - "Bazová", - "Bazovského", - "Bažantia", - "Beblavého", - "Bebravská", - "Beckovská", - "Bedľová", - "Begóniová", - "Belániková", - "Belehradská", - "Belianska", - "Belinského", - "Bellova", - "Belopotockého", - "Beňadická", - "Bencúrova", - "Benediktiho", - "Beniakova", - "Beňovského", - "Bernolákova", - "Beskydská", - "Betliarska", - "Bezekova", - "Bezručova", - "Biela", - "Bielkova", - "Bieloruská", - "Bilíkova", - "Biskupická", - "Björnsonova", - "Blagoevova", - "Blatnická", - "Blatúchová", - "Bleduľová", - "Blumentálska", - "Blyskáčová", - "Bočná", - "Bodliaková", - "Bodrocká", - "Bodvianska", - "Bohrova", - "Bohúňova", - "Bojnická", - "Boragová", - "Borekova", - "Borievková", - "Borinská", - "Borodáčova", - "Borovicová", - "Borská", - "Bosákova", - "Boskovičova", - "Bošániho", - "Botanická", - "Bottova", - "Boženy Němcovej", - "Bôrik", - "Bradáčova", - "Bradlianska", - "Brančská", - "Bratislava-Vinohrady", - "Bratislavská", - "Bratská", - "Brečtanová", - "Brestová", - "Brezová", - "Brezovská", - "Brežná", - "Bridlicová", - "Briežky", - "Brigádnická", - "Brižitská", - "Brnianska", - "Brodná", - "Brodská", - "Brokolicová", - "Bronzová", - "Broskyňová", - "Bršlenová", - "Brumovická", - "Brusnicová", - "Břeclavská", - "Bučinová", - "Budatínska", - "Budatínska", - "Budatínska", - "Búdkova cesta", - "Budovateľská", - "Budyšínska", - "Budyšínska", - "Bujnáková", - "Buková", - "Bukovinská", - "Bukureštská", - "Bulharská", - "Bulíkova", - "Bullova", - "Burgundská", - "Buzalkova", - "Bystrého", - "Bystrická", - "BzovIcka", - "Cabanova", - "Cablkova", - "Cádrova", - "Cesta mládeže", - "Cesta mládeže", - "Cesta na Červený most", - "Cesta na Červený most", - "Cesta na Kamzík", - "Cesta na Klanec", - "Cesta na Senec", - "Cígeľská", - "Cikkerova", - "Cintorínska", - "Cintulova", - "Colnícka", - "Cukrová", - "Cyklámenová", - "Cyprichova", - "Cyprichova", - "Cyrilova", - "Čachtická", - "Čajakova", - "Čajakova", - "Čajkovského", - "Čakanková", - "Čaklovská", - "Čalovská", - "Čapajevova", - "Čapkova", - "Čárskeho", - "Čavojského", - "Čečinová", - "Čelakovského", - "Čerešňová", - "Černicová", - "Černockého", - "Černockého", - "Černyševského", - "Červená", - "Červeňákova", - "Červeňova", - "Česká", - "Československých par", - "Československých tan", - "Čiernohorská", - "Čiernovodská", - "Čierny chodník", - "Čiližská", - "Čipkárska", - "Čmelíkova", - "Čmeľovec", - "Čremchová", - "Čučoriedková", - "Čulenova", - "Daliborovo námestie", - "Damborského", - "Dankovského", - "Dargovská", - "Ďatelinová", - "Daxnerovo námestie", - "Delená", - "Delená cesta", - "Demänovská", - "Desiata", - "Detvianska", - "Devätinová", - "Deviata", - "Devínska cesta", - "Devínska cesta - kam", - "Devínske jazero", - "Dlhá", - "Dlhé diely I.", - "Dlhé diely II.", - "Dlhé diely III.", - "Dneperská", - "Dobrovičova", - "Dobrovičova", - "Dobrovského", - "Dobšinského", - "Dohnalova", - "Dohnányho", - "Doležalova", - "Dolná", - "Dolné Koruny", - "Dolnokorunská", - "Dolnozemská cesta", - "Domašská", - "Domkárska", - "Domové role", - "Donnerova", - "Donovalova", - "Donská", - "Dopravná", - "Dorastenecká", - "Dostojevského rad", - "Dr. Vladimíra Clemen", - "Dražická", - "Drevená", - "Drieňová", - "Drieňová", - "Drieňová", - "Drobného", - "Drotárska cesta", - "Drotárska cesta", - "Drotárska cesta", - "Druhá", - "Druidská", - "Družicová", - "Družobná", - "Družstevná", - "Dubnická", - "Dubová", - "Dúbravčická", - "Dúbravská cesta", - "Dudova", - "Dudvážska", - "Dulovo námestie", - "Dulovo námestie", - "Ďumbierska", - "Dunajská", - "Ďurgalova", - "Dvanásta", - "Dvojkrížna", - "Dvojkrížna", - "Dvořákovo nábrežie", - "Edisonova", - "Egrešová", - "Einsteinova", - "Eisnerova", - "Elektrárenská", - "Estónska", - "Estónska", - "Exnárova", - "F. Kostku", - "Fadruszova", - "Fajnorovo nábrežie", - "Fándlyho", - "Farebná", - "Farská", - "Farského", - "Fazuľová", - "Fedákova", - "Fedinova", - "Ferienčíkova", - "Fialkové údolie", - "Fibichova", - "Fikusová", - "Filiálne nádražie", - "Fláviovská", - "Flöglova", - "Floriánske námestie", - "Fraňa Kráľa", - "Francisciho", - "Francúzskych partizá", - "Frankovská", - "Františkánska", - "Františkánske námest", - "Františka Schmuckera", - "Furdekova", - "Furdekova", - "Furmanská", - "Furmintská", - "Gabčíkova", - "Gagarinova", - "Gagarinova", - "Gagarinova", - "Gajarská", - "Gajc", - "Gajova", - "Galaktická", - "Galandova", - "Galbavého", - "Gallayova", - "Gallova", - "Galvaniho", - "Gašparíkova", - "Gaštanová", - "Gavlovičova", - "Gbelská", - "Gelnická", - "Gemerská", - "Geologická", - "Georgínová", - "Gercenova", - "Gerulatská", - "Gessayova", - "Gettingová", - "Glavica", - "Godrova", - "Gogoľova", - "Goláňova", - "Gondova", - "Goralská", - "Gorazdova", - "Gorkého", - "Gregorovej", - "Gronárska", - "Grösslingova", - "Gruzínska", - "Gunduličova", - "Guothova", - "Gusevova", - "Haanova", - "Haburská", - "Hadia cesta", - "Hadriánová", - "Hagarova", - "Hagarova", - "Hájová", - "Halašova", - "Hálkova", - "Hálova", - "Hamuliakova", - "Hanácka", - "Handlovská", - "Hanulova", - "Hanulova", - "Hany Meličkovej", - "Hargašova", - "Harmanecká", - "Harmincova", - "Hasičská", - "Hattalova", - "Havelkova", - "Havlíčkova", - "Havrania", - "Haydnova", - "Hečkova", - "Herlianska", - "Herlianska", - "Heydukova", - "Heyrovského", - "Hlaváčikova", - "Hlavatého", - "Hlavná", - "Hlavné námestie", - "Hlbinná", - "Hlboká cesta", - "Hlboká cesta", - "Hlinická", - "Hlinická", - "Hlivová", - "Hlohová", - "Hlučínska", - "Hnilecká", - "Hodálova", - "Hodonínska", - "Hodonínska", - "Hodonínska", - "Hodžovo námestie", - "Holekova", - "Holíčska", - "Hollého", - "Holubyho", - "Homolova", - "Hontianska", - "Horárska", - "Horcová", - "Horčičná", - "Horná", - "Horná Vančurová", - "Hornádska", - "Horné Židiny", - "Horská", - "Horská", - "Horská", - "Hospodárska", - "Hrabový chodník", - "Hrad", - "Hradištná", - "Hradná", - "Hradné údolie", - "Hradská", - "Hrachová", - "Hraničiarska", - "Hraničná", - "Hraničný priechod-Ču", - "Hrdličkova", - "Hrebendova", - "Hríbová", - "Hriňovská", - "Hrobákova", - "Hrobárska", - "Hroboňova", - "Hronska", - "Hroznová", - "Hrušková", - "Hrušovská", - "Hubeného", - "Hubeného", - "Hudecova", - "Humenské námestie", - "Hummelova", - "Hurbanovo námestie", - "Hurbanovo námestie", - "Husova", - "Húščavova", - "Hutnícka", - "Hviezdna", - "Hviezdicová", - "Hviezdoslavova", - "Hviezdoslavovo námes", - "Hyacintová", - "Hybešova", - "Hydinárska", - "Hýrošova", - "Chalupkova", - "Charkovská", - "Chemická", - "Chladná", - "Chlumeckého", - "Chmeľová", - "Chorvátska", - "Chorvátska", - "Chotárna", - "Chrasťová", - "Chrenová", - "Chrobákova", - "Ihličnatá", - "Ihrisková", - "Iľjušinova", - "Ilkovičova", - "Ílová", - "Ilýrska", - "Imelová", - "Inovecká", - "Inovecká", - "Ipeľská", - "Irisová", - "Irkutská", - "Iršajská", - "Iskerníková", - "Istrijská", - "Ivana Blazeviča", - "Ivana Bukovčana", - "Ivana Horvátha", - "Ivánska cesta", - "J.C.Hronského", - "Jabloňová", - "Jačmenná", - "Jadranská", - "Jadrová", - "Jahodová", - "Jakabova", - "Jakubíkova", - "Jakubovo námestie", - "Jakubská", - "Jalovcová", - "Jamnického", - "Jána Jonáša", - "Jána Poničana", - "Jána Raka", - "Jána Smreka", - "Jána Stanislava", - "Janáčkova", - "Jančova", - "Janíkove role", - "Janka Kráľa", - "Jankolova", - "Jánošíkova", - "Jánoškova", - "Janotova", - "Janšákova", - "Jantárová", - "Jantárová", - "Jantárová cesta", - "Jarabinková", - "Jarná", - "Jaroslavova", - "Jarošova", - "Jasencová", - "Jaseňová", - "Jaskový rad", - "Jasná", - "Jasovská", - "Jastrabia", - "Jašíkova", - "Javorinská", - "Javorová", - "Jazdecká", - "Jazerná", - "Jazmínová", - "Jedenásta", - "Jedlíkova", - "Jedľová", - "Jégého", - "Jegeneš", - "Jelačičova", - "Jelenia", - "Jelšová", - "Jeséniova", - "Jesenná", - "Jesenského", - "Jesienková", - "Jiráskova", - "Jiskrova", - "Jókaiho", - "Jozefa Mikisitsa", - "Jozefa Vachovského", - "Jozefská", - "Júlová", - "Junácka", - "Jungmannova", - "Júnová", - "Jurigovo námestie", - "Jurkovičova", - "Jurovského", - "Jurská", - "Justičná", - "K horárskej studni", - "K lomu", - "K pasienkom", - "K Železnej studienke", - "Kadnárova", - "Kadnárova", - "Kadnárova", - "Kadnárova", - "Kadnárova", - "Kafendova", - "Kalinčiakova", - "Kalinová", - "Kalištná", - "Kaméliová", - "Kamenárska", - "Kamenné námestie", - "Kamilková", - "Kamilková", - "Kamzík", - "Kapicova", - "Kapitulská", - "Kapitulský dvor", - "Kaplinská", - "Kapucínska", - "Kapušianska", - "Karadžičova", - "Karadžičova", - "Karadžičova", - "Karadžičova", - "Karloveská", - "Karloveské rameno", - "Karpatská", - "Karpatské námestie", - "Kašmírska", - "Kaštielska", - "Kataríny Brúderovej", - "Kaukazská", - "Kazanská", - "Kazanská", - "Kazanská", - "Keltská", - "Kempelenova", - "Ketelec", - "Kežmarské námestie", - "Kladnianska", - "Klariská", - "Klásková", - "Kláštorská", - "Klatovská", - "Klatovská", - "Klemensova", - "Klenová", - "Klimkovičova", - "Klincová", - "Klobučnícka", - "Klokočova", - "Kľukatá", - "Kĺzavá", - "Kmeťovo námestie", - "Knižková dolina", - "Koceľova", - "Kočánkova", - "Kohútova", - "Koľajná", - "Kolárska", - "Kolískova", - "Kollárova", - "Kollárovo námestie", - "Kollárovo námestie", - "Kolmá", - "Komárňanská", - "Komárnická", - "Komárnická", - "Komárovská", - "Komenského námestie", - "Kominárska", - "Komonicová", - "Koncová", - "Koniarkova", - "Konopná", - "Konvalinková", - "Konventná", - "Kopanice", - "Kopčianska", - "Koperníkova", - "Koprivnická", - "Koprivnická", - "Koprivnická", - "Korabinského", - "Kórejská", - "Koreničova", - "Koreňová", - "Korunská", - "Korytnická", - "Kosatcová", - "Kosodrevinová", - "Kostlivého", - "Kostolná", - "Košická", - "Košická", - "Košická", - "Kovácsova", - "Kováčska", - "Kovorobotnícka", - "Kovová", - "Kozia", - "Koziarka", - "Kozičova", - "Kozmonautická", - "Kožušnícka", - "Kôprová", - "Kôstková", - "Krahulčia", - "Krajinská", - "Krajinská cesta", - "Krajná", - "Krakovská", - "Kráľovské údolie", - "Krasinského", - "Kraskova", - "Krásna", - "Krásnohorská", - "Krasovského", - "Kratiny", - "Krátka", - "Krčméryho", - "Kremeľská", - "Kremencová", - "Kremnická", - "Kresánkova", - "Kríková", - "Krivá", - "Križkova", - "Krížna", - "Krížna", - "Krížna", - "Krížna", - "Krmanova", - "Krokusová", - "Krompašská", - "Krupinská", - "Kubačova", - "Kubániho", - "Kubínska", - "Kudlákova", - "Kuklovská", - "Kúkoľová", - "Kukučínova", - "Kukuričná", - "Kulíškova", - "Kultúrna", - "Kuneradská", - "Kupeckého", - "Kúpeľná", - "Kurucova", - "Kutlíkova", - "Kútska", - "Kutuzovova", - "Kuzmányho", - "Kvačalova", - "Kvetinárska", - "Kvetná", - "Kýčerského", - "Kyjevská", - "Kysucká", - "Laborecká", - "Lackova", - "Ladislava Batthyányh", - "Ladislava Dérera", - "Ladislava Sáru", - "Ľadová", - "Ladzianskeho", - "Lachova", - "Ľaliová", - "Lamačská cesta", - "Lamačská cesta", - "Lamačská cesta", - "Lamanského", - "Landauova", - "Landererova", - "Langsfeldova", - "Ľanová", - "Laskomerského", - "Laténská", - "Latorická", - "Laučekova", - "Laurinská", - "Lazaretská", - "Lazaretská", - "Leánska", - "Lediny", - "Legerského", - "Legionárska", - "Legionárska", - "Lehotského", - "Lehotského", - "Leknová", - "Lenardova", - "Lermontovova", - "Lesná", - "Lesnícka", - "Leškova", - "Letecká", - "Letisko M.R.Štefánik", - "Letná", - "Levanduľová", - "Levárska", - "Levická", - "Levočská", - "Lidická", - "Lieskovec", - "Lieskovcová", - "Lieskovská cesta", - "Lietavská", - "Lichardova", - "Likavská", - "Limbová", - "Linzbothova", - "Lipnicová", - "Lipová", - "Lipského", - "Liptovská", - "Lisovňa", - "Listová", - "Líščie nivy", - "Líščie údolie", - "Litovská", - "Lodná", - "Lombardiniho", - "Lomnická", - "Lomonosovova", - "Longobardská", - "Lónyaiová", - "Lopenícka", - "Lotyšská", - "Lovinského", - "Lozornianská", - "Ľubietovská", - "Ľubinská", - "Ľubľanská", - "Ľubochnianska", - "Ľubovnianska", - "Ľubovníková", - "Ľudové námestie", - "Ľudovíta Fullu", - "Luhačovická", - "Lužická", - "Lúčna", - "Lužná", - "Lýcejná", - "Lykovcová", - "Lysákova", - "M. Hella", - "Madáchova", - "Maďarská", - "Magnetová", - "Magnezitová", - "Magnóliová", - "Magurská", - "Macharova", - "Máchova", - "Majakovského", - "Majerníkova", - "Majerská", - "Májkova", - "Majoránová", - "Májová", - "Maková", - "Makovického", - "Malá", - "Malagová", - "Malé pálenisko", - "Malinová", - "Malodunajská", - "Malokarpatské námest", - "Malý Draždiak", - "Malý trh", - "Mamateyova", - "Mamateyova", - "Mandľová", - "Mandľovníková", - "Mánesovo námestie", - "Margarétková", - "Marhuľová", - "Mariánska", - "Marie Curie-Sklodows", - "Márie Medveďovej", - "Markova", - "Marótyho", - "Martákovej", - "Martinčekova", - "Martinčekova", - "Martinengova", - "Martinská", - "Mateja Bela", - "Matejkova", - "Matičná", - "Mätová", - "Matúškova", - "Matúšova", - "Mečíkova", - "Medená", - "Medová", - "Medovková", - "Medzierka", - "Medzilaborecká", - "Mesačná", - "Mestská", - "Meteorová", - "Metodova", - "Mickiewiczova", - "Mierová", - "Michalská", - "Mikovíniho", - "Mikulášska", - "Milana Marečka", - "Milana Pišúta", - "Miletičova", - "Miletičova", - "Mišíkova", - "Mišíkova", - "Mišíkova", - "Mládežnícka", - "Mliekárenská", - "Mlynarovičova", - "Mlynská", - "Mlynská dolina", - "Mlynská dolina", - "Mlynská dolina", - "Mlynské luhy", - "Mlynské nivy", - "Mlynské nivy", - "Mlynské nivy", - "Mlynské nivy", - "Mlynské nivy", - "Modranská", - "Modricová", - "Modrý chodník", - "Mojmírova", - "Mokráň záhon", - "Mokrohájska cesta", - "Moldavská", - "Molecova", - "Monardová", - "Morava", - "Moravská", - "Morušova", - "Moskovská", - "Most SNP", - "Mostná", - "Mostová", - "Mošovského", - "Motýlia", - "Moyšova", - "Moyzesova", - "Mozartova", - "Mramorová", - "Mraziarenská", - "Mrázova", - "Mudrochova", - "Mudroňova", - "Mudroňova", - "Mudroňova", - "Muchovo námestie", - "Muránska", - "Murgašova", - "Murnice", - "Muškátová", - "Muštová", - "Múzejná", - "Myjavská", - "Mýtna", - "Mýtna", - "Na Baránku", - "Na barine", - "Na Brezinách", - "Na doline", - "Na grbe", - "Na Grunte", - "Na Holom vrchu", - "Na hrádzi", - "Na Hrebienku", - "Na hriadkach", - "Na Kalvárii", - "Na kaštieli", - "Na kopci", - "Na križovatkách", - "Na lánoch", - "Na medzi", - "Na mýte", - "Na pántoch", - "Na pasekách", - "Na paši", - "Na pažiti", - "Na piesku", - "Na Revíne", - "Na Riviére", - "Na rozhliadke", - "Na Sitine", - "Na skale", - "Na Slanci", - "Na Slavíne", - "Na spojke", - "Na stráni", - "Na Štyridsiatku", - "Na úvrati", - "Na varte", - "Na Vlkovkách", - "Na vrátkach", - "Na vŕšku", - "Na vyhliadke", - "Na výslní", - "Na Zlatej nohe", - "Nábělkova", - "Nábrežie arm. gen. L", - "Nábrežná", - "Nad Dunajom", - "Nad Gronárom", - "Nad jazierkom", - "Nad kúriou", - "Nad lomom", - "Nad lúčkami", - "Nad lúčkami", - "Nad ostrovom", - "Nad Sihoťou", - "Nákovná", - "Nákupná", - "Námestie 1. mája", - "Námestie 6. apríla", - "Námestie Alexandra D", - "Námestie Andreja Hli", - "Námestie Biely kríž", - "Námestie Hraničiarov", - "Námestie Jána Kostru", - "Námestie Jána Pavla", - "Námestie Ľudovíta Št", - "Námestie Martina Ben", - "Námestie Rodiny", - "Námestie slobody", - "Námestie slobody", - "Námestie SNP", - "Námestie SNP", - "Námestie sv. Františ", - "Námestie sv. Petra a", - "Narcisová", - "Nedbalova", - "Nechtíková", - "Nejedlého", - "Nekrasovova", - "Nemčíkova", - "Nerudova", - "Nevädzová", - "Nevská", - "Nezábudková", - "Nezvalova", - "Niťová", - "Nitrianska", - "Nížinná", - "Nobelova", - "Nobelovo námestie", - "Nová", - "Nová Bellova", - "Nová hora", - "Novackého", - "Nové pálenisko", - "Nové záhrady I", - "Nové záhrady II", - "Nové záhrady III", - "Nové záhrady IV", - "Nové záhrady V", - "Nové záhrady VI", - "Nové záhrady VII", - "Novinárska", - "Novobanská", - "Novodvorská", - "Novohorská", - "Novohradská", - "Novosadná", - "Novosvetská", - "Novosvetská", - "Novosvetská", - "Novoveská", - "Nový záhon", - "Obežná", - "Obchodná", - "Oblačná", - "Oblúková", - "Očovská", - "Odbojárov", - "Odborárska", - "Odborárske námestie", - "Odborárske námestie", - "Odeská", - "Ohnicová", - "Okánikova", - "Okružná", - "Olbrachtova", - "Oleandrová", - "Olejkárska", - "Olivová", - "Olšová", - "Ondavská", - "Ondrejovova", - "Ondrejská", - "Opavská", - "Opletalova", - "Oráčska", - "Oravská", - "Orechová", - "Orechová cesta", - "Orechový rad", - "Orenburská", - "Orgovánová", - "Orchideová", - "Oriešková", - "Ormisova", - "Osadná", - "Osiková", - "Oskorušová", - "Osloboditeľská", - "Ostravská", - "Ostredková", - "Ostružinová", - "Osuského", - "Osvetová", - "Otonelská", - "Ovčiarska", - "Ovocná", - "Ovručská", - "Ovsená", - "Ovsištské námestie", - "Ožvoldíkova", - "Ôsma", - "Pajštúnska", - "Palackého", - "Palárikova", - "Palárikova", - "Palinová", - "Palisády", - "Palisády", - "Palisády", - "Palkovičova", - "Palmová", - "Panenská", - "Pankúchova", - "Panónska cesta", - "Panská", - "Papánkovo námestie", - "Papraďová", - "Parcelná", - "Páričkova", - "Parková", - "Partizánska", - "Pasienková", - "Pasienky", - "Pastierska", - "Paulínyho", - "Pave Vukoviča", - "Pavla Blaha", - "Pavla Horova", - "Pavlovičova", - "Pavlovova", - "Pavlovská", - "Pažického", - "Pažítková", - "Pečnianska", - "Pekná cesta", - "Pekná cesta", - "Pekná cesta", - "Pekná vyhliadka", - "Pekníkova", - "Pernecká", - "Perličková", - "Pestovateľská", - "Petara Pasicha", - "Peterská", - "Petöfiho", - "Petržalská", - "Petúniová", - "Pezinská", - "Piata", - "Pieskovcová", - "Piesočná", - "Piešťanská", - "Pifflova", - "Pilárikova", - "Pílová", - "Píniová", - "Pionierska", - "Pionierska", - "Pivoňková", - "Plachého", - "Plachého", - "Planckova", - "Planét", - "Plánky", - "Platanová", - "Plátenícka", - "Plavecká", - "Plickova", - "Pluhová", - "Plynárenská", - "Plzenská", - "Pobrežná", - "Pod agátmi", - "Pod Bôrikom", - "Pod brehmi", - "Pod gaštanmi", - "Pod Kalváriou", - "Pod Klepáčom", - "Pod Kobylou", - "Pod Krásnou hôrkou", - "Pod lesom", - "Pod lipami", - "Pod Lipovým", - "Pod násypom", - "Pod Rovnicami", - "Pod skalou", - "Pod srdcom", - "Pod Strážami", - "Pod Vachmajstrom", - "Pod Válkom", - "Pod vinicami", - "Pod záhradami", - "Pod záhradami", - "Pod Zečákom", - "Podbeľová", - "Podbrezovská", - "Podháj", - "Podhorská", - "Podhorského", - "Podjavorinskej", - "Podkarpatská", - "Podkerepušky", - "Podkolibská", - "Podkorunská", - "Podlesná", - "Podlučinského", - "Podniková", - "Podpriehradná", - "Podtatranského", - "Podunajská", - "Podunajská", - "Podzáhradná", - "Pohánková", - "Pohraničníkov", - "Pohronská", - "Polárna", - "Polianky", - "Poľná", - "Poľnohospodárska", - "Poľný mlyn", - "Poloreckého", - "Poľská", - "Poludníková", - "Poniklecová", - "Popolná", - "Popovova", - "Popradská", - "Porubského", - "Poštová", - "Potočná", - "Považanova", - "Považská", - "Povoznícka", - "Povraznícka", - "Povraznícka", - "Požiarnická", - "Pračanská", - "Prasličková", - "Pražská", - "Pražská", - "Predstaničné námesti", - "Prepoštská", - "Prešernova", - "Prešovská", - "Prešovská", - "Prešovská", - "Pri Bielom kríži", - "Pri dvore", - "Pri Dynamitke", - "Pri Habánskom mlyne", - "Pri hradnej studni", - "Pri hrádzi", - "Pri kolíske", - "Pri kríži", - "Pri mlyne", - "Pri Rochu", - "Pri seči", - "Pri Starej Prachárni", - "Pri Starom háji", - "Pri starom letisku", - "Pri Starom Mýte", - "Pri strelnici", - "Pri Struhe", - "Pri Suchom mlyne", - "Pri Šajbách", - "Pri tehelni", - "Pri trati", - "Pri vinohradoch", - "Pri zvonici", - "Priama cesta", - "Pribylinská", - "Pribinova", - "Pribinova", - "Pribinova", - "Pribišova", - "Prídanky", - "Prídavková", - "Priečna", - "Priehradná", - "Priekopnícka", - "Priekopy", - "Priemyselná", - "Priemyselná", - "Prievozská", - "Prievozská", - "Prievozská", - "Príjazdná", - "Príkopova", - "Primaciálne námestie", - "Prímoravská", - "Prípojná", - "Prístav", - "Prístavná", - "Prokofievova", - "Prokopa Veľkého", - "Prokopova", - "Prúdová", - "Prvá", - "Prvosienková", - "Pšeničná", - "Púchovská", - "Púpavová", - "Pustá", - "Puškinova", - "Pútnická", - "Pyrenejská", - "Rácova", - "Račianska", - "Račianska", - "Račianska", - "Račianska", - "Račianska", - "Račianska", - "Račianske mýto", - "Radarová", - "Rádiová", - "Radlinského", - "Radničná", - "Radničné námestie", - "Radvanská", - "Rajčianska", - "Rajecká", - "Rajská", - "Rajtákova", - "Raketová", - "Rákosová", - "Rascová", - "Rascová", - "Rastislavova", - "Rastlinná", - "Rašelinová", - "Ráztočná", - "Rázusovo nábrežie", - "Ražná", - "Rebarborová", - "Regrútska", - "Remeselnícka", - "Repašského", - "Repíková", - "Repná", - "Rešetkova", - "Revolučná", - "Révová", - "Revúcka", - "Rezedová", - "Riazanská", - "Riazanská", - "Ribayová", - "Ríbezľová", - "Riečna", - "Rigeleho", - "Rímska", - "Rízlingová", - "Riznerova", - "Robotnícka", - "Roľnícka", - "Romanova", - "Röntgenova", - "Rosná", - "Rostovská", - "Rošického", - "Rovná", - "Rovniankova", - "Rovníková", - "Royova", - "Rozálska", - "Rozmarínová", - "Rozvodná", - "Rožňavská", - "Rožňavská", - "Rožňavská", - "Rubínová", - "Rubinsteinova", - "Rudnayovo námestie", - "Rudnícka", - "Rulandská", - "Rumančeková", - "Rumunská", - "Rusovce", - "Rusovská cesta", - "Rustaveliho", - "Ružičková", - "Ružinovská", - "Ružinovská", - "Ružinovská", - "Ružomberská", - "Ružová dolina", - "Ružová dolina", - "Rybárska brána", - "Rybné námestie", - "Rybničná", - "Rybničná", - "Rybničná", - "Rýdziková", - "Rytierska", - "Sabinovská", - "Sabinovská", - "Sad Janka Kráľa", - "Sadmelijská", - "Sadová", - "Samova", - "Saratovská", - "Sartorisova", - "Sasanková", - "Sasinkova", - "Savignonská", - "Seberíniho", - "Sečovská", - "Sedlárska", - "Sedmokrásková", - "Segnáre", - "Segnerova", - "Sekulská", - "Sekurisova", - "Sekýľska", - "Semenárska", - "Semianova", - "Semilonská", - "Senická", - "Senná", - "Septimiova", - "Schengenská", - "Schillerova", - "Schneidera -Trnavské", - "Schody pri starej vo", - "Sibírska", - "Siedma", - "Sienkiewiczova", - "Silvánska", - "Sinokvetná", - "Skalická cesta", - "Skalná", - "Skerličova", - "Sklabinská", - "Sklenárova", - "Sklenárska", - "Skoroceľová", - "Skuteckého", - "Skýcovská", - "Sládkovičova", - "Sladová", - "Slatinská", - "Slávičie údolie", - "Slavín", - "Slepá", - "Sliačska", - "Sliezska", - "Slivková", - "Sĺňavská", - "Slnečná", - "Slnečnicová", - "Slovanské nábrežie", - "Slovienska", - "Slovinec", - "Slovinská", - "Slovnaftská", - "Slovnaftská", - "Slowackého", - "Smetanova", - "Smikova", - "Smolenická", - "Smolnícka", - "Smrečianska", - "Smrečianska", - "Snežienková", - "Soferove schody", - "Socháňova", - "Sochorova", - "Sokolíkova", - "Sokolská", - "Solivarská", - "Sološnická", - "Somolického", - "Somolického", - "Sosnová", - "Sovia", - "Spádová", - "Spätná cesta", - "Spišská", - "Spojná", - "Spoločenská", - "Sputniková", - "Sreznevského", - "Srnčia", - "Stachanovská", - "Stálicová", - "Stanekova", - "Staničná", - "Stará Černicová", - "Stará Ivánska cesta", - "Stará Klenová", - "Stará Prievozská", - "Stará Stupavská", - "Stará Vajnorská", - "Stará vinárska", - "Staré Grunty", - "Staré ihrisko", - "Staré záhrady", - "Starhradská", - "Starohájska", - "Staromestská", - "Staromlynská", - "Starorímska", - "Staroturský chodník", - "Stavbárska", - "Staviteľská", - "Stepná cesta", - "Stodolova", - "Stoklasová", - "Stolárska", - "Strakova", - "Stratená", - "Strážna", - "Strážnická", - "Strážny dom", - "Strečnianska", - "Stredná", - "Strelecká", - "Strelkova", - "Strmá cesta", - "Strmé sady", - "Strmý bok", - "Strmý vŕšok", - "Strojnícka", - "Stromová", - "Stropkovská", - "Struková", - "Studená", - "Studenohorská", - "Stuhová", - "Stupavská", - "Súbežná", - "Sudová", - "Súhvezdná", - "Suchá", - "Suché mýto", - "Suchohradská", - "Súkennícka", - "Súľovská", - "Sumbalova", - "Súmračná", - "Súťažná", - "Svätého Vincenta", - "Svätoplukova", - "Svätoplukova", - "Svätovojtešská", - "Svébska", - "Svetlá", - "Svíbová", - "Svidnícka", - "Svoradova", - "Svrčia", - "Syslia", - "Šafárikovo námestie", - "Šafárikovo námestie", - "Šafránová", - "Šagátova", - "Šachorová", - "Šalátová", - "Šaldova", - "Šalviová", - "Šamorínska", - "Šancová", - "Šancová", - "Šancová", - "Šancová", - "Šándorova", - "Šarišská", - "Šášovská", - "Šaštínska", - "Ševčenkova", - "Šiesta", - "Šikmá", - "Šinkovské", - "Šintavská", - "Šípková", - "Šípová", - "Šíravská", - "Široká", - "Škarniclova", - "Školská", - "Škovránčia", - "Škultétyho", - "Šoltésovej", - "Šošovicová", - "Špieszova", - "Špitálska", - "Športová", - "Šrobárovo námestie", - "Šťastná", - "Štedrá", - "Štefana Králika", - "Štefana Králika", - "Štefana Majera", - "Štefánikova", - "Štefánikova", - "Štefánikova", - "Štefanovičova", - "Štefunkova", - "Štepná", - "Štetinova", - "Štiavnická", - "Štítová", - "Štrbská", - "Štúrova", - "Štvrtá", - "Štyndlova", - "Šulekova", - "Šulekova", - "Šulekova", - "Šumavská", - "Šuňavcova", - "Šúrska", - "Šustekova", - "Šuty", - "Švabinského", - "Švantnerova", - "Tabaková", - "Tablicova", - "Táborská", - "Tajovského", - "Talichova", - "Tallerova", - "Tatranská", - "Tavaríkova osada", - "Tbiliská", - "Tehelná", - "Tehelňa", - "Tehliarska", - "Technická", - "Tekovská", - "Tekvicová", - "Telocvičná", - "Tematínska", - "Teplická", - "Terchovská", - "Teslova", - "Tešedíkova", - "Tetmayerova", - "Thurzova", - "Tibenského", - "Tibériová", - "Tichá", - "Tilgnerova", - "Timravina", - "Tobrucká", - "Tokajícka", - "Tolstého", - "Tománkova", - "Tomanova", - "Tomášikova", - "Tomášikova", - "Tomášikova", - "Tomášikova", - "Tomášikova", - "Toplianska", - "Topoľčianska", - "Topoľová", - "Toryská", - "Továrenská", - "Trajánova", - "Tramínová", - "Tranovského", - "Trávna", - "Trebišovská", - "Trebišovská", - "Trebišovská", - "Trenčianska", - "Treskoňova", - "Tretia", - "Trhová", - "Trinásta", - "Trnavská cesta", - "Trnavská cesta", - "Trnavská cesta", - "Trnavská cesta", - "Trnavská cesta", - "Trnavské mýto", - "Trnková", - "Tŕňová", - "Trojdomy", - "Trojičné námestie", - "Trstínska", - "Tučkova", - "Tuhovská", - "Tulipánová", - "Tupého", - "Tupolevova", - "Turbínova", - "Turčianska", - "Turistická", - "Turnianska", - "Tvarožkova", - "Tylova", - "Tymiánová", - "Tyršovo nábrežie", - "Učiteľská", - "Údernícka", - "Údolná", - "Uhliská", - "Uhorková", - "Uhrova", - "Uhrovecká", - "Ukrajinská", - "Ulica 1. mája", - "Ulica 29. augusta", - "Ulica 29. augusta", - "Ulica 29. augusta", - "Ulica 29. augusta", - "Ulica 8. mája", - "Ulica Alviano", - "Ulica Imricha Karvaš", - "Ulica J. Valašťana D", - "Ulica Janka Alexyho", - "Ulica Jozefa Krónera", - "Ulica Juraja Hronca", - "Ulica Karola Adlera", - "Ulica kpt. Rašu", - "Ulica Leopoldov maje", - "Ulica Ľuda Zúbka", - "Ulica Nad Válkom", - "Ulica padlých hrdino", - "Ulica Pri gaštanovej", - "Ulica Pri pastierni", - "Ulica Pri Vápeníckom", - "Ulica Pri vodnej nád", - "Ulica svornosti", - "Ulica Viktora Tegelh", - "Úprkova", - "Úradnícka", - "Uránová", - "Urbánkova", - "Urbárska", - "Ursínyho", - "Uršulínska", - "Ušiakova", - "Úvozná", - "Uzbecká", - "Úzka", - "Úžiny", - "V záhradách", - "Vajanského nábrežie", - "Vajnorská", - "Vajnorská", - "Vajnorská", - "Vajnorská", - "Vajnorská", - "Vajnorská", - "Vajnorská", - "Vajnorská", - "Vajnorská", - "Valachovej", - "Valašská", - "Valchárska", - "Vančurova", - "Vansovej", - "Vápencová", - "Vápenka", - "Vápenná", - "Varínska", - "Varšavská", - "Varšavská", - "Vavilovova", - "Vavrinecká", - "Vavrínova", - "Vazovova", - "Vážska", - "Včelárska", - "Velehradská", - "Veľké Štepnice", - "Veltlínska", - "Vendelínska", - "Ventúrska", - "Veterná", - "Veternicová", - "Vetvárska", - "Vetvová", - "Vidlicová", - "Viedenská cesta", - "Viedenská cesta", - "Viedenská cesta", - "Vietnamská", - "Vígľašská", - "Vihorlatská", - "Viktorínova", - "Vilová", - "Viničná", - "Vínna", - "Vinohradnícka", - "Višňová", - "Víťazná", - "Vlárska", - "Vlastenecké námestie", - "Vlčie hrdlo", - "Vlčkova", - "Vlčkova", - "Vlčkova", - "Vodné elektrárne", - "Vodný vrch", - "Vosková", - "Votrubova", - "Vrábeľská", - "Vrakunská", - "Vrakunská cesta", - "Vrakunská cesta", - "Vrančovičova", - "Vranovská", - "Vrbánska", - "Vrbenského", - "Vŕbová", - "Vresová", - "Vretenová", - "Vrchná", - "Vrútocká", - "Vtáčikova", - "Vtáčnik", - "Vyhliadka", - "Vyhnianska cesta", - "Výhonská", - "Východná", - "Vysoká", - "Vysokohorská", - "Vyšehradská", - "Vyšná", - "Výtvarná", - "Vývojová", - "Wattova", - "Wilsonova", - "Wolkrova", - "Za bránou", - "Za farou", - "Za Kasárňou", - "Za mlynom", - "Za sokolovňou", - "Za Stanicou", - "Za tehelňou", - "Záborského", - "Zadunajská cesta", - "Záhorácka", - "Záhorská", - "Záhradkárska", - "Záhradná", - "Záhradnícka", - "Záhradnícka", - "Záhradnícka", - "Záhradnícka", - "Záhrady", - "Záhrebská", - "Záhrebská", - "Záhumenná", - "Záhumenská", - "Zákutie", - "Zálužická", - "Zámocká", - "Zámocké schody", - "Zámočnícka", - "Západná", - "Západný rad", - "Záporožská", - "Záruby", - "Zátišie", - "Zátureckého", - "Zavadilová", - "Závadská", - "Záveterná", - "Závodná", - "Závodníkova", - "Zbrody", - "Zdravotnícka", - "Zelená", - "Zeleninová", - "Zelenohorská", - "Zelinárska", - "Zhorínska", - "Zidiny", - "Zimná", - "Zlatá", - "Zlaté piesky", - "Zlaté schody", - "Zlatohorská", - "Znievska", - "Zohorská", - "Zochova", - "Zrinského", - "Zvolenská", - "Zvončeková", - "Žabí majer", - "Žabotova", - "Žarnovická", - "Žatevná", - "Žehrianska", - "Železná", - "Železničiarska", - "Železničná", - "Želiarska", - "Žellova", - "Žiacka", - "Žiarska", - "Židovská", - "Žihľavová", - "Žilinská", - "Žilinská", - "Žitavská", - "Žitná", - "Živnostenská", - "Žižkova", - "Žulová", - "Župné námestie", - "Borágova", - "Parenicová", - "Loparová", - "Jegnešská", - "Jonatanová", - "Monardová", - "Perličková", - ) - - states = ( - "Bratislavský kraj", - "Trnavský kraj", - "Trenčiansky kraj", - "Nitriansky kraj", - "Žilinský kraj", - "Banskobystrický kraj", - "Prešovský kraj", - "Košický kraj", - ) - - countries = ( - "Afganistan", - "Afghanistanská islamská republika", - "Ålandy", - "Albánsko", - "Albánska republika", - "Alžírsko", - "Alžírska demokratická ľudová republika", - "Americká Samoa", - "Andorra", - "Andorrské kniežatstvo", - "Angola", - "Angolská republika", - "Anguilla", - "Antarktída", - "Antigua a Barbuda", - "Argentína", - "Argentínska republika", - "Arménsko", - "Arménska republika", - "Aruba", - "Austrália", - "Rakúsko", - "Rakúska republika", - "Azerbajdžan", - "Azerbajdžanská republika", - "Bahamy", - "Bahamské spoločenstvo", - "Bahrajn", - "Bahrajnské kráľovstvo", - "Bangladéš", - "Bangladéšska ľudová republika", - "Barbados", - "Bielorusko", - "Bieloruská republika", - "Belgicko", - "Belgické kráľovstvo", - "Belize", - "Benin", - "Beninská republika", - "Bermudy", - "Bhután", - "Bhutánske kráľovstvo", - "Bolívijská republika", - "Bolívijská republika", - "Bolívia", - "Bosna a Hercegovina", - "Republika Bosny a Hercegoviny", - "Botswana", - "Botswanská republika", - "Bouvetov ostrov", - "Brazília", - "Brazílska federatívna republika", - "Britské indickooceánske územie", - "Brunejsko-darussalamský štát", - "Bulharsko", - "Bulharská republika", - "Burkina Faso", - "Burundi", - "Burundská republika", - "Kambodža", - "Kambodžské kráľovstvo", - "Kamerun", - "Kamerunská republika", - "Kanada", - "Kapverdy", - "Kapverdská republika", - "Kajmanie ostrovy", - "Stredoafrická republika", - "Čad", - "Čadská republika", - "Čile", - "Čilská republika", - "Čína", - "Čínska ľudová republika", - "Vianočný ostrov", - "Kokosové ostrovy", - "Kolumbia", - "Kolumbijská republika", - "Komory", - "Komorský zväz", - "Kongo", - "Konžská republika", - "Konžská demokratická republika", - "Cookove ostrovy", - "Kostarika", - "Kostarická republika", - "Pobrežie Slonoviny", - "Republika Pobrežia Slonoviny", - "Chorvátsko", - "Chorvátska republika", - "Kuba", - "Kubánska republika", - "Cyprus", - "Cyperská republika", - "Česká republika", - "Dánsko", - "Dánske kráľovstvo", - "Džibutsko", - "Džibutská republika", - "Dominika", - "Dominické spoločenstvo", - "Dominikánska republika", - "Ekvádor", - "Ekvádorská republika", - "Egypt", - "Egyptská arabská republika", - "Salvádor", - "Salvádorská republika", - "Rovníková Guinea", - "Republika Rovníkovej Guiney", - "Eritrea", - "Estónsko", - "Estónska republika", - "Etiópia", - "Etiópska federatívna demokratická republika", - "Falklandy (Malvíny)", - "Faerské ostrovy", - "Fidži", - "Fínsko", - "Fínska republika", - "Francúzsko", - "Francúzska republika", - "Francúzska Guyana", - "Francúzska Polynézia", - "Francúzske južné a antarktické územia", - "Gabon", - "Gabonská republika", - "Gambia", - "Gambijská republika", - "Gruzínsko", - "Nemecko", - "Nemecká spolková republika", - "Ghana", - "Ghanská republika", - "Gibraltár", - "Grécko", - "Grécka republika", - "Grónsko", - "Grenada", - "Guadeloupe", - "Guam", - "Guatemala", - "Guatemalská republika", - "Guernsey", - "Guinea", - "Guinejská republika", - "Guinea-Bissau", - "Guinejsko-bissauská republika", - "Guyana", - "Guyanská kooperatívna republika", - "Haiti", - "Haitská republika", - "Heardov ostrov", - "Svätá stolica (Vatikánsky mestský štát)", - "Honduras", - "Honduraská republika", - "Hongkong", - "Osobitná administratívna oblasť Číny Hongkong", - "Maďarsko", - "Maďarská republika", - "Island", - "Islandská republika", - "India", - "Indická republika", - "Indonézia", - "Indonézska republika", - "Iránska islamská republika", - "Iránska islamská republika", - "Irak", - "Iracká republika", - "Írsko", - "Man", - "Izrael", - "Izraelský štát", - "Taliansko", - "Talianska republika", - "Jamajka", - "Japonsko", - "Jersey", - "Jordánsko", - "Jordánske hášimovské kráľovstvo", - "Kazachstan", - "Kazašská republika", - "Keňa", - "Kenská republika", - "Kiribati", - "Kiribatská republika", - "Kórejská ľudovodemokratická republika", - "Kórejská ľudovodemokratická republika", - "Kórejská republika", - "Kuvajt", - "Kuvajtský štát", - "Kirgizsko", - "Kirgizská republika", - "Laoská ľudovodemokratická republika", - "Lotyšsko", - "Lotyšská republika", - "Libanon", - "Libanonská republika", - "Lesotho", - "Lesothské kráľovstvo", - "Libéria", - "Libérijská republika", - "Líbya", - "Lichtenštajnsko", - "Lichtenštajnské kniežatstvo", - "Litva", - "Litovská republika", - "Luxembursko", - "Luxemburské veľkovojvodstvo", - "Macao", - "Osobitná administratívna oblasť Číny Macao", - "Madagaskar", - "Madagaskarská republika", - "Malawi", - "Malawijská republika", - "Malajzia", - "Maldivy", - "Maldivská republika", - "Mali", - "Malijská republika", - "Malta", - "Maltská republika", - "Marshallove ostrovy", - "Republika Marshallových ostrovov", - "Martinik", - "Mauritánia", - "Mauritánska islamská republika", - "Maurícius", - "Maurícijská republika", - "Mayotte", - "Mexiko", - "Spojené štáty mexické", - "Mikronézske federatívne štáty", - "Mikronézske federatívne štáty", - "Moldavská republika", - "Moldavská republika", - "Moldavsko", - "Monako", - "Monacké kniežatstvo", - "Mongolsko", - "Čierna Hora", - "Montserrat", - "Maroko", - "Marocké kráľovstvo", - "Mozambik", - "Mozambická republika", - "Mjanmarsko", - "Namíbia", - "Namíbijská republika", - "Nauru", - "Nauruská republika", - "Nepál", - "Nepálska federatívna demokratická republika", - "Holandsko", - "Holandské kráľovstvo", - "Nová Kaledónia", - "Nový Zéland", - "Nikaragua", - "Nikaragujská republika", - "Niger", - "Nigerská republika", - "Nigéria", - "Nigérijská federatívna republika", - "Niue", - "Norfolk", - "Severné Macedónsko", - "Severné Mariány", - "Severomacedónska republika", - "Spoločenstvo Severných Marián", - "Nórsko", - "Nórske kráľovstvo", - "Omán", - "Ománsky sultanát", - "Pakistan", - "Pakistanská islamská republika", - "Palau", - "Palauská republika", - "palestínske územie, Okupované", - "Okupované palestínske územie", - "Panama", - "Panamská republika", - "Papua - Nová Guinea", - "Paraguaj", - "Paraguajská republika", - "Peru", - "Peruánska republika", - "Filipíny", - "Filipínska republika", - "Pitcairnove ostrovy", - "Poľsko", - "Poľská republika", - "Portugalsko", - "Portugalská republika", - "Portoriko", - "Katar", - "Katarský štát", - "Réunion", - "Rumunsko", - "Ruská federácia", - "Rwanda", - "Rwandská republika", - "Svätý Bartolomej", - "Svätá Helena, Ascension a Tristan da Cunha", - "Svätý Krištof a Nevis", - "Svätá Lucia", - "Saint Martin", - "Saint Pierre a Miquelon", - "Svätý Vincent a Grenadíny", - "Samoa", - "Samojský nezávislý štát", - "San Maríno", - "Sanmarínska republika", - "Svätý Tomáš a Princov ostrov", - "Demokratická republika Svätého Tomáša a Princovho ostrova", - "Saudská Arábia", - "Saudskoarabské kráľovstvo", - "Senegal", - "Senegalská republika", - "Srbsko", - "Srbská republika", - "Seychely", - "Seychelská republika", - "Sierra Leone", - "Sierraleonská republika", - "Singapur", - "Singapurská republika", - "Slovensko", - "Slovenská republika", - "Slovinsko", - "Slovinská republika", - "Šalamúnove ostrovy", - "Somálsko", - "Somálska republika", - "Južná Afrika", - "Juhoafrická republika", - "Južná Georgia a Južné Sandwichove ostrovy", - "Španielsko", - "Španielske kráľovstvo", - "Srí Lanka", - "Srílanská demokratická socialistická republika", - "Sudán", - "Sudánska republika", - "Surinam", - "Surinamská republika", - "Svalbard a Jan Mayen", - "Svazijsko", - "Svazijské kráľovstvo", - "Švédsko", - "Švédske kráľovstvo", - "Švajčiarsko", - "Švajčiarska konfederácia", - "Sýrska arabská republika", - "Taiwan, provincia Číny", - "Taiwan", - "Tadžikistan", - "Tadžická republika", - "Tanzánijská zjednotená republika", - "Tanzánijská zjednotená republika", - "Thajsko", - "Thajské kráľovstvo", - "Východný Timor", - "Východotimorská demokratická republika", - "Togo", - "Togská republika", - "Tokelau", - "Tonga", - "Tongské kráľovstvo", - "Trinidad a Tobago", - "Republika Trinidadu a Tobaga", - "Tunisko", - "Tuniská republika", - "Turecko", - "Turecká republika", - "Turkménsko", - "Ostrovy Turks a Caicos", - "Tuvalu", - "Uganda", - "Ugandská republika", - "Ukrajina", - "Spojené arabské emiráty", - "Spojené kráľovstvo", - "Spojené kráľovstvo Veľkej Británie a Severného Írska", - "Spojené štáty", - "Spojené štáty americké", - "Menšie odľahlé ostrovy Spojených štátov", - "Uruguaj", - "Uruguajská východná republika", - "Uzbekistan", - "Uzbecká republika", - "Vanuatu", - "Vanuatská republika", - "Venezuelská bolívarovská republika", - "Venezuela", - "Vietnam", - "Vietnamská socialistická republika", - "Panenské ostrovy, Britské", - "Britské Panenské ostrovy", - "Panenské ostrovy, Americké", - "Panenské ostrovy Spojených štátov", - "Wallis a Futuna", - "Západná Sahara", - "Jemen", - "Jemenská republika", - "Zambia", - "Zambijská republika", - "Zimbabwe", - "Zimbabwianska republika", - "Britské antarktické územie", - "Socialistická republika Barmský zväz", - "Bieloruská sovietska socialistická republika", - "ostrovy Canton a Enderbury", - "Československo, Československá socialistická republika", - "Dahome", - "Zem kráľovnej Maud", - "Východný Timor", - "Metropolitné Francúzsko", - "Francúzske pobrežie Afarov a Isasov", - "Francúzske južné a antarktické územia", - "Nemecká demokratická republika", - "Nemecká spolková republika", - "Gilbertove a lagúnové ostrovy", - "Johnston", - "Midwajské ostrovy", - "Holandské Antily", - "neutrálne pôdy", - "Nové Hebridy", - "Poručnícke územie tichomorských ostrovov", - "Panamská republika", - "Panamské prieplavové pásmo", - "Rumunská socialistická republika", - "Svätý Krištof", - "Srbsko a Čierna Hora", - "Sikkim", - "Rodézia", - "Španielska Sahara", - "Tichomorské ostrovy pod správou USA", - "ZSSR, Zväz sovietskych socialistických republík", - "Republika Horná Volta", - "Vatikánsky mestský štát (Svätá stolica)", - "Vietnamská demokratická republika", - "Wake", - "Jemenská ľudovodemokratická republika", - "Jemenská arabská republika", - "Socialistická federatívna republika Juhoslávia", - "Zairská republika", - ) - - def street_suffix_short(self) -> str: - return self.random_element(self.street_suffixes_short) - - def street_suffix_long(self) -> str: - return self.random_element(self.street_suffixes_long) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def street_name(self) -> str: - return self.random_element(self.streets) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit - - def city_with_postcode(self) -> str: - return self.postcode() + " " + self.random_element(self.cities) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/sk_SK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/sk_SK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5a16608..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/sk_SK/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/sl_SI/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/sl_SI/__init__.py deleted file mode 100644 index 254b2fb..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/sl_SI/__init__.py +++ /dev/null @@ -1,1601 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{city_name}}",) - - street_name_formats = ("{{street_name}}",) - street_address_formats = ("{{street_name}} {{building_number}}",) - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - building_number_formats = ("###", "##", "#", "#a", "#b", "#c") - - postcode_formats = ("####",) - - cities = ( - "Ajdovščina", - "Bled", - "Bovec", - "Brežice", - "Celje", - "Cerknica", - "Črnomelj", - "Domžale", - "Dravograd", - "Gornja Radgona", - "Gornji Grad", - "Grosuplje", - "Hrastnik", - "Idrija", - "Ilirska Bistrica", - "Izola", - "Jesenice", - "Kamnik", - "Kobarid", - "Kočevje", - "Koper", - "Kostanjevica na Krki", - "Kranj", - "Krško", - "Laško", - "Lenart v Slovenskih goricah", - "Lendava", - "Litija", - "Ljubljana", - "Ljutomer", - "Logatec", - "Maribor", - "Medvode", - "Mengeš", - "Metlika", - "Mežica", - "Murska Sobota", - "Nova Gorica", - "Novo mesto", - "Ormož", - "Piran", - "Postojna", - "Prevalje", - "Ptuj", - "Radeče", - "Radovljica", - "Ravne na Koroškem", - "Ribnica", - "Rogaška Slatina", - "Ruše", - "Sevnica", - "Sežana", - "Slovenj Gradec", - "Slovenska Bistrica", - "Slovenske Konjice", - "Šempeter pri Gorici", - "Šentjur", - "Škofja Loka", - "Šoštanj", - "Tolmin", - "Trbovlje", - "Trebnje", - "Tržič", - "Turnišče", - "Velenje", - "Vipava", - "Vipavski Križ", - "Višnja Gora", - "Vrhnika", - "Zagorje ob Savi", - "Žalec", - "Železniki", - "Žiri", - ) - - streets = ( - "Abramova ulica", - "Adamičeva ulica", - "Adamič-Lundrovo nabrežje", - "Ajdovščina", - "Aleševa ulica", - "Alešovčeva ulica", - "Aljaževa ulica", - "Ambrožev trg", - "Ameriška ulica", - "Andrićeva ulica", - "Anžurjeva ulica", - "Apihova ulica", - "Argentinska ulica", - "Arharjeva cesta", - "Arkova ulica", - "Artačeva ulica", - "Aškerčeva cesta", - "Avčinova ulica", - "Avsečeva ulica", - "Avstrijska ulica", - "Avšičeva cesta", - "Ažmanova ulica", - "Babičeva ulica", - "Badjurova ulica", - "Balinarska pot", - "Baragova ulica", - "Barjanska cesta", - "Bavdkova ulica", - "Baznikova ulica", - "Bazoviška ulica", - "Beethovnova ulica", - "Belačeva ulica", - "Beljaška ulica", - "Berčičeva ulica", - "Berčonova pot", - "Berdajsova ulica", - "Bernekerjeva ulica", - "Bernikova ulica", - "Betettova cesta", - "Bezenškova ulica", - "Bežigrad", - "Bičevje", - "Bilečanska ulica", - "Bitenčeva ulica", - "Bizjakova ulica", - "Bizjanova ulica", - "Bizovški štradon", - "Blasnikova ulica", - "Blasov breg", - "Bleiweisova cesta", - "Bobenčkova ulica", - "Bobrova ulica", - "Bognarjeva pot", - "Bohinjčeva ulica", - "Bohoričeva ulica", - "Boletova ulica", - "Bolgarska ulica", - "Borovniška ulica", - "Borštnikov trg", - "Borutova ulica", - "Božičeva ulica", - "Brankova ulica", - "Bratinova ulica", - "Bratislavska cesta", - "Bratov Jakopičev ulica", - "Bratov Kunovarjev ulica", - "Bravničarjeva ulica", - "Brdnikova ulica", - "Breg", - "Bregarjeva ulica", - "Breznikova ulica", - "Brglezov štradon", - "Brilejeva ulica", - "Brodarjev trg", - "Brodska cesta", - "Burnikova ulica", - "Cankarjev vrh", - "Cankarjevo nabrežje", - "Carja Dušana ulica", - "Celarčeva ulica", - "Celjska ulica", - "Celovška cesta", - "Cerkniška ulica", - "Cerutova ulica", - "Cesta Andreja Bitenca", - "Cesta Ceneta Štuparja", - "Cesta Dolomitskega odreda", - "Cesta II. grupe odredov", - "Cesta Ljubljanske brigade", - "Cesta na Bellevue", - "Cesta na Bokalce", - "Cesta na Brinovec", - "Cesta na Brod", - "Cesta na Ježah", - "Cesta na Kope", - "Cesta na Laze", - "Cesta na Loko", - "Cesta na Mesarico", - "Cesta na Ozare", - "Cesta na Poljane", - "Cesta na Prevoje", - "Cesta na Urh", - "Cesta na Vrhovce", - "Cesta slov. kmečkih uporov", - "Cesta Urške Zatlerjeve", - "Cesta v Dvor", - "Cesta v Gameljne", - "Cesta v Hrastje", - "Cesta v hrib", - "Cesta v Kleče", - "Cesta v Kostanj", - "Cesta v Legarico", - "Cesta v Mestni log", - "Cesta v Pečale", - "Cesta v Prod", - "Cesta v Rožno dolino", - "Cesta v Šmartno", - "Cesta v Zeleni log", - "Cesta v Zgornji log", - "Cesta vstaje", - "Cesta 24. junija", - "Cesta 25 talcev", - "Cesta 27. aprila", - "Chengdujska cesta", - "Chopinov prehod", - "Cigaletova ulica", - "Cilenškova ulica", - "Cimermanova ulica", - "Cimpermanova ulica", - "Cizejeva ulica", - "Clevelandska ulica", - "Colnarjeva ulica", - "Cvetlična pot", - "Čampova ulica", - "Čanžekova ulica", - "Čargova ulica", - "Čebelarska ulica", - "Čehova ulica", - "Čepelnikova ulica", - "Čepovanska ulica", - "Čerinova ulica", - "Černigojeva ulica", - "Černivčeva ulica", - "Červanova ulica", - "Čevljarska ulica", - "Čižmanova ulica", - "Čopova ulica", - "Črna pot", - "Črnuška cesta", - "Črtomirova ulica", - "Čučkova ulica", - "Dajnkova ulica", - "Dalmatinova ulica", - "Danile Kumarjeve ulica", - "Dečkova ulica", - "Dečmanova ulica", - "Delakova ulica", - "Demšarjeva cesta", - "Derčeva ulica", - "Dergančeva ulica", - "Dermotova ulica", - "Detelova ulica", - "Devinska ulica", - "Devova ulica", - "Divjakova ulica", - "Do proge", - "Dobrajčeva ulica", - "Dobrdobska ulica", - "Dolenjska cesta", - "Dolgi breg", - "Dolgi most", - "Dolharjeva ulica", - "Dolinarjeva ulica", - "Dolinškova ulica", - "Dolničarjeva ulica", - "Dolomitska ulica", - "Drabosnjakova ulica", - "Draga", - "Draveljska ulica", - "Dražgoška ulica", - "Drenikov vrh", - "Drenikova ulica", - "Dunajska cesta", - "Dvojna ulica", - "Dvorakova ulica", - "Dvorni trg", - "Eipprova ulica", - "Ellerjeva ulica", - "Emonska cesta", - "Erbežnikova ulica", - "Erjavčeva cesta", - "Fabianijeva ulica", - "Fani Grumove ulica", - "Ferberjeva ulica", - "Filipičeva ulica", - "Flajšmanova ulica", - "Flandrova ulica", - "Forsterjeva ulica", - "Franketova ulica", - "Frankopanska ulica", - "Frenkova pot", - "Friškovec", - "Funtkova ulica", - "Fužinska cesta", - "Gabrov trg", - "Gača", - "Galičeva ulica", - "Galjevica", - "Gallusovo nabrežje", - "Gasilska cesta", - "Gasparijeva ulica", - "Gašperšičeva ulica", - "Gerbičeva ulica", - "Gestrinova ulica", - "Glavarjeva ulica", - "Gledališka stolba", - "Glinška ulica", - "Glinškova ploščad", - "Glonarjeva ulica", - "Gmajnice", - "Gobarska pot", - "Godeževa ulica", - "Gola Loka", - "Golarjeva ulica", - "Goljarjeva pot", - "Golouhova ulica", - "Goriška ulica", - "Gorjančeva ulica", - "Gorjupova ulica", - "Gornji Rudnik I", - "Gornji Rudnik II", - "Gornji Rudnik III", - "Gornji trg", - "Goropečnikova ulica", - "Gortanova ulica", - "Gospodinjska ulica", - "Gosposka ulica", - "Gosposvetska cesta", - "Govekarjeva ulica", - "Gozdna pot", - "Grablovičeva ulica", - "Gradišče", - "Gradnikova ulica", - "Grafenauerjeva ulica", - "Grajski drevored", - "Grajzerjeva ulica", - "Gramozna pot", - "Grassellijeva ulica", - "Gregorčičeva ulica", - "Gregorinova ulica", - "Grintovška ulica", - "Grobeljca", - "Grobeljska pot", - "Groharjeva cesta", - "Groznikova ulica", - "Grška ulica", - "Grško", - "Gruberjevo nabrežje", - "Grudnovo nabrežje", - "Gubčeva ulica", - "Gunceljska cesta", - "Gustinčarjeva ulica", - "Gustinčičeva ulica", - "Hacetova ulica", - "Hafnerjeva ulica", - "Hajdrihova ulica", - "Hauptmanca", - "Hladilniška pot", - "Hladnikova cesta", - "Hlebčeva ulica", - "Hotimirova ulica", - "Hradeckega cesta", - "Hranilniška ulica", - "Hribarjevo nabrežje", - "Hribernikova ulica", - "Hribovska pot", - "Hrvaška ulica", - "Hrvatski trg", - "Hubadova ulica", - "Hudourniška pot", - "Idrijska ulica", - "Igriška ulica", - "Ilešičeva ulica", - "Ilovški štradon", - "Industrijska cesta", - "Ingličeva ulica", - "Italijanska ulica", - "Izletniška ulica", - "Ižanska cesta", - "Jakčeva ulica", - "Jakhljeva ulica", - "Jakopičev drevored", - "Jakopičevo sprehajališče", - "Jakšičeva ulica", - "Jalnova ulica", - "Jamova cesta", - "Janežičeva cesta", - "Janova ulica", - "Janševa ulica", - "Jarčeva ulica", - "Jarnikova ulica", - "Jarše", - "Jarška cesta", - "Javorškova ulica", - "Jazbečeva pot", - "Jelinčičeva ulica", - "Jenkova ulica", - "Jensenova ulica", - "Jerajeva ulica", - "Jeranova ulica", - "Jesenkova ulica", - "Jesihov štradon", - "Jezerska ulica", - "Ježa", - "Ježica", - "Joškov štradon", - "Jurčičev trg", - "Jurčkova cesta", - "Juričeva ulica", - "Juvanova ulica", - "K reaktorju", - "Kadilnikova ulica", - "Kajuhova ulica", - "Kalingerjeva ulica", - "Kalinova ulica", - "Kaminova ulica", - "Kamniška ulica", - "Kamnogoriška cesta", - "Kančeva ulica", - "Kanonijeva cesta", - "Kantetova ulica", - "Kapusova ulica", - "Kardeljeva ploščad", - "Karingerjeva ulica", - "Karunova ulica", - "Kastelčeva ulica", - "Kašeljska cesta", - "Kavadarska cesta", - "Kavčičeva ulica", - "Kavškova ulica", - "Kekčeva ulica", - "Kermaunerjeva ulica", - "Kernova cesta", - "Kerševanova ulica", - "Keržičeva ulica", - "Kettejeva ulica", - "Kladezna ulica", - "Klančarjeva ulica", - "Kleče", - "Klemenova ulica", - "Kleparska steza", - "Ključavničarska ulica", - "Klunova ulica", - "Kmečka pot", - "Knafljev prehod", - "Knezov štradon", - "Knezova ulica", - "Knobleharjeva ulica", - "Koblarjeva ulica", - "Kocbekova ulica", - "Kocenova ulica", - "Kocjanova ulica", - "Kočenska ulica", - "Kodrova ulica", - "Kogojeva ulica", - "Kogovškova ulica", - "Kokaljeva ulica", - "Kolarjeva ulica", - "Kolesarska pot", - "Koleševa ulica", - "Kolinska ulica", - "Kolmanova ulica", - "Kolodvorska ulica", - "Komanova ulica", - "Komenskega ulica", - "Kongresni trg", - "Kopališka ulica", - "Kopitarjeva ulica", - "Kopna pot", - "Koprska ulica", - "Koreninova ulica", - "Koroška ulica", - "Korotanska ulica", - "Kosančeva ulica", - "Koseskega ulica", - "Koseška cesta", - "Kosmačeva ulica", - "Kosova ulica", - "Kosovelova ulica", - "Koširjeva ulica", - "Kotnikova ulica", - "Kovačeva ulica", - "Kovaška ulica", - "Kovinarska ulica", - "Kozakova ulica", - "Kozinova ulica", - "Kozlarjeva pot", - "Koželjeva ulica", - "Krakovski nasip", - "Kraljeva ulica", - "Kranerjeva ulica", - "Kraška ulica", - "Kratka pot", - "Kratka steza", - "Kregarjeva ulica", - "Kreljeva ulica", - "Kremžarjeva ulica", - "Krimska ulica", - "Krištofova ulica", - "Kriva pot", - "Krivec", - "Križevniška soteska", - "Križna ulica", - "Krmčeva ulica", - "Krmeljeva ulica", - "Kropova ulica", - "Krošljeva ulica", - "Krovska ulica", - "Krožna pot", - "Kržičeva ulica", - "Kudrova ulica", - "Kuhljeva cesta", - "Kumerdejeva ulica", - "Kumerjeve ulica", - "Kumrovška ulica", - "Kurilniška ulica", - "Kurirska ulica", - "Kusoldova ulica", - "Kuštrinova ulica", - "Kuzeletova ulica", - "Kuzmičeva ulica", - "Lahova pot", - "Lajovčeva ulica", - "Laknerjeva ulica", - "Lakotence", - "Lampetova ulica", - "Lamutova ulica", - "Langusova ulica", - "Latinski trg", - "Lavrinova ulica", - "Layerjeva ulica", - "Lazarjeva ulica", - "Legatova ulica", - "Lemeževa ulica", - "Lepi pot", - "Lepodvorska ulica", - "Leskovičeva ulica", - "Letališka cesta", - "Levarjeva ulica", - "Levičnikova ulica", - "Levstikov trg", - "Levstikova ulica", - "Linhartov podhod", - "Linhartova cesta", - "Lipahova ulica", - "Litijska cesta", - "Litostrojska cesta", - "Livada", - "Livarska ulica", - "Ločnikarjeva ulica", - "Lončarska steza", - "Lorenzova cesta", - "Lovrenčičeva ulica", - "Lovska ulica", - "Lovšetova ulica", - "Lubejeva ulica", - "Luize Pesjakove ulica", - "Lunačkova ulica", - "Mačja steza", - "Mačkov kot", - "Mačkova ulica", - "Madžarska ulica", - "Magistrova ulica", - "Maistrova ulica", - "Majaronova ulica", - "Majde Vrhovnikove ulica", - "Majorja Lavriča ulica", - "Makucova ulica", - "Mala ulica", - "Mala vas", - "Malejeva ulica", - "Malenškova ulica", - "Malgajeva ulica", - "Mali štradon", - "Mali trg", - "Malnarjeva ulica", - "Marčenkova ulica", - "Marentičeva ulica", - "Mareška pot", - "Marice Kovačeve ulica", - "Marincljeva ulica", - "Marinovševa cesta", - "Maroltova ulica", - "Martina Krpana ulica", - "Martinčeva ulica", - "Martinova ulica", - "Marušičeva ulica", - "Masarykova cesta", - "Matjanova pot", - "Matjaževa ulica", - "Maurerjeva ulica", - "Mazovčeva pot", - "Med hmeljniki", - "Medarska ulica", - "Medenska cesta", - "Medveščkova ulica", - "Mekinčeva ulica", - "Melikova ulica", - "Mencingerjeva ulica", - "Merčnikova ulica", - "Merosodna ulica", - "Mesesnelova ulica", - "Mestni trg", - "Meškova ulica", - "Metelkova ulica", - "Miheličeva cesta", - "Mihov štradon", - "Miklavčeva ulica", - "Miklošičeva cesta", - "Mikuževa ulica", - "Milčetova pot", - "Mire Lenardičeve ulica", - "Mirje", - "Mirna pot", - "Mislejeva ulica", - "Mizarska pot", - "Mladinska ulica", - "Mlake", - "Mlinska pot", - "Močnikova ulica", - "Mokrška ulica", - "Molekova ulica", - "Moškričeva ulica", - "Mrharjeva ulica", - "Mrzelova ulica", - "Murkova ulica", - "Murnikova ulica", - "Murnova ulica", - "Muzejska ulica", - "Na cvetači", - "Na delih", - "Na dolih", - "Na gaju", - "Na gmajni", - "Na Herši", - "Na jami", - "Na klančku", - "Na Korošci", - "Na Palcah", - "Na požaru", - "Na produ", - "Na Rojah", - "Na Stolbi", - "Na Straški vrh", - "Na Trati", - "Na Žalah", - "Nade Ovčakove ulica", - "Nadgoriška cesta", - "Nahlikova ulica", - "Nahtigalova ulica", - "Nanoška ulica", - "Nazorjeva ulica", - "Nebotičnikov prehod", - "Nedohova ulica", - "Njegoševa cesta", - "Nova ulica", - "Novakova pot", - "Novakova ulica", - "Novi trg", - "Novinarska ulica", - "Novo naselje", - "Novo Polje, cesta I", - "Novo Polje, cesta III", - "Novo Polje, cesta IV", - "Novo Polje, cesta V", - "Novo Polje, cesta VI", - "Novo Polje, cesta VII", - "Novo Polje, cesta X", - "Novo Polje, cesta XI", - "Novo Polje, cesta XII", - "Novo Polje, cesta XIV", - "Novo Polje, cesta XIX", - "Novo Polje, cesta XVI", - "Novo Polje, cesta XVII", - "Novo Polje, cesta XXI", - "Novo Polje, cesta XXIII", - "Novosadska ulica", - "Ob daljnovodu", - "Ob dolenjski železnici", - "Ob Farjevcu", - "Ob Ljubljanici", - "Ob Mejašu", - "Ob potoku", - "Ob pristanu", - "Ob Savi", - "Ob studencu", - "Ob zdravstvenem domu", - "Ob zeleni jami", - "Ob zelenici", - "Ob žici", - "Obirska ulica", - "Obrežna steza", - "Obrije", - "Ocvirkova ulica", - "Ogrinčeva ulica", - "Okiškega ulica", - "Omahnova ulica", - "Omejčeva ulica", - "Omersova ulica", - "Oražnova ulica", - "Orlova ulica", - "Osenjakova ulica", - "Osojna pot", - "Osojna steza", - "Osterčeva ulica", - "Ovčakova ulica", - "Pahorjeva ulica", - "Palmejeva ulica", - "Papirniška pot", - "Park Ajdovščina", - "Park Arturo Toscanini", - "Parmova ulica", - "Parmska cesta", - "Partizanska ulica", - "Pavlovčeva ulica", - "Pavšičeva ulica", - "Pečarjeva ulica", - "Pečnik", - "Pečnikova ulica", - "Pegamova ulica", - "Perčeva ulica", - "Periška cesta", - "Perkova ulica", - "Peršinova cesta", - "Pesarska cesta", - "Pestotnikova ulica", - "Peščena pot", - "Petkova ulica", - "Petkovškovo nabrežje", - "Petrčeva ulica", - "Pilonova ulica", - "Pionirska pot", - "Pipanova pot", - "Pirnatova ulica", - "Planinska cesta", - "Planinškova ulica", - "Plečnikov podhod", - "Plemljeva ulica", - "Plešičeva ulica", - "Pleteršnikova ulica", - "Pločanska ulica", - "Pod akacijami", - "Pod bregom", - "Pod bresti", - "Pod bukvami", - "Pod Debnim vrhom", - "Pod gabri", - "Pod gozdom", - "Pod hrasti", - "Pod hribom", - "Pod hruško", - "Pod jelšami", - "Pod jezom", - "Pod ježami", - "Pod Kamno gorico", - "Pod klancem", - "Pod lipami", - "Pod topoli", - "Pod Trančo", - "Pod turnom", - "Pod vrbami", - "Podgornikova ulica", - "Podgorska cesta", - "Podgrajska cesta", - "Podjunska ulica", - "Podlimbarskega ulica", - "Podmilščakova ulica", - "Podrožniška pot", - "Podsmreška cesta", - "Podutiška cesta", - "Pogačarjev trg", - "Pohlinova ulica", - "Poklukarjeva ulica", - "Polakova ulica", - "Polanškova ulica", - "Poljanska cesta", - "Polje", - "Polje, cesta I", - "Polje, cesta II", - "Polje, cesta III", - "Polje, cesta VI", - "Polje, cesta VIII", - "Polje, cesta X", - "Polje, cesta XIV", - "Polje, cesta XL", - "Polje, cesta XLII", - "Polje, cesta XLVI", - "Polje, cesta XVI", - "Polje, cesta XVIII", - "Polje, cesta XXII", - "Polje, cesta XXIV", - "Polje, cesta XXVI", - "Polje, cesta XXX", - "Polje, cesta XXXII", - "Polje, cesta XXXIV", - "Polje, cesta XXXVIII", - "Poljedelska ulica", - "Poljska pot", - "Porentova ulica", - "Posavskega ulica", - "Postojnska ulica", - "Pot do šole", - "Pot Draga Jakopiča", - "Pot heroja Trtnika", - "Pot k igrišču", - "Pot k ribniku", - "Pot k Savi", - "Pot k sejmišču", - "Pot k studencu", - "Pot na Breje", - "Pot na Drenikov vrh", - "Pot na Golovec", - "Pot na goro", - "Pot na Gradišče", - "Pot na Grič", - "Pot na Labar", - "Pot na mah", - "Pot na most", - "Pot na Orle", - "Pot na Visoko", - "Pot na Zduše", - "Pot Rdečega križa", - "Pot v boršt", - "Pot v Čeželj", - "Pot v dolino", - "Pot v Goričico", - "Pot v hribec", - "Pot v mejah", - "Pot v Mlake", - "Pot v Podgorje", - "Pot v Zeleni gaj", - "Pot za Brdom", - "Pot za razori", - "Potokarjeva ulica", - "Potrčeva ulica", - "Povšetova ulica", - "Prašnikarjeva ulica", - "Praznikova ulica", - "Pražakova ulica", - "Pred Savljami", - "Predjamska cesta", - "Predor pod Gradom", - "Preglov trg", - "Prekmurska ulica", - "Prelčeva ulica", - "Preloge", - "Premrlova ulica", - "Preradovićeva ulica", - "Preserska ulica", - "Prešernov trg", - "Prešernova cesta", - "Pretnarjeva ulica", - "Pri borštu", - "Pri brvi", - "Pri malem kamnu", - "Pri mostiščarjih", - "Pribinova ulica", - "Prijateljeva ulica", - "Primorska ulica", - "Prinčičeva ulica", - "Prisojna ulica", - "Prištinska ulica", - "Privoz", - "Proletarska cesta", - "Prule", - "Prušnikova ulica", - "Prvomajska ulica", - "Pšatnik", - "Pšatska pot", - "Ptujska ulica", - "Pučnikova ulica", - "Puharjeva ulica", - "Puhova ulica", - "Puhtejeva ulica", - "Puterlejeva ulica", - "Putrihova ulica", - "Raičeva ulica", - "Rakovniška ulica", - "Rakuševa ulica", - "Ramovševa ulica", - "Ravbarjeva ulica", - "Ravna pot", - "Ravnikova ulica", - "Razgledna steza", - "Reber", - "Reboljeva ulica", - "Rečna ulica", - "Regentova cesta", - "Resljeva cesta", - "Reška ulica", - "Ribičičeva ulica", - "Ribji trg", - "Ribniška ulica", - "Rimska cesta", - "Rjava cesta", - "Robbova ulica", - "Robičeva ulica", - "Rodičeva ulica", - "Rojčeva ulica", - "Romavhova ulica", - "Rosna pot", - "Rotarjeva ulica", - "Rovšnikova ulica", - "Rozmanova ulica", - "Rožanska ulica", - "Rožičeva ulica", - "Rožna dolina, cesta I", - "Rožna dolina, cesta III", - "Rožna dolina, cesta IV", - "Rožna dolina, cesta V", - "Rožna dolina, cesta VI", - "Rožna dolina, cesta VIII", - "Rožna dolina, cesta X", - "Rožna dolina, cesta XII", - "Rožna dolina, cesta XIII", - "Rožna dolina, cesta XV", - "Rožna dolina, cesta XVII", - "Rožna ulica", - "Rudnik I", - "Rudnik II", - "Rudnik III", - "Runkova ulica", - "Ruska ulica", - "Rutarjeva ulica", - "Sadinja vas", - "Sajovčeva ulica", - "Samova ulica", - "Saškova ulica", - "Sattnerjeva ulica", - "Savinova ulica", - "Savinškova ulica", - "Savlje", - "Savska cesta", - "Sedejeva ulica", - "Selanov trg", - "Selanova ulica", - "Setnikarjeva ulica", - "Seunigova ulica", - "Simončičeva ulica", - "Siva pot", - "Skapinova ulica", - "Sketova ulica", - "Skopčeva ulica", - "Skrbinškova ulica", - "Slape", - "Slapnikova ulica", - "Slavčja ulica", - "Slomškova ulica", - "Slovenčeva ulica", - "Slovenska cesta", - "Smoletova ulica", - "Smrekarjeva ulica", - "Smrtnikova ulica", - "Snebersko nabrežje", - "Snežniška ulica", - "Snojeva ulica", - "Sojerjeva ulica", - "Sončna pot", - "Sostrska cesta", - "Soška ulica", - "Soteška pot", - "Soussenska ulica", - "Sovretova ulica", - "Spodnji Rudnik I", - "Spodnji Rudnik II", - "Spodnji Rudnik III", - "Spodnji Rudnik V", - "Spomeniška pot", - "Srebrničeva ulica", - "Srednja pot", - "Stadionska ulica", - "Staničeva ulica", - "Stara Ježica", - "Stara slovenska ulica", - "Stare Črnuče", - "Stari trg", - "Stegne", - "Steletova ulica", - "Sternadova ulica", - "Stiška ulica", - "Stolpniška ulica", - "Stoženska ulica", - "Stožice", - "Stražarjeva ulica", - "Streliška ulica", - "Stritarjeva ulica", - "Strmeckijeva ulica", - "Strmi pot", - "Strniševa cesta", - "Strossmayerjeva ulica", - "Strugarska ulica", - "Strupijevo nabrežje", - "Suhadolčanova ulica", - "Sulčja ulica", - "Svetčeva ulica", - "Šarhova ulica", - "Šentjakob", - "Šentviška ulica", - "Šerkova ulica", - "Šestova ulica", - "Šibeniška ulica", - "Šinkov štradon", - "Šišenska cesta", - "Šivičeva ulica", - "Škerljeva ulica", - "Škofova ulica", - "Škrabčeva ulica", - "Šlandrova ulica", - "Šlosarjeva ulica", - "Šmarna gora", - "Šmartinska cesta", - "Šmartno", - "Španova pot", - "Španska ulica", - "Štajerska cesta", - "Štebijeva cesta", - "Štefančeva ulica", - "Štembalova ulica", - "Štepanjska cesta", - "Štepanjsko nabrežje", - "Štirnova ulica", - "Štradon čez Prošco", - "Štrekljeva ulica", - "Študentovska ulica", - "Štukljeva cesta", - "Štula", - "Šturmova ulica", - "Šubičeva ulica", - "Šumarjeva ulica", - "Švabićeva ulica", - "Švarova ulica", - "Švegljeva cesta", - "Tabor", - "Tacenska cesta", - "Tavčarjeva ulica", - "Tbilisijska ulica", - "Tesarska ulica", - "Teslova ulica", - "Tesna ulica", - "Tesovnikova ulica", - "Tiha ulica", - "Tiranova ulica", - "Tischlerjeva ulica", - "Tivolska cesta", - "Tkalska ulica", - "Tobačna ulica", - "Tolminska ulica", - "Tomačevo", - "Tomačevska cesta", - "Tomažičeva ulica", - "Tometova ulica", - "Tominškova ulica", - "Tomišeljska ulica", - "Toplarniška ulica", - "Topniška ulica", - "Torkarjeva ulica", - "Tratnikova ulica", - "Travniška ulica", - "Trbeže", - "Trdinova ulica", - "Trebušakova ulica", - "Trg francoske revolucije", - "Trg mladih", - "Trg mladinskih delov. brigad", - "Trg narodnih herojev", - "Trg prekomorskih brigad", - "Trg republike", - "Trg 9. maja", - "Trinkova ulica", - "Trnovčeva ulica", - "Trnovska ulica", - "Trpinčeva ulica", - "Trstenjakova ulica", - "Trtnikova ulica", - "Tržaška cesta", - "Tržna ulica", - "Tugomerjeva ulica", - "Turnerjeva ulica", - "Turnsko nabrežje", - "Udvančeva ulica", - "Ulica aktivistov", - "Ulica Alme Sodnik", - "Ulica Andreja Kumarja", - "Ulica Angelce Ocepkove", - "Ulica Angele Ljubičeve", - "Ulica borca Petra", - "Ulica borcev za severno mejo", - "Ulica bratov Bezlajev", - "Ulica bratov Blanč", - "Ulica bratov Jančar", - "Ulica bratov Komel", - "Ulica bratov Kraljič", - "Ulica bratov Martinec", - "Ulica bratov Novak", - "Ulica bratov Rozmanov", - "Ulica bratov Škofov", - "Ulica bratov Učakar", - "Ulica bratov Židan", - "Ulica Dušana Kraigherja", - "Ulica Ernesta Kramerja", - "Ulica Franca Nebca", - "Ulica Francke Jerasove", - "Ulica Franja Novaka", - "Ulica gledališča BTC", - "Ulica Goce Delčeva", - "Ulica Gubčeve brigade", - "Ulica Hermana Potočnika", - "Ulica Ivana Roba", - "Ulica Ivanke Kožuh", - "Ulica Ivice Pirjevčeve", - "Ulica Janeza Pavla II.", - "Ulica Janeza Rožiča", - "Ulica Jožeta Jame", - "Ulica Jožeta Japlja", - "Ulica Jožeta Mirtiča", - "Ulica Konrada Babnika", - "Ulica Koroškega bataljona", - "Ulica Lizike Jančarjeve", - "Ulica Lojzeta Spacala", - "Ulica Lovre Klemenčiča", - "Ulica Malči Beličeve", - "Ulica Marije Drakslerjeve", - "Ulica Marije Hvaličeve", - "Ulica Marje Boršnikove", - "Ulica Marka Šlajmerja", - "Ulica Milana Majcna", - "Ulica Milke Kerinove", - "Ulica Minke Bobnar", - "Ulica Mirka Jurce", - "Ulica Mirka Tomšiča", - "Ulica Miroslava Turka", - "Ulica Molniške čete", - "Ulica na Grad", - "Ulica Nade Čamernikove", - "Ulica Olge Mohorjeve", - "Ulica padlih borcev", - "Ulica Pariške komune", - "Ulica Pohorskega bataljona", - "Ulica Polonce Čude", - "Ulica prvoborcev", - "Ulica Rezke Dragarjeve", - "Ulica Rezke Klopčič", - "Ulica Rudolfa Janežiča", - "Ulica Staneta Severja", - "Ulica Štefke Zbašnikove", - "Ulica talcev", - "Ulica Tončke Čečeve", - "Ulica v Kokovšek", - "Ulica Vide Pregarčeve", - "Ulica Vladimirja Trampuža", - "Ulica Zore Ragancinove", - "Ulica Žanke Erjavec", - "Ulica 15. aprila", - "Ulica 15. maja", - "Ulica 24. avgusta", - "Ulica 4. julija", - "Ulica 7. septembra", - "Ulica 9. junija", - "Uršičev štradon", - "Usnjarska ulica", - "V Češnjico", - "V dolini", - "V Karlovce", - "V Karlovce", - "V Kladeh", - "V Murglah", - "V Sige", - "V Varde", - "V Zalar", - "Vagajeva ulica", - "Valjavčeva ulica", - "Valvasorjeva ulica", - "Vandotova ulica", - "Vaška pot", - "Večna pot", - "Vegova ulica", - "Velebitska ulica", - "Veliki štradon", - "Velikovška ulica", - "Velnarjeva ulica", - "Verovškova ulica", - "Veršičeva ulica", - "Veselova ulica", - "Videmska ulica", - "Vidergarjeva ulica", - "Vidičeva ulica", - "Vidovdanska cesta", - "Vilharjev podhod", - "Vilharjeva cesta", - "Vinterca", - "Vipavska ulica", - "Vipotnikova ulica", - "Viška cesta", - "Vižmarska pot", - "Vodmatska ulica", - "Vodmatski trg", - "Vodna steza", - "Vodnikova cesta", - "Vodnikovo naselje", - "Vodovodna cesta", - "Vogelna ulica", - "Vojkova cesta", - "Volaričeva ulica", - "Vošnjakova ulica", - "Vozna pot na Grad", - "Vožarski pot", - "Vrazov trg", - "Vrbovec", - "Vrbska ulica", - "Vregova ulica", - "Vrhovci, cesta I", - "Vrhovci, cesta II", - "Vrhovci, cesta III", - "Vrhovci, cesta IX", - "Vrhovci, cesta V", - "Vrhovci, cesta VI", - "Vrhovci, cesta X", - "Vrhovci, cesta XI", - "Vrhovci, cesta XII", - "Vrhovci, cesta XIV", - "Vrhovci, cesta XIX", - "Vrhovci, cesta XV", - "Vrhovci, cesta XVII", - "Vrhovci, cesta XVIII", - "Vrhovci, cesta XX", - "Vrhovci, cesta XXII", - "Vrhovci, cesta XXVI", - "Vrhovci, cesta XXVIII", - "Vrhovci, cesta XXXII", - "Vrhovčeva ulica", - "Vrhovnikova ulica", - "Vrtača", - "Vrtna ulica", - "Vrtnarska cesta", - "Vulčeva ulica", - "Vzajemna ulica", - "Windischerjeva ulica", - "Wolfova ulica", - "Za Garažami", - "Za gasilskim domom", - "Za Gradom", - "Za krajem", - "Za opekarno", - "Za partizanskim domom", - "Za progo", - "Za vasjo", - "Zadnikarjeva ulica", - "Zadobrovška cesta", - "Zadružna ulica", - "Zajčeva pot", - "Zajčevi dvori", - "Zakotnikova ulica", - "Zalaznikova ulica", - "Zaletelova ulica", - "Zaloška cesta", - "Zarnikova ulica", - "Zasavska cesta", - "Zatišje", - "Zavetiška ulica", - "Završje", - "Zbašnikova ulica", - "Zdešarjeva cesta", - "Zelena pot", - "Zelenova ulica", - "Zeljarska ulica", - "Zevnikova ulica", - "Zidarjev štradon", - "Ziherlova ulica", - "Zlatek", - "Znamenjska ulica", - "Zofke Kvedrove ulica", - "Zoisova cesta", - "Zupanova ulica", - "Zvezda", - "Zvezdarska ulica", - "Zvezna ulica", - "Žabarjeva ulica", - "Žabjak", - "Žalska ulica", - "Žaucerjeva ulica", - "Žeje", - "Železna cesta", - "Železnikarjeva ulica", - "Žerjalova ulica", - "Židankova ulica", - "Židovska steza", - "Židovska ulica", - "Živaličeva ulica", - "Živinozdravska ulica", - "Žolgerjeva ulica", - ) - - states = ( - "Pomurksa", - "Podravska", - "Koroška", - "Savinjska", - "Zasavska", - "Spodnjeposavska", - "Jugovzhodna Slovenija", - "Osrednjeslovenska", - "Gorenjska", - "Notranjsko - kraška", - "Goriška", - "Obalno - kraška", - ) - - countries = ( - "Afganistan", - "Islamska republika Afganistan", - "Albanija", - "Alžirija", - "Ljudska demokratična republika Alžirija", - "Andora", - "Angola", - "Republika Angola", - "Antigva in Barbuda", - "Argentina", - "Armenija", - "Republika Armenija", - "Avstralija", - "Avstrija", - "Azerbajdžan", - "Azerbajdžanska republika", - "Bahami", - "Zveza Bahami", - "Država Bahrajn", - "Bangladeš", - "Ljudska republika Bangladeš", - "Belgija", - "Kraljevina Belgija", - "Belize", - "Belorusija", - "Benin", - "Republika Benin", - "Bocvana", - "Republika Bocvana", - "Republika Bolgarija", - "Bolivija", - "Republika Bolivija", - "Brazilija", - "Federativna republika Brazilija", - "Brunej", - "Burkina Faso", - "Burundi", - "Republika Burundi", - "Butan", - "Ciper", - "Republika Ciper", - "Čad", - "Republika Čad", - "Češka", - "Čile", - "Republika Čile", - "Črna gora", - "Republika Črna gora", - "Kraljevina Danska", - "Dominika", - "Zveza Dominika", - "Džibuti", - "Republika Džibuti", - "Egipt", - "Arabska republika Egipt", - "Republika Ekvador", - "Ekvatorialna Gvineja", - "Eritreja", - "Estonija", - "Republika Estonija", - "Etiopija", - "Fidži", - "Filipini", - "Republika Filipini", - "Finska", - "Republika Finska", - "Francoska republika", - "Gabon", - "Gabonska republika", - "Gambija", - "Gana", - "Republika Gana", - "Grčija", - "Helenska republika", - "Grenada", - "Gvajana", - "Republika Gvajana", - "Gvatemala", - "Republika Gvatemala", - "Republika Gvineja", - "Gvineja Bissau", - "Republika Gvineja Bissau", - "Republika Haiti", - "Honduras", - "Republika Honduras", - "Hrvaška", - "Indija", - "Republika Indija", - "Indonezija", - "Republika Indonezija", - "Republika Irak", - "Iran", - "Islamska republika Iran", - "Irska", - "Republika Islandija", - "Italija", - "Italijanska republika", - "Izrael", - "Jamajka", - "Japonska", - "Jemen", - "Republika Jemen", - "Jordanija", - "Južna Afrika", - "Republika Južna Afrika", - "Južna Koreja", - "Kambodža", - "Kraljevina Kambodža", - "Kamerun", - "Republika Kamerun", - "Katar", - "Država Katar", - "Kazahstan", - "Republika Kazahstan", - "Kenija", - "Kirgizistan", - "Kirgiška republika", - "Kiribati", - "Kitajska", - "Kolumbija", - "Republika Kolumbija", - "Komori", - "Kongo", - "Republika Kongo", - "Demokratična republika Kongo", - "Republika Kostarika", - "Kuba", - "Republika Kuba", - "Kuvajt", - "Laos", - "Laoška ljudska demokratična republika", - "Latvija", - "Lesoto", - "Kraljevina Lesoto", - "Libanon", - "Libanonska republika", - "Republika Liberija", - "Libija", - "Libijska arabska džamahirija", - "Lihtenštajn", - "Kneževina Lihtenštajn", - "Litva", - "Republika Litva", - "Veliko vojvodstvo Luksemburg", - "Madagaskar", - "Republika Madagaskar", - "Republika Madžarska", - "Republika Severna Makedonija", - "Malavi", - "Maldivi", - "Republika Maldivi", - "Malezija", - "Mali", - "Republika Mali", - "Republika Malta", - "Maroko", - "Kraljevina Maroko", - "Marshallovi otoki", - "Mauritius", - "Republika Mauritius", - "Mavretanija", - "Mehika", - "Združene mehiške države", - "Mikronezija", - "Mjanmar", - "Zveza Mjanmar", - "Moldavija", - "Moldavija, Republika", - "Kneževina Monako", - "Mongolija", - "Mozambik", - "Republika Mozambik", - "Republika Namibija", - "Nauru", - "Republika Nauru", - "Nemčija", - "Nepal", - "Kraljevina Nepal", - "Niger", - "Republika Niger", - "Nigerija", - "Nikaragva", - "Republika Nikaragva", - "Nizozemska", - "Norveška", - "Kraljevina Norveška", - "Nova Zelandija", - "Oman", - "Pakistan", - "Islamska republika Pakistan", - "Palau", - "Republika Palau", - "Republika Panama", - "Papua Nova Gvineja", - "Paragvaj", - "Peru", - "Republika Peru", - "Poljska", - "Republika Poljska", - "Portugalska republika", - "Romunija", - "Ruanda", - "Republika Ruanda", - "Ruska federacija", - "Saint Kitts in Nevis", - "Saint Lucia", - "Salomonovi otoki", - "Salvador", - "Republika Salvador", - "San Marino", - "Sao Tome in Principe", - "Demokratična republika Sao Tome in Principe", - "Kraljevina Saudova Arabija", - "Sejšeli", - "Republika Sejšeli", - "Republika Senegal", - "Severna Koreja", - "Severna Makedonija", - "Sierra Leone", - "Republika Sierra Leone", - "Singapur", - "Sirija", - "Sirska arabska republika", - "Slonokoščena obala", - "Slovaška", - "Slovaška republika", - "Slovenija", - "Republika Slovenija", - "Somalska demokratična republika", - "Srbija", - "Republika Srbija", - "Sudan", - "Republika Sudan", - "Surinam", - "Republika Surinam", - "Svazi", - "Španija", - "Kraljevina Španija", - "Šrilanka", - "Švedska", - "Kraljevina Švedska", - "Švica", - "Tadžikistan", - "Republika Tadžikistan", - "Tajska", - "Tajvan", - "Tajvan, Provinca Kitajske", - "Tanzanija", - "Togo", - "Togoška republika", - "Tonga", - "Kraljevina Tonga", - "Republika Trinidad in Tobago", - "Tunizija", - "Republika Tunizija", - "Republika Turčija", - "Turkmenistan", - "Tuvalu", - "Uganda", - "Ukrajina", - "Urugvaj", - "Vzhodna republika Urugvaj", - "Uzbekistan", - "Vanuatu", - "Republika Vanuatu", - "Vatikan", - "Velika Britanija", - "Združeno kraljestvo", - "Venezuela", - "Republika Venezuela", - "Vietnam", - "Vzhodni Timor", - "Demokratična republika Vzhodni Timor", - "Samoa", - "Neodvisna država Zahodna Samoa", - "Zambija", - "Združene države Amerike", - "Združene države", - "Združeni arabski emirati", - "Zelenortski otoki", - ) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def street_name(self) -> str: - return self.random_element(self.streets) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/sl_SI/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/sl_SI/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2e9f927..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/sl_SI/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/sv_SE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/sv_SE/__init__.py deleted file mode 100644 index b7dbc9d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/sv_SE/__init__.py +++ /dev/null @@ -1,375 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - building_number_formats = ("###", "##", "#") - - street_name_formats = ("{{street_prefix}}{{street_suffix}}",) - - street_address_formats = ("{{street_name}} {{building_number}}",) - - street_prefixes = ( - "Björk", - "Järnvägs", - "Ring", - "Skol", - "Skogs", - "Ny", - "Gran", - "Idrotts", - "Stor", - "Kyrk", - "Industri", - "Park", - "Strand", - "Skol", - "Trädgårds", - "Industri", - "Ängs", - "Kyrko", - "Park", - "Villa", - "Ek", - "Kvarn", - "Stations", - "Back", - "Furu", - "Gen", - "Fabriks", - "Åker", - "Bäck", - "Asp", - ) - - street_suffixes = ("gatan", "gatan", "vägen", "vägen", "stigen", "gränd", "torget") - - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - # Postcode should be formatted as described in - # https://sv.wikipedia.org/wiki/Postnummer_i_Sverige and - # in 2nd chapter of https://www.postnord.se/siteassets/pdf/faktablad/postnummersystemet-i-sverige-171213.pdf. - postcode_formats = ("%####",) - - city_formats = ("{{city_name}}",) - - cities = ( - "Stockholm", - "Göteborg", - "Malmö", - "Uppsala", - "Västerås", - "Örebro", - "Linköping", - "Helsingborg", - "Jönköping", - "Norrköping", - "Lund", - "Umeå", - "Gävle", - "Borås", - "Mölndal", - "Södertälje", - "Eskilstuna", - "Karlstad", - "Halmstad", - "Växjö", - "Sundsvall", - "Luleå", - "Trollhättan", - "Östersund", - "Borlänge", - "Falun", - "Kalmar", - "Skövde", - "Kristianstad", - "Karlskrona", - "Skellefteå", - "Uddevalla", - "Lidingö", - "Motala", - "Landskrona", - "Örnsköldsvik", - "Nyköping", - "Karlskoga", - "Varberg", - "Trelleborg", - "Lidköping", - "Alingsås", - "Piteå", - "Sandviken", - "Ängelholm", - ) - - countries = ( - "Afghanistan", - "Albanien", - "Algeriet", - "Amerikanska Samoa", - "Andorra", - "Angola", - "Anguilla", - "Antarktis", - "Antigua och Barbuda", - "Argentina", - "Armenien", - "Aruba", - "Ascension", - "Australien", - "Azerbajdzjan", - "Bahamas", - "Bahrain", - "Bangladesh", - "Barbados", - "Belarus", - "Belgien", - "Belize", - "Benin", - "Bermuda", - "Bhutan", - "Bolivia", - "Bosnien och Hercegovina", - "Botswana", - "Brasilien", - "Brittiska Jungfruöarna", - "Brunei", - "Bulgarien", - "Burkina Faso", - "Burma", - "Burundi", - "Caymanöarna", - "Centralafrikanska republiken", - "Chile", - "Colombia", - "Cooköarna", - "Costa Rica", - "Cypern", - "Danmark", - "Diego Garcia", - "Djibouti", - "Dominica", - "Dominikanska republiken", - "Ecuador", - "Egypten", - "Ekvatorialguinea", - "Elfenbenskusten", - "El Salvador", - "Eritrea", - "Estland", - "Etiopien", - "England", - "Falklandsöarna", - "Fiji", - "Filippinerna", - "Finland", - "Frankrike", - "Franska Guyana", - "Franska Polynesien", - "Färöarna", - "Förenade Arabemiraten", - "Gabon", - "Gambia", - "Georgien", - "Ghana", - "Gibraltar", - "Grekland", - "Grenada", - "Grönland", - "Guadeloupe", - "Guatemala", - "Guinea", - "Guinea-Bissau", - "Guyana", - "Haiti", - "Honduras", - "Hongkong", - "Indien", - "Indonesien", - "Irak", - "Iran", - "Irland", - "Island", - "Israel", - "Italien", - "Jamaica", - "Japan", - "Jemen", - "Jordanien", - "Kambodja", - "Kamerun", - "Kanada", - "Kap Verde", - "Kazakstan", - "Kenya", - "Kina", - "Kirgizistan", - "Kiribati", - "Komorerna", - "Kongo-Brazzaville", - "Kongo-Kinshasa", - "Kosovo", - "Kroatien", - "Kuba", - "Kuwait", - "Laos", - "Lesotho", - "Lettland", - "Libanon", - "Liberia", - "Libyen", - "Liechtenstein", - "Litauen", - "Luxemburg", - "Macao", - "Madagaskar", - "Malawi", - "Malaysia", - "Maldiverna", - "Mali", - "Malta", - "Marianerna", - "Marocko", - "Marshallöarna", - "Martinique", - "Mauretanien", - "Mauritius", - "Mayotte", - "Mexiko", - "Midwayöarna", - "Mikronesiens federerade stater", - "Moçambique", - "Moldavien", - "Monaco", - "Mongoliet", - "Montenegro", - "Montserrat", - "Namibia", - "Nauru", - "Nederländerna", - "Nederländska Antillerna", - "Nepal", - "Nicaragua", - "Niger", - "Nigeria", - "Niue", - "Nordkorea", - "Nordmakedonien", - "Nordmarianerna", - "Norfolkön", - "Norge", - "Nya Kaledonien", - "Nya Zeeland", - "Oman", - "Pakistan", - "Palau", - "Palestina", - "Panama", - "Papua Nya Guinea", - "Paraguay", - "Peru", - "Pitcairnöarna", - "Polen", - "Portugal", - "Qatar", - "Réunion", - "Rumänien", - "Rwanda", - "Ryssland", - "Saint Kitts och Nevis", - "Saint Lucia", - "Saint-Pierre och Miquelon", - "Saint Vincent och Grenadinerna", - "Salomonöarna", - "Samoa", - "Sankta Helena", - "San Marino", - "São Tomé och Príncipe", - "Saudiarabien", - "Schweiz", - "Senegal", - "Serbien", - "Seychellerna", - "SierraLeone", - "Singapore", - "Sint Maarten", - "Slovakien", - "Slovenien", - "Somalia", - "Spanien", - "Sri Lanka", - "Storbritannien", - "Sudan", - "Surinam", - "Sverige", - "Swaziland", - "Sydafrika", - "Sydkorea", - "Sydsudan", - "Syrien", - "Tadzjikistan", - "Taiwan", - "Tanzania", - "Tchad", - "Thailand", - "Tjeckien", - "Togo", - "Tokelauöarna", - "Tonga", - "Trinidad och Tobago", - "Tunisien", - "Turkiet", - "Turkmenistan", - "Turks-och Caicosöarna", - "Tuvalu", - "Tyskland", - "Uganda", - "Ukraina", - "Ungern", - "Uruguay", - "USA", - "Uzbekistan", - "Vanuatu", - "Vatikanstaten", - "Venezuela", - "Vietnam", - "Wake", - "Wallis-och Futunaöarna", - "Zambia", - "Zimbabwe", - "Österrike", - "Östtimor", - ) - - states = ( - "Stockholms län", - "Uppsala län", - "Södermanlands län", - "Östergötlands län", - "Jönköpings län", - "Kronobergs län", - "Kalmar län", - "Gotlands län", - "Blekinge län", - "Skåne län", - "Hallands län", - "Västra Götalands län", - "Värmlands län", - "Örebro län", - "Västmanlands län", - "Dalarnas län", - "Gävleborgs län", - "Västernorrlands län", - "Jämtlands län", - "Västerbottens län", - "Norrbottens län", - ) - - def street_prefix(self) -> str: - return self.random_element(self.street_prefixes) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/sv_SE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/sv_SE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4f02a97..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/sv_SE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ta_IN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/ta_IN/__init__.py deleted file mode 100644 index 902ad9a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/ta_IN/__init__.py +++ /dev/null @@ -1,429 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{city_name}}",) - - street_name_formats = ( - "{{first_name}} {{last_name}}", - "{{last_name}}", - ) - - street_address_formats = ("{{building_number}} {{street_name}}",) - - address_formats = ( - "{{street_address}}\n{{city}} {{postcode}}", - "{{street_address}}\n{{city}}-{{postcode}}", - ) - - building_number_formats = ( - "####", - "###", - "##", - "#", - "#/#", - "##/##", - "##/###", - "##/####", - ) - - postcode_formats = ("######",) - - # Source: https://ta.wikipedia.org/wiki/மக்கள்_தொகை_மிகுந்த_இந்திய_நகரங்கள் - cities = ( - "சென்னை", - "கோயம்புத்தூர்", - "மதுரை", - "திருச்சிராப்பள்ளி", - "திருப்பூர்", - "சேலம்", - "ஈரோடு", - "திருநெல்வேலி", - "வேலூர்", - "தூத்துக்குடி", - "திண்டுக்கல்", - "தஞ்சாவூர்", - "இராணிப்பேட்டை", - "சிவகாசி", - "கரூர் (கரூர் மாவட்டம்)", - "உதகமண்டலம்", - "ஓசூர்", - "நாகர்கோவில்", - "காஞ்சிபுரம்", - "குமாரபாளையம்", - "காரைக்குடி", - "நெய்வேலி", - "கடலூர்", - "கும்பகோணம்", - "திருவண்ணாமலை", - "பொள்ளாச்சி", - "இராஜபாளையம், விருதுநகர் மாவட்டம்", - "குடியாத்தம்", - "புதுக்கோட்டை", - "வாணியம்பாடி", - "ஆம்பூர்", - "நாகப்பட்டினம்", - "மும்பை பெருநகர்", - "தில்லி", - "கொல்கத்தா பெருநகர்", - "சென்னை பெருநகர்", - "பெங்களூரு", - "ஐதராபாத்", - "புனே", - "அகமதாபாத்", - "கான்பூர்", - "சூரத்", - "ஜெய்ப்பூர்", - "லக்னோ", - "பாட்னா", - "நாக்பூர்", - "இந்தோர்", - "மீரட்", - "நாசிக்", - "போபால்", - "லூதியானா", - "ஆக்ரா", - "வதோதரா", - "புவனேசுவர்", - "கோயம்புத்தூர்", - "ராஜ்கோட்", - "கொச்சி", - "விசாகப்பட்டினம்", - "வாரணாசி", - "மதுரை", - "ஆசன்சோல்", - "அலகாபாத்", - "மைசூர்", - "ஜபல்பூர்", - "ஜம்சேத்பூர்", - "அவுரங்கபாத்", - "அம்ரித்சர்", - "தன்பாத்", - "விஜயவாடா", - "சோலாப்பூர்", - "பிலாய்", - "ஸ்ரீநகர்", - "ராஞ்சி", - "திருவனந்தபுரம்", - "சண்டிகர்", - "குவஹாத்தி", - "கோழிக்கோடு", - "ஜோத்பூர்", - "குவாலியர்", - "ஜலந்தர்", - "திருச்சிராப்பள்ளி", - "பரேலி", - "ஹுப்ளி-தர்வாத்", - "அலிகார்", - "கோட்டா", - "மொரதாபாத்", - "ராய்ப்பூர்", - "தேராதூன்", - "கோரக்பூர்", - "ஜம்மு", - "அமராவதி", - "வாரங்கல்", - "ஜாம்நகர்", - "பிகானேர்", - "சாங்கலி", - "திருப்பூர்", - "பாவ்நகர்", - "மங்களூர்", - "அஜ்மீர்", - "பொகாரோ", - "பெல்காம்", - "புதுச்சேரி", - "சிலிகுரி", - "கண்ணூர்", - "கோலாப்பூர்", - "நான்தேட்", - "ரூர்கேலா", - "துர்காபூர்", - "குல்பர்கா", - "குண்டூர்", - "ஜான்சி", - "சகாரன்பூர்", - "கரக்பூர்", - "கயா", - "ஜல்கான்", - "மதுரா", - "கொல்லம்", - "கோர்பா", - "பிரோசாபாத்", - "திருநெல்வேலி", - "உஜ்ஜைன்", - "அகமத்நகர்", - "நெல்லூர்", - "ராமகுண்டம்", - "ராஜமுந்திரி", - "மாலேகான்", - "உதயப்பூர்", - "அகோலா", - "தாவண்கரே", - "வேலூர்", - "திருவண்ணாமலை", - "காஜுவாகா", - ) - - # Source: https://ta.wikipedia.org/wiki/இந்தியாவின்_மாநிலங்களும்_ஆட்சிப்பகுதிகளும் - states = ( - "ஆந்திரப் பிரதேசம்", - "அருணாச்சலப் பிரதேசம்", - "அசாம்", - "பீகார்", - "சத்தீஸ்கர்", - "கோவா", - "குஜராத்", - "அரியானா", - "இமாச்சலப் பிரதேசம்", - "சம்மு காசுமீர்", - "ஜார்கண்ட்", - "கர்நாடகா", - "கேரளா", - "மத்தியப் பிரதேசம்", - "மகாராஷ்டிரா", - "மணிப்பூர்", - "மேகாலயா", - "மிசோரம்", - "நாகலாந்து", - "ஒரிசா", - "பஞ்சாப்", - "ராஜஸ்தான்", - "சிக்கிம்", - "தமிழ்நாடு", - "தெலுங்கானா", - "திரிபுரா", - "உத்தரப்பிரதேசம்", - "உத்தரகண்ட்", - "மேற்கு வங்கம்", - ) - - # Source: https://ta.wikipedia.org/wiki/பிறப்பு_விகித_அடிப்படையில்_நாடுகளின்_பட்டியல் - countries = ( - "ஆப்கானித்தான்", - "அல்பேனியா", - "அல்ஜீரியா", - "அந்தோரா", - "அங்கோலா", - "அன்டிகுவா பர்புடா", - "அர்கெந்தீனா", - "ஆர்மீனியா", - "ஆத்திரேலியா", - "ஆஸ்திரியா", - "அசர்பைஜான்", - "பஹமாஸ்", - "பகுரைன்", - "வங்காளதேசம்", - "பார்படோசு", - "பெலருஸ்", - "பெல்ஜியம்", - "பெலீசு", - "பெனின்", - "பூட்டான்", - "பொலிவியா", - "பொசுனியா எர்செகோவினா", - "போட்சுவானா", - "பிரேசில்", - "புரூணை", - "பல்கேரியா", - "புர்க்கினா பாசோ", - "புருண்டி", - "கம்போடியா", - "கமரூன்", - "கனடா", - "கேப் வர்டி", - "மத்திய ஆப்பிரிக்கக் குடியரசு", - "சாட்", - "சிலி", - "சீனா", - "கொலம்பியா", - "கொமொரோசு", - "காங்கோ மக்களாட்சிக் குடியரசு", - "காங்கோ மக்களாட்சிக் குடியரசு", - "கோஸ்ட்டா ரிக்கா", - "ஐவரி கோஸ்ட்", - "குரோவாசியா", - "கியூபா", - "சைப்பிரசு", - "செக் குடியரசு", - "டென்மார்க்", - "சீபூத்தீ", - "டொமினிக்கா", - "டொமினிக்கன் குடியரசு", - "எக்குவடோர்", - "எகிப்து", - "எல் சல்வடோர", - "எக்குவடோரியல் கினி", - "எரித்திரியா", - "எசுத்தோனியா", - "எதியோப்பியா", - "பிஜி", - "பின்லாந்து", - "பிரான்சு", - "காபொன்", - "கம்பியா", - "சியார்சியா", - "செருமனி", - "கானா", - "கிரேக்க நாடு", - "கிரெனடா", - "குவாத்தமாலா", - "கினியா", - "கினி-பிசாவு", - "கயானா", - "எயிட்டி", - "ஒண்டுராசு", - "அங்கேரி", - "ஐசுலாந்து", - "இந்தியா", - "இந்தோனேசியா", - "ஈரான்", - "ஈராக்", - "அயர்லாந்து", - "இசுரேல்", - "இத்தாலி", - "ஜமேக்கா", - "சப்பான்", - "யோர்தான்", - "கசக்கஸ்தான்", - "கென்யா", - "கிரிபட்டி", - "வட கொரியா", - "தென் கொரியா", - "குவைத்", - "கிர்கிசுத்தான்", - "லாவோஸ்", - "லாத்வியா", - "லெபனான்", - "லெசோத்தோ", - "லைபீரியா", - "லிபியா", - "லீக்கின்ஸ்டைன்", - "லித்துவேனியா", - "லக்சம்பர்க்", - "மாக்கடோனியக் குடியரசு", - "மடகாசுகர்", - "மலாவி", - "மலேசியா", - "மாலைத்தீவுகள்", - "மாலி", - "மால்ட்டா", - "மார்சல் தீவுகள்", - "மூரித்தானியா", - "மொரிசியசு", - "மெக்சிக்கோ", - "மைக்குரோனீசியக் கூட்டு நாடுகள்", - "மல்தோவா", - "மொனாகோ", - "மங்கோலியா", - "மொண்டெனேகுரோ", - "மொரோக்கோ", - "மொசாம்பிக்", - "மியான்மர்", - "நமீபியா", - "நவூரு", - "நேபாளம்", - "நெதர்லாந்து", - "நியூசிலாந்து", - "நிக்கராகுவா", - "நைஜர்", - "நைஜீரியா", - "நோர்வே", - "ஓமான்", - "பாக்கித்தான்", - "பலாவு", - "பலத்தீன்", - "பனாமா", - "பப்புவா நியூ கினி", - "பரகுவை", - "பெரு", - "பிலிப்பீன்சு", - "போலந்து", - "போர்த்துகல்", - "கட்டார்", - "உருமேனியா", - "உருசியா", - "ருவாண்டா", - "செயிண்ட். கிட்ஸ் நெவிஸ்", - "செயிண்ட். லூசியா", - "செயின்ட் வின்செண்டு மற்றும் கிரெனடீன்கள்", - "சமோவா", - "சான் மரீனோ", - "சாவோ தொமே மற்றும் பிரின்சிப்பி", - "சவூதி அரேபியா", - "செனிகல்", - "செர்பியா", - "சீசெல்சு", - "சியேரா லியோனி", - "சிங்கப்பூர்", - "சிலவாக்கியா", - "சுலோவீனியா", - "சொலமன் தீவுகள்", - "சோமாலியா", - "தென்னாப்பிரிக்கா", - "தெற்கு சூடான்", - "எசுப்பானியா", - "இலங்கை", - "சூடான்", - "சுரிநாம்", - "சுவாசிலாந்து", - "சுவீடன்", - "சுவிட்சர்லாந்து", - "சிரியா", - "சீனக் குடியரசு", - "தாஜிக்ஸ்தான்", - "தன்சானியா", - "தாய்லாந்து", - "கிழக்குத் திமோர்", - "டோகோ", - "தொங்கா", - "டிரினிடாட் மற்றும் டொபாகோ", - "தூனிசியா", - "துருக்கி", - "துருக்மெனிஸ்தான்", - "துவாலு", - "உகாண்டா", - "உக்ரைன்", - "ஐக்கிய அரபு அமீரகம்", - "ஐக்கிய இராச்சியம்", - "ஐக்கிய அமெரிக்கா", - "உருகுவை", - "உஸ்பெகிஸ்தான்", - "வனுவாட்டு", - "வெனிசுவேலா", - "வியட்நாம்", - "மேற்கு சகாரா (Sahrawi)", - "யேமன்", - "சாம்பியா", - "சிம்பாப்வே", - "அங்கியுலா (UK)", - "அரூபா (Netherlands)", - "பெர்முடா (UK)", - "கேமன் தீவுகள் (UK)", - "குயெர்ன்சி (கால்வாய் தீவுகள், UK)", - "யேர்சி (கால்வாய் தீவுகள், UK)", - "குக் தீவுகள் (New Zealand)", - "குராசோ (Netherlands)", - "போக்லாந்து தீவுகள்/Malvinas", - "பரோயே தீவுகள் (Denmark)", - "கிப்ரல்டார் (UK)", - "கிறீன்லாந்து (Denmark)", - "குவாதலூப்பு (France)", - "குவாம் (USA)", - "பிரெஞ்சு கயானா", - "ஆங்காங்", - "மாண் தீவு (UK)", - "கொசோவோ", - "மக்காவு", - "மர்தினிக்கு (France)", - "மயோட்டே (France)", - "மொன்செராட்", - ) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ta_IN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/ta_IN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index db6c76d..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/ta_IN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/th/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/th/__init__.py deleted file mode 100644 index 7832b9c..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/th/__init__.py +++ /dev/null @@ -1,251 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - # country names adapted from - # https://github.com/PyThaiNLP/pythainlp/blob/dev/pythainlp/corpus/countries_th.txt - countries = ( - "กรีซ", - "กรีนแลนด์", - "กวม", - "กัมพูชา", - "กัวเดอลุป", - "กัวเตมาลา", - "กาตาร์", - "กานา", - "กาบอง", - "กาบูเวร์ดี", - "กายอานา", - "กินี-บิสเซา", - "กินี", - "เกรเนดา", - "เกาหลีใต้", - "เกาหลีเหนือ", - "เกาะคริสต์มาส", - "เกาะนอร์ฟอล์ก", - "เกาะบูเวต", - "เกาะแมน", - "เกิร์นซีย์", - "แกมเบีย", - "โกตดิวัวร์", - "คอโมโรส", - "คอสตาริกา", - "คาซัคสถาน", - "คิริบาส", - "คิวบา", - "คีร์กีซสถาน", - "คีลิง", - "คูเวต", - "เคนยา", - "แคนาดา", - "แคเมอรูน", - "โครเอเชีย", - "โคลอมเบีย", - "จอร์เจีย", - "จอร์แดน", - "จาเมกา", - "จิบูตี", - "จีน", - "เจอร์ซีย์", - "ชาด", - "ชิลี", - "ซานมารีโน", - "ซามัว", - "ซาอุดีอาระเบีย", - "ซิมบับเว", - "ซีเรีย", - "ซูดาน", - "ซูรินาม", - "เซเชลส์", - "เซนต์คิตส์และเนวิส", - "เซนต์ลูเซีย", - "เซนต์วินเซนต์และเกรนาดีนส์", - "เซนต์เฮเลนา", - "เซเนกัล", - "เซอร์เบีย", - "เซาตูเมและปรินซิปี", - "เซียร์ราลีโอน", - "แซ็ง-บาร์เตเลมี", - "แซ็งบาร์เตเลมี", - "แซ็ง-มาร์แต็ง", - "แซ็งมาร์แต็ง", - "แซงปีแยร์และมีเกอลง", - "แซมเบีย", - "โซมาเลีย", - "ไซปรัส", - "ญี่ปุ่น", - "ดอมินีกา", - "เดนมาร์ก", - "ตรินิแดดและโตเบโก", - "ตองกา", - "ติมอร์-เลสเต", - "ติมอร์เลสเต", - "ตุรกี", - "ตูนิเซีย", - "ตูวาลู", - "เติร์กเมนิสถาน", - "โตเกเลา", - "โตโก", - "ไต้หวัน", - "ทาจิกิสถาน", - "แทนซาเนีย", - "ไทย", - "นครรัฐวาติกัน", - "นอร์เวย์", - "นามิเบีย", - "นาอูรู", - "นิการากัว", - "นิวแคลิโดเนีย", - "นิวซีแลนด์", - "นีอูเอ", - "เนเธอร์แลนด์แอนทิลลีส", - "เนเธอร์แลนด์", - "เนปาล", - "ไนจีเรีย", - "ไนเจอร์", - "บราซิล", - "บริติชอินเดียนโอเชียนเทร์ริทอรี", - "บรูไนดารุสซาลาม", - "บอตสวานา", - "บอสเนียและเฮอร์เซโกวีนา", - "บังกลาเทศ", - "บัลแกเรีย", - "บาร์เบโดส", - "บาห์เรน", - "บาฮามาส", - "บุรุนดี", - "บูร์กินาฟาโซ", - "เบนิน", - "เบลเยียม", - "เบลารุส", - "เบลีซ", - "เบอร์มิวดา", - "โบลิเวีย", - "ปากีสถาน", - "ปานามา", - "ปาปัวนิวกินี", - "ปารากวัย", - "ปาเลา", - "ปาเลสไตน์", - "เปรู", - "เปอร์โตริโก", - "โปรตุเกส", - "โปแลนด์", - "ฝรั่งเศส", - "พม่า", - "ฟิจิ", - "ฟินแลนด์", - "ฟิลิปปินส์", - "เฟรนช์เกียนา", - "เฟรนช์โปลินีเซีย", - "ภูฏาน", - "มองโกเลีย", - "มอนต์เซอร์รัต", - "มอนเตเนโกร", - "มอริเชียส", - "มอริเตเนีย", - "มอลโดวา", - "มอลตา", - "มัลดีฟส์", - "มาเก๊า", - "ประเทศมาซิโดเนียเหนือ", - "มาดากัสการ์", - "มายอต", - "มาร์ตีนิก", - "มาลาวี", - "มาลี", - "มาเลเซีย", - "เม็กซิโก", - "โมซัมบิก", - "โมนาโก", - "โมร็อกโก", - "ไมโครนีเซีย", - "ยานไมเอน", - "ยิบรอลตาร์", - "ยูกันดา", - "ยูเครน", - "เยเมน", - "เยอรมนี", - "รวันดา", - "รัสเซีย", - "เรอูว์นียง", - "โรมาเนีย", - "ลักเซมเบิร์ก", - "ลัตเวีย", - "ลาว", - "ลิกเตนสไตน์", - "ลิทัวเนีย", - "ลิเบีย", - "เลโซโท", - "เลบานอน", - "ไลบีเรีย", - "วานูอาตู", - "วาลลิสและฟุตูนา", - "เวเนซุเอลา", - "เวสเทิร์นสะฮารา", - "เวียดนาม", - "ศรีลังกา", - "สกอตแลนด์", - "สเปน", - "สฟาลบาร์", - "สโลวาเกีย", - "สโลวีเนีย", - "สวาซิแลนด์", - "สวิตเซอร์แลนด์", - "สวีเดน", - "สหรัฐอเมริกา", - "สหรัฐอาหรับเอมิเรตส์", - "สหราชอาณาจักร", - "สาธารณรัฐคองโก", - "สาธารณรัฐเช็ก", - "สาธารณรัฐโดมินิกัน", - "สิงคโปร์", - "หมู่เกาะคุก", - "หมู่เกาะเคย์แมน", - "หมู่เกาะโคโคส", - "หมู่เกาะโซโลมอน", - "หมู่เกาะบริติชเวอร์จิน", - "หมู่เกาะพิตแคร์น", - "หมู่เกาะฟอล์กแลนด์", - "หมู่เกาะแฟโร", - "หมู่เกาะมาร์แชลล์", - "อเมริกันซามัว", - "ออสเตรเลีย", - "ออสเตรีย", - "อังกฤษ", - "อันดอร์รา", - "อัฟกานิสถาน", - "อาเซอร์ไบจาน", - "อาร์เจนตินา", - "อาร์มีเนีย", - "อารูบา", - "อิเควทอเรียลกินี", - "อิตาลี", - "อินเดีย", - "อินโดนีเซีย", - "อิรัก", - "อิสราเอล", - "อิหร่าน", - "อียิปต์", - "อุซเบกิสถาน", - "อุรุกวัย", - "เอกวาดอร์", - "เอธิโอเปีย", - "เอริเทรีย", - "เอลซัลวาดอร์", - "เอสโตเนีย", - "แองกวิลลา", - "แองโกลา", - "แอฟริกากลาง", - "แอฟริกาใต้", - "แอลจีเรีย", - "แอลเบเนีย", - "โอมาน", - "ไอซ์แลนด์", - "ไอร์แลนด์", - "ไอวอรีโคสต์", - "ฮ่องกง", - "ฮอนดูรัส", - "ฮังการี", - "เฮติ", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/th/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/th/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 6c344d0..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/th/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/th_TH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/th_TH/__init__.py deleted file mode 100644 index cba0d42..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/th_TH/__init__.py +++ /dev/null @@ -1,390 +0,0 @@ -from collections import OrderedDict - -from ..th import Provider as AddressProvider - - -class Provider(AddressProvider): - street_name_formats = ("{{street_prefix}}{{last_name}}",) - street_address_formats = ("{{building_number}} {{street_name}}",) - - address_formats = OrderedDict( - ( - ( - "{{street_address}} {{tambon}} {{amphoe}} {{province}} {{postcode}}", - 50.0, - ), - ( - "{{street_address}} ตำบล{{tambon}} อำเภอ{{amphoe}} {{province}} {{postcode}}", - 50.0, - ), - ( - "{{street_address}} ต.{{tambon}} อ.{{amphoe}} {{province}} {{postcode}}", - 50.0, - ), - ( - "{{street_address}} ต.{{tambon}} อ.{{amphoe}} จ.{{province}} {{postcode}}", - 40.0, - ), - ("{{street_address}} อำเภอ{{amphoe}} {{province}} {{postcode}}", 30.0), - ("{{street_address}} อ.{{amphoe}} {{province}} {{postcode}}", 30.0), - ("{{street_address}} {{amphoe}} {{province}} {{postcode}}", 30.0), - ("{{street_address}} {{tambon}} {{province}} {{postcode}}", 15.0), - ("{{street_address}} {{amphoe}} จ.{{province}} {{postcode}}", 15.0), - ("{{street_address}} {{tambon}} จ.{{province}} {{postcode}}", 15.0), - ("{{street_address}} อ.{{amphoe}} จ.{{province}} {{postcode}}", 15.0), - ("{{street_address}} ต.{{tambon}} จ.{{province}} {{postcode}}", 15.0), - ( - "{{street_address}} อำเภอ{{amphoe}} จังหวัด{{province}} {{postcode}}", - 15.0, - ), - ( - "{{street_address}} ตำบล{{tambon}} อำเภอ{{amphoe}} จังหวัด{{province}} {{postcode}}", - 10.0, - ), - ("{{street_address}} {{province}} {{postcode}}", 15.0), - ("{{street_address}} ต.{{tambon}} อ.{{amphoe}} {{province}}", 15.0), - ("{{street_address}} ต.{{tambon}} อ.{{amphoe}} จ.{{province}}", 15.0), - ( - "{{street_address}} ตำบล{{tambon}} จังหวัด{{province}} {{postcode}}", - 10.0, - ), - ( - "{{building_number}} ต.{{tambon}} อ.{{amphoe}} {{province}} {{postcode}}", - 10.0, - ), - ( - "{{building_number}} หมู่บ้าน{{first_name}} {{amphoe}} {{province}} {{postcode}}", - 10.0, - ), - ) - ) - - # city names are actual city municipalities in Thailand - # source: Wikipedia: https://th.wikipedia.org/wiki/เทศบาลนครในประเทศไทย - city_formats = ("{{city_name}}",) - cities = ( - "กรุงเทพมหานคร", - "นนทบุรี", - "ปากเกร็ด", - "หาดใหญ่", - "เจ้าพระยาสุรศักดิ์", - "สุราษฎร์ธานี", - "อุดรธานี", - "เชียงใหม่", - "นครราชสีมา", - "พัทยา", - "ขอนแก่น", - "นครศรีธรรมราช", - "แหลมฉบัง", - "รังสิต", - "นครสวรรค์", - "ภูเก็ต", - "เชียงราย", - "อุบลราชธานี", - "นครปฐม", - "เกาะสมุย", - "สมุทรสาคร", - "พิษณุโลก", - "ระยอง", - "สงขลา", - "ยะลา", - "ตรัง", - "อ้อมน้อย", - "สกลนคร", - "ลำปาง", - "สมุทรปราการ", - "พระนครศรีอยุธยา", - "แม่สอด", - ) - - building_number_formats = ( - "###", - "##", - "#", - "###/#", - "###/##", - "##/#", - "##/##", - "#/#", - "## หมู่ #", - "## หมู่ ##", - ) - - street_prefixes = OrderedDict( - ( - ("ถนน", 0.5), - ("ถ.", 0.4), - ("ซอย", 0.02), - ("ซ.", 0.02), - ) - ) - - postcode_formats = ( - # as per https://en.wikipedia.org/wiki/Postal_codes_in_Thailand - "1###0", - "2###0", - "3###0", - "4###0", - "5###0", - "6###0", - "7###0", - "8###0", - "9###0", - ) - - provinces = ( - "กระบี่", - "กรุงเทพมหานคร", - "กรุงเทพ", - "กรุงเทพฯ", - "กทม.", - "กาญจนบุรี", - "กาฬสินธุ์", - "กำแพงเพชร", - "ขอนแก่น", - "จันทบุรี", - "ฉะเชิงเทรา", - "ชลบุรี", - "ชัยนาท", - "ชัยภูมิ", - "ชุมพร", - "เชียงราย", - "เชียงใหม่", - "ตรัง", - "ตราด", - "ตาก", - "นครนายก", - "นครปฐม", - "นครพนม", - "นครราชสีมา", - "นครศรีธรรมราช", - "นครสวรรค์", - "นนทบุรี", - "นราธิวาส", - "น่าน", - "บึงกาฬ", - "บุรีรัมย์", - "ปทุมธานี", - "ประจวบคีรีขันธ์", - "ปราจีนบุรี", - "ปัตตานี", - "พระนครศรีอยุธยา", - "พะเยา", - "พังงา", - "พัทลุง", - "พิจิตร", - "พิษณุโลก", - "เพชรบุรี", - "เพชรบูรณ์", - "แพร่", - "ภูเก็ต", - "มหาสารคาม", - "มุกดาหาร", - "แม่ฮ่องสอน", - "ยโสธร", - "ยะลา", - "ร้อยเอ็ด", - "ระนอง", - "ระยอง", - "ราชบุรี", - "ลพบุรี", - "ลำปาง", - "ลำพูน", - "เลย", - "ศรีสะเกษ", - "สกลนคร", - "สงขลา", - "สตูล", - "สมุทรปราการ", - "สมุทรสงคราม", - "สมุทรสาคร", - "สระแก้ว", - "สระบุรี", - "สิงห์บุรี", - "สุโขทัย", - "สุพรรณบุรี", - "สุราษฎร์ธานี", - "สุรินทร์", - "หนองคาย", - "หนองบัวลำภู", - "อ่างทอง", - "อำนาจเจริญ", - "อุดรธานี", - "อุตรดิตถ์", - "อุทัยธานี", - "อุบลราชธานี", - ) - - amphoes = ( - "เกษตรสมบูรณ์", - "แก้งคร้อ", - "คอนสวรรค์", - "คอนสาร", - "ซับใหญ่", - "เทพสถิต", - "เนินสง่า", - "บ้านเขว้า", - "บ้านแท่น", - "บำเหน็จณรงค์", - "หนองบัวโคก", - "ภักดีชุมพล", - "ภูเขียว", - "หนองบัวแดง", - "หนองบัวระเหว", - "เทิง", - "แม่ลาว", - "แม่สรวย", - "เวียงแก่น", - "เวียงชัย", - "เวียงป่าเป้า", - "เขาสมิง", - "คลองใหญ่", - "บ่อไร่", - "นาแก", - "นาทม", - "นาหว้า", - "บ้านแพง", - "ปลาปาก", - "โพนสวรรค์", - "เรณูนคร", - "วังยาง", - "ศรีสงคราม", - "เฉลิมพระเกียรติ", - "เมือง", - "ปากคาด", - "พรเจริญ", - "ศรีวิไล", - "ป้อมปราบศัตรูพ่าย", - "พระนคร", - "สามโคก", - "บางสะพานน้อย", - "บึงกุ่ม", - "ภาษีเจริญ", - "วังทองหลาง", - "ห้วยขวาง", - "หนอกจอก", - "สะพานสูง", - ) - - tambons = ( - "บางแค", - "บางแค", - "บางไผ่", - "บางปะกอก", - "ยางตลาด", - "ดอนสมบูรณ์", - "หัวงัว", - "นาเชือก", - "เทพศิรินทร์", - "อุ่มเม่า", - "คลองขาม", - "บัวบาน", - "เขาพระนอน", - "เว่อ", - "นาดี", - "อิตื้อ", - "โนนสูง", - "หัวนาคำ", - "หนองตอกแป้น", - "หนองอิเฒ่า", - "โนนศิลา", - "หนองปลาหมอ", - "เปือยใหญ่", - "โนนแดง", - "ก้อนแก้ว", - "คลองเขื่อน", - "บางเล่า", - "บางโรง", - "บางตลาด", - "เนินขาม", - "กะบกเตี้ย", - "สุขเดือนห้า", - "พะโต๊ะ", - "ปากทรง", - "ปังหวาน", - "พระรักษ์", - "ห้วยยอด", - "ปากคม", - "หนองช้างแล่น", - "ท่างิ้ว", - "บางดี", - "ลำภูรา", - "บางกุ้ง", - "นาวง", - "เขากอบ", - "เขาขาว", - "ในเตา", - "เขาปูน", - "ทุ่งต่อ", - "ปากแจ่ม", - "เกาะหวาย", - "ปากพลี", - "เกาะโพธิ์", - "ท่าเรือ", - "โคกกรวด", - "หนองแสง", - "นาหินลาด", - ) - - tambon_prefixes = OrderedDict( - ( - ("", 40.0), - ("วัด", 2.0), - ("บ้าน", 2.0), - ("บ่อ", 2.0), - ("บึง", 2.0), - ("ป่า", 1.0), - ("ห้วย", 1.0), - ) - ) - - tambon_suffixes = OrderedDict( - ( - ("", 30), - ("เหนือ", 3), - ("ใต้", 3), - ("ใหญ่", 2), - ("กลาง", 1), - ("เล็ก", 1), - ("ใหม่", 1), - ("เดิม", 0.1), - ) - ) - - city_suffixes = ("นคร",) - - def street_prefix(self) -> str: - """ - :example: 'ถนน' - """ - return self.random_element(self.street_prefixes) - - def administrative_unit(self) -> str: - """ - :example: 'อุบลราชธานี' - """ - return self.random_element(self.provinces) - - province = administrative_unit - - def amphoe(self) -> str: - """ - Get a random Amphoe (district) name. - Currently it's total random and not necessarily matched with a province. - :example: 'บางสะพานน้อย' - """ - return self.random_element(self.amphoes) - - def tambon(self) -> str: - """ - Get a random Tambon (subdistrict) name. - Currently it's total random and not necessarily matched with an amphoe or province. - :example: 'ห้วยนาง' - """ - return ( - f"{self.random_element(self.tambon_prefixes)}{self.random_element(self.tambons)}" - + f"{self.random_element(self.tambon_suffixes)}" - ) - - def city_name(self) -> str: - return self.random_element(self.cities) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/th_TH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/th_TH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index dbd0051..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/th_TH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/tl_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/tl_PH/__init__.py deleted file mode 100644 index da54e58..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/tl_PH/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from ..en_PH import Provider as EnPhAddressProvider - - -class Provider(EnPhAddressProvider): - """No difference from Address Provider for en_PH locale""" - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/tl_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/tl_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 17e3f6c..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/tl_PH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/uk_UA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/uk_UA/__init__.py deleted file mode 100644 index 6579d35..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/uk_UA/__init__.py +++ /dev/null @@ -1,2200 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - address_formats = ["{{street_address}}, {{city_name}}, {{postcode}}"] - building_number_formats = ["#", "##", "###"] - city_formats = ["{{city_prefix}} {{city_name}}"] - street_address_formats = ( - "{{street_prefix}} {{street_name}}, буд. {{building_number}}", - "{{street_prefix}} {{street_name}}, буд. {{building_number}} кв. {{building_number}}", - ) - - street_name_formats = "{{street_prefix}} {{street_title}}" - - city_prefixes = ["місто", "село", "селище", "хутір"] - - city_names = ( - "Авдіївка", - "Алмазна", - "Алупка", - "Алушта", - "Алчевськ", - "Амвросіївка", - "Ананьїв", - "Андрушівка", - "Антрацит", - "Апостолове", - "Армянськ", - "Арциз", - "Балаклія", - "Балта", - "Бар", - "Баранівка", - "Барвінкове", - "Батурин", - "Бахмач", - "Бахмут", - "Бахчисарай", - "Баштанка", - "Белз", - "Бердичів", - "Бердянськ", - "Берегове", - "Бережани", - "Березань", - "Березівка", - "Березне", - "Берестечко", - "Берислав", - "Бершадь", - "Бібрка", - "Біла Церква", - "Білгород-Дністровський", - "Білицьке", - "Білогірськ", - "Білозерське", - "Білопілля", - "Біляївка", - "Благовіщенське", - "Бобринець", - "Бобровиця", - "Богодухів", - "Богуслав", - "Боково-Хрустальне", - "Болград", - "Болехів", - "Борзна", - "Борислав", - "Бориспіль", - "Борщів", - "Боярка", - "Бровари", - "Броди", - "Брянка", - "Бунге", - "Буринь", - "Бурштин", - "Буськ", - "Буча", - "Бучач", - "Валки", - "Вараш", - "Василівка", - "Васильків", - "Багачеве", - "Вашківці", - "Великі Мости", - "Верхівцеве", - "Верхньодніпровськ", - "Вижниця", - "Вилкове", - "Винники", - "Виноградів", - "Вишгород", - "Вишневе", - "Вільногірськ", - "Вільнянськ", - "Вінниця", - "Вовчанськ", - "Вознесенівка", - "Вознесенськ", - "Волноваха", - "Володимир-Волинський", - "Волочиськ", - "Ворожба", - "Вуглегірськ", - "Вугледар", - "Гадяч", - "Гайворон", - "Гайсин", - "Галич", - "Генічеськ", - "Герца", - "Гірник", - "Гірське", - "Глиняни", - "Глобине", - "Глухів", - "Гнівань", - "Гола Пристань", - "Голубівка", - "Горішні Плавні", - "Горлівка", - "Городенка", - "Городище", - "Городня", - "Городок", - "Горохів", - "Гребінка", - "Гуляйполе", - "Дебальцеве", - "Деражня", - "Дергачі", - "Джанкой", - "Дніпро", - "Дніпрорудне", - "Добромиль", - "Добропілля", - "Довжанськ", - "Докучаєвськ", - "Долина", - "Долинська", - "Донецьк", - "Дрогобич", - "Хутір-Михайлівський", - "Дружківка", - "Дубляни", - "Дубно", - "Дубровиця", - "Дунаївці", - "Енергодар", - "Євпаторія", - "Єнакієве", - "Жашків", - "Жданівка", - "Жидачів", - "Житомир", - "Жмеринка", - "Жовква", - "Жовті Води", - "Заводське", - "Залізне", - "Заліщики", - "Запоріжжя", - "Заставна", - "Збараж", - "Зборів", - "Звенигородка", - "Здолбунів", - "Зеленодольськ", - "Зимогір'я", - "Зіньків", - "Зміїв", - "Знам'янка", - "Золоте", - "Золотоноша", - "Золочів", - "Зоринськ", - "Зугрес", - "Івано-Франківськ", - "Ізмаїл", - "Ізюм", - "Ізяслав", - "Іллінці", - "Іловайськ", - "Інкерман", - "Ірміно", - "Ірпінь", - "Іршава", - "Ічня", - "Кагарлик", - "Кадіївка", - "Калинівка", - "Калуш", - "Кальміуське", - "Кам'янець-Подільський", - "Кам'янка (Черкаська область)", - "Кам'янка-Бузька", - "Кам'янка-Дніпровська", - "Кам'янське", - "Камінь-Каширський", - "Канів", - "Карлівка", - "Каховка", - "Керч", - "Київ", - "Кипуче", - "Ківерці", - "Кілія", - "Кіцмань", - "Кобеляки", - "Ковель", - "Кодима", - "Козятин", - "Коломия", - "Комарно", - "Конотоп", - "Копичинці", - "Корець", - "Коростень", - "Коростишів", - "Корсунь-Шевченківський", - "Корюківка", - "Косів", - "Костопіль", - "Костянтинівка", - "Краматорськ", - "Красилів", - "Красногорівка", - "Берестин", - "Красноперекопськ", - "Кременець", - "Кременчук", - "Кремінна", - "Кривий Ріг", - "Кролевець", - "Кропивницький", - "Куп'янськ", - "Курахове", - "Ладижин", - "Ланівці", - "Лебедин", - "Лиман", - "Липовець", - "Лисичанськ", - "Лозова", - "Лохвиця", - "Лубни", - "Луганськ", - "Лутугине", - "Луцьк", - "Львів", - "Любомль", - "Люботин", - "Макіївка", - "Мала Виска", - "Малин", - "Мар'їнка", - "Марганець", - "Маріуполь", - "Мелітополь", - "Мена", - "Мерефа", - "Миколаїв", - "Миколаївка", - "Миргород", - "Мирноград", - "Миронівка", - "Міусинськ", - "Могилів-Подільський", - "Отаманівка", - "Молочанськ", - "Монастириська", - "Монастирище", - "Моршин", - "Моспине", - "Мостиська", - "Мукачево", - "Надвірна", - "Немирів", - "Нетішин", - "Ніжин", - "Нікополь", - "Нова Каховка", - "Нова Одеса", - "Новгород-Сіверський", - "Нове Давидково", - "Новий Буг", - "Новий Калинів", - "Новий Розділ", - "Новоазовськ", - "Нововолинськ", - "Новоград-Волинський", - "Новогродівка", - "Новодністровськ", - "Новодружеськ", - "Новомиргород", - "Самар", - "Новоселиця", - "Новоукраїнка", - "Новояворівськ", - "Носівка", - "Обухів", - "Овруч", - "Одеса", - "Олевськ", - "Олександрівськ", - "Олександрія", - "Олешки", - "Оріхів", - "Остер", - "Острог", - "Охтирка", - "Очаків", - "П'ятихатки", - "Павлоград", - "Сокологірськ", - "Златопіль", - "Перевальськ", - "Перемишляни", - "Перечин", - "Перещепине", - "Переяслав", - "Шахтарське", - "Петрово-Красносілля", - "Пирятин", - "Південне", - "Підгайці", - "Підгородне", - "Погребище", - "Подільськ", - "Покров", - "Покровськ", - "Пологи", - "Полонне", - "Полтава", - "Помічна", - "Попасна", - "Почаїв", - "Привілля", - "Прилуки", - "Приморськ", - "Прип'ять", - "Пустомити", - "Путивль", - "Рава-Руська", - "Радехів", - "Радивилів", - "Радомишль", - "Рахів", - "Рені", - "Решетилівка", - "Ржищів", - "Рівне", - "Ровеньки", - "Рогатин", - "Родинське", - "Рожище", - "Роздільна", - "Ромни", - "Рубіжне", - "Рудки", - "Саки", - "Самбір", - "Сарни", - "Свалява", - "Сватове", - "Світловодськ", - "Світлодарськ", - "Святогірськ", - "Севастополь", - "Селидове", - "Семенівка", - "Середина-Буда", - "Сіверськодонецьк", - "Синельникове", - "Сіверськ", - "Сімферополь", - "Скадовськ", - "Скалат", - "Сквира", - "Сколе", - "Славута", - "Славутич", - "Слов'янськ", - "Сміла", - "Снігурівка", - "Сніжне", - "Сновськ", - "Снятин", - "Сокаль", - "Сокиряни", - "Соледар", - "Сорокине", - "Соснівка", - "Старий Крим", - "Старий Самбір", - "Старобільськ", - "Старокостянтинів", - "Стебник", - "Сторожинець", - "Стрий", - "Судак", - "Судова Вишня", - "Суми", - "Суходільськ", - "Таврійськ", - "Тальне", - "Тараща", - "Татарбунари", - "Теплодар", - "Теребовля", - "Тернівка", - "Тернопіль", - "Тетіїв", - "Тиврів", - "Тисмениця", - "Тлумач", - "Токмак", - "Торецьк", - "Тростянець", - "Трускавець", - "Тульчин", - "Турка", - "Тячів", - "Угнів", - "Ужгород", - "Узин", - "Українка", - "Українськ", - "Умань", - "Устилуг", - "Фастів", - "Федорівка", - "Феодосія", - "Харків", - "Харцизьк", - "Херсон", - "Хирів", - "Хмельницький", - "Хмільник", - "Ходорів", - "Хорол", - "Хоростків", - "Хотин", - "Хрестівка", - "Христинівка", - "Хрустальний", - "Хуст", - "Часів Яр", - "Шептицький", - "Черкаси", - "Чернівці", - "Чернігів", - "Чигирин", - "Чистякове", - "Чоп", - "Чорнобиль", - "Чорноморськ", - "Чортків", - "Чугуїв", - "Чуднів", - "Шаргород", - "Шахтарськ", - "Шепетівка", - "Шостка", - "Шпола", - "Шумськ", - "Щастя", - "Щолкіне", - "Южне", - "Южноукраїнськ", - "Яворів", - "Яготин", - "Ялта", - "Ямпіль", - "Яремче", - "Ясинувата", - ) - - region_names = ( - "Автономна Республіка Крим", - "Вінницька область", - "Волинська область", - "Дніпропетровська область", - "Донецька область", - "Житомирська область", - "Закарпатська область", - "Запорізька область", - "Івано-Франківська область", - "Київська область", - "Кіровоградська область", - "Луганська область", - "Львівська область", - "Миколаївська область", - "Одеська область", - "Полтавська область", - "Рівненська область", - "Сумська область", - "Тернопільська область", - "Харківська область", - "Херсонська область", - "Хмельницька область", - "Черкаська область", - "Чернівецька область", - "Чернігівська область", - ) - - countries = [ - "Австралія", - "Австрія", - "Азербайджан", - "Албанія", - "Алжир", - "Ангола", - "Андорра", - "Антигуа і Барбуда", - "Аргентина", - "Афганістан", - "Багамські Острови", - "Бангладеш", - "Барбадос", - "Бахрейн", - "Беліз", - "Бельгія", - "Бенін", - "Білорусь", - "Болгарія", - "Болівія", - "Боснія і Герцеговина", - "Ботсвана", - "Бразилія", - "Бруней", - "Буркіна-Фасо", - "Бурунді", - "Бутан", - "Вануату", - "Ватикан", - "Велика Британія", - "Венесуела", - "В'єтнам", - "Вірменія", - "Габон", - "Гаїті", - "Гаяна", - "Гамбія", - "Гана", - "Гватемала", - "Гвінея", - "Гвінея-Бісау", - "Гондурас", - "Гренада", - "Греція", - "Грузія", - "Данія", - "Джибуті", - "Домініка", - "Домініканська Республіка", - "Еквадор", - "Екваторіальна Гвінея", - "Еритрея", - "Естонія", - "Ефіопія", - "Єгипет", - "Ємен", - "Замбія", - "Західна Сахара", - "Зімбабве", - "Ізраїль", - "Індія", - "Індонезія", - "Ірак", - "Іран", - "Ірландія", - "Ісландія", - "Іспанія", - "Італія", - "Йорданія", - "Кабо-Верде", - "Казахстан", - "Камбоджа", - "Камерун", - "Канада", - "Катар", - "Кенія", - "Киргизстан", - "КНР", - "Кіпр", - "Кірибаті", - "Колумбія", - "Коморські Острови", - "Конго", - "ДР Конго", - "Південна Корея", - "Північна Корея", - "Косово", - "Коста-Рика", - "Кот-д'Івуар", - "Куба", - "Кувейт", - "Лаос", - "Латвія", - "Лесото", - "Литва", - "Ліберія", - "Ліван", - "Лівія", - "Ліхтенштейн", - "Люксембург", - "Маврикій", - "Мавританія", - "Мадагаскар", - "Малаві", - "Малайзія", - "Малі", - "Мальдіви", - "Мальта", - "Марокко", - "Маршаллові Острови", - "Мексика", - "Федеративні Штати Мікронезії", - "Мозамбік", - "Молдова", - "Монако", - "Монголія", - "М'янма", - "Намібія", - "Науру", - "Непал", - "Нігер", - "Нігерія", - "Нідерланди", - "Нікарагуа", - "Німеччина", - "Нова Зеландія", - "Норвегія", - "ОАЕ", - "Оман", - "Пакистан", - "Палау", - "Палестинська держава", - "Панама", - "Папуа Нова Гвінея", - "ПАР", - "Парагвай", - "Перу", - "Південний Судан", - "Польща", - "Португалія", - "Північна Республіка Македонія", - "Росія", - "Руанда", - "Румунія", - "Сальвадор", - "Самоа", - "Сан-Марино", - "Сан-Томе і Принсіпі", - "Саудівська Аравія", - "Свазіленд", - "Сейшельські Острови", - "Сенегал", - "Сент-Вінсент і Гренадини", - "Сент-Кіттс і Невіс", - "Сент-Люсія", - "Сербія", - "Сінгапур", - "Сирія", - "Словаччина", - "Словенія", - "Соломонові Острови", - "Сомалі", - "Судан", - "Суринам", - "Східний Тимор", - "США", - "Сьєрра-Леоне", - "Таджикистан", - "Таїланд", - "Тайвань", - "Танзанія", - "Того", - "Тонга", - "Тринідад і Тобаго", - "Тувалу", - "Туніс", - "Туреччина", - "Туркменістан", - "Уганда", - "Угорщина", - "Узбекистан", - "Україна", - "Уругвай", - "Фіджі", - "Філіппіни", - "Фінляндія", - "Франція", - "Хорватія", - "Центральноафриканська Республіка", - "Чад", - "Чехія", - "Чилі", - "Чорногорія", - "Швейцарія", - "Швеція", - "Шрі-Ланка", - "Ямайка", - "Японія", - ] - street_prefixes = [ - "вулиця", - "набережна", - "провулок", - "площа", - "проспект", - "узвіз", - "сквер", - "парк", - "шосе", - ] - - # https://data.gov.ua/en/dataset/__-120/resource/76e2684f-e75c-45e5-a0b2-6d5596ab47f8 - # https://opendata.drohobych-rada.gov.ua/sites/default/files/%D0%90%D0%B4%D1%80%D0%B5%D1%81%D0%B8%20%D0%94%D1%80%D0%BE%D0%B3%D0%BE%D0%B1%D0%B8%D1%87.xlsx - street_titles = [ - "1-ша Лінія 4-ї ст. Люстдорфської дороги", - "1-ша Лінія 6-й ст. Люстдорфської дороги", - "1-ша Лінія Марії Демченко", - "Олександра Болдирєва", - "1-й Академічний тупик", - "10-та Лінія 6-й ст. Люстдорфської дороги", - "10-та Лінія Марії Демченко", - "Олександра Богомольця", - "11-ша Лінія 6-й ст. Люстдорфської дороги", - "11-та Лінія Марії Демченко", - "11-та ст. Великого Фонтану пляж", - "Яна Длугоша", - "12-та Лінія 6-й ст. Люстдорфської дороги", - "12-та ст. Великого Фонтану пляж", - "Юрія Кондратюка", - "13-та Лінія 6-й ст. Люстдорфської дороги", - "13-та ст. Великого Фонтану пляж", - "Миколи Костомарова", - "14-та Лінія 6-й ст. Люстдорфської дороги", - "14-та ст. Великого Фонтану пляж", - "Марка Крейна", - "15-та Лінія 6-й ст. Люстдорфської дороги", - "15-та ст. Великого Фонтану пляж", - "Скліфосовського", - "16-та Лінія 6-й ст. Люстдорфської дороги", - "17-та Лінія 6-й ст. Люстдорфської дороги", - "18-та Лінія 6-й ст. Люстдорфської дороги", - "19-та Лінія", - "19-й км Старокиївської дороги", - "2-га Лінія 4-ї ст. Люстдорфської дороги", - "2-га Лінія 6-й ст. Люстдорфської дороги", - "2-га Лінія Марії Демченко", - "Бардаха", - "2-й Академічний тупик", - "21-й км Старокиївської дороги", - "3-тя Лінія 4-ї ст. Люстдорфської дороги", - "3-тя Лінія 6-й ст. Люстдорфської дороги", - "3-тя Лінія Марії Демченко", - "Миколи Пильчикова", - "4-та Лінія 6-й ст. Люстдорфської дороги", - "4-та Лінія Марії Демченко", - "Йосипа Фішера", - "40-річчя оборони Одеси", - "411-ї батареї", - "5-та Лінія 6-й ст. Люстдорфської дороги", - "5-та Лінія Марії Демченко", - "Цесевича", - "6-та Лінія 6-й ст. Люстдорфської дороги", - "6-та Лінія Марії Демченко", - "Баринштейна", - "7-ма Лінія 6-й ст. Люстдорфської дороги", - "7-ма Лінія Дачі Ковалевського", - "Євгена Крамаренка", - "8-ма Лінія 6-й ст. Люстдорфської дороги", - "8-ма Лінія Дачі Ковалевського", - "Володимира Антоновича", - "9-та Лінія Дачі Ковалевського", - "Квітки-Основ’яненка", - "Абрикосова", - "Абрикосовий", - "Авангардна", - "Одеської громади", - "Авіаторів", - "Авіаційна", - "Аграрна", - "Агрономічна", - "Агрономічний", - "Адміральський", - "Аеродромна", - "Аеродромний 1-й", - "Аеродромний 2-й", - "Аеродромний 3-й", - "Аеропортівська", - "Аеропортівський 1-й", - "Аеропортівський 2-й", - "Аеропортівський 3-й", - "Аеропортівський 4-й", - "Аеропортівський 5-й", - "Аеропортівський 6-й", - "Азербайджан", - "Азовський", - "Академіка Богатського", - "Сергія Єфремова", - "Академіка Векслера", - "Карпенка-Карого", - "Віталія Нестеренка", - "Житомирська", - "Князя Ярослава Мудрого", - "Академіка Заболотного", - "Академіка Корольова", - "Дмитра Сигаревича", - "Академіка Сахарова", - "Академіка Філатова", - "Академіка Ясиновського", - "Академічна", - "Академічний", - "Акордна", - "Алмазна", - "Альпіністів", - "Амбулаторна", - "Амбулаторний", - "Амбулаторний 1-й", - "Амбулаторний 2-й", - "Амундсена, 1-й", - "Амундсена, 2-й", - "Амундсена, 3-й", - "Острозька", - "Кам’янецький", - "Глухівський", - "Волинський", - "Кременецький", - "Ананьївська", - "Буджацька", - "Андреєвського", - "Олега Андрійця", - "Андросовський", - "Ганни Ахматової", - "Зої Пасічної", - "Аптекарський", - "Аркадіївський", - "Аркадійська", - "Аркаса Миколи", - "Армійська", - "Артезіанська", - "Артилерійська", - "Артилерійський 2-й", - "Архітекторська", - "Архітектурна", - "Юрія Асєєва", - "Асташкіна", - "Астрономічна", - "Астрономічний", - "Ашгабатська", - "Дмитра Іванова", - "Багрицького", - "Базарна", - "Байдарочний", - "Байкал тупик", - "Юрія Єгорова", - "Балківська", - "Балтська дорога", - "Балтський 1-й", - "Балтський 2-й", - "Балтський 3-й", - "Балтський 4-й", - "Балтський 5-й", - "Балтський 6-й", - "Балтський 7-й", - "Балтський 8-й", - "Банний", - "Баркасний", - "Басейна", - "Басейний 1-й", - "Басейний 2-й", - "Басейний 3-й", - "Басейний 4-й", - "Басейний 6-й", - "Бахчева", - "Баштанна", - "Безіменний", - "Берегова", - "Березова", - "Березовий", - "Бернардацці", - "Бессарабська", - "Данила Самойловича", - "Бібліотечна", - "Кастуся Калиновського", - "Савранський", - "Біляївська", - "Ігоря Іванова", - "Бісквітний", - "Бітумна", - "Ольги Благовидової", - "Богдана Хмельницького", - "Богуна", - "Бодаревського", - "Бокаріуса", - "Болгарська", - "Болградська", - "Бориса Дерев'янка", - "Бориса Літвака", - "Героїв Зміїного", - "Ботанічний", - "Василя Фащенка", - "Вінницька", - "Берестейська", - "Бреуса Якова", - "Бригадна", - "Бугаївська", - "Будівельна", - "Будівельний", - "Бузкова", - "Бузковий", - "Бузковий 1-й", - "Бузковий 2-й", - "Ніни Строкатої", - "Бучми", - "Кінбурнський", - "В’ячеслава Чорновола", - "Валіховський", - "Ванний", - "Миколи Куліша", - "Гіацинтовий", - "Вапняна", - "Вапняне селище", - "Вапняний 1-й", - "Вапняний 2-й", - "Вапняний 3-й", - "Варненська", - "Василя Кандинського", - "Василя Кандинського 1-й", - "Василя Кандинського 2-й", - "Василя Кандинського 3-й", - "Василя Кандинського 4-й", - "Василя Кандинського 5-й", - "Василя Симоненка", - "Василя Стуса", - "Ждахи", - "Михайла Слабченка", - "Ватманський", - "Велика Арнаутська", - "Велика Садова", - "Венгера", - "Академіка Липського", - "Вернидуба", - "Верстатобудівна", - "Вертелецького", - "Верф’яний", - "Верхня", - "Вершинна", - "Весела", - "Весняна", - "Ветеранів праці", - "Назарівська", - "Ігоря Ветрогонова", - "Виїзна", - "Виноградна", - "Виноградна 1-ша", - "Виноградна 2-га", - "Виноградна 3-тя", - "Виноградний", - "Виноградний тупик", - "Висока", - "Високий", - "Ярослава Баїса", - "Виставочна", - "Вишнева", - "Вишневий", - "Відважних", - "Військовий узвіз", - "Вільгельма Габсбурга", - "Віри Інбер", - "Буковецького", - "Віри Холодної", - "Вірського", - "Вітчизняна", - "Андрія Гулого-Гуленка", - "Івана Луценка", - "Водний", - "Водопровідна", - "Водопровідний 1-й", - "Водопровідний 2-й", - "Водопровідний 3-й", - "Вознесенський", - "Вокзальна", - "Вокзальний", - "Олександрійський", - "тупик Хвиля", - "Хвиляста", - "Володимира Вінниченка", - "Володимира Хавкіна", - "Володі Дубініна", - "Батуринська", - "Ізюмська", - "Байгородський", - "Восьмого березня", - "Восьмого березня 1-й", - "Восьмого березня 2-й", - "Восьмого березня 3-й", - "Восьмого березня 4-й", - "Кодимський", - "Восьмого березня 6-й", - "Бейтельсбахера", - "Восьмого березня 8-й", - "Волтона", - "Восьмого Березня Лінія 1-ша", - "Килимова", - "Гобеленова", - "Фахова", - "Бондарна", - "Віктора Скаржинського узвіз", - "Вузький", - "Вчительська", - "Вчительської, 2-й", - "Гаванна", - "Газова", - "Газовий", - "Павла Клепацького", - "Давида Бурлюка", - "Соні Делоне", - "Андрія Музичка", - "Гвоздична", - "Гвоздичний", - "Гена Іоганна", - "Генуезька", - "Геологічна", - "Георгія Гамова", - "Геранієва", - "Героїв Крут", - "Героїв Небесної Сотні", - "Героїв оборони Одеси", - "Героїв прикордонників", - "Галини Могильницької", - "Гетьманський", - "Гілельса", - "Гімназична", - "Каменярів", - "Бориса Нечерди", - "Дмитра Годзенка", - "Кафедральна", - "Глиняна", - "Глухий міст", - "Гоголя", - "Головківська", - "Головна", - "Гонтаренко", - "Горбатий міст", - "Горбиста", - "Горизонтальна", - "Горіхова", - "Городня", - "Хортицька", - "Марка Твена", - "Госпітальний", - "Тараса Кузьміна", - "Гранатна", - "Гранатний", - "Грецька", - "Грецька", - "Грецький", - "Джинестрівська", - "Грузинська", - "Грузовий", - "Давида Ойстраха", - "Трусовська", - "Дальницька", - "Дальницьке", - "Дальній", - "Дальня", - "Данила Крижанівського", - "Проектуєма", - "Дача Ковалевського", - "Дачна", - "Дачний", - "Дачний 1-й", - "Дачний 2-й", - "Всеволода Змієнка", - "Дев’ята", - "Деволанівська", - "Деволанівський узвіз", - "Миргородський", - "Дельфін", - "Грушева", - "Демократична", - "Депутатський", - "Деревообробна", - "Деревообробний 1-й", - "Деревообробний 2-й", - "Деревообробний 3-й", - "Деревообробний 4-й", - "Деревообробний 5-й", - "Глаубермана", - "Квантовий", - "Дерибасівська", - "Десантний", - "Десята", - "Десятого квітня", - "Десятого квітня", - "Джерельна", - "Джутовий", - "Дзвінка", - "Дігтярна", - "Дідріхсона", - "Діхтієвського Віктора", - "Дмитріївська", - "Лазурського", - "Дніпровська", - "Дніпропетровська дорога", - "Дністровська", - "Князя Володимира Великого ", - "Довга", - "Довженка", - "Докова", - "Долинська", - "Донецька", - "Донцова Дмитра", - "Дорбуду", - "Дорожня", - "Друга", - "Дружний", - "Дубова", - "Дубовий гай", - "Дукова", - "Біржова", - "Панаса Саксаганського", - "Мирослава Скорика", - "Олександра Кошиця", - "Лятошинського", - "Дунайська", - "Дюківська", - "Дюківський сад", - "Економічний", - "Елеваторна", - "Естафетна", - "Естонська", - "Естонський", - "Єврейська", - "Халайджогло", - "Ференца Ліста", - "Юрія Коваленка", - "Охтирський", - "Єфімова", - "Жаботинського", - "Жасминна", - "Жевахова", - "Владислава Домбровського", - "Братів Малакових", - "Житомирська", - "Житомирський 3-й", - "Житомирський 4-й", - "Жоліо-Кюрі", - "Жолкова Бориса", - "Леопольда Ященка", - "Заводська", - "Заводська 1-ша", - "Заводська 2-га", - "Заводська 3-тя", - "Заводська 4-та", - "Заводська 5-та", - "Задніпровського", - "Закарпатська", - "Залізнична", - "Залізничний 3-й", - "Заньковецької", - "Запорізька", - "Зарічна", - "Західний 1-й", - "Західний 2-й", - "Західний 3-й", - "Західний 4-й", - "Зелена", - "Зелена балка", - "Зелена гірка", - "Зелений", - "Зернова", - "Злакова", - "Змієнка Всеволода", - "Золотий берег", - "Зоопаркова", - "Караїмська", - "Зоряна", - "Івана Вазова", - "Івана Микитенка", - "Івана Франка", - "Іванівська", - "Іванівський переїзд", - "Бутишів", - "Мерло", - "Каберне", - "Іванова Ігоря", - "Івасюка Володимира", - "Івахненка Петра", - "Сім'ї Глодан", - "Інглезі", - "Індійська", - "Сергія Коновалова", - "Іподромний", - "Іспанська", - "Іспанський", - "Історія Футболу", - "Італійський", - "Рабіна Іцхака", - "Йосипа Тимченка", - "Кавказька", - "Кавказький", - "Кавунова", - "Ізмаїльська", - "Казковий", - "Калинова", - "Петра Калнишевського", - "Валерія Самофалова", - "Кортацці", - "Камишова", - "Канатна", - "Канатний", - "Капітана Гаврікова", - "Капітана Кузнецова", - "Кар’єрна", - "Карантинна", - "Карантинний узвіз", - "Каретний", - "Каркашадзе", - "Карпатська", - "Картамишевська", - "Картамишевський", - "Європейська", - "Каховський", - "Симфонічна", - "Каштанова", - "Квіткова", - "Квітковий", - "Квітнева", - "Кедровий", - "Керченська", - "Керченський 1-й", - "Керченський 2-й", - "Керченський 3-й", - "Луїджі Іоріні", - "Київське", - "Килимовий", - "Кипарисний 1-й", - "Кипарисний 2-й", - "Кипарисний 3-й", - "Китобійна", - "Китобійний 1-й", - "Китобійний 2-й", - "Бориса Кифоренка", - "Кишинівська", - "Кільовий", - "Кільцева", - "Кінна", - "Ігоря Кисельова", - "Кладовищенська", - "Кладовищний", - "Кленова", - "Клинова", - "Ключовий 1-й", - "Ключовий 2-й", - "Книжковий", - "Князівська", - "Князівський", - "Павла Зеленого", - "Пішонівська", - "Ковиловий", - "Колективний", - "Колекційна", - "Колонічна", - "Колонтаївська", - "Василя Капніста", - "Компасний", - "Музична", - "Мелодійний", - "Ніщинського Композитора", - "Кондрашина", - "Конструкторський", - "Віталія Гуляєва", - "Кордонна", - "Кордонний", - "Корнюшина", - "Ігоря Балмагії", - "Короткий", - "Кобзаря", - "Косий", - "Любомира Гузара", - "Космонавтів", - "Косовська", - "Косовський", - "Костанді", - "Костанді 2-й", - "Костанді 3-й", - "Ольги Благовидової", - "Олексія Косяченко", - "Котляревського", - "Коцюбинського", - "Кощового отамана", - "Крайня", - "Красива", - "Красний", - "Краснова", - "Ольвійська", - "Краснослобідська", - "Краснослобідський", - "Кредитний", - "Дур'янівський", - "Кривобалківська", - "Крижанівський", - "Юзефа Крашевського", - "Кримська", - "Кримський", - "Кристаловського", - "Кришталева", - "Кришталевий", - "Кропивницького", - "Кругова", - "Круговий", - "Крутоярська", - "Крушельницької", - "Кузнечна", - "Куликове поле", - "Куликовський 2-й", - "Куниці", - "Купріна", - "Сотника Лугіна", - "Курортний", - "Курортний 6-й", - "Бахмутська", - "Кустанайська", - "Кустанайський 2-й", - "Кутова", - "Генерала Алмазова", - "Куяльницький міст", - "Лавкова", - "Лазурний 1-й", - "Лазурний 2-й", - "Лазурний 3-й", - "Лазурний 4-й", - "Лазурний 5-й", - "Лазурний 6-й", - "Ламаний", - "Ланжерон", - "Ланжеронівська", - "Ланжеронівський узвіз", - "Латвійський узвіз", - "Левадна", - "Гонсіоровського", - "Толвінського", - "Миколи Бурачека", - "Левкоєва", - "Олександра Станкова", - "Олешківська", - "Леонтовича", - "Джевецького", - "Госпітальєрів", - "Лесі Українки", - "Леха Качинського", - "Лиманна", - "Лиманний", - "Лиманчик 2-й Лінія 1-ша", - "Лиманчик 2-й Лінія 11-та", - "Лиманчик 2-й Лінія 2-га", - "Лиманчик 2-й Лінія 3-тя", - "Лиманчик 2-й Лінія 4-та", - "Лиманчик 2-й Лінія 5-та", - "Лиманчик 2-й Лінія 8-ма", - "Лиманчик 2-й Лінія 9-та", - "Ф. Пішеніна", - "Липнева", - "Листяна", - "Листяний", - "Литовська", - "Ліверпульський", - "Гетьмана Сагайдачного", - "Шевальових", - "Лінійна", - "Лінійний", - "Лїнія 1-ша", - "Лінія 22-га", - "Лінія 23-тя", - "Лінія 24-та", - "Лінія 25-та", - "Лінія 26-та", - "Лінія 27-ма", - "Лінія 28-ма", - "Лінія 29-та", - "Лінія 30-та", - "Лінія 31-ша", - "Лінія 32-га", - "Лінія 33-тя", - "Лінія 35-та", - "Лінія 36-та", - "Лінія 37-ма", - "Лінія 38-ма", - "Лінія 39-та", - "Лінія 40-ва", - "Лінія 41-ша", - "Лінія 42-га", - "Лінія 43-тя", - "Лінія 44-та", - "Лінія 45-та", - "Лінія 46-та", - "Лінія 47-ма", - "Лінія 48-ма", - "Лінія 49-та", - "Лінія 50-та", - "Лінія 51-ша", - "Лінія 52-га", - "Лінія 53-тя", - "Лінія 54-та", - "Лінія 55-та", - "Літакова", - "Літературна", - "Літній", - "Літня", - "Лобачевського", - "Лодочний", - "Локальна", - "Локомотивна", - "Локомотивний 1-й", - "Локомотивний 2-й", - "Локомотивний 3-й", - "Локомотивний 4-й", - "Луганська", - "Лугова", - "Лузанівка", - "Лузанівка", - "Лузанівська", - "Лузанівський", - "Лузанівський 1-й", - "Лузанівський 2-й", - "Місячний", - "Луценка Івана", - "Луцька", - "Лучиста", - "Льва Симиренка", - "Менделе Сфоріма", - "Львівська", - "Львівський", - "Любашівський", - "Людмили Гінзбург", - "Люстдорфська дорога", - "Люстдорфський", - "Лютеранський", - "Лютнева", - "Лютневий 1-й", - "Лютневий 2-й", - "Хортицька", - "Остапа Вишні", - "Олександра Ройтбурда", - "М’ясоєдовська", - "Магістральна", - "Михайла Врубеля", - "Адольфа Лози", - "Сергія Параджанова", - "Мазепи Івана", - "Майстерний", - "Лігінська", - "Контрадмірала Остроградського", - "Макова", - "Маковий", - "Мала", - "Мала Арнаутська", - "Мала Садова", - "Маланова", - "Хаджибейський", - "Маловського", - "Манежна", - "Манежний", - "Маразліївська", - "Фруктова", - "Сливовий", - "Чорничний", - "узвіз Віталія Блажка", - "Мариністів", - "Дениса Максишка", - "Михайла Омеляновича-Павленка", - "Марсельська", - "Добровольців", - "Маршрутна", - "Матеріальний 1-й", - "Матроська Слободка ", - "Матроський узвіз", - "Матюшенка", - "Віталія Блажка", - "Мацієвської", - "Мацієвської узвіз", - "Машинобудівний", - "Маячний", - "Мелітопольська", - "Мельницька", - "Металістів", - "Флейтовий", - "Петра Болбочана", - "Мечникова", - "Мигдальна", - "Миколаївська дорога", - "Миколаївський 1-й", - "Миколи Бажана", - "Миколи Боровського", - "Миколи Вороного", - "Ганса Германа", - "Миколи Гумільова", - "Миколи Огренича", - "Миколи Плигуна", - "Мирна", - "Митна", - "Митракова", - "Михайла Божія", - "Михайла Грушевського", - "Військово-морських сил", - "Михайлівська", - "Йозефа Прибіка", - "Місячна", - "Миколи Міхновського", - "Міцкевича", - "Матроський", - "Бєлякова", - "Волова", - "Могилівська", - "Молоді", - "Молодіжна", - "Чайкова", - "Молокова", - "Монастирський", - "Монгольська", - "Морехідна", - "Морехідний", - "Морська", - "Морський", - "Морський 2-й", - "Литавровий", - "Москеті", - "Мостовий", - "Моторна", - "Моторний 1-й", - "Моторний 2-й", - "Моторний 3-й", - "Мукачівський", - "Мусіна", - "Набережна", - "Навігаційний", - "Надіїі", - "Наклонна", - "Наливна", - "Нафтовиків", - "Нафтовиків", - "Нафтовиків 1-й", - "Нафтовиків 2-й", - "Нафтовиків 3-й", - "Миколи Кравченка", - "Наявний 1-й", - "Наявний 2-й", - "Наявний 3-й", - "Наявний 4-й", - "Наявний 5-й", - "Наявний 6-й", - "Наявний 7-й", - "Небесної Сотні", - "Анатолія Бачинського", - "Заможна", - "Ромський", - "Незалежності", - "Отонівський", - "Немировича-Данченка", - "Неплія", - "Нерубайська", - "Нескучна", - "Нечипуренка", - "Ніжинська", - "Шполянська", - "Нова", - "Новаторів", - "Михайла Жука", - "Дворникова", - "Теофіла Фраєрмана", - "Новий", - "Новиков міст", - "Ірини Жиленко", - "Родоканакі", - "Новобазарний", - "Новоберегова", - "Чигиринська", - "Новоселів", - "Новосельского", - "Новоукраїнський", - "Новощіпний ряд", - "Об'їзна дорога", - "Обільна", - "Обільний 1-й", - "Обільний 2-й", - "Обривиста", - "Обсерваторний", - "Овідіопольська", - "Овідіопольська дорога", - "Овідіопольська дуга", - "Овідіопольський", - "Одарія", - "Одеса-Головна", - "Одеська", - "Одеський", - "Озерна", - "Окружна", - "Олександра Блока", - "Композитора Вербицького", - "Олександра Кутузакія", - "Валерія Лобановського", - "Сергія Шелухина", - "Климовича", - "Чехівського", - "Василя Кричевського", - "Павла Чубинського", - "Майка Йогансена", - "Леоніда Осики", - "Олександра Тимошенка", - "Українських Героїв", - "Олексіївська", - "Ольгіївська", - "Ольгіївський узвіз", - "Василя Берладяну", - "Евлії Челебі", - "Онілової", - "Оранжерейний", - "Орликова", - "Олешківська", - "Надії Пучковської", - "Осипова", - "Осіння", - "Остапа Вишні", - "Отамана Головатого", - "Отамана Чепіги", - "Отрада", - "Отрадна", - "Офіцерська", - "Офіцерський 1-й", - "Офіцерський 2-й", - "П'ята", - "Пiвденний", - "Павла Кравцова", - "Павла Шклярука", - "Павлова", - "Павлодарська", - "Палія Семена", - "Палубна", - "Палубний", - "Панаса Мирного", - "Пантелеймонівська", - "Панченка", - "Парашутний", - "Паркова", - "Парковий", - "Партизанська", - "Партизанської слави", - "Парусна", - "Пассіонарії", - "Пастера", - "Патріотична", - "Педагогічна", - "Педагогічний", - "Пейзажна", - "Добровольців", - "Рятувальників", - "Перепечка", - "Пересипський міст", - "Пересипська 1-ша", - "Пересипська 10-та", - "Пересипська 2-га", - "Пересипська 3-тя", - "Пересипська 4-та", - "Пересипська 5-та", - "Пересипська 6-та", - "Пересипська 7-ма", - "Пересипська 8-ма", - "Пересипська 9-та", - "Пересипський 1-й", - "Пересипський 2-й", - "Пересипський узвіз", - "Перлинна", - "Перша", - "Перший Кришталевий", - "Миколи Леонтовича", - "Саймона Літмана", - "Цукровий", - "Петра Лещенка", - "Леся Курбаса", - "Пироговська", - "Пироговський", - "Бориса Едуардса", - "Південна", - "Південна дорога", - "Південно-Санаторний", - "Північна", - "Північний", - "Підйомний", - "Пілотна", - "Пісочна", - "Пісочний", - "Пішонівська", - "Планетна", - "Платанова", - "Бродська", - "Пляжна", - "Побратимів", - "Подільська", - "Поїзна", - "Покровський", - "Буковинська", - "Хотинський", - "Політкаторжан", - "Полтавська", - "Полуничний", - "Польова", - "Польовий 1-й", - "Польська", - "Польський узвіз", - "Поперечний", - "Посівна", - "Балтиморська", - "Поштова", - "Поштовий", - "Преображенська", - "Пресича Олександра", - "Стрийський", - "Прибережний", - "Привозна", - "Привокзальна", - "Привокзальний", - "Приморська", - "Приморський", - "Приморський", - "Прирейкова", - "Проектна 1-ша", - "Проектна 2-га", - "Проектний 5-й", - "Проектований 3-й", - "Проектований 4-й", - "Проїзний 1-й", - "Проїзний 2-й", - "Проїзний 3-й", - "Прокатна", - "Іони Отаманського", - "Географічний", - "Промислова", - "Промисловий", - "Прорізна", - "Прорізний", - "Просвіти", - "Путівна", - "Проточний", - "Професора Каришковського", - "Професора Коровицького", - "Профспілкова", - "Прохоровська", - "Прохоровський", - "Прохоровський", - "Проценка", - "Почаївська", - "Опішнянський", - "Персикова", - "Путьова", - "Рози вітрів", - "Пшенична", - "Прилуцький", - "Радіальна", - "Радіальний", - "Радіо", - "Радісна", - "Радісний", - "Разумовська", - "Раїси Сергієнко", - "Райдужна", - "Ракетна", - "Рачкова", - "Регенсбург", - "Рекордний", - "Рельєфна", - "Ремонтна", - "Республіканська", - "Рєпіна", - "Рибальська", - "Рибальська балка", - "Рибальський", - "Ризька", - "Рівний", - "Рівності", - "Рівності", - "Рівності 1-й", - "Рівності 2-й", - "Різдвяна", - "Різницький", - "Різовська", - "Рішельєвська", - "Рожева", - "Роздольна", - "Розкидайлівська", - "Розумовський 1-й", - "Розумовський 2-й", - "Решата Аметова", - "Романтиків", - "Романтичний", - "Ромашкова", - "Маріупольська", - "Гайова", - "Рульовий", - "Миколи Савича", - "Сабанський", - "Савицький", - "Савранська", - "Садиковська", - "Садова", - "Садова 1-ша", - "Садова 2-га", - "Садова 3-тя", - "Садова 4-та", - "Садова 5-та", - "Садова 6-та", - "Садовий", - "Садовського", - "Саксаганського", - "Пилипа Орлика", - "Обліпихова", - "Самодіяльна", - "Санаторний", - "Санітарна", - "Сашка Хорошенка", - "Світанку", - "Світла", - "Світлий", - "Свободи", - "Святослава Ріхтера", - "Севастопольський", - "Сегедська", - "Селекційна", - "Селекційний", - "Селищна", - "Селищний", - "Семафорний", - "Семінарська", - "Сергія Ейзенштейна", - "Сергія Уточкіна", - "Сергія Ядова", - "Серединський", - "Середньофонтанська", - "Середньофонтанський", - "Середня", - "Сірожупанників", - "Сєрогодського", - "Зої Бутенко", - "Поліська", - "Сирітський", - "Сирітський 2-й", - "Сільська", - "Сільськогосподарський", - "Сімферопольська", - "Сінна", - "Новопланівська", - "Скидановська", - "Скидановський узвіз", - "Складська", - "Скляна", - "Скляний 1-й", - "Скляний 2-й", - "Скляний 3-й", - "Скрипковий", - "Слави", - "Слави", - "Донорська", - "Сливова", - "Слобідська", - "Слобідський узвіз", - "Слов'янська", - "Сміливий", - "Почаївська", - "Павла Вірського", - "Соборна", - "Совіньйонівський", - "Солонцюватий", - "Солонцюватий 1-й", - "Соляна", - "Соляний 1-й", - "Соляний 2-й", - "Соляний 3-й", - "Соляний 4-й", - "Соляний 5-й", - "Соляний 6-й", - "Соляний 7-й", - "Сонячна", - "Сортувальна 1-ша", - "Сортувальна 2-га", - "Сосюри", - "Софії Перовської", - "Софіївська", - "Соціальна", - "Бахчисарайська", - "Ярмарковий", - "Спаський", - "Спиридонівська", - "Спортивна", - "Спортивний", - "Сталепрокатна", - "Стамбульський", - "Станційна 1-ша", - "Станційна 2-га", - "Станційна 3-тя", - "Старицького", - "Старобазарний", - "Старокінний", - "Старопортофранківська", - "Старорізнична", - "Старосінна", - "Школярський", - "Стельмаха", - "Степана Олійника узвіз", - "Малинова", - "Степна", - "Степний 2-й", - "Степова", - "Стеценко", - "Томатна", - "Стовпова", - "Стороженка Олега", - "Стражеска Миколи", - "Строганов міст", - "Максима Чайки", - "Студена", - "Студентський", - "Студентський 1-й", - "Студентський 2-й", - "Студентський 3-й", - "Студентський 4-й", - "Студентський 5-й", - "Петра Біциллі", - "Суднобудівна", - "Суднобудівний", - "Сумська", - "Сумський", - "Суперфосфатна", - "Супутників", - "Лірний", - "Бандурний", - "Сухолиманна", - "Східний", - "Східний 1-й", - "Східний 2-й", - "Східчастий 3-й", - "Східчастий 4-й", - "Східчастий", - "Сьома", - "Таїрова", - "Танкерна", - "Танкістів", - "Танфільєва", - "Тарутинська", - "Творча", - "Текстильників", - "Олени Теліги", - "Тепла", - "Теплична", - "Тепличний 1-й", - "Тепличний 2-й", - "Володимира Терещенка", - "Тетяни Тесс", - "Технічний", - "Тещин міст", - "Айвазовського", - "Тираспольська", - "Тиха", - "Тіниста", - "Тінистий", - "Ткачова", - "Товарний", - "Трибуни героїв", - "Георгія Липського", - "Василя Данилевича", - "Тополина", - "Тополиний", - "Топольського", - "Торгова", - "Травневий", - "Травневий 1-й", - "Травневий 2-й", - "Травневий 3-й", - "Травневий 4-й", - "Травневий 5-й", - "Тракторна", - "Трамвайна", - "Трамвайний", - "Транспортна", - "Траса Здоров'я", - "Троїцька", - "Миколи Троїцького", - "Тролейбусна", - "Трояндова", - "Трудова", - "Трудовий", - "Олександра Білостінного", - "Героїв УПА", - "Тупиковий", - "Тупиковий 1-й", - "Тупиковий 2-й", - "Андрія Сови", - "Туристська", - "Туристський", - "Тюльпанний", - "Угорська", - "Удільний", - "Українська", - "Український 1-й", - "Український 2-й", - "Український 3-й", - "Улицька", - "Уманська", - "Умова", - "Університетський", - "Уральська", - "Уральський", - "Урожайна", - "Усатівська", - "Успенська", - "Успенський", - "Ніли Крюкової", - "Училищна", - "Учительський", - "Учнівська", - "Багринова", - "Ушинського", - "Затишна", - "Ф. Пішеніна", - "Фабрична", - "Фестивальний", - "Флотська", - "Флотський 1-й", - "Флотський 2-й", - "Флотський 3-й", - "Флотський 4-й", - "Фонтанська дорога", - "Французький", - "Фруктовий", - "Хаджибейська дорога", - "Хаджибейський 1-й", - "Хаджибейський 2-й", - "Хаджибейський 3-й", - "Харківська", - "Хвойний", - "Херсонський", - "Херсонський сквер", - "Хімічна", - "Хімічний 1-й", - "Хімічний 2-й", - "Хімічний 3-й", - "Хлібна гавань", - "Художника Федорова", - "Хутірська", - "Хутірський", - "Цебриківська", - "Цегельнозаводська", - "Цегляна", - "Цементний", - "Центральна", - "Центральний аеропорт", - "Церковна", - "Цимлянська", - "Йоганна Ансельма", - "Театральний", - "Барвінковий", - "Черешнева", - "Черкаська", - "Чернишевського", - "Чернівецький", - "Чернігівська", - "Чернігівський", - "Артура Савельєва", - "Четверта", - "Журавлина", - "Чорноморка", - "Чорноморська", - "Чорноморський", - "Чорноморський", - "Чорноморський 1-й", - "Чорноморський 10-й", - "Чорноморський 11-й", - "Чорноморський 12-й", - "Чорноморський 13-й", - "Чорноморський 2-й", - "Чорноморський 3-й", - "Чорноморський 4-й", - "Чорноморський 5-й", - "Чорноморський 6-й", - "Чорноморський 7-й", - "Чорноморський 8-й", - "Чорноморський 9-й", - "Чорноморського козацтва", - "Чубаївська", - "Чубаївський", - "Чумацька", - "Шампанський", - "Шахтинський", - "Шебелінський", - "Шевченка", - "Шевченка парк", - "Шептицького", - "Шефська", - "Шилова", - "В'ячеслава Липинського", - "Ширяївський", - "Незамаївська", - "Олександра Мурашка", - "Шкільний", - "Шкільний аеродром", - "Шкіперська", - "Шкодова гора", - "Шовкуненка", - "Волокидіна", - "Шоста", - "Шостої 1-й", - "Шостої 2-й", - "Шота Руставелі", - "Штабний", - "Штильова", - "Штурвальна", - "Штурманська", - "Шухевича Романа", - "Щіпний", - "Щоглова", - "Щоголєва", - "Медовий", - "Ювілейний 1-й", - "Ювілейний 2-й", - "Юннатів", - "Юннатів 1-й", - "Юннатів 2-й", - "Юннатів 3-й", - "Олександра Юрженка", - "Юрія Олеші", - "Юрія Яновського", - "Юхима Геллера", - "Юхима Фесенка", - "Альтовий", - "Яблунева", - "Яблучна", - "Якірний", - "Ігоря Бедзая", - "Ялинкова", - "Ялинковий", - "Ігоря Бедзая", - "Ямчитського", - "Ярморочна площа", - "Яружний", - "Ясна", - "Семена Яхненка", - "Яші Гордієнка", - ] - - def city_prefix(self) -> str: - """ - :sample: - """ - return self.random_element(self.city_prefixes) - - def city_name(self) -> str: - """ - :sample: - """ - return self.random_element(self.city_names) - - def postcode(self) -> str: - """ - The code consists of five digits (01000-99999) - - :sample: - """ - return f"{self.generator.random.randrange(1000, 99999):05}" - - def street_prefix(self) -> str: - """ - :sample: - """ - return self.random_element(self.street_prefixes) - - def street_name(self) -> str: - """ - :sample: - """ - return self.random_element(self.street_titles) - - def street_title(self) -> str: - """ - :sample: - """ - prefix = self.street_prefix() - street = self.street_name() - return prefix + " " + street - - def region(self) -> str: - """ - :sample: - """ - return self.random_element(self.region_names) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/uk_UA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/uk_UA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 754464b..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/uk_UA/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/vi_VN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/vi_VN/__init__.py deleted file mode 100644 index 64bade2..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/vi_VN/__init__.py +++ /dev/null @@ -1,307 +0,0 @@ -"""This module provides address-related functionalities for Vietnamese addresses.""" - -from collections import OrderedDict -from typing import Optional, Tuple - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - """Provider for generating Vietnamese addresses. - Sources: - - # https://vi.wikipedia.org/wiki/B%E1%BA%A3n_m%E1%BA%ABu:K%C3%BD_hi%E1%BB%87u_quy_%C6%B0%E1%BB%9Bc_c%C3%A1c_t%E1%BB%89nh_th%C3%A0nh_Vi%E1%BB%87t_Nam - """ - - city_prefixes = ("Thành phố", "Quận", "Huyện", "Thị xã") - - city_suffixes = ( - "Thành phố", - "Quận", - "Huyện", - "Thị xã", - "Xã", - "Phường", - ) - - building_number_formats = ("###", "##", "#") - - street_suffixes = ( - "Đường", - "Ngõ", - "Hẻm", - "Làng", - "Khu", - "Tổ", - "Số", - "Dãy", - ) - - postcode_formats = ("######",) - - provinces = ( - "An Giang", - "Bà Rịa – Vũng Tàu", - "Bạc Liêu", - "Bắc Kạn", - "Bắc Giang", - "Bắc Ninh", - "Bến Tre", - "Bình Dương", - "Bình Định", - "Bình Phước", - "Bình Thuận", - "Cà Mau", - "Cao Bằng", - "Cần Thơ", - "Đà Nẵng", - "Đắk Lắk", - "Đắk Nông", - "Điện Biên", - "Đồng Nai", - "Đồng Tháp", - "Gia Lai", - "Hà Giang", - "Hà Nam", - "Hà Nội", - "Hà Tĩnh", - "Hải Dương", - "Hải Phòng", - "Hậu Giang", - "Hòa Bình", - "Thành phố Hồ Chí Minh", - "Hưng Yên", - "Khánh Hòa", - "Kiên Giang", - "Kon Tum", - "Lai Châu", - "Lạng Sơn", - "Lào Cai", - "Lâm Đồng", - "Long An", - "Nam Định", - "Nghệ An", - "Ninh Bình", - "Ninh Thuận", - "Phú Thọ", - "Phú Yên", - "Quảng Bình", - "Quảng Nam", - "Quảng Ngãi", - "Quảng Ninh", - "Quảng Trị", - "Sóc Trăng", - "Sơn La", - "Tây Ninh", - "Thái Bình", - "Thái Nguyên", - "Thanh Hóa", - "Thừa Thiên Huế", - "Tiền Giang", - "Trà Vinh", - "Tuyên Quang", - "Vĩnh Long", - "Vĩnh Phúc", - "Yên Bái", - ) - - provinces_abbr = ( - "AG", - "BV", - "BL", - "BK", - "BG", - "BN", - "BT", - "BD", - "BĐ", - "BP", - "BTh", - "CM", - "CB", - "CT", - "ĐNa", - "ĐL", - "ĐNo", - "ĐB", - "ĐN", - "ĐT", - "GL", - "HG", - "HNa", - "HN", - "HT", - "HD", - "HP", - "HGi", - "HB", - "SG", - "HY", - "KH", - "KG", - "KT", - "LC", - "LS", - "LCa", - "LĐ", - "LA", - "NĐ", - "NA", - "NB", - "NT", - "PT", - "PY", - "QB", - "QNa", - "QNg", - "QN", - "QT", - "ST", - "SL", - "TN", - "TB", - "TNg", - "TH", - "TTH", - "TG", - "TV", - "TQ", - "VL", - "VP", - "YB", - ) - - provinces_postcode = { - "AG": (88000, 88999), - "BV": (79000, 79999), - "BL": (96000, 96999), - "BK": (26000, 26999), - "BG": (23000, 23999), - "BN": (22000, 22999), - "BT": (93000, 93999), - "BD": (82000, 82999), - "BĐ": (59000, 59999), - "BP": (83000, 83999), - "BTh": (80000, 80999), - "CM": (97000, 97999), - "CB": (27000, 27999), - "CT": (92000, 92999), - "ĐNa": (55000, 55999), - "ĐL": (63000, 63999), - "ĐNo": (64000, 64999), - "ĐB": (38000, 38999), - "ĐN": (81000, 81999), - "ĐT": (87000, 87999), - "GL": (60000, 60999), - "HG": (31000, 31999), - "HNa": (40000, 40999), - "HN": (10000, 15999), - "HT": (48000, 48999), - "HD": (17000, 17999), - "HP": (18000, 18999), - "HGi": (91000, 91999), - "HB": (35000, 35999), - "SG": (70000, 76999), - "HY": (16000, 16999), - "KH": (65000, 65999), - "KG": (92000, 92999), - "KT": (58000, 58999), - "LC": (39000, 39999), - "LS": (24000, 24999), - "LCa": (33000, 33999), - "LĐ": (67000, 67999), - "LA": (85000, 85999), - "NĐ": (42000, 42999), - "NA": (46000, 47999), - "NB": (43000, 43999), - "NT": (66000, 66999), - "PT": (29000, 29999), - "PY": (62000, 62999), - "QB": (51000, 51999), - "QNa": (56000, 56999), - "QNg": (57000, 57999), - "QN": (20000, 20999), - "QT": (52000, 52999), - "ST": (95000, 95999), - "SL": (36000, 36999), - "TN": (84000, 84999), - "TB": (41000, 41999), - "TNg": (25000, 25999), - "TH": (44000, 45999), - "TTH": (53000, 53999), - "TG": (86000, 86999), - "TV": (94000, 94999), - "TQ": (30000, 30999), - "VL": (89000, 89999), - "VP": (28000, 28999), - "YB": (32000, 32999), - } - - address_formats = OrderedDict( - ( - ("{{street_address}}\n{{city}}, {{postcode}}", 25.0), - ("{{city}}\n{{street_address}}, {{postcode}}", 1.0), - ) - ) - - city_formats = ( - "{{city_prefix}} {{first_name}}{{city_suffix}}", - "{{first_name}}{{city_suffix}}", - ) - - street_name_formats = ( - "{{first_name}} {{street_suffix}}", - "{{last_name}} {{street_suffix}}", - ) - - street_address_formats = ("{{building_number}} {{street_name}}",) - - def city_prefix(self) -> str: - """Returns a random city prefix.""" - return self.random_element(self.city_prefixes) - - def administrative_unit(self) -> str: - """Returns a random administrative unit (province).""" - return self.random_element(self.provinces) - - state = administrative_unit - - def state_abbr(self) -> str: - """ - Returns a random two-letter abbreviation for Vietnamese provinces. - - """ - abbreviations: Tuple[str, ...] = self.provinces_abbr - return self.random_element(abbreviations) - - def postcode(self) -> str: - """Returns a random postcode.""" - return f"{self.generator.random.randint(100000, 999999):06d}" - - def postcode_in_state(self, state_abbr: Optional[str] = None) -> str: - """ - Returns a random postcode within the provided province abbreviation. - - :param state_abbr: A province abbreviation. - :returns: A random postcode within the provided province abbreviation. - """ - if state_abbr is None: - state_abbr = self.random_element(self.provinces_abbr) - - if state_abbr in self.provinces_abbr: - postcode = str( - self.generator.random.randint( - self.provinces_postcode[state_abbr][0], self.provinces_postcode[state_abbr][1] - ) - ) - - # zero left pad up until desired length (length is 6) - target_postcode_len = 6 - current_postcode_len = len(postcode) - if current_postcode_len < target_postcode_len: - pad = target_postcode_len - current_postcode_len - postcode = f"{'0' * pad}{postcode}" - - return postcode - - raise ValueError("Province Abbreviation not found in list") diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/vi_VN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/vi_VN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index bddd717..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/vi_VN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/zh_CN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/zh_CN/__init__.py deleted file mode 100644 index 726aeea..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/zh_CN/__init__.py +++ /dev/null @@ -1,449 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_suffixes = ("市", "县") - city_formats = ("{{city_name}}{{city_suffix}}", "{{first_name}}{{city_suffix}}") - - district_formats = ("{{district}}区",) - - building_number_formats = ("?座",) - postcode_formats = ("%#####",) - - street_suffixes = ("街", "路") - street_name_formats = ( - "{{city_name}}{{street_suffix}}", - "{{last_name}}{{street_suffix}}", - ) - street_address_formats = ("{{street_name}}{{building_number}}",) - - address_formats = ("{{province}}{{city}}{{district}}{{street_address}} {{postcode}}",) - - provinces = ( - "北京市", - "上海市", - "天津市", - "重庆市", - "内蒙古自治区", - "山西省", - "河北省", - "吉林省", - "江苏省", - "辽宁省", - "黑龙江省", - "安徽省", - "山东省", - "浙江省", - "江西省", - "福建省", - "湖南省", - "湖北省", - "河南省", - "广东省", - "广西壮族自治区", - "贵州省", - "海南省", - "四川省", - "云南省", - "陕西省", - "甘肃省", - "宁夏回族自治区", - "青海省", - "新疆维吾尔自治区", - "西藏自治区", - "台湾省", - "香港特别行政区", - "澳门特别行政区", - ) - districts = ( - "西夏", - "永川", - "秀英", - "高港", - "清城", - "兴山", - "锡山", - "清河", - "龙潭", - "华龙", - "海陵", - "滨城", - "东丽", - "高坪", - "沙湾", - "平山", - "城北", - "海港", - "沙市", - "双滦", - "长寿", - "山亭", - "南湖", - "浔阳", - "南长", - "友好", - "安次", - "翔安", - "沈河", - "魏都", - "西峰", - "萧山", - "金平", - "沈北新", - "孝南", - "上街", - "城东", - "牧野", - "大东", - "白云", - "花溪", - "吉区", - "新城", - "怀柔", - "六枝特", - "涪城", - "清浦", - "南溪", - "淄川", - "高明", - "东城", - "崇文", - "朝阳", - "大兴", - "房山", - "门头沟", - "黄浦", - "徐汇", - "静安", - "普陀", - "闵行", - "和平", - "蓟州", - "永川", - "长寿", - "璧山", - "合川", - "梁平", - "丰都", - "江北", - ) - cities = ( - "北京", - "上海", - "天津", - "重庆", - "哈尔滨", - "长春", - "沈阳", - "呼和浩特", - "石家庄", - "乌鲁木齐", - "兰州", - "西宁", - "西安", - "银川", - "郑州", - "济南", - "太原", - "合肥", - "武汉", - "长沙", - "南京", - "成都", - "贵阳", - "昆明", - "南宁", - "拉萨", - "杭州", - "南昌", - "广州", - "福州", - "台北", - "海口", - "香港", - "澳门", - "通辽", - "兴安盟", - "太原", - "辛集", - "邯郸", - "沈阳", - "辽阳", - "兴城", - "北镇", - "阜新", - "哈尔滨", - "齐齐哈尔", - "淮安", - "张家港", - "海门", - "六安", - "巢湖", - "马鞍山", - "永安", - "宁德", - "嘉禾", - "荆门", - "潜江", - "大冶", - "宜都", - "佛山", - "深圳", - "潮州", - "惠州", - "汕尾", - "东莞", - "梧州", - "柳州", - "合山", - "六盘水", - "关岭", - ) - countries = ( - "阿富汗", - "阿拉斯加", - "阿尔巴尼亚", - "阿尔及利亚", - "安道尔", - "安哥拉", - "安圭拉岛英", - "安提瓜和巴布达", - "阿根廷", - "亚美尼亚", - "阿鲁巴岛", - "阿森松", - "澳大利亚", - "奥地利", - "阿塞拜疆", - "巴林", - "孟加拉国", - "巴巴多斯", - "白俄罗斯", - "比利时", - "伯利兹", - "贝宁", - "百慕大群岛", - "不丹", - "玻利维亚", - "波斯尼亚和黑塞哥维那", - "博茨瓦纳", - "巴西", - "保加利亚", - "布基纳法索", - "布隆迪", - "喀麦隆", - "加拿大", - "加那利群岛", - "佛得角", - "开曼群岛", - "中非", - "乍得", - "智利", - "圣诞岛", - "科科斯岛", - "哥伦比亚", - "巴哈马国", - "多米尼克国", - "科摩罗", - "刚果", - "科克群岛", - "哥斯达黎加", - "克罗地亚", - "古巴", - "塞浦路斯", - "捷克", - "丹麦", - "迪戈加西亚岛", - "吉布提", - "多米尼加共和国", - "厄瓜多尔", - "埃及", - "萨尔瓦多", - "赤道几内亚", - "厄立特里亚", - "爱沙尼亚", - "埃塞俄比亚", - "福克兰群岛", - "法罗群岛", - "斐济", - "芬兰", - "法国", - "法属圭亚那", - "法属波里尼西亚", - "加蓬", - "冈比亚", - "格鲁吉亚", - "德国", - "加纳", - "直布罗陀", - "希腊", - "格陵兰岛", - "格林纳达", - "瓜德罗普岛", - "关岛", - "危地马拉", - "几内亚", - "几内亚比绍", - "圭亚那", - "海地", - "夏威夷", - "洪都拉斯", - "匈牙利", - "冰岛", - "印度", - "印度尼西亚", - "伊郎", - "伊拉克", - "爱尔兰", - "以色列", - "意大利", - "科特迪瓦", - "牙买加", - "日本", - "约旦", - "柬埔塞", - "哈萨克斯坦", - "肯尼亚", - "基里巴斯", - "朝鲜", - "韩国", - "科威特", - "吉尔吉斯斯坦", - "老挝", - "拉脱维亚", - "黎巴嫩", - "莱索托", - "利比里亚", - "利比亚", - "列支敦士登", - "立陶宛", - "卢森堡", - "北马其顿", - "马达加斯加", - "马拉维", - "马来西亚", - "马尔代夫", - "马里", - "马耳他", - "马里亚纳群岛", - "马绍尔群岛", - "马提尼克", - "毛里塔尼亚", - "毛里求斯", - "马约特岛", - "墨西哥", - "密克罗尼西亚", - "中途岛", - "摩尔多瓦", - "摩纳哥", - "蒙古", - "蒙特塞拉特岛", - "摩洛哥", - "莫桑比克", - "缅甸", - "纳米比亚", - "瑙鲁", - "尼泊尔", - "荷兰", - "荷属安的列斯群岛", - "新喀里多尼亚群岛", - "新西兰", - "尼加拉瓜", - "尼日尔", - "尼日利亚", - "纽埃岛", - "诺福克岛", - "挪威", - "阿曼", - "帕劳", - "巴拿马", - "巴布亚新几内亚", - "巴拉圭", - "秘鲁", - "菲律宾", - "波兰", - "葡萄牙", - "巴基斯坦", - "波多黎各", - "卡塔尔", - "留尼汪岛", - "罗马尼亚", - "俄罗斯", - "卢旺达", - "东萨摩亚", - "西萨摩亚", - "圣马力诺", - "圣皮埃尔岛及密克隆岛", - "圣多美和普林西比", - "沙特阿拉伯", - "塞内加尔", - "塞舌尔", - "新加坡", - "斯洛伐克", - "斯洛文尼亚", - "所罗门群岛", - "索马里", - "南非", - "西班牙", - "斯里兰卡", - "圣克里斯托弗和尼维斯", - "圣赫勒拿", - "圣卢西亚", - "圣文森特岛", - "苏丹", - "苏里南", - "斯威士兰", - "瑞典", - "瑞士", - "叙利亚", - "塔吉克斯坦", - "坦桑尼亚", - "泰国", - "阿拉伯联合酋长国", - "多哥", - "托克劳群岛", - "汤加", - "特立尼达和多巴哥", - "突尼斯", - "土耳其", - "土库曼斯坦", - "特克斯和凯科斯群岛", - "图瓦卢", - "美国", - "乌干达", - "乌克兰", - "英国", - "乌拉圭", - "乌兹别克斯坦", - "瓦努阿图", - "梵蒂冈", - "委内瑞拉", - "越南", - "维尔京群岛", - "维尔京群岛和圣罗克伊", - "威克岛", - "瓦里斯和富士那群岛", - "西撒哈拉", - "也门", - "南斯拉夫", - "扎伊尔", - "赞比亚", - "桑给巴尔", - "津巴布韦", - "中华人民共和国", - "中国", - ) - - def building_number(self) -> str: - return self.lexify(self.random_element(self.building_number_formats)) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.provinces) - - province = administrative_unit - - def district(self) -> str: - return self.random_element(self.districts) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/zh_CN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/zh_CN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index cad3675..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/zh_CN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/zh_TW/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/zh_TW/__init__.py deleted file mode 100644 index 7f2decb..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/zh_TW/__init__.py +++ /dev/null @@ -1,388 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{city_name}}", "{{city_name}}{{city_name_suffix}}") - building_number_formats = ("%號", "%#號", "%##號") - postcode_formats = ("%####", "%##") - section_formats = ("", "", "", "", "%段") - street_address_formats = ("{{street_name}}{{street_name_suffix}}{{section_number}}{{building_number}}",) - address_formats = ("{{postcode}} {{city}}{{street_address}}{{secondary_address}}",) - secondary_address_formats = ("#樓", "之#") - - street_names = ( - "中正", - "中山", - "民生", - "中華", - "和平", - "中興", - "仁愛", - "復興", - "民族", - "民權", - "忠孝", - "信義", - "成功", - "新興", - "新生", - "動物園", - "淡水", - "新生", - "文化", - "大同", - "三民", - "新生", - "光復", - "自強", - "光明", - "公園", - "文山", - "松山", - "新店", - "建國", - "西門", - "古亭", - "迴龍", - "中山", - "新莊", - "蘆洲", - "永安", - "四維", - "大橋頭", - "府中", - "福德", - "大同", - "文昌", - "土城", - "博愛", - "象山", - "光華", - "太平", - "水源", - "莒光", - "廣慈", - "大仁", - "中央", - "大智", - "林森", - "長春", - "南", - "劍南", - "大坪", - "國凱" "八德", - "天母", - "東興", - "勝利", - "頂福州", - "東湖", - "大勇", - "民有", - "自由", - "長安", - "明德", - "大安", - "龍山寺", - "德", - "忠義", - "中和", - "自由", - "新埔", - "永和", - "延平", - "正義", - "五福", - "華興", - "育英", - "平和", - "福安", - "小碧潭", - "永寧", - "育英", - "興", - "自立", - "民享", - "昆陽", - "民治", - "關渡", - "學府", - "奇岩", - "紅樹林", - "和街", - "民富", - "關渡", - "北投", - "石牌", - "芝山", - "景美", - "士林", - "劍潭", - "雙連", - "新北投", - "萬隆", - ) - - street_suffixes = ("路", "街", "巷") - - cities = ( - "基隆", - "台北", - "新北", - "桃園", - "新竹", - "新竹", - "苗栗", - "台中", - "彰化", - "南投", - "雲林", - "嘉義", - "桃園", - "台南", - "高雄", - "屏東", - "台東", - "花蓮", - "宜蘭", - "澎湖", - "金門", - "連江", - "太保", - "朴子", - "馬公", - "頭份", - "臺東", - "斗六", - "員林", - "竹北", - "平鎮", - "臺中", - "八德", - "板橋", - "大里", - "鳳山", - "豐原", - "蘆洲", - "蘆竹", - "三重", - "樹林", - "太平", - "新營", - "新營", - "汐止", - "楊梅", - "永和", - "永康", - "中和", - "中壢", - "阿里山", - "白沙", - "褒忠", - "北斗", - "北竿", - "北港", - "卑南", - "草屯", - "梅山", - "牡丹", - "橫山", - "光復", - "關山", - "古坑", - "竹田", - ) - - city_suffixes = ("市", "縣") - - # from - countries = ( - "阿爾巴尼亞", - "剛果共和國", - "阿爾及利亞", - "丹麥", - "安哥拉", - "多明尼加", - "安圭拉", - "多米尼克", - "阿根廷", - "厄瓜多爾", - "亞美尼亞", - "埃及", - "阿路巴", - "薩爾瓦多", - "澳大利亞", - "厄利垂亞", - "奧地利", - "愛沙尼亞", - "亞塞拜然", - "衣索匹亞", - "巴哈馬", - "斐濟", - "巴林", - "芬蘭", - "孟加拉", - "法屬玻里尼西亞", - "法國", - "巴貝多", - "加彭", - "白俄羅斯", - "喬治亞", - "比利時", - "德國", - "貝里斯", - "迦納", - "貝南", - "直布羅陀", - "百慕達", - "英國", - "不丹", - "希臘", - "玻利維亞", - "格瑞那達", - "波希尼亞及赫塞哥維那", - "瓜地馬拉", - "波札那", - "幾內亞", - "巴西", - "蓋亞那", - "汶萊", - "海地", - "保加利亞", - "宏都拉斯", - "布吉納法索", - "香港", - "蒲隆地", - "匈牙利", - "柬埔寨", - "冰島", - "喀麥隆", - "印度", - "加拿大", - "印尼", - "維德角島", - "依朗", - "開曼群島", - "伊拉克", - "中非共和國", - "愛爾蘭", - "查德", - "以色列", - "智利", - "義大利", - "中國大陸", - "牙買加", - "哥倫比亞", - "日本", - "剛果", - "約旦", - "科克群島", - "肯亞", - "哥斯大黎加", - "韓國", - "象牙海岸", - "科威特", - "克羅埃西亞", - "寮國", - "塞浦路斯", - "拉脫維亞", - "捷克", - "賴索托", - "盧森堡", - "聖露西亞", - "澳門", - "聖文森及格瑞那丁", - "北馬其頓", - "聖多美及普林西比", - "馬達加斯加", - "沙烏地阿拉伯", - "馬拉威", - "塞內加爾", - "馬來西亞", - "塞席爾", - "馬爾地夫", - "獅子山", - "馬利", - "新加坡", - "馬爾他", - "斯洛伐克", - "模里西斯", - "斯洛維尼亞", - "茅利塔尼亞", - "索羅門群島", - "墨西哥", - "索馬利亞", - "摩爾多瓦", - "南非", - "蒙古", - "西班牙", - "摩洛哥", - "斯里蘭卡", - "緬甸", - "蘇丹", - "納米比亞", - "蘇利南", - "諾魯", - "史瓦濟蘭", - "尼泊爾", - "瑞典", - "荷蘭", - "瑞士", - "新喀里多尼亞", - "敘利亞", - "紐西蘭", - "坦尚尼亞", - "尼日", - "泰國", - "奈及利亞", - "多哥", - "挪威", - "千里達及托貝哥", - "阿曼", - "突尼西亞", - "巴基斯坦", - "土耳其", - "巴拿馬", - "烏干達", - "巴布亞紐幾內亞", - "烏克蘭", - "巴拉圭", - "阿拉伯聯合大公國", - "秘魯", - "美國", - "菲律賓", - "烏拉圭", - "波蘭", - "委內瑞拉", - "葡萄牙", - "越南", - "卡達", - "西薩摩亞", - "羅馬尼亞", - "葉門", - "俄羅斯", - "尚比亞", - "盧安達", - "辛巴威", - "聖克里斯多福及尼維斯", - ) - - def secondary_address(self) -> str: - return self.numerify(self.random_element(self.secondary_address_formats)) - - def building_number(self) -> str: - return self.numerify(self.random_element(self.building_number_formats)) - - def street_name(self) -> str: - return self.random_element(self.street_names) - - def street_name_suffix(self) -> str: - return self.random_element(self.street_suffixes) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def city_name_suffix(self) -> str: - return self.random_element(self.city_suffixes) - - def section_number(self) -> str: - return self.numerify(self.random_element(self.section_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/zh_TW/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/zh_TW/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 568ad9d..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/zh_TW/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/zu_ZA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/zu_ZA/__init__.py deleted file mode 100644 index 423ab97..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/zu_ZA/__init__.py +++ /dev/null @@ -1,230 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - """ - Address Provider for the zu_ZA locale (Zulu, South Africa). - - Data sourced from: - - South African cities and towns: https://en.wikipedia.org/wiki/List_of_cities_and_towns_in_South_Africa - - South African postal codes: https://en.wikipedia.org/wiki/List_of_postal_codes_in_South_Africa - - Languages of South Africa: https://en.wikipedia.org/wiki/Languages_of_South_Africa - """ - - city_formats = ("{{city_name}}",) - building_number_formats = ("%#", "%##", "%###") - postcode_formats = ("%###",) # Güncellendi: 4 haneli posta kodu için - section_formats = ("",) - street_address_formats = ("{{building_number}} {{street_name}} {{street_suffix}}",) - address_formats = ("{{street_address}}, {{city}}, {{postcode}}",) - secondary_address_formats = ("Flat #%#", "Unit #%#", "Suite #%#") - - street_names = ( - "Main", - "Church", - "President", - "Voortrekker", - "Nelson Mandela", - "Albertina Sisulu", - "Rivonia", - "Jan Smuts", - "Commissioner", - "Long", - "High", - "Short", - "Victoria", - "Queen", - "King", - "Oxford", - "George", - "William", - "York", - "Smith", - "Adelaide", - "Charles", - "Churchill", - "Cecil", - "Clarence", - "Edward", - "Elizabeth", - "Frere", - "Gandhi", - "Grey", - "James", - "Joseph", - "Milner", - "Napier", - "Paul Kruger", - "Prince", - "Somerset", - "Stanley", - "Thomas", - "Walter Sisulu", - "West", - ) - - street_suffixes = ("Umgwaqo", "Indlela", "Isitaladi", "Ithafa", "Indawo") - - cities = ( - "eGoli", - "eThekwini", - "iBhayi", - "iKapa", - "uMgungundlovu", - "Polokwane", - "Mbombela", - "Mahikeng", - "Kimberley", - "Bloemfontein", - "Rustenburg", - "Soweto", - "Benoni", - "Tembisa", - "Welkom", - "Vereeniging", - "Chatsworth", - "Uitenhage", - "Middelburg", - "Springs", - "Randfontein", - "Boksburg", - "Witbank", - "Klerksdorp", - "Bethlehem", - "George", - "Upington", - "Musina", - "Vanderbijlpark", - "Stellenbosch", - "Krugersdorp", - "Sasolburg", - "Centurion", - "Newcastle", - "Thohoyandou", - "Potchefstroom", - "Kathu", - "Paarl", - ) - - city_suffixes = ("",) - - countries = ( - "iNingizimu Afrika", - "Botswana", - "Lesotho", - "Namibia", - "Eswatini", - "Zimbabwe", - "Mozambique", - "Angola", - "Zambia", - "Malawi", - "Madagascar", - "Tanzania", - "Kenya", - "Nigeria", - "Ghana", - "Egypt", - "Morocco", - "Tunisia", - "Algeria", - "Ethiopia", - "Sudan", - "Somalia", - "Uganda", - "Cameroon", - "DR Congo", - "Rwanda", - "Burundi", - "Senegal", - "Mali", - "Ivory Coast", - "Niger", - "Chad", - "Mauritania", - "Eritrea", - "Djibouti", - "Cape Verde", - "Seychelles", - "Mauritius", - "Comoros", - "Gambia", - "Liberia", - "Sierra Leone", - "Benin", - "Togo", - "Equatorial Guinea", - "Gabon", - "Congo", - "Central African Republic", - "Sao Tome and Principe", - "Guinea", - "Guinea-Bissau", - "Burkina Faso", - ) - - provinces = ( - "iMpuma-Kapa", - "Freistata", - "eGoli", - "iKwaZulu-Natali", - "Limpopo", - "iMpumalanga", - "Bokone Bophirima", - "Noord-Kaap", - "Wes-Kaap", - ) - - def secondary_address(self) -> str: - """ - :sample: - """ - return self.numerify(self.random_element(self.secondary_address_formats)) - - def building_number(self) -> str: - """ - :sample: - """ - return self.numerify(self.random_element(self.building_number_formats)) - - def street_name(self) -> str: - """ - :sample: - """ - return self.random_element(self.street_names) - - def street_suffix(self) -> str: - """ - :sample: - """ - return self.random_element(self.street_suffixes) - - def city_name(self) -> str: - """ - :sample: - """ - return self.random_element(self.cities) - - def city_name_suffix(self) -> str: - """ - :sample: - """ - return self.random_element(self.city_suffixes) - - def section_number(self) -> str: - """ - :sample: - """ - return self.numerify(self.random_element(self.section_formats)) - - def province(self) -> str: - """ - :sample: - """ - return self.random_element(self.provinces) - - def administrative_unit(self) -> str: - """ - :sample: - """ - return self.random_element(self.provinces) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/zu_ZA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/zu_ZA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 98de583..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/address/zu_ZA/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/__init__.py deleted file mode 100644 index cb87a7f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/__init__.py +++ /dev/null @@ -1,63 +0,0 @@ -import re - -from string import ascii_uppercase - -from .. import BaseProvider, ElementsType - -localized = True - - -def calculate_vin_str_weight(s: str, weight_factor: list) -> int: - """ - multiply s(str) by weight_factor char by char - e.g. - input: s="ABCDE", weight_factor=[1, 2, 3, 4, 5] - return: A*1 + B*2 + C*3 + D*4 + E*5 - - will multiply 0 when len(weight_factor) less than len(s) - """ - - def _get_char_weight(c: str) -> int: - """A=1, B=2, ...., I=9, - J=1, K=2, ..., R=9, - S=2, T=3, ..., Z=9 - """ - if ord(c) <= 64: # 0-9 - return int(c) - if ord(c) <= 73: # A-I - return ord(c) - 64 - if ord(c) <= 82: # J-R - return ord(c) - 73 - # S-Z - return ord(c) - 81 - - res = 0 - for i, c in enumerate(s): - res += _get_char_weight(c) * weight_factor[i] if i < len(weight_factor) else 0 - return res - - -class Provider(BaseProvider): - """Implement default automotive provider for Faker.""" - - license_formats: ElementsType = () - - def license_plate(self) -> str: - """Generate a license plate.""" - temp = re.sub( - r"\?", - lambda x: self.random_element(ascii_uppercase), - self.random_element(self.license_formats), - ) - return self.numerify(temp) - - def vin(self) -> str: - """Generate vin number.""" - vin_chars = "1234567890ABCDEFGHJKLMNPRSTUVWXYZ" # I, O, Q are restricted - front_part = self.bothify("????????", letters=vin_chars) - rear_part = self.bothify("????####", letters=vin_chars) - front_part_weight = calculate_vin_str_weight(front_part, [8, 7, 6, 5, 4, 3, 2, 10]) - rear_part_weight = calculate_vin_str_weight(rear_part, [9, 8, 7, 6, 5, 4, 3, 2]) - checksum = (front_part_weight + rear_part_weight) % 11 - checksum_char = "X" if checksum == 10 else str(checksum) - return front_part + checksum_char + rear_part diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 65d6b1e..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_BH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_BH/__init__.py deleted file mode 100644 index 672b941..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_BH/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``ar_BH`` locale. - - Source: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Bahrain - """ - - license_formats = ("######",) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_BH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_BH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1c6fcb7..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_BH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_DZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_DZ/__init__.py deleted file mode 100644 index 0e9d8ec..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_DZ/__init__.py +++ /dev/null @@ -1,20 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``ar_DZ`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Algeria - """ - - WILAYA_CODES = tuple(f"{i:02d}" for i in range(1, 59)) - VEHICLE_CLASSES = tuple("123456789") - - def license_plate(self) -> str: - serial = self.numerify("#####") - vehicle_class = self.random_element(self.VEHICLE_CLASSES) - year = self.numerify("##") - wilaya = self.random_element(self.WILAYA_CODES) - return f"{serial} {vehicle_class}{year} {wilaya}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_DZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_DZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d1bd0cb..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_DZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_JO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_JO/__init__.py deleted file mode 100644 index c258108..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_JO/__init__.py +++ /dev/null @@ -1,53 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``ar_JO`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Jordan - """ - - license_formats = ( - "{{initials}}-####", - "{{initials}}-#####", - ) - - def initials(self) -> str: - """Generate an initial number for license plates.""" - return self.random_element( - [ - "1", # Ministers - "2", - "3", # Parliament - "5", # General Government - "6", # Aqaba free zone - "7", - "8", # Diplomatic - "9", # Temporary - "10", - "23", # Passenger cars - "38", - "39", # Crew cabs - "41", - "42", # Light goods vehicles - "44", # Tractors - "46", # Motorcycles and scooters - "50", # Taxi - "56", # Small buses - "58", # Coaches - "60", # HGVs - "70", # Rental Cars - "71", # Trailer - "90", # Army - "95", # Ambulance - "96", # Gendarmerie - "99", # Police - ] - ) - - def license_plate(self) -> str: - """Generate a license plate.""" - pattern: str = self.random_element(self.license_formats) - return self.numerify(self.generator.parse(pattern)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_JO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_JO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4742cca..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_JO/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_PS/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_PS/__init__.py deleted file mode 100644 index 2d9f3f4..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_PS/__init__.py +++ /dev/null @@ -1,64 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``ar_PS`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_the_Palestinian_National_Authority - """ - - license_formats = ( - # Private vehicles - "{{district}}-####-3#", - "{{district}}-####-4#", - "{{district}}-####-7#", - "{{district}}-####-9#", - # Public transport - "{{district}}-####-30", - # Authority vehicles - "####", - # New police vehicles - "####-99", - # Gaza strip after 2012 - # Private - "1-####-0#", - "3-####-0#", - # Commercial - "1-####-1#", - "3-####-1#", - # Public - "1-####-2#", - "3-####-2#", - # Municipal - "1-####-4#", - "3-####-4#", - # Governmental, and Governmental personal vehicles - "1-####-5#", - "3-####-5#", - ) - - def district(self) -> str: - """Generate a district code for license plates.""" - return self.random_element( - [ - # Gaza Strip - "1", - "3", - # Northern West Bank (Nablus, Tulkarm, Qalqilya, Jenin) - "4", - "7", - # Central West Bank (Ramallah, Jerusalem, Jericho) - "5", - "6", - # Southern West Bank (Bethlehem, Hebron) - "8", - "9", - ] - ) - - def license_plate(self) -> str: - """Generate a license plate.""" - pattern: str = self.random_element(self.license_formats) - return self.numerify(self.generator.parse(pattern)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_PS/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_PS/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e9ca83b..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_PS/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_SA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_SA/__init__.py deleted file mode 100644 index 6b7ee49..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_SA/__init__.py +++ /dev/null @@ -1,89 +0,0 @@ -import re - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``ar_SA`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Saudi_Arabia - - .. |license_plate_en| replace:: - :meth:`license_plate_en()` - """ - - LICENSE_FORMAT_EN = "#### ???" - LICENSE_FORMAT_AR = "? ? ? ####" - - PLATE_CHARS_EN = "ABDEGHJKLNRSTUVXZ" - PLATE_CHARS_AR = "أبدعقهحكلنرسطوىصم" - - PLATE_MAP = { - "A": "ا", - "B": "ب", - "D": "د", - "E": "ع", - "G": "ق", - "H": "ه", - "J": "ح", - "K": "ك", - "L": "ل", - "N": "ن", - "R": "ر", - "S": "س", - "T": "ط", - "U": "و", - "V": "ى", - "X": "ص", - "Z": "م", - "0": "٠", - "1": "١", - "2": "٢", - "3": "٣", - "4": "٤", - "5": "٥", - "6": "٦", - "7": "٧", - "8": "٨", - "9": "٩", - } - - def license_plate_en(self) -> str: - """Generate a license plate in Latin/Western characters.""" - return self.bothify( - self.LICENSE_FORMAT_EN, - letters=self.PLATE_CHARS_EN, - ) - - def license_plate_ar(self) -> str: - """Generate a license plate in Arabic characters. - - This method first generates a license plate in Latin/Western characters - using |license_plate_en|, and the result is translated internally to - generate the Arabic counterpart which serves as this method's return - value. - """ - english_plate = self.license_plate_en() - return self._translate_license_plate(english_plate) - - def _translate_license_plate(self, license_plate: str) -> str: - nums = list(reversed(license_plate[0:4])) - chars = list(license_plate[5:8]) - - numerated = re.sub( - r"\#", - lambda x: self.PLATE_MAP[nums.pop()], - self.LICENSE_FORMAT_AR, - ) - ar_plate = re.sub( - r"\?", - lambda x: self.PLATE_MAP[chars.pop()], - numerated, - ) - - return ar_plate - - def license_plate(self, ar: bool = True) -> str: - return self.license_plate_ar() if ar else self.license_plate_en() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_SA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_SA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d5076c0..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_SA/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/az_AZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/az_AZ/__init__.py deleted file mode 100644 index a866f36..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/az_AZ/__init__.py +++ /dev/null @@ -1,97 +0,0 @@ -import re - -from .. import Provider as AutoProvider - - -class Provider(AutoProvider): - """Implement license formats for ``az_AZ`` locale.""" - - license_formats = ("##-??-###",) - ascii_uppercase_azerbaijan = "ABCDEFGHXIJKQLMNOPRSTUVYZ" - license_plate_initial_numbers = ( - "01", - "02", - "03", - "04", - "05", - "06", - "07", - "08", - "09", - "10", - "90", - "11", - "12", - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "21", - "22", - "23", - "24", - "25", - "26", - "27", - "28", - "29", - "30", - "31", - "32", - "33", - "34", - "35", - "36", - "37", - "38", - "39", - "40", - "41", - "42", - "43", - "44", - "45", - "46", - "47", - "48", - "49", - "50", - "51", - "52", - "53", - "54", - "55", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "66", - "67", - "68", - "69", - "70", - "71", - "72", - "77", - "85", - ) - - def license_plate(self) -> str: - """Generate a license plate.""" - temp = re.sub( - r"\?", - lambda x: self.random_element(self.ascii_uppercase_azerbaijan), - self.random_element(self.license_formats), - ) - temp = temp.replace("##", self.random_element(self.license_plate_initial_numbers), 1) - # temp = temp.format(self.random_element(range(1, 999))) - return self.numerify(temp) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/az_AZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/az_AZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4d2b938..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/az_AZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/bn_BD/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/bn_BD/__init__.py deleted file mode 100644 index 807b1b6..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/bn_BD/__init__.py +++ /dev/null @@ -1,253 +0,0 @@ -from faker.providers.person.bn_BD import translate_to_bengali_digits - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``bn_BD`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Bangladesh - """ - - # noinspection DuplicatedCode - cities = ( - "বরগুনা", - "বরিশাল", - "বরিশাল মেট্রো", - "ভোলা", - "বান্দরবান", - "ব্রাহ্মণবাড়িয়া", - "বাগেরহাট", - "বগুড়া", - "চাঁদপুর", - "চট্টগ্রাম", - "চট্ট মেট্রো", - "কুমিল্লা", - "কক্সবাজার", - "চুয়াডাঙ্গা", - "ঢাকা", - "ঢাকা মেট্রো", - "দিনাজপুর", - "ফরিদপুর", - "ফেনী", - "গাজীপুর", - "গোপালগঞ্জ", - "গাইবান্ধা", - "হবিগঞ্জ", - "ঝালকাঠি", - "যশোর", - "ঝিনাইদহ", - "জামালপুর", - "জয়পুরহাট", - "খাগড়াছড়ি", - "কিশোরগঞ্জ", - "খুলনা", - "খুলনা মেট্রো", - "কুষ্টিয়া", - "কুড়িগ্রাম", - "লক্ষ্মীপুর", - "লালমনিরহাট", - "মাদারীপুর", - "মানিকগঞ্জ", - "মুন্সীগঞ্জ", - "মাগুরা", - "মেহেরপুর", - "ময়মনসিংহ", - "মৌলভীবাজার", - "নোয়াখালী", - "নারায়ণগঞ্জ", - "নরসিংদী", - "নড়াইল", - "নেত্রকোণা", - "নওগাঁ", - "নাটোর", - "চাঁপাইনবাবগঞ্জ", - "নীলফামারী", - "পটুয়াখালী", - "পিরোজপুর", - "পাবনা", - "পঞ্চগড়", - "রাঙ্গামাটি", - "রাজবাড়ী", - "রাজশাহী", - "রাজ মেট্রো", - "রংপুর", - "শরীয়তপুর", - "সাতক্ষীরা", - "শেরপুর", - "সিরাজগঞ্জ", - "সুনামগঞ্জ", - "সিলেট", - "সিলেট মেট্রো", - "টাঙ্গাইল", - "ঠাকুরগাঁও", - ) - - vehicle_category_letters = ( - "অ", - "ই", - "উ", - "এ", - "ক", - "খ", - "গ", - "ঘ", - "ঙ", - "চ", - "ছ", - "জ", - "ঝ", - "ত", - "থ", - "ঢ", - "ড", - "ট", - "ঠ", - "দ", - "ধ", - "ন", - "প", - "ফ", - "ব", - "ভ", - "ম", - "য", - "র", - "ল", - "শ", - "স", - "হ", - ) - - vehicle_category_numbers = ( - "১১", - "১২", - "১৩", - "১৪", - "১৫", - "১৬", - "১৭", - "১৮", - "১৯", - "২০", - "২১", - "২২", - "২৩", - "২৪", - "২৫", - "২৬", - "২৭", - "২৮", - "২৯", - "৩০", - "৩১", - "৩২", - "৩৩", - "৩৪", - "৩৫", - "৩৬", - "৩৭", - "৩৮", - "৩৯", - "৪০", - "৪১", - "৪২", - "৪৩", - "৪৪", - "৪৫", - "৪৬", - "৪৭", - "৪৮", - "৪৯", - "৫০", - "৫১", - "৫২", - "৫৩", - "৫৪", - "৫৫", - "৫৬", - "৫৭", - "৫৮", - "৫৯", - "৬০", - "৬১", - "৬২", - "৬৩", - "৬৪", - "৬৫", - "৬৬", - "৬৭", - "৬৮", - "৬৯", - "৭০", - "৭১", - "৭২", - "৭৩", - "৭৪", - "৭৫", - "৭৬", - "৭৭", - "৭৮", - "৭৯", - "৮০", - "৮১", - "৮২", - "৮৩", - "৮৪", - "৮৫", - "৮৬", - "৮৭", - "৮৮", - "৮৯", - "৯০", - "৯১", - "৯২", - "৯৩", - "৯৪", - "৯৫", - "৯৬", - "৯৭", - "৯৮", - "৯৯", - ) - - vehicle_serial_number_formats = ("%###",) - - license_plate_formats = ( - "{{city_name}}-{{vehicle_category_letter}} {{vehicle_category_number}}-{{vehicle_serial_number}}", - ) - - def city_name(self) -> str: - """ - :example: 'ঢাকা মেট্রো' - """ - return self.random_element(self.cities) - - def vehicle_category_letter(self) -> str: - """ - :example: 'ব' - """ - return self.random_element(self.vehicle_category_letters) - - def vehicle_category_number(self) -> str: - """ - :example: '১১' - """ - return self.random_element(self.vehicle_category_numbers) - - def vehicle_serial_number(self) -> str: - """ - Generate a 4 digits vehicle serial number. - :example: '৫৪৩২' - """ - return translate_to_bengali_digits(self.numerify(self.random_element(self.vehicle_serial_number_formats))) - - def license_plate(self) -> str: - """ - Generate a license plate. - :example: 'বরিশাল-ভ ৬৭-৪৫৯৩' - """ - pattern: str = self.random_element(self.license_plate_formats) - return self.generator.parse(pattern) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/bn_BD/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/bn_BD/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index c9eb809..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/bn_BD/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/da_DK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/da_DK/__init__.py deleted file mode 100644 index 8eabda1..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/da_DK/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``da_DK`` locale. - Source: https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Denmark - """ - - license_formats = ("?? ## ###",) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/da_DK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/da_DK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e8d74c6..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/da_DK/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_AT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_AT/__init__.py deleted file mode 100644 index 184bc14..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_AT/__init__.py +++ /dev/null @@ -1,177 +0,0 @@ -import string - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``de_AT`` locale. - - Sources: - - - https://de.wikipedia.org/wiki/Kfz-Kennzeichen_(%C3%96sterreich) - """ - - license_plate_prefix = ( - "A", - "AM", - "B", - "BA", - "BB", - "BD", - "BG", - "BH", - "BK", - "BL", - "BM", - "BN", - "BP", - "BR", - "BZ", - "DL", - "DO", - "E", - "EF", - "EU", - "FB", - "FE", - "FF", - "FK", - "FR", - "FV", - "FW", - "G", - "GB", - "GD", - "GF", - "GK", - "GM", - "GR", - "GS", - "GU", - "HA", - "HB", - "HE", - "HF", - "HL", - "HO", - "I", - "IL", - "IM", - "JE", - "JO", - "JU", - "JW", - "K", - "KB", - "KD", - "KF", - "KG", - "KI", - "KK", - "KL", - "KO", - "KR", - "KS", - "KU", - "L", - "LA", - "LB", - "LD", - "LE", - "LF", - "LI", - "LK", - "LL", - "LN", - "LZ", - "MA", - "MD", - "ME", - "MI", - "MT", - "MU", - "MZ", - "N", - "ND", - "NK", - "O", - "OP", - "OW", - "P", - "PE", - "PL", - "PT", - "RA", - "RE", - "RI", - "RO", - "S", - "SB", - "SD", - "SE", - "SK", - "SL", - "SO", - "SP", - "SR", - "ST", - "SV", - "SW", - "SZ", - "T", - "TA", - "TD", - "TK", - "TU", - "UU", - "V", - "VB", - "VD", - "VI", - "VK", - "VL", - "VO", - "W", - "WB", - "WD", - "WE", - "WK", - "WL", - "WN", - "WO", - "WT", - "WU", - "WY", - "WZ", - "ZE", - "ZT", - "ZW", - ) - - license_plate_suffix_for_one_starting_letter = ("-%# ???", "-%## ???", "-%## ??", "-%### ??", "-%### ?", "-%#### ?") - - license_plate_suffix_for_two_starting_letters = ( - "-% ???", - "-%# ???", - "-%# ??", - "-%## ??", - "-%## ?", - "-%### ?", - ) - - def license_plate(self) -> str: - """Generate a license plate.""" - prefix: str = self.random_element(self.license_plate_prefix) - - if len(prefix) == 1: - suffix = self.bothify( - self.random_element(self.license_plate_suffix_for_one_starting_letter), - letters=string.ascii_uppercase, - ) - else: - suffix = self.bothify( - self.random_element(self.license_plate_suffix_for_two_starting_letters), - letters=string.ascii_uppercase, - ) - - return prefix + suffix diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_AT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_AT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7515cf2..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_AT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_CH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_CH/__init__.py deleted file mode 100644 index d6cfcbd..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_CH/__init__.py +++ /dev/null @@ -1,44 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``de_CH`` locale. - - Sources: - - - https://de.wikipedia.org/wiki/Kontrollschild_(Schweiz)#Kantone - """ - - __canton = ( - ("AG", "%## ###"), - ("AR", "%# ###"), - ("AI", "%# ###"), - ("BL", "%## ###"), - ("BS", "%## ###"), - ("BE", "%## ###"), - ("FR", "%## ###"), - ("GE", "%## ###"), - ("GL", "%# ###"), - ("GR", "%## ###"), - ("JU", "%# ###"), - ("LU", "%## ###"), - ("NE", "%## ###"), - ("NW", "%# ###"), - ("OW", "%# ###"), - ("SH", "%# ###"), - ("SZ", "%## ###"), - ("SO", "%## ###"), - ("SG", "%## ###"), - ("TI", "%## ###"), - ("TG", "%## ###"), - ("UR", "%# ###"), - ("VD", "%## ###"), - ("VS", "%## ###"), - ("ZG", "%## ###"), - ("ZH", "%## ###"), - ) - - def license_plate(self) -> str: - """Generate a license plate.""" - plate: tuple = self.random_element(self.__canton) - return f"{plate[0]}-{self.numerify(plate[1])}".strip() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_CH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_CH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a3fb0ff..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_CH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_DE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_DE/__init__.py deleted file mode 100644 index 7bf5bb7..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_DE/__init__.py +++ /dev/null @@ -1,430 +0,0 @@ -import string - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``de_DE`` locale. - - Sources: - - - http://berlin.de/daten/liste-der-kfz-kennzeichen/kfz-kennz-d.csv - """ - - license_plate_prefix = ( - "A", - "AA", - "AB", - "ABI", - "ABG", - "AC", - "AE", - "AIC", - "AK", - "AM", - "AN", - "AÖ", - "AP", - "AS", - "AUR", - "AW", - "AZ", - "B", - "BA", - "BAD", - "BAR", - "BB", - "BC", - "BD", - "BGL", - "BI", - "BIR", - "BIT", - "BK", - "BL", - "BLK", - "BM", - "BN", - "BO", - "BOR", - "BOT", - "BP", - "BRA", - "BRB", - "BS", - "BT", - "BTF", - "BÜS", - "BW", - "BWL", - "BYL", - "BZ", - "C", - "CB", - "CE", - "CHA", - "CO", - "COC", - "COE", - "CUX", - "CW", - "D", - "DA", - "DAH", - "DAN", - "DAU", - "DBR", - "DD", - "DE", - "DEG", - "DEL", - "DGF", - "DH", - "DL", - "DLG", - "DN", - "Do", - "DON", - "DU", - "DÜW", - "E", - "EA", - "EB", - "EBE", - "ED", - "EE", - "EF", - "EI", - "EIC", - "EL", - "EM", - "EMD", - "EMS", - "EN", - "ER", - "ERB", - "ERH", - "ERZ", - "ES", - "ESW", - "EU", - "F", - "FB", - "FD", - "FDS", - "FF", - "FFB", - "FG", - "FL", - "FN", - "FO", - "FR", - "FRG", - "FRI", - "FS", - "FT", - "FÜ", - "G", - "GAP", - "GE", - "GER", - "GF", - "GG", - "GI", - "GL", - "GM", - "GÖ", - "GP", - "GR", - "GRZ", - "GS", - "GT", - "GTH", - "GÜ", - "GZ", - "H", - "HA", - "HAL", - "HAM", - "HAS", - "HB", - "HBN", - "HD", - "HDH", - "HE", - "HEF", - "HEI", - "HEL", - "HER", - "HF", - "HG", - "HGW", - "HH", - "HI", - "HL", - "HM", - "HN", - "HO", - "HOL", - "HOM", - "HP", - "HR", - "HRO", - "HS", - "HSK", - "HST", - "HU", - "HVL", - "HWI", - "HX", - "HZ", - "IGB", - "IK", - "IN", - "IZ", - "J", - "JL", - "K", - "KA", - "KB", - "KC", - "KE", - "KEH", - "KF", - "KG", - "KH", - "KI", - "KIB", - "KL", - "KLE", - "KN", - "KO", - "KR", - "KS", - "KT", - "KU", - "KÜN", - "KUS", - "KYF", - "L", - "LA", - "LAU", - "LB", - "LD", - "LDK", - "LDS", - "LER", - "LEV", - "LG", - "LI", - "LIF", - "LIP", - "LL", - "LM", - "LÖ", - "LOS", - "LRO", - "LSA", - "LSN", - "LU", - "LWL", - "M", - "MA", - "MB", - "MD", - "ME", - "MEI", - "MG", - "MI", - "MIL", - "MK", - "MKK", - "MM", - "MN", - "MOL", - "MOS", - "MR", - "MS", - "MSH", - "MSP", - "MST", - "MTK", - "MÜ", - "MÜR", - "MVL", - "MYK", - "MZ", - "MZG", - "N", - "NB", - "ND", - "NDH", - "NE", - "NEA", - "NES", - "NEW", - "NF", - "NI", - "NK", - "NL", - "NM", - "NMS", - "NOH", - "NOM", - "NR", - "NU", - "NVP", - "NW", - "NWM", - "OA", - "OAL", - "OB", - "OD", - "OE", - "OF", - "OG", - "OH", - "OHA", - "OHV", - "OHZ", - "OL", - "OPR", - "OS", - "OSL", - "OVP", - "P", - "PA", - "PAF", - "PAN", - "PB", - "PCH", - "PE", - "PF", - "PI", - "PIR", - "PLÖ", - "PM", - "PR", - "PS", - "R", - "RA", - "RD", - "RE", - "REG", - "RO", - "ROS", - "ROW", - "RP", - "RPL", - "RS", - "RT", - "RÜD", - "RÜG", - "RV", - "RW", - "RZ", - "S", - "SAD", - "SAL", - "SAW", - "SB", - "SC", - "SDL", - "SE", - "SG", - "SH", - "SHA", - "SHG", - "SHK", - "SHL", - "SI", - "SIG", - "SIM", - "SK", - "SL", - "SLF", - "SLK", - "SLS", - "SM", - "SN", - "SO", - "SOK", - "SÖM", - "SON", - "SP", - "SPN", - "SR", - "ST", - "STA", - "STD", - "SU", - "SÜW", - "SW", - "SZ", - "TDO", - "TBB", - "TF", - "TG", - "THL", - "THW", - "TIR", - "TÖL", - "TR", - "TS", - "TÜ", - "TUT", - "UE", - "UL", - "UM", - "UN", - "V", - "VB", - "VEC", - "VER", - "VIE", - "VK", - "VR", - "VS", - "W", - "WAF", - "WAK", - "WB", - "WE", - "WEN", - "WES", - "WF", - "WHV", - "WI", - "WIL", - "WL", - "WM", - "WN", - "WND", - "WO", - "WOB", - "WST", - "WT", - "WTM", - "WÜ", - "WUG", - "WUN", - "WW", - "WZ", - "Y", - "Z", - "ZW", - ) - - license_plate_suffix = ( - "-??-%@@@", - "-?-%@@@", - ) - - def license_plate(self) -> str: - """Generate a license plate.""" - prefix: str = self.random_element(self.license_plate_prefix) - suffix = self.bothify( - self.random_element(self.license_plate_suffix), - letters=string.ascii_uppercase, - ) - return prefix + suffix diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_DE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_DE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ecda815..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_DE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/el_GR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/el_GR/__init__.py deleted file mode 100644 index 98067dd..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/el_GR/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -import re - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``el_GR`` locale.""" - - uppercase_letters = "ABEZHIKMNOPTYX" - - license_formats = ( - "??? ####", - "?? ####", - ) - - def license_plate(self) -> str: - """Generate a license plate.""" - temp = re.sub( - r"\?", - lambda x: self.random_element(self.uppercase_letters), - self.random_element(self.license_formats), - ) - return self.numerify(temp) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/el_GR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/el_GR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 6fb50a8..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/el_GR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_CA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_CA/__init__.py deleted file mode 100644 index d918d4d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_CA/__init__.py +++ /dev/null @@ -1,45 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``en_CA`` locale. - - Sources: - - - https://www.revolvy.com/main/index.php?s=Canadian%20licence%20plate%20designs%20and%20serial%20formats - """ - - license_formats = ( - # Alberta - "???-####", - # BC - "??# ##?", - "?? ####", - # Manitoba - "??? ###", - # New Brunswick - "??? ###", - # Newfoundland and Labrador - "??? ###", - # NWT - "######", - # Nova Scotia - "??? ###", - # Nunavut - "### ###", - # Ontario - "### ???", - "???? ###", - "??# ###", - "### #??", - "?? ####", - "GV??-###", - # PEI - "## ##??", - # Quebec - "?## ???", - # Saskatchewan - "### ???", - # Yukon - "???##", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_CA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_CA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 53861d0..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_CA/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_GB/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_GB/__init__.py deleted file mode 100644 index ab96dd7..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_GB/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``en_GB`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_the_United_Kingdom - """ - - license_formats = ( - "??## ???", - "??##???", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_GB/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_GB/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 68dd724..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_GB/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_NZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_NZ/__init__.py deleted file mode 100644 index 2802d62..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_NZ/__init__.py +++ /dev/null @@ -1,32 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``en_NZ`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_New_Zealand - """ - - license_formats = ( - # Old plates - "??%##", - "??%###", - "??%###", - # Three letters since 2002 - "A??%##", - "B??%##", - "C??%##", - "D??%##", - "E??%##", - "F??%##", - "G??%##", - "H??%##", - "J??%##", - "K??%##", - "L??%##", - "M??%##", - # After 2018 - "N??%##", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_NZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_NZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 68b0432..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_NZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_PH/__init__.py deleted file mode 100644 index 71f05d3..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_PH/__init__.py +++ /dev/null @@ -1,70 +0,0 @@ -from string import ascii_uppercase -from typing import List - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``en_PH`` locale. - - Vehicle registration in the Philippines has many controversies and is full - of quirks. On top of that, some terms are highly subject to interpretation - or to varying definitions when applied colloquially, e.g. "motor" usually - refers to either a machine's motor or a motorcycle, "vehicles" usually means - cars, SUVs, vans, and trucks but not motorcycles. Please read any additional - notes of individual methods for more details. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_the_Philippines - """ - - protocol_licenses = [str(x) for x in range(1, 18) if x != 15] - motorcycle_license_formats = [ - "??####", # 1981 series - "??#####", # 2014 series - ] - automobile_license_formats = [ - "???###", # 1981 series - "???####", # 2014 series - ] - license_formats = motorcycle_license_formats + automobile_license_formats - - def _license_plate(self, license_format: List[str]) -> str: - return self.bothify(self.random_element(license_format), ascii_uppercase) - - def protocol_license_plate(self) -> str: - """Generate a protocol license plate. - - .. note:: - High ranking government officials are entitled to use low numbered - protocol license plates. - """ - return self.random_element(self.protocol_licenses) - - def motorcycle_license_plate(self) -> str: - """Generate a motorcycle license plate. - - .. note:: - Motorcycles and any improvised vehicle with a motorcycle as its base - are issued motorcycle license plates. - """ - return self._license_plate(self.motorcycle_license_formats) - - def automobile_license_plate(self) -> str: - """Generate an automobile license plate. - - .. note:: - Cars, SUVs, vans, trucks, and other 4-wheeled civilian vehicles are - considered automobiles for this purpose. - """ - return self._license_plate(self.automobile_license_formats) - - def license_plate(self) -> str: - """Generate a license plate. - - .. note:: - This method will never generate protocol plates, because such plates - are only for specific use cases. - """ - return self._license_plate(self.license_formats) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7d16cfd..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_PH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_US/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_US/__init__.py deleted file mode 100644 index 27b6f2f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_US/__init__.py +++ /dev/null @@ -1,170 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``en_US`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/United_States_license_plate_designs_and_serial_formats - """ - - license_formats = ( - # Alabama - "#??####", - "##??###", - # Alaska - "### ???", - # American Samoa - "####", - # Arizona - "???####", - # Arkansas - "### ???", - "###???", - # California - "#???###", - # Colarado - "###-???", - "???-###", - # Conneticut - "###-???", - # Delaware - "######", - # DC - "??-####", - # Florda - "??? ?##", - "### ???", - "?## #??", - "### #??", - # Georgia - "???####", - # Guam - "?? ####", - # Hawaii - "??? ###", - "H?? ###", - "Z?? ###", - "K?? ###", - "L?? ###", - "M?? ###", - # Idaho - "? ######", - "#? #####", - "#? ?####", - "#? ??###", - "#? #?#???", - "#? ####?", - "##? ####", - # Illinois - "?? #####", - "??# ####", - # Indiana - "###?", - "###??", - "###???", - # Iowa - "??? ###", - # Kansas - "### ???", - # Kentucky - "### ???", - # Louisiana - "### ???", - # Maine - "#### ??", - # Maryland - "#??####", - # Massachusetts - "#??? ##", - "#?? ###", - "### ??#", - "##? ?##", - # Michigan - "### ???", - "#?? ?##", - # Minnesota - "###-???", - # Mississippi - "??? ###", - # Missouri - "??# ?#?", - # Montana - "#-#####?", - "##-####?", - # Nebraska - "??? ###", - "#-?####", - "##-?###", - "##-??##", - # Nevada - "##?•###", - # New Hampshire - "### ####", - # New Jersey - "?##-???", - # New Mexico - "###-???", - "???-###", - # New York - "???-####", - # North Carolina - "###-????", - # North Dakota - "### ???", - # Nothern Mariana Islands - "??? ###", - # Ohio - "??? ####", - # Oklahoma - "???-###", - # Oregon - "### ???", - # Pennsylvania - "???-####", - # Peurto Rico - "???-###", - # Rhode Island - "###-###", - # South Carolina - "### #??", - # South Dakota - "#?? ###", - "#?? ?##", - "##? ###", - "##? ?##", - "##? ??#", - # Tennessee - "?##-##?", - # Texas - "???-####", - # Utah - "?## #??", - "?## #??", - # Vermont - "??? ###", - "##??#", - "#??##", - "###?#", - "#?###", - # US Virgin Islands - "??? ###", - # Virginia - "???-####", - # Washington - "???####", - "###-???", - # West Virginia - "#?? ###", - "??? ###", - # Wisconsin - "???-####", - "###-???", - # Wyoming - "#-#####", - "#-####?", - "##-#####", - "#?-????", - "##?-????", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_US/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_US/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 9529751..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_US/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_AR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_AR/__init__.py deleted file mode 100644 index 3177e64..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_AR/__init__.py +++ /dev/null @@ -1,87 +0,0 @@ -from collections import OrderedDict -from string import ascii_uppercase - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``es_AR`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Argentina - - """ - - license_plate_old_format_first_letter = ascii_uppercase.replace("YZ", "") - - license_plate_new_first_letter = OrderedDict( - [ - ("A", 0.99), - ("B", 0.001), - ("C", 0.0001), - ("D", 0.00001), - ("E", 0.0000000001), - ] - ) - - license_plate_new_second_letter = OrderedDict( - [ - ("A", 0.1), - ("B", 0.1), - ("C", 0.1), - ("D", 0.1), - ("E", 0.1), - ("F", 0.1), - ("G", 0.09), - ("H", 0.08), - ("I", 0.07), - ("J", 0.06), - ("K", 0.04), - ("L", 0.03), - ("M", 0.009), - ("N", 0.007), - ("O", 0.005), - ("P", 0.004), - ("Q", 0.001), - ("R", 0.0009), - ("S", 0.0008), - ("T", 0.0007), - ("U", 0.0006), - ("V", 0.0005), - ("W", 0.0003), - ("X", 0.0002), - ("Y", 0.0001), - ("Z", 0.00005), - ] - ) - - license_formats = OrderedDict( - [ - ("{{license_plate_old}}", 0.6), - ("{{license_plate_mercosur}}", 0.4), - ] - ) - - def license_plate_old(self) -> str: - """Generate an old format license plate. Since 1995 to 2016""" - format = "??###" - - first_letter: str = self.random_element(self.license_plate_old_format_first_letter) - - return self.bothify(first_letter + format).upper() - - def license_plate_mercosur(self) -> str: - """Generate an new plate with Mercosur format. Since 2016""" - - first_letter: str = self.random_element(self.license_plate_new_first_letter) - second_letter: str = self.random_element(self.license_plate_new_second_letter) - - format = "###??" - plate = first_letter + second_letter - - return self.bothify(plate + format).upper() - - def license_plate(self) -> str: - """Generate a license plate.""" - return self.numerify(self.generator.parse(self.random_element(self.license_formats))) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_AR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_AR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2847535..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_AR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CL/__init__.py deleted file mode 100644 index 713f50d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CL/__init__.py +++ /dev/null @@ -1,64 +0,0 @@ -import re - -from collections import OrderedDict - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``es`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Chile - - """ - - license_plate_old_format_first_letters = "ABCDFGHJKLPRSTVWXYZ" - license_plate_old_format_second_letters = "ABCDFGHIJKLPRSTVWXYZ" - license_plate_new_format_letters = "BCDFGHJKLPRSTVWXYZ" - - license_formats = OrderedDict( - [ - ("{{license_plate_new}}", 0.70), - ("{{license_plate_old}}", 0.20), - ("{{license_plate_police}}", 0.05), - ("{{license_plate_temporary}}", 0.04), - ("{{license_plate_diplomatic}}", 0.01), - ] - ) - - def license_plate_old(self) -> str: - """Generate an old format license plate.""" - format = "-####" - - letters = "".join( - ( - self.random_element(self.license_plate_old_format_first_letters), - self.random_element(self.license_plate_old_format_second_letters), - ) - ) - - return self.numerify(letters + format) - - def license_plate_new(self) -> str: - format = "????-##" - - temp = re.sub(r"\?", lambda x: self.random_element(self.license_plate_new_format_letters), format) - return self.numerify(temp) - - def license_plate_police(self) -> str: - formats = ("RP-####", "Z-####") - return self.numerify(self.random_element(formats)) - - def license_plate_temporary(self) -> str: - format = "PR-###" - return self.numerify(format) - - def license_plate_diplomatic(self) -> str: - formats = ("CC-####", "CD-####") - return self.numerify(self.random_element(formats)) - - def license_plate(self) -> str: - """Generate a license plate.""" - return self.numerify(self.generator.parse(self.random_element(self.license_formats))) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d615096..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CO/__init__.py deleted file mode 100644 index 27ee8f8..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CO/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - license_formats = OrderedDict( - [ - ("???###", 0.6), - ("???##?", 0.3), - ("T####", 0.03), - ("??####", 0.01), - ("R#####", 0.03), - ("S#####", 0.03), - ] - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index fdb3c06..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CO/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_ES/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_ES/__init__.py deleted file mode 100644 index 3bb7969..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_ES/__init__.py +++ /dev/null @@ -1,124 +0,0 @@ -import re - -from typing import Optional - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``es_ES`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Spain - - .. |license_plate_unified| replace:: - :meth:`license_plate_unified() ` - - .. |license_plate_by_province| replace:: - :meth:`license_plate_by_province() ` - """ - - license_formats = ( - # New format - "#### ???", - ) - - # New format suffix letters (excluding vocals and Q from ascii uppercase) - license_plate_new_format_suffix_letters = "BCDFGHJKLMNPRSTVWXYZ" - - # Old format suffix letters (excluding Q and R from ascii uppercase) - license_plate_old_format_suffix_letters = "ABCDEFGHIJKLMNOPSTUVWXYZ" - - # Province prefixes (for old format) - province_prefix = ( - "A", # Alicante - "AB", # Albacete - "AL", # Almería - "AV", # Ávila - "B", # Barcelona - "BA", # Badajoz - "BI", # Bilbao - "BU", # Burgos - "C", # La Coruña - "CA", # Cádiz - "CC", # Cáceres - "CS", # Castellón de la Plana - "CE", # Ceuta - "CO", # Córdoba - "CR", # Ciudad Real - "CU", # Cuenca - "GC", # Las Palmas (Gran Canaria) - "GE", # Girona (until 1992) - "GI", # Girona (since 1992) - "GR", # Granada - "GU", # Guadalajara - "H", # Huelva - "HU", # Huesca - "PM", # Palma de Mallorca (until 1997) - "IB", # Islas Baleares (since 1997) - "J", # Jaén - "L", # Lleida - "LE", # León - "LO", # Logroño - "LU", # Lugo - "M", # Madrid - "MA", # Málaga - "ML", # Melilla - "MU", # Murcia - "O", # Oviedo - "OR", # Ourense (until 1998) - "OU", # Ourense (since 1998) - "P", # Palencia - "NA", # Navarra - "PO", # Pontevedra - "S", # Santander - "SA", # Salamanca - "SE", # Sevilla - "SG", # Segovia - "SO", # Soria - "SS", # Donostia/San Sebastián - "T", # Tarragona - "TE", # Teruel - "TF", # Santa Cruz de Tenerife - "TO", # Toledo - "V", # Valencia - "VA", # Valladolid - "VI", # Vitoria - "Z", # Zaragoza - "ZA", # Zamora - ) - - def license_plate_unified(self) -> str: - """Generate a unified license plate.""" - temp = re.sub( - r"\?", - lambda x: self.random_element(self.license_plate_new_format_suffix_letters), - self.license_formats[0], - ) - return self.numerify(temp) - - def license_plate_by_province(self, province_prefix: Optional[str] = None) -> str: - """Generate a provincial license plate. - - If a value for ``province_prefix`` is provided, the value will be used - as the prefix regardless of validity. If ``None``, then a valid prefix - will be selected at random. - """ - province_prefix = province_prefix if province_prefix is not None else self.random_element(self.province_prefix) - temp = re.sub( - r"\?", - lambda x: self.random_element(self.license_plate_old_format_suffix_letters), - "#### ??", - ) - return province_prefix + " " + self.numerify(temp) - - def license_plate(self) -> str: - """Generate a license plate. - - This method randomly chooses (50/50) between |license_plate_unified| - or |license_plate_by_province| to generate the result. - """ - if self.generator.random.randint(0, 1): - return self.license_plate_unified() - return self.license_plate_by_province() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_ES/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_ES/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b41a6f4..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_ES/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/et_EE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/et_EE/__init__.py deleted file mode 100644 index dab5516..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/et_EE/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``et_EE`` locale. - - Source: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Estonia - """ - - license_formats = ("### ???",) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/et_EE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/et_EE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index deed68a..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/et_EE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fi_FI/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/fi_FI/__init__.py deleted file mode 100644 index aa9420b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fi_FI/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``fi_FI`` locale. - - Source: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Finland - """ - - license_formats = ("???-###",) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fi_FI/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/fi_FI/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b34424d..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fi_FI/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fil_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/fil_PH/__init__.py deleted file mode 100644 index 5858896..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fil_PH/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from ..en_PH import Provider as EnPhAutomotiveProvider - - -class Provider(EnPhAutomotiveProvider): - """Implement automotive provider for ``fil_PH`` locale. - - There is no difference from the ``en_PH`` implementation. - """ - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fil_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/fil_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 93ffc00..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fil_PH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fr_DZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/fr_DZ/__init__.py deleted file mode 100644 index ef6fd63..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fr_DZ/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from ..ar_DZ import Provider as ArDzAutomotiveProvider - - -class Provider(ArDzAutomotiveProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fr_DZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/fr_DZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 92f405a..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fr_DZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fr_FR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/fr_FR/__init__.py deleted file mode 100644 index 0118c14..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fr_FR/__init__.py +++ /dev/null @@ -1,17 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``fr_FR`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_France - """ - - license_formats = ( - # New format - "??-###-??", - # Old format for plates < 2009 - "###-???-##", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fr_FR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/fr_FR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 8ce7265..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fr_FR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/he_IL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/he_IL/__init__.py deleted file mode 100644 index 0609f62..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/he_IL/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``he_IL`` locale.""" - - """ Source : https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Israel """ - license_formats = ( - "###-##-###", - "##-###-##", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/he_IL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/he_IL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5456f30..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/he_IL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/hu_HU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/hu_HU/__init__.py deleted file mode 100644 index a046723..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/hu_HU/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``hu_HU`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Hungary - """ - - license_formats = ("???-###",) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/hu_HU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/hu_HU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a59c13b..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/hu_HU/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/id_ID/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/id_ID/__init__.py deleted file mode 100644 index 6f7d50f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/id_ID/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``id_ID`` locale.""" - - license_formats = ( - "? ### ??", - "? ### ???", - "?? ### ??", - "?? ### ???", - "? #### ??", - "? #### ???", - "?? #### ??", - "?? #### ???", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/id_ID/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/id_ID/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 9bde5ca..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/id_ID/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/it_IT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/it_IT/__init__.py deleted file mode 100644 index c154534..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/it_IT/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``it_IT`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Italy - """ - - license_formats = ( - # 1994-present - "??###??", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/it_IT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/it_IT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ded9903..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/it_IT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ja_JP/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ja_JP/__init__.py deleted file mode 100644 index a408cba..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ja_JP/__init__.py +++ /dev/null @@ -1,116 +0,0 @@ -from .. import Provider as AutomotiveProvider - -# flake8: noqa: E501 - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``ja_JP`` locale. - - Sources (retrieved on 2025-09-15): - - - https://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E3%81%AE%E3%83%8A%E3%83%B3%E3%83%90%E3%83%BC%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E4%B8%80%E8%A6%A7 - - http://nplate.cloudfree.jp/misc/m50_bango.html - """ - - license_plate_area_names = ( - "品川", - "足立", - "練馬", - "横浜", - "川崎", - "名古屋", - "大阪", - "神戸", - "福岡", - "札幌", - "尾張小牧", - "伊勢志摩", - ) - - classification_numbers = ( - "###", - "##", - ) - - license_plate_kana = ( - "あ", - "い", - "う", - "え", - "か", - "き", - "く", - "け", - "こ", - "さ", - "す", - "せ", - "そ", - "た", - "ち", - "つ", - "て", - "と", - "な", - "に", - "ぬ", - "ね", - "の", - "は", - "ひ", - "ふ", - "ほ", - "ま", - "み", - "む", - "め", - "も", - "や", - "ゆ", - "よ", - "ら", - "り", - "る", - "れ", - "ろ", - "わ", - "を", - ) - - serial_number_formats = ("#", "##", "###", "####") - - MIDDLE_DOT = "・" - DELIMITER = "-" - - license_plate_formats = ("{{area_name}} {{classification_number}} {{kana}} {{serial_number}}",) - - def license_plate(self) -> str: - """Generate a Japanese license plate.""" - pattern = self.random_element(self.license_plate_formats) - return self.generator.parse(pattern) - - def area_name(self) -> str: - return self.random_element(self.license_plate_area_names) - - def classification_number(self) -> str: - return self.numerify(self.random_element(self.classification_numbers)) - - def kana(self) -> str: - return self.random_element(self.license_plate_kana) - - def serial_number(self) -> str: - """ - Generate the vehicle’s serial number (the last four digits on a Japanese license plate). - - For 4 digits: insert a hyphen between the second and third digits (e.g., 12-34). - - For 1 to 3 digits: pad the left side with middle dots (・) so the total width is four - characters (e.g., ・123, ・・12, ・・・1). Do not use a hyphen in these cases. - """ - - raw_digits = self.numerify(self.random_element(self.serial_number_formats)) - n = len(raw_digits) - - if n == 4: - v = f"{raw_digits[:2]}{self.DELIMITER}{raw_digits[2:]}" - return v - else: - return raw_digits.rjust(4, self.MIDDLE_DOT) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ja_JP/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ja_JP/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1ad4f98..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ja_JP/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ko_KR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ko_KR/__init__.py deleted file mode 100644 index 95ab163..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ko_KR/__init__.py +++ /dev/null @@ -1,52 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """ - Implement automotive provider for ``ko_KR`` locale. - """ - - license_formats = ( - "##?####", - "###?####", - ) - - letter_codes = ( - "가", - "나", - "다", - "라", - "마", - "거", - "너", - "더", - "러", - "머", - "버", - "서", - "어", - "저", - "고", - "노", - "도", - "로", - "모", - "보", - "소", - "오", - "조", - "구", - "누", - "두", - "루", - "무", - "부", - "수", - "우", - "주", - ) - - def license_plate(self) -> str: - pattern = self.random_element(self.license_formats) - letters = "".join(self.letter_codes) - return self.numerify(self.lexify(pattern, letters=letters)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ko_KR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ko_KR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 99b5261..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ko_KR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/lt_LT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/lt_LT/__init__.py deleted file mode 100644 index 6e10f8d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/lt_LT/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``lt_LT`` locale. - - Source: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Lithuania - """ - - license_formats = ("??? ###",) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/lt_LT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/lt_LT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ac47f9a..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/lt_LT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_BE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_BE/__init__.py deleted file mode 100644 index 19f24ca..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_BE/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for `nl_BE` locale. - - https://nl.wikipedia.org/wiki/Belgisch_kenteken - """ - - license_formats = ( - "???-###", # 1973-2008 - "###-???", # 2008-2010 - # New formats after 2010 - "1-???-###", - "2-???-###", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_BE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_BE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 6075b81..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_BE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_NL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_NL/__init__.py deleted file mode 100644 index 0dbab37..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_NL/__init__.py +++ /dev/null @@ -1,77 +0,0 @@ -import re -import string - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for `nl_NL` locale. - - Sources: - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_the_Netherlands - - https://www.cbs.nl/en-gb/figures/detail/82044eng - - .. |license_plate_car| replace:: - :meth:`license_plate_car() ` - - .. |license_plate_motorbike| replace:: - :meth:`license_plate_motorbike() ` - """ - - # License formats for cars / other vehicles than motorbikes - license_formats = ( - # Format 6 - "##-%?-??", - # Format 7 - "##-%??-#", - # Format 8 - "#-@??-##", - # Format 9 - "%?-###-?", - # Format 10 - "%-###-??", - ) - - # License formats for motorbikes. - # According to CBS, approximately 10% of road vehicles in the Netherlands are motorbikes - license_formats_motorbike = ( - "M?-??-##", - "##-M?-??", - ) - - # Base first letters of format - license_plate_prefix_letters = "BDFGHJKLNPRSTVXZ" - - # For Format 8 (9-XXX-99) "BDFGHJLNPR" are not used, - # as to not clash with former export license plates - license_plate_prefix_letters_format_8 = "KSTVXZ" - - def license_plate_motorbike(self) -> str: - """Generate a license plate for motorbikes.""" - return self.bothify( - self.random_element(self.license_formats_motorbike), - letters=string.ascii_uppercase, - ) - - def license_plate_car(self) -> str: - """Generate a license plate for cars.""" - # Replace % with license_plate_prefix_letters - temp = re.sub( - r"\%", - self.random_element(self.license_plate_prefix_letters), - self.random_element(self.license_formats), - ) - - # Replace @ with license_plate_prefix_letters_format_8 - temp = re.sub(r"\@", self.random_element(self.license_plate_prefix_letters_format_8), temp) - - return self.bothify(temp, letters=string.ascii_uppercase) - - def license_plate(self) -> str: - """Generate a license plate. - This method randomly chooses 10% between |license_plate_motorbike| - or 90% |license_plate_car| to generate the result. - """ - if self.generator.random.random() < 0.1: - return self.license_plate_motorbike() - return self.license_plate_car() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_NL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_NL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index bdd8acd..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_NL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/no_NO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/no_NO/__init__.py deleted file mode 100644 index e268814..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/no_NO/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``hu_HU`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Norway - """ - - license_formats = ( - # Classic format - "?? #####", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/no_NO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/no_NO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e063c27..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/no_NO/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pl_PL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/pl_PL/__init__.py deleted file mode 100644 index 0ecd733..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pl_PL/__init__.py +++ /dev/null @@ -1,39 +0,0 @@ -from typing import List - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``pl_PL`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Poland - """ - - license_formats = ( - "?? #####", - "?? ####?", - "?? ###??", - "?? #?###", - "?? #??##", - "??? ?###", - "??? ##??", - "??? #?##", - "??? ##?#", - "??? #??#", - "??? ??##", - "??? #####", - "??? ####?", - "??? ###??", - ) - - def license_plate_regex_formats(self) -> List[str]: - """Return a regex for matching license plates. - - .. warning:: - This is technically not a method that generates fake data, and it - should not be part of the public API. User should refrain from using - this method. - """ - return [plate.replace("?", "[A-Z]").replace("#", "[0-9]") for plate in self.license_formats] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pl_PL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/pl_PL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a52d075..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pl_PL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_BR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_BR/__init__.py deleted file mode 100644 index c844620..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_BR/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``pt_BR`` locale.""" - - license_formats = ("???-#?##",) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_BR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_BR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7b36d94..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_BR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_PT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_PT/__init__.py deleted file mode 100644 index cd8fee4..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_PT/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``pt_PT`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Portugal - """ - - license_formats = ( - "##-##-??", - "##-??-##", - "??-##-##", - # New format since March 2020 - "??-##-??", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_PT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_PT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 9d0995d..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_PT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ro_RO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ro_RO/__init__.py deleted file mode 100644 index f5e4c44..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ro_RO/__init__.py +++ /dev/null @@ -1,66 +0,0 @@ -import string - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``ro_RO`` locale.""" - - license_plate_prefix = ( - "AB", - "AG", - "AR", - "B", - "BC", - "BH", - "BN", - "BR", - "BT", - "BV", - "BZ", - "CJ", - "CL", - "CS", - "CT", - "CV", - "DB", - "DJ", - "GJ", - "GL", - "GR", - "HD", - "HR", - "IF", - "IL", - "IS", - "MH", - "MM", - "MS", - "NT", - "OT", - "PH", - "SB", - "SJ", - "SM", - "SV", - "TL", - "TM", - "TR", - "VL", - "VN", - "VS", - ) - - license_plate_suffix = ( - "-###-???", - "-##-???", - ) - - def license_plate(self) -> str: - """Generate a license plate.""" - prefix: str = self.random_element(self.license_plate_prefix) - suffix = self.bothify( - self.random_element(self.license_plate_suffix), - letters=string.ascii_uppercase, - ) - return prefix + suffix diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ro_RO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ro_RO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4ffe64d..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ro_RO/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ru_RU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ru_RU/__init__.py deleted file mode 100644 index cce4ba0..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ru_RU/__init__.py +++ /dev/null @@ -1,321 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``ru_RU`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Russia - - https://ru.wikipedia.org/wiki/Категории_транспортных_средств - """ - - license_plate_letters = ("A", "B", "E", "K", "M", "Н", "О", "Р", "С", "Т", "У", "Х") - - vehicle_categories = ( - "M", - "A", - "A1", - "B", - "B1", - "BE", - "C", - "C1", - "C1E", - "CE", - "D", - "D1", - "DE", - "Tm", - "Tb", - ) - - license_plate_suffix = ( - # Republic of Adygea - "01", - # Republic of Bashkortostan - "02", - "102", - # Republic of Buryatia - "03", - # Altai Republic - "04", - # Republic of Dagestan - "05", - # Republic of Ingushetia - "06", - # Kabardino-Balkar Republic - "07", - # Republic of Kalmykia - "08", - # Karachay-Cherkess Republic - "09", - # Republic of Karelia - "10", - # Komi Republic - "11", - # Mari El Republic - "12", - # Republic of Mordovia - "13", - "113", - # Sakha Republic - "14", - # Republic of North Ossetia–Alania - "15", - # Republic of Tatarstan - "16", - "116", - "716", - # Tuva Republic - "17", - # Udmurt Republic - "18", - # Republic of Khakassia - "19", - # Chechen Republic - "20", - "95", - # Chuvash Republic - "21", - "121", - # Altai Krai - "22", - # Krasnodar Krai - "23", - "93", - "123", - # Krasnoyarsk Krai - "24", - "84", - "88", - "124", - # Primorsky Krai - "25", - "125", - # Stavropol Krai - "26", - "126", - # Khabarovsk Krai - "27", - # Amur Oblast - "28", - # Arkhangelsk Oblast - "29", - # Astrakhan Oblast - "30", - # Belgorod Oblast - "31", - # Bryansk Oblast - "32", - # Vladimir Oblast - "33", - # Volgograd Oblast - "34", - "134", - # Vologda Oblast - "35", - # Voronezh Oblast - "36", - "136", - # Ivanovo Oblast - "37", - # Irkutsk Oblast - "38", - "85", - "38", - # Kaliningrad Oblast - "39", - "91", - # Kaluga Oblast - "40", - # Kamchatka Krai - "41", - "82", - # Kemerovo Oblast - "42", - "142", - # Kirov Oblast - "43", - # Kostroma Oblast - "44", - # Kurgan Oblast - "45", - # Kursk Oblast - "46", - # Leningrad Oblast - "47", - # Lipetsk Oblast - "48", - # Magadan Oblast - "49", - # Moscow Oblast - "50", - "90", - "150", - "190", - "750", - # Murmansk Oblast - "51", - # Nizhny Novgorod Oblast - "52", - "152", - # Novgorod Oblast - "53", - # Novosibirsk Oblast - "54", - "154", - # Omsk Oblast - "55", - # Orenburg Oblast - "56", - # Oryol Oblast - "57", - # Penza Oblast - "58", - # Perm Krai - "59", - "81", - "159", - # Pskov Oblast - "60", - # Rostov Oblast - "61", - "161", - # Ryazan Oblast - "62", - # Samara Oblast - "63", - "163", - "763", - # Saratov Oblast - "64", - "164", - # Sakhalin Oblast - "65", - # Sverdlovsk Oblast - "66", - "96", - "196", - # Smolensk Oblast - "67", - # Tambov Oblast - "68", - # Tver Oblast - "69", - # Tomsk Oblast - "70", - # Tula Oblast - "71", - # Tyumen Oblast - "72", - # Ulyanovsk Oblast - "73", - "173", - # Chelyabinsk Oblast - "74", - "174", - # Zabaykalsky Krai - "75", - "80", - # Yaroslavl Oblast - "76", - # Moscow - "77", - "97", - "99", - "177", - "197", - "199", - "777", - "799", - # St. Petersburg - "78", - "98", - "178", - "198", - # Jewish Autonomous Oblast - "79", - # Agin-Buryat Okrug / "Former Buryat Autonomous District of Aginskoye" - "80", - # Komi-Permyak Okrug / "Former Komi-Permyak Autonomous District" - "81", - # Republic of Crimea / De jure part of Ukraine as Autonomous Republic. Annexed by Russia in 2014. - "82", - # Koryak Okrug / "Former Koryak Autonomous District" - "82", - # Nenets Autonomous Okrug (Nenetsia) - "83", - # Taymyr Autonomous Okrug / "Former Taymyr (Dolgan-Nenets) Autonomous District" - "84", - # Ust-Orda Buryat Okrug / "Former Buryat Autonomous District of Ust-Ordynskoy" - "85", - # Khanty-Mansi Autonomous Okrug - "86", - "186", - # Chukotka Autonomous Okrug - "87", - # Evenk Autonomous Okrug / "Former Evenk Autonomous District" - "88", - # Yamalo-Nenets Autonomous Okrug - "89", - # Sevastopol / De jure part of Ukraine as City with special status. Annexed by Russia in 2014. - "92", - # Territories outside of the Russian Federation, - # served by the bodies of internal affairs of the Russian Federation, such as Baikonur - "94", - ) - - license_plate_formats = ( - # Private vehicle plate - "{{plate_letter}}{{plate_number}}{{plate_letter}}{{plate_letter}} {{plate_suffix}}", - # Public transport plate - "{{plate_letter}}{{plate_letter}}{{plate_number}} {{plate_suffix}}", - # Trailer plate - "{{plate_letter}}{{plate_letter}}{{plate_number_extra}} {{plate_suffix}}", - # Police forces vehicle plate - "{{plate_letter}}{{plate_number_extra}} {{plate_suffix}}", - # Military vehicle plate - "{{plate_number_extra}}{{plate_letter}}{{plate_letter}} {{plate_suffix}}", - # Diplomatic vehicles - "{{plate_number_special}} {{plate_suffix}}", - ) - - plate_number_formats = ("###",) - - plate_extra_formats = ("####",) - - plate_special_formats = ( - "00#CD#", - "00#D###", - "00#T###", - ) - - def license_plate(self) -> str: - """Generate a license plate.""" - pattern: str = self.random_element(self.license_plate_formats) - return self.generator.parse(pattern) - - def plate_letter(self) -> str: - """Generate a letter for license plates.""" - return self.random_element(self.license_plate_letters) - - def plate_number(self) -> str: - """Generate a number for license plates.""" - return self.numerify(self.random_element(self.plate_number_formats)) - - def plate_number_extra(self) -> str: - """Generate extra numerical code for license plates.""" - return self.numerify(self.random_element(self.plate_extra_formats)) - - def plate_number_special(self) -> str: - """Generate a special code for license plates.""" - return self.numerify(self.random_element(self.plate_special_formats)) - - def plate_suffix(self) -> str: - """Generate a suffix code for license plates.""" - return self.random_element(self.license_plate_suffix) - - def vehicle_category(self) -> str: - """Generate a vehicle category code for license plates.""" - return self.random_element(self.vehicle_categories) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ru_RU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ru_RU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index dae06d2..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ru_RU/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/sk_SK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/sk_SK/__init__.py deleted file mode 100644 index b92bb17..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/sk_SK/__init__.py +++ /dev/null @@ -1,100 +0,0 @@ -import string - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``sk_SK`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Slovakia - """ - - license_plate_prefix = [ - "BA", - "BL", - "BT", # Bratislava - "BB", # Banska Bystrica - "BJ", # Bardejov - "BN", # Banovce nad Bebravou - "BR", # Brezno - "BS", # Banska Stiavnica - "BY", # Bytca - "CA", # Cadca - "DK", # Dolny Kubin - "DS", # Dunajska Streda - "DT", # Detva - "GA", # Galanta - "GL", # Gelnica - "HC", # Hlohovec - "HE", # Humenne - "IL", # Ilava - "KA", # Krupina - "KE", # Kosice - "KK", # Kezmarok - "KM", # Kysucke Nove Mesto - "KN", # Komarno - "KS", # Kosice-okolie - "LC", # Lucenec - "LE", # Levoca - "LM", # Liptovsky Mikulas - "LV", # Levice - "MA", # Malacky - "MI", # Michalovce - "ML", # Medzilaborce - "MT", # Martin - "MY", # Myjava - "NR", # Nitra - "NM", # Nove Mesto nad Vahom - "NO", # Namestovo - "NZ", # Nove Zamky - "PB", # Povazska Bystrica - "PD", # Prievidza - "PE", # Partizanske - "PK", # Pezinok - "PN", # Piestany - "PO", # Presov - "PP", # Poprad - "PT", # Poltar - "PU", # Puchov - "RA", # Revuca - "RK", # Ruzomberok - "RS", # Rimavska Sobota - "RV", # Roznava - "SA", # Sala - "SB", # Sabinov - "SC", # Senec - "SE", # Senica - "SI", # Skalica - "SK", # Svidnik - "SL", # Stara Lubovna - "SN", # Spisska Nova Ves - "SO", # Sobrance - "SP", # Stropkov - "SV", # Snina - "TT", # Trnava - "TN", # Trencin - "TO", # Topolcany - "TR", # Turcianske Teplice - "TS", # Tvrdosin - "TV", # Trebisov - "VK", # Velky Krtis - "VT", # Vranov nad Toplou - "ZA", # Zilina - "ZC", # Zarnovica - "ZH", # Ziar nad Hronom - "ZM", # Zlate Moravce - "ZV", # Zvolen - ] - - license_plate_suffix = ("###??",) - - def license_plate(self) -> str: - """Generate a license plate.""" - prefix: str = self.random_element(self.license_plate_prefix) - suffix = self.bothify( - self.random_element(self.license_plate_suffix), - letters=string.ascii_uppercase, - ) - return prefix + suffix diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/sk_SK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/sk_SK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f8facf3..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/sk_SK/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/sq_AL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/sq_AL/__init__.py deleted file mode 100644 index d2c506f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/sq_AL/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``sq_AL`` locale. - - Source: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Albania - """ - - license_formats = ("?? ###??",) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/sq_AL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/sq_AL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 850c00a..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/sq_AL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/sv_SE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/sv_SE/__init__.py deleted file mode 100644 index f875d2b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/sv_SE/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``sv_SE`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Sweden - - https://www.transportstyrelsen.se/en/road/Vehicles/license-plates/ - """ - - license_formats = ( - # Classic format - "??? ###", - # New format - "??? ##?", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/sv_SE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/sv_SE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 72375d5..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/sv_SE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/th_TH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/th_TH/__init__.py deleted file mode 100644 index 078c210..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/th_TH/__init__.py +++ /dev/null @@ -1,39 +0,0 @@ -import re - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``th_TH`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Thailand - """ - - license_formats = ( - "# ?? ####", - "# ?? ###", - "# ?? ##", - "# ?? #", - "?? ####", - "?? ###", - "?? ##", - "?? #", - "??? ###", - "??? ##", - "??? #", - "##-####", - ) - - thai_consonants = "กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรลวศษสหฬอฮ" - - def license_plate(self) -> str: - """Generate a license plate.""" - - temp = re.sub( - r"\?", - lambda x: self.random_element(self.thai_consonants), - self.random_element(self.license_formats), - ) - return self.numerify(temp) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/th_TH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/th_TH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 82ce273..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/th_TH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/tl_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/tl_PH/__init__.py deleted file mode 100644 index 4d3cf6e..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/tl_PH/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from ..en_PH import Provider as EnPhAutomotiveProvider - - -class Provider(EnPhAutomotiveProvider): - """Implement automotive provider for ``tl_PH`` locale. - - There is no difference from the ``en_PH`` implementation. - """ - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/tl_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/tl_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 625df2c..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/tl_PH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/tr_TR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/tr_TR/__init__.py deleted file mode 100644 index 7b977a2..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/tr_TR/__init__.py +++ /dev/null @@ -1,33 +0,0 @@ -import re - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``tr_TR`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Turkey - """ - - license_formats = ( - "## ? ####", - "## ? #####", - "## ?? ###", - "## ?? ####", - "## ??? ##", - "## ??? ###", - ) - ascii_uppercase_turkish = "ABCDEFGHIJKLMNOPRSTUVYZ" - - def license_plate(self) -> str: - """Generate a license plate.""" - temp = re.sub( - r"\?", - lambda x: self.random_element(self.ascii_uppercase_turkish), - self.random_element(self.license_formats), - ) - temp = temp.replace("##", "{:02d}", 1) - temp = temp.format(self.random_element(range(1, 82))) - return self.numerify(temp) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/tr_TR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/tr_TR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 28d3141..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/tr_TR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/uk_UA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/uk_UA/__init__.py deleted file mode 100644 index 19938fc..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/uk_UA/__init__.py +++ /dev/null @@ -1,291 +0,0 @@ -import random - -from typing import Optional, Tuple - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - plate_number_formats = ("####",) - - license_region_data = { - "Crimea": (("AK", "KK", "TK", "MK"), "01"), - "Kyiv": (("AA", "KA", "TT", "TA"), "11"), - "Vinnytsia": (("AB", "KB", "MM", "OK"), "02"), - "Volyn": (("AC", "KC", "SM", "TS"), "03"), - "Dnipro": (("AE", "KE", "RR", "MI"), "04"), - "Donetsk": (("AN", "KH", "TM", "MH"), "05"), - "Kyiv_reg": (("AI", "KI", "TI", "ME"), "10"), - "Zhytomyr": (("AM", "KM", "TM", "MV"), "06"), - "Zakarpattia": (("AO", "KO", "MT", "MO"), "07"), - "Zaporizhzhia": (("AR", "KR", "TR", "MR"), "08"), - "IvanoFrankivsk": (("AT", "KT", "TO", "XS"), "09"), - "Kirovohrad": (("BA", "NA", "XA", "EA"), "12"), - "Luhansk": (("BB", "NV", "EE", "EV"), "13"), - "Lviv": (("BS", "NS", "SS", "ES"), "14"), - "Mykolaiv": (("BE", "NE", "XE", "XN"), "15"), - "Odesa": (("BN", "NN", "OO", "EN"), "16"), - "Poltava": (("BI", "NI", "XI", "EI"), "17"), - "Rivne": (("BK", "NK", "XK", "EK"), "18"), - "Sumy": (("BM", "NM", "XM", "EM"), "19"), - "Ternopil": (("BO", "NO", "XO", "EO"), "20"), - "Kharkiv": (("AX", "KX", "XX", "EX"), "21"), - "Kherson": (("BT", "NT", "XT", "ET"), "22"), - "Khmelnytskyi": (("BX", "NX", "OX", "RX"), "23"), - "Cherkasy": (("SA", "IA", "OA", "RA"), "24"), - "Chernihiv": (("SV", "IV", "OV", "RV"), "25"), - "Chernivtsi": (("SE", "IE", "OE", "RE"), "26"), - "Sevastopol": (("SN", "IN", "ON", "RN"), "27"), - "Nationwide": (("II", "ED", "DC", "DI", "PD"), "00"), - } - - license_plate_suffix = ( - "AA", - "BA", - "CA", - "EA", - "HA", - "IA", - "KA", - "MA", - "OA", - "PA", - "TA", - "XA", - "AB", - "BB", - "CB", - "EB", - "HB", - "IB", - "KB", - "MB", - "OB", - "PB", - "TB", - "XB", - "AC", - "BC", - "BR", - "EC", - "HC", - "IC", - "KC", - "MC", - "OC", - "PC", - "TC", - "XC", - "AE", - "BE", - "CE", - "EE", - "HE", - "IE", - "KE", - "ME", - "OE", - "PE", - "TE", - "XE", - "AN", - "BN", - "CN", - "EN", - "HN", - "IN", - "KN", - "MK", - "ON", - "PN", - "TN", - "XN", - "AI", - "BI", - "CI", - "EI", - "HI", - "II", - "KI", - "MI", - "OI", - "PI", - "TI", - "XI", - "AK", - "BK", - "CK", - "EK", - "HK", - "IK", - "KK", - "MK", - "OK", - "PK", - "TK", - "XK", - "AM", - "BM", - "CM", - "EM", - "HM", - "IM", - "KM", - "MM", - "OM", - "PM", - "TM", - "XM", - "AO", - "BO", - "CO", - "EO", - "HO", - "IO", - "KO", - "MO", - "OO", - "PO", - "TO", - "XO", - "AP", - "BP", - "CP", - "EP", - "HP", - "IP", - "KP", - "MP", - "OP", - "PP", - "TP", - "XP", - "AT", - "BT", - "CT", - "ET", - "HT", - "IT", - "KT", - "MT", - "OT", - "PT", - "TT", - "XT", - "AX", - "BX", - "CX", - "EX", - "HX", - "IX", - "KX", - "MX", - "OX", - "PX", - "TX", - "XX", - "AY", - "AZ", - "BH", - "BL", - "BN", - "BQ", - "BR", - "TU", - "TV", - "TY", - "TZ", - ) - - vehicle_categories = ("A1", "A", "B1", "B", "C1", "C", "D1", "D", "BE", "C1E", "CE", "D1E", "DE", "T") - - def __get_random_region_code(self, region_name: Optional[str] = None) -> Tuple[str, str]: - try: - if region_name is None: - region_name, _ = random.choice(list(self.license_region_data.items())) - - prefix, region_number = self.license_region_data[region_name] - return random.choice(prefix), region_number - except KeyError: - region_names = ", ".join(self.license_region_data.keys()) - raise KeyError(f"Keys name must be only {region_names}") - - def license_plate(self, region_name: Optional[str] = None, temporary_plate: bool = False) -> str: - """Generate a license plate. - - - If ``region_name`` is ``None`` (default), its value will be set to a random. - - If ``region_name`` is ``Kyiv``, will use this region in build of license plates. - - If ``temporary_plate`` is ``False`` (default), generate license plate AA0000AA format - - If ``temporary_plate`` is ``True``, generate temporary plate format 01 AA0000 - - 01 - 27 it's region number - - :sample: - :sample: region_name=None, temporary_plate=False - :sample: region_name=None, temporary_plate=True - :sample: region_name="Kyiv", temporary_plate=False - :sample: region_name="Kyiv", temporary_plate=True - """ - region, region_number = self.__get_random_region_code(region_name) - if temporary_plate: - return f"{region_number} {region}{self.plate_number()}" - - number = self.plate_number() - series = self.plate_letter_suffix() - return f"{region}{number}{series}" - - def plate_region_code(self, region_name: Optional[str] = None) -> str: - """ - Generate plate region number - - :sample: - :sample: region_name="Kyiv" - """ - _, region_number = self.__get_random_region_code(region_name) - return region_number - - def plate_letter_prefix(self, region_name: Optional[str] = None) -> str: - """ - Generate a letter for license plates. - - :sample: - :sample: region_name="Kyiv" - """ - letters, _ = self.__get_random_region_code(region_name) - return letters - - def plate_letter_suffix(self) -> str: - """ - Generate a end letter for license plates. - - :sample: - """ - return self.random_element(self.license_plate_suffix) - - def plate_number(self) -> str: - """ - Generate a number for license plates. - - :sample: - """ - return self.numerify(self.random_element(self.plate_number_formats)) - - def diplomatic_license_plate(self) -> str: - """ - Example: 'CDP 000' or 'DP 000 000' or 'S 000 000' format - - :sample: - """ - level = random.choice(("CDP", "DP", "S")) - country_code = self.random_number(3, fix_len=True) - car_number = self.random_number(3, fix_len=True) - if level == "CDP": - return f"{level} {country_code}" - return f"{level} {country_code} {car_number}" - - def vehicle_category(self) -> str: - """ - Generate a vehicle category code for license plates. - - :sample: - """ - return self.random_element(self.vehicle_categories) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/uk_UA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/uk_UA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7e08e2d..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/uk_UA/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/vi_VN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/vi_VN/__init__.py deleted file mode 100644 index f877249..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/vi_VN/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -import re - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``vi_VN`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Vietnam - """ - - license_formats = ("##?-#####",) - ascii_uppercase_vietnamese = "ABCDĐEFGHKLMNPSTUVXYZ" - - def license_plate(self) -> str: - """Generate a license plate.""" - temp = re.sub( - r"\?", - lambda x: self.random_element(self.ascii_uppercase_vietnamese), - self.random_element(self.license_formats), - ) - return self.numerify(temp) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/vi_VN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/vi_VN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 02ffb9c..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/vi_VN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/zh_CN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/zh_CN/__init__.py deleted file mode 100644 index 1982959..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/zh_CN/__init__.py +++ /dev/null @@ -1,47 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """ - Implement automotive provider for `zh_CN` locale. - electric vehicles or downtown-restricted plates are not included - """ - - province_code = ( - "京", - "津", - "冀", - "晋", - "蒙", - "辽", - "吉", - "黑", - "沪", - "苏", - "浙", - "皖", - "闽", - "赣", - "鲁", - "豫", - "鄂", - "湘", - "粤", - "桂", - "琼", - "渝", - "川", - "贵", - "云", - "藏", - "陕", - "甘", - "青", - "宁", - "新", - ) - - def license_plate(self) -> str: - """Generate a license plate.""" - pattern: str = str(self.random_element(self.province_code)) + self.random_uppercase_letter() + "-#####" - return self.numerify(self.generator.parse(pattern)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/zh_CN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/zh_CN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index eb59965..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/zh_CN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/zh_TW/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/zh_TW/__init__.py deleted file mode 100644 index 2554267..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/zh_TW/__init__.py +++ /dev/null @@ -1,19 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``zh_TW`` locale. - - Sources: - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Taiwan - - """ - - license_formats = ( - "####-??", - "??-####", - # Commercial vehicles since 2012 - "???-###", - # New format since 2014 - "???-####", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/zh_TW/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/zh_TW/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4cc5a45..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/automotive/zh_TW/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/__init__.py deleted file mode 100644 index fdb49a3..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/__init__.py +++ /dev/null @@ -1,165 +0,0 @@ -import re -import string - -from math import ceil -from string import ascii_uppercase -from typing import Dict, Optional - -from .. import BaseProvider - -localized = True -default_locale = "en_GB" - - -class Provider(BaseProvider): - """Implement default bank provider for Faker. - - .. important:: - Bank codes, account numbers, and other ID's generated by this provider - are only valid in form, i.e. they conform to some standard/format, are - of the expected lengths, and have valid checksums (where applicable). - Results generated that turn out to be valid in real life are purely - coincidental. - - Sources: - - - https://en.wikipedia.org/wiki/International_Bank_Account_Number - - https://www.theswiftcodes.com/swift-code-checker/ - """ - - ALPHA: Dict[str, str] = {c: str(ord(c) % 55) for c in string.ascii_uppercase} - bban_format: str = "????#############" - country_code: str = "GB" - - def aba(self) -> str: - """Generate an ABA routing transit number.""" - fed_num = self.random_int(min=1, max=12) - rand = self.numerify("######") - aba = f"{fed_num:02}{rand}" - - # calculate check digit - d = [int(n) for n in aba] - chk_digit = 3 * (d[0] + d[3] + d[6]) + 7 * (d[1] + d[4] + d[7]) + d[2] + d[5] - chk_digit = ceil(chk_digit / 10) * 10 - chk_digit - - return f"{aba}{chk_digit}" - - def bank_country(self) -> str: - """Generate the bank provider's ISO 3166-1 alpha-2 country code.""" - return self.country_code - - def bank(self) -> str: - """Generate a bank name.""" - if not hasattr(self, "banks"): - raise AttributeError( - f"The {self.__class__.__name__} provider does not have a 'banks' " - "attribute. Consider contributing to the project and " - " adding a 'banks' tuple to enable bank name generation." - ) - return self.random_element(self.banks) - - def bban(self) -> str: - """Generate a Basic Bank Account Number (BBAN).""" - temp = re.sub(r"\?", lambda x: self.random_element(ascii_uppercase), self.bban_format) - return self.numerify(temp) - - def iban(self) -> str: - """Generate an International Bank Account Number (IBAN).""" - bban = self.bban() - - check = bban + self.country_code + "00" - check_ = int("".join(self.ALPHA.get(c, c) for c in check)) - check_ = 98 - (check_ % 97) - check = str(check_).zfill(2) - - return self.country_code + check + bban - - def swift8(self, use_dataset: bool = False) -> str: - """Generate an 8-digit SWIFT code. - - This method uses |swift| under the hood with the ``length`` argument set - to ``8`` and with the ``primary`` argument omitted. All 8-digit SWIFT - codes already refer to the primary branch/office. - - :sample: - :sample: use_dataset=True - """ - return self.swift(length=8, use_dataset=use_dataset) - - def swift11(self, primary: bool = False, use_dataset: bool = False) -> str: - """Generate an 11-digit SWIFT code. - - This method uses |swift| under the hood with the ``length`` argument set - to ``11``. If ``primary`` is set to ``True``, the SWIFT code will always - end with ``'XXX'``. All 11-digit SWIFT codes use this convention to - refer to the primary branch/office. - - :sample: - :sample: use_dataset=True - """ - return self.swift(length=11, primary=primary, use_dataset=use_dataset) - - def swift( - self, - length: Optional[int] = None, - primary: bool = False, - use_dataset: bool = False, - ) -> str: - """Generate a SWIFT code. - - SWIFT codes, reading from left to right, are composed of a 4 alphabet - character bank code, a 2 alphabet character country code, a 2 - alphanumeric location code, and an optional 3 alphanumeric branch code. - This means SWIFT codes can only have 8 or 11 characters, so the value of - ``length`` can only be ``None`` or the integers ``8`` or ``11``. If the - value is ``None``, then a value of ``8`` or ``11`` will randomly be - assigned. - - Because all 8-digit SWIFT codes already refer to the primary branch or - office, the ``primary`` argument only has an effect if the value of - ``length`` is ``11``. If ``primary`` is ``True`` and ``length`` is - ``11``, the 11-digit SWIFT codes generated will always end in ``'XXX'`` - to denote that they belong to primary branches/offices. - - For extra authenticity, localized providers may opt to include SWIFT - bank codes, location codes, and branch codes used in their respective - locales. If ``use_dataset`` is ``True``, this method will generate SWIFT - codes based on those locale-specific codes if included. If those codes - were not included, then it will behave as if ``use_dataset`` were - ``False``, and in that mode, all those codes will just be randomly - generated as per the specification. - - :sample: - :sample: length=8 - :sample: length=8, use_dataset=True - :sample: length=11 - :sample: length=11, primary=True - :sample: length=11, use_dataset=True - :sample: length=11, primary=True, use_dataset=True - """ - if length is None: - length = self.random_element((8, 11)) - if length not in (8, 11): - raise AssertionError("length can only be 8 or 11") - - if use_dataset and hasattr(self, "swift_bank_codes"): - bank_code: str = self.random_element(self.swift_bank_codes) # type: ignore[attr-defined] - else: - bank_code = self.lexify("????", letters=string.ascii_uppercase) - - if use_dataset and hasattr(self, "swift_location_codes"): - location_code: str = self.random_element(self.swift_location_codes) # type: ignore[attr-defined] - else: - location_code = self.lexify("??", letters=string.ascii_uppercase + string.digits) - - if length == 8: - return bank_code + self.country_code + location_code - - if primary: - branch_code = "XXX" - elif use_dataset and hasattr(self, "swift_branch_codes"): - branch_code = self.random_element(self.swift_branch_codes) # type: ignore[attr-defined] - else: - branch_code = self.lexify("???", letters=string.ascii_uppercase + string.digits) - - return bank_code + self.country_code + location_code + branch_code diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 98a40f2..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/az_AZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/az_AZ/__init__.py deleted file mode 100644 index 6dfda54..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/az_AZ/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``az_AZ`` locale.""" - - bban_format = "????####################" - country_code = "AZ" - - banks = ( - "AccessBank", - "AFB Bank", - "Azərbaycan Sənaye Bankı", - "Azər Türk Bank", - "Bank Avrasiya", - "Bank BTB", - "Bank Melli Iran", - "Bank of Baku", - "Bank Respublika", - "Expressbank", - "Günay Bank", - "Kapital Bank", - "MuğanBank", - "Naxçıvan Bank", - "National Bank of Pakistan", - "PAŞA Bank", - "Premium Bank", - "Rabitəbank", - "TuranBank", - "Unibank", - "VTB Bank", - "Xalq Bank", - "Yapıkredi Bank Azərbaycan", - "Yelo Bank", - "Ziraat Bank Azərbaycan", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/az_AZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/az_AZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 620cfa9..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/az_AZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/bn_BD/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/bn_BD/__init__.py deleted file mode 100644 index d73e733..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/bn_BD/__init__.py +++ /dev/null @@ -1,83 +0,0 @@ -from typing import Optional - -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """ - Implement bank provider for ``bn_BD`` locale. - Sources: - - https://wise.com/gb/swift-codes/BBHOBDDHXXX - - https://www.banksbd.org/swift-codes.html - """ - - bban_format: str = "????#########" - country_code = "BD" - swift_location_codes = ("DH",) - swift_branch_codes = ( - "ABBL", - "AGBK", - "ALAR", - "ALFH", - "BCBL", - "BDDB", - "BKBA", - "BKSI", - "BALB", - "BRAK", - "BBSH", - "BSON", - "CITI", - "CCEY", - "COYM", - "CIBL", - "DHBL", - "DBBL", - "EBLD", - "EXBK", - "FSEB", - "FRMS", - "HABB", - "HSBC", - "HVBK", - "IFIC", - "IBBL", - "JAMU", - "JANB", - "MGBL", - "MBLB", - "MDBL", - "MODH", - "MTBL", - "NGBL", - "NBLB", - "NBPA", - "NCCL", - "NRBD", - "NRBB", - "ONEB", - "PRBL", - "PRMR", - "PUBA", - "RUPB", - "SJBL", - "SOIV", - "SBAC", - "SEBD", - "SDBL", - "SCBL", - "SBIN", - "TTBL", - "UBLD", - "UCBL", - "UTBL", - ) - - def swift8(self, use_dataset: bool = True) -> str: - return super(self.__class__, self).swift8(use_dataset=use_dataset) - - def swift11(self, primary: bool = False, use_dataset: bool = True) -> str: - return super(self.__class__, self).swift11(primary=primary, use_dataset=use_dataset) - - def swift(self, length: Optional[int] = None, primary: bool = False, use_dataset: bool = True) -> str: - return super(self.__class__, self).swift(length=length, primary=primary, use_dataset=use_dataset) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/bn_BD/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/bn_BD/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 53240bf..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/bn_BD/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/cs_CZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/cs_CZ/__init__.py deleted file mode 100644 index 7ea79ab..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/cs_CZ/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``cs_CZ`` locale. - - https://www.mbank.cz/informace-k-produktum/info/ucty/cislo-uctu-iban.html - """ - - bban_format = "####################" - country_code = "CZ" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/cs_CZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/cs_CZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f5e47e3..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/cs_CZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/da_DK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/da_DK/__init__.py deleted file mode 100644 index 977b916..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/da_DK/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``da_DK`` locale.""" - - bban_format = "################" - country_code = "DK" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/da_DK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/da_DK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7ea942a..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/da_DK/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/de_AT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/de_AT/__init__.py deleted file mode 100644 index 34ebbfe..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/de_AT/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``de_AT`` locale.""" - - bban_format = "################" - country_code = "AT" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/de_AT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/de_AT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 02beda5..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/de_AT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/de_CH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/de_CH/__init__.py deleted file mode 100644 index 073e141..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/de_CH/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``de_CH`` locale.""" - - bban_format = "#################" - country_code = "CH" - - # Major Swiss banks - Source: https://de.wikipedia.org/wiki/Schweizer_Bankwesen - banks = ( - "UBS", - "Credit Suisse", - "Raiffeisen Schweiz", - "Zürcher Kantonalbank", - "PostFinance", - "Julius Bär", - "Banque Cantonale Vaudoise", - "Migros Bank", - "Basler Kantonalbank", - "Luzerner Kantonalbank", - "Union Bancaire Privée", - "Vontobel", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/de_CH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/de_CH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 30fee5b..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/de_CH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/de_DE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/de_DE/__init__.py deleted file mode 100644 index 2ca16fd..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/de_DE/__init__.py +++ /dev/null @@ -1,21 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``de_DE`` locale. - - Source for rules for swift location codes: - - - https://www.ebics.de/de/datenformate - """ - - bban_format = "##################" - country_code = "DE" - - first_place = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "23456789" - second_place = "ABCDEFGHIJKLMNPQRSTUVWXYZ" + "0123456789" - swift_location_codes = [] - for i in first_place: - for j in second_place: - swift_location_codes.append(str(i) + str(j)) - swift_location_codes = tuple(swift_location_codes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/de_DE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/de_DE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1428adb..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/de_DE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/el_GR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/el_GR/__init__.py deleted file mode 100644 index 46821e2..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/el_GR/__init__.py +++ /dev/null @@ -1,28 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``el_GR`` locale.""" - - bban_format = "#######################" - country_code = "GR" - - # Major GR banks (with a head office in Greece) - # Source: - # - https://www.bankofgreece.gr/en/main-tasks/supervision/supervised-institutions - # Last verified: January 2026 - banks = ( - "Aegean Baltic Bank", - "Alpha Bank", - "Credia Bank", - "Eurobank", - "Optima Bank", - "SNAPPI", - "Vivabank", - "Εθνική Τράπεζα", - "Συνεταιριστική Τράπεζα Θεσσαλίας", - "Συνεταιριστική Τράπεζα Καρδίτσας", - "Συνεταιριστική Τράπεζα Χανίων", - "Τράπεζα Ηπείρου", - "Τράπεζα Πειραιώς", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/el_GR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/el_GR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 152ca71..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/el_GR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_GB/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/en_GB/__init__.py deleted file mode 100644 index 15756eb..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_GB/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``en_GB`` locale.""" - - bban_format = "????##############" - country_code = "GB" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_GB/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/en_GB/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b42739f..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_GB/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IE/__init__.py deleted file mode 100644 index 99793af..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IE/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``en_IE`` locale.""" - - bban_format = "#######################" - country_code = "IE" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index eacf82b..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IN/__init__.py deleted file mode 100644 index b575090..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IN/__init__.py +++ /dev/null @@ -1,47 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``en_IN`` locale. - Source: https://en.wikipedia.org/wiki/List_of_banks_in_India - """ - - banks = ( - "Bank of Baroda", - "Bank of India", - "Bank of Maharashtra", - "Canara Bank", - "Central Bank of India", - "Indian Bank", - "Indian Overseas Bank", - "Punjab National Bank", - "Punjab and Sind Bank", - "Union Bank of India", - "UCO Bank", - "State Bank of India", - "Axis Bank", - "Bandhan Bank", - "CSB Bank", - "City Union Bank", - "DCB Bank", - "Dhanlaxmi Bank", - "Federal Bank", - "HDFC Bank", - "ICICI Bank", - "IDBI Bank", - "IDFC First Bank", - "IndusInd Bank", - "Jammu & Kashmir Bank", - "Karnataka Bank", - "Karur Vysya Bank", - "Kotak Mahindra Bank", - "Nainital Bank", - "RBL Bank", - "South Indian Bank", - "Tamilnad Mercantile Bank", - "Yes Bank", - ) - - def bank(self) -> str: - """Generate a bank name.""" - return self.random_element(self.banks) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 19242c4..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/en_PH/__init__.py deleted file mode 100644 index 22e92a3..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_PH/__init__.py +++ /dev/null @@ -1,109 +0,0 @@ -import logging - -from faker.providers.bank import Provider as BankProvider - -logger = logging.getLogger(__name__) - - -class Provider(BankProvider): - """Implement bank provider for ``en_PH`` locale.""" - - country_code = "PH" - bban_format = "################" - swift_bank_codes = ( - "ANZB", - "AUBK", - "BKCH", - "BKKB", - "BNOR", - "BNPA", - "BOFA", - "BOPI", - "BOTK", - "BPDI", - "BPFS", - "BPGO", - "CHAS", - "CHBK", - "CHSV", - "CITI", - "CPHI", - "CTCB", - "DBPH", - "DEUT", - "EQSN", - "EWBC", - "FCBK", - "HBPH", - "HNBK", - "HSBC", - "IBKO", - "ICBC", - "INGB", - "KOEX", - "MBBE", - "MBTC", - "MHCB", - "PABI", - "PHSB", - "PHTB", - "PHVB", - "PNBM", - "PPBU", - "RCBC", - "ROBP", - "SCBL", - "SETC", - "SHBK", - "SMBC", - "STLA", - "TACB", - "TLBP", - "TYBK", - "UBPH", - "UCPB", - "UOVB", - "UWCB", - ) - swift_location_codes = ( - "22", - "2X", - "M1", - "MM", - "MQ", - "MX", - ) - swift_branch_codes = ( - "CBU", - "EQI", - "TSU", - "XXX", - ) - - def bban(self) -> str: - """Generate a Basic Bank Account Number (BBAN). - - .. warning:: - Philippine bank accounts do not have BBANs or IBANs, so any number - generated by this method is a purely hypothetical number. Local bank - account numbers are typically 10 or 12 digits long, so the BBAN - format used in this implementation has been arbitrarily set to 16 - digits to simulate a hypothetical standardization of account numbers. - Using this method will log a warning regarding the hypotheticality of - the result. - """ - logger.warning("Numbers generated by this method are purely hypothetical.") - return super().bban() - - def iban(self) -> str: - """Generate an International Bank Account Number (IBAN). - - .. warning:: - Philippine bank accounts do not have BBANs or IBANs, so any number - generated by this method is a purely hypothetical number. This method - uses hypothetical PH BBANs and the PH country code as inputs to the - IBAN generation algorithm. Using this method will log a warning - regarding the hypotheticality of the result. - """ - logger.warning("Numbers generated by this method are purely hypothetical.") - return super().iban() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/en_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 474ecef..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_PH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_AR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/es_AR/__init__.py deleted file mode 100644 index 089026a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_AR/__init__.py +++ /dev/null @@ -1,32 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``es_AR`` locale. - source: https://www.bcra.gob.ar/SistemasFinancierosYdePagos/Activos.asp""" - - bban_format = "????####################" - country_code = "AR" - - banks = ( - "Banco de la Nación Argentina", - "Banco Santander", - "Banco de Galicia y Buenos Aires", - "Banco de la Provincia de Buenos Aires", - "BBVA Argentina", - "Banco Macro", - "HSBC Bank Argentina", - "Banco Ciudad de Buenos Aires", - "Banco Credicoop", - "Industrial And Commercial Bank Of China", - "Citibank", - "Banco Patagonia", - "Banco de la Provincia de Córdoba", - "Banco Supervielle", - "Nuevo Banco de Santa Fe", - "Banco Hipotecario S. A.", - "Banco Itaú Argentina", - "Banco de Inversión y Comercio Exterior (BICE)", - "Banco Comafi", - "BSE - Banco Santiago del Estero", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_AR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/es_AR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f88395b..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_AR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_ES/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/es_ES/__init__.py deleted file mode 100644 index 16622ba..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_ES/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``es_ES`` locale.""" - - bban_format = "####################" - country_code = "ES" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_ES/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/es_ES/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 30b0347..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_ES/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_MX/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/es_MX/__init__.py deleted file mode 100644 index 58ce663..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_MX/__init__.py +++ /dev/null @@ -1,274 +0,0 @@ -from typing import List, Optional, Tuple - -from .. import Provider as BankProvider - - -def get_clabe_control_digit(clabe: str) -> int: - """Generate the checksum digit for a CLABE. - - :param clabe: CLABE. - :return: The CLABE checksum digit. - """ - factors = [3, 7, 1] - products: List[int] = [] - - for i, digit in enumerate(clabe[:17]): - products.append((int(digit) * factors[i % 3]) % 10) - - return (10 - sum(products)) % 10 - - -def is_valid_clabe(clabe: str) -> bool: - """Check if a CLABE is valid using the checksum. - - :param clabe: CLABE. - :return: True if the CLABE is valid, False otherwise. - """ - if len(clabe) != 18 or not clabe.isdigit(): - return False - - return get_clabe_control_digit(clabe) == int(clabe[-1]) - - -class Provider(BankProvider): - """Bank provider for ``es_MX`` locale.""" - - banks: Tuple[str, ...] = ( - "ABC Capital, S.A. I.B.M.", - "Acciones y Valores Banamex, S.A. de C.V., Casa de Bolsa", - "Actinver Casa de Bolsa, S.A. de C.V.", - "Akala, S.A. de C.V., Sociedad Financiera Popular", - "American Express Bank (México), S.A.", - "AXA Seguros, S.A. De C.V.", - "B y B Casa de Cambio, S.A. de C.V.", - "Banca Afirme, S.A.", - "Banca Mifel, S.A.", - "Banco Actinver, S.A.", - "Banco Ahorro Famsa, S.A.", - "Banco Autofin México, S.A.", - "Banco Azteca, S.A.", - "Banco BASE, S.A. de I.B.M.", - "Banco Compartamos, S.A.", - "Banco Credit Suisse (México), S.A.", - "Banco del Ahorro Nacional y Servicios Financieros, S.N.C.", - "Banco del Bajío, S.A.", - "Banco Inbursa, S.A.", - "Banco Inmobiliario Mexicano, S.A., Institución de Banca Múltiple", - "Banco Interacciones, S.A.", - "Banco Invex, S.A.", - "Banco J.P. Morgan, S.A.", - "Banco Mercantil del Norte, S.A.", - "Banco Monex, S.A.", - "Banco Multiva, S.A.", - "Banco Nacional de Comercio Exterior", - "Banco Nacional de México, S.A.", - "Banco Nacional de Obras y Servicios Públicos", - "Banco Nacional del Ejército, Fuerza Aérea y Armada", - "Banco PagaTodo S.A., Institución de Banca Múltiple", - "Banco Regional de Monterrey, S.A.", - "Banco Sabadell, S.A. I.B.M.", - "Banco Santander, S.A.", - "Banco Ve por Mas, S.A.", - "Banco Wal Mart de México Adelante, S.A.", - "BanCoppel, S.A.", - "Bank of America México, S.A.", - "Bank of Tokyo-Mitsubishi UFJ (México), S.A.", - "Bankaool, S.A., Institución de Banca Múltiple", - "Bansi, S.A.", - "Barclays Bank México, S.A.", - "BBVA Bancomer, S.A.", - "Bulltick Casa de Bolsa, S.A. de C.V.", - "Caja Popular Mexicana, S.C. de A.P. de R.L. De C.V.", - "Casa de Bolsa Finamex, S.A. de C.V.", - "Casa de Cambio Tíber, S.A. de C.V.", - "CI Casa de Bolsa, S.A. de C.V.", - "CLS Bank International", - "Consubanco, S.A.", - "Consultoría Internacional Banco, S.A.", - "Consultoría Internacional Casa de Cambio, S.A. de C.V.", - "Deutsche Bank México, S.A.", - "Deutsche Securities, S.A. de C.V.", - "Estructuradores del Mercado de Valores Casa de Bolsa, S.A. de C.V.", - "Evercore Casa de Bolsa, S.A. de C.V.", - "Financiera Nacional De Desarrollo Agropecuario, Rural, F y P.", - "Fincomún, Servicios Financieros Comunitarios, S.A. de C.V.", - "GBM Grupo Bursátil Mexicano, S.A. de C.V.", - "GE Money Bank, S.A.", - "HDI Seguros, S.A. de C.V.", - "Hipotecaria su Casita, S.A. de C.V.", - "HSBC México, S.A.", - "Industrial and Commercial Bank of China, S.A., Institución de Banca Múltiple", - "ING Bank (México), S.A.", - "Inter Banco, S.A.", - "Intercam Casa de Bolsa, S.A. de C.V.", - "Intercam Casa de Cambio, S.A. de C.V.", - "Inversora Bursátil, S.A. de C.V.", - "IXE Banco, S.A.", - "J.P. Morgan Casa de Bolsa, S.A. de C.V.", - "J.P. SOFIEXPRESS, S.A. de C.V., S.F.P.", - "Kuspit Casa de Bolsa, S.A. de C.V.", - "Libertad Servicios Financieros, S.A. De C.V.", - "MAPFRE Tepeyac S.A.", - "Masari Casa de Bolsa, S.A.", - "Merrill Lynch México, S.A. de C.V., Casa de Bolsa", - "Monex Casa de Bolsa, S.A. de C.V.", - "Multivalores Casa de Bolsa, S.A. de C.V. Multiva Gpo. Fin.", - "Nacional Financiera, S.N.C.", - "Opciones Empresariales Del Noreste, S.A. DE C.V.", - "OPERADORA ACTINVER, S.A. DE C.V.", - "Operadora De Pagos Móviles De México, S.A. De C.V.", - "Operadora de Recursos Reforma, S.A. de C.V.", - "OrderExpress Casa de Cambio , S.A. de C.V. AAC", - "Profuturo G.N.P., S.A. de C.V.", - "Scotiabank Inverlat, S.A.", - "SD. INDEVAL, S.A. de C.V.", - "Seguros Monterrey New York Life, S.A de C.V.", - "Sistema de Transferencias y Pagos STP, S.A. de C.V., SOFOM E.N.R.", - "Skandia Operadora S.A. de C.V.", - "Skandia Vida S.A. de C.V.", - "Sociedad Hipotecaria Federal, S.N.C.", - "Solución Asea, S.A. de C.V., Sociedad Financiera Popular", - "Sterling Casa de Cambio, S.A. de C.V.", - "Telecomunicaciones de México", - "The Royal Bank of Scotland México, S.A.", - "UBS Banco, S.A.", - "UNAGRA, S.A. de C.V., S.F.P.", - "Única Casa de Cambio, S.A. de C.V.", - "Valores Mexicanos Casa de Bolsa, S.A. de C.V.", - "Valué, S.A. de C.V., Casa de Bolsa", - "Vector Casa de Bolsa, S.A. de C.V.", - "Volkswagen Bank S.A. Institución de Banca Múltiple", - "Zúrich Compañía de Seguros, S.A.", - "Zúrich Vida, Compañía de Seguros, S.A.", - ) - - bank_codes: Tuple[int, ...] = ( - 2, - 6, - 9, - 12, - 14, - 19, - 21, - 22, - 30, - 32, - 36, - 37, - 42, - 44, - 58, - 59, - 60, - 62, - 72, - 102, - 103, - 106, - 108, - 110, - 112, - 113, - 116, - 124, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 143, - 145, - 147, - 148, - 150, - 155, - 156, - 166, - 168, - 600, - 601, - 602, - 604, - 605, - 606, - 607, - 608, - 610, - 611, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 636, - 637, - 638, - 640, - 642, - 646, - 647, - 648, - 649, - 651, - 652, - 653, - 655, - 656, - 659, - 670, - 674, - 677, - 679, - 684, - 901, - 902, - ) - - def clabe(self, bank_code: Optional[int] = None) -> str: - """Generate a mexican bank account CLABE. - - Sources: - - - https://en.wikipedia.org/wiki/CLABE - - :return: A fake CLABE number. - - :sample: - :sample: bank_code=2 - """ - bank = bank_code or self.random_element(self.bank_codes) - city = self.random_int(0, 999) - branch = self.random_int(0, 9999) - account = self.random_int(0, 9999999) - - result = f"{bank:03d}{city:03d}{branch:04d}{account:07d}" - control_digit = get_clabe_control_digit(result) - - return result + str(control_digit) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_MX/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/es_MX/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e831678..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_MX/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/fa_IR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/fa_IR/__init__.py deleted file mode 100644 index dbefaba..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/fa_IR/__init__.py +++ /dev/null @@ -1,56 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``fa_IR`` locale.""" - - bban_format = "IR########################" - country_code = "IR" - swift_bank_codes = ( - "BEGN", - "KESH", - "BKMN", - "BKBP", - "CIYB", - "BTOS", - "IVBB", - "KBID", - "KIBO", - "KHMI", - ) - swift_location_codes = ("TH",) - swift_branch_codes = ("BSH", "BCQ", "tIR", "tTH", "ATM", "BIC", "TIR", "ASR", "FOR") - - banks = ( - "بانکهای قرض الحسنه", - "بانک ملّی ایران", - "بانک اقتصاد نوین", - "بانک قرض‌الحسنه مهر ایران", - "بانک سپه", - "بانک پارسیان", - "بانک قرض‌الحسنه رسالت", - "بانک صنعت و معدن", - "بانک کارآفرین", - "بانک کشاورزی", - "بانک سامان", - "بانک مسکن", - "بانک سینا", - "بانک توسعه صادرات ایران", - "بانک خاور میانه", - "بانک توسعه تعاون", - "بانک شهر", - "پست بانک ایران", - "بانک دی", - "بانک صادرات", - "بانک ملت", - "بانک تجارت", - "بانک رفاه", - "بانک حکمت ایرانیان", - "بانک گردشگری", - "بانک ایران زمین", - "بانک قوامین", - "بانک انصار", - "بانک سرمایه", - "بانک پاسارگاد", - "بانک مشترک ایران-ونزوئلا", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/fa_IR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/fa_IR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index fcd602f..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/fa_IR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/fi_FI/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/fi_FI/__init__.py deleted file mode 100644 index 5992d00..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/fi_FI/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``fi_FI`` locale.""" - - bban_format = "##############" - country_code = "FI" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/fi_FI/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/fi_FI/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 05352ae..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/fi_FI/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/fil_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/fil_PH/__init__.py deleted file mode 100644 index 4acddd9..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/fil_PH/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from ..en_PH import Provider as EnPhBankProvider - - -class Provider(EnPhBankProvider): - """Implement bank provider for ``fil_PH`` locale. - - There is no difference from the ``en_PH`` implementation. - """ - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/fil_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/fil_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1fefc52..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/fil_PH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_CH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_CH/__init__.py deleted file mode 100644 index 602d75f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_CH/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from ..de_CH import Provider as DeChBankProvider - - -class Provider(DeChBankProvider): - """Implement bank provider for ``fr_CH`` locale. - - There is no difference from the ``de_CH`` implementation. - """ - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_CH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_CH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2280bc6..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_CH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_FR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_FR/__init__.py deleted file mode 100644 index d417ea0..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_FR/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``fr_FR`` locale.""" - - bban_format = "#######################" - country_code = "FR" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_FR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_FR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a75763e..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_FR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/it_CH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/it_CH/__init__.py deleted file mode 100644 index 8964453..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/it_CH/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from ..de_CH import Provider as DeChBankProvider - - -class Provider(DeChBankProvider): - """Implement bank provider for ``it_CH`` locale. - - There is no difference from the ``de_CH`` implementation. - """ - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/it_CH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/it_CH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4690afc..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/it_CH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/it_IT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/it_IT/__init__.py deleted file mode 100644 index 995e9fb..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/it_IT/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``it_IT`` locale.""" - - bban_format = "?######################" - country_code = "IT" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/it_IT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/it_IT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index deee58c..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/it_IT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_BE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_BE/__init__.py deleted file mode 100644 index 636b2bf..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_BE/__init__.py +++ /dev/null @@ -1,92 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for `nl_BE` locale. - - Information about the Belgian banks can be found on the website - of the National Bank of Belgium: - https://www.nbb.be/nl/betalingen-en-effecten/betalingsstandaarden/bankidentificatiecodes - """ - - bban_format = "############" - country_code = "BE" - - banks = ( - "Argenta Spaarbank", - "AXA Bank", - "Belfius Bank", - "BNP Paribas Fortis", - "Bpost Bank", - "Crelan", - "Deutsche Bank AG", - "ING België", - "KBC Bank", - ) - swift_bank_codes = ( - "ARSP", - "AXAB", - "BBRU", - "BPOT", - "DEUT", - "GEBA", - "GKCC", - "KRED", - "NICA", - ) - swift_location_codes = ( - "BE", - "B2", - "99", - "21", - "91", - "23", - "3X", - "75", - "2X", - "22", - "88", - "B1", - "BX", - "BB", - ) - swift_branch_codes = [ - "203", - "BTB", - "CIC", - "HCC", - "IDJ", - "IPC", - "MDC", - "RET", - "VOD", - "XXX", - ] - - def bban(self) -> str: - """Generate a valid BBAN.""" - account_number = self._generate_account_number() - check_digits = self._calculate_mod97(account_number) - return f"{account_number}{check_digits}" - - def iban(self) -> str: - """Generate a valid IBAN.""" - bban = self.bban() - iban_check_digits = self._calculate_iban_check_digits(bban) - return f"{self.country_code}{iban_check_digits}{bban}" - - def _generate_account_number(self) -> str: - """Generate a random 10-digit account number.""" - return self.numerify("##########") - - def _calculate_mod97(self, account_number: str) -> str: - """Calculate the mod 97 check digits for a given account number.""" - remainder = int(account_number) % 97 - return str(remainder).zfill(2) if remainder != 0 else "97" - - def _calculate_iban_check_digits(self, bban: str) -> str: - """Calculate the IBAN check digits using mod 97 algorithm.""" - raw_iban = f"{bban}{self.country_code}00" - numeric_iban = "".join(str(ord(char) - 55) if char.isalpha() else char for char in raw_iban) - check_digits = 98 - (int(numeric_iban) % 97) - return str(check_digits).zfill(2) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_BE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_BE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0b0454d..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_BE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_NL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_NL/__init__.py deleted file mode 100644 index be57840..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_NL/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``nl_NL`` locale.""" - - bban_format = "????##########" - country_code = "NL" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_NL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_NL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7452bd8..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_NL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/no_NO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/no_NO/__init__.py deleted file mode 100644 index 7e5ff16..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/no_NO/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``no_NO`` locale.""" - - bban_format = "###########" - country_code = "NO" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/no_NO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/no_NO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 80f1972..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/no_NO/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/pl_PL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/pl_PL/__init__.py deleted file mode 100644 index 9cf6624..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/pl_PL/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``pl_PL`` locale.""" - - bban_format = "#" * 24 - country_code = "PL" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/pl_PL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/pl_PL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0e504fb..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/pl_PL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/pt_PT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/pt_PT/__init__.py deleted file mode 100644 index c772c99..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/pt_PT/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``pt_PT`` locale.""" - - bban_format = "#####################" - country_code = "PT" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/pt_PT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/pt_PT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0e422f0..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/pt_PT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/ro_RO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/ro_RO/__init__.py deleted file mode 100644 index e135a02..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/ro_RO/__init__.py +++ /dev/null @@ -1,50 +0,0 @@ -from faker.providers.bank import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``ro_RO`` locale.""" - - country_code = "RO" - bban_format = "????################" - swift_bank_codes = ( - "NBOR", - "ABNA", - "BUCU", - "ARBL", - "MIND", - "BPOS", - "CARP", - "RNCB", - "BROM", - "BITR", - "BRDE", - "BRMA", - "BTRL", - "DAFB", - "MIRB", - "CECE", - "CITI", - "CRCO", - "FNNB", - "EGNA", - "BSEA", - "EXIM", - "UGBI", - "HVBL", - "INGB", - "BREL", - "CRDZ", - "BNRB", - "PIRB", - "PORL", - "MIRO", - "RZBL", - "RZBR", - "ROIN", - "WBAN", - "TRFD", - "TREZ", - "BACX", - "VBBU", - "DARO", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/ro_RO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/ro_RO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d915cc0..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/ro_RO/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/ru_RU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/ru_RU/__init__.py deleted file mode 100644 index c5c6788..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/ru_RU/__init__.py +++ /dev/null @@ -1,755 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``ru_RU`` locale. - - Sources for region codes, currency codes, and bank names: - - - https://ru.wikipedia.org/wiki/Коды_субъектов_Российской_Федерации - - https://ru.wikipedia.org/wiki/Общероссийский_классификатор_валют - - http://cbr.ru/credit/coreports/ko17012020.zip - """ - - country_code = "RU" - - region_codes = ( - "01", - "03", - "04", - "05", - "07", - "08", - "10", - "11", - "12", - "14", - "15", - "17", - "18", - "19", - "20", - "22", - "24", - "25", - "26", - "27", - "28", - "29", - "30", - "32", - "33", - "34", - "35", - "36", - "37", - "38", - "40", - "41", - "42", - "44", - "45", - "46", - "47", - "49", - "50", - "52", - "53", - "54", - "56", - "57", - "58", - "60", - "61", - "63", - "64", - "65", - "66", - "67", - "68", - "69", - "70", - "71", - "73", - "75", - "76", - "77", - "78", - "79", - "80", - "81", - "82", - "83", - "84", - "85", - "86", - "87", - "88", - "89", - "90", - "91", - "92", - "93", - "94", - "95", - "96", - "97", - "98", - "99", - ) - - department_code_formats = ( - "0#", - "1#", - "2#", - "3#", - "4#", - "5#", - "6#", - "7#", - "8#", - "9#", - ) - - credit_organization_code_formats = ( - "05#", - "06#", - "07#", - "08#", - "09#", - "1##", - "2##", - "3##", - "4##", - "5##", - "6##", - "7##", - "8##", - "9##", - ) - - checking_account_codes = ( - [str(i) for i in range(102, 110)] - + ["203", "204"] - + [str(i) for i in range(301, 330)] - + [str(i) for i in range(401, 409)] - + [str(i) for i in range(411, 426)] - + ["430"] - + [str(i) for i in range(501, 527)] - ) - - organization_codes = ( - "01", - "02", - "03", - "04", - ) - - currency_codes = ( - "008", - "012", - "032", - "036", - "044", - "048", - "050", - "051", - "052", - "060", - "064", - "068", - "072", - "084", - "090", - "096", - "104", - "108", - "116", - "124", - "132", - "136", - "144", - "152", - "156", - "170", - "174", - "188", - "191", - "192", - "203", - "208", - "214", - "222", - "230", - "232", - "238", - "242", - "262", - "270", - "292", - "320", - "324", - "328", - "332", - "340", - "344", - "348", - "352", - "356", - "360", - "364", - "368", - "376", - "388", - "392", - "398", - "400", - "404", - "408", - "410", - "414", - "417", - "418", - "422", - "426", - "430", - "434", - "440", - "446", - "454", - "458", - "462", - "478", - "480", - "484", - "496", - "498", - "504", - "512", - "516", - "524", - "532", - "533", - "548", - "554", - "558", - "566", - "578", - "586", - "590", - "598", - "600", - "604", - "608", - "634", - "643", - "646", - "654", - "678", - "682", - "690", - "694", - "702", - "704", - "706", - "710", - "728", - "748", - "752", - "756", - "760", - "764", - "776", - "780", - "784", - "788", - "800", - "807", - "810", - "818", - "826", - "834", - "840", - "858", - "860", - "882", - "886", - "894", - "901", - "931", - "932", - "933", - "934", - "936", - "937", - "938", - "940", - "941", - "943", - "944", - "946", - "947", - "948", - "949", - "950", - "951", - "952", - "953", - "959", - "960", - "961", - "962", - "963", - "964", - "968", - "969", - "970", - "971", - "972", - "973", - "975", - "976", - "977", - "978", - "980", - "981", - "985", - "986", - "997", - "998", - "999", - ) - - banks = ( - "Абсолют Банк", - "Авангард", - "Аверс", - "Автоградбанк", - "Автокредитбанк", - "Автоторгбанк", - "Агора", - "Агропромкредит", - "Агророс", - "Азиатско-Тихоокеанский Банк", - "Азия-Инвест Банк", - "Айсибиси Банк", - "АК Барс", - "Акибанк", - "Акрополь", - "Актив Банк", - "Акцепт", - "Александровский", - "Алеф-Банк", - "Алмазэргиэнбанк", - "Алтайкапиталбанк", - "Алтынбанк", - "Альба Альянс", - "Альтернатива", - "Альфа-Банк", - "Америкэн Экспресс Банк", - "Апабанк", - "Аресбанк", - "Арзамас", - "Байкалинвестбанк", - "Байкалкредобанк", - "Балаково-Банк", - "Балтинвестбанк", - 'Банк "Санкт-Петербург"', - 'Банк "СКС"', - "Банк 131", - "Банк Берейт", - "Банк Дом.рф", - "Банк Жилищного Финансирования", - "Банк Зенит", - "Банк Зенит Сочи", - "Банк Интеза", - "Банк Казани", - "Банк Корпоративного Финансирования", - "Банк Кредит Свисс (Москва)", - "Банк Оранжевый", - "Банк Оренбург", - "Банк ПСА Финанс Рус", - "Банк Раунд", - "Банк Реалист", - "Банк РМП", - "Банк РСИ", - "Банк СГБ", - "Банк Стандарт-Кредит", - "Банк Финам", - "Банк ЧБРР", - "ББР Банк", - "Белгородсоцбанк", - "Бест Эффортс Банк", - "Бизнес-Сервис-Траст", - "БКС Банк", - "БМ-Банк", - "БМВ Банк", - "БНП Париба Банк", - "Братский АНКБ", - "Быстробанк", - "Бэнк Оф Чайна", - "Вакобанк", - "Великие Луки Банк", - "Венец", - "Веста", - "Викинг", - "Витабанк", - "Вкабанк", - "Владбизнесбанк", - "Внешфинбанк", - "Возрождение", - "Вологжанин", - "Восточный", - "ВРБ", - "Всероссийский Банк Развития Регионов", - "ВТБ", - "Вуз-Банк", - "Вятич", - "Газнефтьбанк", - "Газпромбанк", - "Газтрансбанк", - "Газэнергобанк", - "Гарант-Инвест", - "Генбанк", - "Геобанк", - "Гефест", - "Глобус", - "Голдман Сакс Банк", - "Горбанк", - "Гута-Банк", - "Далена", - "Дальневосточный Банк", - "Денизбанк Москва", - "Держава", - "Дж.П. Морган Банк Интернешнл", - "Джей Энд Ти Банк", - "Дойче Банк", - "Долинск", - "Дом-Банк", - "Донкомбанк", - "Дон-Тексбанк", - "Дружба", - "ЕАТП Банк", - "Евразийский Банк", - "Евроазиатский Инвестиционный Банк", - "Евроальянс", - "Еврофинанс Моснарбанк", - "Екатеринбург", - "Енисейский Объединенный Банк", - "Ермак", - "Живаго Банк", - "Запсибкомбанк", - "Заречье", - "Заубер Банк", - "Земельный", - "Земский Банк", - "Зираат Банк (Москва)", - "Ижкомбанк", - "ИК Банк", - "Икано Банк", - "Инбанк", - "Инвестторгбанк", - "Инг Банк (Евразия)", - "Интерпрогрессбанк", - "Интерпромбанк", - "ИРС", - "ИС Банк", - "ИТ Банк", - "Итуруп", - "Ишбанк", - "Йошкар-Ола", - "Калуга", - "Камский Коммерческий Банк", - "Капитал", - "Кетовский Коммерческий Банк", - "Киви Банк", - "Классик Эконом Банк", - "Кольцо Урала", - "Коммерцбанк (Евразия)", - "Коммерческий Индо Банк", - "Консервативный Коммерческий Банк", - "Континенталь", - "Космос", - "Костромаселькомбанк", - "Кошелев-Банк", - "Креди Агриколь Киб", - "Кредит Европа Банк", - "Кредит Урал Банк", - "Кремлевский", - "Крокус-Банк", - "Крона-Банк", - "Кросна-Банк", - "КС Банк", - "Кубань Кредит", - "Кубаньторгбанк", - "Кузбассхимбанк", - "Кузнецкбизнесбанк", - "Кузнецкий", - "Кузнецкий Мост", - "Курган", - "Курскпромбанк", - "Кэб Эйчэнби Банк", - "Ланта-Банк", - "Левобережный", - "Локо-Банк", - "Майкопбанк", - "Майский", - "Максима", - "МБА-Москва", - "МВС Банк", - "Мегаполис", - "Международный Финансовый Клуб", - "Мерседес-Бенц Банк Рус", - "Металлинвестбанк", - "Металлург", - "Меткомбанк", - "Мидзухо Банк (Москва)", - "Мир Бизнес Банк", - "МКБ", - "Модульбанк", - "Морган Стэнли Банк", - "Морской Банк", - "Москва-Сити", - "Московский Индустриальный Банк", - "Московский Коммерческий Банк", - "Московский Кредитный Банк", - "Московский Нефтехимический Банк", - "Московский Областной Банк", - "Московское Ипотечное Агентство", - "Москоммерцбанк", - "МС Банк Рус", - "МСКБ", - "МСП Банк", - "МТИ Банк", - "МТС-Банк", - "Муниципальный Камчатпрофитбанк", - "Нальчик", - "Народный Банк", - "Народный Банк Тувы", - "Народный Доверительный Банк", - "Натиксис Банк", - "Национальный Банк Сбережений", - "Национальный Инвестиционно-Промышленный", - "Национальный Резервный Банк", - "Национальный Стандарт", - "НБД-Банк", - "Невастройинвест", - "Нейва", - "Нефтепромбанк", - "НИБ", - "Нижневолжский Коммерческий Банк", - "Нико-Банк", - "НК Банк", - "Новикомбанк", - "Новобанк", - "Новокиб", - "Новый Век", - "Новый Московский Банк", - "Нокссбанк", - "Ноосфера", - "Норвик Банк", - "Нордеа Банк", - "НС Банк", - "НФК", - "Объединенный Банк Республики", - "Объединенный Капитал", - "Онего", - "Оней Банк", - "Орбанк", - "Оргбанк", - "ОТП Банк", - "Первоуральскбанк", - "Первый Дортрансбанк", - "Первый Инвестиционный Банк", - "Первый Клиентский Банк", - "Пересвет", - "Пермь", - "Петербургский Социальный Ком. Банк", - "Платина", - "Плюс Банк", - "Пойдём!", - "Почта Банк", - "Почтобанк", - "Приморский Территориальный", - "Приморье", - "Примсоцбанк", - "Приобье", - "Прио-Внешторгбанк", - "Прокоммерцбанк", - "Проминвестбанк", - "Промсвязьбанк", - "Промсельхозбанк", - "Промтрансбанк", - "Профессионал Банк", - "Профессиональный Инвестиционный Банк", - "Прохладный", - "Развитие-Столица", - "Райффайзенбанк", - "РБА", - "Ренессанс Кредит", - "Рента-Банк", - "Ресо Кредит", - "Республиканский Кредитный Альянс", - "Ресурс-Траст", - "РН Банк", - "Росбанк", - "Росбизнесбанк", - "Росгосстрах Банк", - "Росдорбанк", - "Роскосмосбанк", - "Россельхозбанк", - "Российская Финансовая Корпорация", - "Российский Национальный Коммерческий Банк", - "Россита-Банк", - "Россия", - "Ростфинанс", - "Росэксимбанк", - "Роял Кредит Банк", - "Руна-Банк", - "Руснарбанк", - "Русский Банк Сбережений", - "Русский Региональный Банк", - "Русский Стандарт", - "Русфинанс Банк", - "Русьуниверсалбанк", - "РФИ Банк", - "Саммит Банк", - "Санкт-Петербургский Банк Инвестиций", - "Саратов", - "Саровбизнесбанк", - "Сбербанк России", - "Связь-Банк", - "СДМ-Банк", - "Севастопольский Морской Банк", - "Северный Морской Путь", - "Северный Народный Банк", - "Северстройбанк", - "Севзапинвестпромбанк", - "Сельмашбанк", - "Сервис Резерв", - "Сетелем Банк", - "СИАБ", - "Сибсоцбанк", - "Синко-Банк", - "Система", - "Сити Инвест Банк", - "Ситибанк", - "СКБ-Банк", - "Славия", - "Славянбанк", - "Славянский Кредит", - "Снежинский", - "Собинбанк", - "Совкомбанк", - "Современные Стандарты Бизнеса", - "Соколовский", - "Солид Банк", - "Солидарность", - "Социум-Банк", - "Союз", - "Спецстройбанк", - "Спиритбанк", - "Спутник", - "Ставропольпромстройбанк", - "Столичный Кредит", - "Стройлесбанк", - "Сумитомо Мицуи Рус Банк", - "Сургутнефтегазбанк", - "СЭБ Банк", - "Таврический Банк", - "Таганрогбанк", - "Тайдон", - "Тамбовкредитпромбанк", - "Татсоцбанк", - "Тексбанк", - "Тендер-Банк", - "Тимер Банк", - "Тинькофф Банк", - "Тойота Банк", - "Тольяттихимбанк", - "Томскпромстройбанк", - "Торжок", - "Транскапиталбанк", - "Трансстройбанк", - "Траст", - "Тэмбр-Банк", - "Углеметбанк", - "Унифондбанк", - "Уралпромбанк", - "Уралсиб", - "Уралфинанс", - "Уральский Банк Реконструкции и Развития", - "Уральский Финансовый Дом", - "УРИ Банк", - "Финанс Бизнес Банк", - "Финсервис", - "ФК Открытие", - "Фольксваген Банк Рус", - "Фора-Банк", - "Форбанк", - "Форштадт", - "Фридом Финанс", - "Хакасский Муниципальный Банк", - "Химик", - "ХКФ Банк", - "Хлынов", - "Центрально-Азиатский", - "Центр-Инвест", - "Центрокредит", - "ЦМРБанк", - "Чайна Констракшн Банк", - "Чайнасельхозбанк", - "Челиндбанк", - "Челябинвестбанк", - "Эйч-Эс-Би-Си Банк (РР)", - "Эко-Инвест", - "Экономбанк", - "Экси-Банк", - "Экспобанк", - "Экспресс-Волга", - "Элита", - "Эм-Ю-Эф-Джи Банк (Евразия)", - "Энергобанк", - "Энергомашбанк", - "Энерготрансбанк", - "Эс-Би-Ай Банк", - "Ю Би Эс Банк", - "Юг-Инвестбанк", - "ЮМК Банк", - "Юникредит Банк", - "Юнистрим", - "Яринтербанк", - ) - - def bic(self) -> str: - """Generate a bank identification code (BIC). - - BIC is a bank identification code that is used in Russia. - See https://ru.wikipedia.org/wiki/Банковский_идентификационный_код. - """ - region: str = self.random_element(self.region_codes) - department_code: str = self.numerify(self.random_element(self.department_code_formats)) - credit_organization_code: str = self.numerify(self.random_element(self.credit_organization_code_formats)) - return "04" + region + department_code + credit_organization_code - - def correspondent_account(self) -> str: - """Generate a correspondent account number. - - Correspondent account is established to handle various financial - operations between financial institutions. - See https://ru.wikipedia.org/wiki/Корреспондентский_счёт. - """ - credit_organization_code = self.numerify(self.random_element(self.credit_organization_code_formats)) - return "301" + self.numerify("#" * 14) + credit_organization_code - - def checking_account(self) -> str: - """Generate a checking account number. - - Checking account is used in banks to handle financial operations of - clients. - See https://ru.wikipedia.org/wiki/Расчётный_счёт. - """ - account: str = self.random_element(self.checking_account_codes) - organization: str = self.random_element(self.organization_codes) - currency: str = self.random_element(self.currency_codes) - return account + organization + currency + self.numerify("#" * 12) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/ru_RU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/ru_RU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index afb07be..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/ru_RU/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/sk_SK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/sk_SK/__init__.py deleted file mode 100644 index c83b233..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/sk_SK/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``sk_SK`` locale. - - https://www.mbank.cz/informace-k-produktum/info/ucty/cislo-uctu-iban.html - """ - - bban_format = "####################" - country_code = "SK" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/sk_SK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/sk_SK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3e4d696..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/sk_SK/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/th_TH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/th_TH/__init__.py deleted file mode 100644 index e277673..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/th_TH/__init__.py +++ /dev/null @@ -1,64 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``th_TH`` locale.""" - - bban_format = "#" * 10 - country_code = "TH" - swift_bank_codes = ( - "AIAC", - "ANZB", - "BKKB", - "BAAB", - "BOFA", - "AYUD", - "BKCH", - "BOTH", - "BNPA", - "UBOB", - "CITI", - "CRES", - "DEUT", - "EXTH", - "GSBA", - "BHOB", - "ICBK", - "TIBT", - "CHAS", - "KASI", - "KKPB", - "KRTH", - "LAHR", - "ICBC", - "MHCB", - "OCBC", - "DCBB", - "SICO", - "SMEB", - "SCBL", - "SMBC", - "THBK", - "HSBC", - "TMBK", - "UOVB", - ) - swift_location_codes = ( - "BK", - "B2", - "BB", - "BX", - "2X", - ) - swift_branch_codes = ( - "BKO", - "BNA", - "RYO", - "CHB", - "IBF", - "SEC", - "HDY", - "CHM", - "NAV", - "XXX", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/th_TH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/th_TH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 9985675..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/th_TH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/tl_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/tl_PH/__init__.py deleted file mode 100644 index 1f19b36..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/tl_PH/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from ..en_PH import Provider as EnPhBankProvider - - -class Provider(EnPhBankProvider): - """Implement bank provider for ``tl_PH`` locale. - - There is no difference from the ``en_PH`` implementation. - """ - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/tl_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/tl_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 8e5f3e2..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/tl_PH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/tr_TR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/tr_TR/__init__.py deleted file mode 100644 index e57bed6..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/tr_TR/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``tr_TR`` locale.""" - - bban_format = "######################" - country_code = "TR" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/tr_TR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/tr_TR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 760ec78..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/tr_TR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/uk_UA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/uk_UA/__init__.py deleted file mode 100644 index d2ed35c..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/uk_UA/__init__.py +++ /dev/null @@ -1,83 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``uk_UA`` locale. - Source for rules for bban format: - https://bank.gov.ua/en/iban - Banks list: - https://ubanks.com.ua/adr/ - """ - - bban_format = "#" * 27 - country_code = "UA" - banks = ( - "izibank", - "monobank", - "O.Bank", - "sportbank", - "А-Банк", - "Агропросперіс Банк", - "АкордБанк", - "Альтбанк", - "Асвіо Банк", - "Банк 3/4", - "Банк Авангард", - "Банк Альянс", - "Банк Власний Рахунок", - "Банк Восток", - "Банк інвестицій та заощаджень", - "Банк Кредит Дніпро", - "Банк Портал", - "Банк Український Капітал", - "Банк Фамільний", - "БТА Банк", - "Глобус", - "Грант", - "Дойче Банк ДБУ", - "Європейський Промисловий Банк", - "Ідея Банк", - "ІНГ Банк Україна", - "Індустріалбанк", - "Кліринговий Дім", - "Комінбанк", - "КомІнвестБанк", - "Кредит Європа Банк", - "Кредитвест Банк", - "Креді Агріколь", - "Кредобанк", - "Кристалбанк", - "Львів", - "МетаБанк", - "Міжнародний Інвестиційний Банк", - "Мотор-Банк", - "МТБ Банк", - "Національний банк України", - "Оксі Банк", - "ОТП Банк", - "Ощадбанк", - "Перший Інвестиційний Банк", - "Перший Український Міжнародний Банк", - "Південний", - "Піреус Банк", - "Полікомбанк", - "Полтава-Банк", - "Правекс Банк", - "ПриватБанк", - "ПроКредит Банк", - "Радабанк", - "Райффайзен Банк", - "РВС Банк", - "СЕБ Корпоративний Банк", - "Сенс Банк", - "Сітібанк", - "Скай Банк", - "ТАСкомбанк", - "Траст-капітал", - "Український банк реконструкції та розвитку", - "Укргазбанк", - "Укрексімбанк", - "УкрСиббанк", - "Універсал Банк", - "Юнекс Банк", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/uk_UA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/uk_UA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d53539e..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/uk_UA/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/zh_CN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/zh_CN/__init__.py deleted file mode 100644 index 0372539..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/zh_CN/__init__.py +++ /dev/null @@ -1,33 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``zh_CN`` locale. - Source: https://zh.wikipedia.org/wiki/中国大陆银行列表 - """ - - banks = ( - "中国人民银行", - "国家开发银行", - "中国进出口银行", - "中国农业发展银行", - "交通银行", - "中国银行", - "中国建设银行", - "中国农业银行", - "中国工商银行", - "中国邮政储蓄银行", - "中国光大银行", - "中国民生银行", - "招商银行", - "中信银行", - "华夏银行", - "上海浦东发展银行", - "平安银行", - "广发银行", - "兴业银行", - "浙商银行", - "渤海银行", - "恒丰银行", - "西安银行", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/zh_CN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/zh_CN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a5a5eb0..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/bank/zh_CN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/barcode/__init__.py deleted file mode 100644 index c443cd6..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/barcode/__init__.py +++ /dev/null @@ -1,122 +0,0 @@ -from typing import Tuple, Union - -from .. import BaseProvider - -localized = True - -PrefixType = Tuple[Union[int, str, Tuple[Union[int, str], ...]], ...] - - -class Provider(BaseProvider): - """Implement default barcode provider for Faker. - - Sources: - - - https://gs1.org/standards/id-keys/company-prefix - """ - - local_prefixes: PrefixType = () - - def _ean(self, length: int = 13, prefixes: PrefixType = ()) -> str: - if length not in (8, 13): - raise AssertionError("length can only be 8 or 13") - - code = [self.random_digit() for _ in range(length - 1)] - - if prefixes: - prefix: str = self.random_element(prefixes) # type: ignore[assignment] - code[: len(prefix)] = map(int, prefix) - - if length == 8: - weights = [3, 1, 3, 1, 3, 1, 3] - elif length == 13: - weights = [1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3] - - weighted_sum = sum(x * y for x, y in zip(code, weights)) - check_digit = (10 - weighted_sum % 10) % 10 - code.append(check_digit) - - return "".join(str(x) for x in code) - - def ean(self, length: int = 13, prefixes: PrefixType = ()) -> str: - """Generate an EAN barcode of the specified ``length``. - - The value of ``length`` can only be ``8`` or ``13`` (default) which will - create an EAN-8 or an EAN-13 barcode respectively. - - If a value for ``prefixes`` is specified, the result will begin with one - of the sequences in ``prefixes``. - - :sample: length=13 - :sample: length=8 - :sample: prefixes=('00',) - :sample: prefixes=('45', '49') - """ - return self._ean(length, prefixes=prefixes) - - def ean8(self, prefixes: PrefixType = ()) -> str: - """Generate an EAN-8 barcode. - - This method uses |ean| under the hood with the ``length`` argument - explicitly set to ``8``. - - If a value for ``prefixes`` is specified, the result will begin with one - of the sequences in ``prefixes``. - - :sample: - :sample: prefixes=('00',) - :sample: prefixes=('45', '49') - """ - return self._ean(8, prefixes=prefixes) - - def ean13(self, prefixes: PrefixType = ()) -> str: - """Generate an EAN-13 barcode. - - This method uses |ean| under the hood with the ``length`` argument - explicitly set to ``13``. - - If a value for ``prefixes`` is specified, the result will begin with one - of the sequences in ``prefixes``. - - .. note:: - Codes starting with a leading zero are treated specially in some - barcode readers. For more information on compatibility with UPC-A - codes, see |EnUsBarcodeProvider.ean13|. - - :sample: - :sample: prefixes=('00',) - :sample: prefixes=('45', '49') - """ - return self._ean(13, prefixes=prefixes) - - def localized_ean(self, length: int = 13) -> str: - """Generate a localized EAN barcode of the specified ``length``. - - The value of ``length`` can only be ``8`` or ``13`` (default) which will - create an EAN-8 or an EAN-13 barcode respectively. - - This method uses the standard barcode provider's |ean| under the hood - with the ``prefixes`` argument explicitly set to ``local_prefixes`` of - a localized barcode provider implementation. - - :sample: - :sample: length=13 - :sample: length=8 - """ - return self._ean(length, prefixes=self.local_prefixes) - - def localized_ean8(self) -> str: - """Generate a localized EAN-8 barcode. - - This method uses |localized_ean| under the hood with the ``length`` - argument explicitly set to ``8``. - """ - return self.localized_ean(8) - - def localized_ean13(self) -> str: - """Generate a localized EAN-13 barcode. - - This method uses |localized_ean| under the hood with the ``length`` - argument explicitly set to ``13``. - """ - return self.localized_ean(13) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/barcode/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2f2c629..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/barcode/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_CA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_CA/__init__.py deleted file mode 100644 index aae2a58..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_CA/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -from itertools import product - -from ..en_US import Provider as EnUsBarcodeProvider - - -class Provider(EnUsBarcodeProvider): - """Implement barcode provider for ``en_CA`` locale. - - Canada uses UPC as well, so there are similarities between this and the - ``en_US`` implementation. - - Sources: - - - https://gs1.org/standards/id-keys/company-prefix - - https://www.nationwidebarcode.com/upc-country-codes/ - """ - - local_prefixes = ( - # Some sources do not specify prefixes 00~01, 06~09 for use in Canada, - # but it's referenced in other pages - *product((0,), range(2)), - *product((0,), range(6, 10)), - (7, 5), - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_CA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_CA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 64bb554..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_CA/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_US/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_US/__init__.py deleted file mode 100644 index e009dfc..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_US/__init__.py +++ /dev/null @@ -1,249 +0,0 @@ -import re - -from itertools import product -from typing import Dict, Optional, Pattern - -from .. import PrefixType -from .. import Provider as BarcodeProvider - - -class Provider(BarcodeProvider): - """Implement barcode provider for ``en_US`` locale. - - Sources: - - - https://gs1.org/standards/id-keys/company-prefix - """ - - local_prefixes = ( - *product((0,), range(10)), - *product((1,), range(4)), - ) - - upc_e_base_pattern: Pattern = re.compile(r"^\d{6}$") - upc_ae_pattern1: Pattern = re.compile( - r"^(?P[01])" # The first digit must be 0 or 1 - r"(?=\d{11}$)" # followed by 11 digits of which - r"(?P\d{2})" # the first 2 digits make up the manufacturer code, - r"(?:(?P[012])0{4})" # if immediately followed by 00000, 10000, or 20000, - r"(?P\d{3})" # a 3-digit product code, - r"(?P\d)$", # and finally a check digit. - ) - upc_ae_pattern2: Pattern = re.compile( - r"^(?P[01])" # The first digit must be 0 or 1 - r"(?=\d{11}$)" # followed by 11 digits of which - r"(?P\d{3,4}?)" # the first 3 or 4 digits make up the manufacturer code, - r"(?:0{5})" # if immediately followed by 00000, - r"(?P\d{1,2})" # a 2-digit or single digit product code, - r"(?P\d)$", # and finally a check digit. - ) - upc_ae_pattern3: Pattern = re.compile( - r"^(?P[01])" # The first digit must be 0 or 1 - r"(?=\d{11}$)" # followed by 11 digits of which - r"(?P\d{5})" # the first 5 digits make up the manufacturer code, - r"(?:0{4}(?P[5-9]))" # if immediately followed by 0000 and a 5, 6, 7, 8, or 9, - r"(?P\d)$", # and finally a check digit. - ) - - def ean13(self, prefixes: PrefixType = (), leading_zero: Optional[bool] = None) -> str: - """Generate an EAN-13 barcode. - - If ``leading_zero`` is ``True``, the leftmost digit of the barcode will - be set to ``0``. If ``False``, the leftmost digit cannot be ``0``. If - ``None`` (default), the leftmost digit can be any digit. - - If a value for ``prefixes`` is specified, the result will begin with one - of the sequences in ``prefixes`` and will ignore ``leading_zero``. - - This method uses the standard barcode provider's |ean13| under the - hood with the ``prefixes`` argument set to the correct value to attain - the behavior described above. - - .. note:: - EAN-13 barcode that starts with a zero can be converted to UPC-A - by dropping the leading zero. This may cause problems with readers - that treat all of these code as UPC-A codes and drop the first digit - when reading it. - - You can set the argument ``prefixes`` ( or ``leading_zero`` for - convenience) explicitly to avoid or to force the generated barcode to - start with a zero. You can also generate actual UPC-A barcode with - |EnUsBarcodeProvider.upc_a|. - - :sample: - :sample: leading_zero=False - :sample: leading_zero=True - :sample: prefixes=('00',) - :sample: prefixes=('45', '49') - """ - if not prefixes: - if leading_zero is True: - prefixes = ((0,),) - elif leading_zero is False: - prefixes = ((self.random_int(1, 9),),) - - return super().ean13(prefixes=prefixes) - - def _convert_upc_a2e(self, upc_a: str) -> str: - """Convert a 12-digit UPC-A barcode to its 8-digit UPC-E equivalent. - - .. warning:: - Not all UPC-A barcodes can be converted. - """ - if not isinstance(upc_a, str): - raise TypeError("`upc_a` is not a string") - m1 = self.upc_ae_pattern1.match(upc_a) - m2 = self.upc_ae_pattern2.match(upc_a) - m3 = self.upc_ae_pattern3.match(upc_a) - if not any([m1, m2, m3]): - raise ValueError("`upc_a` has an invalid value") - upc_e_template = "{number_system_digit}{mfr_code}{product_code}{extra}{check_digit}" - if m1: - upc_e = upc_e_template.format(**m1.groupdict()) - elif m2: - groupdict: Dict[str, str] = m2.groupdict() - mfr_code = groupdict.get("mfr_code") or "" - groupdict["extra"] = str(len(mfr_code)) - upc_e = upc_e_template.format(**groupdict) - elif m3: - groupdict = m3.groupdict() - groupdict["product_code"] = "" - upc_e = upc_e_template.format(**groupdict) - return upc_e - - def _upc_ae(self, base: Optional[str] = None, number_system_digit: Optional[int] = None) -> str: - """Create a 12-digit UPC-A barcode that can be converted to UPC-E. - - The expected value of ``base`` is a 6-digit string. If any other value - is provided, this method will use a random 6-digit string instead. - - The expected value of ``number_system_digit`` is the integer ``0`` or - ``1``. If any other value is provided, this method will randomly choose - from the two. - - Please also view notes on |EnUsBarcodeProvider.upc_a| and - |EnUsBarcodeProvider.upc_e| for more details. - """ - base_ = ( - [int(x) for x in base] - if isinstance(base, str) and self.upc_e_base_pattern.match(base) - else [self.random_int(0, 9) for _ in range(6)] - ) - if number_system_digit not in [0, 1]: - number_system_digit = self.random_int(0, 1) - - if base_[-1] <= 2: - code = base_[:2] + base_[-1:] + [0] * 4 + base_[2:-1] - elif base_[-1] <= 4: - code = base_[: base_[-1]] + [0] * 5 + base_[base_[-1] : -1] - else: - code = base_[:5] + [0] * 4 + base_[-1:] - - code.insert(0, number_system_digit) - weights = [3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3] - weighted_sum = sum(x * y for x, y in zip(code, weights)) - check_digit = (10 - weighted_sum % 10) % 10 - code.append(check_digit) - return "".join(str(x) for x in code) - - def upc_a( - self, - upc_ae_mode: bool = False, - base: Optional[str] = None, - number_system_digit: Optional[int] = None, - ) -> str: - """Generate a 12-digit UPC-A barcode. - - The value of ``upc_ae_mode`` controls how barcodes will be generated. If - ``False`` (default), barcodes are not guaranteed to have a UPC-E - equivalent. In this mode, the method uses |EnUsBarcodeProvider.ean13| - under the hood, and the values of ``base`` and ``number_system_digit`` - will be ignored. - - If ``upc_ae_mode`` is ``True``, the resulting barcodes are guaranteed to - have a UPC-E equivalent, and the values of ``base`` and - ``number_system_digit`` will be used to control what is generated. - - Under this mode, ``base`` is expected to have a 6-digit string value. If - any other value is supplied, a random 6-digit string will be used - instead. As for ``number_system_digit``, the expected value is a ``0`` - or a ``1``. If any other value is provided, this method will randomly - choose from the two. - - .. important:: - When ``upc_ae_mode`` is enabled, you might encounter instances where - different values of ``base`` (e.g. ``'120003'`` and ``'120004'``) - produce the same UPC-A barcode. This is normal, and the reason lies - within the whole conversion process. To learn more about this and - what ``base`` and ``number_system_digit`` actually represent, please - refer to |EnUsBarcodeProvider.upc_e|. - - :sample: - :sample: upc_ae_mode=True, number_system_digit=0 - :sample: upc_ae_mode=True, number_system_digit=1 - :sample: upc_ae_mode=True, base='123456', number_system_digit=0 - :sample: upc_ae_mode=True, base='120003', number_system_digit=0 - :sample: upc_ae_mode=True, base='120004', number_system_digit=0 - """ - if upc_ae_mode is True: - return self._upc_ae(base=base, number_system_digit=number_system_digit) - else: - ean13 = self.ean13(leading_zero=True) - return ean13[1:] - - def upc_e( - self, - base: Optional[str] = None, - number_system_digit: Optional[int] = None, - safe_mode: bool = True, - ) -> str: - """Generate an 8-digit UPC-E barcode. - - UPC-E barcodes can be expressed in 6, 7, or 8-digit formats, but this - method uses the 8 digit format, since it is trivial to convert to the - other two formats. The first digit (starting from the left) is - controlled by ``number_system_digit``, and it can only be a ``0`` or a - ``1``. The last digit is the check digit that is inherited from the - UPC-E barcode's UPC-A equivalent. The middle six digits are collectively - referred to as the ``base`` (for a lack of a better term). - - On that note, this method uses ``base`` and ``number_system_digit`` to - first generate a UPC-A barcode for the check digit, and what happens - next depends on the value of ``safe_mode``. The argument ``safe_mode`` - exists, because there are some UPC-E values that share the same UPC-A - equivalent. For example, any UPC-E barcode of the form ``abc0000d``, - ``abc0003d``, and ``abc0004d`` share the same UPC-A value - ``abc00000000d``, but that UPC-A value will only convert to ``abc0000d`` - because of (a) how UPC-E is just a zero-suppressed version of UPC-A and - (b) the rules around the conversion. - - If ``safe_mode`` is ``True`` (default), this method performs another set - of conversions to guarantee that the UPC-E barcodes generated can be - converted to UPC-A, and that UPC-A barcode can be converted back to the - original UPC-E barcode. Using the example above, even if the bases - ``120003`` or ``120004`` are used, the resulting UPC-E barcode will - always use the base ``120000``. - - If ``safe_mode`` is ``False``, then the ``number_system_digit``, - ``base``, and the computed check digit will just be concatenated - together to produce the UPC-E barcode, and attempting to convert the - barcode to UPC-A and back again to UPC-E will exhibit the behavior - described above. - - :sample: - :sample: base='123456' - :sample: base='123456', number_system_digit=0 - :sample: base='123456', number_system_digit=1 - :sample: base='120000', number_system_digit=0 - :sample: base='120003', number_system_digit=0 - :sample: base='120004', number_system_digit=0 - :sample: base='120000', number_system_digit=0, safe_mode=False - :sample: base='120003', number_system_digit=0, safe_mode=False - :sample: base='120004', number_system_digit=0, safe_mode=False - """ - if safe_mode is not False: - upc_ae = self._upc_ae(base=base, number_system_digit=number_system_digit) - return self._convert_upc_a2e(upc_ae) - else: - upc_ae = self._upc_ae(base=base, number_system_digit=number_system_digit) - return upc_ae[0] + "".join(str(x) for x in base or "") + upc_ae[-1] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_US/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_US/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 782459e..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_US/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/es_ES/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/barcode/es_ES/__init__.py deleted file mode 100644 index a6a28d3..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/barcode/es_ES/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from .. import Provider as BarcodeProvider - - -class Provider(BarcodeProvider): - """Implement barcode provider for ``es_ES`` locale. - - Sources: - - - https://gs1.org/standards/id-keys/company-prefix - """ - - local_prefixes = ((8, 4),) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/es_ES/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/barcode/es_ES/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d821522..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/barcode/es_ES/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/fr_CA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/barcode/fr_CA/__init__.py deleted file mode 100644 index 1ad243d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/barcode/fr_CA/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from ..en_CA import Provider as BarcodeProvider - - -class Provider(BarcodeProvider): - """Implement bank provider for ``fr_CA`` locale. - - There is no difference from the ``en_CA`` implementation. - """ - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/fr_CA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/barcode/fr_CA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1844487..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/barcode/fr_CA/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/ja_JP/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/barcode/ja_JP/__init__.py deleted file mode 100644 index b4d571f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/barcode/ja_JP/__init__.py +++ /dev/null @@ -1,49 +0,0 @@ -from .. import Provider as BarcodeProvider - - -class Provider(BarcodeProvider): - """Implement barcode provider for ``ja_JP`` locale. - - Japanese local EAN barcodes are called JAN-codes. - - Sources: - - - https://gs1.org/standards/id-keys/company-prefix - - https://www.dsri.jp/jan/about_jan.html - - .. |JaJpProvider.localized_ean| replace:: - :meth:`JaJpProvider.localized_ean() ` - - .. |JaJpProvider.localized_ean8| replace:: - :meth:`JaJpProvider.localized_ean8() ` - - .. |JaJpProvider.localized_ean13| replace:: - :meth:`JaJpProvider.localized_ean13() ` - """ - - local_prefixes = (4, 5), (4, 9) - - def jan(self, length: int = 13) -> str: - """Generate a JAN barcode of the specified ``length``. - - This method is an alias for |JaJpProvider.localized_ean|. - - :sample: - :sample: length=8 - :sample: length=13 - """ - return self.localized_ean(length) - - def jan8(self) -> str: - """Generate a 8 digit JAN barcode. - - This method is an alias for |JaJpProvider.localized_ean8|. - """ - return self.localized_ean8() - - def jan13(self) -> str: - """Generate a 13 digit JAN barcode. - - This method is an alias for |JaJpProvider.localized_ean13|. - """ - return self.localized_ean13() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/ja_JP/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/barcode/ja_JP/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f511039..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/barcode/ja_JP/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/__init__.py deleted file mode 100644 index 155bf8a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/__init__.py +++ /dev/null @@ -1,330 +0,0 @@ -from collections import OrderedDict -from functools import cached_property -from typing import Dict, Optional, Tuple - -from ...typing import HueType -from .. import BaseProvider, ElementsType -from .color import RandomColor - -localized = True - - -class Provider(BaseProvider): - """Implement default color provider for Faker.""" - - all_colors: Dict[str, str] = OrderedDict( - ( - ("AliceBlue", "#F0F8FF"), - ("AntiqueWhite", "#FAEBD7"), - ("Aqua", "#00FFFF"), - ("Aquamarine", "#7FFFD4"), - ("Azure", "#F0FFFF"), - ("Beige", "#F5F5DC"), - ("Bisque", "#FFE4C4"), - ("Black", "#000000"), - ("BlanchedAlmond", "#FFEBCD"), - ("Blue", "#0000FF"), - ("BlueViolet", "#8A2BE2"), - ("Brown", "#A52A2A"), - ("BurlyWood", "#DEB887"), - ("CadetBlue", "#5F9EA0"), - ("Chartreuse", "#7FFF00"), - ("Chocolate", "#D2691E"), - ("Coral", "#FF7F50"), - ("CornflowerBlue", "#6495ED"), - ("Cornsilk", "#FFF8DC"), - ("Crimson", "#DC143C"), - ("Cyan", "#00FFFF"), - ("DarkBlue", "#00008B"), - ("DarkCyan", "#008B8B"), - ("DarkGoldenRod", "#B8860B"), - ("DarkGray", "#A9A9A9"), - ("DarkGreen", "#006400"), - ("DarkKhaki", "#BDB76B"), - ("DarkMagenta", "#8B008B"), - ("DarkOliveGreen", "#556B2F"), - ("DarkOrange", "#FF8C00"), - ("DarkOrchid", "#9932CC"), - ("DarkRed", "#8B0000"), - ("DarkSalmon", "#E9967A"), - ("DarkSeaGreen", "#8FBC8F"), - ("DarkSlateBlue", "#483D8B"), - ("DarkSlateGray", "#2F4F4F"), - ("DarkTurquoise", "#00CED1"), - ("DarkViolet", "#9400D3"), - ("DeepPink", "#FF1493"), - ("DeepSkyBlue", "#00BFFF"), - ("DimGray", "#696969"), - ("DodgerBlue", "#1E90FF"), - ("FireBrick", "#B22222"), - ("FloralWhite", "#FFFAF0"), - ("ForestGreen", "#228B22"), - ("Fuchsia", "#FF00FF"), - ("Gainsboro", "#DCDCDC"), - ("GhostWhite", "#F8F8FF"), - ("Gold", "#FFD700"), - ("GoldenRod", "#DAA520"), - ("Gray", "#808080"), - ("Green", "#008000"), - ("GreenYellow", "#ADFF2F"), - ("HoneyDew", "#F0FFF0"), - ("HotPink", "#FF69B4"), - ("IndianRed", "#CD5C5C"), - ("Indigo", "#4B0082"), - ("Ivory", "#FFFFF0"), - ("Khaki", "#F0E68C"), - ("Lavender", "#E6E6FA"), - ("LavenderBlush", "#FFF0F5"), - ("LawnGreen", "#7CFC00"), - ("LemonChiffon", "#FFFACD"), - ("LightBlue", "#ADD8E6"), - ("LightCoral", "#F08080"), - ("LightCyan", "#E0FFFF"), - ("LightGoldenRodYellow", "#FAFAD2"), - ("LightGray", "#D3D3D3"), - ("LightGreen", "#90EE90"), - ("LightPink", "#FFB6C1"), - ("LightSalmon", "#FFA07A"), - ("LightSeaGreen", "#20B2AA"), - ("LightSkyBlue", "#87CEFA"), - ("LightSlateGray", "#778899"), - ("LightSteelBlue", "#B0C4DE"), - ("LightYellow", "#FFFFE0"), - ("Lime", "#00FF00"), - ("LimeGreen", "#32CD32"), - ("Linen", "#FAF0E6"), - ("Magenta", "#FF00FF"), - ("Maroon", "#800000"), - ("MediumAquaMarine", "#66CDAA"), - ("MediumBlue", "#0000CD"), - ("MediumOrchid", "#BA55D3"), - ("MediumPurple", "#9370DB"), - ("MediumSeaGreen", "#3CB371"), - ("MediumSlateBlue", "#7B68EE"), - ("MediumSpringGreen", "#00FA9A"), - ("MediumTurquoise", "#48D1CC"), - ("MediumVioletRed", "#C71585"), - ("MidnightBlue", "#191970"), - ("MintCream", "#F5FFFA"), - ("MistyRose", "#FFE4E1"), - ("Moccasin", "#FFE4B5"), - ("NavajoWhite", "#FFDEAD"), - ("Navy", "#000080"), - ("OldLace", "#FDF5E6"), - ("Olive", "#808000"), - ("OliveDrab", "#6B8E23"), - ("Orange", "#FFA500"), - ("OrangeRed", "#FF4500"), - ("Orchid", "#DA70D6"), - ("PaleGoldenRod", "#EEE8AA"), - ("PaleGreen", "#98FB98"), - ("PaleTurquoise", "#AFEEEE"), - ("PaleVioletRed", "#DB7093"), - ("PapayaWhip", "#FFEFD5"), - ("PeachPuff", "#FFDAB9"), - ("Peru", "#CD853F"), - ("Pink", "#FFC0CB"), - ("Plum", "#DDA0DD"), - ("PowderBlue", "#B0E0E6"), - ("Purple", "#800080"), - ("Red", "#FF0000"), - ("RosyBrown", "#BC8F8F"), - ("RoyalBlue", "#4169E1"), - ("SaddleBrown", "#8B4513"), - ("Salmon", "#FA8072"), - ("SandyBrown", "#F4A460"), - ("SeaGreen", "#2E8B57"), - ("SeaShell", "#FFF5EE"), - ("Sienna", "#A0522D"), - ("Silver", "#C0C0C0"), - ("SkyBlue", "#87CEEB"), - ("SlateBlue", "#6A5ACD"), - ("SlateGray", "#708090"), - ("Snow", "#FFFAFA"), - ("SpringGreen", "#00FF7F"), - ("SteelBlue", "#4682B4"), - ("Tan", "#D2B48C"), - ("Teal", "#008080"), - ("Thistle", "#D8BFD8"), - ("Tomato", "#FF6347"), - ("Turquoise", "#40E0D0"), - ("Violet", "#EE82EE"), - ("Wheat", "#F5DEB3"), - ("White", "#FFFFFF"), - ("WhiteSmoke", "#F5F5F5"), - ("Yellow", "#FFFF00"), - ("YellowGreen", "#9ACD32"), - ) - ) - - safe_colors: ElementsType[str] = ( - "black", - "maroon", - "green", - "navy", - "olive", - "purple", - "teal", - "lime", - "blue", - "silver", - "gray", - "yellow", - "fuchsia", - "aqua", - "white", - ) - - def color_name(self) -> str: - """ - Generate a color name. - - :sample: - """ - return self.random_element(self.all_colors.keys()) - - def safe_color_name(self) -> str: - """ - Generate a web-safe color name. - - :sample: - """ - return self.random_element(self.safe_colors) - - def hex_color(self) -> str: - """ - Generate a color formatted as a hex triplet. - - :sample: - """ - return f"#{self.random_int(1, 16777215):06x}" - - def safe_hex_color(self) -> str: - """ - Generate a web-safe color formatted as a hex triplet. - - :sample: - """ - return f"#{self.random_int(0, 15) * 17:02x}{self.random_int(0, 15) * 17:02x}{self.random_int(0, 15) * 17:02x}" - - def rgb_color(self) -> str: - """ - Generate a color formatted as a comma-separated RGB value. - - :sample: - """ - return ",".join(map(str, (self.random_int(0, 255) for _ in range(3)))) - - def rgb_css_color(self) -> str: - """ - Generate a color formatted as a CSS rgb() function. - - :sample: - """ - return f"rgb({self.random_int(0, 255)},{self.random_int(0, 255)},{self.random_int(0, 255)})" - - @cached_property - def _random_color(self): - return RandomColor(self.generator) - - def color( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - color_format: str = "hex", - ) -> str: - """Generate a color in a human-friendly way. - - Under the hood, this method first creates a color represented in the HSV - color model and then converts it to the desired ``color_format``. The - argument ``hue`` controls the H value according to the following - rules: - - - If the value is a number from ``0`` to ``360``, it will serve as the H - value of the generated color. - - If the value is a tuple/list of 2 numbers from 0 to 360, the color's H - value will be randomly selected from that range. - - If the value is a valid string, the color's H value will be randomly - selected from the H range corresponding to the supplied string. Valid - values are ``'monochrome'``, ``'red'``, ``'orange'``, ``'yellow'``, - ``'green'``, ``'blue'``, ``'purple'``, and ``'pink'``. - - The argument ``luminosity`` influences both S and V values and is - partially affected by ``hue`` as well. The finer details of this - relationship are somewhat involved, so please refer to the source code - instead if you wish to dig deeper. To keep the interface simple, this - argument either can be omitted or can accept the following string - values:``'bright'``, ``'dark'``, ``'light'``, or ``'random'``. - - The argument ``color_format`` controls in which color model the color is - represented. Valid values are ``'hsv'``, ``'hsl'``, ``'rgb'``, or - ``'hex'`` (default). - - :sample: hue='red' - :sample: luminosity='light' - :sample: hue=(100, 200), color_format='rgb' - :sample: hue='orange', luminosity='bright' - :sample: hue=135, luminosity='dark', color_format='hsv' - :sample: hue=(300, 20), luminosity='random', color_format='hsl' - """ - return self._random_color.generate( - hue=hue, - luminosity=luminosity, - color_format=color_format, - ) - - def color_rgb( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - ) -> Tuple[int, int, int]: - """ - Generate a RGB color tuple of integers. - - :sample: - :sample: hue='red', luminosity='dark' - :sample: hue=(100, 200), luminosity='random' - """ - return self._random_color.generate_rgb(hue=hue, luminosity=luminosity) - - def color_rgb_float( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - ) -> Tuple[float, float, float]: - """ - Generate a RGB color tuple of floats. - - :sample: - :sample: hue='red', luminosity='dark' - :sample: hue=(100, 200), luminosity='random' - """ - return self._random_color.generate_rgb_float(hue=hue, luminosity=luminosity) - - def color_hsl( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - ) -> Tuple[int, int, int]: - """ - Generate a HSL color tuple. - - :sample: - :sample: hue='red', luminosity='dark' - :sample: hue=(100, 200), luminosity='random' - """ - return self._random_color.generate_hsl(hue=hue, luminosity=luminosity) - - def color_hsv( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - ) -> Tuple[int, int, int]: - """ - Generate a HSV color tuple. - - :sample: - :sample: hue='red', luminosity='dark' - :sample: hue=(100, 200), luminosity='random' - """ - return self._random_color.generate_hsv(hue=hue, luminosity=luminosity) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 8dccfda..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/__pycache__/color.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/__pycache__/color.cpython-312.pyc deleted file mode 100644 index 139eef0..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/__pycache__/color.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/ar_PS/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/ar_PS/__init__.py deleted file mode 100644 index 573bd87..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/ar_PS/__init__.py +++ /dev/null @@ -1,170 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - - -class Provider(ColorProvider): - """Implement color provider for ``ar_PS`` locale.""" - - all_colors = OrderedDict( - ( - ("أزرق أليس", "#F0F8FF"), - ("أبيض عتيق", "#FAEBD7"), - ("مائي", "#00FFFF"), - ("زبرجدي", "#7FFFD4"), - ("لازوردي", "#F0FFFF"), - ("صوفي", "#F5F5DC"), - ("حسائي", "#FFE4C4"), - ("أسود", "#000000"), - ("لوزي", "#FFEBCD"), - ("أزرق", "#0000FF"), - ("بنفسجي مزرق", "#8A2BE2"), - ("بني", "#A52A2A"), - ("خشبية", "#DEB887"), - ("أزرق كاديتي", "#5F9EA0"), - ("كرتوزي", "#7FFF00"), - ("شوكولاتيّ", "#D2691E"), - ("مرجاني", "#FF7F50"), - ("قنطريوني", "#6495ED"), - ("حرير الذرة", "#FFF8DC"), - ("قرمزي", "#DC143C"), - ("سيان", "#00FFFF"), - ("أزرق داكن", "#00008B"), - ("سيان داكن", "#008B8B"), - ("عصا الدهب الغامق", "#B8860B"), - ("رمادي داكن", "#A9A9A9"), - ("أخضر داكن", "#006400"), - ("خاكي داكن", "#BDB76B"), - ("ماجنتا داكن", "#8B008B"), - ("أخضر زيتوني داكن", "#556B2F"), - ("برتقالي داكن", "#FF8C00"), - ("أوركيدي داكن", "#9932CC"), - ("أحمر داكن", "#8B0000"), - ("سلموني داكن", "#E9967A"), - ("أخضر بحري داكن", "#8FBC8F"), - ("أزرق أردوازي داكن", "#483D8B"), - ("رمادي لازوردي داكن", "#2F4F4F"), - ("تركوازي داكن", "#00CED1"), - ("بنفسج داكن", "#9400D3"), - ("زهري غامق", "#FF1493"), - ("أزرق سماوي غامق", "#00BFFF"), - ("رمادي خافت", "#696969"), - ("أزرق فريق دودجر", "#1E90FF"), - ("الطوب شمت", "#B22222"), - ("أبيض وردي", "#FFFAF0"), - ("أخضر الغابت", "#228B22"), - ("فوشي", "#FF00FF"), - ("رمادي باهت", "#DCDCDC"), - ("أبيض شبحي", "#F8F8FF"), - ("ذهبي", "#FFD700"), - ("ذهبي", "#DAA520"), - ("رمادي", "#808080"), - ("أخضر", "#008000"), - ("أصفر مخضر", "#ADFF2F"), - ("عسلي", "#F0FFF0"), - ("وردي فاقع", "#FF69B4"), - ("قسطلي", "#CD5C5C"), - ("نيلي", "#4B0082"), - ("سكري", "#FFFFF0"), - ("خاكي", "#F0E68C"), - ("لاڤندر", "#E6E6FA"), - ("أحمر اللافندر", "#FFF0F5"), - ("أخضر عشبي", "#7CFC00"), - ("ليمون شيفوني", "#FFFACD"), - ("أزرق فاتح", "#ADD8E6"), - ("مرجاني فاتح", "#F08080"), - ("أزرق طفولي", "#E0FFFF"), - ("أصفر ذهبي فاتح ", "#FAFAD2"), - ("رمادي فاتح", "#D3D3D3"), - ("أخضر فاتح", "#90EE90"), - ("وردي فاتح", "#FFB6C1"), - ("سلموني فاتح", "#FFA07A"), - ("أخضر بحري فاتح", "#20B2AA"), - ("سماوي فاتح", "#87CEFA"), - ("أزرق أردوازي فاتح", "#778899"), - ("أزرق معدني فاتح", "#B0C4DE"), - ("أصفر فاتح", "#FFFFE0"), - ("ليمي", "#00FF00"), - ("أخضر ليموني", "#32CD32"), - ("كتاني", "#FAF0E6"), - ("فوشيا", "#FF00FF"), - ("كستنائي", "#800000"), - ("زبرجدي متوسط", "#66CDAA"), - ("أزرق متوسط", "#0000CD"), - ("أوركيدي متوسط", "#BA55D3"), - ("فوشي متوسط", "#9370DB"), - ("أخضر بحري متوسط", "#3CB371"), - ("أزرق أردوازي متوسط", "#7B68EE"), - ("أخضر ربيعي متوسط", "#00FA9A"), - ("ترموازي متوسط", "#48D1CC"), - ("أحمر بنفسجي", "#C71585"), - ("الأزرق متوسط", "#191970"), - ("نعناعي كريمي", "#F5FFFA"), - ("الوردي الضبابي", "#FFE4E1"), - ("موكاسيني", "#FFE4B5"), - ("أبيض نافاجو", "#FFDEAD"), - ("كحلي", "#000080"), - ("رباطي قديم", "#FDF5E6"), - ("زيتوني", "#808000"), - ("زيتوني رمادي", "#6B8E23"), - ("برتقالي", "#FFA500"), - ("أحمر برتقالي", "#FF4500"), - ("أوركيدي", "#DA70D6"), - ("ذهبي باهت", "#EEE8AA"), - ("أخضر باهت", "#98FB98"), - ("تركوازي باهت", "#AFEEEE"), - ("أحمر بنفسجي باهت", "#DB7093"), - ("بابايا", "#FFEFD5"), - ("حنطي", "#FFDAB9"), - ("بيرو", "#CD853F"), - ("زهري", "#FFC0CB"), - ("برقوقي", "#DDA0DD"), - ("أزرق مسحوقي", "#B0E0E6"), - ("أرجواني", "#800080"), - ("أحمر", "#FF0000"), - ("بني وردي", "#BC8F8F"), - ("أزرق ملكي", "#4169E1"), - ("بني السرج", "#8B4513"), - ("سالموني", "#FA8072"), - ("بني رملي", "#F4A460"), - ("أخضر بحري", "#2E8B57"), - ("صدفي", "#FFF5EE"), - ("سيينا", "#A0522D"), - ("فضي", "#C0C0C0"), - ("أزرق سماي", "#87CEEB"), - ("أزرق أردوازي", "#6A5ACD"), - ("رمادي معدني", "#708090"), - ("ثلجي", "#FFFAFA"), - ("أخضر ربيعي", "#00FF7F"), - ("أزرق معدني", "#4682B4"), - ("نطي", "#D2B48C"), - ("حذفي", "#008080"), - ("أرجواني", "#D8BFD8"), - ("طماطمي", "#FF6347"), - ("تركواز", "#40E0D0"), - ("بنفسجي", "#EE82EE"), - ("قمحي", "#F5DEB3"), - ("أبيض", "#FFFFFF"), - ("دخاني قمحي", "#F5F5F5"), - ("أصفر", "#FFFF00"), - ("أصفر مخضر", "#9ACD32"), - ) - ) - - safe_colors = ( - "أبيض", - "أخضر", - "أرجواني", - "أزرق", - "أسود", - "أصفر", - "حذفي", - "رمادي", - "زيتوني", - "فضي", - "فوشي", - "كحلي", - "كستنائي", - "ليمي", - "مائي", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/ar_PS/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/ar_PS/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 8baeeaa..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/ar_PS/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/az_AZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/az_AZ/__init__.py deleted file mode 100644 index 85f9403..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/az_AZ/__init__.py +++ /dev/null @@ -1,70 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - - -class Provider(ColorProvider): - """Implement color provider for ``az_AZ`` locale.""" - - all_colors = OrderedDict( - ( - ("Akuamarin", "#7FFFD4"), - ("Azure", "#F0FFFF"), - ("Bej", "#F5F5DC"), - ("Qara", "#000000"), - ("Mavi", "#0000FF"), - ("Mavi-bənövşəyi", "#8A2BE2"), - ("Qəhvəyi", "#A52A2A"), - ("Şokolad", "#D2691E"), - ("Mərcan", "#FF7F50"), - ("Tünd mavi", "#00008B"), - ("Tünd boz", "#A9A9A9"), - ("Tünd yaşıl", "#006400"), - ("Tünd Xaki", "#BDB76B"), - ("Tünd Portağal", "#FF8C00"), - ("Tünd Qırmızı", "#8B0000"), - ("Tünd Bənövşəyi", "#9400D3"), - ("Tünd Çəhrayı", "#FF1493"), - ("Sönük Boz", "#696969"), - ("Fuksiya", "#FF00FF"), - ("Qızıl", "#FFD700"), - ("Boz", "#808080"), - ("Yaşıl", "#008000"), - ("Sarı-yaşıl", "#ADFF2F"), - ("Xaki", "#F0E68C"), - ("Lavanda çəhrayı", "#FFF0F5"), - ("Açıq Mavi", "#ADD8E6"), - ("Açıq Boz", "#D3D3D3"), - ("Açıq Yaşıl", "#90EE90"), - ("Açıq Çəhrayı", "#FFB6C1"), - ("Açıq Sarı", "#FFFFE0"), - ("Şabalıd", "#800000"), - ("Portağal", "#FFA500"), - ("Narıncı Qırmızı", "#FF4500"), - ("Solğun Yaşıl", "#98FB98"), - ("Çəhrayı", "#FFC0CB"), - ("Qırmızı", "#FF0000"), - ("Aqua", "#2E8B57"), - ("Gümüş", "#C0C0C0"), - ("Firuzə", "#40E0D0"), - ("Bənövşəyi", "#EE82EE"), - ("Ağ", "#FFFFFF"), - ("Sarı", "#FFFF00"), - ) - ) - - safe_colors = ( - "qara", - "tünd qırmızı", - "yaşıl", - "zeytun", - "bənövşəyi", - "teal", - "lime", - "mavi", - "gümüşü", - "boz", - "sarı", - "fuksiya", - "ağ", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/az_AZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/az_AZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f7ea617..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/az_AZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/bg_BG/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/bg_BG/__init__.py deleted file mode 100644 index ec69986..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/bg_BG/__init__.py +++ /dev/null @@ -1,86 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """Implement color provider for ``bg_BG`` locale.""" - - all_colors = OrderedDict( - ( - ("Антично-бяло", "#FAEBD7"), - ("Аквамарин", "#7FFFD4"), - ("Лазурно", "#F0FFFF"), - ("Бежово", "#F5F5DC"), - ("Черно", "#000000"), - ("Синьо", "#0000FF"), - ("Синьо-виолетовo", "#8A2BE2"), - ("Кафявo", "#A52A2A"), - ("Шоколадовo", "#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"), - ) - ) - - safe_colors = ( - "черно", - "бордо", - "зелено", - "маслинено зелено", - "пурпурно", - "циан", - "лайм", - "синьо", - "сребърно", - "сиво", - "жълто", - "фуксия", - "бяло", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/bg_BG/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/bg_BG/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 791b9d9..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/bg_BG/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/bn_BD/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/bn_BD/__init__.py deleted file mode 100644 index dbbcc4a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/bn_BD/__init__.py +++ /dev/null @@ -1,172 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """Implement color provider for ``bn_BD`` locale.""" - - all_colors = OrderedDict( - ( - ("এলিস নীল", "#F0F8FF"), - ("এন্টিক সাদা", "#FAEBD7"), - ("জল রং", "#00FFFF"), - ("হালকা নীল সবুজ", "#7FFFD4"), - ("উজ্জ্বল নীল", "#F0FFFF"), - ("ফ্যাকাশে বেলে হলুদ বাদামী", "#F5F5DC"), - ("বিস্কুট রং", "#FFE4C4"), - ("কালো", "#000000"), - ("বালু রং", "#FFEBCD"), - ("নীল", "#0000FF"), - ("নীলাভ রক্তবর্ণ", "#8A2BE2"), - ("বাদামী", "#A52A2A"), - ("কাঠ রং", "#DEB887"), - ("সামরিক নীল", "#5F9EA0"), - ("উজ্জ্বল হলুদাভ সবুজ", "#7FFF00"), - ("চকলেট রং", "#D2691E"), - ("প্রবাল রং", "#FF7F50"), - ("ঝুমকা ফুলের নীল", "#6495ED"), - ("সিল্ক রং", "#FFF8DC"), - ("অগ্নি রং", "#DC143C"), - ("সায়ান", "#00FFFF"), - ("কালচে নীল", "#00008B"), - ("কালচে সায়ান", "#008B8B"), - ("কালচে ধাতব সোনালি", "#B8860B"), - ("কালচে ধূসর", "#A9A9A9"), - ("কালচে সবুজ", "#006400"), - ("কালচে খাকী", "#BDB76B"), - ("কালচে হালকা বেগুনী লাল", "#8B008B"), - ("কালচে জলপাই সবুজ", "#556B2F"), - ("কালচে কমলা", "#FF8C00"), - ("কালচে অর্কিড রং", "#9932CC"), - ("কালচে লাল", "#8B0000"), - ("কালচে স্যামন রং", "#E9967A"), - ("কালচে সামুদ্রিক সবুজ", "#8FBC8F"), - ("কালচে পাথুরে নীল", "#483D8B"), - ("কালচে পাথুরে ধূসর", "#2F4F4F"), - ("কালচে ফিরোজা", "#00CED1"), - ("কালচে বেগুনী", "#9400D3"), - ("গাঢ় গোলাপি", "#FF1493"), - ("গাঢ় আকাশী নীল", "#00BFFF"), - ("আবছা ধূসর", "#696969"), - ("ডজার নীল", "#1E90FF"), - ("পোড়া ইট রং", "#B22222"), - ("ফুলেল সাদা", "#FFFAF0"), - ("বন্য সবুজ", "#228B22"), - ("উজ্জ্বল গোলাপি বেগুনী", "#FF00FF"), - ("মেটে রং", "#DCDCDC"), - ("টাইটান সাদা", "#F8F8FF"), - ("সোনালি", "#FFD700"), - ("ধাতব সোনালি", "#DAA520"), - ("ধূসর", "#808080"), - ("সবুজ", "#008000"), - ("সবুজাভ হলুদ", "#ADFF2F"), - ("মধু রং", "#F0FFF0"), - ("উষ্ণ গোলাপি", "#FF69B4"), - ("ভারতীয় লাল", "#CD5C5C"), - ("বেগুনী নীল", "#4B0082"), - ("আইভরি", "#FFFFF0"), - ("খাকী", "#F0E68C"), - ("ল্যাভেণ্ডার রং", "#E6E6FA"), - ("ল্যাভেন্ডার লাল", "#FFF0F5"), - ("তৃণ সবুজ", "#7CFC00"), - ("হালকা সিল্ক রং", "#FFFACD"), - ("হালকা নীল", "#ADD8E6"), - ("হালকা প্রবাল রং", "#F08080"), - ("হালকা সায়ান", "#E0FFFF"), - ("হালকা ধাতব সোনালি হলুদ", "#FAFAD2"), - ("হালকা ধূসর", "#D3D3D3"), - ("হালকা সবুজ", "#90EE90"), - ("হালকা গোলাপি", "#FFB6C1"), - ("হালকা স্যামন রং", "#FFA07A"), - ("হালকা সামুদ্রিক সবুজ", "#20B2AA"), - ("হালকা আকাশী নীল", "#87CEFA"), - ("হালকা পাথুরে ধূসর", "#778899"), - ("হালকা ধাতব নীল", "#B0C4DE"), - ("হালকা হলুদ", "#FFFFE0"), - ("লাইম রং", "#00FF00"), - ("লাইম সবুজ", "#32CD32"), - ("পাট রং", "#FAF0E6"), - ("হালকা বেগুনী লাল", "#FF00FF"), - ("মেরুন", "#800000"), - ("মাঝারী নীল সবুজ", "#66CDAA"), - ("মাঝারী নীল", "#0000CD"), - ("মাঝারী অর্কিড রং", "#BA55D3"), - ("মাঝারী বেগুনী", "#9370DB"), - ("মাঝারী সামুদ্রিক সবুজ", "#3CB371"), - ("মাঝারী পাথুরে নীল", "#7B68EE"), - ("মাঝারী বাসন্তী সবুজ", "#00FA9A"), - ("মাঝারী ফিরোজা", "#48D1CC"), - ("মাঝারী বেগুনী লাল", "#C71585"), - ("মিডনাইট নীল", "#191970"), - ("হালকা পীত পুদিনা রং", "#F5FFFA"), - ("ধোঁয়াটে গোলাপ রং", "#FFE4E1"), - ("মোকাসিন", "#FFE4B5"), - ("নাভাজো সাদা", "#FFDEAD"), - ("নেভি ব্লু", "#000080"), - ("ওল্ড লেইস রং", "#FDF5E6"), - ("জলপাই রং", "#808000"), - ("ম্যাটমাটে জলপাই রং", "#6B8E23"), - ("কমলা", "#FFA500"), - ("কমলা লাল", "#FF4500"), - ("অর্কিড রং", "#DA70D6"), - ("ফ্যাকাশে ধাতব সোনালি", "#EEE8AA"), - ("ফ্যাকাশে সবুজ", "#98FB98"), - ("ফ্যাকাশে ফিরোজা", "#AFEEEE"), - ("ফ্যাকাশে বেগুনী লাল", "#DB7093"), - ("পাপায়াহুপ", "#FFEFD5"), - ("পীচ রং", "#FFDAB9"), - ("পেরু রং", "#CD853F"), - ("গোলাপি", "#FFC0CB"), - ("জাম রং", "#DDA0DD"), - ("গুঁড়া নীল", "#B0E0E6"), - ("বেগুনী", "#800080"), - ("লাল", "#FF0000"), - ("গোলাপী লাল", "#BC8F8F"), - ("রয়্যাল ব্লু", "#4169E1"), - ("স্যাডল ব্রাউন", "#8B4513"), - ("স্যামন রং", "#FA8072"), - ("বেলে বাদামী", "#F4A460"), - ("সামুদ্রিক সবুজ", "#2E8B57"), - ("ঝিনুক রং", "#FFF5EE"), - ("মেটে রং", "#A0522D"), - ("রূপালী", "#C0C0C0"), - ("আকাশী নীল", "#87CEEB"), - ("পাথুরে নীল", "#6A5ACD"), - ("পাথুরে ধূসর", "#708090"), - ("তুষার শুভ্র রং", "#FFFAFA"), - ("বাসন্তী সবুজ", "#00FF7F"), - ("ধাতব নীল", "#4682B4"), - ("তামাটে রং", "#D2B48C"), - ("পেষ্ট রং", "#008080"), - ("থিসল রং", "#D8BFD8"), - ("টমেটো রং", "#FF6347"), - ("ফিরোজা", "#40E0D0"), - ("রক্তবেগুনী", "#EE82EE"), - ("গম রং", "#F5DEB3"), - ("সাদা", "#FFFFFF"), - ("ধোঁয়াটে সাদা", "#F5F5F5"), - ("হলুদ", "#FFFF00"), - ("হলুদাভ সবুজ", "#9ACD32"), - ) - ) - - safe_colors = ( - "কালো", - "মেরুন", - "সবুজ", - "নেভি", - "জলপাই রং", - "বেগুনী", - "পেষ্ট রং", - "লাইম রং", - "নীল", - "রূপালী", - "ধূসর", - "হলুদ", - "উজ্জ্বল গোলাপি বেগুনী", - "জল রং", - "সাদা", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/bn_BD/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/bn_BD/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1162a37..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/bn_BD/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/color.py b/.venv/lib/python3.12/site-packages/faker/providers/color/color.py deleted file mode 100644 index 756942b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/color.py +++ /dev/null @@ -1,386 +0,0 @@ -"""Internal module for human-friendly color generation. - -.. important:: - End users of this library should not use anything in this module. - -Code adapted from: -- https://github.com/davidmerfield/randomColor (CC0) -- https://github.com/kevinwuhoo/randomcolor-py (MIT License) - -Additional reference from: -- https://en.wikipedia.org/wiki/HSL_and_HSV -""" - -import colorsys -import math -import random -import sys - -from typing import TYPE_CHECKING, Dict, Literal, Optional, Sequence, Tuple - -if TYPE_CHECKING: - from ...factory import Generator - -from ...typing import HueType, SeedType - -ColorFormat = Literal["hex", "hsl", "hsv", "rgb"] - - -COLOR_MAP: Dict[str, Dict[str, Sequence[Tuple[int, int]]]] = { - "monochrome": { - "hue_range": [(0, 0)], - "lower_bounds": [ - (0, 0), - (100, 0), - ], - }, - "red": { - "hue_range": [(-26, 18)], - "lower_bounds": [ - (20, 100), - (30, 92), - (40, 89), - (50, 85), - (60, 78), - (70, 70), - (80, 60), - (90, 55), - (100, 50), - ], - }, - "orange": { - "hue_range": [(19, 46)], - "lower_bounds": [ - (20, 100), - (30, 93), - (40, 88), - (50, 86), - (60, 85), - (70, 70), - (100, 70), - ], - }, - "yellow": { - "hue_range": [(47, 62)], - "lower_bounds": [ - (25, 100), - (40, 94), - (50, 89), - (60, 86), - (70, 84), - (80, 82), - (90, 80), - (100, 75), - ], - }, - "green": { - "hue_range": [(63, 178)], - "lower_bounds": [ - (30, 100), - (40, 90), - (50, 85), - (60, 81), - (70, 74), - (80, 64), - (90, 50), - (100, 40), - ], - }, - "blue": { - "hue_range": [(179, 257)], - "lower_bounds": [ - (20, 100), - (30, 86), - (40, 80), - (50, 74), - (60, 60), - (70, 52), - (80, 44), - (90, 39), - (100, 35), - ], - }, - "purple": { - "hue_range": [(258, 282)], - "lower_bounds": [ - (20, 100), - (30, 87), - (40, 79), - (50, 70), - (60, 65), - (70, 59), - (80, 52), - (90, 45), - (100, 42), - ], - }, - "pink": { - "hue_range": [(283, 334)], - "lower_bounds": [ - (20, 100), - (30, 90), - (40, 86), - (60, 84), - (80, 80), - (90, 75), - (100, 73), - ], - }, -} - - -class RandomColor: - """Implement random color generation in a human-friendly way. - - This helper class encapsulates the internal implementation and logic of the - :meth:`color() ` method. - """ - - def __init__(self, generator: Optional["Generator"] = None, seed: Optional[SeedType] = None) -> None: - self.colormap = COLOR_MAP - - # Option to specify a seed was not removed so this class - # can still be tested independently w/o generators - if generator: - self.random = generator.random - else: - self.seed = seed if seed else random.randint(0, sys.maxsize) - self.random = random.Random(int(self.seed)) - - def generate( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - color_format: ColorFormat = "hex", - ) -> str: - """Generate and format a color. - - Whenever :meth:`color() ` is - called, the arguments used are simply passed into this method, and this - method handles the rest. - """ - # Generate HSV color tuple from picked hue and luminosity - hsv = self.generate_hsv(hue=hue, luminosity=luminosity) - - # Return the HSB/V color in the desired string format - return self.set_format(hsv, color_format) - - def generate_hsv( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - ) -> Tuple[int, int, int]: - """Generate a HSV color tuple.""" - # First we pick a hue (H) - h = self.pick_hue(hue) - - # Then use H to determine saturation (S) - s = self.pick_saturation(h, hue, luminosity) - - # Then use S and H to determine brightness/value (B/V). - v = self.pick_brightness(h, s, luminosity) - - return h, s, v - - def generate_rgb( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - ) -> Tuple[int, int, int]: - """Generate a RGB color tuple of integers.""" - return self.hsv_to_rgb(self.generate_hsv(hue=hue, luminosity=luminosity)) - - def generate_rgb_float( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - ) -> Tuple[float, float, float]: - """Generate a RGB color tuple of floats.""" - return self.hsv_to_rgb_float(self.generate_hsv(hue=hue, luminosity=luminosity)) - - def generate_hsl( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - ) -> Tuple[int, int, int]: - """Generate a HSL color tuple.""" - return self.hsv_to_hsl(self.generate_hsv(hue=hue, luminosity=luminosity)) - - def pick_hue(self, hue: Optional[HueType]) -> int: - """Return a numerical hue value.""" - hue_ = self.random_within(self.get_hue_range(hue)) - - # Instead of storing red as two separate ranges, - # we group them, using negative numbers - if hue_ < 0: - hue_ += 360 - - return hue_ - - def pick_saturation(self, hue: int, hue_name: Optional[HueType], luminosity: Optional[str]) -> int: - """Return a numerical saturation value.""" - if luminosity is None: - luminosity = "" - if luminosity == "random": - return self.random_within((0, 100)) - - if isinstance(hue_name, str) and hue_name == "monochrome": - return 0 - - s_min, s_max = self.get_saturation_range(hue) - - if luminosity == "bright": - s_min = 55 - elif luminosity == "dark": - s_min = s_max - 10 - elif luminosity == "light": - s_max = 55 - - return self.random_within((s_min, s_max)) - - def pick_brightness(self, h: int, s: int, luminosity: Optional[str]) -> int: - """Return a numerical brightness value.""" - if luminosity is None: - luminosity = "" - - b_min = self.get_minimum_brightness(h, s) - b_max = 100 - - if luminosity == "dark": - b_max = b_min + 20 - elif luminosity == "light": - b_min = (b_max + b_min) // 2 - elif luminosity == "random": - b_min = 0 - b_max = 100 - - return self.random_within((b_min, b_max)) - - def set_format(self, hsv: Tuple[int, int, int], color_format: ColorFormat) -> str: - """Handle conversion of HSV values into desired format.""" - if color_format == "hsv": - color = f"hsv({hsv[0]}, {hsv[1]}, {hsv[2]})" - - elif color_format == "hsl": - hsl = self.hsv_to_hsl(hsv) - color = f"hsl({hsl[0]}, {hsl[1]}, {hsl[2]})" - - elif color_format == "rgb": - rgb = self.hsv_to_rgb(hsv) - color = f"rgb({rgb[0]}, {rgb[1]}, {rgb[2]})" - - else: - rgb = self.hsv_to_rgb(hsv) - color = f"#{rgb[0]:02x}{rgb[1]:02x}{rgb[2]:02x}" - - return color - - def get_minimum_brightness(self, h: int, s: int) -> int: - """Return the minimum allowed brightness for ``h`` and ``s``.""" - lower_bounds: Sequence[Tuple[int, int]] = self.get_color_info(h)["lower_bounds"] - - for i in range(len(lower_bounds) - 1): - s1, v1 = lower_bounds[i] - s2, v2 = lower_bounds[i + 1] - - if s1 <= s <= s2: - m: float = (v2 - v1) / (s2 - s1) - b: float = v1 - m * s1 - - return int(m * s + b) - - return 0 - - def _validate_color_input(self, color_input: HueType) -> Tuple[int, int]: - if ( - not isinstance(color_input, (list, tuple)) - or len(color_input) != 2 - or any(not isinstance(c, (float, int)) for c in color_input) - ): - raise TypeError("Hue must be a valid string, numeric type, or a tuple/list of 2 numeric types.") - - return color_input[0], color_input[1] - - def get_hue_range(self, color_input: Optional[HueType]) -> Tuple[int, int]: - """Return the hue range for a given ``color_input``.""" - if color_input is None: - return 0, 360 - - if isinstance(color_input, (int, float)) and 0 <= color_input <= 360: - color_input = int(color_input) - return color_input, color_input - - if isinstance(color_input, str) and color_input in self.colormap: - return self.colormap[color_input]["hue_range"][0] - - color_input = self._validate_color_input(color_input) - - v1 = int(color_input[0]) - v2 = int(color_input[1]) - - if v2 < v1: - v1, v2 = v2, v1 - v1 = max(v1, 0) - v2 = min(v2, 360) - return v1, v2 - - def get_saturation_range(self, hue: int) -> Tuple[int, int]: - """Return the saturation range for a given numerical ``hue`` value.""" - saturation_bounds = [s for s, v in self.get_color_info(hue)["lower_bounds"]] - return min(saturation_bounds), max(saturation_bounds) - - def get_color_info(self, hue: int) -> Dict[str, Sequence[Tuple[int, int]]]: - """Return the color info for a given numerical ``hue`` value.""" - # Maps red colors to make picking hue easier - if 334 <= hue <= 360: - hue -= 360 - - for color_name, color in self.colormap.items(): - hue_range: Tuple[int, int] = color["hue_range"][0] - if hue_range[0] <= hue <= hue_range[1]: - return self.colormap[color_name] - else: - raise ValueError("Value of hue `%s` is invalid." % hue) - - def random_within(self, r: Sequence[int]) -> int: - """Return a random integer within the range ``r``.""" - return self.random.randint(int(r[0]), int(r[1])) - - @classmethod - def hsv_to_rgb_float(cls, hsv: Tuple[int, int, int]) -> Tuple[float, float, float]: - """Convert HSV to RGB. - - This method expects ``hsv`` to be a 3-tuple of H, S, and V values, and - it will return a 3-tuple of the equivalent R, G, and B float values. - """ - h, s, v = hsv - h = max(h, 1) - h = min(h, 359) - - return colorsys.hsv_to_rgb(h / 360, s / 100, v / 100) - - @classmethod - def hsv_to_rgb(cls, hsv: Tuple[int, int, int]) -> Tuple[int, int, int]: - """Convert HSV to RGB. - - This method expects ``hsv`` to be a 3-tuple of H, S, and V values, and - it will return a 3-tuple of the equivalent R, G, and B integer values. - """ - r, g, b = cls.hsv_to_rgb_float(hsv) - return int(r * 255), int(g * 255), int(b * 255) - - @classmethod - def hsv_to_hsl(cls, hsv: Tuple[int, int, int]) -> Tuple[int, int, int]: - """Convert HSV to HSL. - - This method expects ``hsv`` to be a 3-tuple of H, S, and V values, and - it will return a 3-tuple of the equivalent H, S, and L values. - """ - h, s, v = hsv - - s_: float = s / 100.0 - v_: float = v / 100.0 - l = 0.5 * v_ * (2 - s_) # noqa: E741 - - s_ = 0.0 if l in [0, 1] else v_ * s_ / (1 - math.fabs(2 * l - 1)) - return int(h), int(s_ * 100), int(l * 100) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/cs_CZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/cs_CZ/__init__.py deleted file mode 100644 index 507f145..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/cs_CZ/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -from .. import Provider as ColorProvider - - -class Provider(ColorProvider): - """Implement color provider for ``cs_CZ`` locale.""" - - safe_colors = ( - "černá", - "kaštanová", - "zelená", - "námořnická", - "olivová", - "fialová", - "zelenomodrá", - "limetková", - "modrá", - "stříbrná", - "šedá", - "žlutá", - "fuchsiová", - "aquamarinová", - "bílá", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/cs_CZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/cs_CZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b073a2d..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/cs_CZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/da_DK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/da_DK/__init__.py deleted file mode 100644 index 86a2c5f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/da_DK/__init__.py +++ /dev/null @@ -1,334 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """ - Implement color provider for ``da_DK`` locale. Source: https://tools.hopetrip.com.hk/web/colorcode/index-da-1.html - """ - - all_colors = OrderedDict( - ( - ("Baker-Miller lyserød", "#FF91AF"), - ("Lysegul (Crayola)", "#FFAA1D"), - ("Rav", "#FFBF00"), - ("Rav (SAE / ECE)", "#FF7E00"), - ("Atomisk mandarin", "#FF9966"), - ("Bisque", "#FFE4C4"), - ("Candy apple rød", "#FF0800"), - ("Babypudder", "#FEFEFA"), - ("Coquelicot", "#FF3800"), - ("Blancheret mandel", "#FFEBCD"), - ("Strålende rose", "#FF55A3"), - ("Bittersød", "#FE6F5E"), - ("Cadmium gul", "#FFF600"), - ("Kanariefarvet gul", "#FFEF00"), - ("Nellike lyserød", "#FFA6C9"), - ("Kanariefugl", "#FFFF99"), - ("Kirsebærblomst lyserød", "#FFB7C5"), - ("Koral", "#FF7F50"), - ("Kinesisk gul", "#FFB200"), - ("Krom gul", "#FFA700"), - ("Cybergult", "#FFD300"), - ("Dyb lyserød", "#FF1493"), - ("Aureolin", "#FDEE00"), - ("Bananmani", "#FAE7B5"), - ("Candyfloss", "#FFBCD9"), - ("Fløde", "#FFFDD0"), - ("Kosmisk latte", "#FFF8E7"), - ("Cornsilk", "#FFF8DC"), - ("Mørk orange", "#FF8C00"), - ("Dyb safran", "#FF9933"), - ("Blomsterhvid", "#FFFAF0"), - ("Brændende rose", "#FF5470"), - ("Fransk lyserød", "#FD6C9E"), - ("Fuchsia", "#FF00FF"), - ("Fransk fuchsia", "#FD3F92"), - ("Antik hvid", "#FAEBD7"), - ("Blond", "#FAF0BE"), - ("Brink pink", "#FB607F"), - ("Abrikos", "#FBCEB1"), - ("Majs", "#FBEC5D"), - ("Koralrosa", "#F88379"), - ("Kultiveret", "#F5F5F5"), - ("Cameo pink", "#EFBBCC"), - ("Champagne", "#F7E7CE"), - ("Flickr Pink", "#FB0081"), - ("Dyb champagne", "#FAD6A5"), - ("Congo pink", "#F88379"), - ("Champagne lyserød", "#F1DDCF"), - ("Baby lyserød", "#F4C2C2"), - ("Beige", "#F5F5DC"), - ("Fransk rose", "#F64A8A"), - ("Cyclamen", "#F56FA1"), - ("Azure (X11 / webfarve)", "#F0FFFF"), - ("Alice blå", "#F0F8FF"), - ("Mode fuchsia", "#F400A1"), - ("Mandel", "#EFDECD"), - ("Æggeskal", "#F0EAD6"), - ("Hollandsk hvid", "#EFDFBB"), - ("Amaranth pink", "#F19CBB"), - ("Buff", "#F0DC82"), - ("Ørkensand", "#EDC9AF"), - ("Cadmium orange", "#ED872D"), - ("Arylid gul", "#E9D66B"), - ("Brandopal", "#E95C4B"), - ("Alabaster", "#EDEAE0"), - ("Gulerod orange", "#ED9121"), - ("Hør", "#EEDC82"), - ("Brændt sienna", "#E97451"), - ("Cadmium rød", "#E30022"), - ("Mørk laks", "#E9967A"), - ("Flamme", "#E25822"), - ("Knogle", "#E3DAC9"), - ("Amaranth", "#E52B50"), - ("Forfrysninger", "#E936A7"), - ("Fulvous", "#E48400"), - ("Charm lyserød", "#E68FAC"), - ("Candy pink", "#E4717A"), - ("Fawn", "#E5AA70"), - ("Citrin", "#E4D00A"), - ("Cinnabar", "#E34234"), - ("CG rød", "#E03C31"), - ("Crimson", "#DC143C"), - ("Jorden gul", "#E1A95F"), - ("Kina lyserød", "#DE6FA1"), - ("Rødme", "#DE5D83"), - ("Chartreuse (traditionel)", "#DFFF00"), - ("Burlywood", "#DEB887"), - ("Cerise", "#DE3163"), - ("Barbie Pink", "#DA1884"), - ("Fandango pink", "#DE5285"), - ("Dyb cerise", "#DA3287"), - ("Chokolade (web)", "#D2691E"), - ("Lys lilla", "#D891EF"), - ("Dogwood rose", "#D71868"), - ("Carmine (M&P)", "#D70040"), - ("Kobber (Crayola)", "#DA8A67"), - ("Amaranth rød", "#D3212D"), - ("Fransk mauve", "#D473D4"), - ("Kakaobrun", "#D2691E"), - ("Arktisk kalk", "#D0FF14"), - ("Brandbil rød", "#CE2029"), - ("Cedertræskiste", "#C95A49"), - ("Kamel", "#C19A6B"), - ("Brændt orange", "#CC5500"), - ("Fransk hindbær", "#C72C48"), - ("Aero blå", "#C9FFE5"), - ("Bitter citron", "#CAE00D"), - ("Kanel Satin", "#CD607E"), - ("Lys rødbrun", "#C32148"), - ("Ørken", "#C19A6B"), - ("Fuchsia lilla", "#CC397B"), - ("Engelsk vermillion", "#CC474B"), - ("Antik messing", "#CD9575"), - ("Bronze", "#CD7F32"), - ("Elektrisk kalk", "#CCFF00"), - ("Fuchsia steg", "#C74375"), - ("Murstensrød", "#CB4154"), - ("Legeret orange", "#C46210"), - ("Kobberrød", "#CB6D51"), - ("Kardinal", "#C41E3A"), - ("Bitter kalk", "#BFFF00"), - ("Engelsk lavendel", "#B48395"), - ("Celeste", "#B2FFFF"), - ("Mørk kaki", "#BDB76B"), - ("Brak", "#C19A6B"), - ("Fuchsia (Crayola)", "#C154C1"), - ("Ecru", "#C2B280"), - ("Bittersød glimmer", "#BF4F51"), - ("Lyseblå", "#BCD4E6"), - ("Sorte skygger", "#BFAFB2"), - ("Elektrisk lilla", "#BF00FF"), - ("Byzantinsk", "#BD33A4"), - ("Columbia Blue", "#B9D9EB"), - ("Mørk guldrør", "#B8860B"), - ("Kobber", "#B87333"), - ("Dyb kastanje", "#B94E48"), - ("Carnelian", "#B31B1B"), - ("Afrikansk violet", "#B284BE"), - ("Fandango", "#B53389"), - ("Askegrå", "#B2BEB5"), - ("Kobber øre", "#AD6F69"), - ("Auburn", "#A52A2A"), - ("Celadon", "#ACE1AF"), - ("Syregrøn", "#B0BF1A"), - ("Amaranth lilla", "#AB274F"), - ("brunt sukker", "#AF6E4D"), - ("Blå klokke", "#A2A2D0"), - ("Firebrick", "#B22222"), - ("Kinesisk rød", "#AA381E"), - ("Engelsk rød", "#AB4B52"), - ("Café au lait", "#A67B5B"), - ("Kadetblå (Crayola)", "#A9B2C3"), - ("Snestorm blå", "#ACE5EE"), - ("Kina steg", "#A8516E"), - ("Fransk beige", "#A67B5B"), - ("Blast-off bronze", "#A57164"), - ("Flirt", "#A2006D"), - ("Android grøn", "#A4C639"), - ("Cambridge blå", "#A3C1AD"), - ("Babyblå øjne", "#A1CAF1"), - ("Amaranth (M&P)", "#9F2B68"), - ("Cinereous", "#98817B"), - ("Kedelig", "#967117"), - ("Citron", "#9FA91F"), - ("Bæver", "#9F8170"), - ("Crimson (UA)", "#9E1B32"), - ("Kadetgrå", "#91A3B0"), - ("Brunbrun", "#A17A74"), - ("Stor dukkert o’ruby", "#9C2542"), - ("Fransk kalk", "#9EFD38"), - ("Ametyst", "#9966CC"), - ("Kobber rose", "#996666"), - ("Eton blå", "#96C8A2"), - ("Carmine", "#960018"), - ("Bistre brun", "#967117"), - ("Mørk orkidé", "#9932CC"), - ("Mørk violet", "#9400D3"), - ("Artiskok", "#8F9779"), - ("kastanje", "#954535"), - ("Antik fuchsia", "#915C83"), - ("Mørk havgrøn", "#8FBC8F"), - ("Baby Blå", "#89CFF0"), - ("Cool grå", "#8C92AC"), - ("Mørk magenta", "#8B008B"), - ("Cordovan", "#893F45"), - ("Mørk himmelblå", "#8CBED6"), - ("Æblegrøn", "#8DB600"), - ("Brun", "#88540B"), - ("Asparges", "#87A96B"), - ("Brandy", "#87413F"), - ("Elektrisk violet", "#8F00FF"), - ("Blåviolet", "#8A2BE2"), - ("Brændt umber", "#8A3324"), - ("Mørkerød", "#8B0000"), - ("Fransk violet", "#8806CE"), - ("Fransk lilla", "#86608E"), - ("Fuzzy Wuzzy", "#87421F"), - ("Antik rubin", "#841B2D"), - ("Slagskib grå", "#848482"), - ("Kinesisk violet", "#856088"), - ("Aero", "#7CB9E8"), - ("Coyote brun", "#81613C"), - ("Byzantium", "#702963"), - ("Chokolade (traditionel)", "#7B3F00"), - ("Akvamarin", "#7FFFD4"), - ("Fransk bistre", "#856D4D"), - ("Bourgogne", "#800020"), - ("Dyb taupe", "#7E5E60"), - ("Falu rød", "#801818"), - ("Laderød", "#7C0A02"), - ("Claret", "#7F1734"), - ("Fransk himmelblå", "#77B5FE"), - ("Elektrisk blå", "#7DF9FF"), - ("Bole", "#79443B"), - ("Kaffe", "#6F4E37"), - ("Luftoverlegenhed blå", "#72A0C1"), - ("Blåviolet (Crayola)", "#7366BD"), - ("Knoppegrøn", "#7BB661"), - ("Catawba", "#703642"), - ("Kornblomst blå", "#6495ED"), - ("Elektrisk indigo", "#6F00FF"), - ("Eminence", "#6C3082"), - ("Blågrå", "#6699CC"), - ("Mark trist", "#6C541E"), - ("Blodrød", "#660000"), - ("Cerulean frost", "#6D9BC3"), - ("Dim grå", "#696969"), - ("Lyse-grøn", "#66FF00"), - ("Kadetblå", "#5F9EA0"), - ("Mørkeblå-grå", "#666699"), - ("Cyber ​​drue", "#58427C"), - ("Caput mortuum", "#592720"), - ("Aubergine", "#614051"), - ("Mørkt byzantium", "#5D3954"), - ("Antik bronze", "#665D1E"), - ("Skovgrøn (Crayola)", "#5FA777"), - ("Mørkebrun", "#654321"), - ("Avocado", "#568203"), - ("Blå bukser", "#5DADEC"), - ("Mørk elektrisk blå", "#536878"), - ("Mørk lever (heste)", "#543D37"), - ("Café noir", "#4B3621"), - ("Smaragd", "#50C878"), - ("Carolina blå", "#56A0D3"), - ("Kadet", "#536872"), - ("Mørk lever", "#534B4F"), - ("Engelsk violet", "#563C5C"), - ("Mørk olivengrøn", "#556B2F"), - ("Sort koral", "#54626F"), - ("Blå derfra", "#5072A7"), - ("Ibenholt", "#555D50"), - ("Davy er grå", "#555555"), - ("Militærgrøn", "#4B5320"), - ("Feldgrau", "#4D5D53"), - ("Fern grøn", "#4F7942"), - ("Mørk mosgrøn", "#4A5D23"), - ("Mørk lava", "#483C32"), - ("Blåviolet (farvehjul)", "#4D1A7F"), - ("Deep Space Sparkle", "#4A646C"), - ("Mørk skiferblå", "#483D8B"), - ("Sort bønne", "#3D0C02"), - ("Bistre", "#3D2B1F"), - ("Sort oliven", "#3B3C36"), - ("Bluetiful", "#3C69E7"), - ("B'dazzled blå", "#2E5894"), - ("Trækul", "#36454F"), - ("Cerulean blå", "#2A52BE"), - ("Kosmisk kobolt", "#2E2D88"), - ("Celadon grøn", "#2F847C"), - ("Sort kaffe", "#3B2F2F"), - ("Amazon", "#3B7A57"), - ("Mørk sienna", "#3C1414"), - ("Blå (pigment)", "#333399"), - ("Mørk skifergrå", "#2F4F4F"), - ("Mørk kornblomst", "#26428B"), - ("Bleu de France", "#318CE7"), - ("Mørke lilla", "#301934"), - ("Keltisk blå", "#246BCE"), - ("Charleston grøn", "#232B2B"), - ("Dodger blå", "#1E90FF"), - ("Blågrøn (farvehjul)", "#064E40"), - ("Denim", "#1560BD"), - ("Eerie sort", "#1B1B1B"), - ("Denimblå", "#2243B6"), - ("Blå (Crayola)", "#1F75FE"), - ("Flickr Blue", "#0063dc"), - ("Skovgrøn (web)", "#228B22"), - ("Sort chokolade", "#1B1811"), - ("Engelsk grøn", "#1B4D3E"), - ("Brunswick grøn", "#1B4D3E"), - ("Cerulean (Crayola)", "#1DACD6"), - ("Fluorescerende blå", "#15F4EE"), - ("Lys marineblå", "#1974D2"), - ("Mørk jungle grøn", "#1A2421"), - ("Mørk forår grøn", "#177245"), - ("Blå (RYB)", "#0247FE"), - ("Egyptisk blå", "#1034A6"), - ("Blå safir", "#126180"), - ("Blågrøn", "#0D98BA"), - ("Mørk pastelgrøn", "#03C03C"), - ) - ) - - safe_colors = ( - "sort", - "rødbrun", - "grøn", - "mørkeblå", - "oliven", - "lilla", - "blågrøn", - "lime", - "blå", - "sølv", - "grå", - "gul", - "pink", - "turkis", - "hvid", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/da_DK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/da_DK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ca82e21..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/da_DK/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/de/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/de/__init__.py deleted file mode 100644 index 0ee1cb0..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/de/__init__.py +++ /dev/null @@ -1,158 +0,0 @@ -from collections import OrderedDict - -from faker.typing import OrderedDictType - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """ - Color provider for ``de`` locale. Source: https://www.sttmedia.com/colornames - """ - - all_colors: OrderedDictType[str, str] = OrderedDict( - ( - ("Eisfarben", "#F0F8FF"), - ("Antikweiß", "#FAEBD7"), - ("Wasser", "#00FFFF"), - ("Aquamarinblau", "#7FFFD4"), - ("Azur", "#F0FFFF"), - ("Beige", "#F5F5DC"), - ("Biskuit", "#FFE4C4"), - ("Schwarz", "#000000"), - ("Mandelweiß", "#FFEBCD"), - ("Blau", "#0000FF"), - ("Blauviolett", "#8A2BE2"), - ("Braun", "#A52A2A"), - ("Gelbbraun", "#DEB887"), - ("Kadettenblau", "#5F9EA0"), - ("Hellgrün", "#7FFF00"), - ("Schokolade", "#D2691E"), - ("Koralle", "#FF7F50"), - ("Kornblumenblau", "#6495ED"), - ("Mais", "#FFF8DC"), - ("Karminrot", "#DC143C"), - ("Cyan", "#00FFFF"), - ("Dunkelblau", "#00008B"), - ("Dunkelcyan", "#008B8B"), - ("Dunkle Goldrutenfarbe", "#B8860B"), - ("Dunkelgrau", "#A9A9A9"), - ("Dunkelgrün", "#006400"), - ("Dunkelkhaki", "#BDB76B"), - ("Dunkelmagenta", "#8B008B"), - ("Dunkles Olivgrün", "#556B2F"), - ("Dunkles Orange", "#FF8C00"), - ("Dunkle Orchidee", "#9932CC"), - ("Dunkelrot", "#8B0000"), - ("Dunkle Lachsfarbe", "#E9967A"), - ("Dunkles Seegrün", "#8FBC8F"), - ("Dunkles Schieferblau", "#483D8B"), - ("Dunkles Schiefergrau", "#2F4F4F"), - ("Dunkeltürkis", "#00CED1"), - ("Dunkelviolett", "#9400D3"), - ("Tiefrosa", "#FF1493"), - ("Tiefes Himmelblau", "#00BFFF"), - ("Trübes Grau", "#696969"), - ("Persenningblau", "#1E90FF"), - ("Backstein", "#B22222"), - ("Blütenweiß", "#FFFAF0"), - ("Waldgrün", "#228B22"), - ("Fuchsia", "#FF00FF"), - ("Gainsboro", "#DCDCDC"), - ("Geisterweiß", "#F8F8FF"), - ("Gold", "#FFD700"), - ("Goldrute", "#DAA520"), - ("Grau", "#808080"), - ("Grün", "#008000"), - ("Grüngelb", "#ADFF2F"), - ("Honigmelone", "#F0FFF0"), - ("Leuchtendes Rosa", "#FF69B4"), - ("Indischrot", "#CD5C5C"), - ("Indigo", "#4B0082"), - ("Elfenbein", "#FFFFF0"), - ("Khaki", "#F0E68C"), - ("Lavendel", "#E6E6FA"), - ("Lavendelrosa", "#FFF0F5"), - ("Rasengrün", "#7CFC00"), - ("Chiffongelb", "#FFFACD"), - ("Hellblau", "#ADD8E6"), - ("Helles Korallenrot", "#F08080"), - ("Helles Cyan", "#E0FFFF"), - ("Helles Goldrutengelb", "#FAFAD2"), - ("Hellgrau", "#D3D3D3"), - ("Hellgrün", "#90EE90"), - ("Hellrosa", "#FFB6C1"), - ("Helle Lachsfarbe", "#FFA07A"), - ("Helles Seegrün", "#20B2AA"), - ("Helles Himmelblau", "#87CEFA"), - ("Helles Schiefergrau", "#778899"), - ("Helles Stahlblau", "#B0C4DE"), - ("Hellgelb", "#FFFFE0"), - ("Limone", "#00FF00"), - ("Limonengrün", "#32CD32"), - ("Leinen", "#FAF0E6"), - ("Magenta", "#FF00FF"), - ("Kastanie", "#800000"), - ("Mittleres Aquamarin", "#66CDAA"), - ("Mittleres Blau", "#0000CD"), - ("Mittlere Orchidee", "#BA55D3"), - ("Mittleres Violett", "#9370DB"), - ("Mittleres Seegrün", "#3CB371"), - ("Mittleres Schieferblau", "#7B68EE"), - ("Mittleres Frühlingsgrün", "#00FA9A"), - ("Mittleres Türkis", "#48D1CC"), - ("Mittleres Violettrot", "#C71585"), - ("Mitternachtsblau", "#191970"), - ("Minzcreme", "#F5FFFA"), - ("Altrosa", "#FFE4E1"), - ("Mokassin", "#FFE4B5"), - ("Navajoweiß", "#FFDEAD"), - ("Marineblau", "#000080"), - ("Alte Spitze", "#FDF5E6"), - ("Olivgrün", "#808000"), - ("Olivgraubraun", "#6B8E23"), - ("Orange", "#FFA500"), - ("Orangerot", "#FF4500"), - ("Orchidee", "#DA70D6"), - ("Blasse Goldrutenfarbe", "#EEE8AA"), - ("Blassgrün", "#98FB98"), - ("Blasstürkis", "#AFEEEE"), - ("Blasses Violetrot", "#DB7093"), - ("Papayacreme", "#FFEFD5"), - ("Pfirsich", "#FFDAB9"), - ("Peru", "#CD853F"), - ("Rosa", "#FFC0CB"), - ("Pflaume", "#DDA0DD"), - ("Taubenblau", "#B0E0E6"), - ("Lila", "#800080"), - ("Rot", "#FF0000"), - ("Rosiges Braun", "#BC8F8F"), - ("Königsblau", "#4169E1"), - ("Sattelbraun", "#8B4513"), - ("Lachsfarben", "#FA8072"), - ("Sandbraun", "#F4A460"), - ("Seegrün", "#2E8B57"), - ("Muschelfarben", "#FFF5EE"), - ("Siennaerde", "#A0522D"), - ("Silber", "#C0C0C0"), - ("Himmelblau", "#87CEEB"), - ("Schieferblau", "#6A5ACD"), - ("Schiefergrau", "#708090"), - ("Schneeweiß", "#FFFAFA"), - ("Frühlingsgrün", "#00FF7F"), - ("Stahlblau", "#4682B4"), - ("Hautfarben", "#D2B48C"), - ("Petrol", "#008080"), - ("Distel", "#D8BFD8"), - ("Tomatenrot", "#FF6347"), - ("Türkis", "#40E0D0"), - ("Violett", "#EE82EE"), - ("Weizen", "#F5DEB3"), - ("Weiß", "#FFFFFF"), - ("Rauchfarben", "#F5F5F5"), - ("Gelb", "#FFFF00"), - ("Gelbgrün", "#9ACD32"), - ) - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/de/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/de/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2824bf9..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/de/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/de_AT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/de_AT/__init__.py deleted file mode 100644 index 172beb7..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/de_AT/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from ..de import Provider as BaseProvider - - -class Provider(BaseProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/de_AT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/de_AT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0c78c1e..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/de_AT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/de_CH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/de_CH/__init__.py deleted file mode 100644 index acbcdda..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/de_CH/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -from collections import OrderedDict - -from faker.typing import OrderedDictType - -from ..de import Provider as BaseProvider - - -class Provider(BaseProvider): - all_colors: OrderedDictType[str, str] = OrderedDict( - (color_name.replace("ß", "ss"), color_hexcode) for color_name, color_hexcode in BaseProvider.all_colors.items() - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/de_CH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/de_CH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index bdd7927..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/de_CH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/de_DE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/de_DE/__init__.py deleted file mode 100644 index 172beb7..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/de_DE/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from ..de import Provider as BaseProvider - - -class Provider(BaseProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/de_DE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/de_DE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 644f88e..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/de_DE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/el_GR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/el_GR/__init__.py deleted file mode 100644 index 64f6cdb..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/el_GR/__init__.py +++ /dev/null @@ -1,113 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """ - Implement color provider for ``el_GR`` locale. - Naming and hex codes are based on https://encycolorpedia.gr/named - """ - - all_colors = OrderedDict( - ( - ("άσιντ πράσινο", "#B0BF1A"), - ("άσπρο", "#FFFFFF"), - ("άστριοι", "#FDD5B1"), - ("αβοκάντο", "#568203"), - ("αγκινάρα", "#8F9779"), - ("αζούρ", "#8AB9F1"), - ("ακαζού", "#4C2F27"), - ("ασημένιο", "#C0C0C0"), - ("βαθύ κόκκινο", "#850101"), - ("βερικοκί", "#FBCEB1"), - ("βερμιγιόν", "#E34234"), - ("βιολετί", "#7F00FF"), - ("βρύο", "#8A9A5B"), - ("βυσσινί", "#DC143C"), - ("γαλάζιο", "#ADD8E6"), - ("γκρι", "#808080"), - ("γλαυκό", "#6082B6"), - ("εκρού", "#C2B280"), - ("ιβουάρ", "#FFFFF0"), - ("ινδικό", "#4B0082"), - ("κίτρινο", "#9B870C"), - ("καμηλό", "#C19A6B"), - ("κανέλα", "#D2691E"), - ("καστανέρυθρο", "#8B0000"), - ("καστανό", "#954535"), - ("καφέ", "#A52A2A"), - ("καφές", "#6F4E37"), - ("κυανό", "#800080"), - ("κεχριμπάρι", "#FFBF00"), - ("κόκκινο", "#FF0000"), - ("λάβα", "#CF1020"), - ("λαδί", "#3B3C36"), - ("λευκό", "#DBE9F4"), - ("μαρόν", "#800000"), - ("ματζέντα", "#CC00CC"), - ("μαόνι", "#CD4A4C"), - ("μαύρο", "#000000"), - ("μπέιμπι μπλου", "#89CFF0"), - ("μπεζ", "#F5F5DC"), - ("μπλε", "#0000FF"), - ("μπλε μαρέν", "#1974D2"), - ("μπορντό", "#7F1734"), - ("μπουργκουντί", "#900020"), - ("μυρτιά", "#317873"), - ("μωβ", "#B19CD9"), - ("ορείχαλκος", "#B5A642"), - ("πέρλα", "#EAE0C8"), - ("πεύκο", "#01796F"), - ("πλατίνα", "#E5E4E2"), - ("πορτοκαλί", "#FF7F00"), - ("πορτοκαλοκίτρινο", "#DAA520"), - ("πράσινο", "#000FF0"), - ("πράσινο chartreuse", "#7FFF00"), - ("πράσινο αγκινάρας", "#4B6F44"), - ("πράσινο ανοιχτό", "#90EE90"), - ("πράσινο ζούγκλας", "#29AB87"), - ("πράσινο λαουρέλ", "#A9BA9D"), - ("πράσινο σκούρο", "#013220"), - ("πράσινο της άνοιξης", "#00FF7F"), - ("πράσινο της μέντας", "#98FB98"), - ("πράσινο της φτέρης", "#4F7942"), - ("πράσινο του δάσους", "#228B22"), - ("πράσινο τσάι", "#D0F0C0"), - ("πράσινο χούκερ", "#49796B"), - ("ραφ", "#5D8AA8"), - ("ροζ", "#FFC0CB"), - ("ροζέ", "#FF007F"), - ("σέπια", "#704214"), - ("σαμπανιζέ", "#F7E7CE"), - ("σκάρλετ", "#FF2400"), - ("σκούρο βρύο", "#4A5D23"), - ("σπαραγγί", "#87A96B"), - ("ταν", "#D2B48C"), - ("φλαμίνγκο", "#FC8EAC"), - ("φούξια", "#F400A1"), - ("φτέρη", "#71BC78"), - ("χλωροφύλλη", "#4AFF00"), - ("χρυσαφένιο", "#FFD700"), - ("χρυσό", "#808000"), - ("ώχρα", "#E97451"), - ) - ) - - safe_colors = ( - "μαύρο", - "πράσινο", - "μπλε", - "κίτρινο", - "κόκκινο", - "μωβ", - "άσπρο", - "γκρι", - "ασημένιο", - "καφέ", - "λαδί", - "χρυσό", - "ροζ", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/el_GR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/el_GR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 651375e..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/el_GR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/en_US/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/en_US/__init__.py deleted file mode 100644 index 0bc576e..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/en_US/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from .. import Provider as ColorProvider - - -class Provider(ColorProvider): - """Implement color provider for ``en_US`` locale.""" - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/en_US/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/en_US/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 33a1f6d..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/en_US/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/es/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/es/__init__.py deleted file mode 100644 index 78a65f1..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/es/__init__.py +++ /dev/null @@ -1,169 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """Implement color provider for ``es`` locale.""" - - all_colors = OrderedDict( - ( - ("Agua marina medio", "#66CDAA"), - ("Agua-marina", "#7FFFD4"), - ("Almendra blanqueado", "#FFEBCD"), - ("Amarillo", "#FFFF00"), - ("Amarillo claro", "#FFFFE0"), - ("Amarillo dorado", "#DAA520"), - ("Amarillo dorado claro", "#FAFAD2"), - ("Amarillo dorado oscuro", "#B8860B"), - ("Amarillo dorado pálido", "#EEE8AA"), - ("Amarillo trigo", "#F5DEB3"), - ("Amarillo verde", "#9ACD32"), - ("Azul", "#0000FF"), - ("Azul Alicia", "#F0F8FF"), - ("Azul acero", "#4682B4"), - ("Azul acero claro", "#B0C4DE"), - ("Azul anciano", "#6495ED"), - ("Azul azur", "#F0FFFF"), - ("Azul cadete", "#5F9EA0"), - ("Azul cielo", "#87CEEB"), - ("Azul cielo claro", "#87CEFA"), - ("Azul cielo profundo", "#00BFFF"), - ("Azul claro", "#ADD8E6"), - ("Azul lona", "#1E90FF"), - ("Azul marino", "#000080"), - ("Azul medianoche", "#191970"), - ("Azul medio", "#0000CD"), - ("Azul oscuro", "#00008B"), - ("Azul pizarra", "#6A5ACD"), - ("Azul pizarra medio", "#7B68EE"), - ("Azul pizarra oscuro", "#483D8B"), - ("Azul polvo", "#B0E0E6"), - ("Azul real", "#4169E1"), - ("Azul violeta", "#8A2BE2"), - ("Beige", "#F5F5DC"), - ("Beige antiguo", "#FAEBD7"), - ("Beige limón", "#FFFACD"), - ("Beige melocotón", "#FFDAB9"), - ("Beige mocasín", "#FFE4B5"), - ("Beige papaya", "#FFEFD5"), - ("Bisque", "#FFE4C4"), - ("Blanco", "#FFFFFF"), - ("Blanco concha", "#FFF5EE"), - ("Blanco encaje", "#FDF5E6"), - ("Blanco fantasma", "#F8F8FF"), - ("Blanco floral", "#FFFAF0"), - ("Blanco humo", "#F5F5F5"), - ("Blanco lavanda", "#FFF0F5"), - ("Blanco lino", "#FAF0E6"), - ("Blanco menta", "#F5FFFA"), - ("Blanco navajo", "#FFDEAD"), - ("Blanco nieve", "#FFFAFA"), - ("Caqui", "#6B8E23"), - ("Caqui oscuro", "#BDB76B"), - ("Chartreuse", "#7FFF00"), - ("Chocolate", "#D2691E"), - ("Cian", "#00FFFF"), - ("Cian clarto", "#E0FFFF"), - ("Ciruela", "#DDA0DD"), - ("Coral", "#FF7F50"), - ("Coral claro", "#F08080"), - ("Amarillo maíz dulce", "#FFF8DC"), - ("Cyan oscuro", "#008B8B"), - ("Fucsia", "#FF00FF"), - ("Granate", "#800000"), - ("Gris", "#808080"), - ("Gris claro", "#D3D3D3"), - ("Gris gainsboro (Estaño)", "#DCDCDC"), - ("Gris mate", "#696969"), - ("Gris oscuro", "#A9A9A9"), - ("Gris pizarra", "#708090"), - ("Gris pizarra claro", "#778899"), - ("Gris pizarra oscuro", "#2F4F4F"), - ("Lavanda", "#E6E6FA"), - ("Lima", "#00FF00"), - ("Magenta", "#FF00FF"), - ("Magenta oscuro", "#8B008B"), - ("Marfil", "#FFFFF0"), - ("Marrón", "#A52A2A"), - ("Marrón arena", "#F4A460"), - ("Marrón caqui", "#F0E68C"), - ("Marrón cuero", "#8B4513"), - ("Marrón madera rústica", "#DEB887"), - ("Marrón perú", "#CD853F"), - ("Marrón rojizo", "#D2B48C"), - ("Marrón rosado", "#BC8F8F"), - ("Marrón siena", "#A0522D"), - ("Melón dulce", "#F0FFF0"), - ("Naranja", "#FFA500"), - ("Naranja oscuro", "#FF8C00"), - ("Negro", "#000000"), - ("Oliva", "#808000"), - ("Oro", "#FFD700"), - ("Orquídea", "#DA70D6"), - ("Orquídea medio", "#BA55D3"), - ("Orquídea púrpura oscuro", "#9932CC"), - ("Plata", "#C0C0C0"), - ("Púrpura", "#800080"), - ("Púrpura medio", "#9370DB"), - ("Rojo", "#FF0000"), - ("Rojo anaranjado", "#FF4500"), - ("Rojo carmesí", "#DC143C"), - ("Rojo indio", "#CD5C5C"), - ("Rojo ladrillo", "#B22222"), - ("Rojo oscuro", "#8B0000"), - ("Rojo tomate", "#FF6347"), - ("Rojo violeta medio", "#C71585"), - ("Rosa", "#FFC0CB"), - ("Rosa brumoso", "#FFE4E1"), - ("Rosa caliente", "#FF69B4"), - ("Rosa claro", "#FFB6C1"), - ("Rosa profundo", "#FF1493"), - ("Salmón", "#FA8072"), - ("Salmón claro", "#FFA07A"), - ("Salmón oscuro", "#E9967A"), - ("Turquesa", "#40E0D0"), - ("Turquesa medio", "#48D1CC"), - ("Turquesa oscuro", "#00CED1"), - ("Turquesa pálido", "#AFEEEE"), - ("Verde", "#008000"), - ("Verde azulado", "#008080"), - ("Verde bosque", "#228B22"), - ("Verde claro", "#90EE90"), - ("Verde lima", "#32CD32"), - ("Verde limón", "#ADFF2F"), - ("Verde mar", "#2E8B57"), - ("Verde mar claro", "#20B2AA"), - ("Verde mar medio", "#3CB371"), - ("Verde mar oscuro", "#8FBC8F"), - ("Verde oliva oscuro", "#556B2F"), - ("Verde oscuro", "#006400"), - ("Verde prado", "#7CFC00"), - ("Verde primavera", "#00FF7F"), - ("Verde primavera medio", "#00FA9A"), - ("Verde pálido", "#98FB98"), - ("Violeta", "#EE82EE"), - ("Violeta cardo", "#D8BFD8"), - ("Violeta oscuro", "#9400D3"), - ("Violeta sonrojado pálido", "#DB7093"), - ("Índigo", "#4B0082"), - ) - ) - - safe_colors = ( - "negro", - "budeos", - "verde", - "rojo", - "violeta", - "verde azulado", - "azul", - "plata", - "gris", - "amarilo", - "fucsia", - "cian", - "blanco", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/es/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/es/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4e35287..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/es/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/es_CL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/es_CL/__init__.py deleted file mode 100644 index 3bcd5c1..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/es_CL/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from ..es import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/es_CL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/es_CL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 37c8cd4..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/es_CL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/es_ES/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/es_ES/__init__.py deleted file mode 100644 index 3bcd5c1..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/es_ES/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from ..es import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/es_ES/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/es_ES/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1416d9c..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/es_ES/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/fa_IR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/fa_IR/__init__.py deleted file mode 100644 index 75fbb7b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/fa_IR/__init__.py +++ /dev/null @@ -1,175 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - - -class Provider(ColorProvider): - """Implement color provider for ``fa_IR`` locale. - - Sources: - - https://www.seyedrezabazyar.com/fa/name-and-code-of-colors/ - - https://bit.ly/353BBiY - """ - - all_colors = OrderedDict( - ( - ("نیلی محو", "#F0F8FF"), - ("بژ تیره", "#FAEBD7"), - ("فیروزه‌ای", "#00FFFF"), - ("یشمی", "#7FFFD4"), - ("لاجوردی", "#F0FFFF"), - ("بژ", "#F5F5DC"), - ("کرم", "#FFE4C4"), - ("مشکی", "#000000"), - ("کاهگلی", "#FFEBCD"), - ("آبی", "#0000FF"), - ("آبی-بنفش سیر", "#8A2BE2"), - ("قهوه‌ای", "#A52A2A"), - ("خاکی", "#DEB887"), - ("آبی لجنی", "#5F9EA0"), - ("سبز روشن", "#7FFF00"), - ("شوکولاتی", "#D2691E"), - ("مرجانی", "#FF7F50"), - ("آبی کدر", "#6495ED"), - ("کاهی", "#FFF8DC"), - ("زرشکی", "#DC143C"), - ("فیروزه‌ای", "#00FFFF"), - ("سرمه‌ای", "#00008B"), - ("سبز کبریتی تیره", "#008B8B"), - ("ماشی سیر", "#B8860B"), - ("خاکستری سیر", "#A9A9A9"), - ("سبز آووکادو", "#006400"), - ("ماشی", "#BDB76B"), - ("مخملی", "#8B008B"), - ("زیتونی سیر", "#556B2F"), - ("نارنجی سیر", "#FF8C00"), - ("ارکیده بنفش", "#9932CC"), - ("عنابی تند", "#8B0000"), - ("قهوه‌ایِ حنایی", "#E9967A"), - ("سبز دریایی تیره", "#8FBC8F"), - ("آبی دودی", "#483D8B"), - ("لجنی تیره", "#2F4F4F"), - ("فیروزه‌ای سیر", "#00CED1"), - ("بنفش باز", "#9400D3"), - ("شفقی", "#FF1493"), - ("آبی کمرنگ", "#00BFFF"), - ("دودی", "#696969"), - ("نیلی", "#1E90FF"), - ("شرابی", "#B22222"), - ("پوست پیازی", "#FFFAF0"), - ("شویدی", "#228B22"), - ("سرخابی", "#FF00FF"), - ("خاکستری مات", "#DCDCDC"), - ("سفید بنفشه", "#F8F8FF"), - ("کهربایی باز", "#FFD700"), - ("خردلی", "#DAA520"), - ("خاکستری", "#808080"), - ("سبز", "#008000"), - ("مغزپسته‌ای کمرنگ", "#ADFF2F"), - ("یشمی محو", "#F0FFF0"), - ("سرخابی", "#FF69B4"), - ("جگری", "#CD5C5C"), - ("نیلی سیر", "#4B0082"), - ("استخوانی", "#FFFFF0"), - ("خاکی روشن", "#F0E68C"), - ("نیلی کمرنگ", "#E6E6FA"), - ("صورتی مات", "#FFF0F5"), - ("مغزپسته‌ای پررنگ", "#7CFC00"), - ("شیرشکری", "#FFFACD"), - ("آبی کبریتی", "#ADD8E6"), - ("بژ تیره", "#F08080"), - ("آبی آسمانی", "#E0FFFF"), - ("لیمویی روشن", "#FAFAD2"), - ("خاکستری روشن", "#D3D3D3"), - ("سبز روشن", "#90EE90"), - ("صورتی روشن", "#FFB6C1"), - ("کرم نارنجی", "#FFA07A"), - ("سبز کبریتی روشن", "#20B2AA"), - ("آبی آسمانی روشن", "#87CEFA"), - ("سربی", "#778899"), - ("بنفش مایل به آبی", "#B0C4DE"), - ("شیری", "#FFFFE0"), - ("مغزپسته‌ای روشن", "#00FF00"), - ("سبز چمنی", "#32CD32"), - ("كتانی", "#FAF0E6"), - ("سرخ آبی", "#FF00FF"), - ("آلبالویی", "#800000"), - ("سبز دریایی", "#66CDAA"), - ("آبی سیر", "#0000CD"), - ("ارکیده سیر", "#BA55D3"), - ("سرخ آبی سیر", "#9370DB"), - ("خزه‌ای", "#3CB371"), - ("آبی متالیک روشن", "#7B68EE"), - ("یشمی سیر", "#00FA9A"), - ("فیروزه‌ای تیره", "#48D1CC"), - ("ارغوانی", "#C71585"), - ("آبی نفتی", "#191970"), - ("سفید نعنائی", "#F5FFFA"), - ("بژ", "#FFE4E1"), - ("هلویی", "#FFE4B5"), - ("کرم سیر", "#FFDEAD"), - ("لاجوردی", "#000080"), - ("بژ روشن", "#FDF5E6"), - ("زیتونی", "#808000"), - ("سبز ارتشی", "#6B8E23"), - ("نارنجی", "#FFA500"), - ("قرمز-نارنجی", "#FF4500"), - ("ارکیده", "#DA70D6"), - ("نخودی", "#EEE8AA"), - ("سبز کمرنگ", "#98FB98"), - ("فیروزه‌ای کدر", "#AFEEEE"), - ("شرابی روشن", "#DB7093"), - ("هلویی روشن", "#FFEFD5"), - ("هلویی پررنگ", "#FFDAB9"), - ("بادامی سیر", "#CD853F"), - ("صورتی", "#FFC0CB"), - ("بنفش کدر", "#DDA0DD"), - ("آبی کبریتی روشن", "#B0E0E6"), - ("بنفش", "#800080"), - ("قرمز", "#FF0000"), - ("بادمجانی", "#BC8F8F"), - ("فیروزه‌ای فسفری", "#4169E1"), - ("کاکائویی", "#8B4513"), - ("سالمحناییِ روشنوني", "#FA8072"), - ("هلویی سیر", "#F4A460"), - ("خزه‌ای پررنگ", "#2E8B57"), - ("صدفی", "#FFF5EE"), - ("قهوه‌ای متوسط", "#A0522D"), - ("طوسی", "#C0C0C0"), - ("آبی آسمانی", "#87CEEB"), - ("آبی فولادی", "#6A5ACD"), - ("سربی تیره", "#708090"), - ("صورتی محو", "#FFFAFA"), - ("یشمی کمرنگ", "#00FF7F"), - ("نیلی متالیک", "#4682B4"), - ("برنزه کدر", "#D2B48C"), - ("سبز دودی", "#008080"), - ("بادمجانی روشن", "#D8BFD8"), - ("قرمز گوجه‌ای", "#FF6347"), - ("سبز دریایی روشن", "#40E0D0"), - ("بنفش روشن", "#EE82EE"), - ("گندمی", "#F5DEB3"), - ("سفید", "#FFFFFF"), - ("خاکستری محو", "#F5F5F5"), - ("زرد", "#FFFF00"), - ("سبز لجنی", "#9ACD32"), - ) - ) - - safe_colors = ( - "سیاه", - "عنابی", - "سبز", - "آبی کاربنی", - "زیتونی", - "بنفش", - "سبز دودی", - "آهکی", - "آبی", - "نقره‌ای", - "خاکستری", - "زرد", - "ارغوانی", - "فیروزه‌ای", - "سفید", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/fa_IR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/fa_IR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5682528..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/fa_IR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/fr_FR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/fr_FR/__init__.py deleted file mode 100644 index 3630f1f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/fr_FR/__init__.py +++ /dev/null @@ -1,167 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """Implement color provider for ``fr_FR`` locale.""" - - all_colors = OrderedDict( - ( - ("Noir", "#000000"), - ("Gris mat", "#696969"), - ("Gris", "#808080"), - ("Gris foncé (Acier)", "#A9A9A9"), - ("Gris argent", "#C0C0C0"), - ("Gris clair", "#D3D3D3"), - ("Gris gainsboro (Etain)", "#DCDCDC"), - ("Blanc fumée", "#F5F5F5"), - ("Blanc spectral", "#F8F8FF"), - ("Blanc", "#FFFFFF"), - ("Ivoire", "#FFFFF0"), - ("Blanc floral", "#FFFAF0"), - ("Blanc coquillage", "#FFF5EE"), - ("Blanc lavande", "#FFF0F5"), - ("Blanc dentelle", "#FDF5E6"), - ("Blanc Lin", "#FAF0E6"), - ("Rose brumeux", "#FFE4E1"), - ("Rose", "#FFC0CB"), - ("Rose clair", "#FFB6C1"), - ("Rose Passion", "#FF69B4"), - ("Rose profond", "#FF1493"), - ("Violet pâle", "#DB7093"), - ("Fushia (Magenta)", "#FF00FF"), - ("Violet moyen", "#C71585"), - ("Violet chardon", "#D8BFD8"), - ("Prune", "#DDA0DD"), - ("Violet", "#EE82EE"), - ("Violet orchidée", "#DA70D6"), - ("Violet orchidée moyen", "#BA55D3"), - ("Violet orchidée foncé", "#9932CC"), - ("Violet foncé", "#9400D3"), - ("Bleu violet", "#8A2BE2"), - ("Indigo", "#4B0082"), - ("Bleu ardoise moyen", "#7B68EE"), - ("Bleu ardoise", "#6A5ACD"), - ("Bleu ardoise foncé", "#483D8B"), - ("Pourpre moyen", "#9370DB"), - ("Magenta foncé", "#8B008B"), - ("Pourpre", "#800080"), - ("Brun rosé", "#BC8F8F"), - ("Corail clair", "#F08080"), - ("Corail", "#FF7F50"), - ("Tomate", "#FF6347"), - ("Orangé", "#FF4500"), - ("Rouge", "#FF0000"), - ("Rouge cramoisi", "#DC143C"), - ("Saumon clair", "#FFA07A"), - ("Saumon Foncé", "#E9967A"), - ("Saumon", "#FA8072"), - ("Rouge Indien", "#CD5C5C"), - ("Rouge brique", "#B22222"), - ("Brun", "#A52A2A"), - ("Rouge foncé", "#8B0000"), - ("Bordeaux", "#800000"), - ("Beige", "#F5F5DC"), - ("Beige antique", "#FAEBD7"), - ("Beige papaye", "#FFEFD5"), - ("Amande", "#FFEBCD"), - ("Bisque", "#FFE4C4"), - ("Beige pêche", "#FFDAB9"), - ("Beige mocassin", "#FFE4B5"), - ("Jaune blanc navaro", "#FFDEAD"), - ("Jaune blé", "#F5DEB3"), - ("Brun bois rustique", "#DEB887"), - ("Brun roux", "#D2B48C"), - ("Brun sable", "#F4A460"), - ("Orange", "#FFA500"), - ("Orange foncé", "#FF8C00"), - ("Chocolat", "#D2691E"), - ("Brun pérou", "#CD853F"), - ("Terre de Sienne", "#A0522D"), - ("Brun cuir", "#8B4513"), - ("Jaune clair", "#FFFFE0"), - ("Jaune maïs doux", "#FFF8DC"), - ("Jaune doré clair", "#FAFAD2"), - ("Beige citron soie", "#FFFACD"), - ("Jaune doré pâle", "#EEE8AA"), - ("Brun kaki", "#F0E68C"), - ("Jaune", "#FFFF00"), - ("Or", "#FFD700"), - ("Jaune doré", "#DAA520"), - ("Jaune doré foncé", "#B8860B"), - ("Brun kaki foncé", "#BDB76B"), - ("Jaune vert", "#9ACD32"), - ("Kaki", "#6B8E23"), - ("Olive", "#808000"), - ("Vert olive foncé", "#556B2F"), - ("Vert jaune", "#ADFF2F"), - ("Chartreuse", "#7FFF00"), - ("Vert prairie", "#7CFC00"), - ("Citron vert", "#00FF00"), - ("Citron vert foncé", "#32CD32"), - ("Blanc menthe", "#F5FFFA"), - ("Miellat", "#F0FFF0"), - ("Vert pâle", "#98FB98"), - ("Vert clair", "#90EE90"), - ("Vert printemps", "#00FF7F"), - ("Vert printemps moyen", "#00FA9A"), - ("Vert forêt", "#228B22"), - ("Vert", "#008000"), - ("Vert foncé", "#006400"), - ("Vert océan foncé", "#8FBC8F"), - ("Vert océan moyen", "#3CB371"), - ("Vert océan", "#2E8B57"), - ("Gris ardoise clair", "#778899"), - ("Gris ardoise", "#708090"), - ("Gris ardoise foncé", "#2F4F4F"), - ("Bleu alice", "#F0F8FF"), - ("Bleu azur", "#F0FFFF"), - ("Cyan clair", "#E0FFFF"), - ("Azurin", "#AFEEEE"), - ("Aigue-marine", "#7FFFD4"), - ("Aigue-marine moyen", "#66CDAA"), - ("Cyan", "#00FFFF"), - ("Turquoise", "#40E0D0"), - ("Turquoise moyen", "#48D1CC"), - ("Turquoise foncé", "#00CED1"), - ("Vert marin clair", "#20B2AA"), - ("Cyan foncé", "#008B8B"), - ("Vert sarcelle", "#008080"), - ("Bleu pétrole", "#5F9EA0"), - ("Bleu poudre", "#B0E0E6"), - ("Bleu clair", "#ADD8E6"), - ("Bleu azur clair", "#87CEFA"), - ("Bleu azur", "#87CEEB"), - ("Bleu azur profond", "#00BFFF"), - ("Bleu toile", "#1E90FF"), - ("Bleu lavande", "#E6E6FA"), - ("Bleu acier clair", "#B0C4DE"), - ("Bleuet", "#6495ED"), - ("Bleu acier", "#4682B4"), - ("Bleu royal", "#4169E1"), - ("Bleu", "#0000FF"), - ("Bleu moyen", "#0000CD"), - ("Bleu foncé", "#00008B"), - ("Bleu marin", "#000080"), - ("Bleu de minuit", "#191970"), - ) - ) - - safe_colors = ( - "noir", - "bordeaux", - "vert", - "rouge", - "violet", - "sarcelle", - "bleu", - "argent", - "gris", - "jaune", - "fuchsia", - "cyan", - "blanc", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/fr_FR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/fr_FR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0fea309..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/fr_FR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/he_IL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/he_IL/__init__.py deleted file mode 100644 index 67963cd..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/he_IL/__init__.py +++ /dev/null @@ -1,49 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """Implement color provider for ``he_IL`` locale.""" - - """Source : https://he.wikipedia.org/wiki/%D7%95%D7%99%D7%A7%D7%99%D7%A4%D7%93%D7%99%D7%94:%D7%A2%D7%A8%D7%9B%D7%AA_%D7%A6%D7%91%D7%A2%D7%99%D7%9D#%D7%98%D7%91%D7%9C%D7%94_%D7%96%D7%95_%D7%9E%D7%A8%D7%90%D7%94_%D7%90%D7%AA_%D7%98%D7%95%D7%95%D7%97_%D7%94%D7%92%D7%95%D7%95%D7%A0%D7%99%D7%9D_%D7%A9%D7%9C_%D7%9B%D7%9E%D7%94_%D7%A6%D7%91%D7%A2%D7%99%D7%9D_%D7%A0%D7%A4%D7%95%D7%A6%D7%99%D7%9D""" # NOQA - - all_colors = OrderedDict( - ( - ("אדום", "#FF0000"), - ("אוכרה", "#DDAA33"), - ("אינדיגו", "#4B0082"), - ("אפור", "#7F7F7F"), - ("ארגמן", "#7F003F"), - ("ורוד", "#FF007F"), - ("זהב", "#FFDF00"), - ("חאקי", "#C3B091"), - ("חום", "#7F3F00"), - ("טורקיז", "#40E0D0"), - ("ירוק", "#00FF00"), - ("כחול", "#0000FF"), - ("כסף", "#C0C0C0"), - ("כתום", "#FF7F00"), - ("לבן", "#FFFFFF"), - ("מג'נטה", "#FF00FF"), - ("סגול", "#7F00FF"), - ("צהוב", "#FFFF00"), - ("ציאן", "#00FFFF"), - ("קרדינל", "#C41E3A"), - ("שחור", "#000000"), - ("שני", "#7F0000"), - ("תכלת", "#007FFF"), - ) - ) - - safe_colors = ( - "אדום", - "ירוק", - "כחול", - "צהוב", - "ציאן", - "מג'נטה", - "לבן", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/he_IL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/he_IL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ffa8085..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/he_IL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/hr_HR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/hr_HR/__init__.py deleted file mode 100644 index c71f499..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/hr_HR/__init__.py +++ /dev/null @@ -1,172 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """Implement color provider for ``hr_HR`` locale.""" - - all_colors = OrderedDict( - ( - ("Akvamarin", "#7FFFD4"), - ("Antikna bijela", "#FAEBD7"), - ("Azurna", "#F0FFFF"), - ("Bež", "#F5F5DC"), - ("Bijela", "#FFFFFF"), - ("Bijelo bilje", "#FFFAF0"), - ("Bjelokost", "#FFFFF0"), - ("Blijeda kudelja", "#EEE8AA"), - ("Blijedi badem", "#FFEBCD"), - ("Blijedoljubičasta", "#DB7093"), - ("Blijedotirkizna", "#AFEEEE"), - ("Blijedozelena", "#98FB98"), - ("Breskva", "#FFDAB9"), - ("Brončana", "#D2B48C"), - ("Čeličnoplava", "#4682B4"), - ("Čičak", "#D8BFD8"), - ("Cijan", "#00FFFF"), - ("Čipka", "#FDF5E6"), - ("Čokoladna", "#D2691E"), - ("Crna", "#000000"), - ("Crvena", "#FF0000"), - ("Dim", "#F5F5F5"), - ("Dodger plava", "#1E90FF"), - ("Duboko ružičasta", "#FF1493"), - ("Fuksija", "#FF00FF"), - ("Gainsboro", "#DCDCDC"), - ("Grimizna", "#DC143C"), - ("Indigo", "#4B0082"), - ("Jelenska koža", "#FFE4B5"), - ("Kadetski plava", "#5F9EA0"), - ("Kestenjasta", "#800000"), - ("Koraljna", "#FF7F50"), - ("Kraljevski plava", "#4169E1"), - ("Kudelja", "#DAA520"), - ("Lan", "#FAF0E6"), - ("Lavanda", "#E6E6FA"), - ("Limun", "#FFFACD"), - ("Lipa", "#00FF00"), - ("Ljubičasta", "#EE82EE"), - ("Magenta", "#FF00FF"), - ("Maslinasta", "#808000"), - ("Medljika", "#F0FFF0"), - ("Menta", "#F5FFFA"), - ("Modro nebo", "#00BFFF"), - ("Modrozelena", "#008080"), - ("Mornarska", "#000080"), - ("Morskozelena", "#2E8B57"), - ("Mračno siva", "#696969"), - ("Narančasta", "#FFA500"), - ("Narančastocrvena", "#FF4500"), - ("Narančastoružičasta", "#FA8072"), - ("Noćno plava", "#191970"), - ("Orhideja", "#DA70D6"), - ("Papaja", "#FFEFD5"), - ("Peru", "#CD853F"), - ("Plava", "#0000FF"), - ("Plavi prah", "#B0E0E6"), - ("Plavi škriljevac", "#6A5ACD"), - ("Plavkasta", "#F0F8FF"), - ("Plavo cvijeće", "#6495ED"), - ("Plavo nebo", "#87CEEB"), - ("Plavoljubičasta", "#8A2BE2"), - ("Porculanska", "#FFE4C4"), - ("Prljavomaslinasta", "#6B8E23"), - ("Proljetnozelena", "#00FF7F"), - ("Prozirno bijela", "#F8F8FF"), - ("Pšenica", "#F5DEB3"), - ("Purpurna", "#800080"), - ("Rajčica", "#FF6347"), - ("Rumena lavanda", "#FFF0F5"), - ("Ružičasta", "#FFC0CB"), - ("Ružičastosmeđa", "#BC8F8F"), - ("Siva", "#808080"), - ("Sivi škriljevac", "#708090"), - ("Sivožuta", "#F0E68C"), - ("Smeđa", "#A52A2A"), - ("Smeđe sedlo", "#8B4513"), - ("Smeđi pijesak", "#F4A460"), - ("Smeđkasto bijela", "#FFDEAD"), - ("Snijeg", "#FFFAFA"), - ("Srebrna", "#C0C0C0"), - ("Srednja akvamarin", "#66CDAA"), - ("Srednja crvenoljubičasta", "#C71585"), - ("Srednja morskozelena", "#3CB371"), - ("Srednja orhideja", "#BA55D3"), - ("Srednja plava", "#0000CD"), - ("Srednja proljetnozelena", "#00FA9A"), - ("Srednja purpurna", "#9370DB"), - ("Srednja tirkizna", "#48D1CC"), - ("Srednje plavi škriljevac", "#7B68EE"), - ("Svijetla čeličnoplava", "#B0C4DE"), - ("Svijetla narančastoružičasta", "#FFA07A"), - ("Svijetli cijan", "#E0FFFF"), - ("Svijetlo drvo", "#DEB887"), - ("Svijetlokoraljna", "#F08080"), - ("Svijetlomorskozelena", "#20B2AA"), - ("Svijetloplava", "#ADD8E6"), - ("Svijetloružičasta", "#FFB6C1"), - ("Svijetlosiva", "#D3D3D3"), - ("Svijetlosivi škriljevac", "#778899"), - ("Svijetlozelena", "#90EE90"), - ("Svijetložuta kudelja", "#FAFAD2"), - ("Svijetložuta", "#FFFFE0"), - ("Šamotna opeka", "#B22222"), - ("Školjka", "#FFF5EE"), - ("Šljiva", "#DDA0DD"), - ("Tamna kudelja", "#B8860B"), - ("Tamna magenta", "#8B008B"), - ("Tamna narančastoružičasta", "#E9967A"), - ("Tamna orhideja", "#9932CC"), - ("Tamna sivožuta", "#BDB76B"), - ("Tamni cijan", "#008B8B"), - ("Tamno zelena", "#006400"), - ("Tamnocrvena", "#8B0000"), - ("Tamnoljubičasta", "#9400D3"), - ("Tamnomaslinasta", "#556B2F"), - ("Tamnonarančasta", "#FF8C00"), - ("Tamnoplava", "#00008B"), - ("Tamnoplavi škriljevac", "#483D8B"), - ("Tamnosiva", "#A9A9A9"), - ("Tamnosivi škriljevac", "#2F4F4F"), - ("Tamnotirkizna", "#00CED1"), - ("Tamnozelena", "#8FBC8F"), - ("Tirkizna", "#40E0D0"), - ("Topla ružičasta", "#FF69B4"), - ("Vedro nebo", "#87CEFA"), - ("Voda", "#00FFFF"), - ("Zelena lipa", "#32CD32"), - ("Zelena šuma", "#228B22"), - ("Zelena tratina", "#7CFC00"), - ("Zelena", "#008000"), - ("Zeleni liker", "#7FFF00"), - ("Zelenožuta", "#ADFF2F"), - ("Zlatna", "#FFD700"), - ("Žućkastocrvena zemlja", "#CD5C5C"), - ("Žućkastoružičasta", "#FFE4E1"), - ("Žućkastosmeđa glina", "#A0522D"), - ("Žuta svila", "#FFF8DC"), - ("Žuta", "#FFFF00"), - ("Žutozelena", "#9ACD32"), - ) - ) - - safe_colors = ( - "crna", - "kestenjasta", - "zelena", - "mornarska", - "maslinasta", - "purpurna", - "modrozelena", - "lipa", - "plava", - "srebrna", - "siva", - "žuta", - "fuksija", - "voda", - "bijela", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/hr_HR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/hr_HR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0fc7d03..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/hr_HR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/hu_HU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/hu_HU/__init__.py deleted file mode 100644 index 18e36c1..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/hu_HU/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -from .. import Provider as ColorProvider - - -class Provider(ColorProvider): - """Implement color provider for ``hu_HU`` locale.""" - - safe_colors = ( - "fekete", - "bordó", - "zöld", - "királykék", - "oliva", - "bíbor", - "kékeszöld", - "citromzöld", - "kék", - "ezüst", - "szürke", - "sárga", - "mályva", - "akvamarin", - "fehér", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/hu_HU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/hu_HU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a7b4dfd..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/hu_HU/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/hy_AM/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/hy_AM/__init__.py deleted file mode 100644 index 011aaf6..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/hy_AM/__init__.py +++ /dev/null @@ -1,168 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - - -class Provider(ColorProvider): - """Implement color provider for ``hy_AM`` locale.""" - - all_colors = OrderedDict( - ( - ("Ալիսի կապույտ", "#F0F8FF"), - ("Անանուխի կրեմ", "#F5FFFA"), - ("Անտառային կանաչ", "#228B22"), - ("Արծաթագույն", "#C0C0C0"), - ("Արքայական կապույտ", "#4169E1"), - ("Բաց դեղին", "#FFFFE0"), - ("Բաց դեղնաոսկեգույն", "#FAFAD2"), - ("Բաց երկնագույն", "#87CEFA"), - ("Բաց ծովային կանաչ", "#20B2AA"), - ("Բաց կաթնագույն", "#FFFFF0"), - ("Բաց կանաչ", "#90EE90"), - ("Բաց կապույտ", "#ADD8E6"), - ("Բաց կապտականաչ", "#E0FFFF"), - ("Բաց կորալ", "#F08080"), - ("Բաց մանուշակագույն", "#EE82EE"), - ("Բաց մոխրագույն թերթաքար", "#778899"), - ("Բաց մոխրագույն", "#D3D3D3"), - ("Բաց նշագույն", "#FFEBCD"), - ("Բաց պողպատե կապույտ", "#B0C4DE"), - ("Բաց սաղմոնագույն", "#FFA07A"), - ("Բաց վարդագույն", "#FFB6C1"), - ("Բեժ", "#F5F5DC"), - ("Բոսորագույն", "#DC143C"), - ("Գարնանային կանաչ", "#00FF7F"), - ("Գեյնսբորրո", "#DCDCDC"), - ("Գունատ կանաչ", "#98FB98"), - ("Գունատ կարմիր մանուշակագույն", "#DB7093"), - ("Գունատ ոսկեգույն", "#EEE8AA"), - ("Գունատ փիրուզագույն", "#AFEEEE"), - ("Գրասենյակային կանաչ", "#008000"), - ("Դարչնագույն ավազ", "#F4A460"), - ("Դարչնագույն", "#964B00"), - ("Դեղին", "#FFFF00"), - ("Դեղձի կրեմ", "#FFDAB9"), - ("Դեղնականաչ", "#9ACD3"), - ("Դոդջերս կապույտ", "#1E90FF"), - ("Եգիպտացորենի մազիկներ", "#FFF8DC"), - ("Երկնագույն մառախուղ", "#F0FFFF"), - ("Երկնագույն", "#87CEEB"), - ("Զինվորական կանաչ", "#6B8E23"), - ("Թամբի դարչնագույն", "#8B4513"), - ("Թեժ վարդագույն", "#FF69B4"), - ("Թուխ", "#D2B48C"), - ("Ինդիգո", "#4B0082"), - ("Լայմի կանաչ", "#32CD32"), - ("Լավանդ", "#E6E6FA"), - ("Լոլիկ", "#FF6347"), - ("Խակի", "#F0E68C"), - ("Խոլորձագույն", "#DA70D6"), - ("Ծխագույն", "#F5F5F5"), - ("Ծովախեցի", "#FFF5EE"), - ("Ծովակնագույն", "#7FFFD4"), - ("Ծովային կանաչ", "#2E8B57"), - ("Կադետների կապույտ", "#5F9EA0"), - ("Կաթնագույն", "#FFFAF0"), - ("Կակաոյի դարչնագույն", "#D2691E"), - ("Կանաչ", "#00FF00"), - ("Կանաչադեղին", "#ADFF2F"), - ("Կապույտ թերթաքար", "#6A5ACD"), - ("Կապույտ մանուշակագույն", "#8A2BE2"), - ("Կապույտ փոշի", "#B0E0E6"), - ("Կապույտ", "#0000FF"), - ("Կապտականաչ", "#00FFFF"), - ("Կարմիր դարչնագույն", "#A52A2A"), - ("Կարմիր լավանդ", "#FFF0F5"), - ("Կարմիր մանուշակագույն", "#C71585"), - ("Կարմիր", "#FF0000"), - ("Կեսգիշերային կապույտ", "#191970"), - ("Կիտրոնի շիֆոն", "#FFFACD"), - ("Կորալ", "#FF7F50"), - ("Հարած պապայա", "#FFEFD5"), - ("Հին ժանյակ", "#FDF5E6"), - ("Հնաոճ սպիտակ", "#FAEBD7"), - ("Հնդկական կարմիր", "#CD5C5C"), - ("Հրակայուն աղյուս", "#B22222"), - ("Ձիթապտղի գույն", "#808000"), - ("Ձյունաճերմակ", "#FFFAFA"), - ("Մանուշակագույն", "#800080"), - ("Մեղրացող սեխ", "#F0FFF0"), - ("Միջին գարնանային կանաչ", "#00FA9A"), - ("Միջին խոլորձագույն", "#BA55D3"), - ("Միջին ծովակնագույն", "#66CDAA"), - ("Միջին ծովային կանաչ", "#3CB371"), - ("Միջին կապույտ թերթաքար", "#7B68EE"), - ("Միջին կապույտ", "#0000CD"), - ("Միջին կապտականաչ", "#9370DB"), - ("Միջին փիրուզագույն", "#48D1CC"), - ("Մոխրագույն թերթաքար", "#708090"), - ("Մոխրագույն", "#808080"), - ("Մոկասին", "#FFE4B5"), - ("Մուգ երկնագույն", "#00BFFF"), - ("Մուգ խակի", "#BDB76B"), - ("Մուգ խոլորձագույն", "#9932CC"), - ("Մուգ ծովային կանաչ", "#8FBC8F"), - ("Մուգ կանաչ", "#006400"), - ("Մուգ կապույտ թերթաքար", "#483D8B"), - ("Մուգ կապույտ", "#00008B"), - ("Մուգ կապտականաչ", "#008080"), - ("Մուգ կարմիր", "#8B0000"), - ("Մուգ ձիթապտղի կանաչ", "#556B2F"), - ("Մուգ մանուշակագույն", "#9400D3"), - ("Մուգ մոխրագույն թերթաքար", "#2F4F4F"), - ("Մուգ մոխրագույն", "#696969"), - ("Մուգ մոխրագույն", "#A9A9A9"), - ("Մուգ նարնջագույն", "#FF8C00"), - ("Մուգ ոսկեգույն", "#B8860B"), - ("Մուգ սաղմոնագույն", "#E9967A"), - ("Մուգ վառ մանուշակագույն", "#8B008B"), - ("Մուգ վարդագույն", "#FF1493"), - ("Մուգ փիրուզագույն", "#00CED1"), - ("Նավահո սպիտակ", "#FFDEAD"), - ("Նավատորմի կապույտ", "#000080"), - ("Նարնջագույն կարմիր", "#FF4500"), - ("Նարնջագույն", "#FFA500"), - ("Նշագույն", "#FFE4C4"), - ("Շագանակագույն", "#800000"), - ("Շարտրուզ", "#7FFF00"), - ("Ոսկեգույն ձող", "#DAA520"), - ("Ոսկեգույն", "#FFD700"), - ("Պերու", "#CD853F"), - ("Պողպատե կապույտ", "#4682B4"), - ("Սալոր", "#DDA0DD"), - ("Սաղմոնագույն", "#FA8072"), - ("Սիենա", "#A0522D"), - ("Սիզամարգի կանաչ", "#7CFC00"), - ("Սպիտակ ստվեր", "#F8F8FF"), - ("Սպիտակ", "#FFFFFF"), - ("Սև", "#000000"), - ("Վառ մանուշակագույն", "#FF00FF"), - ("Վարդագույն", "#FFC0CB"), - ("Վարդագույն", "#FFE4E1"), - ("Վարդադարչնագույն", "#BC8F8F"), - ("Վուշ", "#FAF0E6"), - ("Տատասկ", "#D8BFD8"), - ("Տերեփուկի կապույտ", "#6495ED"), - ("Ցորենագույն", "#F5DEB3"), - ("Փիրուզագույն", "#40E0D0"), - ("Փխրուն փայտ", "#DEB887"), - ) - ) - - safe_colors = ( - "սև", - "շագանակագույն", - "կանաչ", - "նավատորմի կապույտ", - "ձիթապտղի գույն", - "մանուշակագույն", - "մուգ կապտականաչ", - "լայմ", - "կապույտ", - "արծաթագույն", - "մոխրագույն", - "դեղին", - "վառ մանուշակագույն", - "կապտականաչ", - "սպիտակ", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/hy_AM/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/hy_AM/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2482f58..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/hy_AM/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/id_ID/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/id_ID/__init__.py deleted file mode 100644 index 8e8fe6d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/id_ID/__init__.py +++ /dev/null @@ -1,60 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """Implement color provider for ``id_ID`` locale. - - Sources: - - https://id.wikipedia.org/wiki/Daftar_warna - """ - - all_colors = OrderedDict( - ( - ("Abu-abu", "#808080"), - ("Biru", "#0000FF"), - ("Biru dongker", "#00008B"), - ("Biru laut", "#0000CD"), - ("Biru muda", "#ADD8E6"), - ("Coklat", "#A52A2A"), - ("Coklat tua", "#8B4513"), - ("Emas", "#FFD700"), - ("Hijau", "#008000"), - ("Hijau muda", "#90EE90"), - ("Hijau tua", "#006400"), - ("Hitam", "#000000"), - ("Jingga", "#FFA500"), - ("Kuning", "#FFFF00"), - ("Koral", "#FF7F50"), - ("Magenta", "#FF00FF"), - ("Merah", "#FF0000"), - ("Merah marun", "#800000"), - ("Merah jambu", "#FFC0CB"), - ("Merah bata", "#B22222"), - ("Perak", "#C0C0C0"), - ("Nila", "#000080"), - ("Putih", "#FFFFFF"), - ("Ungu", "#800080"), - ("Ungu tua", "#4B0082"), - ("Zaitun", "#808000"), - ) - ) - - safe_colors = ( - "putih", - "hitam", - "merah", - "hijau", - "kuning", - "biru", - "ungu", - "abu-abu", - "coklat", - "perak", - "emas", - "pink", - "oranye", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/id_ID/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/id_ID/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 514011e..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/id_ID/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/ka_GE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/ka_GE/__init__.py deleted file mode 100644 index c1ed223..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/ka_GE/__init__.py +++ /dev/null @@ -1,92 +0,0 @@ -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/.venv/lib/python3.12/site-packages/faker/providers/color/ka_GE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/ka_GE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 903875b..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/ka_GE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/pt_BR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/pt_BR/__init__.py deleted file mode 100644 index de682ef..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/pt_BR/__init__.py +++ /dev/null @@ -1,261 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """Implement color provider for ``pt_BR`` locale.""" - - all_colors = OrderedDict( - ( - ("Açafrão", "#F4C430"), - ("Água-marinha média", "#66CDAA"), - ("Água-marinha", "#7FFFD4"), - ("Água", "#00FFFF"), - ("Alizarina", "#E32636"), - ("Amarelo brasilis", "#ECDB00"), - ("Amarelo claro", "#FFFFE0"), - ("Amarelo creme", "#ECD690"), - ("Amarelo escuro", "#F2B73F"), - ("Amarelo esverdeado", "#9ACD32"), - ("Amarelo esverdeado", "#ADFF2F"), - ("Amarelo ouro claro", "#FAFAD2"), - ("Amarelo queimado", "#EEAD2D"), - ("Amarelo", "#FFFF00"), - ("Âmbar", "#FFBF00"), - ("Ameixa", "#DDA0DD"), - ("Amêndoa", "#FFEBCD"), - ("Ametista", "#9966CC"), - ("Aspargo", "#7BA05B"), - ("Azul aço claro", "#B0C4DE"), - ("Azul aço", "#4682B4"), - ("Azul alice", "#F0F8FF"), - ("Azul ardósia claro", "#8470FF"), - ("Azul ardósia escuro", "#483D8B"), - ("Azul ardósia médio", "#7B68EE"), - ("Azul ardósia", "#6A5ACD"), - ("Azul areado", "#B8CAD4"), - ("Azul brasilis brilhante", "#09ACDB"), - ("Azul brasilis", "#00BDCE"), - ("Azul cadete", "#5F9EA0"), - ("Azul camarada", "#054F77"), - ("Azul celeste brilhante", "#007FFF"), - ("Azul celeste pernambucano", "#00A4CD"), - ("Azul celeste", "#F0FFFF"), - ("Azul céu claro", "#87CEFA"), - ("Azul céu profundo", "#00BFFF"), - ("Azul céu", "#87CEEB"), - ("Azul claro", "#ADD8E6"), - ("Azul cobalto", "#0047AB"), - ("Azul escuro", "#00008B"), - ("Azul flor de milho", "#6495ED"), - ("Azul força aérea", "#5D8AA8"), - ("Azul furtivo", "#1E90FF"), - ("Azul manteiga", "#A6AA3E"), - ("Azul marinho", "#120A8F"), - ("Azul médio", "#0000CD"), - ("Azul meia-noite", "#191970"), - ("Azul petróleo", "#084D6E"), - ("Azul pólvora", "#B0E0E6"), - ("Azul real", "#0000DD"), - ("Azul taparuere", "#248EFF"), - ("Azul turquesa brilhante", "#00DDFF"), - ("Azul turquesa", "#00CCEE"), - ("Azul violeta", "#8A2BE2"), - ("Azul", "#0000FF"), - ("Bege", "#F5F5DC"), - ("Bordô", "#800000"), - ("Borgonha", "#900020"), - ("Branco antigo", "#FAEBD7"), - ("Branco fantasma", "#F8F8FF"), - ("Branco floral", "#FFFAF0"), - ("Branco fumaça", "#F5F5F5"), - ("Branco navajo", "#FFDEAD"), - ("Branco", "#FFFFFF"), - ("Brasil", "#A7F432"), - ("Bronze", "#CD7F32"), - ("Caqui escuro", "#BDB76B"), - ("Caqui", "#F0E68C"), - ("Caramelo", "#8B5742"), - ("Cardo", "#D8BFD8"), - ("Carmesim", "#DC143C"), - ("Carmim carnáceo", "#960018"), - ("Carmim clássico", "#992244"), - ("Carmim", "#712F26"), - ("Castanho avermelhado", "#8B0000"), - ("Castanho claro", "#D2B48C"), - ("Cenoura", "#ED9121"), - ("Cereja Hollywood", "#F400A1"), - ("Cereja", "#DE3163"), - ("Chocolate", "#D2691E"), - ("Ciano claro", "#E0FFFF"), - ("Ciano escuro", "#008B8B"), - ("Ciano", "#00FFFF"), - ("Cinza ardósia claro", "#778899"), - ("Cinza ardósia escuro", "#2F4F4F"), - ("Cinza ardósia", "#708090"), - ("Cinza claro", "#D3D3D3"), - ("Cinza escuro", "#A9A9A9"), - ("Cinza fosco", "#696969"), - ("Cinza médio", "#DCDCDC"), - ("Cinza", "#808080"), - ("Cobre", "#B87333"), - ("Concha", "#FFF5EE"), - ("Coral claro", "#F08080"), - ("Coral", "#FF7F50"), - ("Couro", "#F0DC82"), - ("Creme de marisco", "#FFE4C4"), - ("Creme de menta", "#F5FFFA"), - ("Creme", "#FFFDD0"), - ("Dourado escuro", "#B8860B"), - ("Dourado pálido", "#EEE8AA"), - ("Dourado", "#DAA520"), - ("Ébano", "#555D50"), - ("Eminência", "#6C3082"), - ("Escarlate", "#FF2400"), - ("Esmeralda", "#50C878"), - ("Eucalipto", "#44D7A8"), - ("Fandango", "#B53389"), - ("Feldspato", "#FDD5B1"), - ("Ferrugem", "#B7410E"), - ("Flerte", "#A2006D"), - ("Fúcsia", "#FF00FF"), - ("Fuligem", "#3D2B1F"), - ("Glicínia", "#C9A0DC"), - ("Glitter", "#E6E8FA"), - ("Grená", "#831D1C"), - ("Heliotrópio", "#DF73FF"), - ("Herbal", "#2E8B57"), - ("Independência", "#4C516D"), - ("Índigo", "#4B0082"), - ("Iris", "#5A4FCF"), - ("Jade", "#00A86B"), - ("Jambo", "#FF4500"), - ("Jasmine", "#F8DE7E"), - ("Kiwi", "#8EE53F"), - ("Laranja claro", "#FFB84D"), - ("Laranja escuro", "#FF8C00"), - ("Laranja", "#FFA500"), - ("Lavanda avermelhada", "#FFF0F5"), - ("Lavanda", "#E6E6FA"), - ("Lilás", "#C8A2C8"), - ("Lima", "#FDE910"), - ("Limão", "#00FF00"), - ("Linho", "#FAF0E6"), - ("Madeira", "#DEB887"), - ("Magenta escuro", "#8B008B"), - ("Magenta", "#FF00FF"), - ("Malva", "#E0B0FF"), - ("Mamão batido", "#FFEFD5"), - ("Maná", "#F0FFF0"), - ("Marfim", "#FFFFF0"), - ("Marrom amarelado", "#F4A460"), - ("Marrom claro", "#A52A2A"), - ("Marrom rosado", "#BC8F8F"), - ("Marrom sela", "#8B4513"), - ("Marrom", "#964B00"), - ("Milho Claro", "#FFF8DC"), - ("Milho", "#FBEC5D"), - ("Mocassim", "#FFE4B5"), - ("Mostarda", "#FFDB58"), - ("Naval", "#000080"), - ("Neve", "#FFFAFA"), - ("Nyanza", "#E9FFDB"), - ("Ocre", "#CC7722"), - ("Oliva escura", "#556B2F"), - ("Oliva parda", "#6B8E23"), - ("Oliva", "#808000"), - ("Orquídea escura", "#9932CC"), - ("Orquídea média", "#BA55D3"), - ("Orquídea", "#DA70D6"), - ("Ouro", "#FFD700"), - ("Pardo escuro", "#CC6600"), - ("Pardo", "#CD853F"), - ("Pêssego", "#FFDAB9"), - ("Prata", "#C0C0C0"), - ("Preto", "#000000"), - ("Púrpura média", "#9370DB"), - ("Púrpura", "#800080"), - ("Quantum", "#111111"), - ("Quartzo", "#51484F"), - ("Renda antiga", "#FDF5E6"), - ("Rosa amoroso", "#CD69CD"), - ("Rosa brilhante", "#FF007F"), - ("Rosa Choque", "#FC0FC0"), - ("Rosa claro", "#FFB6C1"), - ("Rosa danação", "#DA69A1"), - ("Rosa embaçado", "#FFE4E1"), - ("Rosa forte", "#FF69B4"), - ("Rosa profundo", "#FF1493"), - ("Rosa", "#FFCBDB"), - ("Roxo brasilis", "#8A008A"), - ("Roxo", "#993399"), - ("Rútilo", "#6D351A"), - ("Salmão claro", "#FFA07A"), - ("Salmão escuro", "#E9967A"), - ("Salmão", "#FA7F72"), - ("Sépia", "#705714"), - ("Siena", "#FF8247"), - ("Tangerina", "#F28500"), - ("Terracota", "#E2725B"), - ("Tijolo refratário", "#B22222"), - ("Tomate", "#FF6347"), - ("Triássico", "#FF2401"), - ("Trigo", "#F5DEB3"), - ("Turquesa escura", "#00CED1"), - ("Turquesa média", "#48D1CC"), - ("Turquesa pálida", "#AFEEEE"), - ("Turquesa", "#40E0D0"), - ("Urucum", "#EC2300"), - ("Verde amarelado", "#9ACD32"), - ("Verde claro", "#90EE90"), - ("Verde escuro", "#006400"), - ("Verde espectro", "#00FF00"), - ("Verde floresta", "#228B22"), - ("Verde fluorescente", "#CCFF33"), - ("Verde grama", "#7CFC00"), - ("Verde lima", "#32CD32"), - ("Verde mar claro", "#20B2AA"), - ("Verde mar escuro", "#8FBC8F"), - ("Verde mar médio", "#3CB371"), - ("Verde militar", "#78866B"), - ("Verde pálido", "#98FB98"), - ("Verde Paris", "#7FFF00"), - ("Verde primavera médio", "#00FA9A"), - ("Verde primavera", "#00FF7F"), - ("Verde-azulado", "#008080"), - ("Verde", "#008000"), - ("Vermelho enegrecido", "#550000"), - ("Vermelho escuro", "#8B0000"), - ("Vermelho indiano", "#CD5C5C"), - ("Vermelho violeta médio", "#C71585"), - ("Vermelho violeta pálido", "#DB7093"), - ("Vermelho violeta", "#D02090"), - ("Vermelho", "#FF0000"), - ("Violeta claro", "#F8CBF8"), - ("Violeta escuro", "#9400D3"), - ("Violeta", "#EE82EE"), - ("Zinco", "#E2DDF0"), - ) - ) - - safe_colors = ( - "preto", - "marrom", - "verde", - "azul escuro", - "verde escuro", - "roxo", - "laranja", - "verde claro", - "azul", - "rosa", - "violeta", - "cinza", - "amarelo", - "magenta", - "ciano", - "branco", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/pt_BR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/pt_BR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 82dbd8d..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/pt_BR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/ru_RU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/ru_RU/__init__.py deleted file mode 100644 index aed6348..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/ru_RU/__init__.py +++ /dev/null @@ -1,86 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """Implement color provider for ``ru_RU`` 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"), - ) - ) - - safe_colors = ( - "черный", - "бордовый", - "зеленый", - "оливковый", - "пурпурный", - "teal", - "lime", - "синий", - "серебряный", - "серый", - "желтый", - "фуксия", - "белый", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/ru_RU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/ru_RU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index c8427ec..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/ru_RU/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/sk_SK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/sk_SK/__init__.py deleted file mode 100644 index ec5738e..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/sk_SK/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -from .. import Provider as ColorProvider - - -class Provider(ColorProvider): - """Implement color provider for ``sk_SK`` locale.""" - - safe_colors = ( - "čierna", - "gaštanová", - "zelená", - "námornícka", - "olivová", - "fialová", - "zelenomodrá", - "limetková", - "modrá", - "strieborná", - "sivá", - "žltá", - "fuchsiová", - "aquamarinová", - "biela", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/sk_SK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/sk_SK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index bcfb01f..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/sk_SK/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/th_TH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/th_TH/__init__.py deleted file mode 100644 index 08d8797..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/th_TH/__init__.py +++ /dev/null @@ -1,52 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """Implement color provider for ``th_TH`` locale. - - Sources: - - https://th.wikipedia.org/wiki/รายชื่อสี - """ - - all_colors = OrderedDict( - ( - ("สีดำ", "#000000"), - ("สีน้ำเงินเขียว", "#0095B6"), - ("สีน้ำเงินม่วง", "#8A2BE2"), - ("สีทองแดง", "#CD7F32"), - ("สีน้ำตาล", "#964B00"), - ("สีกาแฟ", "#6F4E37"), - ("สีทอง", "#FFD700"), - ("สีเทา", "#808080"), - ("สีเขียว", "#00FF00"), - ("สีหยก", "#00A86B"), - ("สีส้ม", "#FFA500"), - ("สีส้มแดง", "#FF4500"), - ("สีออร์คิด", "#DA70D6"), - ("สีชมพู", "#FFC0CB"), - ("สีม่วง", "#800080"), - ("สีแดง", "#FF0000"), - ("สีเงิน", "#C0C0C0"), - ("สีขาว", "#FFFFFF"), - ("สีเหลือง", "#FFFF00"), - ) - ) - - safe_colors = ( - "สีดำ", - "สีน้ำตาล", - "สีทอง", - "สีเขียว", - "สีส้ม", - "สีชมพู", - "สีม่วง", - "สีเงิน", - "สีแดง", - "สีเงิน", - "สีขาว", - "สีเหลือง", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/th_TH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/th_TH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 953c718..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/th_TH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/uk_UA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/uk_UA/__init__.py deleted file mode 100644 index 9cb373e..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/uk_UA/__init__.py +++ /dev/null @@ -1,222 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - - -class Provider(ColorProvider): - """Implement color provider for ``uk_UA`` locale. - - Sources: - - https://uk.wikipedia.org/wiki/Список_кольорів - """ - - all_colors = OrderedDict( - ( - ("Абрикосовий", "#FBCEB1"), - ("Аквамариновий", "#7FFFD4"), - ("Алізариновий червоний", "#E32636"), - ("Амарантовий", "#E52B50"), - ("Амарантово-рожевий", "#F19CBB"), - ("Аметистовий", "#9966CC"), - ("Андроїдний зелений", "#A4C639"), - ("Арсеновий", "#3B444B"), - ("Атомний мандаріновий", "#FF9966"), - ("Багряний", "#FF2400"), - ("Баклажановий", "#990066"), - ("Барвінковий", "#CCCCFF"), - ("Бежевий", "#F5F5DC"), - ("Берлінська лазур", "#003153"), - ("Блаватний", "#6495ED"), - ("Блакитний", "#AFEEEE"), - ("Блакитний Брандейса", "#0070FF"), - ("Блакитно-зелений", "#00DDDD"), - ("Блакитно-фіолетовий", "#8A2BE2"), - ("Блідий рожево-ліловий", "#996666"), - ("Блідо-брунатний", "#987654"), - ("Блідо-волошковий", "#ABCDEF"), - ("Блідо-карміновий", "#AF4035"), - ("Блідо-каштановий", "#DDADAF"), - ("Блідо-пурпуровий", "#F984E5"), - ("Блідо-пісочний", "#DABDAB"), - ("Блідо-рожевий", "#FADADD"), - ("Болотний", "#ACB78E"), - ("Бронзовий", "#CD7F32"), - ("Брунатний", "#964B00"), - ("Брунато-малиновий", "#800000"), - ("Будяковий", "#D8BFD8"), - ("Бузковий", "#C8A2C8"), - ("Бургундський", "#900020"), - ("Бурий", "#755A57"), - ("Бурштиновий", "#FFBF00"), - ("Білий", "#FFFFFF"), - ("Білий навахо", "#FFDEAD"), - ("Бірюзовий", "#30D5C8"), - ("Бістр", "#3D2B1F"), - ("Вода пляжа Бонді", "#0095B6"), - ("Вохра", "#CC7722"), - ("Відбірний жовтий", "#FFBA00"), - ("Візантійський", "#702963"), - ("Гарбуз", "#FF7518"), - ("Гарячо-рожевий", "#FC0FC0"), - ("Геліотроп", "#DF73FF"), - ("Глибокий фіолетовий", "#423189"), - ("Глицінія", "#C9A0DC"), - ("Грушевий", "#D1E231"), - ("Гумігут", "#E49B0F"), - ("Гірчичний", "#FFDB58"), - ("Дерева", "#79443B"), - ("Джинсовий", "#1560BD"), - ("Діамантово-рожевий", "#FF55A3"), - ("Жовтий", "#FFFF00"), - ("Жовто-зелений", "#ADFF2F"), - ("Жовто-персиковий", "#FADFAD"), - ("Захисний синій", "#1E90FF"), - ("Зелена весна", "#00FF7F"), - ("Зелена мʼята", "#98FF98"), - ("Зелена сосна", "#01796F"), - ("Зелене море", "#2E8B57"), - ("Зелений", "#00FF00"), - ("Зелений армійський", "#4B5320"), - ("Зелений мох", "#ADDFAD"), - ("Зелений папороть", "#4F7942"), - ("Зелений чай", "#D0F0C0"), - ("Зелено-сірий чай", "#CADABA"), - ("Зеленувато-блакитний", "#008080"), - ("Золотаво-березовий", "#DAA520"), - ("Золотий", "#FFD700"), - ("Золотисто-каштановий", "#6D351A"), - ("Індиго", "#4B0082"), - ("Іржавий", "#B7410E"), - ("Кардинал (колір)", "#C41E3A"), - ("Карміновий", "#960018"), - ("Каштановий", "#CD5C5C"), - ("Кобальтовий", "#0047AB"), - ("Колір жовтого шкільного автобуса", "#FFD800"), - ("Колір засмаги", "#D2B48C"), - ("Колір морської піни", "#FFF5EE"), - ("Колір морської хвилі", "#00FFFF"), - ("Кораловий", "#FF7F50"), - ("Королівський синій", "#4169E1"), - ("Кремовий", "#FFFDD0"), - ("Кукурудзяний", "#FBEC5D"), - ("Кіновар", "#FF4D00"), - ("Лавандний", "#E6E6FA"), - ("Лазуровий", "#007BA7"), - ("Лазурово-синій", "#2A52BE"), - ("Лайм", "#CCFF00"), - ("Латунний", "#B5A642"), - ("Лимонний", "#FDE910"), - ("Лимонно-кремовий", "#FFFACD"), - ("Лляний", "#EEDC82"), - ("Лляний", "#FAF0E6"), - ("Лососевий", "#FF8C69"), - ("Ліловий", "#DB7093"), - ("Малахітовий", "#0BDA51"), - ("Малиновий", "#DC143C"), - ("Мандариновий", "#FFCC00"), - ("Мисливський", "#004225"), - ("Морквяний", "#ED9121"), - ("Мідний", "#B87333"), - ("Міжнародний помаранчевий", "#FF4F00"), - ("Нефритовий", "#00A86B"), - ("Ніжно-блакитний", "#E0FFFF"), - ("Ніжно-оливковий", "#6B8E23"), - ("Ніжно-рожевий", "#FB607F"), - ("Оливковий", "#808000"), - ("Опівнічно-синій", "#003366"), - ("Орхідея", "#DA70D6"), - ("Палена сіена", "#E97451"), - ("Палений оранжевий", "#CC5500"), - ("Панг", "#C7FCEC"), - ("Паросток папаї", "#FFEFD5"), - ("Пастельно-зелений", "#77DD77"), - ("Пастельно-рожевий", "#FFD1DC"), - ("Персиковий", "#FFE5B4"), - ("Перський синій", "#6600FF"), - ("Помаранчевий", "#FFA500"), - ("Помаранчево-персиковий", "#FFCC99"), - ("Помаранчево-рожевий", "#FF9966"), - ("Пурпурний", "#FF00FF"), - ("Пурпуровий", "#660099"), - ("Пшеничний", "#F5DEB3"), - ("Пісочний колір", "#F4A460"), - ("Рожевий", "#FFC0CB"), - ("Рожевий Маунтбеттена", "#997A8D"), - ("Рожево-лавандний", "#FFF0F5"), - ("Рожево-ліловий", "#993366"), - ("Салатовий", "#7FFF00"), - ("Сангрія", "#92000A"), - ("Сапфіровий", "#082567"), - ("Світло-синій", "#007DFF"), - ("Сепія", "#704214"), - ("Сиваво-зелений", "#ACE1AF"), - ("Сигнально-помаранчевий", "#FF9900"), - ("Синя пил", "#003399"), - ("Синя сталь", "#4682B4"), - ("Сині яйця малинівки", "#00CCCC"), - ("Синій", "#0000FF"), - ("Синій (RYB)", "#0247FE"), - ("Синій (пігмент)", "#333399"), - ("Синій ВПС", "#5D8AA8"), - ("Синій Клейна", "#3A75C4"), - ("Сливовий", "#660066"), - ("Смарагдовий", "#50C878"), - ("Спаржевий", "#7BA05B"), - ("Срібний", "#C0C0C0"), - ("Старе золото", "#CFB53B"), - ("Сіра спаржа", "#465945"), - ("Сірий", "#808080"), - ("Сірий шифер", "#708090"), - ("Темний весняно-зелений", "#177245"), - ("Темний жовто-брунатний", "#918151"), - ("Темний зелений чай", "#BADBAD"), - ("Темний пастельно-зелений", "#03C03C"), - ("Темний хакі", "#BDB76B"), - ("Темний індиго", "#310062"), - ("Темно-аспідний сірий", "#2F4F4F"), - ("Темно-брунатний", "#654321"), - ("Темно-бірюзовий", "#116062"), - ("Темно-зелений", "#013220"), - ("Темно-зелений хакі", "#78866B"), - ("Темно-золотий", "#B8860B"), - ("Темно-карміновий", "#560319"), - ("Темно-каштановий", "#986960"), - ("Темно-кораловий", "#CD5B45"), - ("Темно-лазурний", "#08457E"), - ("Темно-лососевий", "#E9967A"), - ("Темно-мандариновий", "#FFA812"), - ("Темно-оливковий", "#556832"), - ("Темно-персиковий", "#FFDAB9"), - ("Темно-рожевий", "#E75480"), - ("Темно-синій", "#000080"), - ("Ультрамариновий", "#120A8F"), - ("Умбра", "#734A12"), - ("Умбра палена", "#8A3324"), - ("Фуксія", "#FF00FF"), - ("Фіолетовий", "#8B00FF"), - ("Фіолетово-баклажановий", "#991199"), - ("Фіолетово-червоний", "#C71585"), - ("Хакі", "#C3B091"), - ("Цинамоновий", "#7B3F00"), - ("Циннвальдит", "#EBC2AF"), - ("Ціан (колір)", "#00FFFF"), - ("Ціано-блакитний", "#F0F8FF"), - ("Червоний", "#FF0000"), - ("Червоно-буро-помаранчевий", "#CD5700"), - ("Червоновато-брунатний", "#CC8899"), - ("Чорний", "#000000"), - ("Шафрановий", "#F4C430"), - ("Шкіра буйвола", "#F0DC82"), - ("Шоколадний", "#D2691E"), - ("Яскраво-бурштиновий", "#FF7E00"), - ("Яскраво-бірюзовий", "#08E8DE"), - ("Яскраво-зелений", "#66FF00"), - ("Яскраво-зелений", "#40826D"), - ("Яскраво-рожевий", "#FF007F"), - ("Яскраво-фіолетовий", "#CD00CD"), - ("Ясно-брунатний", "#CD853F"), - ("Ясно-вишневий", "#DE3163"), - ("Ясно-лазуровий", "#007FFF"), - ("Ясно-лазуровий (веб)", "#F0FFFF"), - ) - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/uk_UA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/uk_UA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index aff308a..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/uk_UA/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/uz_UZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/uz_UZ/__init__.py deleted file mode 100644 index cb0f117..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/uz_UZ/__init__.py +++ /dev/null @@ -1,69 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """Implement color provider for ``uz_UZ`` locale.""" - - # Source: https://uz.wiktionary.org/wiki/Vikilug%E2%80%98at:Ranglar - all_colors = OrderedDict( - ( - ("Akvamarin", "#7FFFD4"), - ("Anor", "#800000"), - ("Apelsin", "#FFA000"), - ("Bej", "#F5F5DC"), - ("Binafsha", "#8B00FF"), - ("Bodom", "#FFEBCD"), - ("Bordo rang", "#800000"), - ("Doimiy sariq", "#FFBF00"), - ("Hantal", "#120A8F"), - ("Havo rang", "#000080"), - ("Indigo", "#4B0082"), - ("Jigar rang", "#964B00"), - ("Kul", "#808080"), - ("Kumush", "#C0C0C0"), - ("Koʻk", "#0000FF"), - ("Kremi", "#FFFDD0"), - ("Magenta", "#FF00FF"), - ("Malina", "#DC143C"), - ("Marjon", "#FF7F50"), - ("Moshrang", "#C3B091"), - ("Oq", "#FFFFFF"), - ("Oxra", "#CC7722"), - ("Oltin", "#FFD700"), - ("Pushti", "#FFC0CB"), - ("Qizil", "#FF0000"), - ("Qizgʻish binafsharang", "#E0B0FF"), - ("Qora", "#000000"), - ("Qizil-sariq", "#FF8C69"), - ("Samoviy", "#87CEFF"), - ("Sariq", "#FFFF00"), - ("Siyohrang", "#660099"), - ("Sepya", "#705714"), - ("Siena", "#FF8247"), - ("Suv", "#00FFFF"), - ("Terrakota", "#E2725B"), - ("Turkuaz", "#30D5C8"), - ("Ultramarin", "#120A8F"), - ("Yashil", "#00FF00"), - ("Zumrad", "#50C878"), - ) - ) - - safe_colors = ( - "Oq", - "Qora", - "Yashil", - "Ko'k", - "Qizil", - "Sariq", - "Pushti", - "Olov", - "Qaymoq", - "Laym", - "Kumush", - "Kulrang", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/uz_UZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/uz_UZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f80d066..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/uz_UZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/vi_VN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/vi_VN/__init__.py deleted file mode 100644 index 1d06fd0..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/vi_VN/__init__.py +++ /dev/null @@ -1,90 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """ - Implement color provider for ``vi_VN`` locale. - - #Sources: https://vi.wikipedia.org/wiki/Danh_s%C3%A1ch_m%C3%A0u - """ - - all_colors = OrderedDict( - ( - ("Trắng Antique", "#FAEBD7"), - ("Aquamarine", "#7FFFD4"), - ("Azure", "#F0FFFF"), - ("Beige", "#F5F5DC"), - ("Đen", "#000000"), - ("Xanh dương", "#0000FF"), - ("Xanh tím", "#8A2BE2"), - ("Nâu", "#A52A2A"), - ("Sô cô la", "#D2691E"), - ("San hô", "#FF7F50"), - ("Xanh hải quân", "#6495ED"), - ("Hồng đào", "#DC143C"), - ("Xanh đậm", "#00008B"), - ("Xanh biển đậm", "#008B8B"), - ("Xám đậm", "#A9A9A9"), - ("Xanh lá đậm", "#006400"), - ("Rêu đậm", "#BDB76B"), - ("Cam đậm", "#FF8C00"), - ("Đỏ đậm", "#8B0000"), - ("Xanh ngọc đậm", "#00CED1"), - ("Tím đậm", "#9400D3"), - ("Hồng đậm", "#FF1493"), - ("Xám xỉn", "#696969"), - ("Hồng fuchsia", "#FF00FF"), - ("Vàng", "#FFD700"), - ("Xám", "#808080"), - ("Xanh lá cây", "#008000"), - ("Xanh lá cây nhạt", "#ADFF2F"), - ("Hồng sáng", "#FF69B4"), - ("Indigo", "#4B0082"), - ("Ngà voi", "#FFFFF0"), - ("Rêu", "#F0E68C"), - ("Hồng lavender", "#FFF0F5"), - ("Xanh dương nhạt", "#ADD8E6"), - ("Xanh biển nhạt", "#E0FFFF"), - ("Xám sáng", "#D3D3D3"), - ("Xanh lá cây sáng", "#90EE90"), - ("Hồng sáng", "#FFB6C1"), - ("Xanh biển sáng", "#87CEFA"), - ("Vàng sáng", "#FFFFE0"), - ("Hạt Dẻ", "#800000"), - ("Cam", "#FFA500"), - ("Cam đỏ", "#FF4500"), - ("Xanh lá cây nhạt", "#98FB98"), - ("Xanh biển nhạt", "#AFEEEE"), - ("Hồng", "#FFC0CB"), - ("Tím", "#DDA0DD"), - ("Tím đậm", "#800080"), - ("Đỏ", "#FF0000"), - ("Xanh biển xanh", "#2E8B57"), - ("Bạc", "#C0C0C0"), - ("Xanh lục bảo", "#40E0D0"), - ("Tím violet", "#EE82EE"), - ("Trắng", "#FFFFFF"), - ("Vàng", "#FFFF00"), - ("Xanh lá cây vàng", "#9ACD32"), - ) - ) - - safe_colors = ( - "đen", - "đỏ rượu", - "xanh lá cây", - "rêu", - "tím", - "xanh biển", - "xanh chanh", - "xanh dương", - "bạc", - "xám", - "vàng", - "hồng fuchsia", - "trắng", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/vi_VN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/vi_VN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4eedef6..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/color/vi_VN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/__init__.py deleted file mode 100644 index cadb4a2..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/__init__.py +++ /dev/null @@ -1,531 +0,0 @@ -from typing import Tuple - -from .. import BaseProvider, ElementsType - -localized = True - - -class Provider(BaseProvider): - formats: ElementsType[str] = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}}-{{last_name}}", - "{{last_name}}, {{last_name}} and {{last_name}}", - ) - - company_suffixes: ElementsType[str] = ("Inc", "and Sons", "LLC", "Group", "PLC", "Ltd") - - catch_phrase_words: Tuple[ElementsType[str], ...] = ( - ( - "Adaptive", - "Advanced", - "Ameliorated", - "Assimilated", - "Automated", - "Balanced", - "Business-focused", - "Centralized", - "Cloned", - "Compatible", - "Configurable", - "Cross-group", - "Cross-platform", - "Customer-focused", - "Customizable", - "Decentralized", - "De-engineered", - "Devolved", - "Digitized", - "Distributed", - "Diverse", - "Down-sized", - "Enhanced", - "Enterprise-wide", - "Ergonomic", - "Exclusive", - "Expanded", - "Extended", - "Face-to-face", - "Focused", - "Front-line", - "Fully-configurable", - "Function-based", - "Fundamental", - "Future-proofed", - "Grass-roots", - "Horizontal", - "Implemented", - "Innovative", - "Integrated", - "Intuitive", - "Inverse", - "Managed", - "Mandatory", - "Monitored", - "Multi-channeled", - "Multi-lateral", - "Multi-layered", - "Multi-tiered", - "Networked", - "Object-based", - "Open-architected", - "Open-source", - "Operative", - "Optimized", - "Optional", - "Organic", - "Organized", - "Persevering", - "Persistent", - "Phased", - "Polarized", - "Pre-emptive", - "Proactive", - "Profit-focused", - "Profound", - "Programmable", - "Progressive", - "Public-key", - "Quality-focused", - "Reactive", - "Realigned", - "Re-contextualized", - "Re-engineered", - "Reduced", - "Reverse-engineered", - "Right-sized", - "Robust", - "Seamless", - "Secured", - "Self-enabling", - "Sharable", - "Stand-alone", - "Streamlined", - "Switchable", - "Synchronized", - "Synergistic", - "Synergized", - "Team-oriented", - "Total", - "Triple-buffered", - "Universal", - "Up-sized", - "Upgradable", - "User-centric", - "User-friendly", - "Versatile", - "Virtual", - "Visionary", - "Vision-oriented", - ), - ( - "24hour", - "24/7", - "3rdgeneration", - "4thgeneration", - "5thgeneration", - "6thgeneration", - "actuating", - "analyzing", - "asymmetric", - "asynchronous", - "attitude-oriented", - "background", - "bandwidth-monitored", - "bi-directional", - "bifurcated", - "bottom-line", - "clear-thinking", - "client-driven", - "client-server", - "coherent", - "cohesive", - "composite", - "context-sensitive", - "contextually-based", - "content-based", - "dedicated", - "demand-driven", - "didactic", - "directional", - "discrete", - "disintermediate", - "dynamic", - "eco-centric", - "empowering", - "encompassing", - "even-keeled", - "executive", - "explicit", - "exuding", - "fault-tolerant", - "foreground", - "fresh-thinking", - "full-range", - "global", - "grid-enabled", - "heuristic", - "high-level", - "holistic", - "homogeneous", - "human-resource", - "hybrid", - "impactful", - "incremental", - "intangible", - "interactive", - "intermediate", - "leadingedge", - "local", - "logistical", - "maximized", - "methodical", - "mission-critical", - "mobile", - "modular", - "motivating", - "multimedia", - "multi-state", - "multi-tasking", - "national", - "needs-based", - "neutral", - "next generation", - "non-volatile", - "object-oriented", - "optimal", - "optimizing", - "radical", - "real-time", - "reciprocal", - "regional", - "responsive", - "scalable", - "secondary", - "solution-oriented", - "stable", - "static", - "systematic", - "systemic", - "system-worthy", - "tangible", - "tertiary", - "transitional", - "uniform", - "upward-trending", - "user-facing", - "value-added", - "web-enabled", - "well-modulated", - "zero administration", - "zero-defect", - "zero tolerance", - ), - ( - "ability", - "access", - "adapter", - "algorithm", - "alliance", - "analyzer", - "application", - "approach", - "architecture", - "archive", - "artificial intelligence", - "array", - "attitude", - "benchmark", - "budgetary management", - "capability", - "capacity", - "challenge", - "circuit", - "collaboration", - "complexity", - "concept", - "conglomeration", - "contingency", - "core", - "customer loyalty", - "database", - "data-warehouse", - "definition", - "emulation", - "encoding", - "encryption", - "extranet", - "firmware", - "flexibility", - "focus group", - "forecast", - "frame", - "framework", - "function", - "functionalities", - "Graphic Interface", - "groupware", - "Graphical User Interface", - "hardware", - "help-desk", - "hierarchy", - "hub", - "implementation", - "info-mediaries", - "infrastructure", - "initiative", - "installation", - "instruction set", - "interface", - "Internet solution", - "intranet", - "knowledge user", - "knowledgebase", - "Local Area Network", - "leverage", - "matrices", - "matrix", - "methodology", - "middleware", - "migration", - "model", - "moderator", - "monitoring", - "moratorium", - "neural-net", - "open architecture", - "open system", - "orchestration", - "paradigm", - "parallelism", - "policy", - "portal", - "pricing structure", - "process improvement", - "product", - "productivity", - "project", - "projection", - "protocol", - "secured line", - "service-desk", - "software", - "solution", - "standardization", - "strategy", - "structure", - "success", - "superstructure", - "support", - "synergy", - "system engine", - "task-force", - "throughput", - "time-frame", - "toolset", - "utilization", - "website", - "workforce", - ), - ) - - bsWords: Tuple[ElementsType[str], ...] = ( - ( - "implement", - "utilize", - "integrate", - "streamline", - "optimize", - "evolve", - "transform", - "embrace", - "enable", - "orchestrate", - "leverage", - "reinvent", - "aggregate", - "architect", - "enhance", - "incentivize", - "morph", - "empower", - "envisioneer", - "monetize", - "harness", - "facilitate", - "seize", - "disintermediate", - "synergize", - "strategize", - "deploy", - "brand", - "grow", - "target", - "syndicate", - "synthesize", - "deliver", - "mesh", - "incubate", - "engage", - "maximize", - "benchmark", - "expedite", - "re-intermediate", - "whiteboard", - "visualize", - "repurpose", - "innovate", - "scale", - "unleash", - "drive", - "extend", - "engineer", - "revolutionize", - "generate", - "exploit", - "transition", - "e-enable", - "iterate", - "cultivate", - "matrix", - "productize", - "redefine", - "re-contextualize", - ), - ( - "clicks-and-mortar", - "value-added", - "vertical", - "proactive", - "robust", - "revolutionary", - "scalable", - "leading-edge", - "innovative", - "intuitive", - "strategic", - "e-business", - "mission-critical", - "sticky", - "one-to-one", - "24/7", - "end-to-end", - "global", - "B2B", - "B2C", - "granular", - "frictionless", - "virtual", - "viral", - "dynamic", - "24/365", - "best-of-breed", - "killer", - "magnetic", - "bleeding-edge", - "web-enabled", - "interactive", - "dot-com", - "back-end", - "real-time", - "efficient", - "front-end", - "distributed", - "seamless", - "extensible", - "turn-key", - "world-class", - "open-source", - "cross-platform", - "cross-media", - "synergistic", - "bricks-and-clicks", - "out-of-the-box", - "enterprise", - "integrated", - "impactful", - "wireless", - "transparent", - "next-generation", - "cutting-edge", - "user-centric", - "visionary", - "customized", - "ubiquitous", - "plug-and-play", - "collaborative", - "compelling", - "holistic", - "rich", - ), - ( - "synergies", - "web-readiness", - "paradigms", - "markets", - "partnerships", - "infrastructures", - "platforms", - "initiatives", - "channels", - "eyeballs", - "communities", - "ROI", - "solutions", - "e-tailers", - "e-services", - "action-items", - "portals", - "niches", - "technologies", - "content", - "vortals", - "supply-chains", - "convergence", - "relationships", - "architectures", - "interfaces", - "e-markets", - "e-commerce", - "systems", - "bandwidth", - "info-mediaries", - "models", - "mindshare", - "deliverables", - "users", - "schemas", - "networks", - "applications", - "metrics", - "e-business", - "functionalities", - "experiences", - "web services", - "methodologies", - ), - ) - - def company(self) -> str: - """ - :example: 'Acme Ltd' - """ - pattern: str = self.random_element(self.formats) - return self.generator.parse(pattern) - - def company_suffix(self) -> str: - """ - :example: 'Ltd' - """ - return self.random_element(self.company_suffixes) - - def catch_phrase(self) -> str: - """ - :example: 'Robust full-range hub' - """ - return " ".join([self.random_element(word_list) for word_list in self.catch_phrase_words]) - - def bs(self) -> str: - """ - :example: 'integrate extensible convergence' - """ - return " ".join([self.random_element(word_list) for word_list in self.bsWords]) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4dcc97e..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ar_DZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/ar_DZ/__init__.py deleted file mode 100644 index 67bd74e..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/ar_DZ/__init__.py +++ /dev/null @@ -1,80 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - """Company provider for ar_DZ locale (Algeria, Arabic-language).""" - - # Sources: - # - https://www.commerce.gov.dz/fr/choix-de-la-forme-juridique-de-votre-entreprise-1 - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "مجمع {{last_name}}", - "{{last_name}}", - ) - - company_suffixes = ( - "ش.ذ.م.م", - "ش.م.", - "م.ذ.م.م", - "ش.ت.", - "ش.ت.ب.", - "م.ع.", - "م.ع.ا.ت.", - ) - - catch_phrase_formats = ("{{catch_phrase_noun}} {{catch_phrase_verb}} {{catch_phrase_attribute}}",) - - nouns = ( - "الجودة", - "التميّز", - "الثقة", - "التطوير", - "النمو", - "الابتكار", - "الأداء", - "التقدّم", - "النجاح", - "الخدمة", - "الأمان", - "الشراكة", - ) - - verbs = ( - "للنجاح", - "للتطوير", - "للتقدّم", - "للابتكار", - "للبناء", - "للاستثمار", - "لتحقيق أهدافك", - "لإنجاز مشاريعك", - "للنهوض بالاقتصاد", - "لخدمة الوطن", - ) - - attributes = ( - "معاً", - "بكفاءة", - "بثقة", - "بامتياز", - "باستدامة", - "في خدمة الجزائر", - "نحو المستقبل", - "من أجل غدٍ أفضل", - "في قلب التنمية", - "بجودة عالية", - ) - - def catch_phrase(self) -> str: - pattern: str = self.random_element(self.catch_phrase_formats) - return self.generator.parse(pattern) - - def catch_phrase_noun(self) -> str: - return self.random_element(self.nouns) - - def catch_phrase_verb(self) -> str: - return self.random_element(self.verbs) - - def catch_phrase_attribute(self) -> str: - return self.random_element(self.attributes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ar_DZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/ar_DZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 73b5773..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/ar_DZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/az_AZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/az_AZ/__init__.py deleted file mode 100644 index 4d5ca34..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/az_AZ/__init__.py +++ /dev/null @@ -1,52 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{large_company}}", - ) - - large_companies = ( - "AZAL", - "Azergold", - "SOCAR", - "Socar Polymer", - "Global Export Fruits", - "Baku Steel Company", - "Azersun", - "Sun Food", - "Azərbaycan Şəkər İstehsalat Birliyi", - "Azərsu", - "Xəzər Dəniz Gəmiçiliyi", - "Azərenerji", - "Bakıelektrikşəbəkə", - "Azəralüminium", - "Bravo", - "Azərpambıq Aqrar Sənaye Kompleksi", - "CTS-Agro", - "Azərtütün Aqrar Sənaye Kompleksi", - "Azəripək", - "Azfruittrade", - "AF Holding", - "Azinko Holding", - "Gilan Holding", - "Azpetrol", - "Azərtexnolayn", - "Bakı Gəmiqayırma Zavodu", - "Gəncə Tekstil Fabriki", - "Mətanət A", - "İrşad Electronics", - ) - company_suffixes = ( - "ASC", - "QSC", - "MMC", - ) - - def large_company(self) -> str: - """ - :example: 'SOCAR' - """ - return self.random_element(self.large_companies) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/az_AZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/az_AZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a256837..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/az_AZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/bg_BG/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/bg_BG/__init__.py deleted file mode 100644 index c841413..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/bg_BG/__init__.py +++ /dev/null @@ -1,30 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}}", - ) - - company_suffixes = ( - "АД", - "AD", - "ADSITz", - "АДСИЦ", - "EAD", - "ЕАД", - "EOOD", - "ЕООД", - "ET", - "ET", - "OOD", - "ООД", - "KD", - "КД", - "KDA", - "КДА", - "SD", - "СД", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/bg_BG/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/bg_BG/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0f257b7..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/bg_BG/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/bn_BD/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/bn_BD/__init__.py deleted file mode 100644 index a4faa27..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/bn_BD/__init__.py +++ /dev/null @@ -1,640 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - """ - Implement company provider for ``bn_BD`` locale. - Sources of companies: - - https://en.wikipedia.org/wiki/List_of_companies_of_Bangladesh - """ - - companies = ( - "প্রাণ-আরএফএল গ্রুপ", - "আকিজ গ্রুপ", - "মেঘনা গ্রুপ অব ইন্ডাস্ট্রিজ", - "বসুন্ধরা গ্রুপ", - "ইস্পাহানি গ্রুপ", - "বাংলাদেশ মেশিন টুলস ফ্যাক্টরী", - "প্রগতি", - "ইউএস-বাংলা এয়ারলাইন্স", - "বিমান বাংলাদেশ এয়ারলাইনস", - "রিজেন্ট এয়ারওয়েজ", - "ইউনাইটেড এয়ারওয়েজ", - "নভোএয়ার", - "বেক্সিমকো গ্রুপ", - "নাভানা গ্ৰুপ", - "স্কয়ার গ্রুপ", - "ট্রান্সকম গ্রুপ", - "বেঙ্গল গ্রুপ", - "যমুনা গ্রুপ", - "নাসির গ্রুপ", - "ট্রান্সকম ডিজিটাল", - "স্কয়ার ইলেকট্রনিক্স", - "রহিম আফরোজ", - "ওয়ালটন", - "বাংলাদেশ ব্যাংক", - "অগ্রণী ব্যাংক", - "জনতা ব্যাংক", - "রূপালী ব্যাংক", - "সোনালী ব্যাংক", - "বাংলাদেশ ডেভেলপমেন্ট ব্যাংক লিমিটেড", - "বেসিক ব্যাংক লিমিটেড", - "আইএফআইসি ব্যাংক লিমিটেড", - "ইউনাইটেড কমার্শিয়াল ব্যাংক লিমিটেড", - "ইস্টার্ন ব্যাংক লিমিটেড", - "উত্তরা ব্যাংক", - "এনআরবি কমার্শিয়াল ব্যাংক লিমিটেড", - "এনআরবি গ্লোবাল ব্যাংক লিমিটেড", - "এনআরবি ব্যাংক লিমিটেড", - "এবি ব্যাংক লিমিটেড", - "এনসিসি ব্যাংক লিমিটেড", - "ওয়ান ব্যাংক লিমিটেড", - "ট্রাস্ট ব্যাংক লিমিটেড", - "ডাচ-বাংলা ব্যাংক লিমিটেড", - "দি ফারমার্স ব্যাংক লিমিটেড", - "ন্যাশনাল ব্যাংক লিমিটেড", - "ঢাকা ব্যাংক লিমিটেড", - "পূবালী ব্যাংক লিমিটেড", - "প্রাইম ব্যাংক লিমিটেড", - "প্রিমিয়ার ব্যাংক লিমিটেড", - "বাংলাদেশ কমার্স ব্যাংক লিমিটেড", - "ব্র্যাক ব্যাংক লিমিটেড", - "ব্যাংক এশিয়া লিমিটেড", - "মধুমতি ব্যাংক লিমিটেড", - "মার্কেন্টাইল ব্যাংক লিমিটেড", - "মিউচুয়াল ট্রাস্ট ব্যাংক", - "মিডল্যান্ড ব্যাংক লিমিটেড", - "মেঘনা ব্যাংক লিমিটেড", - "যমুনা ব্যাংক লিমিটেড", - "সাউথ ইস্ট ব্যাংক লিমিটেড", - "সাউথ বাংলা এগ্রিকালচার এন্ড কমার্স ব্যাংক লিমিটেড", - "সিটি ব্যাংক লিমিটেড", - "সীমান্ত ব্যাংক", - "স্ট্যান্ডার্ড ব্যাংক লিমিটেড", - "আইসিবি ইসলামিক ব্যাংক লিমিটেড", - "আল-আরাফাহ ইসলামী ব্যাংক লিমিটেড", - "ইউনিয়ন ব্যাংক লিমিটেড", - "ইসলামী ব্যাংক বাংলাদেশ লিমিটেড", - "এক্সিম ব্যাংক", - "ফার্স্ট সিকিউরিটিজ ইসলামী ব্যাংক লিমিটেড", - "শাহ্‌জালাল ইসলামী ব্যাংক লিমিটেড", - "সোশ্যাইল ইসলামী ব্যাংক লিমিটেড", - "এইচএসবিসি", - "ওরি ব্যাংক", - "কমার্শিয়াল ব্যাংক অব সিলন", - "ন্যাশনাল ব্যাংক অব পাকিস্তান", - "ব্যাংক আলফালাহ্", - "ভারতীয় স্টেট ব্যাংক", - "সিটিব্যাংক এনএ", - "স্ট্যান্ডার্ড চার্টার্ড ব্যাংক লিমিটেড", - "হাবিব ব্যাংক লিমিটেড", - "বাংলাদেশ কৃষি ব্যাংক", - "রাজশাহী কৃষি উন্নয়ন ব্যাংক", - "আনসার-ভিডিপি উন্নয়ন ব্যাংক", - "কর্মসংস্থান ব্যাংক", - "গ্রামীণ ব্যাংক", - "পল্লী সঞ্চয় ব্যাংক", - "জুবিলী ব্যাংক", - "প্রবাসী কল্যাণ ব্যাংক", - "রাইজ আপ ল্যাবস", - "এটিএন বাংলা", - "বাংলাভিশন", - "চ্যানেল আই (ইমপ্রেস টেলেফিল্ম লিমিটেড/চ্যানেল)", - "এনটিভি (বাংলাদেশ)", - "আরটিভি (বাংলাদেশ)", - "দেশ টিভি", - "ইন্ডিপেন্ডেন্ট টেলিভিশন", - "দৈনিক প্রথম আলো", - "দৈনিক ইত্তেফাক", - "দৈনিক ভোরের কাগজ", - "জাজ মাল্টিমিডিয়া", - "নয়ন-আপন প্রোডাকশন", - "প্যানারোমা মুভিজ", - "এসকে ফিল্মস", - "বেক্সিমকো ফার্মাসিউটিক্যালস", - "ইনসেপ্টা ফার্মাসিউটিক্যালস লিমিটেড", - "স্কয়ার ফার্মাসিটিক্যাল", - "অপসোনিন ফার্মা লিমিটেড", - "একমি ল্যাবরেটরিজ লিমিটেড", - "বাংলাদেশ শিপিং কর্পোরেশন", - "ডকইয়ার্ড অ্যান্ড ইঞ্জিনিয়ারিং ওয়ার্কস লিমিটেড", - "এফএমসি ডকইয়ার্ড", - "গ্রামীণফোন", - "টেলিটক", - "এয়ারটেল (বাংলাদেশ)", - "বাংলালিংক", - "রবি", - "বাংলাদেশ পাওয়ার গ্রিড কোম্পানি", - "ইউনাইটেড কমিউনিকেশন সার্ভিস", - ) - - company_suffixes = ( - "ইনকর্পোরেটেড", - "কর্পোরেশন", - "এন্ড সন্স", - "এন্ড ব্রাদার্স", - "এলএলসি", - "গ্রুপ", - "গ্রুপ অফ কোম্পানিজ", - "পিএলসি", - "লিমিটেড", - "প্রাইভেট লিমিটেড", - "এন্টারপ্রাইজ", - ) - - catch_phrase_words = ( - ( - "অভিযোজিত", - "উন্নত", - "উন্নীত", - "আত্তীকরণ", - "স্বয়ংক্রিয়", - "সুষম", - "ব্যবসা কেন্দ্রিক", - "কেন্দ্রীভূত", - "ক্লোন করা", - "উপযুক্ত", - "কনফিগারযোগ্য", - "ক্রস-গ্রুপ", - "ক্রস-প্ল্যাটফর্ম", - "গ্রাহকের দৃষ্টি নিবদ্ধ", - "কাস্টমাইজযোগ্য", - "বিকেন্দ্রীভূত", - "ডি-ইঞ্জিনিয়ারড", - "বিকশিত", - "ডিজিটাইজড", - "বিতরণ করা", - "বৈচিত্র্য", - "নিম্ন আকারের", - "উন্নত", - "এন্টারপ্রাইজ-ওয়াইড", - "অর্গোনমিক", - "এক্সক্লুসিভ", - "প্রসারিত", - "সম্প্রসারিত", - "মুখোমুখি", - "ফোকাসড", - "সামনের লাইন", - "সম্পূর্ণ কনফিগারযোগ্য", - "ফাংশন-ভিত্তিক", - "মৌলিক", - "ভবিষ্যত-প্রমাণ", - "তৃণমূল", - "অনুভূমিক", - "বাস্তবায়িত", - "উদ্ভাবনী", - "সমন্বিত", - "স্বজ্ঞাত", - "বিপরীত", - "পরিচালিত", - "বাধ্যতামূলক", - "পর্যবেক্ষণ করা", - "মাল্টি-চ্যানেলযুক্ত", - "মাল্টি-পার্শ্বিক", - "মাল্টি লেয়ারড", - "মাল্টি টায়ার্ড", - "নেটওয়ার্ক করা", - "বস্তু ভিত্তিক", - "ওপেন আর্কিটেক্টেড", - "মুক্ত উৎস", - "অপারেটিভ", - "অপ্টিমাইজ করা", - "ঐচ্ছিক", - "জৈব", - "সংগঠিত", - "অধ্যবসায়ী", - "অস্থির", - "পর্যায়ক্রমে", - "পোলারাইজড", - "প্রাক-অনুভব", - "প্রোঅ্যাকটিভ", - "লাভ কেন্দ্রিক", - "গভীর", - "প্রোগ্রামেবল", - "প্রগতিশীল", - "পাবলিক-কী", - "মান-কেন্দ্রিক", - "প্রতিক্রিয়াশীল", - "পুনরায় সংগঠিত", - "পুনরায় প্রাসঙ্গিক", - "পুনঃপ্রকৌশলী", - "কমানো", - "বিপরীত প্রকৌশলী", - "ডান মাপের", - "বলিষ্ঠ", - "বিরামহীন", - "সুরক্ষিত", - "স্ব-সক্ষম", - "ভাগযোগ্য", - "একা একা", - "প্রবাহিত", - "পরিবর্তনযোগ্য", - "সিঙ্ক্রোনাইজড", - "সিনারজিস্টিক", - "সমন্বিত", - "দল ভিত্তিক", - "মোট", - "ট্রিপল-বাফার", - "সর্বজনীন", - "উপরের আকার", - "আপগ্রেডযোগ্য", - "ব্যবহারকারীকেন্দ্রিক", - "ব্যবহারকারী বান্ধব", - "বহুমুখী", - "অপার্থিব", - "দূরদর্শী", - "দৃষ্টি-ভিত্তিক", - ), - ( - "২৪ ঘন্টা", - "২৪/৭", - "তৃতীয় প্রজন্ম", - "৪র্থ প্রজন্ম", - "৫ম প্রজন্ম", - "ষষ্ঠ প্রজন্ম", - "কার্যকর", - "বিশ্লেষণ", - "অসমমিত", - "অসিঙ্ক্রোনাস", - "মনোভাব-ভিত্তিক", - "পটভূমি", - "ব্যান্ডউইথ-নিরীক্ষণ করা", - "দ্বিমুখী", - "বিভক্ত", - "শেষের সারি", - "স্বচ্ছ চিন্তা", - "ক্লায়েন্ট-চালিত", - "ক্লায়েন্ট সার্ভার", - "সুসংগত", - "সমন্বিত", - "যৌগিক", - "প্রসঙ্গ-সংবেদনশীল", - "প্রসঙ্গ-ভিত্তিক", - "সামগ্রী ভিত্তিক", - "নিবেদিত", - "চাহিদা চালিত", - "শিক্ষামূলক", - "দিকনির্দেশক", - "বিচ্ছিন্ন", - "বিচ্ছিন্ন", - "গতিশীল", - "পরিবেশ কেন্দ্রিক", - "শক্তিকরণ", - "বেষ্টিত", - "সম-কিলড", - "কার্যনির্বাহী", - "স্পষ্ট", - "প্রবাহিত", - "ভ্রান্তি সহিষ্ণুতা", - "পুরোভূমি", - "নতুন চিন্তা", - "পূর্ণ পরিসরে", - "বিশ্বব্যাপী", - "গ্রিড-সক্রিয়", - "হিউরিস্টিক", - "উচ্চস্তর", - "সম্পূর্ণ", - "সমজাতীয়", - "মানব সম্পদ", - "হাইব্রিড", - "প্রভাবমূলক", - "ক্রমবর্ধমান", - "অভেদ্য", - "ইন্টারেক্টিভ", - "মধ্যবর্তী", - "নেতৃস্থানীয় প্রান্ত", - "স্থানীয়", - "লজিস্টিক", - "সর্বোচ্চ করা", - "পদ্ধতিগত", - "মিশন-সমালোচনা", - "মুঠোফোন", - "মডুলার", - "প্রেরণাদায়ক", - "মাল্টিমিডিয়া", - "মাল্টি-স্টেট", - "মাল্টি টাস্কিং", - "জাতীয়", - "প্রয়োজন ভিত্তিক", - "নিরপেক্ষ", - "পরবর্তী প্রজন্ম", - "অস্থির", - "অবজেক্ট ওরিয়েন্টেড", - "অনুকূল", - "অপ্টিমাইজ করা", - "আমূল", - "প্রকৃত সময়", - "পারস্পরিক", - "আঞ্চলিক", - "প্রতিক্রিয়াশীল", - "স্কেলযোগ্য", - "মাধ্যমিক", - "সমাধান ভিত্তিক", - "স্থিতিশীল", - "স্থির", - "পদ্ধতিগত", - "পদ্ধতিগত", - "সিস্টেম-যোগ্য", - "মূর্ত", - "তৃতীয়", - "ক্রান্তিকালীন", - "ইউনিফর্ম", - "উর্ধ্বমুখী প্রবণতা", - "ব্যবহারকারীর মুখোমুখি", - "মূল্য সংযোজন", - "ওয়েব-সক্ষম", - "ভালভাবে পরিমিত", - "শূন্য প্রশাসন", - "শূন্য ত্রুটি", - "শূন্য সহনশীলতা", - ), - ( - "ক্ষমতা", - "অ্যাক্সেস", - "অ্যাডাপ্টার", - "অ্যালগরিদম", - "জোট", - "বিশ্লেষক", - "আবেদন", - "পন্থা", - "স্থাপত্য", - "আর্কাইভ", - "কৃত্রিম বুদ্ধিমত্তা", - "অ্যারে", - "মনোভাব", - "মাপকাঠি", - "বাজেটারি ব্যবস্থাপনা", - "ক্ষমতা", - "ক্ষমতা", - "চ্যালেঞ্জ", - "সার্কিট", - "সহযোগিতা", - "জটিলতা", - "ধারণা", - "সমষ্টি", - "কমার্জেন্সি", - "মূল", - "ক্রেতা বিশ্বস্ততা", - "তথ্যশালা", - "তথ্য ভাণ্ডার", - "সংজ্ঞা", - "অনুকরণ", - "এনকোডিং", - "জোড়া লাগানো", - "এক্সট্রানেট", - "ফার্মওয়্যার", - "নমনীয়তা", - "ফোকাস গ্রুপ", - "পূর্বাভাস", - "ফ্রেম", - "ফ্রেমওয়ার্ক", - "ফাংশন", - "কার্যকারিতা", - "গ্রাফিক ইন্টারফেস", - "গ্রুপওয়্যার", - "গ্রাফিকাল ইউজার ইন্টারফেস", - "হার্ডওয়্যার", - "সাহায্য ডেস্ক", - "শ্রেণীবিন্যাস", - "হাব", - "বাস্তবায়ন", - "তথ্য মিডিয়ার", - "অবকাঠামো", - "উদ্যোগ", - "স্থাপন", - "নির্দেশনাবলী", - "ইন্টারফেস", - "ইন্টারনেট সমাধান", - "ইন্ট্রানেট", - "জ্ঞান ব্যবহারকারী", - "জ্ঞানভিত্তিক", - "স্থানীয় নেটওয়ার্ক", - "লিভারেজ", - "ম্যাট্রিস", - "ম্যাট্রিক্স", - "পদ্ধতি", - "মিডলওয়্যার", - "অভিবাসন", - "মডেল", - "মডারেটর", - "পর্যবেক্ষণ", - "স্থগিত", - "নিউরাল-নেট", - "উন্মুক্ত স্থাপত্য", - "মুক্ত ব্যবস্থা", - "অর্কেস্ট্রেশন", - "দৃষ্টান্ত", - "সমান্তরালতা", - "নীতি", - "পোর্টাল", - "মূল্যের কাঠামো", - "প্রক্রিয়ার উন্নতি", - "পণ্য", - "প্রমোদ", - "প্রকল্প", - "প্রক্ষেপণ", - "প্রটোকল", - "সুরক্ষিত লাইন", - "পরিষেবা ডেস্ক", - "সফটওয়্যার", - "সমাধান", - "প্রমিতকরণ", - "কৌশল", - "গঠন", - "সফলতা", - "উপরকাঠামো", - "সমর্থন", - "সিনার্জি", - "সিস্টেম ইঞ্জিন", - "বিশেষ কর্মীদল", - "থ্রুপুট", - "সময়সীমা", - "টুলসেট", - "ব্যবহার", - "ওয়েবসাইট", - "শ্রমিক", - ), - ) - - bsWords = ( - ( - "বাস্তবায়ন", - "ব্যবহার করুন", - "একীকরণ", - "স্ট্রিমলাইন", - "অপ্টিমাইজ করুন", - "বিকশিত", - "রূপান্তর", - "আলিঙ্গন", - "সক্ষম", - "অর্কেস্ট্রেট", - "লিভারেজ", - "পুনরাবিষ্কার", - "সমষ্টি", - "স্থপতি", - "বর্ধিত করা", - "উদ্দীপনা", - "রূপ", - "ক্ষমতায়ন", - "কল্পনাকারী", - "নগদীকরণ", - "কাজে লাগান", - "সহজতর করা", - "জব্দ", - "বিচ্ছিন্ন", - "সমন্বয় করা", - "কৌশল করা", - "মোতায়েন", - "ব্র্যান্ড", - "বড়", - "লক্ষ্য", - "সিন্ডিকেট", - "সংশ্লেষণ", - "বিলি করা", - "জাল", - "ইনকিউবেট", - "নিয়োগ", - "সর্বোচ্চ করুন", - "মাপকাঠি", - "ত্বরান্বিত করা", - "পুনরায় মধ্যবর্তী", - "হোয়াইটবোর্ড", - "ভিজ্যুয়ালাইজ", - "পুনঃউদ্দেশ্য", - "উদ্ভাবন", - "স্কেল", - "মুক্ত করা", - "ড্রাইভ", - "প্রসারিত করা", - "প্রকৌশলী", - "বিপ্লব", - "উত্পন্ন করুন", - "শোষণ", - "পরিবর্তন", - "ই-সক্ষম", - "পুনরাবৃত্তি", - "চাষ করা", - "ম্যাট্রিক্স", - "উৎপাদন করা", - "পুনরায় সংজ্ঞায়িত করুন", - "পুনরায় প্রাসঙ্গিককরণ", - ), - ( - "ক্লিক এবং মর্টার", - "মূল্য সংযোজন", - "উল্লম্ব", - "সক্রিয়", - "বলিষ্ঠ", - "বিপ্লবী", - "স্কেলযোগ্য", - "নেতৃস্থানীয় প্রান্ত", - "উদ্ভাবনী", - "স্বজ্ঞাত", - "কৌশলগত", - "ই-ব্যবসা", - "মিশন-সমালোচনা", - "আঠালো", - "একের পর এক", - "24/7", - "সর্বশেষ সীমা", - "বিশ্বব্যাপী", - "B2B", - "B2C", - "দানাদার", - "ঘর্ষণহীন", - "অপার্থিব", - "ভাইরাল", - "গতিশীল", - "24/365", - "সর্বোত্তম জাত", - "হত্যাকারী", - "চৌম্বকীয়", - "রক্তপাতের প্রান্ত", - "ওয়েব-সক্ষম", - "ইন্টারেক্টিভ", - "ডট-কম", - "ব্যাক-এন্ড", - "প্রকৃত সময়", - "দক্ষ", - "সামনের অংশ", - "বিতরণ করা", - "বিরামহীন", - "সম্প্রসারণযোগ্য", - "টার্ন-কি", - "বিশ্বমানের", - "মুক্ত উৎস", - "ক্রস-প্ল্যাটফর্ম", - "ক্রস-মিডিয়া", - "সিনারজিস্টিক", - "ইট-এন্ড-ক্লিক", - "বাক্সের বাইরে", - "এন্টারপ্রাইজ", - "সমন্বিত", - "প্রভাবমূলক", - "বেতার", - "স্বচ্ছ", - "পরবর্তী প্রজন্ম", - "অত্যাধুনিক", - "ব্যবহারকারীকেন্দ্রিক", - "দূরদর্শী", - "কাস্টমাইজড", - "সর্বব্যাপী", - "প্লাগ-এন্ড-প্লে", - "সহযোগী", - "আবশ্যক", - "সম্পূর্ণ", - "ধনী", - ), - ( - "ঐকতান", - "ওয়েব-প্রস্তুতি", - "দৃষ্টান্ত", - "বাজার", - "অংশীদারিত্ব", - "অবকাঠামো", - "প্ল্যাটফর্ম", - "উদ্যোগ", - "চ্যানেল", - "চোখের বল", - "সম্প্রদায়", - "ROI", - "সমাধান", - "ই-টেইলার", - "ই-পরিষেবা", - "অ্যাকশন-আইটেম", - "পোর্টাল", - "কুলুঙ্গি", - "প্রযুক্তি", - "সামগ্রী", - "ঘূর্ণি", - "সরবারহ শৃঙ্খল", - "সম্মিলন", - "সম্পর্ক", - "স্থাপত্য", - "ইন্টারফেস", - "ই-মার্কেট", - "ই-কমার্স", - "সিস্টেম", - "ব্যান্ডউইথ", - "তথ্য মিডিয়ার", - "মডেল", - "মনের ভাগ", - "প্রসবযোগ্য", - "ব্যবহারকারী", - "স্কিমাস", - "নেটওয়ার্ক", - "অ্যাপ্লিকেশন", - "মেট্রিক্স", - "ই-ব্যবসা", - "কার্যকারিতা", - "অভিজ্ঞতা", - "ওয়েব সার্ভিস", - "পদ্ধতি", - ), - ) - - def company(self) -> str: - """ - :example: 'ইস্পাহানি গ্রুপ' - """ - return self.random_element(self.companies) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/bn_BD/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/bn_BD/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 76b1787..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/bn_BD/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/cs_CZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/cs_CZ/__init__.py deleted file mode 100644 index 00d0f8c..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/cs_CZ/__init__.py +++ /dev/null @@ -1,19 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}}", - ) - - # Company suffixes are from - # https://cs.wikipedia.org/wiki/Obchodn%C3%AD_spole%C4%8Dnost - company_suffixes = ( - "s.r.o.", - "o.s.", - "a.s.", - "v.o.s.", - "k.s.", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/cs_CZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/cs_CZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 40f25d4..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/cs_CZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/da_DK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/da_DK/__init__.py deleted file mode 100644 index 2e63949..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/da_DK/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} & {{last_name}} {{company_suffix}}", - "{{last_name}} & Søn {{company_suffix}}", - ) - - company_suffixes = ( - "A/S", - "ApS", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/da_DK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/da_DK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0e9faea..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/da_DK/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/de_AT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/de_AT/__init__.py deleted file mode 100644 index 076c6b2..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/de_AT/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - # Source: https://www.wko.at/wirtschaftsrecht/gesellschaftsformen-oesterreich - - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}} & {{last_name}} {{company_suffix}}", - ) - - company_suffixes = ( - "AG", - "AG", - "AG", - "GesbR", - "GmbH", - "GmbH", - "GmbH", - "KG", - "KG", - "KG", - "OG", - "e.V.", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/de_AT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/de_AT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 47fcb95..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/de_AT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/de_CH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/de_CH/__init__.py deleted file mode 100644 index 13ea35d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/de_CH/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - # Source: https://de.wikipedia.org/wiki/Firma#Schweizerisches_Recht - - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - ) - - company_suffixes = ( - "AG", - "AG", - "AG", - "GmbH", - "GmbH", - "GmbH", - "& Co.", - "& Partner", - "& Cie.", - "& Söhne", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/de_CH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/de_CH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index fdfc6c2..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/de_CH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/de_DE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/de_DE/__init__.py deleted file mode 100644 index 07eacc3..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/de_DE/__init__.py +++ /dev/null @@ -1,38 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}}", - ) - - company_suffixes = ( - "AG", - "AG", - "AG", - "AG", - "AG & Co. KG", - "AG & Co. KGaA", - "AG & Co. OHG", - "GbR", - "GbR", - "GmbH", - "GmbH", - "GmbH", - "GmbH", - "GmbH & Co. KG", - "GmbH & Co. KG", - "GmbH & Co. KGaA", - "GmbH & Co. OHG", - "KG", - "KG", - "KG", - "KGaA", - "OHG mbH", - "Stiftung & Co. KG", - "Stiftung & Co. KGaA", - "e.G.", - "e.V.", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/de_DE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/de_DE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 205e7ff..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/de_DE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/el_GR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/el_GR/__init__.py deleted file mode 100644 index 554c486..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/el_GR/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}}-{{last_name}}", - "{{last_name}}-{{last_name}} {{company_suffix}}", - "{{last_name}}, {{last_name}} και {{last_name}}", - ) - company_suffixes = ("Α.Ε.", "και υιοί", "Ο.Ε.", "Α.Β.Ε.Ε.", "Α.Ε. ΟΜΙΛΟΣ ΕΤΑΙΡΕΙΩΝ") diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/el_GR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/el_GR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d3fe430..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/el_GR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/en_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/en_PH/__init__.py deleted file mode 100644 index c92ddd5..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/en_PH/__init__.py +++ /dev/null @@ -1,147 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - """ - Provider for company names for en_PH locale - - Company naming scheme and probabilities are inspired by and/or based on existing companies in the Philippines. - - Sources: - - https://en.wikipedia.org/wiki/List_of_companies_of_the_Philippines - - https://www.pse.com.ph/stockMarket/listedCompanyDirectory.html - """ - - formats = OrderedDict( - [ - ( - "{{random_company_adjective}} {{random_company_noun_chain}} {{company_type}} {{company_suffix}}", - 0.24, - ), - ( - "{{random_company_acronym}} {{random_company_noun_chain}} {{company_type}} {{company_suffix}}", - 0.24, - ), - ( - "{{last_name}} {{random_company_noun_chain}} {{company_type}} {{company_suffix}}", - 0.16, - ), - ("{{random_company_adjective}} {{company_type}} {{company_suffix}}", 0.12), - ("{{random_company_acronym}} {{company_type}} {{company_suffix}}", 0.12), - ("{{last_name}} {{company_type}} {{company_suffix}}", 0.09), - ( - "National {{random_company_product}} Corporation of the Philippines", - 0.03, - ), - ] - ) - company_suffixes = OrderedDict( - [ - ("Inc.", 0.45), - ("Corporation", 0.45), - ("Limited", 0.1), - ] - ) - company_types = ( - "Bank", - "Banking", - "Capital", - "Company", - "Construction", - "Development", - "Enterprise", - "Equities", - "Finance", - "Foods", - "Group", - "Holdings", - "Hotel", - "Manufacturing", - "Mining", - "Properties", - "Resorts", - "Resources", - "Services", - "Shipping", - "Solutions", - "Technologies", - "Trust", - "Ventures", - ) - company_products = ( - "Bottle", - "Coconut", - "Computer", - "Electricity", - "Flour", - "Furniture", - "Glass", - "Newspaper", - "Pillow", - "Water", - ) - company_nouns = ( - "Century", - "City", - "Crown", - "Dragon", - "Empire", - "Genesis", - "Gold", - "King", - "Liberty", - "Millennium", - "Morning", - "Silver", - "Star", - "State", - "Summit", - "Sun", - "Union", - "World", - ) - company_adjectives = ( - "Advanced", - "Rising", - "Double", - "Triple", - "Quad", - "Allied", - "Cyber", - "Sovereign", - "Great", - "Far", - "Northern", - "Southern", - "Eastern", - "Western", - "First", - "Filipino", - "Grand", - "Manila", - "Mega", - "Metro", - "Global", - "Pacific", - "Oriental", - "Philippine", - "Prime", - ) - - def company_type(self) -> str: - return self.random_element(self.company_types) - - def random_company_adjective(self) -> str: - return self.random_element(self.company_adjectives) - - def random_company_noun_chain(self) -> str: - return " ".join(self.random_elements(self.company_nouns, length=self.random_int(1, 2), unique=True)) - - def random_company_product(self) -> str: - return self.random_element(self.company_products) - - def random_company_acronym(self) -> str: - letters = self.random_letters(self.random_int(2, 4)) - return "".join(letters).upper() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/en_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/en_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a0ca720..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/en_PH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/en_US/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/en_US/__init__.py deleted file mode 100644 index 995221b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/en_US/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/en_US/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/en_US/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7c31378..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/en_US/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/es_CL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/es_CL/__init__.py deleted file mode 100644 index 2a10911..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/es_CL/__init__.py +++ /dev/null @@ -1,442 +0,0 @@ -from ... import ElementsType -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{company_prefix}} {{last_name}} y {{last_name}} {{company_suffix}}", - "{{company_prefix}} {{last_name}}, {{last_name}} y {{last_name}} {{company_suffix}}", - "{{company_prefix}} {{last_name}} y Asociados {{company_suffix}}", - "{{last_name}}, {{last_name}} y {{last_name}} {{company_suffix}}", - "{{last_name}} y {{last_name}} {{company_suffix}}", - "{{name}} E.I.R.L.", - "{{name}} EIRL", - ) - - catch_phrase_words = ( - ( - "habilidad", - "acceso", - "adaptador", - "algoritmo", - "alianza", - "analista", - "aplicación", - "enfoque", - "arquitectura", - "archivo", - "inteligencia artificial", - "array", - "actitud", - "medición", - "gestión presupuestaria", - "capacidad", - "desafío", - "circuito", - "colaboración", - "complejidad", - "concepto", - "conglomeración", - "contingencia", - "núcleo", - "fidelidad", - "base de datos", - "data-warehouse", - "definición", - "emulación", - "codificar", - "encriptar", - "extranet", - "firmware", - "flexibilidad", - "focus group", - "previsión", - "base de trabajo", - "función", - "funcionalidad", - "interfaz gráfica", - "groupware", - "interfaz gráfico de usuario", - "hardware", - "soporte", - "jerarquía", - "conjunto", - "implementación", - "infraestructura", - "iniciativa", - "instalación", - "conjunto de instrucciones", - "interfaz", - "intranet", - "base del conocimiento", - "red de area local", - "aprovechar", - "matrices", - "metodologías", - "middleware", - "migración", - "modelo", - "moderador", - "monitorizar", - "arquitectura abierta", - "sistema abierto", - "orquestar", - "paradigma", - "paralelismo", - "política", - "portal", - "estructura de precios", - "proceso de mejora", - "producto", - "productividad", - "proyecto", - "proyección", - "protocolo", - "línea segura", - "software", - "solución", - "estandarización", - "estrategia", - "estructura", - "éxito", - "superestructura", - "soporte", - "sinergia", - "mediante", - "marco de tiempo", - "caja de herramientas", - "utilización", - "website", - "fuerza de trabajo", - ), - ( - "24 horas", - "24/7", - "3ra generación", - "4ta generación", - "5ta generación", - "6ta generación", - "analizada", - "asimétrica", - "asíncrona", - "monitorizada por red", - "bidireccional", - "bifurcada", - "generada por el cliente", - "cliente-servidor", - "coherente", - "cohesiva", - "compuesto", - "sensible al contexto", - "basado en el contexto", - "basado en contenido", - "dedicada", - "generado por la demanda", - "didáctica", - "direccional", - "discreta", - "dinámica", - "potenciada", - "acompasada", - "ejecutiva", - "explícita", - "tolerante a fallos", - "innovadora", - "amplio abanico", - "global", - "heurística", - "alto nivel", - "holística", - "homogénea", - "híbrida", - "incremental", - "intangible", - "interactiva", - "intermedia", - "local", - "logística", - "maximizada", - "metódica", - "misión crítica", - "móvil", - "modular", - "motivadora", - "multimedia", - "multiestado", - "multitarea", - "nacional", - "basado en necesidades", - "neutral", - "nueva generación", - "no-volátil", - "orientado a objetos", - "óptima", - "optimizada", - "radical", - "tiempo real", - "recíproca", - "regional", - "escalable", - "secundaria", - "orientada a soluciones", - "estable", - "estática", - "sistemática", - "sistémica", - "tangible", - "terciaria", - "transicional", - "uniforme", - "valor añadido", - "vía web", - "defectos cero", - "tolerancia cero", - ), - ( - "adaptativo", - "avanzado", - "asimilado", - "automatizado", - "balanceado", - "enfocado al negocio", - "centralizado", - "clonado", - "compatible", - "configurable", - "multiplataforma", - "enfocado al cliente", - "personalizable", - "descentralizado", - "digitalizado", - "distribuido", - "diverso", - "mejorado", - "en toda la empresa", - "ergonómico", - "exclusivo", - "expandido", - "extendido", - "cara a cara", - "enfocado", - "de primera línea", - "totalmente configurable", - "basado en funcionalidad", - "fundamental", - "horizontal", - "implementado", - "innovador", - "integrado", - "intuitivo", - "inverso", - "administrado", - "mandatorio", - "monitoreado", - "multicanal", - "multilateral", - "multi-capas", - "en red", - "basado en objetos", - "de arquitectura abierta", - "open-source", - "operativo", - "optimizado", - "opcional", - "orgánico", - "organizado", - "perseverante", - "persistente", - "polarizado", - "preventivo", - "proactivo", - "enfocado a ganancias", - "programable", - "progresivo", - "llave pública", - "enfocado a la calidad", - "reactivo", - "realineado", - "recontextualizado", - "reducido", - "con ingeniería inversa", - "de tamaño adecuado", - "robusto", - "seguro", - "compartible", - "sincronizado", - "orientado a equipos", - "total", - "universal", - "actualizable", - "centrado en el usuario", - "versátil", - "virtual", - "visionario", - ), - ) - - bsWords = ( - ( - "implementa", - "utiliza", - "integra", - "optimiza", - "evoluciona", - "transforma", - "abraza", - "habilita", - "orquesta", - "reinventa", - "agrega", - "mejora", - "incentiva", - "modifica", - "empodera", - "monetiza", - "fortalece", - "facilita", - "sinergiza", - "crea marca", - "crece", - "sintetiza", - "entrega", - "mezcla", - "incuba", - "compromete", - "maximiza", - "visualiza", - "innova", - "escala", - "libera", - "maneja", - "extiende", - "revoluciona", - "genera", - "explota", - "transiciona", - "itera", - "cultiva", - "redefine", - "recontextualiza", - ), - ( - "sinergias", - "paradigmas", - "marcados", - "socios", - "infraestructuras", - "plataformas", - "iniciativas", - "canales", - "communidades", - "ROI", - "soluciones", - "portales", - "nichos", - "tecnologías", - "contenido", - "cadena de producción", - "convergencia", - "relaciones", - "arquitecturas", - "interfaces", - "comercio electrónico", - "sistemas", - "ancho de banda", - "modelos", - "entregables", - "usuarios", - "esquemas", - "redes", - "aplicaciones", - "métricas", - "funcionalidades", - "experiencias", - "servicios web", - "metodologías", - ), - ( - "valor agregado", - "verticales", - "proactivas", - "robustas", - "revolucionarias", - "escalables", - "de punta", - "innovadoras", - "intuitivas", - "estratégicas", - "e-business", - "de misión crítica", - "uno-a-uno", - "24/7", - "end-to-end", - "globales", - "B2B", - "B2C", - "granulares", - "sin fricciones", - "virtuales", - "virales", - "dinámicas", - "24/365", - "magnéticas", - "listo para la web", - "interactivas", - "punto-com", - "sexi", - "en tiempo real", - "eficientes", - "front-end", - "distribuidas", - "extensibles", - "llave en mano", - "de clase mundial", - "open-source", - "plataforma cruzada", - "de paquete", - "empresariales", - "integrado", - "impacto total", - "inalámbrica", - "transparentes", - "de siguiente generación", - "lo último", - "centrado al usuario", - "visionarias", - "personalizado", - "ubicuas", - "plug-and-play", - "colaborativas", - "holísticas", - "ricas", - ), - ) - - company_prefixes: ElementsType[str] = ( - "Corporación", - "Compañía", - "Comercial", - "Despacho", - "Grupo", - "Holding", - "Club", - "Industrias", - "Laboratorio", - "Proyectos", - ) - - company_suffixes: ElementsType[str] = ( - "Sociedad Anónima", - "Limitada", - "S.A.", - "S.p.A.", - "SPA", - "Ltda.", - ) - - def company_prefix(self) -> str: - """ - :example: 'Grupo' - """ - return self.random_element(self.company_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/es_CL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/es_CL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5d2e32a..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/es_CL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/es_ES/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/es_ES/__init__.py deleted file mode 100644 index 0306b52..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/es_ES/__init__.py +++ /dev/null @@ -1,127 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - """ - Provider for company names for es_ES locale - - Company naming scheme and probabilities are inspired by and/or based on existing companies in Spain. - - Sources: - - https://en.wikipedia.org/wiki/List_of_legal_entity_types_by_country - - https://ranking-empresas.eleconomista.es/ranking_empresas_nacional.html - """ - - formats = ( - "{{company_prefix}} {{last_name}} {{company_suffix}}", - "{{company_type}} {{random_company_acronym}} {{company_suffix}}", - "{{company_type}} {{last_name}} {{company_suffix}}", - "{{company_type}} {{random_company_adjective}} {{company_suffix}}", - "{{company_type}} {{last_name}} {{random_name_complements}} {{company_suffix}}", - "{{last_name}} {{random_name_complements}} {{company_suffix}}", - "{{last_name}} y {{last_name}} {{company_suffix}}", - "{{first_name}} {{last_name}} {{last_name}} {{company_suffix}}", - ) - - company_suffixes = OrderedDict( - [ - ("S.A.", 0.19860906), - ("S.A.D", 0.01020618), - ("S.A.T.", 0.02307813), - ("S.A.U", 0.01506562), - ("S.C.P", 0.04465719), - ("S.Com.", 0.15636432), - ("S.Coop.", 0.17394866), - ("S.L.", 0.18325857), - ("S.L.L.", 0.05800693), - ("S.L.N.E", 0.11496705), - ("S.L.U.", 0.02183831), - ] - ) - - company_prefixes = ( - "Familia", - "Grupo", - "Hermanos", - "Hnos", - ) - - company_types = ( - "Alimentación", - "Banca Privada", - "Banco", - "Comercial", - "Comercializadora", - "Compañía", - "Construcción", - "Consultoría", - "Desarrollo", - "Despacho", - "Distribuciones", - "Farmaceútica", - "Finanzas", - "Fábrica", - "Hotel", - "Industrias", - "Infraestructuras", - "Inmobiliaria", - "Instalaciones", - "Inversiones", - "Logística", - "Manufacturas", - "Minería", - "Promociones", - "Restauración", - "Servicios", - "Soluciones", - "Suministros", - "Supermercados", - "Talleres", - "Tecnologías", - "Transportes", - ) - - name_complements = ( - "& Asociados", - "y asociados", - ) - - company_adjectives = ( - "Avanzadas", - "Castellana", - "Española", - "Españolas", - "Globales", - "Iberia", - "Ibérica", - "Ibéricos", - "Integrales", - "Inteligentes", - "Internacionales", - "del Levante", - "del Mediterráneo", - "del Noroeste", - "del Norte", - "del Sur", - ) - - def company_type(self) -> str: - return self.random_element(self.company_types) - - def company_suffix(self) -> str: - return self.random_element(self.company_suffixes) - - def random_name_complements(self) -> str: - return self.random_element(self.name_complements) - - def random_company_adjective(self) -> str: - return self.random_element(self.company_adjectives) - - def random_company_acronym(self) -> str: - letters = self.random_letters(self.random_int(2, 4)) - return "".join(letters).upper() - - def company_prefix(self) -> str: - return self.random_element(self.company_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/es_ES/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/es_ES/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 60caaa8..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/es_ES/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/es_MX/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/es_MX/__init__.py deleted file mode 100644 index e93e734..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/es_MX/__init__.py +++ /dev/null @@ -1,439 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}}-{{last_name}}", - "{{company_prefix}} {{last_name}}-{{last_name}}", - "{{company_prefix}} {{last_name}} y {{last_name}}", - "{{company_prefix}} {{last_name}}, {{last_name}} y {{last_name}}", - "{{last_name}}-{{last_name}} {{company_suffix}}", - "{{last_name}}, {{last_name}} y {{last_name}}", - "{{last_name}} y {{last_name}} {{company_suffix}}", - ) - - catch_phrase_words = ( - ( - "habilidad", - "acceso", - "adaptador", - "algoritmo", - "alianza", - "analista", - "aplicación", - "enfoque", - "arquitectura", - "archivo", - "inteligencia artificial", - "array", - "actitud", - "medición", - "gestión presupuestaria", - "capacidad", - "desafío", - "circuito", - "colaboración", - "complejidad", - "concepto", - "conglomeración", - "contingencia", - "núcleo", - "fidelidad", - "base de datos", - "data-warehouse", - "definición", - "emulación", - "codificar", - "encriptar", - "extranet", - "firmware", - "flexibilidad", - "focus group", - "previsión", - "base de trabajo", - "función", - "funcionalidad", - "interfaz gráfica", - "groupware", - "interfaz gráfico de usuario", - "hardware", - "soporte", - "jerarquía", - "conjunto", - "implementación", - "infraestructura", - "iniciativa", - "instalación", - "conjunto de instrucciones", - "interfaz", - "intranet", - "base del conocimiento", - "red de area local", - "aprovechar", - "matrices", - "metodologías", - "middleware", - "migración", - "modelo", - "moderador", - "monitorizar", - "arquitectura abierta", - "sistema abierto", - "orquestar", - "paradigma", - "paralelismo", - "política", - "portal", - "estructura de precios", - "proceso de mejora", - "producto", - "productividad", - "proyecto", - "proyección", - "protocolo", - "línea segura", - "software", - "solución", - "estandarización", - "estrategia", - "estructura", - "éxito", - "superestructura", - "soporte", - "sinergia", - "mediante", - "marco de tiempo", - "caja de herramientas", - "utilización", - "website", - "fuerza de trabajo", - ), - ( - "24 horas", - "24/7", - "3ra generación", - "4ta generación", - "5ta generación", - "6ta generación", - "analizada", - "asimétrica", - "asíncrona", - "monitorizada por red", - "bidireccional", - "bifurcada", - "generada por el cliente", - "cliente-servidor", - "coherente", - "cohesiva", - "compuesto", - "sensible al contexto", - "basado en el contexto", - "basado en contenido", - "dedicada", - "generado por la demanda", - "didáctica", - "direccional", - "discreta", - "dinámica", - "potenciada", - "acompasada", - "ejecutiva", - "explícita", - "tolerante a fallos", - "innovadora", - "amplio abanico", - "global", - "heurística", - "alto nivel", - "holística", - "homogénea", - "híbrida", - "incremental", - "intangible", - "interactiva", - "intermedia", - "local", - "logística", - "maximizada", - "metódica", - "misión crítica", - "móvil", - "modular", - "motivadora", - "multimedia", - "multiestado", - "multitarea", - "nacional", - "basado en necesidades", - "neutral", - "nueva generación", - "no-volátil", - "orientado a objetos", - "óptima", - "optimizada", - "radical", - "tiempo real", - "recíproca", - "regional", - "escalable", - "secundaria", - "orientada a soluciones", - "estable", - "estática", - "sistemática", - "sistémica", - "tangible", - "terciaria", - "transicional", - "uniforme", - "valor añadido", - "vía web", - "defectos cero", - "tolerancia cero", - ), - ( - "adaptativo", - "avanzado", - "asimilado", - "automatizado", - "balanceado", - "enfocado al negocio", - "centralizado", - "clonado", - "compatible", - "configurable", - "multiplataforma", - "enfocado al cliente", - "personalizable", - "descentralizado", - "digitalizado", - "distribuido", - "diverso", - "mejorado", - "en toda la empresa", - "ergonómico", - "exclusivo", - "expandido", - "extendido", - "cara a cara", - "enfocado", - "de primera línea", - "totalmente configurable", - "basado en funcionalidad", - "fundamental", - "horizontal", - "implementado", - "innovador", - "integrado", - "intuitivo", - "inverso", - "administrado", - "mandatorio", - "monitoreado", - "multicanal", - "multilateral", - "multi-capas", - "en red", - "basado en objetos", - "de arquitectura abierta", - "open-source", - "operativo", - "optimizado", - "opcional", - "orgánico", - "organizado", - "perseverante", - "persistente", - "polarizado", - "preventivo", - "proactivo", - "enfocado a ganancias", - "programable", - "progresivo", - "llave pública", - "enfocado a la calidad", - "reactivo", - "realineado", - "recontextualizado", - "reducido", - "con ingeniería inversa", - "de tamaño adecuado", - "robusto", - "seguro", - "compartible", - "sincronizado", - "orientado a equipos", - "total", - "universal", - "actualizable", - "centrado en el usuario", - "versátil", - "virtual", - "visionario", - ), - ) - - bsWords = ( - ( - "implementa", - "utiliza", - "integra", - "optimiza", - "evoluciona", - "transforma", - "abraza", - "habilita", - "orquesta", - "reinventa", - "agrega", - "mejora", - "incentiva", - "modifica", - "empodera", - "monetiza", - "fortalece", - "facilita", - "sinergiza", - "crea marca", - "crece", - "sintetiza", - "entrega", - "mezcla", - "incuba", - "compromete", - "maximiza", - "visualiza", - "innova", - "escala", - "libera", - "maneja", - "extiende", - "revoluciona", - "genera", - "explota", - "transiciona", - "itera", - "cultiva", - "redefine", - "recontextualiza", - ), - ( - "sinergias", - "paradigmas", - "marcados", - "socios", - "infraestructuras", - "plataformas", - "iniciativas", - "canales", - "communidades", - "ROI", - "soluciones", - "portales", - "nichos", - "tecnologías", - "contenido", - "cadena de producción", - "convergencia", - "relaciones", - "arquitecturas", - "interfaces", - "comercio electrónico", - "sistemas", - "ancho de banda", - "modelos", - "entregables", - "usuarios", - "esquemas", - "redes", - "aplicaciones", - "métricas", - "funcionalidades", - "experiencias", - "servicios web", - "metodologías", - ), - ( - "valor agregado", - "verticales", - "proactivas", - "robustas", - "revolucionarias", - "escalables", - "de punta", - "innovadoras", - "intuitivas", - "estratégicas", - "e-business", - "de misión crítica", - "uno-a-uno", - "24/7", - "end-to-end", - "globales", - "B2B", - "B2C", - "granulares", - "sin fricciones", - "virtuales", - "virales", - "dinámicas", - "24/365", - "magnéticas", - "listo para la web", - "interactivas", - "punto-com", - "sexi", - "en tiempo real", - "eficientes", - "front-end", - "distribuidas", - "extensibles", - "llave en mano", - "de clase mundial", - "open-source", - "plataforma cruzada", - "de paquete", - "empresariales", - "integrado", - "impacto total", - "inalámbrica", - "transparentes", - "de siguiente generación", - "lo último", - "centrado al usuario", - "visionarias", - "personalizado", - "ubicuas", - "plug-and-play", - "colaborativas", - "holísticas", - "ricas", - ), - ) - - company_preffixes = ( - "Despacho", - "Grupo", - "Corporacin", - "Club", - "Industrias", - "Laboratorios", - "Proyectos", - ) - - company_suffixes = ( - "A.C.", - "S.A.", - "S.A. de C.V.", - "S.C.", - "S. R.L. de C.V.", - "e Hijos", - "y Asociados", - ) - - def company_prefix(self) -> str: - """ - :example: 'Grupo' - """ - return self.random_element(self.company_preffixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/es_MX/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/es_MX/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index fca8a37..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/es_MX/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fa_IR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/fa_IR/__init__.py deleted file mode 100644 index ee5d337..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/fa_IR/__init__.py +++ /dev/null @@ -1,1113 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - company_names = [ - "گروه سیمان", - "گروه فلزات اساسي", - "ایران گچ", - "آلومتك", - "ساروج بوشهر", - "آلومينيوم ايران", - "سيمان  ساوه", - "ایران ذوب", - "سيمان اردبيل و آهك آذرشهر", - "پارس مولیبدن", - "سيمان اروميه", - "ذوب روی اصفهان", - "سيمان اصفهان", - "صنايع مس شهيد باهنر", - "سيمان ايلام", - "صنایع خالص سازان روی زنجان", - "سيمان بجنورد", - "صنعتی و سرمایه گذاری سپنتا", - "سيمان بهبهان", - "كالسيمين", - "سيمان تهران", - "گروه كارخانه هاي توليدي نورد آلومينيوم", - "سيمان خاش", - "ملي سرب و روي ايران", - "سيمان خزر", - "ملی صنایع مس ایران", - "سيمان داراب", - "آلومراد", - "سيمان دورود", - "آلومينيوم المهدي", - "سيمان سفيدني ريز", - "آلومينيوم پارس", - "سيمان شاهرود", - "کارخانجات تولیدی مواد الومینیوم", - "سيمان شرق", - "مجتمع ذوب و احیای روی قشم", - "سيمان شمال", - "مجتمع صنايع الومينيوم جنوب", - "سيمان صوفيان", - "مس تکنار", - "سيمان غرب", - "گروه کانی های فلزی", - "سيمان فارس", - "آلوميناي ايران", - "سيمان قاين", - "تهيه و توليد مواد اوليه فولاد خراسان", - "سيمان كارون", - "سنگ آهن مركزي ايران", - "سيمان كرمان", - "هرمز انرژی", - "سيمان مازندران", - "واحد طلای موته", - "سيمان هرمزگان", - "واحد پیربکران", - "سيمان هگمتان", - "واحد فسفات اسفردی", - "سیمان خوزستان", - "واحد نخلک", - "سیمان دشتستان", - "ويتانا", - "سیمان زابل", - "گروه صنایع غذایی", - "سیمان فارس نو", - "کشاورزی و تحقیقاتی نوین زعفران", - "سیمان لار سبزوار", - "گلستان", - "سیمان لارستان", - "آرد زر", - "سیمان لامرد", - "اروم آدا", - "سیمان مجد خواف", - "ایران گلاب مرغوب", - "سیمان ممتازان کرمان", - "بيسكوئيت گرجي", - "فراورده سیمان شرق", - "تحول چاشنی توس", - "گچ ماشيني فارس", - "تهیه و بسته بندی خشکبار آرات", - "سیمان آذر آبادگان خوی", - "توسعه کشت ذرت", - "سیمان بوهروک یزد", - "تولیدی آرد البرز", - "سیمان جوین", - "تولیدی زعفران سحرخیز", - "سیمان قشم", - "خوراك دام پارس", - "سیمان کردستان", - "دشت مرغاب", - "گچ تهران", - "روغن نباتي پارس", - "گروه فولاد", - "روغن نباتي جهان", - "پلی ران اتصال", - "روغن نباتی گلناز", - "توليدی لوله هاي پلي اتيلن دوجداره بوشهر", - "روغنکشی خرمشهر", - "تولید لوله و پوشش سلفچگان", - "زر ماکارون", - "سلفچگان", - "سالمين", - "ذوب آهن اصفهان", - "سپتیکو", - "ساخته های فلزی اصفهان", - "سحر همدان", - "صنايع فرو آلياژ ايران", - "سقزسازی کردستان", - "صنايع گالوانيزه فجر سپاهان", - "شاد گل نیشابور", - "صنایع فولاد آلياژي يزد", - "شهد ايران", - "فولاد اکسین خوزستان", - "صنایع غذایی مینو شرق", - "فولاد آلیاژی ایران", - "صنعتي  پارس مينو", - "فولاد خوزستان", - "صنعتي مينو خرم دره", - "فولاد صنعت مهدی", - "فراورده های سیب زمینی پریس اصفهان", - "فولاد مباركه اصفهان", - "فرآورده های گوشتی تهران", - "کارخانجات نورد لوله یاران", - "كشت و صنعت پياذر", - "کاوه کشاورز", - "كيوان", - "گروه صنعتي سپاهان", - "کشت و صنعت اشراق", - "لوله و پروفیل سپنتا تهران", - "کشت و صنعت قطران گل ایران", - "لوله و ماشين سازي ايران", - "کشت وصنعت روژین تاک", - "مجتمع فولاد خراسان", - "کشتارگاه صنعتی طیور سپیدان آمل", - "میراب پروفیل", - "گروه توليدي مهرام", - "نورد و توليد قطعات فولادي", - "گلوكوزان", - "نورد و لوله صفا", - "مارگارين", - "نوین آلیاژسمنان", - "مجتمع صنایع غذایی بهپودر اصفهان", - "فولاد آذربايجان", - "مجتمع كشت و صنعت چين چين", - "فولاد افزا سپاهان", - "مجتمع کارخانجات سوربن شمال", - "گروه ملي صنعتي فولاد ايران", - "مرغ اجداد زربال", - "پروفيل صنعت جنوب", - "شوكو پارس", - "صبا فولاد خلیج فارس", - "آرد تجارت", - "فولاد تربت حیدریه", - "بهپاك", - "لوله و تجهيزات سديد", - "پيچك", - "نورد لوله اهواز", - "توسعه کشت و صنعت ملی ( كشت و صنعت گرگان )", - "نورد و پروفيل پارس", - "فراورده هاي غذائي مشهد", - "گروه پیمانکاری صنعتی", - "گروه معادن", - "احداث صنعت", - "معدن کاران انگوران", - "گروه ساخت قطعات خودرو", - "باما", - "تولید موتور های دیزل ایران", - "تامين ماسه ريخته گري", - "اگزوز خودرو خراسان", - "تامین مواد اولیه فولاد صبا نور", - "الكتريك خودرو شرق", - "توسعه معادن روي ايران", - "آهنگري تراكتورسازي ايران", - "توليد فروموليبدن كرمان", - "اورند پلاستیک", - "تولیدی آذر سنگ سرخ", - "ايران دوچرخ", - "جهاد نصر سیرجان", - "پلاسكو كار سايپا", - "حفاری ایراندشت کاشان", - "توليد محورخودرو", - "ذوب وروی بافق", - "توليدي قطعات محوري خراسان", - "زرین معدن آسیا", - "تولیدی صنعتی لنت پارس", - "زغال سنگ نگين طبس", - "چرخشگر", - "زنجان برنز", - "رادياتور ايران", - "سرمایه گذاری توسعه معادن کوثر", - "ريخته گري تراكتورسازي ايران", - "سنگ آهن شرق", - "رينگ سازي مشهد", - "سنگ آهن گل گهر", - "ریخته گری آلومینیوم ایران خودرو", - "سنگاب آذرشهر", - "ساخت و نصب صنعتی البرز", - "سنگاب همدان", - "سازه پويش", - "سوژميران", - "سايپا آذين", - "سولفاتيک", - "سایپا پرس", - "شن سازان هراز", - "سیبا موتور", - "صنعت روی زنگان", - "شمیم پژوهش", - "صنعتي و معدني شمال شرق شاهرود", - "صنايع ريخته گري ايران", - "فراوري مواد معدني ايران", - "صنایع ریخته گری پرلیت آسیا", - "فرو سيليس ايران", - "صنایع نوید موتور", - "مجتمع معادن سنگ چینی نی ریز", - "صنعتي نيرو محركه", - "معادن بافق", - "صنعتی صبوران پلیمر", - "معادن سنگ اهن احیاء سپاهان", - "فنر سازی زر گلپايگان", - "معادن منگنز ايران", - "فنرسازي خاور", - "معدن کار باختر", - "فنرسازي زر", - "معدني دماوند", - "كاربراتور ايران", - "معدني و صنعتي چادرملو", - "كارخانجات كمك فنر ايندامين سايپا", - "معدنی و فرآوری سرمه فیروزآباد", - "کابل خودرو سبزوار", - "ندای رهاوی", - "کلاچ سازی شایان صنعت", - "زغال سنگ البرز شرقی", - "گیربکس سایپا", - "زغال سنگ البرز مرکزی", - "لنت ترمز ايران", - "زغال سنگ کرمان", - "ماشین سازی فراگیر سپنتا", - "فرآوري معدني اپال کاني پارس", - "مجتمع صنعتی سپاهان باطری", - "گروه توسعه معادن روی ایران", - "محورسازان ايران خودرو", - "گروه قند و شکر", - "مهركام پارس", - "سهامی عام شهد – قند خوی", - "مهندسي نصير ماشين", - "شکر شاهرود", - "موتورسازان تراكتورسازي ايران", - "صنعتی کشاورزی شیرین خراسان", - "نیروسازاراک‎", - "فرآورد ه هاي غذايي و قند پيرانشهر", - "یسکو", - "فراورده هاي غذايي و قند تربت جام", - "گروه انتشار، چاپ و تكثير", - "فرآورده هاي غذايي و قند چهارمحال", - "افست", - "قند اصفهان", - "گروه خدمات فنی و مهندسی", - "قند ثابت خراسان", - "ملی ساختمان", - "قند شيروان قوچان وبجنورد", - "مهندسی فرا نیرو", - "قند قهستان", - "آبادراهان پارس", - "قند لرستان", - "احداث تاسیسات انتقال نیرو – اتانیر", - "قند مرودشت", - "آذرپاسیلو", - "قند نقش جهان", - "ارسا ساختمان", - "قند نيشابور", - "آفرینه طوس", - "قند هكمتان", - "اهرام فناوری قدرت", - "کارخانجات قند قزوین", - "ایریتک", - "قند بيستون", - "بازرسي مهندسي و صنعتي ايران", - "قند پارس", - "تجهیزات و خدمات صنایع آب و برق ایران – صانیر", - "گروه رایانه و فعالیتهای وابسته به آن", - "تکنیک", - "ایران ارقام", - "توسعه ساخت و نصب صنايع بتني و فلزي گسترش مانا ساز آبيک", - "تجارت الكترونيك پارسيان", - "جنرال مکانیک", - "توسعه سازه پایه فن آوا", - "حفاری شمال", - "توسعه فناوری اطلاعات خوارزمی", - "خدمات مهندسی ساختمان تاسیسات راه آهن", - "تینا سامانه", - "خدماتي تجهيزات سنگين همگام", - "داده پردازي خوارزمي", - "راهبران فولاد اصفهان", - "داده پردازی ایران", - "راهسازی و ساختمانی 115", - "داده پردازی فن آوا", - "ره  گستر نفت", - "داده سامانه فن آوا", - "صنعتی دریایی ایران – صدرا", - "فن آوا کارت", - "فراب", - "کارت اعتباری ایران کیش", - "کیسون", - "گسترش الکترونیک مبین ایران", - "معماران پارس صنعت", - "خدمات انفورماتیک", - "مهام شرق", - "گروه وسايل اندازه گيري، پزشكي و اپتيكي", - "مهندسان مشاور سازه", - "مهندسی فرسار تجارت", - "مهندسي و نصب فيرمکو پارس", - "پویندگان راه سعادت", - "مهندسي وتحقيقاتي فلزات غيرآهنی", - "كنتور سازي ايران", - "مهندسی و پشتیبانی نیروگاهی البرز توربین", - "گروه ماشين آلات و تجهيزات", - "موننکو ایران", - "مارال صنعت جاوید", - "نصب نیرو", - "ماشین رول", - "خدمات ماشینی کشتیرانی", - "افرند کالا سازه", - "گسترش صنايع وخدمات", - "آلفا پاک ایران", - "گروه لوازم خانگي", - "بلبرينگ ايران", - "لعران", - "بهسازان غلطک فولاد اصفهان", - "ارج", - "پارس بوشونگ", - "آیسان خزر", - "پاریزان صنعت", - "پارس خزر", - "پمپ سمنان انرژی", - "تولیدی و صنعتی نیک کالا", - "تراكتور سازي ايران", - "صنايع سرماآفرين قشم", - "تراکتور سازی کردستان", - "صنعتي جنرال", - "تسهیل ماشین صنعت", - "كارخانجات آبسال", - "توليد تجهيزات سنگين هپكو", - "كارخانجات لوازم خانگي پارس", - "توليدي پمپ پارس", - "کارخانجات پارس ماشین", - "توليدي تجهيزات ايمني راهها", - "گروه صنعتي بوتان", - "تیراژه ماشین", - "لوازم خانگی نانیوا", - "دلتا راه ماشین", - "توليدي كولر گازي ايران", - "رهشاد سپاهان", - "جام جهان نما", - "ساخت تجهيزات سپاهان", - "كارخانجات صنعتي آزمايش", - "سوت ماشین", - "گروه پلاستيك", - "صنايع پمپ سازي ايران", - "یزد بسپار", - "صنايع سرما آفرين", - "آرتا پلاست", - "صنایع پمپ ابارا", - "پلاستيران", - "صنعتی هلی خودرو", - "پلاستيکهاي مهندسي درخشان ساز", - "طراحي مهندسي وساخت تجهيزات وابزارآلات سايپا", - "توليدي پلاستيك شاهين", - "فولادريزي قائم سپهر سپاهان", - "توليدي گاز لوله", - "کالای پمپ", - "توليدي و صنعتي درخشان تهران", - "ماشين سازي اراك", - "جوی گستر نفت", - "ماشين سازي نیرو محركه", - "صنايع لاستيك سهند", - "مهندسي تكنو تار", - "كارخانجات توليدي تهران", - "مهندسي و توليد ماشين آلات راهسازي و معدني کشاورزي هپکو اراک", - "توليدي وصنعتي ايران وغرب", - "مهندسي و ساختمان ماشين سازي اراک", - "لوله سازي اهواز", - "مهندسي و قطعات ماشين آلات راه سازي ايران", - "گروه مبلمان و مصنوعات ديگر", - "مهندسی فیروزا", - "عايق پلاستيك", - "مهندسی و ساخت بویلر مپنا", - "تجهيزات مدارس ايران", - "هوا ابزار تهران", - "صنعتی جهان چیدمان-جلیس", - "اشتهاد موتورز", - "گروه محصولات شيميايي", - "كارخانجات صنعتي  و توليدي اتمسفر", - "احسان شیمی استهبان", - "كمپر سور سازي ايران", - "آریا رزین", - "ليفتراك سازي سهند", - "الکترو زر سازه", - "فرتاک ماشین", - "ایمن تاش سپاهان", - "کمباین سازی ایران", - "بردار شیب", - "ماشين آلات صنعتي تراكتور سازي ايران", - "بين المللي محصولات پارس", - "صنايع توليدي اشتاد ايران", - "بين المللي سارنگ تدارك", - "پروفيل و يخچال ايران پويا", - "پارس زئولايت", - "توليدي بهمن", - "پارسیان پارت پاسارگاد", - "گروه محصولات كاغذي", - "پاكسان", - "بسته بندي پارس", - "پاکنام", - "صنايع كاغذ سازي كاوه", - "پالایش قطران ذغالسنگ اصفهان", - "صنایع چوب و کاغذ مازندران", - "توکا رنگ فولاد سپاهان", - "كارتن البرز", - "تولي پرس", - "كارتن ايران", - "توليد سموم علف كش", - "کارتن مشهد", - "تولید مواد اولیه الیاف مصنوعی", - "محصولات کاغذی لطیف", - "تولیدی و صنعتی  فراسان", - "كارتن پارس", - "تولیدی و صنعتی سامد", - "گروه منسوجات", - "تولیدی وصنعتی خودرنگ", - "ايران برك", - "حباب کف توس", - "توليدي بافت آزادي", - "داروئي ارايشي وبهداشتي مينو", - "وطن اصفهان", - "دنیای آرایش", - "ريسندگي و با فندگي كاشان", - "دوده صنعتي پارس", - "ريسندگي و بافندگي پاكريس", - "رزیتان", - "ريسندگي و بافندگي ري", - "ریف ایران", - "فرش پارس", - "سامان شیمی", - "گردباف يزد", - "سرمايه گذاري صنايع شيميايي ايران", - "گروه صنعتي نقش ايران", - "شيمي بافت", - "نساجي بابكان", - "شيميايي پارس پامچال", - "نساجي خوي", - "شيميايي فرآورد قشم", - "نساجي غرب", - "شیمیایی بهداد", - "نساجي قائم شهر", - "شیمیایی بهداش", - "نساجي مازندران", - "شیمیایی و تولیدی رزپلیمر", - "وطن اصفهان", - "صنايع شيميايي رنگين", - "يزد باف", - "صنايع شيميايي سينا", - "صنايع نساجي ايران", - "صنايع شيميايي فارس", - "گروه بانك ها، موسسات اعتباري و ساير نهادهاي مالي", - "صنایع بهداشتی ساینا", - "بانك اقتصاد نوين", - "صنایع رنگ و رزین طیف سایپا", - "بانك پارسيان", - "صنایع شیمی ساختمان آباد گران", - "بانك سامان", - "فراپاکس شیراز", - "بانك كارآفرين", - "كربن ايران", - "بانک انصار", - "كف", - "بانک ایران زمین", - "کلر پارس", - "بانک پاسارگاد", - "گلتاش", - "بانک تجارت ایران", - "لابراتوارهای داروهای گیاهی طبیعت زنده", - "بانک حکمت ایرانیان", - "لعاب مشهد", - "بانک دی", - "لعابيران", - "بانک سرمایه", - "مجتمع صنایع شیمیایی پلیمر ایران", - "بانک سینا", - "مديريت صنعت شوينده توسعه صنايع بهشهر", - "بانک شهر", - "مروارید هامون", - "بانک صادرات ایران", - "معدني املاح ايران", - "بانک گردشگری", - "ملي شيمي كشاورز", - "بانک ملت", - "من", - "پست بانک", - "نيرو كلر", - "بانک تات", - "الياف", - "بانک کشاورزی", - "پارسيلون", - "گروه واسطه گري هاي مالي", - "توليدي  الياف پلي  پروپيلين  بنياد", - "رايان سايپا", - "صنايع تبديلي گلستان", - "سپرده گذاری مرکزی اوراق بهادار و تسویه وجوه", - "كارخانجات توليدي سوپر رنگ", - "ليزينگ آريادانا", - "صنايع رنگ پارس الوان", - "ليزينگ ايران", - "گروه مواد و محصولات دارويي", - "ليزينگ خودرو غدير", - "آفا شیمی", - "ليزينگ صنعت و معدن", - "البرز دارو", - "ليزينگ ماشين الات سنگين ايرانيان", - "ايران دارو", - "لیزینگ اقتصاد نوین", - "پارس دارو", - "لیزینگ رازی", - "تحقیقاتی و تولیدی سیناژن", - "لیزینگ ماشین آلات و تجهیزات پاسارگاد", - "تهران دارو", - "لیزینگ ایرانیان", - "تهران شيمي", - "لیزینگ شهر – لیزینگ سامان آریا", - "توليد ژلاتين کپسول ايران", - "گروه توزیع برق", - "توليد مواد اوليه دارو پخش", - "توزیع برق بوشهر", - "تولید مواد دارویی درسا دارو", - "توسعه برق شمال افشان گستر", - "داروسازي اسوه", - "صنايع برق زنگان پارس", - "داروسازي اكسير", - "گهر انرژي سيرجان", - "داروسازي امين", - "برق و انرژی صبا", - "داروسازي جابرابن حيان", - "گروه شرکتهای بازرگانی", - "داروسازي حكيم", - "اتصال استیل هما", - "داروسازي دكتر عبيدي", - "اسپرلوس اهورا", - "داروسازي روزدارو", - "افزار پرداز رمیس", - "داروسازي زهراوي", - "الهام بیسان", - "داروسازي فارابي", - "ایمان تجارت روشن", - "داروسازي كوثر", - "بازرگاني پتروشيمي", - "داروسازی بهوزان", - "بازرگانی ارمغان مهر سیرت", - "داروسازی تولید دارو – سهامی خاص", - "بازرگانی ایران ترانسفو", - "داروسازی دانا", - "بازرگانی بین المللی استوان سپند", - "داروسازی شهید قاضی تبریز", - "بازرگانی پارس ماهان آسیا", - "داروسازی گیلارانکو", - "بازرگانی پتروشیمی زنجان", - "داروئي و بهداشتي لقمان", - "بازرگانی تبادل و تدارک کالا", - "داملران", - "بازرگانی صبا بیمه ایرانیان", - "سينا دارو", - "بازرگانی مبین تجارت غرب", - "شيمي دارويي داروپخش", - "بازرگانی نفت یاب", - "صنعتي كيميدارو", - "بازرگانی،صنعتی بهشت پارس", - "فارما شیمی", - "بهترین های پزشکی پارس", - "فراورده هاي تزريقي ايران", - "پارس بازرگان", - "كارخانجات دارو پخش", - "پارس گستر مینو", - "لابراتورهای دارویی رازک", - "پديده گستران غرب", - "مواد اولیه دارویی تهران شیمی", - "تجارت گستران خوارزمي", - "داروسازی سبحان انکولوژی", - "تجاری و بازرگانی مواد معدنی میناب", - "سرمايه گذاري البرز", - "تجهیز یاران", - "شيرين دارو", - "تهیه و تولید خاک نسوز استقلال آباده", - "گروه دارویی سبحان", - "توسعه صنايع غذايي بم", - "گروه خودروسازی", - "توسعه و تجارت بین المللی صبا", - "ايران خودرو", - "توسعه و تجارت ماتریس", - "ايران خودروديزل", - "جهان فعالیت", - "ایران خودرو تبریز", - "خشکبار دست چین", - "ایران خودرو خراسان", - "داده های رسا", - "ایران خودرو مازندران", - "دانیال کار", - "بهمن دیزل", - "درمان یار آنی", - "پارس خودرو", - "راسن درمان", - "تولیدی و صنعتی عقاب افشان", - "رویال پیشگام شرق", - "زامياد", - "سامان بارز", - "سايپا", - "سیاحان سپهر آسیا", - "سايپاديزل", - "صخره سنگی فرزین", - "سایپا کاشان", - "صنایع نئون پرس", - "گروه بهمن", - "فانوس دشت تجارت", - "بنيان ديزل", - "کیا مهستان", - "توليدي مرتب", - "کیمیا آرا هرم", - "گروه محصولات لبني", - "گسترش تجارت کالای ایرانیان", - "پاک پی", - "مديريت و ساخت طرحهاي نفت گستر", - "تولید فرآورده های لبنی کاله", - "مهر اسپند پویا", - "شير پاستوريزه پگاه اصفهان", - "مهندسی بازرگانی درداران سریر", - "شير پاستوريزه پگاه خراسان", - "نویان بسپار", - "شير پگاه آذربايجان غربي", - "نیکان شهد بارز", - "صنايع شير ايلام زاگرس", - "گروه هولدینگ", - "فراورده هاي لبني پاکسار ساري", - "توسعه صنايع بهشهر – هلدينگ", - "لبنيات پاستوريزه پاك", - "داروپخش – هلدينگ", - "لبنيات كالبر", - "راه آهن جمهوری اسلامی ایران", - "لبنیات پاستوریزه پاک آرا سنندج", - "سرمايه گذاري توسعه معادن و فلزات", - "گروه منسوجات و فرش بافی", - "سرمايه گذاري توكا فولاد – هلدينگ", - "ابهر ریس", - "سرمايه گذاري صنعت نفت – هلدينگ", - "ايران پوپلين", - "سرمایه گذاری گروه صنعتی ملی", - "ايران مرينوس", - "گروه صنعتي سديد – هلدينگ", - "بافتینه", - "گروه صنعتي قطعات اتومبيل ايران", - "پشمبافي توس", - "گروه صنعتي ناب", - "پلي اكريل ايران", - "گسترش نفت و گاز پارسیان", - "تمدن فرش کاشان", - "مدیریت پروژه های نیروگاهی ایران – مپنا", - "تولیدی پارس دکور", - "هلدینگ توسعه معادن و صنایع معدنی خاورمیانه", - "تولیدی پارس نخ", - "هلدینگ دامپروری شیروگوشت پارس", - "تولیدی پینک", - "سرمايه گذاري بانك ملي ايران – هلدينگ", - "تولیدی و صنعتی پارس تکمیل", - "صنعتي بهشهر", - "تولیدی و صنعتی رسول اصفهان", - "گروه بنادر ودریانوردی", - "شبنم باف", - "پایانه ها و مخازن پتروشیمی", - "صنایع موکت همدان", - "خدمات دریایی و بندری کاوه", - "صنایع نخ خمین", - "گروه گاز", - "صنایع نساجی همدانیان", - "گاز اصفهان", - "ظریف مصور", - "ملی گاز", - "فرش مشهد", - "گاز خراسان جنوبی", - "فرش نگین مشهد", - "گروه آشامیدنی ها", - "کارخانجات ریسندگی نطنز", - "آب معدنی دماوند", - "مخمل و ابريشم كاشان", - "آذر شهد ارومیه", - "موکت نگین مشهد", - "بهنوش ايران", - "نساجي بروجرد", - "پیمان فردان", - "نساجی کویر سمنان", - "تولیدی نوشابه ارم نوش", - "صنايع نساجي ايران", - "زمزم آذربایجان", - "گروه حمل و نقل دریایی و حمل و نقل آب های ساحلی", - "زمزم اصفهان", - "حمل و نقل ترکیبی کشتیرانی جمهوری اسلامی", - "زمزم تهران", - "حمل و نقل خدمات دریایی آبادان", - "زمزم رشت", - "خدمات دریایی و کشتیرانی خط دریا بندر", - "زمزم گرگان", - "دريابان جنوب ايران", - "شهداب", - "کشتیرانی آریا", - "فرآورده های نوشیدنی تسنیم نوش", - "کشتیرانی جمهوری اسلامی ایران", - "نوش مازندران", - "کشتیرانی والفجر", - "ساسان", - "گروه خدمات فنی-مهندسی خودرو", - "گروه تایر سازی", - "امداد خودرو ایران", - "ایران یاسا", - "امداد خودرو سایپا", - "بید وایر ایران", - "بازرسی فنی و کنترل خوردگی تکین کو", - "توليدي ايران تاير", - "گواه", - "توليدي لاستيکهاي صنعتي مبارکه", - "مزدا یدک", - "کویر تایر", - "مهندسی و مشاور سازه گستر سایپا", - "لاستيك دنا", - "خدمات کمات ماشین شرق", - "لاستیک بارز", - "گروه فرهنگی و گردشگری", - "8", - "لاستیک پارس", - "تجارت توسعه گردشگري آتيه انديشان", - "مجتمع صنايع لاستيك يزد", - "توسعه گردشگري کاروانسراي پارس", - "مجتمع صنعتي آرتاويل تاير", - "گروه سرمايه گذاري ميراث فرهنگي و گردشگري ايران", - "توليدي لاستيك البرز – كيان تاير", - "مجتمع توريستي، رفاهي آبادگران ايران", - "گروه شرکتهای مشاوره", - "گروه كاني های غير فلزي", - "irpmc", - "آجر نسوز امين آباد", - "بودجه irpmc", - "آذريت", - "همکاران سیستم اردبیل", - "ايتالران", - "همکاران سیستم البرز", - "ايرانيت", - "همکاران سیستم پناه شرق", - "پرمیت", - "همکاران سیستم خراسان جنوبی", - "پشم شیشه ایران", - "7", - "همکاران سیستم خراسان رضوی", - "تولیدی و صنعتی آبگینه", - "همکاران سیستم خوزستان", - "خاك چيني ايران", - "همکاران سیستم زنجان", - "زرین شیشه مرکزی", - "همکاران سیستم فارس", - "سایپا شیشه", - "همکاران سیستم قزوین", - "سراميك هاي صنعتي اردكان", - "همکاران سیستم گیلان", - "شيشه قزوين", - "همکاران سیستم مازندران", - "شيشه همدان", - "گروه ماشين آلات و دستگاههاي برقي", - "شيشه و گاز", - "ايران ترانسفو", - "شیشه داروئی رازی تاکستان", - "ایران ترانسفوی ری", - "فارسيت اهواز", - "پارس سوئيچ", - "فرآورده هاي نسوز پارس", - "تال ایران", - "فرآورده هاي نسوزآذر", - "تامین تابلو", - "فراورده های نسوز ایران", - "تجهیزات انتقال برق پارس", - "كارخانجات توليدي شيشه دارويي رازي", - "ترانسفور ماتور توزیع زنگان", - "كارخانه فارسيت درود", - "تهران پادنا", - "ورزيران", - "توربوژنراتور شاهرود", - "مقره سازی ایران", - "توس فیوز", - "چینی سازی البرز", - "جابون", - "گروه ارتباطات", - "خیام الکتریک", - "ارتباطات فن آوا", - "صنايع جوشكاب يزد", - "ارتباطات کوه نور", - "صنایع کابل سازی افق البرز", - "ارتباطات سیار ایران – همراه اول", - "صنعتی مهندسی پالایش نیرو", - "مخابرات ایران", - "فاراتل", - "گروه شرکت های پخش", - "كابل البرز", - "پخش سراسری کالای کالبر", - "كابل باختر", - "پخش هجرت", - "كابلهاي مخابراتي شهيد قندي", - "توزيع داروهاي دامي داروپخش", - "كارخانجات كابلسازي ايران", - "مهندسي و پشتيباني پخش فرآورده هاي نفتي امين", - "کابل تک", - "گروه بیمه", - "لامپ پارس شهاب", - "بيمه پاسارگاد", - "مازی نور", - "بیمه آسیا", - "مهندسی مپنا مکو", - "بیمه البرز", - "مهندسی و ساخت توربین مپنا توکا", - "بیمه پارسیان", - "مهندسی و ساخت ژنراتور مپنا – پارس", - "بیمه دانا", - "موتوژن", - "بیمه دی", - "نيرو ترانس", - "بیمه نوین", - "پارس نور الکتریک", - "صندوق بیمه سرمایه گذاری فعالیت های معدنی", - "توليدي قوه پارس", - "گروه سرمايه گذاري ها", - "مهندسی و ساخت پره توربين مپنا – پرتو", - "حفیظ سامانه", - "تامین قطعات و تجهیزات سرو نیرو شیراز", - "تکادو", - "صنایع مهتاب خراسان", - "سرمايه گذاري آتيه دماوند", - "صنعتي مهر آباد", - "سرمايه گذاري انديشه محوران", - "گروه كشاورزي ، دامپروري و خدمات وابسته به آن", - "سرمايه گذاري بهمن", - "تلیسه نمونه", - "سرمايه گذاري پارس توشه", - "دانه چین", - "سرمايه گذاري توسعه آذربايجان", - "دامپروری و مرغداری دشت خرمدره", - "سرمايه گذاري توسعه صنعتي ايران", - "دامداری شیر و دام بنیاد", - "سرمايه گذاري توسعه ملي", - "شیر و گوشت زاگرس", - "سرمايه گذاري چشم انداز توسعه شمال", - "کشاورزی ودامپروری بینالود", - "سرمايه گذاري ساختمان ايران – هلدينگ", - "کشاورزی ودامپروری دشت نوین ملایرا", - "سرمايه گذاري سايپا", - "کشاورزی ودامپروری یاسوج", - "سرمايه گذاري سپه", - "کشت و دام قیام اصفهان", - "سرمايه گذاري صندوق بازنشستگي كشوري", - "کشت وصنعت سبز پاسارگاد", - "سرمايه گذاري صنعت بيمه", - "گسترش صنايع و خدمات کشاورزي", - "سرمايه گذاري صنعت ومعدن", - "مجتمع دامداری بیجین", - "سرمايه گذاري گروه صنايع بهشهر ايران", - "مجتمع شیر و گوشت مهدشت", - "سرمايه گذاري گروه صنعتي رنا", - "مگسال", - "سرمايه گذاري معيار صنعت پارس", - "کشت وصنعت پیوند هراز", - "سرمايه گذاري ملت", - "گروه محصولات فلزي", - "سرمايه گذاري ملي ايران", - "صنعتی گام اراک", - "سرمايه گذاري نيرو", - "آریا بارون توس", - "سرمايه گذاري هامون کيش", - "پودر جوش ایران", - "سرمایه گذاری اعتماد جم", - "تولیدی و صنعتی الکترود یزد", - "سرمایه گذاری اقتصاد نوین", - "جوش و اکسیژن ایران", - "سرمایه گذاری ایساتیس پویا", - "دژپاد", - "سرمایه گذاری پارس آریان", - "سولیران", - "سرمایه گذاری توسعه و عمران استان اردبیل-سبلان سبز", - "صنايع مفتولي زنجان", - "سرمایه گذاری دارویی تامین", - "صنایع آذرآب", - "سرمایه گذاری دانایان پارس", - "صنایع استیل البرز", - "سرمایه گذاری سروش یاران", - "صنایع بسته بندی ایران", - "سرمایه گذاری صندوق بازنشستگی کارکنان بانک ها", - "صنایع بسته بندی مشهد", - "گسترش سرمايه گذاري ايران خودرو", - "صنایع فلزی کوشا", - "گسترش سرمایه گذاری ایرانیان", - "صنعتی آما", - "مديريت سرمايه گذاري اميد", - "صنعتی جام دارو", - "نیرو سرمایه", - "لامیران – تیغ ایران", - "هلدینگ توسعه معادن و صنایع معدنی خاور میانه -میدکو", - "آونگان", - "ملی نفت ایران", - "پارس متال", - "مديريت سرمايه برنا", - "پایساز", - "سرمايه گذاري بوعلي", - "توسعه و گسترش صنایع بسته بندی فلزی", - "سرمايه گذاري سمند", - "تولیدی ابزار مهدی", - "سرمايه گذاري صنايع پتروشيمي", - "گسترش صنایع انرژی آذرآب", - "سرمايه گذاري كار آفرين", - "صنایع فلزی ایران", - "سرمايه گذاري نفت قشم", - "صنعتی کاوه", - "سرمایه گذاری پویا همگام", - "صنعتی ملایر", - "سرمایه گذاری توسعه  الوند غدیر", - "بسته بندي البرز", - "گروه فعاليتهاي پشتيباني و حمل و نقل", - "گروه حمل و نقل، انبارداری و ارتباطات", - "خدمات دريايي تايدواترخاورميانه", - "بنیادبارانداز", - "گروه توليدات پتروشيمي", - "توکا ریل", - "پترو شیمی لاله", - "حمل و نقل آشنا راه سماء", - "پتروشيمي آبادان", - "حمل و نقل بین المللی خلیج فارس", - "پتروشيمي اراك-پتروشیمی شازند", - "حمل و نقل پتروشیمی", - "پتروشيمي اصفهان", - "حمل و نقل توکا", - "پتروشيمي شيراز", - "گروه فرآورده هاي نفتي كك و سوخت هسته اي", - "پتروشیمی  پردیس", - "پالايشگاه نفت تبريز", - "پتروشیمی  زاگرس", - "پالایش نفت آبادان", - "پتروشیمی امیرکبیر", - "پالایش نفت بندر عباس", - "پتروشیمی بندر امام", - "پالایش نفت تهران", - "پتروشیمی بیستون", - "پالایش نفت لاوان", - "پتروشیمی تند گویان", - "پالایشگاه نفت شیراز", - "پتروشیمی جم", - "تجهيز نيروي زنگان", - "پتروشیمی جهرم", - "خدمات حفاری صنایع نفت", - "پتروشیمی خارک", - "نفت ایرانول", - "پتروشیمی خراسان", - "نفت بهران", - "پتروشیمی رجال", - "نفت پارس", - "پتروشیمی فن آوران", - "نگین فخر آذربایجان", - "پتروشیمی مارون", - "توسعه نفت وگاز مپنا", - "پتروشیمی مبین", - "تولیدی مخازن گاز طبیعی آسیا ناما", - "صنایع پتروشیمی کرمانشاه", - "گروه كاشي و سراميك", - "پتروشيمي اروند", - "پارس سرام", - "پتروشيمي برزويه", - "تولید سرام دیر گداز", - "پتروشيمي فجر", - "تولیدی توس چینی", - "مديريت توسعه صنايع پتروشيمي", - "تولیدی گرانیت بهسرام", - "پتروشيمي بوعلي سينا", - "سرامیک طوس", - "پتروشيمي بين الملل", - "صنایع چینی زرین ایران", - "پتروشيمي خوزستان", - "صنایع کاشی اصفهان", - "پتروشيمي پارس", - "صنایع کاشی تیما", - "اوره و ؛آمونیک پتروشیمی زنجان", - "صنایع کاشی نائین", - "پتروشيمي فسا", - "صنایع کاشی و سرامیک الوند", - "پتروشیمی داراب", - "کارخانجات کاشی و سرامیک حافظ", - "پتروشیمی سرمایه گذاری ایرانیان", - "کارخانه چینی ایران", - "پتروشیمی لردگان", - "کاشی بیستون", - "پتروشیمی ممسنی", - "کاشی پارس", - "خاک طلایی توس", - "کاشی تکسرام", - "شهرک صنعتی پتروشیمی زنجان", - "کاشی فیروزه مشهد", - "صنايع پتروشيمي دهدشت", - "کاشی کرد", - "صنایع پتروشیمی تخت جمشید", - "کاشی نیلو", - "صنایع پتروشیمی زنجان", - "کاشی و سرامیک سعدی", - "گروه انبوه سازي، املاك و مستغلات", - "کاشی و سرامیک سینا", - "آ س پ", - "گلسار فارس", - "آذر توسعه مسکن", - "گروه شركتهاي چند رشته اي صنعتي", - "بين المللي توسعه ساختمان", - "سرمايه گذاري غدير", - "پارس مسکن خزر", - "سرمایه گذاری گروه توسعه ملی(سرمایه گذاری بانک ملی ایران", - "توسعه ساختمان خوارزمي", - "گروه ساير وسايل حمل و نقل", - "توسعه صنعت ساختمان غدیرخوزستان", - "سرمايه گذاري اعتباري ايران", - "زرین بنا پارسیان", - "گروه ساخت راديو، تلويزيون و دستگاهها و وسايل ارتباطي", - "ساختمان اصفهان", - "آريا الكترونيك ايران", - "ساختماني برج ناهيد", - "پارس الكتريك", - "سامان گستر اصفهان", - "شهاب", - "سرمايه گذاري توسعه شهري توس گستر", - "صنايع مخابراتي راه دور ايران", - "سرمايه گذاري توسعه وساختماني برج آوران", - "فن آوران انیاک", - "سرمايه گذاري ساختمان نوین", - "كارخانجات صنعتي پيام", - "سرمايه گذاري شاهد", - "كارخانجات مخابراتي ايران", - "سرمايه گذاري و توسعه خوزستان", - "مرکز ماشینهای اداری ایران", - "سرمایه گذاری مسکن تهران", - "گروه محصولات چوبي", - "سرمایه گذاری مسکن شمال شرق", - "ایزوفام", - "شهرسازی و خانه سازی باغ میشه", - "توليد فيبر ايران", - "صبا آرمه", - "صنايع چوب خزر کاسپين", - "طرح ساختمان پارسا", - "نئوپان 22 بهمن", - "عمران و توسعه شاهد", - "سخت آژند", - "گروه شرکت های مشاوره تبلیغاتی", - "موسسه پویندگان توسعه پارس", - # Source: https://en.wikipedia.org/wiki/List_of_companies_of_Iran - "شرکت ملی نفت ایران", - "معادن ایران", - "سازمان نوسازی", - "ایران خودرو", - "امیدان تجارت کیش ", - "سایپا", - "مجتمع فولاد مبارکه", - "بانک پارسیان", - "بانک سامان", - "بانک سپه", - "صنایع پتروشیمی ایران", - "بانک مسکن", - "لایف برد پارسه", - "صنایع پترو شیمی بو علی سینا", - "فولاد خورستان", - "ابر موتور", - "سرمایه‌گذاری بانک ملی", - "ایران خودرو دیزل", - "توسعه صنعتی بوشهر", - "بانک اقتصاد نوین", - "شرکت زامیاد", - "صنایع شیر ایران (پگاه)", - "سرمایه‌گذاری غدیر", - "ایمیدرو", - "کارخانجات داروپخش", - "سایپا دیزل", - "بانک کارآفرین", - "معدنی و صنعتی چادرملو", - "ساخت تأسیسات دریایی ایران", - "اتکا", - "گسترش و نوسازی صنایع ایران", - "تولی‌پرس", - "هواپیمایی آسمان", - "سازمان صنایع هوایی ایران", - "مادیران", - "پارس آنلاین", - "شاتل", - "شرکت مخابرات ایران", - "ایرانسل", - "راه‌آهن ایران", - "هواپیمایی پیام", - "متروی تهران", - "شرکت ملی نفت‌کش ایران", - "پالایش و پخش فراورده‌های نفتی ایران", - "سازمان انرژی اتمی ایران", - "صدا و سیما", - "رجحان", - "شرکت داده‌پردازی ایران", - "گروه هتل‌های هما", - "کیش اورینتال", - "الک تیک", - ] - - def company(self) -> str: - return self.random_element(self.company_names) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fa_IR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/fa_IR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 866f599..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/fa_IR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fi_FI/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/fi_FI/__init__.py deleted file mode 100644 index adfecfb..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/fi_FI/__init__.py +++ /dev/null @@ -1,66 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}}", - ) - - company_suffixes = ( - "As Oy", - "Tmi", - "Oy", - "Oyj", - "Ky", - "Osk", - "ry", - ) - - def company_business_id(self) -> str: - """ - Returns Finnish company Business Identity Code (y-tunnus). - Format is 8 digits - e.g. FI99999999,[8] last digit is a check - digit utilizing MOD 11-2. The first digit is zero for some old - organizations. This function provides current codes starting with - non-zero. - """ - - def calculate_checksum(number: str) -> str: - """Calculate the checksum using mod 11,2 method""" - factors = [7, 9, 10, 5, 8, 4, 2] - sum_ = 0 - for x, y in zip(number, factors): - sum_ = sum_ + int(x) * y - if sum_ % 11 == 1: - raise ValueError("Checksum 1 is invalid") - if sum_ % 11 == 0: - return "0" - else: - return str(11 - sum_ % 11) - - while True: - first_digit = str(self.random_digit_not_null()) - body = first_digit + self.bothify("######") - try: - cs = calculate_checksum(body) - except ValueError: - continue - return body + "-" + str(cs) - - def company_vat(self) -> str: - """ - Returns Finnish VAT identification number (Arvonlisaveronumero). - This can be calculated from company business identity code by - adding prefix "FI" and removing dash before checksum. - """ - - def convert_to_vat(business_id: str) -> str: - """ - Convert business id to VATIN - """ - return "FI" + business_id.replace("-", "") - - return convert_to_vat(self.company_business_id()) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fi_FI/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/fi_FI/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 548a1c3..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/fi_FI/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fil_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/fil_PH/__init__.py deleted file mode 100644 index 01319b3..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/fil_PH/__init__.py +++ /dev/null @@ -1,94 +0,0 @@ -from collections import OrderedDict -from typing import Sequence - -from ..en_PH import Provider as EnPhProvider - - -class Provider(EnPhProvider): - """ - Provider for company names for fil_PH locale - - Companies in the Philippines rarely have Filipino names, and when they do, the English name is usually used way more - frequently by the locals. In some cases, the Filipino names are more like in Taglish, so for the purposes of this - provider, only English company names will be generated for this locale. - - Company and brand taglines in pure Filipino, however, are much more common, so this provider will generate catch - phrases in pure Filipino randomly alongside the English ones. - """ - - catch_phrase_formats = OrderedDict( - [ - ("{{english_catch_phrase}}", 0.64), - ( - "Ang {{random_noun_ish_good_trait}} ng {{random_object_of_concern}}!", - 0.12, - ), - ( - "Serbisyong {{random_good_service_adjective}} para sa {{random_object_of_concern}}!", - 0.12, - ), - ("Kahit kailan, {{random_good_service_adjective_chain}}!", 0.12), - ] - ) - noun_ish_good_traits = ( - "bida", - "ginhawa", - "haligi", - "karangalan", - "lingkod", - "liwanag", - "numero uno", - "pag-asa", - "tulay", - ) - good_service_adjectives = ( - "bida", - "dekalidad", - "hindi umaatras", - "kakaiba", - "maasahan", - "magaling", - "mapatitiwalaan", - "numero uno", - "panalo", - "tagumpay", - "tama", - "tapat", - "totoo", - "tunay", - "walang kapantay", - "walang katulad", - "walang tatalo", - ) - objects_of_concern = [ - "Filipino", - "Pilipinas", - "Pilipino", - "Pinoy", - "bahay", - "bansa", - "bayan", - "buhay", - "mamamayan", - "mundo", - "tahanan", - ] - - def random_noun_ish_good_trait(self) -> str: - return self.random_element(self.noun_ish_good_traits) - - def random_good_service_adjective(self) -> str: - return self.random_element(self.good_service_adjectives) - - def random_good_service_adjective_chain(self) -> str: - adjectives: Sequence[str] = self.random_elements(self.good_service_adjectives, length=2, unique=True) - return " at ".join(adjectives) - - def random_object_of_concern(self) -> str: - return self.random_element(self.objects_of_concern) - - def english_catch_phrase(self) -> str: - return super().catch_phrase() - - def catch_phrase(self) -> str: - return self.random_element(self.catch_phrase_formats) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fil_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/fil_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3d93046..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/fil_PH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_CH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/fr_CH/__init__.py deleted file mode 100644 index 35d3a8f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_CH/__init__.py +++ /dev/null @@ -1,40 +0,0 @@ -from typing import List - -from ..fr_FR import Provider as CompanyProvider - - -class Provider(CompanyProvider): - company_suffixes = ("SA", "Sàrl.") - - def ide(self) -> str: - """ - Generates a IDE number (9 digits). - http://www.bfs.admin.ch/bfs/portal/fr/index/themen/00/05/blank/03/02.html - """ - - def _checksum(digits: List[int]) -> int: - factors = (5, 4, 3, 2, 7, 6, 5, 4) - sum_ = 0 - for i in range(len(digits)): - sum_ += digits[i] * factors[i] - return sum_ % 11 - - while True: - # create an array of first 8 elements initialized randomly - digits = self.generator.random.sample(range(10), 8) - # sum those 8 digits according to (part of) the "modulo 11" - sum_ = _checksum(digits) - # determine the last digit to make it qualify the test - control_number = 11 - sum_ - if control_number != 10: - digits.append(control_number) - break - - digits = "".join([str(digit) for digit in digits]) - # finally return our random but valid BSN - return "CHE-" + digits[0:3] + "." + digits[3:6] + "." + digits[6:9] - - uid = ide - # uid: german name for ide - idi = ide - # idi: italian name for ide diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_CH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/fr_CH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 9bcfc3e..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_CH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_DZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/fr_DZ/__init__.py deleted file mode 100644 index 3f808a8..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_DZ/__init__.py +++ /dev/null @@ -1,87 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - """Company provider for fr_DZ locale (Algeria, French-language).""" - - # Sources: - # - https://www.commerce.gov.dz/fr/choix-de-la-forme-juridique-de-votre-entreprise-1 - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}} et Associés", - "{{last_name}} & {{last_name}}", - "{{last_name}}", - ) - - company_suffixes = ( - "SARL", - "S.A.R.L.", - "SPA", - "S.P.A.", - "EURL", - "E.U.R.L.", - "SNC", - "S.N.C.", - "SCS", - "S.C.S.", - "SEM", - "EP", - "EPIC", - ) - - catch_phrase_formats = ("{{catch_phrase_noun}} {{catch_phrase_verb}} {{catch_phrase_attribute}}",) - - nouns = ( - "la qualité", - "l'excellence", - "la confiance", - "le développement", - "la croissance", - "l'innovation", - "la performance", - "le progrès", - "la réussite", - "le service", - "la sécurité", - "le partenariat", - ) - - verbs = ( - "de réussir", - "d'avancer", - "d'évoluer", - "de se développer", - "d'innover", - "de progresser", - "d'investir", - "de construire", - "d'atteindre vos objectifs", - "de concrétiser vos projets", - ) - - attributes = ( - "ensemble", - "durablement", - "efficacement", - "avec confiance", - "en toute sécurité", - "pour demain", - "pour l'avenir", - "au service du pays", - "au cœur du développement", - "avec excellence", - ) - - def catch_phrase(self) -> str: - pattern: str = self.random_element(self.catch_phrase_formats) - return self.generator.parse(pattern) - - def catch_phrase_noun(self) -> str: - return self.random_element(self.nouns) - - def catch_phrase_verb(self) -> str: - return self.random_element(self.verbs) - - def catch_phrase_attribute(self) -> str: - return self.random_element(self.attributes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_DZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/fr_DZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index c50c0f0..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_DZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_FR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/fr_FR/__init__.py deleted file mode 100644 index 6365e40..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_FR/__init__.py +++ /dev/null @@ -1,439 +0,0 @@ -from typing import Optional, Tuple - -from faker.utils.checksums import calculate_luhn - -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}}", - "{{last_name}}", - ) - - catch_phrase_formats = ("{{catch_phrase_noun}} {{catch_phrase_verb}} {{catch_phrase_attribute}}",) - - nouns = ( - "la sécurité", - "le plaisir", - "le confort", - "la simplicité", - "l'assurance", - "l'art", - "le pouvoir", - "le droit", - "la possibilité", - "l'avantage", - "la liberté", - ) - - verbs = ( - "de rouler", - "d'avancer", - "d'évoluer", - "de changer", - "d'innover", - "de louer", - "d'atteindre vos buts", - "de concrétiser vos projets", - ) - - attributes = ( - "de manière efficace", - "plus rapidement", - "plus facilement", - "plus simplement", - "en toute tranquilité", - "avant-tout", - "autrement", - "naturellement", - "à la pointe", - "sans soucis", - "à l'état pur", - "à sa source", - "de manière sûre", - "en toute sécurité", - ) - - company_suffixes: Tuple[str, ...] = ( - "SA", - "S.A.", - "SARL", - "S.A.R.L.", - "S.A.S.", - "et Fils", - ) - - siren_format = "### ### ###" - - # Data from: - # https://www.insee.fr/fr/information/2120875 - # fmt: off - ape_codes_naf_2003 = [ - "01.11Z", "01.12Z", "01.13Z", "01.14Z", "01.15Z", "01.16Z", "01.19Z", - "01.21Z", "01.22Z", "01.23Z", "01.24Z", "01.25Z", "01.26Z", "01.27Z", - "01.28Z", "01.29Z", "01.30Z", "01.41Z", "01.42Z", "01.43Z", "01.44Z", - "01.45Z", "01.46Z", "01.47Z", "01.49Z", "01.50Z", "01.61Z", "01.62Z", - "01.63Z", "01.64Z", "01.70Z", "02.10Z", "02.20Z", "02.30Z", "02.40Z", - "03.11Z", "03.12Z", "03.21Z", "03.22Z", "05.10Z", "05.20Z", "06.10Z", - "06.20Z", "07.10Z", "07.21Z", "07.29Z", "08.11Z", "08.12Z", "08.91Z", - "08.92Z", "08.93Z", "08.99Z", "09.10Z", "09.90Z", "10.11Z", "10.12Z", - "10.13A", "10.13B", "10.20Z", "10.31Z", "10.32Z", "10.39A", "10.39B", - "10.41A", "10.41B", "10.42Z", "10.51A", "10.51B", "10.51C", "10.51D", - "10.52Z", "10.61A", "10.61B", "10.62Z", "10.71A", "10.71B", "10.71C", - "10.71D", "10.72Z", "10.73Z", "10.81Z", "10.82Z", "10.83Z", "10.84Z", - "10.85Z", "10.86Z", "10.89Z", "10.91Z", "10.92Z", "11.01Z", "11.02A", - "11.02B", "11.03Z", "11.04Z", "11.05Z", "11.06Z", "11.07A", "11.07B", - "12.00Z", "13.10Z", "13.20Z", "13.30Z", "13.91Z", "13.92Z", "13.93Z", - "13.94Z", "13.95Z", "13.96Z", "13.99Z", "14.11Z", "14.12Z", "14.13Z", - "14.14Z", "14.19Z", "14.20Z", "14.31Z", "14.39Z", "15.11Z", "15.12Z", - "15.20Z", "16.10A", "16.10B", "16.21Z", "16.22Z", "16.23Z", "16.24Z", - "16.29Z", "17.11Z", "17.12Z", "17.21A", "17.21B", "17.21C", "17.22Z", - "17.23Z", "17.24Z", "17.29Z", "18.11Z", "18.12Z", "18.13Z", "18.14Z", - "18.20Z", "19.10Z", "19.20Z", "20.11Z", "20.12Z", "20.13A", "20.13B", - "20.14Z", "20.15Z", "20.16Z", "20.17Z", "20.20Z", "20.30Z", "20.41Z", - "20.42Z", "20.51Z", "20.52Z", "20.53Z", "20.59Z", "20.60Z", "21.10Z", - "21.20Z", "22.11Z", "22.19Z", "22.21Z", "22.22Z", "22.23Z", "22.29A", - "22.29B", "23.11Z", "23.12Z", "23.13Z", "23.14Z", "23.19Z", "23.20Z", - "23.31Z", "23.32Z", "23.41Z", "23.42Z", "23.43Z", "23.44Z", "23.49Z", - "23.51Z", "23.52Z", "23.61Z", "23.62Z", "23.63Z", "23.64Z", "23.65Z", - "23.69Z", "23.70Z", "23.91Z", "23.99Z", "24.10Z", "24.20Z", "24.31Z", - "24.32Z", "24.33Z", "24.34Z", "24.41Z", "24.42Z", "24.43Z", "24.44Z", - "24.45Z", "24.46Z", "24.51Z", "24.52Z", "24.53Z", "24.54Z", "25.11Z", - "25.12Z", "25.21Z", "25.29Z", "25.30Z", "25.40Z", "25.50A", "25.50B", - "25.61Z", "25.62A", "25.62B", "25.71Z", "25.72Z", "25.73A", "25.73B", - "25.91Z", "25.92Z", "25.93Z", "25.94Z", "25.99A", "25.99B", "26.11Z", - "26.12Z", "26.20Z", "26.30Z", "26.40Z", "26.51A", "26.51B", "26.52Z", - "26.60Z", "26.70Z", "26.80Z", "27.11Z", "27.12Z", "27.20Z", "27.31Z", - "27.32Z", "27.33Z", "27.40Z", "27.51Z", "27.52Z", "27.90Z", "28.11Z", - "28.12Z", "28.13Z", "28.14Z", "28.15Z", "28.21Z", "28.22Z", "28.23Z", - "28.24Z", "28.25Z", "28.29A", "28.29B", "28.30Z", "28.41Z", "28.49Z", - "28.91Z", "28.92Z", "28.93Z", "28.94Z", "28.95Z", "28.96Z", "28.99A", - "28.99B", "29.10Z", "29.20Z", "29.31Z", "29.32Z", "30.11Z", "30.12Z", - "30.20Z", "30.30Z", "30.40Z", "30.91Z", "30.92Z", "30.99Z", "31.01Z", - "31.02Z", "31.03Z", "31.09A", "31.09B", "32.11Z", "32.12Z", "32.13Z", - "32.20Z", "32.30Z", "32.40Z", "32.50A", "32.50B", "32.91Z", "32.99Z", - "33.11Z", "33.12Z", "33.13Z", "33.14Z", "33.15Z", "33.16Z", "33.17Z", - "33.19Z", "33.20A", "33.20B", "33.20C", "33.20D", "35.11Z", "35.12Z", - "35.13Z", "35.14Z", "35.21Z", "35.22Z", "35.23Z", "35.30Z", "36.00Z", - "37.00Z", "38.11Z", "38.12Z", "38.21Z", "38.22Z", "38.31Z", "38.32Z", - "39.00Z", "41.10A", "41.10B", "41.10C", "41.10D", "41.20A", "41.20B", - "42.11Z", "42.12Z", "42.13A", "42.13B", "42.21Z", "42.22Z", "42.91Z", - "42.99Z", "43.11Z", "43.12A", "43.12B", "43.13Z", "43.21A", "43.21B", - "43.22A", "43.22B", "43.29A", "43.29B", "43.31Z", "43.32A", "43.32B", - "43.32C", "43.33Z", "43.34Z", "43.39Z", "43.91A", "43.91B", "43.99A", - "43.99B", "43.99C", "43.99D", "43.99E", "45.11Z", "45.19Z", "45.20A", - "45.20B", "45.31Z", "45.32Z", "45.40Z", "46.11Z", "46.12A", "46.12B", - "46.13Z", "46.14Z", "46.15Z", "46.16Z", "46.17A", "46.17B", "46.18Z", - "46.19A", "46.19B", "46.21Z", "46.22Z", "46.23Z", "46.24Z", "46.31Z", - "46.32A", "46.32B", "46.32C", "46.33Z", "46.34Z", "46.35Z", "46.36Z", - "46.37Z", "46.38A", "46.38B", "46.39A", "46.39B", "46.41Z", "46.42Z", - "46.43Z", "46.44Z", "46.45Z", "46.46Z", "46.47Z", "46.48Z", "46.49Z", - "46.51Z", "46.52Z", "46.61Z", "46.62Z", "46.63Z", "46.64Z", "46.65Z", - "46.66Z", "46.69A", "46.69B", "46.69C", "46.71Z", "46.72Z", "46.73A", - "46.73B", "46.74A", "46.74B", "46.75Z", "46.76Z", "46.77Z", "46.90Z", - "47.11A", "47.11B", "47.11C", "47.11D", "47.11E", "47.11F", "47.19A", - "47.19B", "47.21Z", "47.22Z", "47.23Z", "47.24Z", "47.25Z", "47.26Z", - "47.29Z", "47.30Z", "47.41Z", "47.42Z", "47.43Z", "47.51Z", "47.52A", - "47.52B", "47.53Z", "47.54Z", "47.59A", "47.59B", "47.61Z", "47.62Z", - "47.63Z", "47.64Z", "47.65Z", "47.71Z", "47.72A", "47.72B", "47.73Z", - "47.74Z", "47.75Z", "47.76Z", "47.77Z", "47.78A", "47.78B", "47.78C", - "47.79Z", "47.81Z", "47.82Z", "47.89Z", "47.91A", "47.91B", "47.99A", - "47.99B", "49.10Z", "49.20Z", "49.31Z", "49.32Z", "49.39A", "49.39B", - "49.39C", "49.41A", "49.41B", "49.41C", "49.42Z", "49.50Z", "50.10Z", - "50.20Z", "50.30Z", "50.40Z", "51.10Z", "51.21Z", "51.22Z", "52.10A", - "52.10B", "52.21Z", "52.22Z", "52.23Z", "52.24A", "52.24B", "52.29A", - "52.29B", "53.10Z", "53.20Z", "55.10Z", "55.20Z", "55.30Z", "55.90Z", - "56.10A", "56.10B", "56.10C", "56.21Z", "56.29A", "56.29B", "56.30Z", - "58.11Z", "58.12Z", "58.13Z", "58.14Z", "58.19Z", "58.21Z", "58.29A", - "58.29B", "58.29C", "59.11A", "59.11B", "59.11C", "59.12Z", "59.13A", - "59.13B", "59.14Z", "59.20Z", "60.10Z", "60.20A", "60.20B", "61.10Z", - "61.20Z", "61.30Z", "61.90Z", "62.01Z", "62.02A", "62.02B", "62.03Z", - "62.09Z", "63.11Z", "63.12Z", "63.91Z", "63.99Z", "64.11Z", "64.19Z", - "64.20Z", "64.30Z", "64.91Z", "64.92Z", "64.99Z", "65.11Z", "65.12Z", - "65.20Z", "65.30Z", "66.11Z", "66.12Z", "66.19A", "66.19B", "66.21Z", - "66.22Z", "66.29Z", "66.30Z", "68.10Z", "68.20A", "68.20B", "68.31Z", - "68.32A", "68.32B", "69.10Z", "69.20Z", "70.10Z", "70.21Z", "70.22Z", - "71.11Z", "71.12A", "71.12B", "71.20A", "71.20B", "72.11Z", "72.19Z", - "72.20Z", "73.11Z", "73.12Z", "73.20Z", "74.10Z", "74.20Z", "74.30Z", - "74.90A", "74.90B", "75.00Z", "77.11A", "77.11B", "77.12Z", "77.21Z", - "77.22Z", "77.29Z", "77.31Z", "77.32Z", "77.33Z", "77.34Z", "77.35Z", - "77.39Z", "77.40Z", "78.10Z", "78.20Z", "78.30Z", "79.11Z", "79.12Z", - "79.90Z", "80.10Z", "80.20Z", "80.30Z", "81.10Z", "81.21Z", "81.22Z", - "81.29A", "81.29B", "81.30Z", "82.11Z", "82.19Z", "82.20Z", "82.30Z", - "82.91Z", "82.92Z", "82.99Z", "84.11Z", "84.12Z", "84.13Z", "84.21Z", - "84.22Z", "84.23Z", "84.24Z", "84.25Z", "84.30A", "84.30B", "84.30C", - "85.10Z", "85.20Z", "85.31Z", "85.32Z", "85.41Z", "85.42Z", "85.51Z", - "85.52Z", "85.53Z", "85.59A", "85.59B", "85.60Z", "86.10Z", "86.21Z", - "86.22A", "86.22B", "86.22C", "86.23Z", "86.90A", "86.90B", "86.90C", - "86.90D", "86.90E", "86.90F", "87.10A", "87.10B", "87.10C", "87.20A", - "87.20B", "87.30A", "87.30B", "87.90A", "87.90B", "88.10A", "88.10B", - "88.10C", "88.91A", "88.91B", "88.99A", "88.99B", "90.01Z", "90.02Z", - "90.03A", "90.03B", "90.04Z", "91.01Z", "91.02Z", "91.03Z", "91.04Z", - "92.00Z", "93.11Z", "93.12Z", "93.13Z", "93.19Z", "93.21Z", "93.29Z", - "94.11Z", "94.12Z", "94.20Z", "94.91Z", "94.92Z", "94.99Z", "95.11Z", - "95.12Z", "95.21Z", "95.22Z", "95.23Z", "95.24Z", "95.25Z", "95.29Z", - "96.01A", "96.01B", "96.02A", "96.02B", "96.03Z", "96.04Z", "96.09Z", - "97.00Z", "98.10Z", "98.20Z", "99.00Z", - ] - # fmt: on - - # Data from: - # https://www.insee.fr/fr/information/8181066 - # fmt: off - ape_codes_naf_2025 = [ - "01.11Y", "01.12Y", "01.13Y", "01.14Y", "01.15Y", "01.16Y", "01.19Y", - "01.21Y", "01.22Y", "01.23Y", "01.24Y", "01.25Y", "01.26Y", "01.27Y", - "01.28Y", "01.29Y", "01.30Y", "01.41Y", "01.42Y", "01.43Y", "01.44Y", - "01.45Y", "01.46Y", "01.47Y", "01.48G", "01.48H", "01.48J", "01.50Y", - "01.61Y", "01.62Y", "01.63Y", "01.70Y", "02.10Y", "02.20Y", "02.30Y", - "02.40Y", "03.11Y", "03.12Y", "03.21Y", "03.22Y", "03.30Y", "05.10Y", - "05.20Y", "06.10Y", "06.20Y", "07.10Y", "07.21Y", "07.29Y", "08.11Y", - "08.12Y", "08.91Y", "08.92Y", "08.93Y", "08.99Y", "09.10Y", "09.90Y", - "10.11Y", "10.12Y", "10.13G", "10.13H", "10.20Y", "10.31Y", "10.32Y", - "10.39G", "10.39H", "10.41Y", "10.42Y", "10.51G", "10.51H", "10.51J", - "10.52Y", "10.61G", "10.61H", "10.62Y", "10.71G", "10.71H", "10.71J", - "10.72Y", "10.73Y", "10.81Y", "10.82Y", "10.83Y", "10.84Y", "10.85Y", - "10.86Y", "10.89Y", "10.91Y", "10.92Y", "11.01Y", "11.02G", "11.02H", - "11.03Y", "11.04Y", "11.05Y", "11.06Y", "11.07G", "11.07H", "12.00Y", - "13.10Y", "13.20Y", "13.30Y", "13.91Y", "13.92Y", "13.93Y", "13.94Y", - "13.95Y", "13.96Y", "13.99Y", "14.10Y", "14.21Y", "14.22Y", "14.23Y", - "14.24Y", "14.29Y", "15.11Y", "15.12Y", "15.20Y", "16.11Y", "16.12Y", - "16.21Y", "16.22Y", "16.23Y", "16.24Y", "16.25Y", "16.26Y", "16.27Y", - "16.28Y", "17.11Y", "17.12Y", "17.21Y", "17.22Y", "17.23Y", "17.24Y", - "17.25Y", "18.11Y", "18.12Y", "18.13Y", "18.14Y", "18.20Y", "19.10Y", - "19.20Y", "20.11Y", "20.12Y", "20.13Y", "20.14Y", "20.15Y", "20.16Y", - "20.17Y", "20.20Y", "20.30Y", "20.41Y", "20.42Y", "20.51Y", "20.59Y", - "20.60Y", "21.10Y", "21.20Y", "22.11Y", "22.12Y", "22.21Y", "22.22Y", - "22.23Y", "22.24Y", "22.25Y", "22.26Y", "23.11Y", "23.12Y", "23.13Y", - "23.14Y", "23.15Y", "23.20Y", "23.31Y", "23.32Y", "23.41Y", "23.42Y", - "23.43Y", "23.44Y", "23.45Y", "23.51Y", "23.52Y", "23.61Y", "23.62Y", - "23.63Y", "23.64Y", "23.65Y", "23.66Y", "23.70Y", "23.91Y", "23.99Y", - "24.10Y", "24.20Y", "24.31Y", "24.32Y", "24.33Y", "24.34Y", "24.41Y", - "24.42Y", "24.43Y", "24.44Y", "24.45Y", "24.46Y", "24.51Y", "24.52Y", - "24.53Y", "24.54Y", "25.11Y", "25.12Y", "25.21Y", "25.22Y", "25.30Y", - "25.40Y", "25.51Y", "25.52Y", "25.53Y", "25.61Y", "25.62Y", "25.63Y", - "25.91Y", "25.92Y", "25.93Y", "25.94Y", "25.99Y", "26.11Y", "26.12Y", - "26.20Y", "26.30Y", "26.40Y", "26.51Y", "26.52Y", "26.60Y", "26.70Y", - "27.11Y", "27.12Y", "27.20Y", "27.31Y", "27.32Y", "27.33Y", "27.40Y", - "27.51Y", "27.52Y", "27.90Y", "28.11Y", "28.12Y", "28.13G", "28.13H", - "28.14Y", "28.15Y", "28.21Y", "28.22Y", "28.23Y", "28.24Y", "28.25Y", - "28.29Y", "28.30Y", "28.41Y", "28.42Y", "28.91Y", "28.92Y", "28.93Y", - "28.94Y", "28.95Y", "28.96Y", "28.97Y", "28.99Y", "29.10Y", "29.20Y", - "29.31Y", "29.32Y", "30.11Y", "30.12Y", "30.13Y", "30.20Y", "30.31Y", - "30.32Y", "30.40Y", "30.91Y", "30.92Y", "30.99Y", "31.00G", "31.00H", - "31.00J", "32.11Y", "32.12Y", "32.13Y", "32.20Y", "32.30Y", "32.40Y", - "32.50Y", "32.91Y", "32.99Y", "33.11Y", "33.12Y", "33.13Y", "33.14Y", - "33.15Y", "33.16Y", "33.17Y", "33.18G", "33.18H", "33.19Y", "33.20Y", - "35.11Y", "35.12Y", "35.13Y", "35.14Y", "35.15G", "35.15H", "35.16Y", - "35.21Y", "35.22Y", "35.23Y", "35.24Y", "35.30Y", "35.40Y", "36.00Y", - "37.00Y", "38.11Y", "38.12Y", "38.21Y", "38.22Y", "38.23Y", "38.31Y", - "38.32Y", "38.33Y", "39.00Y", "41.00G", "41.00H", "42.11Y", "42.12Y", - "42.13G", "42.13H", "42.21Y", "42.22Y", "42.91Y", "42.99Y", "43.11Y", - "43.12G", "43.12H", "43.13Y", "43.21G", "43.21H", "43.22G", "43.22H", - "43.23Y", "43.24Y", "43.31Y", "43.32G", "43.32H", "43.33Y", "43.34G", - "43.34H", "43.35Y", "43.41G", "43.41H", "43.41J", "43.42G", "43.42H", - "43.42J", "43.50Y", "43.60Y", "43.91Y", "43.99G", "43.99H", "46.11Y", - "46.12Y", "46.13Y", "46.14Y", "46.15Y", "46.16Y", "46.17G", "46.17H", - "46.18Y", "46.19G", "46.19H", "46.21Y", "46.22Y", "46.23Y", "46.24Y", - "46.31Y", "46.32G", "46.32H", "46.33Y", "46.34Y", "46.35Y", "46.36Y", - "46.37Y", "46.38Y", "46.39Y", "46.41Y", "46.42Y", "46.43G", "46.43H", - "46.44Y", "46.45Y", "46.46Y", "46.47Y", "46.48Y", "46.49Y", "46.50Y", - "46.61Y", "46.62Y", "46.63Y", "46.64G", "46.64H", "46.64J", "46.64K", - "46.71G", "46.71H", "46.72Y", "46.73Y", "46.81Y", "46.82Y", "46.83G", - "46.83H", "46.83J", "46.84G", "46.84H", "46.85Y", "46.86Y", "46.87Y", - "46.89Y", "46.90Y", "47.11G", "47.11H", "47.11J", "47.11K", "47.11L", - "47.12G", "47.12H", "47.21Y", "47.22Y", "47.23Y", "47.24Y", "47.25Y", - "47.26Y", "47.27G", "47.27H", "47.30Y", "47.40Y", "47.51Y", "47.52G", - "47.52H", "47.53Y", "47.54Y", "47.55G", "47.55H", "47.61Y", "47.62Y", - "47.63Y", "47.64Y", "47.69Y", "47.71Y", "47.72G", "47.72H", "47.73Y", - "47.74G", "47.74H", "47.75Y", "47.76Y", "47.77Y", "47.78G", "47.78H", - "47.79G", "47.79H", "47.81Y", "47.82Y", "47.83Y", "47.91Y", "47.92G", - "47.92H", "47.92J", "49.11Y", "49.12Y", "49.20Y", "49.31G", "49.31H", - "49.32Y", "49.33G", "49.33H", "49.34Y", "49.39Y", "49.41G", "49.41H", - "49.41J", "49.42Y", "49.50Y", "50.10Y", "50.20Y", "50.30Y", "50.40Y", - "51.10Y", "51.21Y", "51.22Y", "52.10G", "52.10H", "52.21Y", "52.22Y", - "52.23Y", "52.24G", "52.24H", "52.25Y", "52.26Y", "52.31Y", "52.32Y", - "53.10Y", "53.20G", "53.20H", "53.30Y", "55.10Y", "55.20Y", "55.30Y", - "55.40Y", "55.90Y", "56.11G", "56.11H", "56.11J", "56.12Y", "56.21Y", - "56.22Y", "56.30Y", "56.40Y", "58.11Y", "58.12Y", "58.13Y", "58.19Y", - "58.21Y", "58.29Y", "59.11G", "59.11H", "59.11J", "59.11K", "59.12Y", - "59.13Y", "59.14Y", "59.20Y", "60.10Y", "60.20G", "60.20H", "60.31Y", - "60.39Y", "61.10Y", "61.20Y", "61.90Y", "62.10Y", "62.20G", "62.20H", - "62.90Y", "63.10Y", "63.91Y", "63.92Y", "64.11Y", "64.19Y", "64.21Y", - "64.22Y", "64.31Y", "64.32Y", "64.91Y", "64.92Y", "64.99Y", "65.11Y", - "65.12Y", "65.20Y", "65.30Y", "66.11Y", "66.12Y", "66.19G", "66.19H", - "66.21Y", "66.22Y", "66.29Y", "66.30Y", "68.11Y", "68.12Y", "68.20G", - "68.20H", "68.31Y", "68.32G", "68.32H", "69.10Y", "69.20Y", "70.10Y", - "70.20Y", "71.11Y", "71.12Y", "71.20G", "71.20H", "72.10G", "72.10H", - "72.20Y", "73.11Y", "73.12Y", "73.20Y", "73.30Y", "74.11Y", "74.12Y", - "74.13Y", "74.14Y", "74.20Y", "74.30Y", "74.91Y", "74.99Y", "75.00Y", - "77.11Y", "77.12Y", "77.21Y", "77.22Y", "77.31Y", "77.32Y", "77.33Y", - "77.34Y", "77.35Y", "77.39Y", "77.40G", "77.40H", "77.51Y", "77.52Y", - "78.10Y", "78.20G", "78.20H", "79.11Y", "79.12Y", "79.90Y", "80.01Y", - "80.09Y", "81.10Y", "81.21Y", "81.22Y", "81.23G", "81.23H", "81.30Y", - "82.10Y", "82.20Y", "82.30Y", "82.40Y", "82.91Y", "82.92Y", "82.99Y", - "84.11Y", "84.12Y", "84.13Y", "84.21Y", "84.22Y", "84.23Y", "84.24Y", - "84.25Y", "84.30G", "84.30H", "84.30J", "85.10Y", "85.20Y", "85.31Y", - "85.32Y", "85.33Y", "85.40Y", "85.51Y", "85.52Y", "85.53Y", "85.59G", - "85.59H", "85.61Y", "85.69Y", "86.10Y", "86.21Y", "86.22Y", "86.23Y", - "86.91Y", "86.92Y", "86.93Y", "86.94G", "86.94H", "86.95Y", "86.96Y", - "86.97Y", "86.99Y", "87.10G", "87.10H", "87.10J", "87.20G", "87.20H", - "87.30G", "87.30H", "87.91Y", "87.99G", "87.99H", "88.10G", "88.10H", - "88.10J", "88.91G", "88.91H", "88.91J", "88.99G", "88.99H", "90.11Y", - "90.12Y", "90.13Y", "90.20Y", "90.31G", "90.31H", "90.39G", "90.39H", - "91.11Y", "91.12Y", "91.21Y", "91.22Y", "91.30Y", "91.41Y", "91.42Y", - "92.00Y", "93.11Y", "93.12Y", "93.13Y", "93.19Y", "93.21Y", "93.29Y", - "94.11Y", "94.12Y", "94.20Y", "94.91Y", "94.92Y", "94.99Y", "95.10Y", - "95.21Y", "95.22Y", "95.23Y", "95.24Y", "95.25Y", "95.29G", "95.29H", - "95.31G", "95.31H", "95.32Y", "95.40Y", "96.10G", "96.10H", "96.21G", - "96.21H", "96.22Y", "96.23Y", "96.30Y", "96.40Y", "96.91Y", "96.99G", - "96.99H", "97.00Y", "98.10Y", "98.20Y", "99.00Y", - ] - # fmt: on - - def catch_phrase_noun(self) -> str: - """ - Returns a random catch phrase noun. - """ - return self.random_element(self.nouns) - - def catch_phrase_attribute(self) -> str: - """ - Returns a random catch phrase attribute. - """ - return self.random_element(self.attributes) - - def catch_phrase_verb(self) -> str: - """ - Returns a random catch phrase verb. - """ - return self.random_element(self.verbs) - - def catch_phrase(self) -> str: - """ - :example: 'integrate extensible convergence' - """ - catch_phrase = "" - while True: - pattern: str = self.random_element(self.catch_phrase_formats) - catch_phrase = self.generator.parse(pattern) - catch_phrase = catch_phrase[0].upper() + catch_phrase[1:] - - if self._is_catch_phrase_valid(catch_phrase): - break - - return catch_phrase - - # An array containing string which should not appear twice in a catch phrase - words_which_should_not_appear_twice = ("sécurité", "simpl") - - def _is_catch_phrase_valid(self, catch_phrase: str) -> bool: - """ - Validates a french catch phrase. - - :param catch_phrase: The catch phrase to validate. - """ - for word in self.words_which_should_not_appear_twice: - # Fastest way to check if a piece of word does not appear twice. - begin_pos = catch_phrase.find(word) - end_pos = catch_phrase.find(word, begin_pos + 1) - - if begin_pos != -1 and begin_pos != end_pos: - return False - - return True - - def siren(self) -> str: - """ - Generates a siren number (9 digits). Formatted as '### ### ###'. - """ - code = self.numerify("########") - luhn_checksum = str(calculate_luhn(float(code))) - return f"{code[:3]} {code[3:6]} {code[6:]}{luhn_checksum}" - - def siret(self, max_sequential_digits: int = 2) -> str: - """ - Generates a siret number (14 digits). - It is in fact the result of the concatenation of a siren number (9 digits), - a sequential number (4 digits) and a control number (1 digit) concatenation. - If $max_sequential_digits is invalid, it is set to 2. - - The siret number is formatted as '### ### ### #####'. - :param max_sequential_digits The maximum number of digits for the sequential number (> 0 && <= 4). - """ - if max_sequential_digits > 4 or max_sequential_digits <= 0: - max_sequential_digits = 2 - - sequential_number = str(self.random_number(max_sequential_digits)).zfill(4) - - code = self.siren().replace(" ", "") + sequential_number - luhn_checksum = str(calculate_luhn(float(code))) - return f"{code[:3]} {code[3:6]} {code[6:9]} {code[9:]}{luhn_checksum}" - - def company_vat(self, siren: str = "") -> str: - """ - Generate a valid TVA (French VAT) number. - It is the concatenation of "FR", siren checksum and siren number - - :param siren: Force SIREN number - - :sample: - :sample: siren="123 456 789" - """ - siren = siren or self.siren() - siren_int = int("".join(c for c in siren if c.isdigit())) - checksum = (12 + 3 * (siren_int % 97)) % 97 - return f"FR {checksum:02} {siren}" - - def ape_code(self, version: Optional[str] = "naf-2003") -> str: - """ - Generate an APE code (also known as NAF code). - It identify french company main branch of activity. - - It provide numbers from nomenclature `version` `naf-2003` (default) - or `naf-2025`. - To have it generate a truly random (and possibly invalid number) set - `version` to `None` - - - :param version: Set to ``"naf-2003"`` to return a valid NAF 2003 APE code. - Set to ``"naf-2025"`` to return a valid NAF 2025 APE code. - Set to ``None`` to return a truly random and possibly invalid number - Defaults to ``"naf-2003"`` - - :sample: - :sample: version="naf-2003" - :sample: version="naf-2025" - :sample: version=None - """ - if version is None: - numbers = self.numerify("##.##") - letter = self.random_uppercase_letter() - return f"{numbers}{letter}" - if version == "naf-2003": - return self.random_element(self.ape_codes_naf_2003) - if version == "naf-2025": - return self.random_element(self.ape_codes_naf_2025) - raise ValueError("Unsupported NAF version. Set version=None to a truly random number.") - - def rcs_number(self, city: str = "", letter: str = "", siren: str = "") -> str: - """ - Generate a RCS number for french companies. - It is a concatenation of "RCS", a city name, a letter A (if sole proprietorships, or B other companies) - and the company SIREN - - :param city: Force city name - :param letter: Force letter - :param siren: Force SIREN - - :sample: - :sample: siren="123 456 789" - :sample: city="Lyon" letter="B" siren="123 456 789" - """ - city = city or self.generator.city() - letter = letter or self.random_element("AB") - siren = siren or self.siren() - return f"RCS {city} {letter} {siren}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_FR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/fr_FR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e95b448..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_FR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/hr_HR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/hr_HR/__init__.py deleted file mode 100644 index 9a0f6e0..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/hr_HR/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}}", - ) - - company_suffixes = ( - "d.o.o.", - "d.d.", - "j.d.o.o.", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/hr_HR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/hr_HR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 243035d..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/hr_HR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/hu_HU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/hu_HU/__init__.py deleted file mode 100644 index 7e776fe..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/hu_HU/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}} és {{last_name}} {{company_suffix}}", - "{{last_name}} és társa {{company_suffix}}", - ) - - company_suffixes = ("Kft.", "Kht.", "Zrt.", "Bt.", "Nyrt.", "Kkt.") - - def company_suffix(self) -> str: - return self.random_element(self.company_suffixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/hu_HU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/hu_HU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 52e18f5..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/hu_HU/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/hy_AM/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/hy_AM/__init__.py deleted file mode 100644 index 76cd24a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/hy_AM/__init__.py +++ /dev/null @@ -1,283 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{first_name}} և {{first_name}} {{company_suffix}}", - "{{last_name}} {{company_suffix}}", - "{{last_name}} և {{last_name}} {{company_suffix}}" - "{{last_name}}, {{last_name}} և {{last_name}} {{company_suffix}}", - ) - - company_suffixes = ("ՍՊԸ", "ՀՁ", "ՓԲԸ", "ԲԲԸ", "Գրուպ", "Հոլդինգ") - - catch_phrase_words = ( - ( - "առաջավոր", - "բարելավված", - "ավտոմատացված", - "հավասարակշռված", - "կենտրոնացված", - "համատեղելի", - "կարգավորելի", - "անհատականացված", - "ապակենտրոնացված", - "թվայնացված", - "տարածված", - "փոքրացված", - "ընդլայնված", - "էրգոնիկ", - "բացառիկ", - "երկարացված", - "լիովին կոնֆիգուրացվող", - "ֆունկցիոնալ հիմունքներով", - "հիմնական", - "հորիզոնական", - "իրականացված", - "նորարական", - "ինտեգրված", - "ինտուիտիվ", - "պարտադիր", - "բազմուղի", - "բազմաշերտ", - "ցանցային", - "բաց կոդով", - "օպերատիվ", - "օպտիմալացված", - "օրգանական", - "կազմակերպված", - "կայուն", - "կենսունակ", - "ավարտված", - "բևեռացված", - "կանխարգելող", - "ակտիվ", - "ծրագրավորելի", - "առաջադիմական", - "որակով", - "ռեակտիվ", - "իրականացված", - "նվազեցված", - "դիմացկուն", - "անխափան", - "ապահով", - "համատեղելի", - "հեշտացված", - "փոխարկելի", - "սինխրոնիզացված", - "ունիվերսալ", - "ճկուն", - "վիրտուալ", - ), - ( - "3-րդ սերնդի", - "4-րդ սերնդի", - "5-րդ սերնդի", - "6-րդ սերնդի", - "ասիմետրիկ", - "ասինխրոն", - "թողունակությունը վերահսկվող", - "երկկողմանի", - "հստակ մտածող", - "համաձայնեցված", - "բաղադրյալ", - "դիդակտիկ", - "ուղղորդիչ", - "դիսկրետ", - "բացահայտ", - "գլոբալ", - "բարձր մակարդակի", - "ամբողջական", - "միատարր", - "հիբրիդ", - "ազդեցիկ", - "ինտերակտիվ", - "միջանկյալ", - "առաջատար", - "տեղային", - "լոգիստիկ", - "սիստեմատիկ", - "մոդուլային", - "չեզոք", - "հաջորդ սերնդի", - "օբյեկտի վրա հիմնված", - "օպտիմալ", - "արմատական", - "փոխադարձ", - "ռեգիոնալ", - "երկրորդական", - "կայուն", - "ստատիկ", - "համակարգված", - "համակարգային", - "շոշափելի", - "երրորդական", - "անցումային", - "միատեսակ", - "լավ մոդուլացված", - "առանց թերությունների", - ), - ( - "կարողություն", - "մուտք", - "ադապտեր", - "ալգորիթմ", - "միություն", - "վերլուծիչ", - "ծրագրային ապահովում", - "մոտեցում", - "արխիվ", - "արհեստական բանականություն", - "վերաբերմունք", - "ընդունակություն", - "կարողություն", - "մարտահրավեր", - "գործակցություն", - "բարդություն", - "գաղափար", - "համախմբվածություն", - "տվյալների բազա", - "տվյալների պահեստ", - "սահմանում", - "իմացություն", - "կոդավորում", - "գաղտնագրում", - "կանխատեսում", - "հենքային ծրագիր", - "ֆունկցիա", - "գործառույթ", - "գրաֆիկական ինտերֆեյս", - "սարքային ապահովում", - "հիերարխիա", - "հանգույց", - "ենթակառուցվածք", - "նախաձեռնություն", - "ծրագրի ներդրում", - "հրահանգների հավաքածու", - "ինտերֆեյս", - "ինտրանետ", - "գիտելիքների բազա", - "տեղական ցանց", - "մատրիցա", - "մեթոդաբանություն", - "միջանկյալ շերտ", - "միգրացիա", - "մոդել", - "կարգավորիչ", - "մոնիտորինգ", - "բաց համակարգ", - "պարադիգմ", - "պորտալ", - "գնային կառուցվածք", - "արդյունավետություն", - "նախագիծ", - "ապահովված գիծ", - "ծրագրային ապահովում", - "լուծում", - "ստանդարտացում", - "ստրատեգիա", - "կառուցվածք", - "օպերատիվ խումբ", - "արտադրողականություն", - "ժամանակացույց", - "գործիք", - "օգտագործում", - "կայք", - "աշխատուժ", - ), - ) - - bsWords = ( - ( - "իրականացնել", - "օգտագործել", - "ինտեգրել", - "ռացիոնալացնել", - "օպտիմալացնել", - "փոխակերպել", - "ընդգրկել", - "ակտիվացնել", - "կազմակերպել", - "նախագծել", - "խթանել", - "ձևափոխել", - "արտոնել", - "դրամայնացնել", - "հեշտացնել", - "վերցնել", - "աճեցնել", - "սինթեզել", - "առաքել", - "զբաղվել", - "առավելագույնի հասցնել", - "արագացնել", - "միջնորդել", - "պատկերացնել", - "վերափոխել", - "ընդլայնել", - "նախաձեռնել", - "հեղափոխականացնել", - "առաջացնել", - "օգտագործել", - "զարգացնել", - "արտադրանքի վերածել", - ), - ( - "ուղղահայաց", - "ակտիվ", - "դիմացկուն", - "հեղափոխական", - "առաջատար", - "նորարարական", - "ինտուիտիվ", - "ռազմավարական", - "էլեկտրոնային", - "գլոբալ", - "վիրտուալ", - "դինամիկ", - "գրավիչ", - "ինտերակտիվ", - "արդյունավետ", - "ընդարձակելի", - "պատրաստի", - "ինտեգրված", - "ազդեցիկ", - "անլար", - "թափանցիկ", - "հաջորդ սերնդի", - "ժամանակակից", - "հարմարեցված", - "համատարած", - "ազդեցիկ", - "ամբողջական", - "հարուստ", - "անվճար", - ), - ( - "պարադիգմներ", - "շուկաներ", - "ենթակառուցվածքներ", - "պլատֆորմներ", - "նախաձեռնություններ", - "ուղիներ", - "համայնքներ", - "լուծումներ", - "պորտալներ", - "տեխնոլոգիաներ", - "հարաբերություններ", - "կառուցվածքներ", - "ինտերֆեյսներ", - "շուկաներ", - "համակարգեր", - "մոդելներ", - "օգտագործողներ", - "սխեմաներ", - "ցանցեր", - "ծրագրեր", - "չափանիշներ", - "բիզնես", - "գործառույթներ", - "փորձառություններ", - "մեթոդաբանություններ", - ), - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/hy_AM/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/hy_AM/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 127254b..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/hy_AM/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/id_ID/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/id_ID/__init__.py deleted file mode 100644 index 8e070d8..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/id_ID/__init__.py +++ /dev/null @@ -1,32 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{company_prefix}} {{last_name}}", - "{{company_prefix}} {{last_name}} {{last_name}}", - "{{company_prefix}} {{last_name}} {{company_suffix}}", - "{{company_prefix}} {{last_name}} {{last_name}} {{company_suffix}}", - ) - - # From http://id.wikipedia.org/wiki/Jenis_badan_usaha - # via - # https://github.com/fzaninotto/faker/blob/master/src/Faker/Provider/id_ID/Company.php - company_prefixes = ( - "PT", - "CV", - "UD", - "PD", - "Perum", - ) - - # From http://id.wikipedia.org/wiki/Jenis_badan_usaha - # via - # https://github.com/fzaninotto/faker/blob/master/src/Faker/Provider/id_ID/Company.php - company_suffixes = ( - "(Persero) Tbk", - "Tbk", - ) - - def company_prefix(self) -> str: - return self.random_element(self.company_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/id_ID/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/id_ID/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 722c800..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/id_ID/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/it_IT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/it_IT/__init__.py deleted file mode 100644 index 8bdcd92..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/it_IT/__init__.py +++ /dev/null @@ -1,375 +0,0 @@ -from faker.utils.checksums import calculate_luhn - -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}}-{{last_name}} {{company_suffix}}", - "{{last_name}}, {{last_name}} e {{last_name}} {{company_suffix}}", - ) - - catch_phrase_words = ( - ( - "Abilità", - "Access", - "Adattatore", - "Algoritmo", - "Alleanza", - "Analizzatore", - "Applicazione", - "Approccio", - "Architettura", - "Archivio", - "Intelligenza artificiale", - "Array", - "Attitudine", - "Benchmark", - "Capacità", - "Sfida", - "Circuito", - "Collaborazione", - "Complessità", - "Concetto", - "Conglomerato", - "Contingenza", - "Core", - "Database", - "Data-warehouse", - "Definizione", - "Emulazione", - "Codifica", - "Criptazione", - "Firmware", - "Flessibilità", - "Previsione", - "Frame", - "framework", - "Funzione", - "Funzionalità", - "Interfaccia grafica", - "Hardware", - "Help-desk", - "Gerarchia", - "Hub", - "Implementazione", - "Infrastruttura", - "Iniziativa", - "Installazione", - "Set di istruzioni", - "Interfaccia", - "Soluzione internet", - "Intranet", - "Conoscenza base", - "Matrici", - "Matrice", - "Metodologia", - "Middleware", - "Migrazione", - "Modello", - "Moderazione", - "Monitoraggio", - "Moratoria", - "Rete", - "Architettura aperta", - "Sistema aperto", - "Orchestrazione", - "Paradigma", - "Parallelismo", - "Policy", - "Portale", - "Struttura di prezzo", - "Prodotto", - "Produttività", - "Progetto", - "Proiezione", - "Protocollo", - "Servizio clienti", - "Software", - "Soluzione", - "Standardizzazione", - "Strategia", - "Struttura", - "Successo", - "Sovrastruttura", - "Supporto", - "Sinergia", - "Task-force", - "Finestra temporale", - "Strumenti", - "Utilizzazione", - "Sito web", - "Forza lavoro", - ), - ( - "adattiva", - "avanzata", - "migliorata", - "assimilata", - "automatizzata", - "bilanciata", - "centralizzata", - "compatibile", - "configurabile", - "cross-platform", - "decentralizzata", - "digitalizzata", - "distribuita", - "piccola", - "ergonomica", - "esclusiva", - "espansa", - "estesa", - "configurabile", - "fondamentale", - "orizzontale", - "implementata", - "innovativa", - "integrata", - "intuitiva", - "inversa", - "gestita", - "obbligatoria", - "monitorata", - "multi-canale", - "multi-laterale", - "open-source", - "operativa", - "ottimizzata", - "organica", - "persistente", - "polarizzata", - "proattiva", - "programmabile", - "progressiva", - "reattiva", - "riallineata", - "ricontestualizzata", - "ridotta", - "robusta", - "sicura", - "condivisibile", - "stand-alone", - "switchabile", - "sincronizzata", - "sinergica", - "totale", - "universale", - "user-friendly", - "versatile", - "virtuale", - "visionaria", - ), - ( - "24 ore", - "24/7", - "terza generazione", - "quarta generazione", - "quinta generazione", - "sesta generazione", - "asimmetrica", - "asincrona", - "background", - "bi-direzionale", - "biforcata", - "bottom-line", - "coerente", - "coesiva", - "composita", - "sensibile al contesto", - "basta sul contesto", - "basata sul contenuto", - "dedicata", - "didattica", - "direzionale", - "discreta", - "dinamica", - "eco-centrica", - "esecutiva", - "esplicita", - "full-range", - "globale", - "euristica", - "alto livello", - "olistica", - "omogenea", - "ibrida", - "impattante", - "incrementale", - "intangibile", - "interattiva", - "intermediaria", - "locale", - "logistica", - "massimizzata", - "metodica", - "mission-critical", - "mobile", - "modulare", - "motivazionale", - "multimedia", - "multi-tasking", - "nazionale", - "neutrale", - "nextgeneration", - "non-volatile", - "object-oriented", - "ottima", - "ottimizzante", - "radicale", - "real-time", - "reciproca", - "regionale", - "responsiva", - "scalabile", - "secondaria", - "stabile", - "statica", - "sistematica", - "sistemica", - "tangibile", - "terziaria", - "uniforme", - "valore aggiunto", - ), - ) - - bsWords = ( - ( - "partnerships", - "comunità", - "ROI", - "soluzioni", - "e-services", - "nicchie", - "tecnologie", - "contenuti", - "supply-chains", - "convergenze", - "relazioni", - "architetture", - "interfacce", - "mercati", - "e-commerce", - "sistemi", - "modelli", - "schemi", - "reti", - "applicazioni", - "metriche", - "e-business", - "funzionalità", - "esperienze", - "webservices", - "metodologie", - ), - ( - "implementate", - "utilizzo", - "integrate", - "ottimali", - "evolutive", - "abilitate", - "reinventate", - "aggregate", - "migliorate", - "incentivate", - "monetizzate", - "sinergizzate", - "strategiche", - "deploy", - "marchi", - "accrescitive", - "target", - "sintetizzate", - "spedizioni", - "massimizzate", - "innovazione", - "guida", - "estensioni", - "generate", - "exploit", - "transizionali", - "matrici", - "ricontestualizzate", - ), - ( - "valore aggiunto", - "verticalizzate", - "proattive", - "forti", - "rivoluzionari", - "scalabili", - "innovativi", - "intuitivi", - "strategici", - "e-business", - "mission-critical", - "24/7", - "globali", - "B2B", - "B2C", - "granulari", - "virtuali", - "virali", - "dinamiche", - "magnetiche", - "web", - "interattive", - "sexy", - "back-end", - "real-time", - "efficienti", - "front-end", - "distributivi", - "estensibili", - "mondiali", - "open-source", - "cross-platform", - "sinergiche", - "out-of-the-box", - "enterprise", - "integrate", - "di impatto", - "wireless", - "trasparenti", - "next-generation", - "cutting-edge", - "visionari", - "plug-and-play", - "collaborative", - "olistiche", - "ricche", - ), - ) - - company_suffixes = ("SPA", "e figli", "Group", "s.r.l.") - - def _random_vat_office(self) -> int: - """ - Returns a random code identifying the VAT office needed to build a valid VAT with company_vat. - - See https://it.wikipedia.org/wiki/Partita_IVA#Tabella_degli_Uffici_IVA - """ - val = self.random_int(1, 104) - - # handle special cases - if val == 101: - return 120 - elif val == 102: - return 121 - elif val == 103: - return 888 - elif val == 104: - return 999 - # else: between 1 and 100 are all valid - return val - - def company_vat(self) -> str: - """ - Returns Italian VAT identification number (Partita IVA). - """ - code = self.bothify("#######") + str(self._random_vat_office()).zfill(3) - luhn_checksum = str(calculate_luhn(int(code))) - return f"IT{code}{luhn_checksum}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/it_IT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/it_IT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 80bdace..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/it_IT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ja_JP/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/ja_JP/__init__.py deleted file mode 100644 index fa0e26a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/ja_JP/__init__.py +++ /dev/null @@ -1,31 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{company_prefix}}{{last_name}}{{company_category}}", - "{{last_name}}{{company_category}}{{company_prefix}}", - ) - - company_prefixes = ("株式会社", "有限会社", "合同会社") - company_categories = ( - "水産", - "農林", - "鉱業", - "建設", - "食品", - "印刷", - "電気", - "ガス", - "情報", - "通信", - "運輸", - "銀行", - "保険", - ) - - def company_prefix(self) -> str: - return self.random_element(self.company_prefixes) - - def company_category(self) -> str: - return self.random_element(self.company_categories) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ja_JP/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/ja_JP/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 903b3f9..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/ja_JP/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ko_KR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/ko_KR/__init__.py deleted file mode 100644 index a1a816a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/ko_KR/__init__.py +++ /dev/null @@ -1,470 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - """ - Provider for company names for ko_KR locale - """ - - formats = ( - "{{company_suffix}} {{company_name_word}}{{brand_suffix}}", - "{{company_suffix}} {{company_name_word}}{{company_name_word}}{{brand_suffix}}", - "{{company_suffix}} {{company_name_word}}", - ) - - catch_phrase_words = ( - ( - "적응된", - "숙련된", - "자동화된", - "안정적인", - "비즈니스 중점적", - "중심이", - "복제된", - "효율적인", - "설정 가능한", - "크로스 그룹", - "크로스 플랫폼", - "사용자 중심의", - "조절 가능한", - "디지털화된", - "출판된", - "다양한", - "낮은", - "강화된", - "인체 공학적인", - "특별한", - "확장된", - "확대된", - "1:1", - "최전방", - "완벽히 설정된", - "함수 기반의", - "미래가 보장된", - "관리된", - "모니터링되는", - "멀티 채널", - "다중 주파수", - "멀티 레이어", - "조직화된", - "객체 기반의", - "공개 아키텍쳐", - "오픈소스", - "최적화된", - "선택적", - "유기농", - "수익에 중점을 둔", - "프로그래밍 가능한", - "진보적인", - "공개 키", - "품질 중심의", - "반동적인", - "재정렬", - "줄어든", - "리버스 엔지니어링된", - "올바른 사이즈의", - "강력한", - "원활한", - "안전한", - "자가 이용 가능한", - "공유 가능한", - "독보적인", - "무결점의", - "변경 가능한", - "동기화", - "융합력있는", - "융합된", - "단체 기반의", - "총", - "트리플 버퍼", - "다용도", - "더 커진", - "업그레이드 가능한", - "더 작아진", - "유저 친화적", - "가상", - "비전 있는", - ), - ( - "24시간", - "24/7", - "3세대", - "4세대", - "5세대", - "6세대", - "작동", - "분석중인", - "비대칭", - "비동기", - "고도 기반", - "백그라운드", - "주파수 탐지 가능", - "요약", - "클라이언트 단", - "클라이언트-서버", - "밀착", - "결합된", - "합성물", - "상황에 맞는", - "문맥 기반", - "컨텐츠 기반", - "헌신적", - "교훈적", - "방향", - "분리된", - "다이나믹", - "환경 친화적", - "실행", - "취약점", - "스며든", - "수요 중심", - "장거리", - "글로벌", - "그리드 가능", - "휴리스틱", - "고단계", - "분리형", - "인간자원", - "하이브리드", - "선구적", - "로컬", - "물류", - "최대화", - "결정", - "휴대형", - "모듈형", - "멀티미디어", - "다중 상태", - "멀티 태스킹", - "국가적", - "범국가적", - "중립형", - "다음 세대", - "객체 지향적", - "필수", - "최적화된", - "근본적", - "실시간", - "역수", - "지역적", - "확장", - "보조", - "해답 기반", - "안정적", - "정적", - "가치추가", - "웹 사용 가능", - "잘 모듈화된", - "무관리", - "무해한", - "무관용", - ), - ( - "능력", - "접근", - "어댑터", - "알고리즘", - "연합", - "분석", - "어플리케이션", - "접근", - "아키텍쳐", - "아카이브", - "인공지능", - "배열", - "태도", - "벤치마크", - "예산 관리", - "환경", - "생산 능력", - "도전", - "회로", - "융합", - "컨셉", - "축적", - "우연성", - "코어", - "고객 만족", - "데이터베이스", - "정의", - "에뮬레이션", - "인코딩", - "암호화", - "엑스트라넷", - "펌웨어", - "유연성", - "예보", - "프레임", - "프레임워크", - "함수", - "그래픽 인터페이스", - "그룹웨어", - "GUI", - "하드웨어", - "안내 창구", - "계층", - "허브", - "미디어 정보", - "환경", - "설치과정", - "인터페이스", - "인트라넷", - "지식 기반", - "LAN", - "미들웨어", - "마이그레이션", - "모델", - "관리자", - "모니터링", - "공개 시스템", - "패러다임", - "정책", - "포탈", - "제품", - "프로젝트", - "프로토콜", - "서비스 창구", - "소프트웨어", - "솔루션", - "보안구역", - "전략", - "구조체", - "성공", - "지원", - "시너지", - "엔진", - "표준", - "시간화", - "공구", - "웹 사이트", - ), - ) - - bsWords = ( - ( - "다용도의", - "통합된", - "간소화된", - "최적화된", - "진화된", - "변화된", - "포용적인", - "사용 가능한", - "웅장한", - "재평가된", - "재발명된", - "구조적인", - "강화된", - "장려하는", - "변화무쌍한", - "자율적인", - "선구적인", - "화폐화된", - "전략적인", - "발전하는", - "합성", - "배송", - "혼합된", - "최대화된", - "벤치마킹된", - "신속한", - "깨끗한", - "시각적인", - "창의적인", - "큰", - "폭발하는", - "확장된", - "엔지니어", - "혁명적인", - "제작된", - "취약점의", - "배열적인", - "문화적인", - ), - ( - "온라인 쇼핑", - "가치 상승", - "선구적", - "철벽", - "혁명적", - "가변", - "창조적", - "직감", - "전략적", - "전자 비즈니스", - "끈끈한", - "1:1", - "24/7", - "글로벌", - "B2B", - "B2C", - "고운", - "가상", - "바이러스성", - "다이나믹", - "24/365", - "고사양", - "킬러", - "자기장", - "최첨단", - "닷컴", - "섹시", - "백 엔드", - "실시간", - "효율적", - "프론트 엔드", - "무결점", - "확장", - "턴키", - "세계급", - "오픈 소스", - "크로스 플랫폼", - "크로스 미디어", - "엔터프라이즈", - "통합", - "강렬한", - "무선", - "투명", - "다음 세대", - "날카로운", - "창의적", - "반투명", - "유비쿼터스", - "플러그 앤 플레이", - "융합", - "강력한", - "강렬한", - "부자", - ), - ( - "시너지", - "패러다임", - "마케팅", - "파트너쉽", - "인프라", - "플랫폼", - "채널", - "커뮤니티", - "솔루션", - "전자 서비스", - "포탈", - "기술", - "컨텐츠", - "생산라인", - "관계", - "아키텍쳐", - "인터페이스", - "전자시장", - "전자화폐", - "시스템", - "주파수", - "모델", - "어플리케이션", - "사용자들", - "스키마", - "네트웍스", - "앱", - "매트릭스", - "전자 비즈니스", - "경험", - "웹서비스", - "방법론", - ), - ) - - company_suffixes = ("(주)", "주식회사", "(유)", "유한회사") - - company_name_words = ( - "가람", - "가야", - "가온", - "겨레", - "고구려", - "고려", - "국민", - "글로벌", - "글로벌", - "나루", - "네오", - "넥스트", - "다올", - "라온", - "마루", - "마음", - "모두", - "미래", - "발해", - "백제", - "보람", - "브레인", - "비전", - "스타", - "시너지", - "신라", - "씨앤씨", - "아름", - "에코", - "우리", - "원더", - "월드", - "윈드", - "유니온", - "이노", - "인포", - "제나", - "조선", - "종합", - "중앙", - "첨단", - "코리아", - "코어", - "푸른", - "하나", - "한가람", - "한강", - "한빛", - ) - - brand_suffixes = ( - "개발", - "개발공사", - "그룹", - "금고", - "기술", - "기획", - "네트워크", - "네트웍스", - "랩스", - "바이오", - "반도체", - "보안", - "뷰티", - "상사", - "센터", - "소프트", - "솔루션", - "시스템", - "시스템즈", - "신문", - "에너지", - "에이아이", - "엔지니어링", - "연구소", - "유통", - "은행", - "자동차", - "전자", - "정보통신", - "제조", - "출판", - "코스메틱", - "테크", - "플랫폼", - "항공", - ) - - def company_name_word(self) -> str: - return self.random_element(self.company_name_words) - - def brand_suffix(self) -> str: - return self.random_element(self.brand_suffixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ko_KR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/ko_KR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 51f5073..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/ko_KR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/nl_BE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/nl_BE/__init__.py deleted file mode 100644 index 30ac7f5..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/nl_BE/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}}-{{last_name}} {{company_suffix}}", - "{{last_name}}, {{last_name}} en {{last_name}} {{company_suffix}}", - ) - company_suffixes = ("NV", "BV", "CV", "VOF", "CommV") diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/nl_BE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/nl_BE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 30049eb..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/nl_BE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/nl_NL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/nl_NL/__init__.py deleted file mode 100644 index 367cee4..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/nl_NL/__init__.py +++ /dev/null @@ -1,521 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} & {{last_name}}", - "{{company_prefix}} {{last_name}}", - "{{large_company}}", - ) - - company_prefixes = ( - "Stichting", - "Koninklijke", - "Royal", - ) - - company_suffixes = ( - "BV", - "NV", - "Groep", - ) - - # Source: https://www.mt.nl/management/reputatie/mt-500-2018-de-lijst/559930 - large_companies = ( - "Shell", - "Coolblue", - "ASML", - "Ahold", - "Tata Steel", - "KLM", - "Bol.com", - "BP Nederland", - "De Efteling", - "Eneco", - "De Persgroep", - "ING", - "Royal HaskoningDHV", - "Randstad", - "Google", - "Ikea", - "Rockwool", - "BAM", - "Achmea", - "Damen Shipyard", - "ABN Amro", - "Remeha Group", - "TenneT", - "Coca-Cola", - "Van Leeuwen Buizen", - "Wavin", - "Rabobank", - "AkzoNobel", - "Arcadis", - "AFAS", - "Cisco", - "DAF Trucks", - "DHL", - "Hanos", - "Boon Edam", - "BMW Nederland", - "The Greenery", - "Dutch Flower Group", - "Koninklijke Mosa", - "Yacht", - "Rituals", - "Microsoft", - "Esso", - "3W Vastgoed", - "Deloitte", - "Corio", - "Voortman Steel Group", - "Agrifirm", - "Makro Nederland", - "Nederlandse Publieke Omroep", - "De Alliantie", - "Heijmans", - "McDonalds", - "ANWB", - "Mediamarkt", - "Kruidvat" "Van Merksteijn Steel", - "Dura Vermeer", - "Alliander", - "Unilever", - "Enexis", - "Berenschot", - "Jumbo", - "Technische Unie", - "Havenbedrijf Rotterdam", - "Ballast Nedam", - "RTL Nederland", - "Talpa Media", - "Blauwhoed Vastgoed", - "DSM", - "Ymere", - "Witteveen+Bos", - "NS", - "Action", - "FloraHolland", - "Heineken", - "Nuon", - "EY", - "Dow Benelux", - "Bavaria", - "Schiphol", - "Holland Casino", - "Binck bank", - "BDO", - "HEMA", - "Alphabet Nederland", - "Croon Elektrotechniek", - "ASR Vastgoed ontwikkeling", - "PwC", - "Mammoet", - "KEMA", - "IBM", - "A.S. Watson", - "KPMG", - "VodafoneZiggo", - "YoungCapital", - "Triodos Bank", - "Aviko", - "AgruniekRijnvallei", - "Heerema", - "Accenture", - "Aegon", - "NXP", - "Breman Installatiegroep", - "Movares Groep", - "Q-Park", - "FleuraMetz", - "Sanoma", - "Bakker Logistiek", - "VDL Group", - "Bayer", - "Boskalis", - "Nutreco", - "Dell", - "Brunel", - "Exact", - "Manpower", - "Essent", - "Canon", - "ONVZ Zorgverzekeraar", - "Telegraaf Media Group", - "Nationale Nederlanden", - "Andus Group", - "Den Braven Group", - "ADP", - "ASR", - "ArboNed", - "Plieger", - "De Heus Diervoeders", - "USG People", - "Bidvest Deli XL", - "Apollo Vredestein", - "Tempo-Team", - "Trespa", - "Janssen Biologics", - "Starbucks", - "PostNL", - "Vanderlande", - "FrieslandCampina", - "Constellium", - "Huisman", - "Abbott", - "Koninklijke Boom Uitgevers", - "Bosch Rexroth", - "BASF", - "Audax", - "VolkerWessels", - "Hunkemöller", - "Athlon Car Lease", - "DSW Zorgverzekeraar", - "Mars", - "De Brauw Blackstone Westbroek", - "NDC Mediagroep", - "Bluewater", - "Stedin", - "Feenstra", - "Wuppermann Staal Nederland", - "Kramp", - "SABIC", - "Iv-Groep", - "Bejo Zaden", - "Wolters Kluwer", - "Nyrstar holding", - "Adecco", - "Tauw", - "Robeco", - "Eriks", - "Allianz Nederland Groep", - "Driessen", - "Burger King", - "Lekkerland", - "Van Lanschot", - "Brocacef", - "Bureau Veritas", - "Relx", - "Pathé Bioscopen", - "Bosal", - "Ardagh Group", - "Maandag", - "Inalfa", - "Atradius", - "Capgemini", - "Greenchoice", - "Q8 (Kuwait Petroleum Europe)", - "ASM International", - "Van der Valk", - "Delta Lloyd", - "GlaxoSmithKline", - "ABB", - "Fabory, a Grainger company", - "Veen Bosch & Keuning Uitgeversgroep", - "CZ", - "Plus", - "RET Rotterdam", - "Loyens & Loeff", - "Holland Trading", - "Archer Daniels Midland Nederland", - "Ten Brinke", - "NAM", - "DAS", - "Samsung Electronics Benelux", - "Koopman International", - "TUI", - "Lannoo Meulenhoff", - "AC Restaurants", - "Stage Entertainment", - "Acer", - "HDI Global SE", - "Detailresult", - "Nestle", - "GVB Amsterdam", - "Dekamarkt", - "Dirk", - "MSD", - "Arriva", - "Baker Tilly Berk", - "SBM Offshore", - "TomTom", - "Fujifilm", - "B&S", - "BCC", - "Gasunie", - "Oracle Nederland", - "Astellas Pharma", - "SKF", - "Woningstichting Eigen Haard", - "Rijk Zwaan", - "Chubb", - "Fugro", - "Total", - "Rochdale", - "ASVB", - "Atos", - "Acomo", - "KPN", - "Van Drie Group", - "Olympia uitzendbureau", - "Bacardi Nederland", - "JMW Horeca Uitzendbureau", - "Warner Bros/Eyeworks", - "Aalberts Industries", - "SNS Bank", - "Amtrada Holding", - "VGZ", - "Grolsch", - "Office Depot", - "De Rijke Group", - "Bovemij Verzekeringsgroep", - "Coop Nederland", - "Eaton Industries", - "ASN", - "Yara Sluiskil", - "HSF Logistics", - "Fokker", - "Deutsche Bank", - "Sweco", - "Univé Groep", - "Koninklijke Wagenborg", - "Strukton", - "Conclusion", - "Philips", - "In Person", - "Fluor", - "Vroegop-Windig", - "ArboUnie", - "Centraal Boekhuis", - "Siemens", - "Connexxion", - "Fujitsu", - "Consolid", - "AVR Afvalverwerking", - "Brabant Alucast", - "Centric", - "Havensteder", - "Novartis", - "Booking.com", - "Menzis", - "Frankort & Koning Groep", - "Jan de Rijk", - "Brand Loyalty Group", - "Ohra Verzekeringen", - "Terberg Group", - "Cloetta", - "Holland & Barrett", - "Enza Zaden", - "VION", - "Woonzorg Nederland", - "T-Mobile", - "Crucell", - "NautaDutilh", - "BNP Paribas", - "NIBC Bank", - "VastNed", - "CCV Holland", - "IHC Merwede", - "Neways", - "NSI N.V.", - "Deen", - "Accor", - "HTM", - "ITM Group", - "Ordina", - "Dümmen Orange", - "Optiver", - "Zara", - "L'Oreal Nederland B.V.", - "Vinci Energies", - "Suit Supply Topco", - "Sita", - "Vos Logistics", - "Altran", - "St. Clair", - "BESI", - "Fiat Chrysler Automobiles", - "UPS", - "Jacobs", - "Emté", - "TBI", - "De Bijenkorf", - "Aldi Nederland", - "Van Wijnen", - "Vitens", - "De Goudse Verzekeringen", - "SBS Broadcasting", - "Sandd", - "Omron", - "Sogeti", - "Alfa Accountants & Adviseurs", - "Harvey Nash", - "Stork", - "Glencore Grain", - "Meijburg & Co", - "Honeywell", - "Meyn", - "Ericsson Telecommunicatie", - "Hurks", - "Mitsubishi", - "GGN", - "CGI Nederland", - "Staples Nederland", - "Denkavit International", - "Ecorys", - "Rexel Nederland", - "A. Hakpark", - "DuPont Nederland", - "CBRE Group", - "Bolsius", - "Marel", - "Metro", - "Flynth Adviseurs en Accountants", - "Kropman Installatietechniek", - "Kuijpers", - "Medtronic", - "Cefetra", - "Simon Loos", - "Citadel Enterprises", - "Intergamma", - "Ceva Logistics", - "Beter Bed", - "Subway", - "Gamma", - "Karwei" "Varo Energy", - "APM Terminals", - "Center Parcs", - "Brenntag Nederland", - "NFI", - "Hoogvliet", - "Van Gansewinkel", - "Nedap", - "Blokker", - "Perfetti Van Melle", - "Vestia", - "Kuehne + Nagel Logistics", - "Rensa Group", - "NTS Group", - "Joh. Mourik & Co. Holding", - "Mercedes-Benz", - "DIT Personeel", - "Verkade", - "Hametha", - "Vopak", - "IFF", - "Pearle", - "Mainfreight", - "De Jong & Laan", - "DSV", - "P4People", - "Mazars", - "Cargill", - "Ten Brinke Groep", - "Alewijnse", - "Agio Cigars", - "Peter Appel Transport", - "Syngenta", - "Avery Dennison", - "Accon AVM", - "Vitol", - "Vermaat Groep", - "BMC", - "Alcatel-Lucent", - "Maxeda DIY", - "Equens", - "Van Gelder Groep", - "Emerson Electric Nederland", - "Bakkersland", - "Specsavers", - "E.On", - "Landal Greenparks", - "IMC Trading", - "Barentz Group", - "Epson", - "Raet", - "Van Oord", - "Thomas Cook Nederland", - "SDU uitgevers", - "Nedschroef", - "Linde Gas", - "Ewals Cargo Care", - "Theodoor Gilissen", - "TMF Group", - "Cornelis Vrolijk", - "Jan Linders Supermarkten", - "SIF group", - "BT Nederland", - "Kinepolis", - "Pink Elephant", - "General Motors Nederland", - "Carlson Wagonlit", - "Bruna", - "Docdata", - "Schenk Tanktransport", - "WPG", - "Peak-IT", - "Martinair", - "Reesink", - "Elopak Nederland", - "Fagron N.V.", - "OVG Groep", - "Ford Nederland", - "Multi Corporation", - "Simac", - "Primark", - "Tech Data Nederland", - "Vleesgroothandel Zandbergen", - "Raben Group", - "Farm Frites", - "Libéma", - "Caldic", - "Portaal", - "Syntus", - "Jacobs DE", - "Stena Line", - "The Phone House", - "Interfood Group", - "Thales", - "Teva Pharmaceuticals", - "RFS Holland", - "Aebi Schmidt Nederland", - "Rockwell Automation Nederland", - "Engie Services", - "Hendrix Genetics", - "Qbuzz", - "Unica", - "2SistersFoodGroup", - "Ziut", - "Munckhof Groep", - "Spar Holding", - "Samskip", - "Continental Bakeries", - "Sligro", - "Merck", - "Foot Locker Europe", - "Unit4", - "PepsiCo", - "Sulzer", - "Tebodin", - "Value8", - "Boels", - "DKG Groep", - "Bruynzeel Keukens", - "Janssen de Jong Groep", - "ProRail", - "Solid Professionals", - "Hermes Partners", - ) - - def large_company(self) -> str: - """ - :example: 'Bol.com' - """ - return self.random_element(self.large_companies) - - def company_prefix(self) -> str: - """ - :example: 'Stichting' - """ - return self.random_element(self.company_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/nl_NL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/nl_NL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 655b6ef..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/nl_NL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/no_NO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/no_NO/__init__.py deleted file mode 100644 index 3cea1de..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/no_NO/__init__.py +++ /dev/null @@ -1,22 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = [ - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{company_suffix}}", - "{{last_name}}-{{last_name}} {{company_suffix}}", - "{{last_name}}, {{last_name}} og {{last_name}}", - "{{last_name}}-{{last_name}}", - ] - - company_suffixes = [ - "Gruppen", - "AS", - "ASA", - "BA", - "RFH", - "og Sønner", - "& co.", - ] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/no_NO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/no_NO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 992e2de..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/no_NO/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/pl_PL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/pl_PL/__init__.py deleted file mode 100644 index df15282..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/pl_PL/__init__.py +++ /dev/null @@ -1,149 +0,0 @@ -from typing import List - -from .. import Provider as CompanyProvider - - -def regon_checksum(digits: List[int]) -> int: - """ - Calculates and returns a control digit for given list of digits basing on REGON standard. - """ - weights_for_check_digit = [8, 9, 2, 3, 4, 5, 6, 7] - check_digit = 0 - - for i in range(0, 8): - check_digit += weights_for_check_digit[i] * digits[i] - - check_digit %= 11 - - if check_digit == 10: - check_digit = 0 - - return check_digit - - -def local_regon_checksum(digits: List[int]) -> int: - """ - Calculates and returns a control digit for given list of digits basing on local REGON standard. - """ - weights_for_check_digit = [2, 4, 8, 5, 0, 9, 7, 3, 6, 1, 2, 4, 8] - check_digit = 0 - - for i in range(0, 13): - check_digit += weights_for_check_digit[i] * digits[i] - - check_digit %= 11 - - if check_digit == 10: - check_digit = 0 - - return check_digit - - -def company_vat_checksum(digits: List[int]) -> int: - """ - Calculates and returns a control digit for given list of digits basing on NIP standard. - """ - weights_for_check_digit = [6, 5, 7, 2, 3, 4, 5, 6, 7] - check_digit = 0 - - for i in range(0, 9): - check_digit += weights_for_check_digit[i] * digits[i] - - check_digit %= 11 - - return check_digit - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}}-{{last_name}} {{company_suffix}}", - "{{company_prefix}} {{last_name}}", - "{{company_prefix}} {{last_name}} {{company_suffix}}", - "{{company_prefix}} {{last_name}}-{{last_name}} {{company_suffix}}", - ) - - company_prefixes = ( - "Grupa", - "Spółdzielnia", - "Stowarzyszenie", - "Fundacja", - "PPUH", - "FPUH", - "Gabinety", - ) - - company_suffixes = ( - "Sp. z o.o.", - "S.A.", - "Sp. z o.o. Sp.k.", - "Sp.j.", - "s.c.", - "Sp.k.", - "i syn s.c.", - ) - - def company_prefix(self) -> str: - """ - :example 'Grupa' - """ - return self.random_element(self.company_prefixes) - - def regon(self) -> str: - """ - Returns 9 character Polish National Business Registry Number, - Polish: Rejestr Gospodarki Narodowej - REGON. - - https://pl.wikipedia.org/wiki/REGON - """ - voivodeship_number = self.random_int(0, 49) * 2 + 1 - regon_digits = [int(voivodeship_number / 10), voivodeship_number % 10] - - for _ in range(6): - regon_digits.append(self.random_digit()) - - regon_digits.append(regon_checksum(regon_digits)) - - return "".join(str(digit) for digit in regon_digits) - - def local_regon(self) -> str: - """ - Returns 14 character Polish National Business Registry Number, - local entity number. - - https://pl.wikipedia.org/wiki/REGON - """ - regon_digits = [int(digit) for digit in list(self.regon())] - - for _ in range(4): - regon_digits.append(self.random_digit()) - - regon_digits.append(local_regon_checksum(regon_digits)) - - return "".join(str(digit) for digit in regon_digits) - - def company_vat(self) -> str: - """ - Returns 10 character tax identification number, - Polish: Numer identyfikacji podatkowej. - - https://pl.wikipedia.org/wiki/NIP - """ - vat_digits = [] - - for _ in range(3): - vat_digits.append(self.random_digit_not_null()) - - for _ in range(6): - vat_digits.append(self.random_digit()) - - check_digit = company_vat_checksum(vat_digits) - - # in this case we must generate a tax number again, because check_digit - # cannot be 10 - if check_digit == 10: - return self.company_vat() - - vat_digits.append(check_digit) - - return "".join(str(digit) for digit in vat_digits) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/pl_PL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/pl_PL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ce3c843..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/pl_PL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/pt_BR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/pt_BR/__init__.py deleted file mode 100644 index fb07207..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/pt_BR/__init__.py +++ /dev/null @@ -1,111 +0,0 @@ -from typing import List - -from .. import Provider as CompanyProvider - - -def company_id_checksum(digits: List[int]) -> List[int]: - digits = list(digits) - weights = 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - - dv = sum(w * d for w, d in zip(weights[1:], digits)) - dv = (11 - dv) % 11 - dv = 0 if dv >= 10 else dv - digits.append(dv) - - dv2 = sum(w * d for w, d in zip(weights, digits)) - dv2 = (11 - dv2) % 11 - dv2 = 0 if dv2 >= 10 else dv2 - digits.append(dv2) - - return digits[-2:] - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}}", - "{{last_name}}", - ) - - catch_phrase_formats = ("{{catch_phrase_noun}} {{catch_phrase_verb}} {{catch_phrase_attribute}}",) - - nouns = ( - "a segurança", - "o prazer", - "o conforto", - "a simplicidade", - "a certeza", - "a arte", - "o poder", - "o direito", - "a possibilidade", - "a vantagem", - "a liberdade", - ) - - verbs = ( - "de conseguir", - "de avançar", - "de evoluir", - "de mudar", - "de inovar", - "de ganhar", - "de atingir seus objetivos", - "de concretizar seus projetos", - "de realizar seus sonhos", - ) - - attributes = ( - "de maneira eficaz", - "mais rapidamente", - "mais facilmente", - "simplesmente", - "com toda a tranquilidade", - "antes de tudo", - "naturalmente", - "sem preocupação", - "em estado puro", - "com força total", - "direto da fonte", - "com confiança", - ) - - company_suffixes = ("S/A", "S.A.", "Ltda.", "- ME", "- EI", "e Filhos") - - def catch_phrase_noun(self) -> str: - """ - Returns a random catch phrase noun. - """ - return self.random_element(self.nouns) - - def catch_phrase_attribute(self) -> str: - """ - Returns a random catch phrase attribute. - """ - return self.random_element(self.attributes) - - def catch_phrase_verb(self) -> str: - """ - Returns a random catch phrase verb. - """ - return self.random_element(self.verbs) - - def catch_phrase(self) -> str: - """ - :example: 'a segurança de evoluir sem preocupação' - """ - pattern: str = self.random_element(self.catch_phrase_formats) - catch_phrase = self.generator.parse(pattern) - catch_phrase = catch_phrase[0].upper() + catch_phrase[1:] - return catch_phrase - - def company_id(self) -> str: - digits: List[int] = list(self.random_sample(range(10), 8)) - digits += [0, 0, 0, 1] - digits += company_id_checksum(digits) - return "".join(str(d) for d in digits) - - def cnpj(self) -> str: - digits = self.company_id() - return f"{digits[:2]}.{digits[2:5]}.{digits[5:8]}/{digits[8:12]}-{digits[12:]}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/pt_BR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/pt_BR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d5bc49b..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/pt_BR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/pt_PT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/pt_PT/__init__.py deleted file mode 100644 index fd5be8b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/pt_PT/__init__.py +++ /dev/null @@ -1,53 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}}", - "{{last_name}}", - ) - - nouns = ( - "a segurança", - "o prazer", - "o conforto", - "a simplicidade", - "a certeza", - "a arte", - "o poder", - "o direito", - "a possibilidade", - "a vantagem", - "a liberdade", - ) - - verbs = ( - "de conseguir", - "de avançar", - "de evoluir", - "de mudar", - "de inovar", - "de ganhar", - "de atingir os seus objetivos", - "de concretizar seus projetos", - "de realizar seus sonhos", - ) - - attributes = ( - "de maneira eficaz", - "mais rapidamente", - "mais facilmente", - "simplesmente", - "com toda a tranquilidade", - "antes de tudo", - "naturalmente", - "sem preocupação", - "em estado puro", - "com força total", - "direto da fonte", - "com confiança", - ) - - company_suffixes = ("S/A", "S.A.", "Lda.", "e Filhos") diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/pt_PT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/pt_PT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index c54e216..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/pt_PT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ro_RO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/ro_RO/__init__.py deleted file mode 100644 index e73022a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/ro_RO/__init__.py +++ /dev/null @@ -1,34 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}}", - ) - company_prefixes = ("S.C.", "S.S.I.", "A.D.") - company_suffixes = ( - "SRL", - "SA", - "SCA", - "SNC", - "SCS", - "AFJ", - "ASF", - "CON", - "CRL", - "INC", - "LOC", - "OC1", - "OC2", - "OC3", - "PFA", - "RA", - "SCS", - "SPI", - "URL", - ) - - def company_suffix(self) -> str: - return self.random_element(self.company_suffixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ro_RO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/ro_RO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0aeebec..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/ro_RO/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ru_RU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/ru_RU/__init__.py deleted file mode 100644 index ca2a574..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/ru_RU/__init__.py +++ /dev/null @@ -1,1182 +0,0 @@ -from datetime import datetime - -from .. import Provider as CompanyProvider - - -def calculate_checksum(value: str) -> str: - factors = [3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8][-len(value) :] - check_sum = 0 - for number, factor in zip(value, factors): - check_sum += int(number) * factor - - return str((check_sum % 11) % 10) - - -def calculate_snils_checksum(numbers: str) -> str: - checksum = sum(int(v) * (9 - i) for i, v in enumerate(numbers)) % 101 - return "%02d" % (checksum if checksum < 100 else 0) - - -class Provider(CompanyProvider): - formats = ( - "{{company_prefix}} «{{last_name}}»", - "{{company_prefix}} «{{last_name}} {{last_name}}»", - "{{company_prefix}} «{{last_name}}-{{last_name}}»", - "{{company_prefix}} «{{last_name}}, {{last_name}} и {{last_name}}»", - "{{last_name}} {{company_suffix}}", - "{{large_company}}", - ) - - company_prefixes = ( - "РАО", - "АО", - "ИП", - "НПО", - "ЗАО", - "ООО", - "ОАО", - ) - - company_suffixes = ( - "Инк", - "Инкорпорэйтед", - "и партнеры", - "Групп", - "Лтд", - "Лимитед", - ) - - # Source: https://www.rbc.ru/rbc500/ - large_companies = ( - "Газпром", - "ЛУКОЙЛ", - "Роснефть", - "Сбербанк России", - "Российские железные дороги", - "Ростех", - "Сургутнефтегаз", - "X5 Retail Group", - "ВТБ", - "Магнит", - "САФМАР", - "Росатом", - "Российские сети", - "Интер РАО", - "Транснефть", - "Татнефть", - "НОВАТЭК", - "Евраз", - "АФК Система", - "En +", - "НЛМК", - "Норникель", - "ГК Мегаполис", - "Газпромбанк", - "Русал", - "Аэрофлот — Российские авиалинии", - "Сибур Холдинг", - "Северсталь", - "СУЭК", - "ММК", - "Группа УГМК", - "Мобильные телесистемы", - "Металлоинвест", - "Лента", - "Объединенная авиастроительная корпорация", - "РусГидро", - "Сахалин Энерджи", - "Т Плюс", - "Группа М.Видео-Эльдорадо", - "Еврохим", - "ВымпелКом", - "Банковский холдинг Альфа-банка", - "Объединенная судостроительная корпорация", - "МегаФон", - "Ростелеком", - "ТМК", - "Славнефть", - "Тойота Мотор (Toyota)", - "Мечел", - "Автотор холдинг", - "Стройгазмонтаж", - "Дж.Т.И. Россия (JTI)", - "Торговая сеть Красное и Белое", - "АК Алроса", - "Дикси Групп", - "ВЭБ.РФ", - "ФМСМ (PMI)", - "Фольксваген Груп Рус", - "АвтоВАЗ", - "Леруа Мерлен Восток (Leroi Merlin)", - "Ашан (Auchan)", - "Россельхозбанк", - "ДНС Групп", - "ГК ТНС энерго", - "Протек", - "Группа компаний ПИК", - "Объединенная двигателестроительная корпорация", - "Независимая нефтегазовая компания", - "Merlion", - "ФосАгро", - "КМР и СНГ (KIA)", - "Катрен", - "Банк ФК Открытие", - "Корпорация Тактическое ракетное вооружение", - "Группа Рольф", - "ТАИФ-НК", - "Трансмашхолдинг", - "Метро Кэш энд Керри (Metro Cash & Carry)", - "Мостотрест", - "СОГАЗ", - "Эппл Рус (Apple)", - "Арктикгаз", - "Нижнекамскнефтехим", - "«Томскнефть» ВНК", - "Зарубежнефть", - "ЕвроСибЭнерго", - "Вертолеты России", - "Группа ГАЗ", - "Почта России", - "МУМТ (BAT)", - "Стройтранснефтегаз", - "КамАЗ", - "ФК Пульс", - "Полюс", - "Хендэ Мотор СНГ (Hyundai)", - "S7 Group", - "Ямал СПГ", - "Группа Содружество", - "ЧТПЗ", - "Иркутская нефтяная компания", - "Русснефть", - "Национальная компьютерная корпорация", - "Мерседес-Бенц Рус (Mercedes-Benz)", - "Русэнергосбыт", - "ОМК", - "Уралкалий", - "ГК Ташир", - "Компания Газ-Альянс", - "ФортеИнвест", - "Группа Мэйджор", - "Российская электроника", - "ГК СНС", - "Сибирский антрацит", - "Группа О'кей", - "Мосинжпроект", - "UCL Holding", - "Группа Илим", - "Московский кредитный банк", - "Группа Синара", - "Нефтиса", - "Объединенная компания Связной — Евросеть", - "Группа ЛСР", - "Т2 РТК Холдинг", - "НЗНП", - "АльфаСтрахование", - "Ланит", - "НПК Уралвагонзавод", - "Рено Россия (Renault)", - "Удмуртнефть", - "Нестле Россия (Nestle)", - "Райффайзенбанк (Raiffeisen)", - "Техкомпания Хуавэй (Huawei)", - "КДВ Групп", - "Яндекс", - "Мессояханефтегаз", - "БМВ Русланд Трейдинг (BMW)", - "Салым Петролеум", - "Данон (Danone)", - "ЮниКредит Банк (UniCredit)", - "ТД Риф", - "Мираторг", - "Группа Волга-Днепр", - "Вайлдберриз", - "Московский метрополитен", - "Полиметалл", - "Группа РЕСО", - "Пепсико холдингс", - "ГК Эфко", - "СДС-Уголь", - "ЛокоТех", - "ГК Автомир", - "Совкомбанк", - "ФСК Лидер", - "Марс (Mars)", - "Детский мир", - "Группа НПФ Благосостояние", - "Госкорпорация по ОрВД", - "Трансойл", - "ОХК Уралхим", - "Каспийский трубопроводный консорциум-Р", - "Тинькофф Банк", - "Fix Price", - "Промсвязьбанк", - "Акрон", - "Спортмастер", - "Проктер Энд Гэмбл. Дистрибьюторская компания (Procter & Gamble)", - "Eurasia Drilling Company", - "Группа Черкизово", - "ИКЕА Дом (INGKA)", - "Славянск Эко", - "Корпорация ВСМПО-АВИСМА", - "Росбанк (Societe General)", - "Монетка", - "Стройсервис", - "ГК Транстехсервис", - "Совкомфлот", - "ВСК", - "СБСВ-Ключавто", - "Ингосстрах", - "Сэтл групп", - "Гиперглобус (Bruch-Beteiligungs)", - "Технониколь", - "Металлсервис", - "Нефтехимсервис", - "Промышленно-металлургический холдинг", - "Урало-Сибирская металлургическая компания", - "Мария-Ра", - "Globaltrans", - "Кубанская нефтегазовая компания", - "Авиакомпания ЮТэйр", - "НПФ Газфонд пенсионные накопления", - "Русагро", - "Л'Этуаль", - "ЛГ Электроникс Рус (LG)", - "Каргилл (Cargill)", - "ВАД", - "Астон", - "Уральские авиалинии", - "Сталепромышленная компания", - "НИПИ НГ Петон", - "Бристоль", - "Уралвтормет", - "Нефтетранссервис", - "Казаньоргсинтез", - "Газпром бурение", - "ГК Агро-Белогорье", - "Фортум (Fortum)", - "ПК Балтика (Carlsbergfondet)", - "Авилон АГ", - "Шелл Нефть (Shell)", - "Юнипро (Uniper)", - "Технологии машиностроения (Техмаш)", - "НПК Объединенная вагонная компания", - "Велесстрой", - "ТД Интерторг", - "Юнилевер Русь (Unilever)", - "Солид-товарные рынки", - "Вольво Восток (AB Volvo)", - "Энел Россия", - "Марвел КТ", - "ГК Эталон", - "Металлокомплект-М", - "Группа Ренессанс Страхование", - "Военторг", - "Nordgold", - "Сибуглемет", - "Акционерный банк Россия", - "ДОМ.РФ", - "Форд Соллерс Холдинг", - "ИКЕА Торг (INGKA)", - "Макдоналдc (McDonald`s)", - "Кузбасская топливная компания", - "Хенкель Рус (Henkel)", - "Дон-Строй Инвест", - "Главное управление обустройства войск (ГУОВ)", - "СК Росгосстрах", - "Кока-Кола Эйчбиси Евразия (Coca-Cola)", - "Хоум Кредит энд Финанс Банк (PPF)", - "Гленкор Агро Мзк (Firada)", - "Mail.Ru Group", - "Монди СЛПК (Mondi)", - "НПО Алмаз", - "ММС Рус (Mitsubishi Motors)", - "Объединенные кондитеры", - "Комацу СНГ (Komatsu)", - "Национальная медиа группа", - "Агентство по страхованию вкладов (АСВ)", - "Татэнергосбыт", - "Куйбышевазот", - "Азбука вкуса", - "Трансбункер", - "Башкирская содовая компания", - "Инвестнефтетрейд", - "Inventive Retail Group", - "Самсунг Электроникс Рус Калуга (Samsung)", - "Крокус", - "Гугл (Google)", - "АСЦ-Холдинг", - "Новороссийский морской торговый порт", - "Швабе", - "Русская медная компания", - "Евроцемент груп", - "Мосводоканал", - "Международный аэропорт Шереметьево", - "Сегежа", - "Р-Фарм", - "Фармстандарт", - "Ростсельмаш", - "Транспортная группа FESCO", - "Компания Адамас", - "Метафракс", - "Джонсон & Джонсон (Johnson & Johnson)", - "Softline", - "Ягуар ленд ровер", - "Байер", - "Эркафарм", - "Фармперспектива", - "Банк Уралсиб", - "ВО Машиноимпорт", - "Кордиант", - "Новосталь", - "ВкусВилл", - "Л'Ореаль (L'Oreal)", - "DDS", - "ТОАЗ", - "Банк Санкт-Петербург", - "Группа агропредприятий Ресурс", - "Ярче!", - "Ренейссанс Констракшн (Ronesans Holding Anonim Sirketi)", - "Санофи Россия (Sanofi)", - "Группа ГМС", - "Северный ветер", - "БСС", - "Скания-Русь (Scania)", - "ГК Фаворит Моторс", - "Группа РТК", - "Фармкомплект", - "Нокиан Шина (Nokian)", - "ДСК Автобан", - "Омега Групп", - "Квадра", - "Roust", - "ГК Невада (Самбери)", - "Восточный экспресс банк", - "Верисел-трейдинг", - "Гознак", - "Фирма Агрокомплекс им. Ткачева", - "Банк Русский стандарт", - "Мазда Мотор Рус (Mazda)", - "Группа Газфонд", - "СТД Петрович", - "Беркс", - "Кари", - "Арконик СМЗ", - "Мон Дэлис (Mondelez)", - "Комус", - "Группа Агат", - "Великолукский мясокомбинат", - "Верный", - "СДС Азот", - "М Фэшн", - "Белгранкорм-холдинг", - "Группа Нэфис", - "ФГ Будущее", - "Глория Джинс", - "Билла (Rewe)", - "Государственная транспортная лизинговая компания", - "ФК Гранд Капитал", - "ЭС", - "Компания Металл Профиль", - "ГК Орими Трэйд", - "ГСЛ", - "Интернешнл Пейпер (International Paper)", - "Лаборатория Касперского", - "ПСМА Рус", - "Аптечная сеть 36,6", - "Тетра Пак (Tetra Pak)", - "Центральная пригородная пассажирская компания", - "Самараэнерго", - "Азур Эйр", - "Командор-Холдинг", - "Белуга Групп", - "ТД БелАЗ", - "Мосгортранс", - "Спар Миддл Волга", - "Холдинг Транспортные компоненты", - "Московский аэропорт Домодедово", - "Рулог (Havi)", - "Эйч Энд Эм (H&M)", - "Концерн Автоматика", - "Татэнерго", - "Трубная грузовая компания", - "Комос Групп", - "Первая тяжеловесная компания", - "ОМПК", - "НК Дулисьма", - "Ачимгаз", - "Новосибирскэнергосбыт", - "Компания СИМ-Авто", - "Ситибанк", - "Остин", - "Адидас (Adidas)", - "Ферреро Руссия (Ferrero)", - "Пермэнергосбыт", - "РКК Энергия", - "Свеза", - "Росжелдорпроект", - "Мазда Соллерс Мануфэкчуринг Рус", - "БСХ Бытовые приборы (BSH Hausgerate)", - "Московская биржа ММВБ-РТС", - "Русэнергоресурс", - "Компания Луис Дрейфус Восток (Louis Dreyfus)", - "ЭР-Телеком Холдинг", - "Соллерс", - "Объединенная энергетическая компания", - "Уральские локомотивы", - "ТМК Чермет", - "Загорский трубный завод", - "Элко Рус (Elko)", - "Архангельский ЦБК", - "Мособлгаз", - "ДК Рус", - "Энергосбытовая компания Восток", - "ГКНПЦ им. М.В.Хруничева", - "Металлоторг", - "Агросила Групп", - "Ман Трак Энд Бас Рус (Volkswagen)", - "Петербургский метрополитен", - "ТГК-2", - "Концерн Титан-2", - "Ренейссанс Хэви Индастрис Ronesans Endustri", - "Бургер Рус (Burger King)", - "Ozon", - "Сони Электроникс (Sony)", - "Продо", - "Продимекс-Холдинг", - "АвтоГермес", - "Railgo", - "Новотранс", - "Новикомбанк", - "Рив Гош", - "Сибирская горно-металлургическая компания", - "Сименс (Siemens)", - "Лига ставок", - "Банк Ак Барс", - "Группа Полипластик", - "Водоканал Санкт-Петербурга", - "РэйлАльянс", - "Российская телевизионная и радиовещательная сеть", - "Зерно-трейд", - "Ренессанс Кредит", - "Роберт Бош (Robert Bosch)", - "ВО Промсырьеимпорт", - "САП СНГ (SAP)", - "А Групп", - "Приосколье", - "Зара СНГ (Zara)", - "Модум-транс", - "Эбботт лэбораториз (Abbott Laboratories)", - "Группа Магнезит", - "Газпром автоматизация", - "Газэнергосервис", - "Независимая энергосбытовая компания Краснодарского края", - "Группа ЭПМ", - "Минудобрения", - "Либхерр-Русланд (Liebherr)", - "Восточная техника (Vost-Tech)", - "Первый канал", - "ГМК Сплав", - "ГК Автодилерство", - "НМЖК", - "ВГТРК", - "Неофарм", - "Роскосмос", - "Вита Лайн", - "Краснодарзернопродукт-Экспо", - "Алкоторг", - "Красцветмет", - "Касторама Рус (Castorama)", - "Деловые линии", - "ГВСУ по специальным объектам", - "ПКФ ДиПОС", - "Восток-Запад", - "Амурская нефтебаза", - "Юг Руси", - "Шнейдер Электрик (Schneider Electric)", - "Сингента (Chemchina)", - "Титан", - "Петропавловск", - "Фармимэкс", - "АБ Инбев Эфес (Anheuser-Busch Inbev)", - "ABI Product", - "Профитмед", - "ТД Агроторг", - "ТЭК СПБ", - "ТД Ункомтех", - "ОПХ (Heineken)", - "ТГК-16", - "Уральский банк реконструкции и развития", - "QIWI", - "СК Согласие", - "Группа Эссен", - "Втормет", - "Эссити (Essity)", - "Hoff (Домашний интерьер)", - "Сиско Солюшенз (Cisco)", - "ВО ЖДТ России", - "Купишуз (Lamoda)", - "Делл (Dell)", - "ПСК", - "Каменск-Уральский металлургический завод", - "Аргос", - "А.П.Р.", - "ГК 1520", - "Артис-Агро Экспорт", - "Луидор", - "Порше Руссланд (Porsche)", - "Денцу Эйджис Си Эс (Dentsu)", - "Эйвон Бьюти Продактс Компани (Avon)", - "РКЦ Прогресс", - "Силовые машины", - "АНГК", - "Корпорация Гринн", - "Фаберлик", - "Сибирская сервисная компания", - "Банк Возрождение", - "Отисифарм", - "Боэс Констракшн (Boes Construction)", - "Саткинский чугуноплавильный завод", - "Алтайвагон", - "ПТК", - "Щекиноазот", - "Волгоградэнергосбыт", - "Русский уголь", - "Трест КХМ", - "РМ Рейл", - "Восточная горнорудная компания", - "Группа Стройтрансгаз", - "БАСФ (BASF)", - "Мерида", - "Брок-Инвест-Сервис и К", - "Вирлпул Рус (Whirlpool)", - "Карелия Палп", - "Тева (Teva)", - "Media Direction Group", - "Якобс Дау Эгбертс Рус (Jacobs Douwe Egberts)", - "ГК Великан", - "Август", - "Транслом", - "ОТП Банк", - "РусВинил", - "Системный оператор Единой энергетической системы", - "АСР-Углесбыт", - "ЦЭНКИ", - "Транстрейдойл", - "Росморпорт", - "Газнефтетрэйдинг", - "Сладковско-Заречное", - "Кроношпан (Kronoplus)", - "ТЦ Кунцево Лимитед", - "СНПХ", - "Кимберли-Кларк (Kimberly-Clark)", - "Катерпиллар Евразия (Caterpillar)", - "Крок инкорпорейтед", - "Ашинский металлургический завод", - "Автодом", - "Международный центр", - "Мишлен (Michelin)", - "Картли", - "БелАЗ-24", - "Первый завод", - "ГК ЕКС", - "Петролеум Трейдинг", - "Нижфарм (Nidda Midco)", - "Импэкснефтехим", - "Вольво Карс (Zhejiang Geely)", - "Мосметрострой", - "ТЭК Мосэнерго", - "Борисхоф 1 (Inchcape)", - "ГК Титан", - "ПТК Уголь", - "Авторусь", - "Юг-Авто", - "Нова", - "Метрострой", - "Ресурс", - "Сетевая компания", - "РЕ Трэйдинг (LPP)", - "Углетранс", - "ЭйчПи Инк (HP Inc.)", - "ТК Шлюмберже (Schlumberger)", - "ГК Мега-Авто", - "Корпорация Электросевкавмонтаж", - "ГК Российские коммунальные системы", - "Запсибгазпром", - "Нефтепродукттрейд", - "Сатурн-Р", - "Завод имени Дегтярева", - "Такеда Фармасьютикалс (Takeda Pharmaceutical)", - "Слата супермаркет", - "Emex", - "САМ-МБ", - "171 Меридиан", - "Армтек", - "Центр финансовых технологий", - "Группа компаний Пионер", - "АХ Степь", - "Таграс (ТНГ-Групп)", - "Fonbet", - "Сандоз (Sandoz)", - "Берлин-Хеми А. Менарини (Berlin Chemie)", - "ГК Агропромкомплектация", - "МАКС", - "Компания Трасса", - "Башкирэнерго", - "Охрана Росгвардии", - "Гала-Форм", - "КРКА Фарма (KRKA)", - "Максидом", - "Нефтехимремстрой", - "Нефтьмагистраль", - "Авеста Фармацевтика (Baby Dream)", - "Старттех", - "Конар", - "Нортгаз", - "УГС", - "АББ (ABB)", - "Металлстандарт", - "Балтийская топливная компания", - "Мострансавто", - "Аксель-Моторс", - "Группа компаний МИЦ", - "ПК Борец", - "Европа", - "Сибирская аграрная группа", - "РТИ", - "Ферронордик машины (Ferronordic)", - "Южуралзолото ГК", - "Прогресс", - "Юг-Нефтепродукт", - "Камский кабель", - "Familia", - "Транскапиталбанк", - "А-Ойл", - "Сибтрейд", - "МТС-банк", - "Московская инженерно-строительная компания", - "Курганмашзавод", - "Вектрум-К", - "Морской терминал Тамань", - "Таркетт Рус (Tarkett)", - "Несте Санкт-Петербург (Neste)", - "Ново-Уренгойская газовая компания", - "Национальная нерудная компания", - "Октоблу (Decathlon)", - "Снежная Королева", - "Новартис Фарма (Novartis)", - "Магнолия", - "Техинком", - "Дочки-Сыночки", - "Астеллас Фарма", - "General Fueller", - "Автозаправочные комплексы Atan", - "Псковвтормет", - "Авиакомпания Икар", - ) - - catch_phrase_adj = ( - ( - "Автоматизированный", - "Автономный", - "Адаптивный", - "Амортизированный", - "Ассимилированный", - "Безопасный", - "Бизнес-ориентированный", - "Взаимовыгодный", - "Виртуальный", - "Глубокий", - "Горизонтальный", - "Делегируемый", - "Децентрализованный", - "Дублируемый", - "Инверсный", - "Инновационный", - "Интегрированный", - "Интуитивный", - "Качественный", - "Клиент-ориентированный", - "Контролируемый", - "Концептуальный", - "Корпоративный", - "Кросс-платформенный", - "Межгрупповой", - "Многогранный", - "Многоканальный", - "Многослойный", - "Многоуровневый", - "Модернизируемый", - "Настраиваемый", - "Новый", - "Общедоступный", - "Объектный", - "Обязательный", - "Оперативный", - "Оптимизированный", - "Опциональный", - "Организованный", - "Органичный", - "Ориентированный", - "Открытый", - "Оцифрованный", - "Переключаемый", - "Переосмысленный", - "Переработанный", - "Перспективный", - "Полный", - "Поэтапный", - "Превентивный", - "Программируемый", - "Прогрессивный", - "Продвинутый", - "Прочный", - "Разнообразный", - "Распределённый", - "Расширенный", - "Реализованный", - "Реконструируемый", - "Самодостаточный", - "Сбалансированный", - "Сетевой", - "Синхронизированный", - "Совместимый", - "Сокращенный", - "Сосредоточенный", - "Стабильный", - "Стратегический", - "Увеличенный", - "Удобный", - "Улучшенный", - "Улучшенный", - "Уменьшенный", - "Универсальный", - "Управляемый", - "Устойчивый", - "Фундаментальный", - "Функциональный", - "Цельный", - "Централизованный", - "Эксклюзивный", - "Элегантный", - "Эргономичный", - ), - ( - "аналитический", - "асимметричный", - "асинхронный", - "бездефектный", - "бескомпромиссный", - "веб-ориентированный", - "встречный", - "вторичный", - "высокоуровневый", - "гибкий", - "гибридный", - "глобальный", - "двунаправленный", - "действенный", - "динамичный", - "единообразный", - "заметный", - "инструктивный", - "интерактивный", - "исполнительный", - "итернациональный", - "клиент-серверный", - "контекстуальный", - "круглосуточный", - "логистический", - "локальный", - "максимальный", - "масштабируемый", - "методичный", - "многозадачный", - "мобильный", - "модульный", - "мультимедийный", - "наглядный", - "направленный", - "национальный", - "нейтральный", - "нестандартный", - "объектно-ориентированный", - "однородный", - "оптимальный", - "основной", - "отказостойкий", - "переходный", - "последовательный", - "потенциальный", - "пошаговый", - "прибыльный", - "приоритетный", - "промежуточный", - "радикальный", - "раздвоенный", - "региональный", - "связный", - "систематический", - "системный", - "составной", - "социальный", - "специализированный", - "статический", - "третичный", - "ультрасовременный", - "целостный", - "широкий", - "широкопрофильный", - "эвристический", - "экоцентричный", - "энергонезависимый", - "яркий", - ), - ) - - catch_phrase_nouns_masc = ( - "адаптер", - "алгоритм", - "альянс", - "анализатор", - "архив", - "веб-сайт", - "вызов", - "графический интерфейс", - "графический интерфейс пользователя", - "доступ", - "инструментарий", - "интерфейс", - "инфопосредник", - "искусственный интеллект", - "массив", - "модератор", - "мониторинг", - "набор инструкций", - "параллелизм", - "подход", - "портал", - "прогноз", - "продукт", - "проект", - "протокол", - "ресурс", - "системный движок", - "успех", - "фреймворк", - "хаб", - "эталон", - ) - - catch_phrase_nouns_fem = ( - "архитектура", - "база данных", - "база знаний", - "вероятность", - "возможность", - "гибкость", - "защищенная линия", - "иерархия", - "инициатива", - "инфраструктура", - "кодировка", - "конгломерация", - "концепция", - "координация", - "локальная сеть", - "матрица", - "методология", - "миграция", - "модель", - "нейронная сеть", - "парадигма", - "поддержка", - "политика", - "проекция", - "производительность", - "прошивка", - "рабочая группа", - "реализация", - "сеть Интранет", - "сеть Экстранет", - "служба поддержки", - "служба техподдержки", - "способность", - "стандартизация", - "стратегия", - "структура", - "суперструктура", - "установка", - "фокус-группа", - "функциональность", - "функция", - "ценовая структура", - "эмуляция", - ) - - catch_phrase_nouns_neu = ( - "взаимодействие", - "групповое программное обеспечение", - "интернет-решение", - "использование", - "межплатформенное программное обеспечение", - "оборудование", - "определение", - "отношение", - "приложение", - "программное обеспечение", - "решение", - "совершенствование процесса", - "сотрудничество", - "управление бюджетом", - "хранилище данных", - "шифрование", - "ядро", - ) - - bsWords = ( - ( - "Адаптация", - "Визуализация", - "Включение", - "Внедрение", - "Генерация", - "Инновация", - "Интеграция", - "Использование", - "Итерация", - "Конструирование", - "Координация", - "Культивация", - "Максимизация", - "Модернизация", - "Монетизация", - "Мотивация", - "Обеспечение", - "Объединение", - "Оптимизация", - "Освоение", - "Охват", - "Оцифровка", - "Перезагрузка", - "Переопределение", - "Переосмысление", - "Перепрофилирование", - "Переход", - "Преображение", - "Приспособление", - "Продление", - "Производство", - "Развитие", - "Разворачивание", - "Разработка", - "Распределение", - "Реализация", - "Революция", - "Синтез", - "Синхронизация", - "Сравнение", - "Трансформация", - "Увеличение", - "Управление", - "Ускорение", - "Формирование", - "Шкалирование", - "Эксплуатация", - ), - ( - "B2B", - "B2C", - "активных", - "безотказных", - "беспроводных", - "богатых", - "веб-ориентированных", - "вертикальных", - "виртуальных", - "глобальных", - "действенных", - "динамичных", - "заказных", - "индивидуальных", - "инновационных", - "интегрированных", - "интерактивных", - "интуитивных", - "концептуальных", - "корпоративных", - "критически важных", - "кроссплатформенных", - "круглогодичных", - "круглосуточных", - "лучших в своём роде", - "масштабируемых", - "мультимедийных", - "наглядных", - "надежных", - "онлайн и офлайн", - "ориентированных на пользователя", - "открытых", - "передовых", - "подробных", - "популярных", - "престижных", - "прибыльных", - "притягательных", - "прозрачных", - "распределённых", - "распространенных", - "расширяемых", - "революционных", - "сенсационных", - "серверных", - "сетевых", - "соблазнительных", - "совместных", - "современных", - "стандартных", - "стратегических", - "ультрасовременных", - "фронт-энд", - "целостных", - "цельных", - "эффективных", - ), - ( - "архитектур", - "аудиторий", - "веб-сервисов", - "взаимодействий", - "действий", - "диапазонов", - "знаний", - "инициатив", - "интернет-компаний", - "интернет-магазинов", - "интернет-продавцов", - "интернет-услуг", - "интерфейсов", - "инфопосредников", - "инфраструктур", - "каналов", - "методик", - "метрик", - "моделей", - "ниш", - "областей интереса", - "отношений", - "парадигм", - "партнерств", - "платформ", - "пользователей", - "порталов", - "приложений", - "результатов", - "решений", - "рынков", - "сетей", - "систем", - "систем снабжения", - "сообществ", - "схем", - "технологий", - "функций", - ), - ) - - def catch_phrase(self) -> str: - """ - :example: 'Адаптивный и масштабируемый графический интерфейс' - """ - noun: str = self.random_element( - self.catch_phrase_nouns_masc + self.catch_phrase_nouns_fem + self.catch_phrase_nouns_neu - ) - adj_first: str = self.random_element(self.catch_phrase_adj[0]) - adj_second: str = self.random_element(self.catch_phrase_adj[1]) - if noun in self.catch_phrase_nouns_fem: - adj_first = adj_first[:-2] + "ая" - adj_second = adj_second[:-2] + "ая" - elif noun in self.catch_phrase_nouns_neu: - adj_first = adj_first[:-2] + "ое" - adj_second = adj_second[:-2] + "ое" - return adj_first + " и " + adj_second + " " + noun - - def large_company(self) -> str: - """ - :example: 'АвтоВАЗ' - """ - return self.random_element(self.large_companies) - - def company_prefix(self) -> str: - """ - :example: 'ООО' - """ - return self.random_element(self.company_prefixes) - - def businesses_inn(self) -> str: - """ - Returns tax identification number for businesses (ru. идентификационный номер налогоплательщика, ИНН). - """ - region: str = "%02d" % self.random_int(min=1, max=92) - inspection: str = "%02d" % self.random_int(min=1, max=99) - tail: str = "%05d" % self.random_int(min=1, max=99999) - result: str = region + inspection + tail - - return result + calculate_checksum(result) - - def individuals_inn(self) -> str: - """ - Returns tax identification number for individuals (ru. идентификационный номер налогоплательщика, ИНН). - """ - region: str = "%02d" % self.random_int(min=1, max=92) - inspection: str = "%02d" % self.random_int(min=1, max=99) - tail: str = "%06d" % self.random_int(min=1, max=999999) - result: str = region + inspection + tail - result += calculate_checksum(result) - - return result + calculate_checksum(result) - - def businesses_ogrn(self) -> str: - """ - Returns primary state registration number for businesses - (ru. основной государственный регистрационный номер, ОГРН). - """ - sign: str = self.random_element(("1", "5")) - year: str = "%02d" % self.random_int(min=1, max=datetime.now().year - 2000) - region: str = "%02d" % self.random_int(min=1, max=92) - tail: str = "%07d" % self.random_int(min=1, max=9999999) - - result: str = sign + year + region + tail - - return result + str((int(result) % 11) % 10) - - def individuals_ogrn(self) -> str: - """ - Returns primary state registration number for individuals - (ru. основной государственный регистрационный номер, ОГРН). - """ - year: str = "%02d" % self.random_int(min=1, max=datetime.now().year - 2000) - region: str = "%02d" % self.random_int(min=1, max=92) - tail: str = "%09d" % self.random_int(min=1, max=999999999) - - result: str = "3" + year + region + tail - - return result + str((int(result) % 13) % 10) - - def kpp(self) -> str: - """ - Returns tax registration reason code (ru. код причины постановки на учет, КПП). - """ - region: str = "%02d" % self.random_int(min=1, max=92) - inspection: str = "%02d" % self.random_int(min=1, max=99) - reason: str = self.random_element(("01", "43", "44", "45")) - tail: str = "%03d" % self.random_int(min=1, max=999) - - return region + inspection + reason + tail - - def snils(self) -> str: - """ - Returns SNILS number (ru. СНИЛС). - """ - numbers: str = "%09d" % self.random_int(min=1, max=999999999) - return numbers + calculate_snils_checksum(numbers) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ru_RU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/ru_RU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f7a19e1..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/ru_RU/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/sk_SK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/sk_SK/__init__.py deleted file mode 100644 index a14bed0..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/sk_SK/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}}", - ) - - company_suffixes = ( - "s.r.o.", - "v.o.s.", - "a.s.", - "k.s.", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/sk_SK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/sk_SK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e87096f..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/sk_SK/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/sl_SI/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/sl_SI/__init__.py deleted file mode 100644 index 79d8c1f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/sl_SI/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{first_name}} {{last_name}} s.p.", - ) - - company_suffixes = ( - "d.o.o.", - "d.d.", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/sl_SI/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/sl_SI/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e7e9dfd..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/sl_SI/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/sv_SE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/sv_SE/__init__.py deleted file mode 100644 index 9ef04c8..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/sv_SE/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}} & {{last_name}} {{company_suffix}}", - ) - - company_suffixes = ( - "AB", - "HB", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/sv_SE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/sv_SE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 61fdafa..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/sv_SE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/th_TH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/th_TH/__init__.py deleted file mode 100644 index 90bc76a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/th_TH/__init__.py +++ /dev/null @@ -1,126 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = OrderedDict( - ( - ("{{company_limited_prefix}}{{last_name}} {{company_limited_suffix}}", 0.2), - ( - "{{company_limited_prefix}}{{last_name}}{{company_suffix}} {{company_limited_suffix}}", - 0.2, - ), - ("{{company_limited_prefix}}{{last_name}} {{company_limited_suffix}}", 0.2), - ("{{company_prefix}}{{last_name}}", 0.2), - ("{{company_prefix}}{{last_name}}{{company_suffix}}", 0.2), - ("{{last_name}}{{company_suffix}}", 0.1), - ("{{nonprofit_prefix}}{{last_name}}", 0.1), - ("{{last_name}}-{{last_name}}", 0.05), - ("{{last_name}}และ{{last_name}}", 0.05), - ("{{company_limited_prefix}}{{last_name}}", 0.01), - ) - ) - - company_prefixes = OrderedDict( - ( - ("ห้างหุ้นส่วนจำกัด ", 0.3), - ("หจก.", 0.2), - ("บจก.", 0.1), - ("บมจ.", 0.1), - ("ห้างหุ้นส่วนสามัญ ", 0.1), - ("หสน.", 0.01), - ) - ) - - nonprofit_prefixes = OrderedDict( - ( - ("สมาคม", 0.4), - ("มูลนิธิ", 0.3), - ("ชมรม", 0.2), - ("สหภาพแรงงาน", 0.1), - ) - ) - - company_suffixes = ( - "และเพื่อน", - "และบุตร", - "แอนด์ซันส์", - "กรุ๊ป", - "การช่าง", - "ก่อสร้าง", - "บริการ", - "เซอร์วิส", - "กลการ", - "ซัพพลาย", - "คอมมิวนิเคชั่น", - "พืชผล", - "เอเยนซี", - "เอ็นจิเนียริ่ง", - "คอนสตรัคชั่น", - "วิศวกรรม", - "วิศวการ", - "คอมพิวเตอร์", - "พานิช", - "ขนส่ง", - "เฟอนิชชิ่ง", - "เฟอร์นิเจอร์", - "อุตสาหกรรม", - "เอนเตอรไพรส์", - "จิวเวลรี่", - "อะไหล่ยนต์", - "ภาพยนตร์", - "ยานยนต์", - "เทรดดิ้ง", - "การค้า", - "แลบ", - "เคมิคอล", - "อิมปอร์ตเอ็กซปอร์ต", - "อินเตอร์เนชั่นแนล", - "บรรจุภัณฑ์", - "แพคกิ้ง", - "มอเตอร์", - "โอสถ", - "การบัญชี", - "สโตร์", - ) - - company_limited_prefixes = OrderedDict( - ( - ("บริษัท ", 0.95), - ("ธนาคาร", 0.03), - ("บริษัทหลักทรัพย์ ", 0.005), - ("กองทุนรวม", 0.005), - ) - ) - - company_limited_suffixes = OrderedDict( - ( - ("จำกัด", 0.85), - ("จำกัด (มหาชน)", 0.15), - ) - ) - - def company_prefix(self) -> str: - """ - :example: 'ห้างหุ้นส่วนจำกัด' - """ - return self.random_element(self.company_prefixes) - - def company_limited_prefix(self) -> str: - """ - :example: 'บริษัท' - """ - return self.random_element(self.company_limited_prefixes) - - def company_limited_suffix(self) -> str: - """ - :example: 'จำกัด' - """ - return self.random_element(self.company_limited_suffixes) - - def nonprofit_prefix(self) -> str: - """ - :example: 'มูลนิธิ' - """ - return self.random_element(self.nonprofit_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/th_TH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/th_TH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 17f7a32..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/th_TH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/tl_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/tl_PH/__init__.py deleted file mode 100644 index 4359d9d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/tl_PH/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from ..fil_PH import Provider as FilPhProvider - - -class Provider(FilPhProvider): - """No difference from Company Provider for fil_PH locale""" - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/tl_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/tl_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a5c398f..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/tl_PH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/tr_TR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/tr_TR/__init__.py deleted file mode 100644 index 2f866fd..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/tr_TR/__init__.py +++ /dev/null @@ -1,123 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{large_company}}", - ) - # Source: https://www.capital.com.tr/listeler/capital-500 - large_companies = ( - "Tüpraş", - "Türk Hava Yolları", - "Petrol Ofisi", - "Opet Petrolcülük", - "Ford Otosan", - "BİM Birleşik Mağazalar", - "Arçelik", - "Shell&Turcas Petrol", - "Ereğli Demir Çelik", - "Türk Telekom", - "Toyota Otomotiv", - "Tofaş Oto Fabrika", - "Turkcell", - "Oyak Renault", - "Migros", - "RC Rönesans İnşaat", - "Doğuş Otomotiv", - "Anadolu Efes Biracılık", - "LC Waikiki Mağazacılık", - "Enerjisa Enerji", - "Vodafone", - "Vestel Elektronik", - "Mercedes-Benz Türk", - "Şişecam", - "İÇDAŞ Çelik Enerji", - "JTI Tütün Ürünleri Pazarlama", - "Selçuk Ecza", - "İskenderun Demir Çelik", - "Enka İnşaat", - "Kibar Dış Ticaret", - "Hyundai Assan Otomotiv", - "Şok Marketler", - "İstanbul Altın Rafinerisi", - "Coca-Cola İçecek", - "Aygaz", - "İçtaş İnşaat", - "BSH Ev Aletleri", - "Petkim", - "Otokoç", - "THY Opet", - "İGDAŞ İstanbul Gaz Dağıtım", - "Limak İnşaat", - "Hayat Kimya", - "Limak Yatırım", - "Mapa İnşaat", - "Aytemiz Akaryakıt Dağıtım", - "Aselsan", - "Pegasus Hava Taşımacılığı", - "TUSAŞ-Türk Havacılık ve Uzay", - "GAP İnşaat", - "Tosçelik Profil ve Saç", - "Unilever", - "Tekfen İnşaat", - "Ülker Bisküvi", - "Çalık Enerji", - "Indeks Bilgisayar", - "Güneş Ekspres Havacılık", - "TAV Havalimanları", - "CarrefourSA", - "Borçelik Çelik Sanayi", - "Sarkuysan", - "Trakya Cam", - "Türk Traktör", - "Mey İçki", - "Kardemir", - "İpragaz", - "Zorlu Enerji", - "Vestel Beyaz Eşya", - "Aksa Enerji Üretim", - "TGS Dış Ticaret", - "TP Petrol Dağıtım", - "Gübre Fabrikaları", - "Gediz Elektrik Perakende Satış", - "BASF Türkiye", - "Er-Bakır Elektrolitik Bakır", - "Teknosa İç ve Dış Ticaret", - "Kroman Çelik", - "Eren Enerji", - "Tiryaki Agro Gıda", - "Acıbadem Sağlık Hizmetleri", - "Yücel Boru ve Profil", - "Baştuğ Metalurji", - "Eti Gıda", - "Philsa Philip Morris Sabancı Sigara", - "Netlog Lojistik Hizmetleri", - "İzmir Demir Çelik", - "Assan Alüminyum", - "Tepe İnşaat", - "Honda Türkiye", - "Koton", - "Bizim Toptan Satış Mağazaları", - "Aksa Akrilik", - "Aksa Doğalgaz", - "Borusan Otomotiv", - "Kastamonu Entegre", - "Sepaş Enerji Sakarya Elektrik", - "TAV Tepe Akfen", - "Konya Şeker Fabrikası", - ) - company_suffixes = ( - "A.Ş.", - "Ltd.", - "Tic.", - "San.", - "Şti.", - ) - - def large_company(self) -> str: - """ - :example: 'Peak Games' - """ - return self.random_element(self.large_companies) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/tr_TR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/tr_TR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a93b101..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/tr_TR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/vi_VN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/vi_VN/__init__.py deleted file mode 100644 index 480b74d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/vi_VN/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - # Source: https://vi.wikipedia.org/wiki/Danh_s%C3%A1ch_c%C3%B4ng_ty_Vi%E1%BB%87t_Nam - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}} và {{last_name}} {{company_suffix}}", - "{{last_name}} và đối tác {{company_suffix}}", - ) - - company_suffixes = ( - "Công ty TNHH", - "Công ty Cổ phần", - "Doanh nghiệp tư nhân", - "Công ty TNHH MTV", - "Công ty Hợp danh", - "Công ty Trách nhiệm hữu hạn", - "Tập Đoàn", - ) - - def company_suffix(self) -> str: - return self.random_element(self.company_suffixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/vi_VN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/vi_VN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 00668f0..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/vi_VN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/zh_CN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/zh_CN/__init__.py deleted file mode 100644 index af94655..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/zh_CN/__init__.py +++ /dev/null @@ -1,95 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ["{{company_prefix}}{{company_suffix}}"] - - company_prefixes = [ - "超艺", - "和泰", - "九方", - "鑫博腾飞", - "戴硕电子", - "济南亿次元", - "海创", - "创联世纪", - "凌云", - "泰麒麟", - "彩虹", - "兰金电子", - "晖来计算机", - "天益", - "恒聪百汇", - "菊风公司", - "惠派国际公司", - "创汇", - "思优", - "时空盒数字", - "易动力", - "飞海科技", - "华泰通安", - "盟新", - "商软冠联", - "图龙信息", - "易动力", - "华远软件", - "创亿", - "时刻", - "开发区世创", - "明腾", - "良诺", - "天开", - "毕博诚", - "快讯", - "凌颖信息", - "黄石金承", - "恩悌", - "雨林木风计算机", - "双敏电子", - "维旺明", - "网新恒天", - "数字100", - "飞利信", - "立信电子", - "联通时科", - "中建创业", - "新格林耐特", - "新宇龙信息", - "浙大万朋", - "MBP软件", - "昂歌信息", - "万迅电脑", - "方正科技", - "联软", - "七喜", - "南康", - "银嘉", - "巨奥", - "佳禾", - "国讯", - "信诚致远", - "浦华众城", - "迪摩", - "太极", - "群英", - "合联电子", - "同兴万点", - "襄樊地球村", - "精芯", - "艾提科信", - "昊嘉", - "鸿睿思博", - "四通", - "富罳", - "商软冠联", - "诺依曼软件", - "东方峻景", - "华成育卓", - "趋势", - "维涛", - "通际名联", - ] - company_suffixes = [n + "有限公司" for n in ["科技", "网络", "信息", "传媒"]] - - def company_prefix(self) -> str: - return self.random_element(self.company_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/zh_CN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/zh_CN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1163fa7..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/zh_CN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/zh_TW/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/zh_TW/__init__.py deleted file mode 100644 index 4052536..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/zh_TW/__init__.py +++ /dev/null @@ -1,113 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ("{{company_prefix}}{{company_suffix}}",) - - company_prefixes = ( - "品王餐飲", - "一統企業", - "品誠", - "台灣電信", - "Goagle", - "一統星巴克", - "台日積體電路", - "榮長航空", - "台灣印無品良", - "華中航空", - "台灣人銀行", - "國中鋼鐵", - "海鴻精密", - "台灣鐵高", - "家宜家居(KIEA)", - "天上雜誌", - "台灣力電", - "碩華電腦", - "雄豹旅遊", - "光新三越百貨", - "台灣軟微", - "鐵台", - "一統超商", - "碁宏", - "創群光電(奇原美電子)", - "台灣酒菸", - "美奧廣告", - "AYHOO!摩奇", - "台灣台油", - "達宏國際電子", - "華晶國際酒店", - "秀威影城", - "王鼎餐飲集團", - "台灣五星電子", - "遊戲葡萄數位科技", - "橋子王生技", - "大八電視", - "台灣業糖", - "都亞緻麗", - "台灣來自水", - "麥當當", - "風微廣場", - "見遠雜誌", - "石金堂", - "邦城文化事業", - "華中郵政", - "達友光電", - "中台信託商業銀行", - "台北登來喜大飯店", - "全味食品工業", - "遠西百貨", - "旗花(台灣銀)行", - "冠智科技", - "丹味企業", - "發聯科技", - "台灣雅萊(Y'ORÉAL)", - "古太可口可樂", - "榮長海運", - "達廣電腦", - "華福大飯店", - "立三電視", - "星燦國際旅行社", - "衣優庫(Nuiqlo)", - "德汎", - "台北眾大捷運", - "共公電視", - "明陽海運", - "雄遠建設事業", - "台灣迪奧汽車", - "台灣地土銀行", - "天中電視", - "月日光半導體", - "塑台石化", - "樂可旅遊集團", - "信永藥品", - "輝燁企業", - "興復航空運輸", - "豐兆國際商業銀行", - "平太洋崇光百貨", - "神漢名店百貨", - "台灣士賓", - "賓國大飯店", - "業商週刊", - "台灣BIM", - "湖劍山世界", - "合作庫金商業銀行", - "台北邦富商業銀行", - "愛味之", - "邦富人壽保險", - "律理法律", - "心安食品服務(斯摩漢堡)", - "松黑", - "台灣生資堂", - "鮮爭", - "達台電子", - "聯燁鋼鐵", - "華聯電子", - "瑞輝大藥廠", - "隆豐大飯店(北台君悅)", - "資華粧業(生資堂)", - ) - - company_suffixes = ("", "有限公司", "股份有限公司", "資訊有限公司") - - def company_prefix(self) -> str: - return self.random_element(self.company_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/zh_TW/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/zh_TW/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ab4c5c4..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/company/zh_TW/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/__init__.py deleted file mode 100644 index 38e923d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/__init__.py +++ /dev/null @@ -1,195 +0,0 @@ -from collections import OrderedDict -from typing import Dict, List, Optional - -from ...typing import CardType, CreditCard, DateParseType -from .. import BaseProvider - -localized = True - - -class Provider(BaseProvider): - """Implement default credit card provider for Faker. - - For all methods that take ``card_type`` as an argument, a random card type - will be used if the supplied value is ``None``. The list of valid card types - includes ``'amex'``, ``'diners'``, ``'discover'``, ``'jcb'``, ``'jcb15'``, - ``'jcb16'``, ``'maestro'``, ``'mastercard'``, ``'visa'``, ``'visa13'``, - ``'visa16'``, and ``'visa19'``. - - Sources: - - - https://en.wikipedia.org/wiki/Payment_card_number#Issuer_identification_number_.28IIN.29 - - https://www.regular-expressions.info/creditcard.html - - https://creditcardjs.com/credit-card-type-detection - """ - - prefix_maestro: List[str] = [ - "5018", - "5020", - "5038", - "56##", - "57##", - "58##", - "6304", - "6759", - "6761", - "6762", - "6763", - "0604", - "6390", - ] - prefix_mastercard: List[str] = [ - "51", - "52", - "53", - "54", - "55", - "222%", - "223", - "224", - "225", - "226", - "227", - "228", - "229", - "23", - "24", - "25", - "26", - "270", - "271", - "2720", - ] - prefix_visa: List[str] = ["4"] - prefix_amex: List[str] = ["34", "37"] - prefix_discover: List[str] = ["6011", "65"] - prefix_diners: List[str] = ["300", "301", "302", "303", "304", "305", "36", "38"] - prefix_jcb16: List[str] = ["35"] - prefix_jcb15: List[str] = ["2131", "1800"] - - credit_card_types: Dict[str, CreditCard] = OrderedDict( - ( - ("maestro", CreditCard("Maestro", prefix_maestro, 12, security_code="CVV")), - ( - "mastercard", - CreditCard("Mastercard", prefix_mastercard, 16, security_code="CVV"), - ), - ("visa16", CreditCard("VISA 16 digit", prefix_visa)), - ("visa13", CreditCard("VISA 13 digit", prefix_visa, 13)), - ("visa19", CreditCard("VISA 19 digit", prefix_visa, 19)), - ( - "amex", - CreditCard( - "American Express", - prefix_amex, - 15, - security_code="CID", - security_code_length=4, - ), - ), - ("discover", CreditCard("Discover", prefix_discover)), - ("diners", CreditCard("Diners Club / Carte Blanche", prefix_diners, 14)), - ("jcb15", CreditCard("JCB 15 digit", prefix_jcb15, 15)), - ("jcb16", CreditCard("JCB 16 digit", prefix_jcb16)), - ) - ) - credit_card_types["visa"] = credit_card_types["visa16"] - credit_card_types["jcb"] = credit_card_types["jcb16"] - - luhn_lookup = { - "0": 0, - "1": 2, - "2": 4, - "3": 6, - "4": 8, - "5": 1, - "6": 3, - "7": 5, - "8": 7, - "9": 9, - } - - def credit_card_provider(self, card_type: Optional[CardType] = None) -> str: - """Generate a credit card provider name.""" - if card_type is None: - card_type = self.random_element(self.credit_card_types.keys()) # type: ignore[assignment] - return self._credit_card_type(card_type).name - - def credit_card_number(self, card_type: Optional[CardType] = None) -> str: - """Generate a valid credit card number.""" - card = self._credit_card_type(card_type) - prefix: str = self.random_element(card.prefixes) - number = self._generate_number(self.numerify(prefix), card.length) - return number - - def credit_card_expire( - self, - start: DateParseType = "now", - end: DateParseType = "+10y", - date_format: str = "%m/%y", - ) -> str: - """Generate a credit card expiry date. - - This method uses |date_time_between| under the hood to generate the - expiry date, so the ``start`` and ``end`` arguments work in the same way - here as it would in that method. For the actual formatting of the expiry - date, |strftime| is used and ``date_format`` is simply passed - to that method. - """ - expire_date = self.generator.date_time_between(start, end) - return expire_date.strftime(date_format) - - def credit_card_full(self, card_type: Optional[CardType] = None) -> str: - """Generate a set of credit card details.""" - card = self._credit_card_type(card_type) - - tpl = "{provider}\n{owner}\n{number} {expire_date}\n{security}: {security_nb}\n" - - tpl = tpl.format( - provider=card.name, - owner=self.generator.parse("{{first_name}} {{last_name}}"), - number=self.credit_card_number(card), - expire_date=self.credit_card_expire(), - security=card.security_code, - security_nb=self.credit_card_security_code(card), - ) - - return self.generator.parse(tpl) - - def credit_card_security_code(self, card_type: Optional[CardType] = None) -> str: - """Generate a credit card security code.""" - sec_len = self._credit_card_type(card_type).security_code_length - return self.numerify("#" * sec_len) - - def _credit_card_type(self, card_type: Optional[CardType] = None) -> CreditCard: - """Generate a random CreditCard instance of the specified card type.""" - if card_type is None: - card_type = self.random_element(self.credit_card_types.keys()) # type: ignore[assignment] - elif isinstance(card_type, CreditCard): - return card_type - return self.credit_card_types[card_type] # type: ignore[index] - - def _generate_number(self, prefix: str, length: int) -> str: - """Generate a credit card number. - - The ``prefix`` argument is the start of the CC number as a string which - may contain any number of digits. The ``length`` argument is the length - of the CC number to generate which is typically 13 or 16. - """ - number = prefix - # Generate random char digits - number += "#" * (length - len(prefix) - 1) - number = self.numerify(number) - reverse = number[::-1] - # Calculate sum - tot = 0 - pos = 0 - while pos < length - 1: - tot += Provider.luhn_lookup[reverse[pos]] - if pos != (length - 2): - tot += int(reverse[pos + 1]) - pos += 2 - # Calculate check digit - check_digit = (10 - (tot % 10)) % 10 - number += str(check_digit) - return number diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e085e6b..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/en_US/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/en_US/__init__.py deleted file mode 100644 index 07d1f3a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/en_US/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from .. import Provider as CreditCardProvider - - -class Provider(CreditCardProvider): - """Implement credit card provider for ``en_US`` locale.""" - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/en_US/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/en_US/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f3be5f4..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/en_US/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/fa_IR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/fa_IR/__init__.py deleted file mode 100644 index 192a4e8..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/fa_IR/__init__.py +++ /dev/null @@ -1,124 +0,0 @@ -from collections import OrderedDict - -from faker.typing import CreditCard - -from .. import Provider as CreditCardProvider - - -class Provider(CreditCardProvider): - """Implement credit card provider for ``fa_IR`` locale. - - For all methods that take ``card_type`` as an argument, a random card type - will be used if the supplied value is ``None``. The list of valid card types - includes ``'ansar'``, ``'bim'``, ``'day'``, ``'eghtesad_novin'``, - ``'ghavamin'``, ``'hekmat'``, ``'iran_zamin'``, ``'kar_afarin'``, - ``'keshavarzi'``, ``'kosar'``, ``'maskan'``, ``'mehre_ghtesad'``, - ``'meli'``, ``'mellal'``, ``'mellat'``, ``'parsian'``, ``'pasargad'``, - ``'post_bank'``, ``'refah'``, ``'saderat'``, ``'saman'``, ``'sarmayeh'``, - ``'sepah'``, ``'shahr'``, ``'sina'``, ``'tat'``, ``'tejarat'``, ``'tose'``, - and ``'tourism_bank'``. - - Sources: - - - https://way2pay.ir/21653 - """ - - prefix_ansar = ["627381"] - prefix_iran_zamin = ["505785"] - prefix_hekmat = ["636949"] - prefix_keshavarzi = ["603770"] - prefix_shahr = ["502806"] - prefix_mehr_eghtesad = ["606373"] - prefix_sarmayeh = ["639607"] - prefix_post_bank = ["627760"] - prefix_tose = ["628157"] - prefix_eghtesad_novin = ["627412"] - prefix_meli = ["603799"] - prefix_pasargad = ["502229"] - prefix_tourism_bank = ["505416"] - prefix_ghavamin = ["639599"] - prefix_day = ["502938"] - prefix_mellat = ["610433"] - prefix_tejarat = ["585983"] - prefix_moasse_mellal = ["606256"] - prefix_saman_bank = ["621986"] - prefix_kosar = ["505801"] - prefix_refah = ["589463"] - prefix_saderat = ["603761"] - prefix_tat = ["621986"] - prefix_sina = ["639346"] - prefix_kar_afarin = ["627488"] - prefix_sepah = ["589210"] - prefix_maskan = ["628023"] - prefix_parsian = ["622106"] - prefix_bim = ["627961"] - - credit_card_types = OrderedDict( - ( - ("ansar", CreditCard("انصار", prefix_ansar, 16, security_code="CVV2")), - ( - "iran_zamin", - CreditCard("ایران زمین", prefix_iran_zamin, 16, security_code="CVV2"), - ), - ("hekmat", CreditCard("حکمت", prefix_hekmat, 16, security_code="CVV2")), - ( - "keshavarzi", - CreditCard("کشاورزی", prefix_keshavarzi, 16, security_code="CVV2"), - ), - ("shahr", CreditCard("شهر", prefix_shahr, 16, security_code="CVV2")), - ( - "mehre_ghtesad", - CreditCard("مهراقتصاد", prefix_mehr_eghtesad, 16, security_code="CVV2"), - ), - ( - "sarmayeh", - CreditCard("سرمایه", prefix_sarmayeh, 16, security_code="CVV2"), - ), - ( - "post_bank", - CreditCard("پست بانک", prefix_post_bank, 16, security_code="CVV2"), - ), - ("tose", CreditCard("توسعه", prefix_tose, 16, security_code="CVV2")), - ( - "eghtesad_novin", - CreditCard("اقتصاد نوین", prefix_eghtesad_novin, 16, security_code="CVV2"), - ), - ("meli", CreditCard("ملی", prefix_meli, 16, security_code="CVV2")), - ( - "pasargad", - CreditCard("پاسارگاد", prefix_pasargad, 16, security_code="CVV2"), - ), - ( - "tourism_bank", - CreditCard("گردشگری", prefix_tourism_bank, 16, security_code="CVV2"), - ), - ( - "ghavamin", - CreditCard("قوامین", prefix_ghavamin, 16, security_code="CVV2"), - ), - ("day", CreditCard("دی", prefix_day, 16, security_code="CVV2")), - ("mellat", CreditCard("ملت", prefix_mellat, 16, security_code="CVV2")), - ("tejarat", CreditCard("تجارت", prefix_tejarat, 16, security_code="CVV2")), - ( - "mellal", - CreditCard("ملل", prefix_moasse_mellal, 16, security_code="CVV2"), - ), - ("saman", CreditCard("سامان", prefix_saman_bank, 16, security_code="CVV2")), - ("kosar", CreditCard("کوثر", prefix_kosar, 16, security_code="CVV2")), - ("refah", CreditCard("رفاه", prefix_refah, 16, security_code="CVV2")), - ("saderat", CreditCard("صادرات", prefix_saderat, 16, security_code="CVV2")), - ("tat", CreditCard("تات", prefix_tat, 16, security_code="CVV2")), - ("sina", CreditCard("سینا", prefix_sina, 16, security_code="CVV2")), - ( - "kar_afarin", - CreditCard("کار آفرین", prefix_kar_afarin, 16, security_code="CVV2"), - ), - ("sepah", CreditCard("سپه", prefix_sepah, 16, security_code="CVV2")), - ("maskan", CreditCard("مسکن", prefix_maskan, 16, security_code="CVV2")), - ( - "parsian", - CreditCard("پارسیان", prefix_parsian, 16, security_code="CVV2"), - ), - ("bim", CreditCard("صنعت و معدن", prefix_bim, 16, security_code="CVV2")), - ) - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/fa_IR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/fa_IR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4bbea64..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/fa_IR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/pt_PT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/pt_PT/__init__.py deleted file mode 100644 index 00ad9e6..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/pt_PT/__init__.py +++ /dev/null @@ -1,299 +0,0 @@ -from collections import OrderedDict - -from faker.typing import CreditCard - -from .. import Provider as CreditCardProvider - - -class Provider(CreditCardProvider): - """Implementation of ``pt_PT`` locale credit card - - For all methods that take ``card_type`` as an argument a random card type - will be used if the supplied value is ``None``. The list of valid card types - includes ``'visa'``, ``'mastercard'`` and ``'maestro'``. - - Source: https://bincheck.org/portugal - """ - - prefix_visa = [ - "400131", - "400190", - "400817", - "402192", - "402947", - "402956", - "403005", - "403006", - "403007", - "403008", - "403271", - "404520", - "404530", - "405758", - "406170", - "406475", - "407548", - "407549", - "407575", - "408237", - "408239", - "409842", - "409843", - "410000", - "410344", - "410345", - "410553", - "410557", - "411635", - "411700", - "411701", - "411869", - "412487", - "412488", - "412489", - "412657", - "412782", - "412990", - "413014", - "413793", - "413871", - "415158", - "415159", - "415170", - "415171", - "415174", - "415175", - "415194", - "415195", - "415238", - "415272", - "415273", - "415403", - "415404", - "415405", - "415440", - "415441", - "415569", - "415920", - "415961", - "416952", - "416963", - "416970", - "417005", - "417091", - "417092", - "417337", - "418847", - "419022", - "419682", - "419683", - "419684", - "421149", - "421510", - "422080", - "422240", - "422241", - "422414", - "422417", - "422597", - "422869", - "423392", - "423393", - "424118", - "424184", - "424208", - "424661", - "425509", - "425510", - "425906", - "426150", - "426360", - "426370", - "427256", - "427304", - "427729", - "427770", - "427867", - "428139", - "428184", - "428185", - "428186", - "428187", - "429711", - "430240", - "430241", - "431926", - "433390", - "433391", - "433511", - "433512", - "433513", - "433599", - "433618", - "433622", - "433966", - "437886", - "438257", - "439070", - "440637", - "440644", - "440645", - "442664", - "443977", - "443978", - "444224", - "444227", - "445961", - "445962", - "446140", - "446144", - "449389", - "450915", - "451156", - "451166", - "454755", - "455250", - "455290", - "455292", - "455658", - "456811", - "456812", - "457031", - "458058", - "458059", - "459432", - "459433", - "459449", - "460340", - "460341", - "460342", - "461247", - "461248", - "461249", - "462731", - "462732", - "464406", - "465964", - "476066", - "476067", - "476068", - "476069", - "476070", - "476071", - "476329", - "477920", - "477921", - "477922", - "477947", - "477989", - "478062", - "478063", - "479702", - "479736", - "483088", - "485672", - "486449", - "486457", - "489434", - "489485", - "490772", - "490830", - "490831", - "490832", - "490841", - "490863", - "491213", - "491546", - "491547", - "491613", - "492194", - "493402", - "493480", - "493800", - "493801", - "493830", - "498800", - "499968", - "499969", - "499986", - "422239", - "422041", - "464409", - "464408", - ] - - prefix_mastercard = [ - "510122", - "510123", - "512556", - "518772", - "519744", - "519774", - "520342", - "524552", - "524878", - "525625", - "525808", - "526819", - "527014", - "528024", - "529119", - "530267", - "530770", - "532355", - "536468", - "541171", - "541557", - "542081", - "542098", - "542858", - "543099", - "543116", - "543123", - "544051", - "544052", - "544233", - "547260", - "547459", - "548168", - "548169", - "552727", - "552755", - "553057", - "554506", - "554517", - "554518", - "556660", - "557836", - "557882", - "557883", - "557888", - ] - - prefix_maestro = [ - "501654", - "501659", - "670530", - "670811", - "670812", - "676938", - "676938", - "677393", - "677707", - "670835", - "670817", - ] - - credit_card_types = OrderedDict( - ( - ( - "maestro", - CreditCard("Maestro", prefix_maestro, 16, security_code="CVV2"), - ), - ( - "mastercard", - CreditCard("Mastercard", prefix_mastercard, 16, security_code="CVV2"), - ), - ("visa", CreditCard("Visa", prefix_visa, 16, security_code="CVV2")), - ) - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/pt_PT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/pt_PT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b1387dd..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/pt_PT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/ru_RU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/ru_RU/__init__.py deleted file mode 100644 index 1447dc1..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/ru_RU/__init__.py +++ /dev/null @@ -1,115 +0,0 @@ -from collections import OrderedDict -from typing import Optional - -from faker.providers.person.ru_RU import translit -from faker.typing import CardType, CreditCard - -from .. import Provider as CreditCardProvider - - -class Provider(CreditCardProvider): - """Implement credit card provider for ``ru_RU`` locale. - - For all methods that take ``card_type`` as an argument, a random card type - will be used if the supplied value is ``None``. The list of valid card types - includes ``'amex'``, ``'maestro'``, ``'mastercard'``, ``'mir'``, - ``'unionpay'``, and ``'visa'``. - - Sources: - - - https://en.wikipedia.org/wiki/Payment_card_number#Issuer_identification_number_(IIN) - """ - - prefix_visa = ["4"] - prefix_mastercard = [ - "51", - "52", - "53", - "54", - "55", - "222%", - "223", - "224", - "225", - "226", - "227", - "228", - "229", - "23", - "24", - "25", - "26", - "270", - "271", - "2720", - ] - prefix_mir = ["2200", "2201", "2202", "2203", "2204"] - prefix_maestro = [ - "50", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "66", - "67", - "68", - "69", - ] - prefix_amex = ["34", "37"] - prefix_unionpay = ["62", "81"] - - credit_card_types = OrderedDict( - ( - ("visa", CreditCard("Visa", prefix_visa, security_code="CVV2")), - ( - "mastercard", - CreditCard("Mastercard", prefix_mastercard, security_code="CVC2"), - ), - ("mir", CreditCard("МИР", prefix_mir)), - ("maestro", CreditCard("Maestro", prefix_maestro, security_code="CVV2")), - ( - "amex", - CreditCard( - "American Express", - prefix_amex, - 15, - security_code="CID", - security_code_length=4, - ), - ), - ("unionpay", CreditCard("Union Pay", prefix_unionpay)), - ) - ) - - def credit_card_full(self, card_type: Optional[CardType] = None) -> str: - """Generate a set of credit card details.""" - card = self._credit_card_type(card_type) - - tpl = "{provider}\n{owner}\n{number} {expire_date}\n{security}: {security_nb}\n{issuer}" - - tpl = tpl.format( - provider=card.name, - owner=translit( - self.generator.parse( - self.random_element( - [ - "{{first_name_male}} {{last_name_male}}", - "{{first_name_female}} {{last_name_female}}", - ] - ) - ) - ), - number=self.credit_card_number(card), - expire_date=self.credit_card_expire(), - security=card.security_code, - security_nb=self.credit_card_security_code(card), - issuer=self.generator.parse("{{bank}}"), - ) - - return self.generator.parse(tpl) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/ru_RU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/ru_RU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5fb5349..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/ru_RU/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/uk_UA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/uk_UA/__init__.py deleted file mode 100644 index 99bc9eb..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/uk_UA/__init__.py +++ /dev/null @@ -1,58 +0,0 @@ -from collections import OrderedDict -from typing import Optional - -from faker.providers.person.uk_UA import translit -from faker.typing import CardType, CreditCard - -from .. import Provider as CreditCardProvider - - -class Provider(CreditCardProvider): - """Implement credit card provider for ``uk_UA`` locale. - https://blog.ipay.ua/uk/sekrety-bankovskix-kart-kak-identificirovat-bank-po-nomeru-karty/ - """ - - prefix_visa = ["4"] - prefix_mastercard = ["51", "52", "53", "54"] - prefix_prostir = ["9"] - prefix_maestro = ["6762"] - - credit_card_types = OrderedDict( - ( - ("visa", CreditCard("Visa", prefix_visa, security_code="CVV2")), - ("mastercard", CreditCard("Mastercard", prefix_mastercard, security_code="CVC2")), - ("prostir", CreditCard("ПРОСТІР", prefix_prostir, security_code="CVC2")), - ("maestro", CreditCard("Maestro", prefix_maestro, security_code="CVV")), - ) - ) - - def credit_card_full(self, card_type: Optional[CardType] = None) -> str: - """Generate UA Credit Card: - Supported card types 'visa', 'mastercard', 'prostir', 'maestro' - - :sample: - :sample: card_type="prostir" - :sample: card_type="mastercard" - """ - card = self._credit_card_type(card_type) - tpl = "{provider}\n{owner}\n{number} {expire_date}\n{security}: {security_nb}\n{issuer}" - tpl = tpl.format( - provider=card.name, - owner=translit( - self.generator.parse( - self.random_element( - [ - "{{first_name_male}} {{last_name_male}}", - "{{first_name_female}} {{last_name_female}}", - ] - ) - ) - ), - number=self.credit_card_number(card), - expire_date=self.credit_card_expire(), - security=card.security_code, - security_nb=self.credit_card_security_code(card), - issuer=self.generator.parse("{{bank}}"), - ) - - return self.generator.parse(tpl) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/uk_UA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/uk_UA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3d6544e..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/uk_UA/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/zh_CN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/zh_CN/__init__.py deleted file mode 100644 index 8bde079..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/zh_CN/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from collections import OrderedDict -from typing import Optional - -from faker.providers.credit_card import Provider as CreditCardProvider -from faker.typing import CardType, CreditCard - - -class Provider(CreditCardProvider): - """Custom credit card provider for the zh_CN locale.""" - - prefix_unionpay = ["62"] # UnionPay cards typically start with 62 - prefix_visa = ["4"] - prefix_mastercard = ["51", "52", "53", "54", "55"] - - credit_card_types = OrderedDict( - ( - ("unionpay", CreditCard("UnionPay", prefix_unionpay, security_code="CVN2")), - ("visa", CreditCard("Visa", prefix_visa, security_code="CVV2")), - ("mastercard", CreditCard("Mastercard", prefix_mastercard, security_code="CVC2")), - ) - ) - - def credit_card_full(self, card_type: Optional[CardType] = None) -> str: - """Generate a full Chinese credit card with details.""" - card = self._credit_card_type(card_type) - tpl = "{provider}\n{owner}\n{number} {expire_date}\n{security}: {security_nb}\n{issuer}" - tpl = tpl.format( - provider=card.name, - owner=self.generator.parse("{{first_name}}{{last_name}}"), - number=self.credit_card_number(card), - expire_date=self.credit_card_expire(), - security=card.security_code, - security_nb=self.credit_card_security_code(card), - issuer=self.generator.parse("{{bank}}"), - ) - return self.generator.parse(tpl) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/zh_CN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/zh_CN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f4044f4..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/zh_CN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/__init__.py deleted file mode 100644 index c101f7a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/__init__.py +++ /dev/null @@ -1,425 +0,0 @@ -from typing import Dict, Optional, Tuple - -from .. import BaseProvider, ElementsType - -localized = True - - -class Provider(BaseProvider): - # Format: (code, name) - currencies: ElementsType[Tuple[str, str]] = ( - ("AED", "United Arab Emirates dirham"), - ("AFN", "Afghan afghani"), - ("ALL", "Albanian lek"), - ("AMD", "Armenian dram"), - ("ANG", "Netherlands Antillean guilder"), - ("AOA", "Angolan kwanza"), - ("ARS", "Argentine peso"), - ("AUD", "Australian dollar"), - ("AWG", "Aruban florin"), - ("AZN", "Azerbaijani manat"), - ("BAM", "Bosnia and Herzegovina convertible mark"), - ("BBD", "Barbadian dollar"), - ("BDT", "Bangladeshi taka"), - ("BGN", "Bulgarian lev"), - ("BHD", "Bahraini dinar"), - ("BIF", "Burundian franc"), - ("BMD", "Bermudian dollar"), - ("BND", "Brunei dollar"), - ("BOB", "Bolivian boliviano"), - ("BRL", "Brazilian real"), - ("BSD", "Bahamian dollar"), - ("BTN", "Bhutanese ngultrum"), - ("BWP", "Botswana pula"), - ("BYR", "Belarusian ruble"), - ("BZD", "Belize dollar"), - ("CAD", "Canadian dollar"), - ("CDF", "Congolese franc"), - ("CHF", "Swiss franc"), - ("CLP", "Chilean peso"), - ("CNY", "Renminbi"), - ("COP", "Colombian peso"), - ("CRC", "Costa Rican colón"), - ("CUC", "Cuban convertible peso"), - ("CUP", "Cuban peso"), - ("CVE", "Cape Verdean escudo"), - ("CZK", "Czech koruna"), - ("DJF", "Djiboutian franc"), - ("DKK", "Danish krone"), - ("DOP", "Dominican peso"), - ("DZD", "Algerian dinar"), - ("EGP", "Egyptian pound"), - ("ERN", "Eritrean nakfa"), - ("ETB", "Ethiopian birr"), - ("EUR", "Euro"), - ("FJD", "Fijian dollar"), - ("FKP", "Falkland Islands pound"), - ("GBP", "Pound sterling"), - ("GEL", "Georgian lari"), - ("GGP", "Guernsey pound"), - ("GHS", "Ghanaian cedi"), - ("GIP", "Gibraltar pound"), - ("GMD", "Gambian dalasi"), - ("GNF", "Guinean franc"), - ("GTQ", "Guatemalan quetzal"), - ("GYD", "Guyanese dollar"), - ("HKD", "Hong Kong dollar"), - ("HNL", "Honduran lempira"), - ("HRK", "Croatian kuna"), - ("HTG", "Haitian gourde"), - ("HUF", "Hungarian forint"), - ("IDR", "Indonesian rupiah"), - ("ILS", "Israeli new shekel"), - ("NIS", "Israeli new shekel"), - ("IMP", "Manx pound"), - ("INR", "Indian rupee"), - ("IQD", "Iraqi dinar"), - ("IRR", "Iranian rial"), - ("ISK", "Icelandic króna"), - ("JEP", "Jersey pound"), - ("JMD", "Jamaican dollar"), - ("JOD", "Jordanian dinar"), - ("JPY", "Japanese yen"), - ("KES", "Kenyan shilling"), - ("KGS", "Kyrgyzstani som"), - ("KHR", "Cambodian riel"), - ("KMF", "Comorian franc"), - ("KPW", "North Korean won"), - ("KRW", "South Korean won"), - ("KWD", "Kuwaiti dinar"), - ("KYD", "Cayman Islands dollar"), - ("KZT", "Kazakhstani tenge"), - ("LAK", "Lao kip"), - ("LBP", "Lebanese pound"), - ("LKR", "Sri Lankan rupee"), - ("LRD", "Liberian dollar"), - ("LSL", "Lesotho loti"), - ("LTL", "Lithuanian litas"), - ("LYD", "Libyan dinar"), - ("MAD", "Moroccan dirham"), - ("MDL", "Moldovan leu"), - ("MGA", "Malagasy ariar"), - ("MKD", "Macedonian denar"), - ("MMK", "Burmese kyat"), - ("MNT", "Mongolian tugrik"), - ("MOP", "Macanese pataca"), - ("MRO", "Mauritanian ouguiya"), - ("MUR", "Mauritian rupee"), - ("MVR", "Maldivian rufiyaa"), - ("MWK", "Malawian kwacha"), - ("MXN", "Mexican peso"), - ("MYR", "Malaysian ringgit"), - ("MZN", "Mozambican metical"), - ("NAD", "Namibian dollar"), - ("NGN", "Nigerian naira"), - ("NIO", "Nicaraguan córdoba"), - ("NOK", "Norwegian krone"), - ("NPR", "Nepalese rupee"), - ("NZD", "New Zealand dollar"), - ("OMR", "Omani rial"), - ("PAB", "Panamanian balboa"), - ("PEN", "Peruvian sol"), - ("PGK", "Papua New Guinean kina"), - ("PHP", "Philippine peso"), - ("PKR", "Pakistani rupee"), - ("PLN", "Polish zloty"), - ("PYG", "Paraguayan guarani"), - ("QAR", "Qatari riyal"), - ("RON", "Romanian leu"), - ("RSD", "Serbian dinar"), - ("RUB", "Russian ruble"), - ("RWF", "Rwandan franc"), - ("SAR", "Saudi riyal"), - ("SBD", "Solomon Islands dollar"), - ("SCR", "Seychellois rupee"), - ("SDG", "Sudanese pound"), - ("SEK", "Swedish krona"), - ("SGD", "Singapore dollar"), - ("SHP", "Saint Helena pound"), - ("SLL", "Sierra Leonean leone"), - ("SOS", "Somali shilling"), - ("SPL", "Seborga luigino"), - ("SRD", "Surinamese dollar"), - ("STD", "São Tomé and Príncipe dobra"), - ("SVC", "Salvadoran colón"), - ("SYP", "Syrian pound"), - ("SZL", "Swazi lilangeni"), - ("THB", "Thai baht"), - ("TJS", "Tajikistani somoni"), - ("TMT", "Turkmenistan manat"), - ("TND", "Tunisian dinar"), - ("TOP", "Tongan paʻanga"), - ("TRY", "Turkish lira"), - ("TTD", "Trinidad and Tobago dollar"), - ("TVD", "Tuvaluan dollar"), - ("TWD", "New Taiwan dollar"), - ("TZS", "Tanzanian shilling"), - ("UAH", "Ukrainian hryvnia"), - ("UGX", "Ugandan shilling"), - ("USD", "United States dollar"), - ("UYU", "Uruguayan peso"), - ("UZS", "Uzbekistani soʻm"), - ("VEF", "Venezuelan bolívar"), - ("VND", "Vietnamese đồng"), - ("VUV", "Vanuatu vatu"), - ("WST", "Samoan tālā"), - ("XAF", "Central African CFA franc"), - ("XCD", "Eastern Caribbean dollar"), - ("XDR", "Special drawing rights"), - ("XOF", "West African CFA franc"), - ("XPF", "CFP franc"), - ("YER", "Yemeni rial"), - ("ZAR", "South African rand"), - ("ZMW", "Zambian kwacha"), - ("ZWD", "Zimbabwean dollar"), - ) - - # Source: https://en.wikipedia.org/wiki/List_of_cryptocurrencies - cryptocurrencies: ElementsType[Tuple[str, str]] = ( - ("AMP", "AMP"), - ("AUR", "Auroracoin"), - ("BC", "BlackCoin"), - ("BTC", "Bitcoin"), - ("BURST", "Burstcoin"), - ("DASH", "Dash"), - ("DOGE", "Dogecoin"), - ("EMC", "Emercoin"), - ("ETH", "Ethereum"), - ("ETC", "Ethereum Classic"), - ("GRC", "Gridcoin"), - ("KOI", "Coinye"), - ("LTC", "Litecoin"), - ("MSC", "Omni"), - ("MZC", "MazaCoin"), - ("NMC", "Namecoin"), - ("NXT", "Nxt"), - ("POT", "PotCoin"), - ("PPC", "Peercoin"), - ("TIT", "Titcoin"), - ("VTC", "Vertcoin"), - ("XDN", "DigitalNote"), - ("XMR", "Monero"), - ("XPM", "Primecoin"), - ("XRP", "Ripple"), - ("ZEC", "Zcash"), - ("STC", "SwiftCoin"), - ("BCN", "Bytecoin"), - ("FTH", "Feathercoin"), - ("NEO", "NEO"), - ("NEM", "XEM"), - ("USDT", "Tether"), - ("IOTA", "IOTA"), - ("DRC", "Decred"), - ("WAVES", "Waves Platform"), - ("LSK", "Lisk"), - ("ZCL", "Zclassic"), - ("BCH", "Bitcoin Cash"), - ("UBQ", "Ubiq"), - ("EOS", "EOS.IO"), - ("SRN", "Sirin Labs"), - ("TRX", "TRON"), - ("ADA", "Cardano"), - ) - - # List of currency symbols - # source: https://en.wikipedia.org/wiki/Currency_symbol - currency_symbols: Dict[str, str] = { - "AED": "\u002e\u062f\u002e\u0625", - "AFN": "\u060b", - "ALL": "Lek", - "AMD": "\u058f", - "ANG": "\u0192", - "AOA": "Kz", - "ARS": "\u0024", - "AUD": "\u0024", - "AWG": "\u0192", - "AZN": "\u20bc", - "BAM": "KM", - "BBD": "\u0024", - "BDT": "\u09f3", - "BGN": "Lev", - "BHD": "\u062f\u0628", - "BIF": "Fr", - "BMD": "\u0024", - "BND": "\u0024", - "BOB": "\u0024", - "BRL": "\u0024", - "BSD": "\u0024", - "BTN": "Nu", - "BWP": "P", - "BYR": "R", - "BZD": "\u0024", - "CAD": "\u0024", - "CDF": "Fr", - "CHF": "Fr", - "CLP": "\u0024", - "CNY": "\u00a5", - "COP": "\u0024", - "CRC": "\u20a1", - "CUC": "\u0024", - "CUP": "\u0024", - "CVE": "\u0024", - "CZK": "\u004b\u010d\u0073", - "DJF": "Fr", - "DKK": "kr", - "DOP": "\u0024", - "DZD": "\u062f\u062c\u200e", - "EGP": "\u00a3", - "ERN": "Nfk", - "ETB": "Br", - "EUR": "\u20ac", - "FJD": "\u0024", - "FKP": "\u00a3", - "GBP": "\u00a3", - "GEL": "\u20be", - "GGP": "\u00a3", - "GHS": "\u20b5", - "GIP": "\u00a3", - "GMD": "D", - "GNF": "FG", - "GTQ": "Q", - "GYD": "\u0024", - "HKD": "\u0024", - "HNL": "L", - "HRK": "kn", - "HTG": "G", - "HUF": "Ft", - "IDR": "Rp", - "ILS": "\u20aa", - "IMP": "\u00a3", - "INR": "\u20b9", - "IQD": "\u062f\u0639", - "IRR": "\ufdfc", - "ISK": "kr", - "JEP": "\u00a3", - "JMD": "\u0024", - "JOD": "JD", - "JPY": "\u00a5", - "KES": "KSh", - "KGS": "\u20c0", - "KHR": "\u17db", - "KMF": "FC", - "KPW": "\u20a9", - "KRW": "\u20a9", - "KWD": "KD", - "KYD": "\u0024", - "KZT": "\u20b8", - "LAK": "\u20ad", - "LBP": "\u00a3", - "LKR": "\u20a8", - "LRD": "\u0024", - "LSL": "M", - "LTL": "L", - "LYD": "LD", - "MAD": "Dhs", - "MDL": "leu", - "MGA": "Ar", - "MKD": "DEN", - "MMK": "Ks", - "MNT": "\u20ae", - "MOP": "\u0024", - "MRO": "UM", - "MUR": "\u20a8", - "MVR": "\u0078", - "MWK": "K", - "MXN": "\u0024", - "MYR": "RM", - "MZN": "Mt", - "NAD": "\u0024", - "NGN": "\u20a6", - "NIO": "\u0024", - "NIS": "\u20aa", - "NOK": "kr", - "NPR": "\u20a8", - "NZD": "\u0024", - "OMR": "\ufdfc", - "PAB": "B/", - "PEN": "S/", - "PGK": "K", - "PHP": "\u20b1", - "PKR": "\u20a8", - "PLN": "\u007a\u0142", - "PYG": "\u20b2", - "QAR": "\ufdfc", - "RON": "leu", - "RSD": "\u0434\u0438\u043d", - "RUB": "\u20bd", - "RWF": "F", - "SAR": "\ufdfc", - "SBD": "\u0024", - "SCR": "\u20a8", - "SDG": "\u00a3", - "SEK": "kr", - "SGD": "\u0024", - "SHP": "\u00a3", - "SLL": "Le", - "SOS": "Sh.So.", - "SPL": "L", - "SRD": "\u0024", - "STD": "Db", - "SVC": "\u20a1", - "SYP": "\u00a3", - "SZL": "E", - "THB": "\u0e3f", - "TJS": "SM", - "TMT": "m", - "TND": "DT", - "TOP": "\u00a2", - "TRY": "\u20ba", - "TTD": "\u0024", - "TVD": "\u0024", - "TWD": "\u0024", - "TZS": "Tsh", - "UAH": "\u20b4", - "UGX": "USh", - "USD": "\u0024", - "UYU": "\u0024", - "UZS": "\u043b\u0432", - "VEF": "\u0042\u0073", - "VND": "\u20ab", - "VUV": "VT", - "WST": "\u0024", - "XAF": "Fr", - "XCD": "\u0024", - "XDR": "SDR", - "XOF": "Fr", - "XPF": "Fr", - "YER": "\ufdfc", - "ZAR": "R", - "ZMW": "K", - "ZWD": "\u0024", - } - - price_formats: ElementsType[str] = ["#.##", "%#.##", "%##.##", "%,###.##", "%#,###.##"] - - def currency(self) -> Tuple[str, str]: - return self.random_element(self.currencies) - - def currency_code(self) -> str: - return self.currency()[0] - - def currency_name(self) -> str: - return self.currency()[1] - - def currency_symbol(self, code: Optional[str] = None) -> str: - """ - :example: $ - """ - if code is None: - code = self.random_element(self.currency_symbols.keys()) - elif code not in [currency[0] for currency in self.currencies]: - raise KeyError("The supplied code is not valid") - return self.currency_symbols.get(code, "\u00a4") - - def cryptocurrency(self) -> Tuple[str, str]: - return self.random_element(self.cryptocurrencies) - - def cryptocurrency_code(self) -> str: - return self.cryptocurrency()[0] - - def cryptocurrency_name(self) -> str: - return self.cryptocurrency()[1] - - def pricetag(self) -> str: - currency: Tuple[str, str] = self.random_element(self.currencies) - return currency[0] + "\N{NO-BREAK SPACE}" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e530c8a..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/ar_DZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/ar_DZ/__init__.py deleted file mode 100644 index 8fd5962..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/ar_DZ/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - # source: https://ar.wikipedia.org/wiki/دينار_جزائري - price_formats = ["#,##", "%#,##", "%##,##", "% ###,##", "%# ###,##"] - - def pricetag(self) -> str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}دج" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/ar_DZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/ar_DZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 34e8fc6..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/ar_DZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/az_AZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/az_AZ/__init__.py deleted file mode 100644 index 4a4638c..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/az_AZ/__init__.py +++ /dev/null @@ -1,178 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - # Format: (code, name) - # Source: https://az.wikipedia.org/wiki/M%C3%B6vcud_valyutalar%C4%B1n_siyah%C4%B1s%C4%B1 - currencies = ( - ("USD", "ABŞ dolları"), - ("ALL", "Albaniya leki"), - ("AOA", "Anqola kvanzası"), - ("ARS", "Argentina pesosu"), - ("AWG", "Aruba florini"), - ("EUR", "Avro"), - ("AUD", "Avstraliya dolları"), - ("AZN", "Azərbaycan manatı"), - ("BSD", "Baham dolları"), - ("BDT", "Banqladeş takası"), - ("BBD", "Barbados dolları"), - ("BZD", "Beliz dolları"), - ("BMD", "Bermud dolları"), - ("MMK", "Birma kyatı"), - ("BOB", "Boliviya bolivianosu"), - ("BGN", "Bolqarıstan levi"), - ("BAM", "Bosniya və Herseqovina konvertasiya olunan markası"), - ("BWP", "Botsvana pulası"), - ("BRL", "Braziliya realı"), - ("GBP", "Britaniya funtu"), - ("GBP", "Britaniya funtu[C]"), - ("BND", "Bruney dolları"), - ("BIF", "Burundi frankı"), - ("BTN", "Butan nqultrumu"), - ("AED", "BƏƏ dirhəmi"), - ("BHD", "Bəhreyn dinarı"), - ("XPF", "CFP frankı"), - ("JEP", "Cersi funtu"), - ("DJF", "Cibuti frankı"), - ("GIP", "Cəbəllütariq funtu"), - ("ZAR", "Cənubi Afrika randı"), - ("KRW", "Cənubi Koreya vonası"), - ("SSP", "Cənubi Sudan funtu"), - ("DKK", "Danimarka kronu"), - ("PRB", "Dnestryanı rublu"), - ("DOP", "Dominikan pesosu"), - ("ETB", "Efiopiya birri"), - ("ERN", "Eritreya nakfası"), - ("AMD", "Ermənistan dramı"), - ("SZL", "Esvatini lilangenisi"), - ("FJD", "Fici dolları"), - ("PHP", "Filippin pesosu"), - ("FKP", "Folklend adaları funtu"), - ("(yoxdur)", "Gernsi funtu"), - ("GGP", "Gernsi funtu"), - ("GEL", "Gürcüstan larisi"), - ("HTG", "Haiti qurdu"), - ("INR", "Hindistan rupisi"), - ("HNL", "Honduras lempirası"), - ("HKD", "Honkonq dolları"), - ("CVE", "Kabo-Verde eskudosu"), - ("KHR", "Kamboca rieli"), - ("CAD", "Kanada dolları"), - ("KYD", "Kayman adaları dolları"), - ("KES", "Keniya şillinqi"), - ("COP", "Kolumbiya pesosu"), - ("KMF", "Komor frankı"), - ("CDF", "Konqo frankı"), - ("CRC", "Kosta-Rika kolonu"), - ("CUC", "Kuba konvertasiya olunan pesosu"), - ("CUP", "Kuba pesosu"), - ("BYN", "Köhnə Belarus rublu"), - ("KWD", "Küveyt dinarı"), - ("LAK", "Laos kipi"), - ("LSL", "Lesoto lotisi"), - ("LRD", "Liberiya dolları"), - ("LBP", "Livan funtu"), - ("LYD", "Liviya dinarı"), - ("HUF", "Macarıstan forinti"), - ("MOP", "Makao patakası"), - ("MKD", "Makedoniya denarı"), - ("MGA", "Malaqasi ariarisi"), - ("MWK", "Malavi kvaçası"), - ("MYR", "Malayziya ringgiti"), - ("MVR", "Maldiv rufiyası"), - ("MUR", "Mavriki rupisi"), - ("MRO", "Mavritaniya ugiya"), - ("MRO", "Mavritaniya ugiyası"), - ("MXN", "Meksika pesosu"), - ("IMP", "Men funtu"), - ("EGP", "Misir funtu"), - ("MDL", "Moldova leyi"), - ("MNT", "Monqolustan tuqriki"), - ("MZN", "Mozambik metikalı"), - ("SHP", "Müqəddəs Yelena funtu"), - ("MAD", "Mərakeş dirhəmi"), - ("XAF", "Mərkəzi Afrika AMİ frankı"), - ("NAD", "Namibiya dolları"), - ("NPR", "Nepal rupisi"), - ("ANG", "Niderland Antil adaları quldeni"), - ("NGN", "Nigeriya nayrası"), - ("NIO", "Nikaraqua kordobası"), - ("NOK", "Norveç kronu"), - ("OMR", "Oman rialı"), - ("PKR", "Pakistan rupisi"), - ("PAB", "Panama balboası"), - ("PGK", "Papua-Yeni Qvineya kinası"), - ("PYG", "Paraqvay quaranisi"), - ("PLN", "Polşa zlotısı"), - ("GMD", "Qambiya dalasisi"), - ("GHS", "Qana sedisi"), - ("GYD", "Qayana dolları"), - ("KZT", "Qazaxıstan tengəsi"), - ("GTQ", "Qvatemala ketsalı"), - ("GNF", "Qvineya frankı"), - ("KGS", "Qırğız somu"), - ("XOF", "Qərbi Afrika AMİ frankı"), - ("QAR", "Qətər rialı"), - ("RWF", "Ruanda frankı"), - ("RON", "Rumıniya leyi"), - ("RUB", "Rus rublu"), - ("RUB", "Rusiya rublu"), - ("WST", "Samoa talası"), - ("STD", "San-Tome və Prinsipi dobrası"), - ("RSD", "Serbiya dinarı"), - ("SCR", "Seyşel rupisi"), - ("SGD", "Sinqapur dolları"), - ("SBD", "Solomon adaları dolları"), - ("SOS", "Somali şillinqi"), - ("SDG", "Sudan funtu"), - ("SRD", "Surinam dolları"), - ("SYP", "Suriya funtu"), - ("SLL", "Syerra-Leone leonesi"), - ("SAR", "Səudiyyə Ərəbistanı rialı"), - ("TJS", "Tacikistan somonisi"), - ("THB", "Tailand bahtı"), - ("TZS", "Tanzaniya şillinqi"), - ("TOP", "Tonqa paanqası"), - ("TTD", "Trinidad və Tobaqo dolları"), - ("TND", "Tunis dinarı"), - ("TVD", "Tuvalu dolları"), - ("TRY", "Türk lirəsi"), - ("TMT", "Türkmənistan manatı"), - ("UAH", "Ukrayna qrivnası"), - ("UGX", "Uqanda şillinqi"), - ("UYU", "Uruqvay pesosu"), - ("VUV", "Vanuatu vatusu"), - ("VEF", "Venesuela bolivarı"), - ("VND", "Vyetnam donqu"), - ("HRK", "Xorvatiya kunası"), - ("JMD", "Yamayka dolları"), - ("JPY", "Yapon yeni"), - ("BYR", "Yeni Belarus rublu"), - ("PEN", "Yeni Peru solu"), - ("TWD", "Yeni Tayvan dolları"), - ("NZD", "Yeni Zelandiya dolları"), - ("ILS", "Yeni İsrail şekeli"), - ("YER", "Yəmən rialı"), - ("ZMW", "Zambiya kvaçası"), - ("CZK", "Çex kronu"), - ("CLP", "Çili pesosu"), - ("CNY", "Çin yuanı"), - ("UZS", "Özbək somu"), - ("IDR", "İndoneziya rupiası"), - ("JOD", "İordaniya dinarı"), - ("IRR", "İran rialı"), - ("IQD", "İraq dinarı"), - ("ISK", "İslandiya kronası"), - ("SEK", "İsveç kronu"), - ("CHF", "İsveçrə frankı"), - ("KPW", "Şimali Koreya vonası"), - ("LKR", "Şri-Lanka rupisi"), - ("XCD", "Şərqi Karib dolları"), - ("AFN", "Əfqanıstan əfqanisi"), - ("DZD", "Əlcəzair dinarı"), - ) - - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self): - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}AZN" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/az_AZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/az_AZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5704e79..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/az_AZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/bn_BD/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/bn_BD/__init__.py deleted file mode 100644 index ae3953d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/bn_BD/__init__.py +++ /dev/null @@ -1,231 +0,0 @@ -from faker.providers.person.bn_BD import translate_to_bengali_digits - -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - """ - Implement currency provider for ``bn_BD`` locale. - """ - - currencies = ( - ("AED", "সংযুক্ত আরব আমিরাত দিরহাম"), - ("AFN", "আফগান আফগানি"), - ("সমস্ত", "আলবেনিয়ান লেক"), - ("AMD", "আর্মেনিয়ান ড্রাম"), - ("ANG", "নেদারল্যান্ডস অ্যান্টিলিয়ান গিল্ডার"), - ("AOA", "অ্যাঙ্গোলান কোয়ানজা"), - ("ARS", "আর্জেন্টিনা পেসো"), - ("AUD", "অস্ট্রেলিয়ান ডলার"), - ("AWG", "আরুবান ফ্লোরিন"), - ("AZN", "আজারবাইজানীয় মানাত"), - ("BAM", "বসনিয়া ও হার্জেগোভিনা পরিবর্তনযোগ্য চিহ্ন"), - ("BBD", "বার্বাডিয়ান ডলার"), - ("বিডিটি", "বাংলাদেশি টাকা"), - ("BGN", "বুলগেরিয়ান লেভ"), - ("BHD", "বাহরাইন দিনার"), - ("BIF", "বুরুন্ডিয়ান ফ্রাঙ্ক"), - ("BMD", "বারমুডিয়ান ডলার"), - ("BND", "ব্রুনাই ডলার"), - ("BOB", "বলিভিয়ান বলিভিয়ানো"), - ("BRL", "ব্রাজিলিয়ান রিয়াল"), - ("BSD", "বাহামিয়ান ডলার"), - ("BTN", "ভুটানি নগুলট্রাম"), - ("BWP", "বতসোয়ানা পুলা"), - ("BYR", "বেলারুশিয়ান রুবেল"), - ("BZD", "বেলিজ ডলার"), - ("CAD", "কানাডিয়ান ডলার"), - ("CDF", "কঙ্গোলিজ ফ্রাঙ্ক"), - ("CHF", "সুইস ফ্রাঙ্ক"), - ("CLP", "চিলিয়ান পেসো"), - ("CNY", "রেনমিনবি"), - ("COP", "কলম্বিয়ান পেসো"), - ("CRC", "কোস্টারিকান কোলন"), - ("CUC", "কিউবান কনভার্টেবল পেসো"), - ("CUP", "কিউবান পেসো"), - ("CVE", "কেপ ভার্ডিয়ান এসকুডো"), - ("CZK", "চেক কোরুনা"), - ("DJF", "জিবুতিয়ান ফ্রাঙ্ক"), - ("DKK", "ড্যানিশ ক্রোন"), - ("DOP", "ডোমিনিকান পেসো"), - ("DZD", "আলজেরিয়ান দিনার"), - ("EGP", "মিশরীয় পাউন্ড"), - ("ERN", "ইরিত্রিয়ান নাকফা"), - ("ETB", "ইথিওপিয়ান বির"), - ("EUR", "ইউরো"), - ("FJD", "ফিজিয়ান ডলার"), - ("FKP", "ফকল্যান্ড দ্বীপপুঞ্জ পাউন্ড"), - ("GBP", "পাউন্ড স্টার্লিং"), - ("GEL", "জর্জিয়ান লারি"), - ("GGP", "গার্নসি পাউন্ড"), - ("GHS", "ঘানার সিডি"), - ("GIP", "জিব্রাল্টার পাউন্ড"), - ("GMD", "গাম্বিয়ান ডালাসি"), - ("GNF", "গিনি ফ্রাঙ্ক"), - ("GTQ", "গুয়াতেমালান কুয়েটজাল"), - ("GYD", "গায়ানিজ ডলার"), - ("HKD", "হংকং ডলার"), - ("HNL", "হন্ডুরান লেম্পিরা"), - ("HRK", "ক্রোয়েশিয়ান কুনা"), - ("HTG", "হাইতিয়ান গার্ড"), - ("HUF", "হাঙ্গেরিয়ান ফরিন্ট"), - ("IDR", "ইন্দোনেশিয়ান রুপিয়া"), - ("ILS", "ইসরায়েলি নতুন শেকেল"), - ("NIS", "ইসরায়েলি নতুন শেকেল"), - ("IMP", "ম্যাঙ্কস পাউন্ড"), - ("INR", "ভারতীয় রুপি"), - ("IQD", "ইরাকি দিনার"), - ("IRR", "ইরানি রিয়াল"), - ("ISK", "আইসল্যান্ডিক ক্রোনা"), - ("JEP", "জার্সি পাউন্ড"), - ("JMD", "জ্যামাইকান ডলার"), - ("JOD", "জর্ডানিয়ান দিনার"), - ("JPY", "জাপানি ইয়েন"), - ("KES", "কেনিয়ান শিলিং"), - ("KGS", "কিরগিজস্তানি সোম"), - ("KHR", "কম্বোডিয়ান রিয়েল"), - ("KMF", "কমোরিয়ান ফ্রাঙ্ক"), - ("KPW", "উত্তর কোরিয়ান জয়ী"), - ("KRW", "দক্ষিণ কোরিয়ান জয়ী"), - ("KWD", "কুয়েতি দিনার"), - ("KYD", "কেম্যান দ্বীপপুঞ্জ ডলার"), - ("KZT", "কাজাখস্তানি টেঙ্গে"), - ("LAK", "লাও কিপ"), - ("LBP", "লেবানিজ পাউন্ড"), - ("LKR", "শ্রীলঙ্কা রুপি"), - ("LRD", "লাইবেরিয়ান ডলার"), - ("LSL", "লেসোথো লোটি"), - ("LTL", "লিথুয়ানিয়ান লিটাস"), - ("LYD", "লিবিয়ান দিনার"), - ("MAD", "মরক্কান দিরহাম"), - ("MDL", "Moldovan leu"), - ("MGA", "মালাগাসি আরিয়ার"), - ("MKD", "ম্যাসেডোনিয়ান ডেনার"), - ("MMK", "বর্মী কিয়াত"), - ("MNT", "মঙ্গোলিয়ান তুগ্রিক"), - ("MOP", "ম্যাকানিজ পটাকা"), - ("MRO", "মৌরিতানীয় ওগুইয়া"), - ("MUR", "মরিশিয়ান রুপি"), - ("MVR", "মালদ্বীপের রুফিয়া"), - ("MWK", "মালাউইয়ান কোয়াচা"), - ("MXN", "মেক্সিকান পেসো"), - ("MYR", "মালয়েশিয়ান রিঙ্গিত"), - ("MZN", "মোজাম্বিকন মেটিক্যাল"), - ("NAD", "নামিবিয়ান ডলার"), - ("NGN", "নাইজেরিয়ান নায়রা"), - ("NIO", "নিকারাগুয়ান কর্ডোবা"), - ("NOK", "নরওয়েজিয়ান ক্রোন"), - ("NPR", "নেপালি রুপি"), - ("NZD", "নিউজিল্যান্ড ডলার"), - ("OMR", "ওমানি রিয়াল"), - ("PAB", "পানামানিয়ান বালবোয়া"), - ("পেন", "পেরুভিয়ান সল"), - ("PGK", "পাপুয়া নিউ গিনি কিনা"), - ("PHP", "ফিলিপাইন পেসো"), - ("PKR", "পাকিস্তানি রুপি"), - ("PLN", "পোলিশ জ্লটি"), - ("PYG", "প্যারাগুয়ের গুয়ারানি"), - ("QAR", "কাতারি রিয়াল"), - ("RON", "রোমানিয়ান লিউ"), - ("RSD", "সার্বিয়ান দিনার"), - ("RUB", "রাশিয়ান রুবেল"), - ("RWF", "রুয়ান্ডার ফ্রাঙ্ক"), - ("SAR", "সৌদি রিয়াল"), - ("SBD", "সলোমন দ্বীপপুঞ্জ ডলার"), - ("SCR", "সেচেলো রুপি"), - ("SDG", "সুদানিজ পাউন্ড"), - ("SEK", "সুইডিশ ক্রোনা"), - ("SGD", "সিঙ্গাপুর ডলার"), - ("SHP", "সেন্ট হেলেনা পাউন্ড"), - ("SLL", "সিয়েরা লিওনিয়ান লিওন"), - ("SOS", "সোমালি শিলিং"), - ("SPL", "সেবোরগা লুইগিনো"), - ("SRD", "সুরিনামী ডলার"), - ("STD", "সাও টোমে এবং প্রিন্সিপে ডোবরা"), - ("SVC", "সালভাডোরান কোলন"), - ("SYP", "সিরিয়ান পাউন্ড"), - ("SZL", "সোয়াজি লিলাঞ্জেনি"), - ("THB", "থাই বাত"), - ("TJS", "তাজিকিস্তানি সোমনি"), - ("TMT", "তুর্কমেনিস্তান মানাত"), - ("TND", "তিউনিসিয়ান দিনার"), - ("TOP", "টোঙ্গান পা'আঙ্গা"), - ("TRY", "তুর্কি লিরা"), - ("TTD", "ত্রিনিদাদ ও টোবাগো ডলার"), - ("TVD", "টুভালুয়ান ডলার"), - ("TWD", "নতুন তাইওয়ান ডলার"), - ("TZS", "তানজানিয়ান শিলিং"), - ("UAH", "ইউক্রেনীয় রিভনিয়া"), - ("UGX", "উগান্ডার শিলিং"), - ("USD", "মার্কিন যুক্তরাষ্ট্র ডলার"), - ("UYU", "উরুগুয়ের পেসো"), - ("UZS", "উজবেকিস্তানি তাই'"), - ("VEF", "ভেনিজুয়েলা বলিভার"), - ("VND", "ভিয়েতনামী তামা"), - ("VUV", "ভানুয়াতু ভাতু"), - ("WST", "সামোয়ান তালা"), - ("XAF", "সেন্ট্রাল আফ্রিকান সিএফএ ফ্রাঙ্ক"), - ("XCD", "পূর্ব ক্যারিবিয়ান ডলার"), - ("XDR", "বিশেষ অঙ্কন অধিকার"), - ("XOF", "ওয়েস্ট আফ্রিকান সিএফএ ফ্রাঙ্ক"), - ("XPF", "সিএফপি ফ্রাঙ্ক"), - ("YER", "ইয়েমেনি রিয়াল"), - ("ZAR", "দক্ষিণ আফ্রিকান র্যান্ড"), - ("ZMW", "জাম্বিয়ান কোয়াচা"), - ("ZWD", "জিম্বাবুয়েন ডলার"), - ) - - cryptocurrencies = ( - ("AMP", "এএমপি"), - ("AUR", "অরোরাকয়েন"), - ("BC", "ব্ল্যাককয়েন"), - ("BTC", "বিটকয়েন"), - ("BURST", "ব্রাস্টকয়েন"), - ("DASH", "ড্যাশ"), - ("DOGE", "ডোজকয়েন"), - ("EMC", "ইমারকয়েন"), - ("ETH", "ইথেরিয়াম"), - ("ETC", "ইথেরিয়াম ক্ল্যাসিক"), - ("GRC", "গ্রিডকয়েন"), - ("KOI", "কয়েনইয়ে"), - ("LTC", "লাইট কয়েন"), - ("MSC", "ওমনি"), - ("MZC", "মাজাকয়েন"), - ("NMC", "নেমকয়েন"), - ("NXT", "এনএক্সটি"), - ("POT", "পট কয়েন"), - ("PPC", "পিয়ারকয়েন"), - ("TIT", "টিটকয়েন"), - ("VTC", "ভার্টকয়েন"), - ("XDN", "ডিজিটাল নোট"), - ("XMR", "মনেরো"), - ("XPM", "প্রাইম কয়েন"), - ("XRP", "রিপল"), - ("ZEC", "জেক্যাশ"), - ("STC", "সুইফট কয়েন"), - ("BCN", "বাইট কয়েন"), - ("FTH", "ফেদার কয়েন"), - ("NEO", "নিও"), - ("NEM", "জেম"), - ("USDT", "টেথার"), - ("IOTA", "আই ও টা"), - ("DRC", "ডিক্রিড"), - ("WAVES", "ওয়েভস প্লাটফর্ম"), - ("LSK", "লিস্ক"), - ("ZCL", "জেক্ল্যাসিক"), - ("BCH", "বিটকয়েন ক্যাশ"), - ("UBQ", "ইউবিক"), - ("EOS", "ই ও এস ডট আইও"), - ("SRN", "সিরিন ল্যাবস"), - ("TRX", "ট্রন"), - ("ADA", "কার্দানো"), - ) - - def pricetag(self) -> str: - """ - Return price in Bengali digit with Bangladeshi Currency symbol. - :example: '৳ ৫৫,৫৫০' - """ - currency_symbol = self.currency_symbol("BDT") - price = self.numerify(self.random_element(self.price_formats)) - return currency_symbol + " " + translate_to_bengali_digits(price) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/bn_BD/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/bn_BD/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index dfa2061..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/bn_BD/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/cs_CZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/cs_CZ/__init__.py deleted file mode 100644 index 5af4f01..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/cs_CZ/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,#0", "%#,#0", "%##,#0", "%.###,#0", "%#.###,#0"] - - def pricetag(self) -> str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}Kč" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/cs_CZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/cs_CZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index abd236b..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/cs_CZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/da_DK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/da_DK/__init__.py deleted file mode 100644 index ce26084..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/da_DK/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self): - return self.numerify(self.random_element(self.price_formats)) + " kr." diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/da_DK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/da_DK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a4ee535..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/da_DK/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/de/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/de/__init__.py deleted file mode 100644 index 2dcfab4..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/de/__init__.py +++ /dev/null @@ -1,174 +0,0 @@ -from typing import Tuple - -from .. import ElementsType -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - # source: https://www.laenderdaten.info/waehrungen/ - - currencies: ElementsType[Tuple[str, str]] = ( - ("AED", "Arabische Dirham"), - ("AFN", "Afghani"), - ("ALL", "Albanische Lek"), - ("AMD", "Armenische Dram"), - ("ANG", "Antillen Gulden"), - ("AOA", "Angolanische Kwanza"), - ("ARS", "Argentinische Peso"), - ("AUD", "Australische Dollar"), - ("AWG", "Aruba Florin"), - ("AZN", "Aserbaidschanische Manat"), - ("BAM", "Konvertible Mark"), - ("BBD", "Barbados Dollar"), - ("BDT", "Bangladeschische Taka"), - ("BGN", "Bulgarische Lew"), - ("BHD", "Bahrainische Dinar"), - ("BIF", "Burundische Franc"), - ("BMD", "Bermudische Dollar"), - ("BND", "Brunei Dollar"), - ("BOB", "Boliviano"), - ("BRL", "Brasilianische Real"), - ("BSD", "Bahamas Dollar"), - ("BTN", "Bhutanisches Ngultrum"), - ("BWP", "Botswanische Pula"), - ("BYR", "Belarussische Rubel"), - ("BZD", "Belize Dollar"), - ("CAD", "Kanadische Dollar"), - ("CDF", "Kongolesische Franc"), - ("CHF", "Schweizer Franken"), - ("CLP", "Chilenische Peso"), - ("CNY", "Renminbi Yuán"), - ("COP", "Kolumbische Peso"), - ("CRC", "Costa-Rica Colón"), - ("CUC", "Cuba Peso Convertible"), - ("CUP", "Kubanische Peso"), - ("CVE", "Cap Verdische Escudo"), - ("CZK", "Tschechische Krone"), - ("DJF", "Dschibuti Franc"), - ("DKK", "Dänische Krone"), - ("DOP", "Dominikanische Peso"), - ("DZD", "Algerische Dinar"), - ("EGP", "Ägyptische Pfund"), - ("ERN", "Eritreische Nakfa"), - ("ETB", "Äthiopische Birr"), - ("EUR", "Euro"), - ("FJD", "Fidschi Dollar"), - ("FKP", "Falkländische Pfund"), - ("GBP", "Sterling Pfund"), - ("GEL", "Georgische Lari"), - ("GGP", "Guernsey Pfund"), - ("GHS", "Ghanaische Cedi"), - ("GIP", "Gibraltar Pfund"), - ("GMD", "Gambische Dalasi"), - ("GNF", "Guinea Franc"), - ("GTQ", "Guatemaltekischer Quetzal"), - ("GYD", "Guyana Dollar"), - ("HKD", "Hongkong Dollar"), - ("HNL", "Honduranische Lempira"), - ("HRK", "Kroatische Kuna"), - ("HTG", "Haitianische Gourde"), - ("HUF", "Ungarische Forint"), - ("IDR", "Indonesische Rupiah"), - ("ILS", "Israelische Schekel"), - ("NIS", "Israelische Schekel"), - ("IMP", "Isle-of-Man Pfund"), - ("INR", "Indische Rupie"), - ("IQD", "Irakische Dinar"), - ("IRR", "Iranische Rial"), - ("ISK", "Isländische Krone"), - ("JEP", "Jersey Pfund"), - ("JMD", "Jamaikanische Dollar"), - ("JOD", "Jordanische Dinar"), - ("JPY", "Japanische Yen"), - ("KES", "Kenianische Schilling"), - ("KGS", "Kirgisische Som"), - ("KHR", "Kambodschanische Riel"), - ("KMF", "Komorische Franc"), - ("KPW", "Nordkoreanische Won"), - ("KRW", "Südkoreanische Won"), - ("KWD", "Kuwaitische Dinar"), - ("KYD", "Cayman Dollar"), - ("KZT", "Kasachische Tenge"), - ("LAK", "Laotische Kip"), - ("LBP", "Libanesische Pfund"), - ("LKR", "Sri Lanka Rupie"), - ("LRD", "Liberianische Dollar"), - ("LSL", "Lesothische Loti"), - ("LYD", "Libysche Dinar"), - ("MAD", "Marokkanische Dirham"), - ("MDL", "Moldauische Leu"), - ("MGA", "Madagassische Ariary"), - ("MKD", "Mazedonische Denar"), - ("MMK", "Burmesische Kyat"), - ("MNT", "Mongolische Tögrög"), - ("MOP", "Macau Pataca"), - ("MRO", "Mauretanische Ouguiya"), - ("MUR", "Mauritius Rupie"), - ("MVR", "Maledivische Rufiyaa"), - ("MWK", "Malawische Kwacha"), - ("MXN", "Mexikanische Peso"), - ("MYR", "Malaysische Ringgit"), - ("MZN", "Mosambikanische Metical"), - ("NAD", "Namibische Dollar"), - ("NGN", "Nigerianische Naira"), - ("NIO", "Nicaraguanische Córdoba Oro"), - ("NOK", "Norwegische Krone"), - ("NPR", "Nepalesische Rupie"), - ("NZD", "Neuseeländische Dollar"), - ("OMR", "Omanische Rial"), - ("PAB", "Panamaische Balboa"), - ("PEN", "Peruanische Sol"), - ("PGK", "Papua-neuguineische Kina"), - ("PHP", "Philippinische Peso"), - ("PKR", "Pakistanische Rupie"), - ("PLN", "Polnische Złoty"), - ("PYG", "Paraguayische Guaraní"), - ("QAR", "Qatar Riyal"), - ("RON", "Rumänische Leu"), - ("RSD", "Serbische Dinar"), - ("RUB", "Russische Rubel"), - ("RWF", "Ruandische Franc"), - ("SAR", "Saudische Riyal"), - ("SBD", "Salomonische Dollar"), - ("SCR", "Seychellen Rupie"), - ("SDG", "Sudanesische Pfund"), - ("SEK", "Schwedische Krone"), - ("SGD", "Singapur Dollar"), - ("SHP", "St.-Helena Pfund"), - ("SLL", "Sierra-leonische Leone"), - ("SOS", "Somalische Schilling"), - ("SPL", "Seborga Luigini"), - ("SRD", "Surinamische Dollar"), - ("STD", "São-toméische Dobra"), - ("SVC", "El-Salvador-Colón"), - ("SYP", "Syrische Pfund"), - ("SZL", "Swazi Lilangeni"), - ("THB", "Thailändische Baht"), - ("TJS", "Tadschikische Somoni"), - ("TMT", "Turkmenische Manat"), - ("TND", "Tunesische Dinar"), - ("TOP", "Tongaische Pa'anga"), - ("TRY", "Türkische Lira"), - ("TTD", "Trinidad und Tobago Dollar"), - ("TVD", "Tuvalu Dollar"), - ("TWD", "Neu Taiwanesische Dollar"), - ("TZS", "Tansanische Schilling"), - ("UAH", "Ukrainische Hrywnja"), - ("UGX", "Ugandische Schilling"), - ("USD", "Amerikanische Dollar"), - ("UYU", "Uruguayische Peso"), - ("UZS", "Uzbekische So'm"), - ("VEF", "Venezuelanische Bolívar"), - ("VND", "Vietnamesischer Dong"), - ("VUV", "Vanuatuische Vatu"), - ("WST", "Samoanische Tala"), - ("XAF", "Zentralafrikanische CFA-Franc"), - ("XCD", "Ostkaribische Dollar"), - ("XDR", "Sonderziehungsrecht"), - ("XOF", "Westafrikanische CFA-Franc"), - ("XPF", "Pazifische Franc"), - ("YER", "Jemenitische Rial"), - ("ZAR", "Südafrikanische Rand"), - ("ZMW", "Sambische Kwacha"), - ("ZWD", "Simbabwe Dollar"), - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/de/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/de/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e56dffd..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/de/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/de_AT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/de_AT/__init__.py deleted file mode 100644 index 2a6bccb..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/de_AT/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from ..de import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self) -> str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}\N{EURO SIGN}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/de_AT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/de_AT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a25f158..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/de_AT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/de_CH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/de_CH/__init__.py deleted file mode 100644 index a453ec6..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/de_CH/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from ..de import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - # source: https://de.wikipedia.org/wiki/Schreibweise_von_Zahlen#Dezimaltrennzeichen_2 - price_formats = ["\N{FIGURE DASH}.##", "%.##", "%#.##", "%##.##", "% ###.##", "%# ###.##"] - - def pricetag(self): - return "Fr.\N{NO-BREAK SPACE}" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/de_CH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/de_CH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index aa5f227..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/de_CH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/de_DE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/de_DE/__init__.py deleted file mode 100644 index a49621b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/de_DE/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from ..de import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self): - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}\N{EURO SIGN}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/de_DE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/de_DE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d86c2ea..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/de_DE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/el_GR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/el_GR/__init__.py deleted file mode 100644 index a24bf25..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/el_GR/__init__.py +++ /dev/null @@ -1,158 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - # Source https://el.wikipedia.org/wiki/Κατάλογος_νομισμάτων_των_χωρών_του_κόσμου - # Format: (code, name) - currencies = ( - ("AED", "Ντιρχάμ των Ηνωμένων Αραβικών Εμιράτων"), - ("AFN", "Αφγάνι"), - ("ALL", "Λεκ"), - ("AMD", "Ντραμ"), - ("AOA", "Κουάνζα"), - ("ARS", "Πέσο Αργεντινής"), - ("AUD", "Δολάριο Αυστραλίας"), - ("AZN", "Μανάτ του Αζερμπαϊτζάν"), - ("BAM", "Μετατρέψιμο μάρκο Βοσνίας και Ερζεγοβίνης"), - ("BBD", "Δολάριο των Μπαρμπάντος"), - ("BDT", "Τάκα"), - ("BGN", "Λεβ"), - ("BHD", "Δηνάριο του Μπαχρέιν"), - ("BIF", "Φράγκο του Μπουρούντι"), - ("BND", "Κυάτ Μιανμάρ"), - ("BOB", "Μπολιβιάνο"), - ("BRL", "Ρεάλ Βραζιλίας"), - ("BSD", "Δολάριο Μπαχάμας"), - ("BTN", "Νγκούλντρουμ"), - ("BWP", "Πούλα"), - ("BYΝ", "Ρούβλι Λευκορωσίας"), - ("BZD", "Δολάριο Μπελίζ"), - ("CAD", "Δολάριο Καναδά"), - ("CDF", "Φράγκο του Κονγκό"), - ("CHF", "Ελβετικό Φράγκο"), - ("CLP", "Πέσο Χιλής"), - ("CNY", "Γιουάν |"), - ("COP", "Πέσο Κολομβίας"), - ("CRC", "Κολόν"), - ("CSD", "Δηνάριο Σερβίας"), - ("CUC", "Μετατρέψιμο πέσο Κούβας"), - ("CUP", "Πέσος Κούβας"), - ("CVE", "Εσκούδο Πρασίνου Ακρωτηρίου"), - ("CZK", "Κορόνα Τσεχίας (koruna)"), - ("DJF", "Φράγκο του Τζιμπουτί"), - ("DKK", "Κορόνα Δανίας"), - ("DOP", "Πέσο Δομινικανής Δημοκρατίας"), - ("DZD", "Δηνάριο της Αλγερίας"), - ("EGP", "Λίρα Αιγύπτου"), - ("ERN", "Νάκφα"), - ("ETB", "Μπιρ"), - ("EUR", "Ευρώ"), - ("FJD", "Δολάριο Νησιών Φίτζι"), - ("GBP", "Στερλίνα"), - ("GEL", "Λάρι"), - ("GHC", "Σέντι της Γκάνας"), - ("GMD", "Νταλάζι (Dalasi)"), - ("GNF", "Φράγκο Γουινέας"), - ("GTQ", "Κετσάλ"), - ("GYD", "Δολάριο Γουιάνας"), - ("HNL", "Λεμπίρα"), - ("HRK", "Κούνα"), - ("HTG", "Γκουρντ"), - ("HUF", "Φιορίνι Ουγγαρίας"), - ("IDR", "Ρουπία Ινδονησίας"), - ("ILS", "Νέο σέκελ"), - ("INR", "Ρουπία Ινδίας[6]"), - ("IQD", "Δηνάριο του Ιράκ"), - ("IRR", "Ριάλ του Ιράν"), - ("ISK", "Κορόνα Ισλανδίας (króna)"), - ("JMD", "Δολάριο Τζαμάικας"), - ("JOD", "Ιορδανικό δηνάριο"), - ("JPY", "Γιέν"), - ("KES", "Σελίνι Κένυας"), - ("KGS", "Σομ της Κιργιζίας"), - ("KHR", "Ριέλ Καμπότζης"), - ("KMF", "Φράγκο Κομόρων"), - ("KPW", "Γουόν Βόρειας Κορέας"), - ("KRW", "Γουόν Νότιας Κορέας"), - ("KWD", "Δηνάριο του Κουβέιτ"), - ("KZT", "Τένγκε"), - ("LAK", "Κιπ"), - ("LBP", "Λίρα Λιβάνου"), - ("LKR", "Ρουπία της Σρι Λάνκας (rupee)"), - ("LRD", "Δολάριο Λιβερίας"), - ("LSL", "Λότι"), - ("LYD", "Δηνάριο Λιβύης"), - ("MAD", "Ντιρχάμ Μαρόκου"), - ("MDL", "Μολδαβικό Λέου"), - ("MGA", "Αριάρι[10]"), - ("MKD", "Δηνάριο Βόρειας Μακεδονίας"), - ("MNT", "Τουγκρίκ"), - ("MRU", "Ουγκίγια[10]"), - ("MUR", "Ρουπία Μαυρίκιου"), - ("MVR", "Ρουφίγια"), - ("MWK", "Κουάτσα του Μαλάουι"), - ("MXN", "Πέσο Μεξικού"), - ("MYR", "Ρινγκίτ"), - ("MZN", "Μετικάλ"), - ("NAD", "Δολάριο Ναμίμπιας"), - ("NGN", "Νάιρα"), - ("NIO", "Χρυσό κόρντομπα της Νικαράγουας"), - ("NOK", "Κορόνα Νορβηγίας (krone)"), - ("NPR", "Ρουπία του Νεπάλ (rupee)"), - ("NZD", "Δολάριο Νέας Ζηλανδίας"), - ("OMR", "Ριάλ του Ομάν"), - ("PAB", "Μπαλμπόα Παναμά"), - ("PEK", "ΠΕΚΕΡΟΝ"), - ("PEN", "Σολ Περού (sol)"), - ("PGK", "Κίνα Παπούα-Νέας Γουινέας"), - ("PHP", "Πέσο Φιλιππίνων"), - ("PKR", "Ρουπία του Πακιστάν (rupee)"), - ("PLN", "Ζλότι"), - ("PYG", "Γκουαρανί"), - ("QAR", "Ριγιάλ του Κατάρ"), - ("RON", "Λέου Ρουμανίας"), - ("RUB", "Ρούβλι Ρωσίας"), - ("RWF", "Φράγκο της Ρουάντα"), - ("SAR", "Ριάλ Σαουδικής Αραβίας (riyal)"), - ("SBD", "Δολάριο των Νήσων του Σολομώντα"), - ("SCR", "Ρουπία των Σεϋχελλών (Seychellois rupee)"), - ("SDG", "Λίρα του Σουδάν"), - ("SEK", "Κορόνα Σουηδίας (krona)"), - ("SGD", "Δολάριο Σιγκαπούρης"), - ("SLL", "Λεόνε της Σιέρα Λεόνε"), - ("SOS", "Σελίνι Σομαλίας"), - ("SRD", "Δολάριο του Σουρινάμ"), - ("SSP", "Λίρα Νοτίου Σουδάν"), - ("STN", "Ντόμπρα"), - ("SYP", "Λίρα Συρίας"), - ("SZL", "Λιλανγκένι"), - ("THB", "Μπαχτ"), - ("TJS", "Σομόνι"), - ("TMM", "Μανάτ του Τουρκμενιστάν"), - ("TND", "Δηνάριο Τυνησίας"), - ("TOP", "Παάνγκα"), - ("TRY", "Τουρκική Λίρα"), - ("TTD", "Δολάριο Τρινιντάντ και Τομπάγκο"), - ("TZS", "Σελίνι Τανζανίας (shilling)"), - ("UAH", "Γρίβνα Ουκρανίας"), - ("UGX", "Σελίνι Ουγκάντας"), - ("USD", "Δολάριο ΗΠΑ"), - ("UYU", "Πέσο Ουρουγουάης"), - ("UZS", "Σομ του Ουζμπεκιστάν"), - ("VES", "Μπολίβαρ Σομπεράνο"), - ("VND", "Ντονγκ"), - ("VUV", "Βάτου"), - ("WST", "Τάλα Σαμόα"), - ("XAF", "Φράγκο CFA Κεντρικής Αφρικής"), - ("XCD", "Δολάριο Ανατολικής Καραϊβικής"), - ("XOF", "Φράγκο CFA Δυτικής Αφρικής"), - ("YER", "Ριάλ Υεμένης"), - ("ZAR", "Ραντ Νότιας Αφρικής"), - ("ZMK", "Κουάτσα της Ζάμπιας"), - ("ZWD", "RTGS Dollar"), - ) - - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self) -> str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}\N{EURO SIGN}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/el_GR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/el_GR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5e8af1b..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/el_GR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_AU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/en_AU/__init__.py deleted file mode 100644 index 6735f0a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_AU/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#.##", "%#.##", "%##.##", "%,###.##", "%#,###.##"] - - def pricetag(self) -> str: - return "$\N{NO-BREAK SPACE}" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_AU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/en_AU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 33784e5..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_AU/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_CA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/en_CA/__init__.py deleted file mode 100644 index 3171b0a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_CA/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#.##", "%#.##", "%##.##", "%,###.##", "%#,###.##"] - - def pricetag(self): - return "$\N{NO-BREAK SPACE}" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_CA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/en_CA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b114625..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_CA/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_US/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/en_US/__init__.py deleted file mode 100644 index 2527f6d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_US/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#.##", "%#.##", "%##.##", "%,###.##", "%#,###.##"] - - def pricetag(self) -> str: - return "$" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_US/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/en_US/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7cac1f6..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_US/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/es/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/es/__init__.py deleted file mode 100644 index e7f9006..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/es/__init__.py +++ /dev/null @@ -1,171 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - # Format: (code, name) - currencies = ( - ("AED", "Dírham de los Emiratos Árabes Unidos"), - ("AFN", "Afghaní"), - ("ALL", "Lek albanés"), - ("AMD", "Dram armenio"), - ("ANG", "Florín de las Antillas Holandesas"), - ("AOA", "Kwanza angoleño"), - ("ARS", "Peso argentino"), - ("AUD", "Dólar australiano"), - ("AWG", "Florín arubeño"), - ("AZN", "Manat azerbaiyano"), - ("BAM", "Marco bosnioherzegovino"), - ("BBD", "Dólar barbadense"), - ("BDT", "Taka bangladesí"), - ("BGN", "Lev búlgaro"), - ("BHD", "Dinar bahreiní"), - ("BIF", "Franco burundés"), - ("BMD", "Dólar de Bermudas"), - ("BND", "Dólar bruneano"), - ("BOB", "Boliviano"), - ("BRL", "Real brasileño"), - ("BSD", "Dólar bahameño"), - ("BTN", "Ngultrum butanés"), - ("BWP", "Pula de Botswana"), - ("BYR", "Rublio bielurruso"), - ("BZD", "Dólar beliceño"), - ("CAD", "Dólar canadiense"), - ("CDF", "Franco congolés"), - ("CHF", "Franco suizo"), - ("CLP", "Peso chileno"), - ("CNY", "Yuan"), - ("COP", "Peso colombiano"), - ("CRC", "Colón costarricense"), - ("CUC", "Peso cubano convertible"), - ("CUP", "Peso subano"), - ("CVE", "Escudo de Cabo Verde"), - ("CZK", "Corona checa"), - ("DJF", "Franco yibutiano"), - ("DKK", "Corona danesa"), - ("DOP", "Peso dominicano"), - ("DZD", "Dinar argelino"), - ("EGP", "Libra egipcia"), - ("ERN", "Nafka"), - ("ETB", "Bir de Etiopía"), - ("EUR", "Euro"), - ("FJD", "Dólar fiyiano"), - ("FKP", "Libra de las islas Falkland"), - ("GBP", "Libra esterlina"), - ("GEL", "Larí georgiano"), - ("GGP", "Libra de Guernsey"), - ("GHS", "Cedi"), - ("GIP", "Libra de Gibraltar"), - ("GMD", "Dalasi"), - ("GNF", "Franco guineano"), - ("GTQ", "Quetzal guatemalteco"), - ("GYD", "Dólar guyanés"), - ("HKD", "Dólar hongkonés"), - ("HNL", "Lempira hondureño"), - ("HRK", "Kuna croata"), - ("HTG", "Gourde haitiano"), - ("HUF", "Forinto húngaro"), - ("IDR", "Rupia indonesia"), - ("ILS", "Séquel israelí"), - ("NIS", "Nuevo Séquel israelí"), - ("IMP", "Libra manesa"), - ("INR", "Rupia india"), - ("IQD", "Dinar iraquí"), - ("IRR", "Rial iraní"), - ("ISK", "Corona islandesa"), - ("JEP", "Libra de Jersey"), - ("JMD", "Dólar jamaicano"), - ("JOD", "Dinar jordano"), - ("JPY", "Yen japonés"), - ("KES", "Chelín keniano"), - ("KGS", "Som kirguís"), - ("KHR", "Riel camboyano"), - ("KMF", "Franco comorense"), - ("KPW", "Won norcoreano"), - ("KRW", "Krahn Occidental"), - ("KWD", "Dinar kuwaití"), - ("KYD", "Dólar de las islas Cayman"), - ("KZT", "Tenge kazako"), - ("LAK", "Kip laosiano"), - ("LBP", "Libra libanesa"), - ("LKR", "Rupia esrilanquesa"), - ("LRD", "Dólar liberiano"), - ("LSL", "Loti lesothense"), - ("LTL", "Litas lituana"), - ("LYD", "Dinar libio"), - ("MAD", "Dirham marroquí"), - ("MDL", "Leu moldavo"), - ("MGA", "Ariary malgache"), - ("MKD", "Denar normacedonio"), - ("MMK", "Kyat birmano"), - ("MNT", "Tugrik mongol"), - ("MOP", "Pataca macaense"), - ("MRO", "Ouguiya mauritano"), - ("MUR", "Rupia mauritana"), - ("MVR", "Rupia de Maldivas"), - ("MWK", "Kwacha malauí"), - ("MXN", "Peso mexicano"), - ("MYR", "Ringgit"), - ("MZN", "Metical mozambiqueño"), - ("NAD", "Dólar namibio"), - ("NGN", "Naira nigeriano"), - ("NIO", "Córdoba nicaragüense"), - ("NOK", "Corona noruega"), - ("NPR", "Rupia nepalí"), - ("NZD", "Dólar neozelandés"), - ("OMR", "Rial omaní"), - ("PAB", "Balboa panameño"), - ("PEN", "Sol peruano"), - ("PGK", "Kina"), - ("PHP", "Peso filipino"), - ("PKR", "Rupia pakistaní"), - ("PLN", "Złoty polaco"), - ("PYG", "Guaraní paraguayo"), - ("QAR", "Riyal catarí"), - ("RON", "Leu rumano"), - ("RSD", "Dinar serbio"), - ("RUB", "Rublo ruso"), - ("RWF", "Franco ruandés"), - ("SAR", "Riyal saudí"), - ("SBD", "Dólar de las islas Solomon"), - ("SCR", "Rupia seychellense"), - ("SDG", "Libra sudanesa"), - ("SEK", "Corona sueca"), - ("SGD", "Dólar de Singapur"), - ("SHP", "Libra de Santa Elena"), - ("SLL", "Leona"), - ("SOS", "Chelín somalí"), - ("SPL", "Luigino"), - ("SRD", "Dólar surinamés"), - ("STD", "Dobra santotomense"), - ("SVC", "Colón salvadoreño"), - ("SYP", "Libra siria"), - ("SZL", "Lilangeni"), - ("THB", "Baht tailandés"), - ("TJS", "Somoni tayiko"), - ("TMT", "Manat turcomano"), - ("TND", "Dinar tunecino"), - ("TOP", "Pa'anga tongano"), - ("TRY", "Lira turca"), - ("TTD", "Dólar de Trinidad and Tobago"), - ("TVD", "Dólar tuvaluano"), - ("TWD", "Nuevo dólar taiwanés"), - ("TZS", "Chelín tanzano"), - ("UAH", "Grivna ucraniano"), - ("UGX", "Chelín ugandés"), - ("USD", "Dólar de Estados Unidos"), - ("UYU", "Peso uruguayo"), - ("UZS", "Soʻm Uzbekistani"), - ("VEF", "Bolívar venezolano"), - ("VND", "Đồng vietnamita"), - ("VUV", "Vanuatu vatu"), - ("WST", "Tālā samoano"), - ("XAF", "Franco centro africano"), - ("XCD", "Dólar del Caribe Oriental"), - ("XDR", "Derechos especiales de giro"), - ("XOF", "Franco de África occidental"), - ("XPF", "Franco CFP"), - ("YER", "Rial yemení"), - ("ZAR", "Rand sudafricano"), - ("ZMW", "Kwacha zambiano"), - ("ZWD", "Dólar zimbabuense"), - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/es/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/es/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a48dcb5..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/es/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_AR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/es_AR/__init__.py deleted file mode 100644 index 8ca962b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_AR/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from ..es import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["%##", "%.###", "%#.##0", "%##.##0", "%##.##0", "%.###.##0", "%#,##"] - - def pricetag(self) -> str: - return "$" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_AR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/es_AR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 64ec656..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_AR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_CL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/es_CL/__init__.py deleted file mode 100644 index 084b744..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_CL/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from ..es import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["%##", "%.###", "%#.##0", "%##.##0", "%##.##0", "%.###.##0"] - - def pricetag(self) -> str: - return "\N{DOLLAR SIGN}\N{NO-BREAK SPACE}" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_CL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/es_CL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index fba9028..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_CL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_ES/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/es_ES/__init__.py deleted file mode 100644 index 5781a99..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_ES/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from ..es import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self) -> str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}\N{EURO SIGN}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_ES/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/es_ES/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2fad036..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_ES/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/fa_IR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/fa_IR/__init__.py deleted file mode 100644 index 95de6da..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/fa_IR/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["###,###,000", "#,###,000,000", "%,###,###,###,###", "%,###,###,###,000,000"] - - def pricetag(self) -> str: - return self.numerify(self.random_element(self.price_formats)) + "\ufdfc" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/fa_IR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/fa_IR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7acbd42..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/fa_IR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_CA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_CA/__init__.py deleted file mode 100644 index d570e23..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_CA/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self) -> str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}$" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_CA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_CA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 42db718..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_CA/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_DZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_DZ/__init__.py deleted file mode 100644 index 8c3387d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_DZ/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - # source: https://fr.wikipedia.org/wiki/Dinar_alg%C3%A9rien - price_formats = ["#,##", "%#,##", "%##,##", "% ###,##", "%# ###,##"] - - def pricetag(self) -> str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}DA" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_DZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_DZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1c14dd1..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_DZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_FR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_FR/__init__.py deleted file mode 100644 index 6197164..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_FR/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self): - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}\N{EURO SIGN}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_FR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_FR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 338a78b..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_FR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/it_IT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/it_IT/__init__.py deleted file mode 100644 index 6197164..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/it_IT/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self): - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}\N{EURO SIGN}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/it_IT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/it_IT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d1d1112..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/it_IT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/ng_NG/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/ng_NG/__init__.py deleted file mode 100644 index 38e839b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/ng_NG/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#.##", "%#.##", "%##.##", "%,###.##"] - - def pricetag(self) -> str: - return "\N{NAIRA SIGN}" + "\N{NO-BREAK SPACE}" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/ng_NG/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/ng_NG/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d079409..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/ng_NG/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/nl_NL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/nl_NL/__init__.py deleted file mode 100644 index b3f8de4..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/nl_NL/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from faker.providers.currency import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self) -> str: - return "\N{EURO SIGN}" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/nl_NL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/nl_NL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ecd91a5..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/nl_NL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/pl_PL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/pl_PL/__init__.py deleted file mode 100644 index 82d4db2..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/pl_PL/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self) -> str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}zł" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/pl_PL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/pl_PL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 39fcf07..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/pl_PL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/pt_BR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/pt_BR/__init__.py deleted file mode 100644 index 23637cd..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/pt_BR/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self) -> str: - return "R$" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/pt_BR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/pt_BR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 01849b3..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/pt_BR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/ro_RO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/ro_RO/__init__.py deleted file mode 100644 index 8cbe045..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/ro_RO/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self) -> str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}Lei" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/ro_RO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/ro_RO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 6d3d6f5..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/ro_RO/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/ru_RU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/ru_RU/__init__.py deleted file mode 100644 index 00dd5d0..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/ru_RU/__init__.py +++ /dev/null @@ -1,179 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - # Format: (code, name) - # See currency names in Russian: https://ru.wikipedia.org/wiki/Список_существующих_валют#Валюты - currencies = ( - ("AED", "Дирхам ОАЭ"), - ("AFN", "Афгани"), - ("ALL", "Лек"), - ("AMD", "Армянский драм"), - ("ANG", "Нидерландский антильский гульден"), - ("AOA", "Кванза"), - ("ARS", "Аргентинское песо"), - ("AUD", "Австралийский доллар"), - ("AWG", "Арубанский флорин"), - ("AZN", "Азербайджанский манат"), - ("BAM", "Конвертируемая марка Боснии и Герцеговины"), - ("BBD", "Барбадосский доллар"), - ("BDT", "Така"), - ("BGN", "Болгарский лев"), - ("BHD", "Бахрейнский динар"), - ("BIF", "Бурундийский франк"), - ("BMD", "Бермудский доллар"), - ("BND", "Брунейский доллар"), - ("BOB", "Боливиано"), - ("BRL", "Бразильский реал"), - ("BSD", "Багамский доллар"), - ("BTN", "Нгултрум"), - ("BWP", "Пула"), - ("BYR", "Белорусский рубль"), - ("BZD", "Белизский доллар"), - ("CAD", "Канадский доллар"), - ("CDF", "Конголезский франк"), - ("CHF", "Швейцарский франк"), - ("CLP", "Чилийское песо"), - ("CNY", "Юань"), - ("COP", "Колумбийское песо"), - ("CRC", "Коста-риканский колон"), - ("CUC", "Кубанское конвертируемое песо"), - ("CUP", "Кубанское песо"), - ("CVE", "Эскудо Кабо-Верде"), - ("CZK", "Чешская крона"), - ("DJF", "Франк Джибути"), - ("DKK", "Датская крона"), - ("DOP", "Доминиканское песо"), - ("DZD", "Алжирский динар"), - ("EGP", "Египетский фунт"), - ("ERN", "Накфа"), - ("ETB", "Эфиопский быр"), - ("EUR", "Евро"), - ("FJD", "Доллар Фиджи"), - ("FKP", "Фунт Фолклендских островов"), - ("GBP", "Фунт стерлингов"), - ("GEL", "Лари"), - ("GGP", "Гернсийский фунт"), - ("GHS", "Ганский седи"), - ("GIP", "Гибралтарский фунт"), - ("GMD", "Даласи"), - ("GNF", "Гвинейский франк"), - ("GTQ", "Кетсаль"), - ("GYD", "Гайанский доллар"), - ("HKD", "Гонконгский доллар"), - ("HNL", "Лемпира"), - ("HRK", "Хорватская куна"), - ("HTG", "Гурд"), - ("HUF", "Форинт"), - ("IDR", "Индонезийская рупия"), - ("ILS", "Новый израильский шекель"), - ("NIS", "Новый израильский шекель"), - ("IMP", "Фунт острова Мэн"), - ("INR", "Индийская рупия"), - ("IQD", "Иракский динар"), - ("IRR", "Иранский риал"), - ("ISK", "Исландская крона"), - ("JEP", "Джерсийский фунт"), - ("JMD", "Ямайский доллар"), - ("JOD", "Иорданский динар"), - ("JPY", "Иена"), - ("KES", "Кенийский шиллинг"), - ("KGS", "Сом"), - ("KHR", "Риель"), - ("KMF", "Франк Комор"), - ("KPW", "Северокорейская вона"), - ("KRW", "Южнокорейская вона"), - ("KWD", "Кувейтский динар"), - ("KYD", "Доллар Островов Кайман"), - ("KZT", "Тенге"), - ("LAK", "Кип"), - ("LBP", "Ливийский фунт"), - ("LKR", "Шри-ланкийская рупия"), - ("LRD", "Либерийский доллар"), - ("LSL", "Лоти"), - ("LTL", "Литовский лит"), - ("LYD", "Ливийский динар"), - ("MAD", "Марокканский дирхам"), - ("MDL", "Молдавский лей"), - ("MGA", "Малагасийский ариари"), - ("MKD", "Денар"), - ("MMK", "Кьят"), - ("MNT", "Тугрик"), - ("MOP", "Патака"), - ("MRO", "Угия"), - ("MUR", "Маврикийская рупия"), - ("MVR", "Рувия"), - ("MWK", "Квача"), - ("MXN", "Мексиканское песо"), - ("MYR", "Малайзийский ринггит"), - ("MZN", "Мозамбикский метикал"), - ("NAD", "Доллар Намибии"), - ("NGN", "Найра"), - ("NIO", "Кордоба"), - ("NOK", "Норвежская крона"), - ("NPR", "Непальская рупия"), - ("NZD", "Новозеландский доллар"), - ("OMR", "Оманский риал"), - ("PAB", "Бальбоа"), - ("PEN", "Соль"), - ("PGK", "Кина"), - ("PHP", "Филиппинское песо"), - ("PKR", "Пакистанская рупия"), - ("PLN", "Злотый"), - ("PYG", "Гуарани"), - ("QAR", "Катарский риал"), - ("RON", "Румынский лей"), - ("RSD", "Сербский динар"), - ("RUB", "Российский рубль"), - ("RWF", "Франк Руанды"), - ("SAR", "Саудовский риял"), - ("SBD", "Доллар Соломоновых Островов"), - ("SCR", "Сейшельская рупия"), - ("SDG", "Суданский фунт"), - ("SEK", "Шведская крона"), - ("SGD", "Сингапурский доллар"), - ("SHP", "Фунт Святой Елены"), - ("SLL", "Леоне"), - ("SOS", "Сомалийский шиллинг"), - ("SPL", "Луиджино"), - ("SRD", "Суринамский доллар"), - ("STD", "Добра"), - ("SVC", "Сальвадорский колон"), - ("SYP", "Сирийский фунт"), - ("SZL", "Лилангени"), - ("THB", "Бат"), - ("TJS", "Сомони"), - ("TMT", "Новый туркменский манат"), - ("TND", "Тунисский динар"), - ("TOP", "Паанга"), - ("TRY", "Турецкая лира"), - ("TTD", "Доллар Тринидада и Тобаго"), - ("TVD", "Доллар Тувалу"), - ("TWD", "Новый тайваньский доллар"), - ("TZS", "Танзанийский шиллинг"), - ("UAH", "Гривна"), - ("UGX", "Угандийский шиллинг"), - ("USD", "Доллар США"), - ("UYU", "Уругвайское песо"), - ("UZS", "Узбекский сум"), - ("VEF", "Суверенный боливар"), - ("VND", "Донг"), - ("VUV", "Вату"), - ("WST", "Тала"), - ("XAF", "Франк КФА ВЕАС"), - ("XCD", "Восточно-карибский доллар"), - ("XDR", "СДР"), - ("XOF", "Франк КФА ВСЕАО"), - ("XPF", "Франк КФП"), - ("YER", "Йеменский риал"), - ("ZAR", "Рэнд"), - ("ZMW", "Замбийская квача"), - ("ZWD", "Доллар Зимбабве"), - ) - - price_formats = ["#,##", "%#,##", "%##,##", "% ###,##", "%# ###,##"] - - def pricetag(self) -> str: - return ( - self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}\N{CYRILLIC SMALL LETTER ER}." - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/ru_RU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/ru_RU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 281366d..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/ru_RU/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/sk_SK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/sk_SK/__init__.py deleted file mode 100644 index 6197164..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/sk_SK/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self): - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}\N{EURO SIGN}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/sk_SK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/sk_SK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4ee9ba8..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/sk_SK/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/sv_SE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/sv_SE/__init__.py deleted file mode 100644 index 6991968..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/sv_SE/__init__.py +++ /dev/null @@ -1,178 +0,0 @@ -from .. import Provider as CurrencyProvider - -# Names taken from https://www.iban.se/currency-codes - - -class Provider(CurrencyProvider): - # Format: (code, name) - currencies = ( - ("AED", "UAE Dirham"), - ("AFN", "Afghani"), - ("ALL", "Lek"), - ("AMD", "Armenisk Dram"), - ("ANG", "Gulden från Nederländska Antillerna"), - ("AOA", "Kwanza"), - ("ARS", "Argentinsk Peso"), - ("AUD", "Australisk Dollar"), - ("AWG", "Arubisk Florin"), - ("AZN", "Azerbajdzjansk Manat"), - ("BAM", "Konvertibel Mark"), - ("BBD", "Barbadosdollar"), - ("BDT", "Taka"), - ("BGN", "Bulgarisk Lev"), - ("BHD", "Bahraini Dinar"), - ("BIF", "Burundi-franc"), - ("BMD", "Bermuda-dollar"), - ("BND", "Brunei-dollar"), - ("BOB", "Boliviano"), - ("BOV", "Mvdol"), - ("BRL", "Brasilisk Real"), - ("BSD", "Bahamasdollar"), - ("BTN", "Ngultrum"), - ("BWP", "Pula"), - ("BYR", "Vitrysk Rubel"), - ("BZD", "Belize-dollar"), - ("CAD", "Kanadensisk Dollar"), - ("CDF", "Kongolesisk Franc"), - ("CHE", "WIR Euro"), - ("CHF", "Schweizerfranc"), - ("CHW", "WIR Franc"), - ("CLF", "Unidad de Fomento"), - ("CLP", "Chilensk Peso"), - ("CNY", "Yuan Renminbi"), - ("COP", "Colombiansk Peso"), - ("COU", "Unidad de Valor Real"), - ("CRC", "Costa Ricansk Colon"), - ("CUC", "Peso Convertible"), - ("CUP", "Kubansk Peso"), - ("CVE", "Kap Verde Escudo"), - ("CZK", "Tjeckisk Koruna"), - ("DJF", "Djibouti-franc"), - ("DKK", "Dansk Krone"), - ("DOP", "Dominicansk Peso"), - ("DZD", "Algerisk Dinar"), - ("EGP", "Egyptiskt pund"), - ("ERN", "Nakfa"), - ("ETB", "Etiopisk Birr"), - ("EUR", "Euro"), - ("FJD", "Fiji Dollar"), - ("FKP", "Pund från Falklandöarna"), - ("GBP", "Pund Sterling"), - ("GEL", "Lari"), - ("GHS", "Ghana Cedi"), - ("GIP", "Gibraltar-pund"), - ("GMD", "Dalasi"), - ("GNF", "Guinea-franc"), - ("GTQ", "Quetzal"), - ("GYD", "Guyana-dollar"), - ("HKD", "Hong Kong-dollar"), - ("HNL", "Lempira"), - ("HRK", "Kuna"), - ("HTG", "Gourde"), - ("HUF", "Forint"), - ("IDR", "Rupiah"), - ("ILS", "Ny Israelisk Shekel"), - ("INR", "Indisk Rupie"), - ("IQD", "Irakisk Dinar"), - ("IRR", "Iransk Rial"), - ("ISK", "Isländsk Krona"), - ("JMD", "Jamaica-dollar"), - ("JOD", "Jordanisk Dinar"), - ("JPY", "Yen"), - ("KES", "Kenyansk Shilling"), - ("KGS", "Som"), - ("KHR", "Riel"), - ("KMF", "Comoros-franc"), - ("KPW", "Nordkoreansk Won"), - ("KRW", "Won"), - ("KWD", "Kuwaiti Dinar"), - ("KYD", "Caymanöar-dollar"), - ("KZT", "Tenge"), - ("LAK", "Kip"), - ("LBP", "Libanesiskt pund"), - ("LKR", "Sri Lanka Rupie"), - ("LRD", "Liberiansk Dollar"), - ("LSL", "Loti"), - ("LYD", "Libysk Dinar"), - ("MAD", "Marockansk Dirham"), - ("MDL", "Moldavisk Leu"), - ("MGA", "Malagasy Ariary"), - ("MKD", "Denar"), - ("MMK", "Kyat"), - ("MNT", "Tugrik"), - ("MOP", "Pataca"), - ("MRO", "Ouguiya"), - ("MUR", "Mauritius Rupie"), - ("MVR", "Rufiyaa"), - ("MWK", "Kwacha"), - ("MXN", "Mexikansk Peso"), - ("MXV", "Mexikansk Unidad de Inversion (UDI)"), - ("MYR", "Malaysisk Ringgit"), - ("MZN", "Mozambique Metical"), - ("NAD", "Namibia Dollar"), - ("NGN", "Naira"), - ("NIO", "Cordoba Oro"), - ("NOK", "Norsk Krone"), - ("NOK", "Norwegian Krone"), - ("NPR", "Nepalesisk Rupie"), - ("NZD", "Nya Zealand-dollar"), - ("OMR", "Rial Omani"), - ("PAB", "Balboa"), - ("PEN", "Nuevo Sol"), - ("PGK", "Kina"), - ("PHP", "Filippinsk Peso"), - ("PKR", "Pakistansk Rupie"), - ("PLN", "Zloty"), - ("PYG", "Guarani"), - ("QAR", "Qatari Rial"), - ("RON", "Rumänsk Leu"), - ("RSD", "Serbisk Dinar"), - ("RUB", "Rysk Rubel"), - ("RWF", "Rwanda Franc"), - ("SAR", "Saudi Riyal"), - ("SBD", "Dollar från Salomonöarna"), - ("SCR", "Seychell-rupie"), - ("SDG", "Sudanesiskt pund"), - ("SEK", "Svensk Krona"), - ("SGD", "Singapore Dollar"), - ("SHP", "Saint Helena pund"), - ("SLL", "Leone"), - ("SOS", "Somalisk Shilling"), - ("SRD", "Surinam Dollar"), - ("SSP", "Sydsudanesiskt pund"), - ("STD", "Dobra"), - ("SVC", "El Salvador Colon"), - ("SYP", "Syriskt pund"), - ("SZL", "Lilangeni"), - ("THB", "Baht"), - ("TJS", "Somoni"), - ("TMT", "Turkmenistansk Ny Manat"), - ("TND", "Tunisisk Dinar"), - ("TOP", "Pa’anga"), - ("TRY", "Turkisk Lira"), - ("TTD", "Trinidad och Tobago Dollar"), - ("TWD", "Ny Taiwanesisk Dollar"), - ("TZS", "Tanzanisk Shilling"), - ("UAH", "Hryvnia"), - ("UGX", "Uganda Shilling"), - ("USD", "US Dollar"), - ("USN", "US Dollar (Nästa dag)"), - ("UYI", "Uruguay Peso en Unidades Indexadas (URUIURUI)"), - ("UYU", "Peso Uruguayo"), - ("UZS", "Uzbekistansk Sum"), - ("VEF", "Bolivar"), - ("VND", "Dong"), - ("VUV", "Vatu"), - ("WST", "Tala"), - ("XAF", "CFA Franc BEAC"), - ("XCD", "East Caribbean Dollar"), - ("XDR", "SDR (Särskild dragningsrätt)"), - ("XOF", "CFA Franc BCEAO"), - ("XPF", "CFP Franc"), - ("XSU", "Sucre"), - ("XUA", "ADB Beräkningsenhet"), - ("YER", "Yemeni Rial"), - ("ZAR", "Rand"), - ("ZMW", "Zambian Kwacha"), - ("ZWL", "Zimbabwe Dollar"), - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/sv_SE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/sv_SE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 32b688c..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/sv_SE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/th_TH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/th_TH/__init__.py deleted file mode 100644 index 6c07758..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/th_TH/__init__.py +++ /dev/null @@ -1,186 +0,0 @@ -from .. import Provider as CurrencyProvider - -# Names taken from https://std.moc.go.th/std/codelist_detail/40 - - -class Provider(CurrencyProvider): - # Format: (code, name) - currencies = ( - ("AED", "ดีแรห์ม สหรัฐอาหรับเอมิเรตส์"), - ("AFN", "อัฟกานิ"), - ("ALL", "เลค"), - ("AMD", "ดีแรห์ม อาร์เมเนีย"), - ("ANG", "กิลเดอร์ เนเธอร์แลนด์แอนทิลลิส"), - ("AOA", "ควันซา"), - ("ARS", "เปโซ อาร์เจนตินา"), - ("AUD", "ดอลลาร์ ออสเตรเลีย"), - ("AWG", "กิลเดอร์ อารูบา"), - ("AZN", "มานาท อาเซอร์ไบจาน"), - ("BAM", "มาร์ค บอสเนียและเฮอร์เซโกวีนา"), - ("BBD", "ดอลลาร์ บาร์เบโดส"), - ("BDT", "ตากา"), - ("BGN", "เลฟ บัลแกเรีย"), - ("BHD", "ดีนาร์ บาห์เรน"), - ("BIF", "ฟรังก์ บุรุนดี"), - ("BMD", "ดอลลาร์ เบอร์มิวดา"), - ("BND", "ดอลลาร์ บรูไนดารุสซาลาม"), - ("BOB", "โบลีเวียโน"), - ("BRL", "เรียล บราซิล"), - ("BSD", "ดอลลาร์ บาฮามาส"), - ("BTN", "เองกัลทรัม"), - ("BWP", "พูลา"), - ("BYR", "รูเบิล เบลารุส"), - ("BZD", "ดอลลาร์ เบลีซ"), - ("CAD", "ดอลลาร์ แคนาดา"), - ("CDF", "ฟรังก์ คองโก"), - ("CHF", "ฟรังก์ สวิส"), - ("CLF", "ฟันด์ โค้ด ยูนิแดด ดี โฟเมนโต"), - ("CLP", "เปโซ ชิลี"), - ("CNY", "หยวนเหรินหมินปี้"), - ("COP", "เปโซ โคลอมเบีย"), - ("COU", "ยูนิแดด ดี วาโล เรียล"), - ("CRC", "โคโลน คอสตาริกา"), - ("CUC", "แปลงสภาพเปโซ"), - ("CUP", "เปโซ คิวบา"), - ("CVE", "เอสคูโด เคปเวิร์ด"), - ("CZK", "คราวน์ เช็ก"), - ("DJF", "ฟรังก์ จิบูตี"), - ("DKK", "โครน เดนมาร์ก"), - ("DOP", "เปโซ สาธารณรัฐโดมินิกัน"), - ("DZD", "ดีนาร์ แอลจีเรีย"), - ("EGP", "ปอนด์ อียิปต์"), - ("ERN", "นาคฟา"), - ("ETB", "เปอร์ เอธิโอเปีย"), - ("EUR", "ยูโร"), - ("FJD", "ดอลลาร์ ฟิจิ"), - ("FKP", "ปอนด์ หมู่เกาะฟอล์กแลนด์"), - ("GBP", "ปอนด์สเตอลิง"), - ("GEL", "ลารี"), - ("GHS", "เซดี กานา"), - ("GIP", "ปอนด์ ยิบรอลตาร์"), - ("GMD", "ดาราซี"), - ("GNF", "ฟรังก์ กินี"), - ("GTQ", "เก็ตซาล"), - ("GYD", "ดอลลาร์ กายอานา"), - ("HKD", "ดอลลาร์ ฮ่องกง"), - ("HNL", "เลมพีรา ฮอนดูรัส"), - ("HRK", "คูนา"), - ("HTG", "กอร์ด"), - ("HUF", "ฟอรินท์"), - ("IDR", "รูเปีย"), - ("ILS", "เชคเกิล อิสราเอล"), - ("INR", "รูปี อินเดีย"), - ("IQD", "ดีนาร์ อิรัก"), - ("IRR", "เรียล อิหร่าน"), - ("ISK", "โครนา ไอซ์แลนด์"), - ("JMD", "ดอลลาร์ จาเมกา"), - ("JOD", "ดอลลาร์ จอร์แดน"), - ("JPY", "เยน"), - ("KES", "ชิลลิง เคนยา"), - ("KGS", "ซอม"), - ("KHR", "เรียล กัมพูชา"), - ("KMF", "ฟรังก์ คอโมโรส"), - ("KPW", "วอน เกาหลีเหนือ"), - ("KRW", "วอน เกาหลีใต้"), - ("KWD", "ดีนาร์ คูเวต"), - ("KYD", "ดอลลาร์ หมู่เกาะเคย์แมน"), - ("KZT", "เทงเก"), - ("LAK", "กีบ"), - ("LBP", "ปอนด์ เลบานอน"), - ("LKR", "รูปี ศรีลังกา"), - ("LRD", "ดอลลาร์ ไลบีเรีย"), - ("LSL", "โลตี"), - ("LTL", "ลีทาส ลิทัวเนีย"), - ("LVL", "ลัตส์ ลัตเวีย"), - ("LYD", "ดีนาร์ ลิเบีย"), - ("MAD", "ดีแรห์ม โมร็อกโก"), - ("MDL", "ลิว มอลโดวา"), - ("MGA", "อเรียรี่ มาดากัสการ์"), - ("MKD", "ดีนาร์ มาซิโดเนีย"), - ("MMK", "จัต"), - ("MNT", "ทูกริค"), - ("MOP", "พาทากา"), - ("MRO", "อูกุยยา / อูกียา"), - ("MUR", "รูปี มอริเชียส"), - ("MVR", "รูฟียา"), - ("MWK", "ควาซา มาลาวี"), - ("MXN", "เปโซ เม็กซิโก"), - ("MYR", "ริงกิต มาเลเซีย"), - ("MZN", "เมททิคัล โมซัมบิก"), - ("NAD", "ดอลลาร์ นามิเบีย"), - ("NGN", "ไนรา"), - ("NIO", "คอร์โดบา"), - ("NOK", "โครน นอร์เวย์"), - ("NPR", "รูปี เนปาล"), - ("NZD", "ดอลลาร์ นิวซีแลนด์"), - ("OMR", "เรียล โอมาน"), - ("PAB", "บัลโบอา"), - ("PEN", "ซัล เปรู"), - ("PGK", "คีนา"), - ("PHP", "เปโซ ฟิลิปปินส์"), - ("PKR", "รูปี ปากีสถาน"), - ("PLN", "สล็อตตี"), - ("PYG", "กวารานี"), - ("QAR", "เรียล กาตาร์"), - ("RON", "ลิว โรมาเนีย"), - ("RSD", "ดีนาร์ เซอร์เบีย"), - ("RUB", "รูเบิล รัสเซีย"), - ("RWF", "ฟรังก์ รวันดา"), - ("SAR", "ริยัล ซาอุดีอาระเบีย"), - ("SBD", "ดอลลาร์ หมู่เกาะโซโลมอน"), - ("SCR", "รูปี เซเชลส์"), - ("SDG", "ปอนด์ ซูดาน"), - ("SEK", "โครนา สวีเดน"), - ("SGD", "ดอลลาร์ สิงคโปร์"), - ("SHP", "ปอนด์ เซนต์เฮเลนา"), - ("SLL", "ลีโอน"), - ("SOS", "ชิลลิง โซมาเลีย"), - ("SRD", "ดอลลาร์ ซูรินาเม"), - ("SSP", "ปอนด์ เซาท์ซูดาน"), - ("STD", "โดบรา"), - ("SVC", "โคโลน เอลซัลวาดอร์"), - ("SYP", "ปอนด์ ซีเรีย"), - ("SZL", "ลิลอนเกนี"), - ("THB", "บาท"), - ("TJS", "โซโมนิ"), - ("TMT", "มานาท เติร์กเมนิสถานใหม่"), - ("TND", "ดีนาร์ ตูนิเซีย"), - ("TOP", "พาอานกา"), - ("TRY", "ลีร์ ตุรกี"), - ("TTD", "ดอลลาร์ ตรินิแดดและโตเบโก"), - ("TWD", "ดอลลาร์ ไต้หวัน"), - ("TZS", "ชิลลิง แทนซาเนีย"), - ("UAH", "รีฟเนีย"), - ("UGX", "ชิลลิง ยูกันดา"), - ("USD", "ดอลลาร์ สหรัฐอเมริกา"), - ("USN", "ดอลลาร์ สหรัฐอเมริกา เน็กซ์เดย์ฟัน"), - ("UYI", "อุรุกวัย เปโซ เอ็น อุนดิดาเดซ อินเด็กซาดาซ"), - ("UYU", "เปโซ อุรุกวัย"), - ("UZS", "โซม อุซเบกิสถาน"), - ("VEF", "โบลิวาร์"), - ("VND", "ดอง"), - ("VUV", "วาตู"), - ("WST", "ทาลา"), - ("XAF", "ฟรังก์ ซีเอฟเอ บีอีเอซี"), - ("XAG", "เงิน"), - ("XAU", "ทองคำ"), - ("XBA", "อียูอาร์ซีโอ"), - ("XBB", "อีเอ็มยู 6"), - ("XBC", "บัญชี อียู 9"), - ("XBD", "บัญชี อียู 17"), - ("XCD", "ดอลลาร์ คาริบเบียลตะวันออก"), - ("XDR", "สิทธิพิเศษถอนเงิน (กองทุนการเงินระหว่างประเทศ)"), - ("XEU", "อี ซี ยู"), - ("XFU", "ยูไอซี ฟรังก์"), - ("XOF", "ฟรังก์ ซีเอฟเอ บีซีอีเอโอ"), - ("XPD", "พัลเลเดียม"), - ("XPF", "ฟรังก์ ซีเอฟพี"), - ("XPT", "แพลตตินัม"), - ("XSU", "ซูเคร"), - ("XUA", "เอดีบี"), - ("XXX", "ธุรกรรมที่ไม่มีเงินสกุลใดเกี่ยวข้อง"), - ("YER", "เรียล เยเมน"), - ("ZAR", "แรนด์"), - ("ZMW", "ควาซา แซมเบีย"), - ("ZWL", "ดอลลาร์ ซิมบับเว"), - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/th_TH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/th_TH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index c5d9466..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/th_TH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/tr_TR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/tr_TR/__init__.py deleted file mode 100644 index 5535c75..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/tr_TR/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#.##", "%#.##", "%##.##", "%,###.##", "%#,###.##"] - - def pricetag(self) -> str: - return f"{self.numerify(self.random_element(self.price_formats))} ₺" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/tr_TR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/tr_TR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1463477..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/tr_TR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/uk_UA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/uk_UA/__init__.py deleted file mode 100644 index 07fc175..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/uk_UA/__init__.py +++ /dev/null @@ -1,173 +0,0 @@ -from typing import Tuple - -from ... import ElementsType -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - # see full list in Ukrainian @ Wiki - # https://uk.wikipedia.org/wiki/%D0%9A%D0%BB%D0%B0%D1%81%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F_%D0%B2%D0%B0%D0%BB%D1%8E%D1%82_(ISO_4217)#%D0%9F%D0%B5%D1%80%D0%B5%D0%BB%D1%96%D0%BA_%D0%B4%D1%96%D1%8E%D1%87%D0%B8%D1%85_%D0%BA%D0%BE%D0%B4%D1%96%D0%B2 - currencies: ElementsType[Tuple[str, str]] = ( - ("AED", "Дирхам ОАЕ"), - ("AFN", "Афганістанський афгані"), - ("ALL", "Албанський лек"), - ("AMD", "Вірменський драм"), - ("ANG", "Гульден Нідерландських Антилів"), - ("AOA", "Ангольська кванза"), - ("ARS", "Аргентинське песо"), - ("AUD", "Австралійський долар"), - ("AWG", "Арубський флорин"), - ("AZN", "Азербайджанський манат"), - ("BAM", "Конвертовна марка Боснії і Герцоговини"), - ("BBD", "Барбадоський долар"), - ("BDT", "Бангладешська така"), - ("BGN", "Болгарський лев"), - ("BHD", "Бахрейнський динар"), - ("BIF", "Бурундійський франк"), - ("BMD", "Бермудський долар"), - ("BND", "Брунейський долар"), - ("BOB", "Болівійський болівіано"), - ("BRL", "Бразильський реал"), - ("BSD", "Багамський долар"), - ("BTN", "Бутанський нґултрум"), - ("BWP", "Ботсванська пула"), - ("BYR", "Білоруський рубль"), - ("BZD", "Белізький долар"), - ("CAD", "Канадський долар"), - ("CDF", "Конголезький франк"), - ("CHF", "Швейцарський франк"), - ("CLP", "Чилійське песо"), - ("CNY", "Китайський юань"), - ("COP", "Колумбійське песо"), - ("CRC", "Коста-риканський колон"), - ("CUP", "Кубинське песо"), - ("CVE", "Ескудо Кабо-Верде"), - ("CZK", "Чеська крона"), - ("DJF", "Джибутійський франк"), - ("DKK", "Данська крона"), - ("DOP", "Домініканське песо"), - ("DZD", "Алжирський динар"), - ("EGP", "Єгипетський фунт"), - ("ERN", "Еритрейська накфа"), - ("ETB", "Ефіопський бир"), - ("EUR", "Євро"), - ("FJD", "Фіджійський долар"), - ("FKP", "Фолклендський фунт"), - ("GBP", "Фунт стерлінгів"), - ("GEL", "Грузинський ларі"), - ("GHS", "Ганський седі"), - ("GIP", "Ґібралтарський фунт"), - ("GMD", "Гамбійський даласі"), - ("GNF", "Гвінейський франк"), - ("GTQ", "Ґватемальський кетсаль"), - ("GYD", "Гаянський долар"), - ("HKD", "Гонконгівський долар"), - ("HNL", "Гондураська лемпіра"), - ("HTG", "Ґурд Республіки Гаїті"), - ("HUF", "Угорський форинт"), - ("IDR", "Індонезійська рупія"), - ("ILS", "Новий ізраїльський шекель"), - ("NIS", "Новий ізраїльський шекель"), - ("INR", "Індійська рупія"), - ("IQD", "Іракський динар"), - ("IRR", "Іранський ріал"), - ("ISK", "Ісландська крона"), - ("JMD", "Ямайський долар"), - ("JOD", "Йорданський динар"), - ("JPY", "Японська єна"), - ("KES", "Кенійський шилінг"), - ("KGS", "Киргизький сом"), - ("KHR", "Камбоджійський рієль"), - ("KMF", "Коморський франк"), - ("KPW", "Північно-корейська вона"), - ("KRW", "Південно-корейська вона"), - ("KWD", "Кувейтський динар"), - ("KYD", "Долар Кайманових островів"), - ("KZT", "Казахстанський теньґе"), - ("LAK", "Лаоський кіп"), - ("LBP", "Ліванський фунт"), - ("LKR", "Рупія Шрі-Ланки"), - ("LRD", "Ліберійський долар"), - ("LSL", "Лоті Королівства Лесото"), - ("LTL", "Литовська лита"), - ("LYD", "Лівійський динар"), - ("MAD", "Марокканський дирхам"), - ("MDL", "Молдовський лей"), - ("MGA", "Малагасійський аріарі"), - ("MKD", "Македонський денар"), - ("MMK", "М'янмський к'ят"), - ("MNT", "Монгольський тугрик"), - ("MOP", "Маканська патака"), - ("MRO", "Мавританська уґія"), - ("MUR", "Маврикійська рупія"), - ("MVR", "Мальдівська руфія"), - ("MWK", "Малавійська квача"), - ("MXN", "Мексиканське песо"), - ("MYR", "Малайзійський рингіт"), - ("MZN", "Мозамбіцький метикал"), - ("NAD", "Намібійський долар"), - ("NGN", "Ніґерійська найра"), - ("NIO", "Золота кордоба"), - ("NOK", "Норвезька крона"), - ("NPR", "Непальська рупія"), - ("NZD", "Новозеландський долар"), - ("OMR", "Оманський ріал"), - ("PAB", "Панамське бальбоа"), - ("PEN", "Перуанський соль"), - ("PGK", "Папуановогвинейська кіна"), - ("PHP", "Філіппінський песо"), - ("PKR", "Пакистанська рупія"), - ("PLN", "Польский злотий"), - ("PYG", "Парагвайський ґуарані"), - ("QAR", "Катарський ріал"), - ("RON", "Румунський лей"), - ("RSD", "Сербський динар"), - ("RUB", "Російський рубль"), - ("RWF", "Руандійський франк"), - ("SAR", "Саудівський ріал"), - ("SBD", "Долар Соломонових Островів"), - ("SCR", "Сейшельська рупія"), - ("SDG", "Суданський фунт"), - ("SEK", "Шведська крона"), - ("SGD", "Сінгапурський долар"), - ("SHP", "Фунт Святої Єлени"), - ("SLL", "Леоне Сьєрра-Леоне"), - ("SOS", "Сомалійський шилінг"), - ("SRD", "Суринамський долар"), - ("STD", "Добра Сан-Томе і Принсіпі"), - ("SVC", "Сальвадорський колон"), - ("SYP", "Сирійський фунт"), - ("SZL", "Свазілендський ліланґені"), - ("THB", "Таїландський бат"), - ("TJS", "Таджицький сомоні"), - ("TMT", "Туркменський манат"), - ("TND", "Туніський динар"), - ("TOP", "Тонґська паанга"), - ("TRY", "Турецька ліра"), - ("TTD", "Долар Тринідаду і Тобаго"), - ("TWD", "Новий тайванський долар"), - ("TZS", "Танзанійський шилінг"), - ("UAH", "Українська гривня"), - ("UGX", "Угандійський шилінг"), - ("USD", "Долар США"), - ("UYU", "Уругвайське песо"), - ("UZS", "Узбецький сум"), - ("VEF", "Венесуельский болівар"), - ("VND", "В'єтнамський донг"), - ("VUV", "Вануатська вану"), - ("WST", "Самоанська тала"), - ("XAF", "Центральноафриканський франк"), - ("XCD", "Східнокарибський долар"), - ("XDR", "Спеціальні права запозичення"), - ("XOF", "Західноафриканський франк"), - ("XPF", "Французький тихоокеанський франк"), - ("YER", "Єменський ріал"), - ("ZAR", "Південноафриканський ранд"), - ("ZMW", "Замбійська квача"), - ("ZWD", "Зімбабвійський долар"), - ) - - price_formats = ["#,##", "%#,##", "%##,##", "% ###,##", "%# ###,##"] - - def pricetag(self) -> str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}грн." diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/uk_UA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/uk_UA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 9387b91..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/uk_UA/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/uz_UZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/uz_UZ/__init__.py deleted file mode 100644 index 79bae34..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/uz_UZ/__init__.py +++ /dev/null @@ -1,178 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - # Format: (code, name) - currencies = ( - ("AED", "BAA Dirhami"), - ("AFN", "Afg‘oni"), - ("ALL", "Lek"), - ("AMD", "Arman dramasi"), - ("ANG", "Niderlandiya Antil guldeni"), - ("AOA", "Kvanza"), - ("ARS", "Argentina pesosi"), - ("AUD", "Avstraliya dollari"), - ("AWG", "Aruba florini"), - ("AZN", "Ozarbayjon manati"), - ("BAM", "Bosniya va Gertsegovina konvertatsiya qilinadigan markasi"), - ("BBD", "Barbados dollari"), - ("BDT", "Taka"), - ("BGN", "Bolgariya levi"), - ("BHD", "Bahrayn dinori"), - ("BIF", "Burundi franki"), - ("BMD", "Bermuda dollari"), - ("BND", "Bruney dollari"), - ("BOB", "Boliviano"), - ("BRL", "Braziliya reali"), - ("BSD", "Bagama dollari"), - ("BTN", "Ngultrum"), - ("BWP", "Pula"), - ("BYR", "Belarus rubli"), - ("BZD", "Beliz dollari"), - ("CAD", "Kanada dollari"), - ("CDF", "Kongo franki"), - ("CHF", "Shveytsariya franki"), - ("CLP", "Chili pesosi"), - ("CNY", "Yuan"), - ("COP", "Kolumbiya pesosi"), - ("CRC", "Kosta-Rika koloni"), - ("CUC", "Kuba konvertatsiya qilinadigan pesosi"), - ("CUP", "Kuba pesosi"), - ("CVE", "Kabo-Verde eskudosi"), - ("CZK", "Chex kronasi"), - ("DJF", "Jibuti franki"), - ("DKK", "Daniya kronasi"), - ("DOP", "Dominikan pesosi"), - ("DZD", "Jazoir dinori"), - ("EGP", "Misr funti"), - ("ERN", "Nakfa"), - ("ETB", "Efiopiya biri"), - ("EUR", "Yevro"), - ("FJD", "Fiji dollari"), - ("FKP", "Folklend orollari funti"), - ("GBP", "Funt sterling"), - ("GEL", "Lari"), - ("GGP", "Gernsi funti"), - ("GHS", "Gana sedi"), - ("GIP", "Gibraltar funti"), - ("GMD", "Dalasi"), - ("GNF", "Gvineya franki"), - ("GTQ", "Ketsal"), - ("GYD", "Gayana dollari"), - ("HKD", "Gonkong dollari"), - ("HNL", "Lempira"), - ("HRK", "Xorvatiya kunasi"), - ("HTG", "Gurda"), - ("HUF", "Forint"), - ("IDR", "Indoneziya rupiyasi"), - ("ILS", "Yangi Isroil shekeli"), - ("NIS", "Yangi Isroil shekeli"), - ("IMP", "Men oroli funti"), - ("INR", "Hind rupiyasi"), - ("IQD", "Iroq dinori"), - ("IRR", "Eron riali"), - ("ISK", "Islandiya kronasi"), - ("JEP", "Jersi funti"), - ("JMD", "Yamayka dollari"), - ("JOD", "Iordaniya dinori"), - ("JPY", "Yena"), - ("KES", "Keniya shillingi"), - ("KGS", "Som"), - ("KHR", "Riyel"), - ("KMF", "Komor franki"), - ("KPW", "Shimoliy Koreya voni"), - ("KRW", "Janubiy Koreya voni"), - ("KWD", "Kuvayt dinori"), - ("KYD", "Kayman orollari dollari"), - ("KZT", "Tenge"), - ("LAK", "Kip"), - ("LBP", "Livan funti"), - ("LKR", "Shri-Lanka rupiyasi"), - ("LRD", "Liberiya dollari"), - ("LSL", "Loti"), - ("LTL", "Litva liti"), - ("LYD", "Liviya dinori"), - ("MAD", "Marokash dirhami"), - ("MDL", "Moldaviya leyi"), - ("MGA", "Malagasi ariari"), - ("MKD", "Denar"), - ("MMK", "Kyat"), - ("MNT", "Tugrik"), - ("MOP", "Pataka"), - ("MRO", "Ugiyya"), - ("MUR", "Mavrikiy rupiyasi"), - ("MVR", "Rufiya"), - ("MWK", "Kvacha"), - ("MXN", "Meksika pesosi"), - ("MYR", "Malayziya ringgiti"), - ("MZN", "Mozambik metikali"), - ("NAD", "Namibiya dollari"), - ("NGN", "Nayra"), - ("NIO", "Kordoba"), - ("NOK", "Norvegiya kronasi"), - ("NPR", "Nepal rupiyasi"), - ("NZD", "Yangi Zelandiya dollari"), - ("OMR", "Ummon riali"), - ("PAB", "Balboa"), - ("PEN", "Sol"), - ("PGK", "Kina"), - ("PHP", "Filippin pesosi"), - ("PKR", "Pokiston rupiyasi"), - ("PLN", "Zlotiy"), - ("PYG", "Guarani"), - ("QAR", "Qatar riali"), - ("RON", "Ruminiya leyi"), - ("RSD", "Serbiya dinori"), - ("RUB", "Rossiya rubli"), - ("RWF", "Ruanda franki"), - ("SAR", "Saudiya riyoli"), - ("SBD", "Solomon orollari dollari"), - ("SCR", "Seyshel rupiyasi"), - ("SDG", "Sudan funti"), - ("SEK", "Shvetsiya kronasi"), - ("SGD", "Singapur dollari"), - ("SHP", "Muqaddas Yelena funti"), - ("SLL", "Leone"), - ("SOS", "Somali shillingi"), - ("SPL", "Luigino"), - ("SRD", "Surinam dollari"), - ("STD", "Dobra"), - ("SVC", "Salvador koloni"), - ("SYP", "Suriya funti"), - ("SZL", "Lilangeni"), - ("THB", "Bat"), - ("TJS", "Somoniy"), - ("TMT", "Yangi Turkman manati"), - ("TND", "Tunis dinori"), - ("TOP", "Paanga"), - ("TRY", "Turk lirasi"), - ("TTD", "Trinidad va Tobago dollari"), - ("TVD", "Tuvalu dollari"), - ("TWD", "Yangi Tayvan dollari"), - ("TZS", "Tanzaniya shillingi"), - ("UAH", "Grivna"), - ("UGX", "Uganda shillingi"), - ("USD", "AQSh dollari"), - ("UYU", "Urugvay pesosi"), - ("UZS", "Oʻzbek so‘mi"), - ("VEF", "Suveren bolivar"), - ("VND", "Dong"), - ("VUV", "Vatu"), - ("WST", "Tala"), - ("XAF", "KFA franki BEAS"), - ("XCD", "Sharqiy Karib dollari"), - ("XDR", "SDR"), - ("XOF", "KFA franki BCEAO"), - ("XPF", "KFP franki"), - ("YER", "Yaman riali"), - ("ZAR", "Rand"), - ("ZMW", "Zambiya kvachasi"), - ("ZWD", "Zimbabve dollari"), - ) - - price_formats = ["#,##", "%#,##", "%##,##", "% ###,##", "%# ###,##"] - - def pricetag(self) -> str: - return ( - self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}\N{CYRILLIC SMALL LETTER ER}." - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/uz_UZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/uz_UZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index da469fd..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/uz_UZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/vi_VN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/vi_VN/__init__.py deleted file mode 100644 index 4ad1581..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/vi_VN/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - # Source: https://vi.wikipedia.org/wiki/%C4%90%E1%BB%93ng_(%C4%91%C6%A1n_v%E1%BB%8B_ti%E1%BB%81n_t%E1%BB%87)#Ti%E1%BB%81n_gi%E1%BA%A5y_-_Ti%E1%BB%81n_polymer # NOQA - price_formats = ["#.##", "%#.##", "%##.##", "%,###.##", "%#,###.##"] - - def pricetag(self) -> str: - return "₫" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/vi_VN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/vi_VN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 8422c43..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/currency/vi_VN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/__init__.py deleted file mode 100644 index b7ee4e6..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/__init__.py +++ /dev/null @@ -1,2616 +0,0 @@ -import platform -import re -import zoneinfo - -from calendar import timegm -from datetime import MAXYEAR -from datetime import date as dtdate -from datetime import datetime -from datetime import time as dttime -from datetime import timedelta -from datetime import timezone as dttimezone -from datetime import tzinfo as TzInfo -from typing import Any, Callable, Dict, Iterator, Optional, Tuple, Union - -from faker.typing import Country, DateParseType - -from .. import BaseProvider, ElementsType - -localized = True - - -def _get_local_timezone(): - return datetime.now().astimezone().tzinfo - - -def _get_next_month_start(dt: Union[dtdate, datetime]) -> Union[dtdate, datetime]: - if dt.month == 12: - return dt.replace(year=dt.year + 1, month=1) - return dt.replace(month=dt.month + 1) - - -def datetime_to_timestamp(dt: Union[dtdate, datetime]) -> int: - if isinstance(dt, datetime) and getattr(dt, "tzinfo", None) is not None: - dt = dt.astimezone(dttimezone.utc) - return timegm(dt.timetuple()) - - -def timestamp_to_datetime(timestamp: Union[int, float], tzinfo: Optional[TzInfo]) -> datetime: - if tzinfo is None: - pick = convert_timestamp_to_datetime(timestamp, _get_local_timezone()) - return pick.astimezone(dttimezone.utc).replace(tzinfo=None) - return convert_timestamp_to_datetime(timestamp, tzinfo) - - -def change_year(current_date: dtdate, year_diff: int) -> dtdate: - """ - Unless the current_date is February 29th, it is fine to just subtract years. - If it is a leap day, and we are rolling back to a non-leap year, it will - cause a ValueError. - Since this is relatively uncommon, just catch the error and roll forward to - March 1 - - current_date: date object - year_diff: int year delta value, positive or negative - """ - year = current_date.year + year_diff - try: - return current_date.replace(year=year) - except ValueError as e: - # ValueError thrown if trying to move date to a non-leap year if the current - # date is February 29th - if year != 0 and current_date.month == 2 and current_date.day == 29: - return current_date.replace(month=3, day=1, year=year) - else: - raise e - - -class ParseError(ValueError): - pass - - -timedelta_pattern: str = r"" -for name, sym in [ - ("years", "y"), - ("months", "M"), - ("weeks", "w"), - ("days", "d"), - ("hours", "h"), - ("minutes", "m"), - ("seconds", "s"), -]: - timedelta_pattern += rf"((?P<{name}>(?:\+|-)\d+?){sym})?" - - -class Provider(BaseProvider): - """ - - Most methods of the provider accept a 'start_datetime' and/or 'end_datetime' parameter. - - These parameters accept a variety of types, and are used to define the range of the random date/time. - - We call this type ``DateParseType``. - - A ``DateParseType`` can be: - - - a datetime or date object - - an integer or a float, representing UNIX a timestamp - - the special string 'now' - - the special string 'today' - - a timedelta object, representing a time delta from now - - a 'timedelta string', such as '+2d', '-3w', '+4y', etc. Representing a time delta from now. - - """ - - # NOTE: Windows only guarantee second precision, in order to emulate that - # we need to inspect the platform to determine which function is most - # appropriate to generate random seconds with. - if platform.system() == "Windows": - - def _rand_seconds(self, start_datetime: int, end_datetime: int) -> float: - return self.generator.random.randint(start_datetime, end_datetime) - - else: - - def _rand_seconds(self, start_datetime: int, end_datetime: int) -> float: - if start_datetime > end_datetime: - raise ValueError("empty range for _rand_seconds: start datetime must be before than end datetime") - return self.generator.random.uniform(start_datetime, end_datetime) - - centuries: ElementsType[str] = [ - "I", - "II", - "III", - "IV", - "V", - "VI", - "VII", - "VIII", - "IX", - "X", - "XI", - "XII", - "XIII", - "XIV", - "XV", - "XVI", - "XVII", - "XVIII", - "XIX", - "XX", - "XXI", - ] - - countries = [ - Country( - timezones=["Europe/Andorra"], - alpha_2_code="AD", - alpha_3_code="AND", - continent="Europe", - name="Andorra", - capital="Andorra la Vella", - ), - Country( - timezones=["Asia/Kabul"], - alpha_2_code="AF", - alpha_3_code="AFG", - continent="Asia", - name="Afghanistan", - capital="Kabul", - ), - Country( - timezones=["America/Antigua"], - alpha_2_code="AG", - alpha_3_code="ATG", - continent="North America", - name="Antigua and Barbuda", - capital="St. John's", - ), - Country( - timezones=["Europe/Tirane"], - alpha_2_code="AL", - alpha_3_code="ALB", - continent="Europe", - name="Albania", - capital="Tirana", - ), - Country( - timezones=["Asia/Yerevan"], - alpha_2_code="AM", - alpha_3_code="ARM", - continent="Asia", - name="Armenia", - capital="Yerevan", - ), - Country( - timezones=["Africa/Luanda"], - alpha_2_code="AO", - alpha_3_code="AGO", - continent="Africa", - name="Angola", - capital="Luanda", - ), - Country( - timezones=[ - "America/Argentina/Buenos_Aires", - "America/Argentina/Cordoba", - "America/Argentina/Jujuy", - "America/Argentina/Tucuman", - "America/Argentina/Catamarca", - "America/Argentina/La_Rioja", - "America/Argentina/San_Juan", - "America/Argentina/Mendoza", - "America/Argentina/Rio_Gallegos", - "America/Argentina/Ushuaia", - ], - alpha_2_code="AR", - alpha_3_code="ARG", - continent="South America", - name="Argentina", - capital="Buenos Aires", - ), - Country( - timezones=["Europe/Vienna"], - alpha_2_code="AT", - alpha_3_code="AUT", - continent="Europe", - name="Austria", - capital="Vienna", - ), - Country( - timezones=[ - "Australia/Lord_Howe", - "Australia/Hobart", - "Australia/Currie", - "Australia/Melbourne", - "Australia/Sydney", - "Australia/Broken_Hill", - "Australia/Brisbane", - "Australia/Lindeman", - "Australia/Adelaide", - "Australia/Darwin", - "Australia/Perth", - ], - alpha_2_code="AU", - alpha_3_code="AUS", - continent="Oceania", - name="Australia", - capital="Canberra", - ), - Country( - timezones=["Asia/Baku"], - alpha_2_code="AZ", - alpha_3_code="AZE", - continent="Asia", - name="Azerbaijan", - capital="Baku", - ), - Country( - timezones=["America/Barbados"], - alpha_2_code="BB", - alpha_3_code="BRB", - continent="North America", - name="Barbados", - capital="Bridgetown", - ), - Country( - timezones=["Asia/Dhaka"], - alpha_2_code="BD", - alpha_3_code="BGD", - continent="Asia", - name="Bangladesh", - capital="Dhaka", - ), - Country( - timezones=["Europe/Brussels"], - alpha_2_code="BE", - alpha_3_code="BEL", - continent="Europe", - name="Belgium", - capital="Brussels", - ), - Country( - timezones=["Africa/Ouagadougou"], - alpha_2_code="BF", - alpha_3_code="BFA", - continent="Africa", - name="Burkina Faso", - capital="Ouagadougou", - ), - Country( - timezones=["Europe/Sofia"], - alpha_2_code="BG", - alpha_3_code="BGR", - continent="Europe", - name="Bulgaria", - capital="Sofia", - ), - Country( - timezones=["Asia/Bahrain"], - alpha_2_code="BH", - alpha_3_code="BHR", - continent="Asia", - name="Bahrain", - capital="Manama", - ), - Country( - timezones=["Africa/Bujumbura"], - alpha_2_code="BI", - alpha_3_code="BDI", - continent="Africa", - name="Burundi", - capital="Bujumbura", - ), - Country( - timezones=["Africa/Porto-Novo"], - alpha_2_code="BJ", - alpha_3_code="BEN", - continent="Africa", - name="Benin", - capital="Porto-Novo", - ), - Country( - timezones=["Asia/Brunei"], - alpha_2_code="BN", - alpha_3_code="BRN", - continent="Asia", - name="Brunei Darussalam", - capital="Bandar Seri Begawan", - ), - Country( - timezones=["America/La_Paz"], - alpha_2_code="BO", - alpha_3_code="BOL", - continent="South America", - name="Bolivia", - capital="Sucre", - ), - Country( - timezones=[ - "America/Noronha", - "America/Belem", - "America/Fortaleza", - "America/Recife", - "America/Araguaina", - "America/Maceio", - "America/Bahia", - "America/Sao_Paulo", - "America/Campo_Grande", - "America/Cuiaba", - "America/Porto_Velho", - "America/Boa_Vista", - "America/Manaus", - "America/Eirunepe", - "America/Rio_Branco", - ], - alpha_2_code="BR", - alpha_3_code="BRA", - continent="South America", - name="Brazil", - capital="Bras\xc3\xadlia", - ), - Country( - timezones=["America/Nassau"], - alpha_2_code="BS", - alpha_3_code="BHS", - continent="North America", - name="Bahamas", - capital="Nassau", - ), - Country( - timezones=["Asia/Thimphu"], - alpha_2_code="BT", - alpha_3_code="BTN", - continent="Asia", - name="Bhutan", - capital="Thimphu", - ), - Country( - timezones=["Africa/Gaborone"], - alpha_2_code="BW", - alpha_3_code="BWA", - continent="Africa", - name="Botswana", - capital="Gaborone", - ), - Country( - timezones=["Europe/Minsk"], - alpha_2_code="BY", - alpha_3_code="BLR", - continent="Europe", - name="Belarus", - capital="Minsk", - ), - Country( - timezones=["America/Belize"], - alpha_2_code="BZ", - alpha_3_code="BLZ", - continent="North America", - name="Belize", - capital="Belmopan", - ), - Country( - timezones=[ - "America/St_Johns", - "America/Halifax", - "America/Glace_Bay", - "America/Moncton", - "America/Goose_Bay", - "America/Blanc-Sablon", - "America/Montreal", - "America/Toronto", - "America/Nipigon", - "America/Thunder_Bay", - "America/Pangnirtung", - "America/Iqaluit", - "America/Atikokan", - "America/Rankin_Inlet", - "America/Winnipeg", - "America/Rainy_River", - "America/Cambridge_Bay", - "America/Regina", - "America/Swift_Current", - "America/Edmonton", - "America/Yellowknife", - "America/Inuvik", - "America/Dawson_Creek", - "America/Vancouver", - "America/Whitehorse", - "America/Dawson", - ], - alpha_2_code="CA", - alpha_3_code="CAN", - continent="North America", - name="Canada", - capital="Ottawa", - ), - Country( - timezones=["Africa/Kinshasa", "Africa/Lubumbashi"], - alpha_2_code="CD", - alpha_3_code="COD", - continent="Africa", - name="Democratic Republic of the Congo", - capital="Kinshasa", - ), - Country( - timezones=["Africa/Brazzaville"], - alpha_2_code="CG", - alpha_3_code="COG", - continent="Africa", - name="Republic of the Congo", - capital="Brazzaville", - ), - Country( - timezones=["Africa/Abidjan"], - alpha_2_code="CI", - alpha_3_code="CIV", - continent="Africa", - name="C\xc3\xb4te d'Ivoire", - capital="Yamoussoukro", - ), - Country( - timezones=["America/Santiago", "Pacific/Easter"], - alpha_2_code="CL", - alpha_3_code="CHL", - continent="South America", - name="Chile", - capital="Santiago", - ), - Country( - timezones=["Africa/Douala"], - alpha_2_code="CM", - alpha_3_code="CMR", - continent="Africa", - name="Cameroon", - capital="Yaound\xc3\xa9", - ), - Country( - timezones=[ - "Asia/Shanghai", - "Asia/Harbin", - "Asia/Chongqing", - "Asia/Urumqi", - "Asia/Kashgar", - ], - alpha_2_code="CN", - alpha_3_code="CHN", - continent="Asia", - name="People's Republic of China", - capital="Beijing", - ), - Country( - timezones=["America/Bogota"], - alpha_2_code="CO", - alpha_3_code="COL", - continent="South America", - name="Colombia", - capital="Bogot\xc3\xa1", - ), - Country( - timezones=["America/Costa_Rica"], - alpha_2_code="CR", - alpha_3_code="CRI", - continent="North America", - name="Costa Rica", - capital="San Jos\xc3\xa9", - ), - Country( - timezones=["America/Havana"], - alpha_2_code="CU", - alpha_3_code="CUB", - continent="North America", - name="Cuba", - capital="Havana", - ), - Country( - timezones=["Atlantic/Cape_Verde"], - alpha_2_code="CV", - alpha_3_code="CPV", - continent="Africa", - name="Cape Verde", - capital="Praia", - ), - Country( - timezones=["Asia/Nicosia"], - alpha_2_code="CY", - alpha_3_code="CYP", - continent="Asia", - name="Cyprus", - capital="Nicosia", - ), - Country( - timezones=["Europe/Prague"], - alpha_2_code="CZ", - alpha_3_code="CZE", - continent="Europe", - name="Czech Republic", - capital="Prague", - ), - Country( - timezones=["Europe/Berlin"], - alpha_2_code="DE", - alpha_3_code="DEU", - continent="Europe", - name="Germany", - capital="Berlin", - ), - Country( - timezones=["Africa/Djibouti"], - alpha_2_code="DJ", - alpha_3_code="DJI", - continent="Africa", - name="Djibouti", - capital="Djibouti City", - ), - Country( - timezones=["Europe/Copenhagen"], - alpha_2_code="DK", - alpha_3_code="DNK", - continent="Europe", - name="Denmark", - capital="Copenhagen", - ), - Country( - timezones=["America/Dominica"], - alpha_2_code="DM", - alpha_3_code="DMA", - continent="North America", - name="Dominica", - capital="Roseau", - ), - Country( - timezones=["America/Santo_Domingo"], - alpha_2_code="DO", - alpha_3_code="DOM", - continent="North America", - name="Dominican Republic", - capital="Santo Domingo", - ), - Country( - timezones=["America/Guayaquil", "Pacific/Galapagos"], - alpha_2_code="EC", - alpha_3_code="ECU", - continent="South America", - name="Ecuador", - capital="Quito", - ), - Country( - timezones=["Europe/Tallinn"], - alpha_2_code="EE", - alpha_3_code="EST", - continent="Europe", - name="Estonia", - capital="Tallinn", - ), - Country( - timezones=["Africa/Cairo"], - alpha_2_code="EG", - alpha_3_code="EGY", - continent="Africa", - name="Egypt", - capital="Cairo", - ), - Country( - timezones=["Africa/Asmera"], - alpha_2_code="ER", - alpha_3_code="ERI", - continent="Africa", - name="Eritrea", - capital="Asmara", - ), - Country( - timezones=["Africa/Addis_Ababa"], - alpha_2_code="ET", - alpha_3_code="ETH", - continent="Africa", - name="Ethiopia", - capital="Addis Ababa", - ), - Country( - timezones=["Europe/Helsinki"], - alpha_2_code="FI", - alpha_3_code="FIN", - continent="Europe", - name="Finland", - capital="Helsinki", - ), - Country( - timezones=["Pacific/Fiji"], - alpha_2_code="FJ", - alpha_3_code="FJI", - continent="Oceania", - name="Fiji", - capital="Suva", - ), - Country( - timezones=["Europe/Paris"], - alpha_2_code="FR", - alpha_3_code="FRA", - continent="Europe", - name="France", - capital="Paris", - ), - Country( - timezones=["Africa/Libreville"], - alpha_2_code="GA", - alpha_3_code="GAB", - continent="Africa", - name="Gabon", - capital="Libreville", - ), - Country( - timezones=["Asia/Tbilisi"], - alpha_2_code="GE", - alpha_3_code="GEO", - continent="Asia", - name="Georgia", - capital="Tbilisi", - ), - Country( - timezones=["Africa/Accra"], - alpha_2_code="GH", - alpha_3_code="GHA", - continent="Africa", - name="Ghana", - capital="Accra", - ), - Country( - timezones=["Africa/Banjul"], - alpha_2_code="GM", - alpha_3_code="GMB", - continent="Africa", - name="The Gambia", - capital="Banjul", - ), - Country( - timezones=["Africa/Conakry"], - alpha_2_code="GN", - alpha_3_code="GIN", - continent="Africa", - name="Guinea", - capital="Conakry", - ), - Country( - timezones=["Europe/Athens"], - alpha_2_code="GR", - alpha_3_code="GRC", - continent="Europe", - name="Greece", - capital="Athens", - ), - Country( - timezones=["America/Guatemala"], - alpha_2_code="GT", - alpha_3_code="GTM", - continent="North America", - name="Guatemala", - capital="Guatemala City", - ), - Country( - timezones=["America/Guatemala"], - alpha_2_code="HT", - alpha_3_code="HTI", - continent="North America", - name="Haiti", - capital="Port-au-Prince", - ), - Country( - timezones=["Africa/Bissau"], - alpha_2_code="GW", - alpha_3_code="GNB", - continent="Africa", - name="Guinea-Bissau", - capital="Bissau", - ), - Country( - timezones=["America/Guyana"], - alpha_2_code="GY", - alpha_3_code="GUY", - continent="South America", - name="Guyana", - capital="Georgetown", - ), - Country( - timezones=["America/Tegucigalpa"], - alpha_2_code="HN", - alpha_3_code="HND", - continent="North America", - name="Honduras", - capital="Tegucigalpa", - ), - Country( - timezones=["Europe/Budapest"], - alpha_2_code="HU", - alpha_3_code="HUN", - continent="Europe", - name="Hungary", - capital="Budapest", - ), - Country( - timezones=[ - "Asia/Jakarta", - "Asia/Pontianak", - "Asia/Makassar", - "Asia/Jayapura", - ], - alpha_2_code="ID", - alpha_3_code="IDN", - continent="Asia", - name="Indonesia", - capital="Jakarta", - ), - Country( - timezones=["Europe/Dublin"], - alpha_2_code="IE", - alpha_3_code="IRL", - continent="Europe", - name="Republic of Ireland", - capital="Dublin", - ), - Country( - timezones=["Asia/Jerusalem"], - alpha_2_code="IL", - alpha_3_code="ISR", - continent="Asia", - name="Israel", - capital="Jerusalem", - ), - Country( - timezones=["Asia/Calcutta"], - alpha_2_code="IN", - alpha_3_code="IND", - continent="Asia", - name="India", - capital="New Delhi", - ), - Country( - timezones=["Asia/Baghdad"], - alpha_2_code="IQ", - alpha_3_code="IRQ", - continent="Asia", - name="Iraq", - capital="Baghdad", - ), - Country( - timezones=["Asia/Tehran"], - alpha_2_code="IR", - alpha_3_code="IRN", - continent="Asia", - name="Iran", - capital="Tehran", - ), - Country( - timezones=["Atlantic/Reykjavik"], - alpha_2_code="IS", - alpha_3_code="ISL", - continent="Europe", - name="Iceland", - capital="Reykjav\xc3\xadk", - ), - Country( - timezones=["Europe/Rome"], - alpha_2_code="IT", - alpha_3_code="ITA", - continent="Europe", - name="Italy", - capital="Rome", - ), - Country( - timezones=["America/Jamaica"], - alpha_2_code="JM", - alpha_3_code="JAM", - continent="North America", - name="Jamaica", - capital="Kingston", - ), - Country( - timezones=["Asia/Amman"], - alpha_2_code="JO", - alpha_3_code="JOR", - continent="Asia", - name="Jordan", - capital="Amman", - ), - Country( - timezones=["Asia/Tokyo"], - alpha_2_code="JP", - alpha_3_code="JPN", - continent="Asia", - name="Japan", - capital="Tokyo", - ), - Country( - timezones=["Africa/Nairobi"], - alpha_2_code="KE", - alpha_3_code="KEN", - continent="Africa", - name="Kenya", - capital="Nairobi", - ), - Country( - timezones=["Asia/Bishkek"], - alpha_2_code="KG", - alpha_3_code="KGZ", - continent="Asia", - name="Kyrgyzstan", - capital="Bishkek", - ), - Country( - timezones=["Pacific/Tarawa", "Pacific/Enderbury", "Pacific/Kiritimati"], - alpha_2_code="KI", - alpha_3_code="KIR", - continent="Oceania", - name="Kiribati", - capital="Tarawa", - ), - Country( - timezones=["Asia/Pyongyang"], - alpha_2_code="KP", - alpha_3_code="PRK", - continent="Asia", - name="North Korea", - capital="Pyongyang", - ), - Country( - timezones=["Asia/Seoul"], - alpha_2_code="KR", - alpha_3_code="KOR", - continent="Asia", - name="South Korea", - capital="Seoul", - ), - Country( - timezones=["Asia/Kuwait"], - alpha_2_code="KW", - alpha_3_code="KWT", - continent="Asia", - name="Kuwait", - capital="Kuwait City", - ), - Country( - timezones=["Asia/Beirut"], - alpha_2_code="LB", - alpha_3_code="LBN", - continent="Asia", - name="Lebanon", - capital="Beirut", - ), - Country( - timezones=["Europe/Vaduz"], - alpha_2_code="LI", - alpha_3_code="LIE", - continent="Europe", - name="Liechtenstein", - capital="Vaduz", - ), - Country( - timezones=["Africa/Monrovia"], - alpha_2_code="LR", - alpha_3_code="LBR", - continent="Africa", - name="Liberia", - capital="Monrovia", - ), - Country( - timezones=["Africa/Maseru"], - alpha_2_code="LS", - alpha_3_code="LSO", - continent="Africa", - name="Lesotho", - capital="Maseru", - ), - Country( - timezones=["Europe/Vilnius"], - alpha_2_code="LT", - alpha_3_code="LTU", - continent="Europe", - name="Lithuania", - capital="Vilnius", - ), - Country( - timezones=["Europe/Luxembourg"], - alpha_2_code="LU", - alpha_3_code="LUX", - continent="Europe", - name="Luxembourg", - capital="Luxembourg City", - ), - Country( - timezones=["Europe/Riga"], - alpha_2_code="LV", - alpha_3_code="LVA", - continent="Europe", - name="Latvia", - capital="Riga", - ), - Country( - timezones=["Africa/Tripoli"], - alpha_2_code="LY", - alpha_3_code="LBY", - continent="Africa", - name="Libya", - capital="Tripoli", - ), - Country( - timezones=["Indian/Antananarivo"], - alpha_2_code="MG", - alpha_3_code="MDG", - continent="Africa", - name="Madagascar", - capital="Antananarivo", - ), - Country( - timezones=["Pacific/Majuro", "Pacific/Kwajalein"], - alpha_2_code="MH", - alpha_3_code="MHL", - continent="Oceania", - name="Marshall Islands", - capital="Majuro", - ), - Country( - timezones=["Europe/Skopje"], - alpha_2_code="MK", - alpha_3_code="MKD", - continent="Europe", - name="North Macedonia", - capital="Skopje", - ), - Country( - timezones=["Africa/Bamako"], - alpha_2_code="ML", - alpha_3_code="MLI", - continent="Africa", - name="Mali", - capital="Bamako", - ), - Country( - timezones=["Asia/Rangoon"], - alpha_2_code="MM", - alpha_3_code="MMR", - continent="Asia", - name="Myanmar", - capital="Naypyidaw", - ), - Country( - timezones=["Asia/Ulaanbaatar", "Asia/Hovd", "Asia/Choibalsan"], - alpha_2_code="MN", - alpha_3_code="MNG", - continent="Asia", - name="Mongolia", - capital="Ulaanbaatar", - ), - Country( - timezones=["Africa/Nouakchott"], - alpha_2_code="MR", - alpha_3_code="MRT", - continent="Africa", - name="Mauritania", - capital="Nouakchott", - ), - Country( - timezones=["Europe/Malta"], - alpha_2_code="MT", - alpha_3_code="MLT", - continent="Europe", - name="Malta", - capital="Valletta", - ), - Country( - timezones=["Indian/Mauritius"], - alpha_2_code="MU", - alpha_3_code="MUS", - continent="Africa", - name="Mauritius", - capital="Port Louis", - ), - Country( - timezones=["Indian/Maldives"], - alpha_2_code="MV", - alpha_3_code="MDV", - continent="Asia", - name="Maldives", - capital="Mal\xc3\xa9", - ), - Country( - timezones=["Africa/Blantyre"], - alpha_2_code="MW", - alpha_3_code="MWI", - continent="Africa", - name="Malawi", - capital="Lilongwe", - ), - Country( - timezones=[ - "America/Mexico_City", - "America/Cancun", - "America/Merida", - "America/Monterrey", - "America/Mazatlan", - "America/Chihuahua", - "America/Hermosillo", - "America/Tijuana", - ], - alpha_2_code="MX", - alpha_3_code="MEX", - continent="North America", - name="Mexico", - capital="Mexico City", - ), - Country( - timezones=["Asia/Kuala_Lumpur", "Asia/Kuching"], - alpha_2_code="MY", - alpha_3_code="MYS", - continent="Asia", - name="Malaysia", - capital="Kuala Lumpur", - ), - Country( - timezones=["Africa/Maputo"], - alpha_2_code="MZ", - alpha_3_code="MOZ", - continent="Africa", - name="Mozambique", - capital="Maputo", - ), - Country( - timezones=["Africa/Windhoek"], - alpha_2_code="NA", - alpha_3_code="NAM", - continent="Africa", - name="Namibia", - capital="Windhoek", - ), - Country( - timezones=["Africa/Niamey"], - alpha_2_code="NE", - alpha_3_code="NER", - continent="Africa", - name="Niger", - capital="Niamey", - ), - Country( - timezones=["Africa/Lagos"], - alpha_2_code="NG", - alpha_3_code="NGA", - continent="Africa", - name="Nigeria", - capital="Abuja", - ), - Country( - timezones=["America/Managua"], - alpha_2_code="NI", - alpha_3_code="NIC", - continent="North America", - name="Nicaragua", - capital="Managua", - ), - Country( - timezones=["Europe/Amsterdam"], - alpha_2_code="NL", - alpha_3_code="NLD", - continent="Europe", - name="Kingdom of the Netherlands", - capital="Amsterdam", - ), - Country( - timezones=["Europe/Oslo"], - alpha_2_code="NO", - alpha_3_code="NOR", - continent="Europe", - name="Norway", - capital="Oslo", - ), - Country( - timezones=["Asia/Katmandu"], - alpha_2_code="NP", - alpha_3_code="NPL", - continent="Asia", - name="Nepal", - capital="Kathmandu", - ), - Country( - timezones=["Pacific/Nauru"], - alpha_2_code="NR", - alpha_3_code="NRU", - continent="Oceania", - name="Nauru", - capital="Yaren", - ), - Country( - timezones=["Pacific/Auckland", "Pacific/Chatham"], - alpha_2_code="NZ", - alpha_3_code="NZL", - continent="Oceania", - name="New Zealand", - capital="Wellington", - ), - Country( - timezones=["Asia/Muscat"], - alpha_2_code="OM", - alpha_3_code="OMN", - continent="Asia", - name="Oman", - capital="Muscat", - ), - Country( - timezones=["America/Panama"], - alpha_2_code="PA", - alpha_3_code="PAN", - continent="North America", - name="Panama", - capital="Panama City", - ), - Country( - timezones=["America/Lima"], - alpha_2_code="PE", - alpha_3_code="PER", - continent="South America", - name="Peru", - capital="Lima", - ), - Country( - timezones=["Pacific/Port_Moresby"], - alpha_2_code="PG", - alpha_3_code="PNG", - continent="Oceania", - name="Papua New Guinea", - capital="Port Moresby", - ), - Country( - timezones=["Asia/Manila"], - alpha_2_code="PH", - alpha_3_code="PHL", - continent="Asia", - name="Philippines", - capital="Manila", - ), - Country( - timezones=["Asia/Karachi"], - alpha_2_code="PK", - alpha_3_code="PAK", - continent="Asia", - name="Pakistan", - capital="Islamabad", - ), - Country( - timezones=["Europe/Warsaw"], - alpha_2_code="PL", - alpha_3_code="POL", - continent="Europe", - name="Poland", - capital="Warsaw", - ), - Country( - timezones=["Europe/Lisbon", "Atlantic/Madeira", "Atlantic/Azores"], - alpha_2_code="PT", - alpha_3_code="PRT", - continent="Europe", - name="Portugal", - capital="Lisbon", - ), - Country( - timezones=["Pacific/Palau"], - alpha_2_code="PW", - alpha_3_code="PLW", - continent="Oceania", - name="Palau", - capital="Ngerulmud", - ), - Country( - timezones=["America/Asuncion"], - alpha_2_code="PY", - alpha_3_code="PRY", - continent="South America", - name="Paraguay", - capital="Asunci\xc3\xb3n", - ), - Country( - timezones=["Asia/Qatar"], - alpha_2_code="QA", - alpha_3_code="QAT", - continent="Asia", - name="Qatar", - capital="Doha", - ), - Country( - timezones=["Europe/Bucharest"], - alpha_2_code="RO", - alpha_3_code="ROU", - continent="Europe", - name="Romania", - capital="Bucharest", - ), - Country( - timezones=[ - "Europe/Kaliningrad", - "Europe/Moscow", - "Europe/Volgograd", - "Europe/Samara", - "Asia/Yekaterinburg", - "Asia/Omsk", - "Asia/Novosibirsk", - "Asia/Krasnoyarsk", - "Asia/Irkutsk", - "Asia/Yakutsk", - "Asia/Vladivostok", - "Asia/Sakhalin", - "Asia/Magadan", - "Asia/Kamchatka", - "Asia/Anadyr", - ], - alpha_2_code="RU", - alpha_3_code="RUS", - continent="Europe", - name="Russia", - capital="Moscow", - ), - Country( - timezones=["Africa/Kigali"], - alpha_2_code="RW", - alpha_3_code="RWA", - continent="Africa", - name="Rwanda", - capital="Kigali", - ), - Country( - timezones=["Asia/Riyadh"], - alpha_2_code="SA", - alpha_3_code="SAU", - continent="Asia", - name="Saudi Arabia", - capital="Riyadh", - ), - Country( - timezones=["Pacific/Guadalcanal"], - alpha_2_code="SB", - alpha_3_code="SLB", - continent="Oceania", - name="Solomon Islands", - capital="Honiara", - ), - Country( - timezones=["Indian/Mahe"], - alpha_2_code="SC", - alpha_3_code="SYC", - continent="Africa", - name="Seychelles", - capital="Victoria", - ), - Country( - timezones=["Africa/Khartoum"], - alpha_2_code="SD", - alpha_3_code="SDN", - continent="Africa", - name="Sudan", - capital="Khartoum", - ), - Country( - timezones=["Europe/Stockholm"], - alpha_2_code="SE", - alpha_3_code="SWE", - continent="Europe", - name="Sweden", - capital="Stockholm", - ), - Country( - timezones=["Asia/Singapore"], - alpha_2_code="SG", - alpha_3_code="SGP", - continent="Asia", - name="Singapore", - capital="Singapore", - ), - Country( - timezones=["Europe/Ljubljana"], - alpha_2_code="SI", - alpha_3_code="SVN", - continent="Europe", - name="Slovenia", - capital="Ljubljana", - ), - Country( - timezones=["Europe/Bratislava"], - alpha_2_code="SK", - alpha_3_code="SVK", - continent="Europe", - name="Slovakia", - capital="Bratislava", - ), - Country( - timezones=["Africa/Freetown"], - alpha_2_code="SL", - alpha_3_code="SLE", - continent="Africa", - name="Sierra Leone", - capital="Freetown", - ), - Country( - timezones=["Europe/San_Marino"], - alpha_2_code="SM", - alpha_3_code="SMR", - continent="Europe", - name="San Marino", - capital="San Marino", - ), - Country( - timezones=["Africa/Dakar"], - alpha_2_code="SN", - alpha_3_code="SEN", - continent="Africa", - name="Senegal", - capital="Dakar", - ), - Country( - timezones=["Africa/Mogadishu"], - alpha_2_code="SO", - alpha_3_code="SOM", - continent="Africa", - name="Somalia", - capital="Mogadishu", - ), - Country( - timezones=["America/Paramaribo"], - alpha_2_code="SR", - alpha_3_code="SUR", - continent="South America", - name="Suriname", - capital="Paramaribo", - ), - Country( - timezones=["Africa/Sao_Tome"], - alpha_2_code="ST", - alpha_3_code="STP", - continent="Africa", - name="S\xc3\xa3o Tom\xc3\xa9 and Pr\xc3\xadncipe", - capital="S\xc3\xa3o Tom\xc3\xa9", - ), - Country( - timezones=["Asia/Damascus"], - alpha_2_code="SY", - alpha_3_code="SYR", - continent="Asia", - name="Syria", - capital="Damascus", - ), - Country( - timezones=["Africa/Lome"], - alpha_2_code="TG", - alpha_3_code="TGO", - continent="Africa", - name="Togo", - capital="Lom\xc3\xa9", - ), - Country( - timezones=["Asia/Bangkok"], - alpha_2_code="TH", - alpha_3_code="THA", - continent="Asia", - name="Thailand", - capital="Bangkok", - ), - Country( - timezones=["Asia/Dushanbe"], - alpha_2_code="TJ", - alpha_3_code="TJK", - continent="Asia", - name="Tajikistan", - capital="Dushanbe", - ), - Country( - timezones=["Asia/Ashgabat"], - alpha_2_code="TM", - alpha_3_code="TKM", - continent="Asia", - name="Turkmenistan", - capital="Ashgabat", - ), - Country( - timezones=["Africa/Tunis"], - alpha_2_code="TN", - alpha_3_code="TUN", - continent="Africa", - name="Tunisia", - capital="Tunis", - ), - Country( - timezones=["Pacific/Tongatapu"], - alpha_2_code="TO", - alpha_3_code="TON", - continent="Oceania", - name="Tonga", - capital="Nuku\xca\xbbalofa", - ), - Country( - timezones=["Europe/Istanbul"], - alpha_2_code="TR", - alpha_3_code="TUR", - continent="Asia", - name="Turkey", - capital="Ankara", - ), - Country( - timezones=["America/Port_of_Spain"], - alpha_2_code="TT", - alpha_3_code="TTO", - continent="North America", - name="Trinidad and Tobago", - capital="Port of Spain", - ), - Country( - timezones=["Pacific/Funafuti"], - alpha_2_code="TV", - alpha_3_code="TUV", - continent="Oceania", - name="Tuvalu", - capital="Funafuti", - ), - Country( - timezones=["Africa/Dar_es_Salaam"], - alpha_2_code="TZ", - alpha_3_code="TZA", - continent="Africa", - name="Tanzania", - capital="Dodoma", - ), - Country( - timezones=[ - "Europe/Kyiv", - "Europe/Uzhgorod", - "Europe/Zaporozhye", - "Europe/Simferopol", - ], - alpha_2_code="UA", - alpha_3_code="UKR", - continent="Europe", - name="Ukraine", - capital="Kyiv", - ), - Country( - timezones=["Africa/Kampala"], - alpha_2_code="UG", - alpha_3_code="UGA", - continent="Africa", - name="Uganda", - capital="Kampala", - ), - Country( - timezones=[ - "America/New_York", - "America/Detroit", - "America/Kentucky/Louisville", - "America/Kentucky/Monticello", - "America/Indiana/Indianapolis", - "America/Indiana/Marengo", - "America/Indiana/Knox", - "America/Indiana/Vevay", - "America/Chicago", - "America/Indiana/Vincennes", - "America/Indiana/Petersburg", - "America/Menominee", - "America/North_Dakota/Center", - "America/North_Dakota/New_Salem", - "America/Denver", - "America/Boise", - "America/Shiprock", - "America/Phoenix", - "America/Los_Angeles", - "America/Anchorage", - "America/Juneau", - "America/Yakutat", - "America/Nome", - "America/Adak", - "Pacific/Honolulu", - ], - alpha_2_code="US", - alpha_3_code="USA", - continent="North America", - name="United States", - capital="Washington, D.C.", - ), - Country( - timezones=["America/Montevideo"], - alpha_2_code="UY", - alpha_3_code="URY", - continent="South America", - name="Uruguay", - capital="Montevideo", - ), - Country( - timezones=["Asia/Samarkand", "Asia/Tashkent"], - alpha_2_code="UZ", - alpha_3_code="UZB", - continent="Asia", - name="Uzbekistan", - capital="Tashkent", - ), - Country( - timezones=["Europe/Vatican"], - alpha_2_code="VA", - alpha_3_code="VAT", - continent="Europe", - name="Vatican City", - capital="Vatican City", - ), - Country( - timezones=["America/Caracas"], - alpha_2_code="VE", - alpha_3_code="VEN", - continent="South America", - name="Venezuela", - capital="Caracas", - ), - Country( - timezones=["Asia/Saigon"], - alpha_2_code="VN", - alpha_3_code="VNM", - continent="Asia", - name="Vietnam", - capital="Hanoi", - ), - Country( - timezones=["Pacific/Efate"], - alpha_2_code="VU", - alpha_3_code="VUT", - continent="Oceania", - name="Vanuatu", - capital="Port Vila", - ), - Country( - timezones=["Asia/Aden"], - alpha_2_code="YE", - alpha_3_code="YEM", - continent="Asia", - name="Yemen", - capital="Sana'a", - ), - Country( - timezones=["Africa/Lusaka"], - alpha_2_code="ZM", - alpha_3_code="ZMB", - continent="Africa", - name="Zambia", - capital="Lusaka", - ), - Country( - timezones=["Africa/Harare"], - alpha_2_code="ZW", - alpha_3_code="ZWE", - continent="Africa", - name="Zimbabwe", - capital="Harare", - ), - Country( - timezones=["Africa/Algiers"], - alpha_2_code="DZ", - alpha_3_code="DZA", - continent="Africa", - name="Algeria", - capital="Algiers", - ), - Country( - timezones=["Europe/Sarajevo"], - alpha_2_code="BA", - alpha_3_code="BIH", - continent="Europe", - name="Bosnia and Herzegovina", - capital="Sarajevo", - ), - Country( - timezones=["Asia/Phnom_Penh"], - alpha_2_code="KH", - alpha_3_code="KHM", - continent="Asia", - name="Cambodia", - capital="Phnom Penh", - ), - Country( - timezones=["Africa/Bangui"], - alpha_2_code="CF", - alpha_3_code="CAF", - continent="Africa", - name="Central African Republic", - capital="Bangui", - ), - Country( - timezones=["Africa/Ndjamena"], - alpha_2_code="TD", - alpha_3_code="TCD", - continent="Africa", - name="Chad", - capital="N'Djamena", - ), - Country( - timezones=["Indian/Comoro"], - alpha_2_code="KM", - alpha_3_code="COM", - continent="Africa", - name="Comoros", - capital="Moroni", - ), - Country( - timezones=["Europe/Zagreb"], - alpha_2_code="HR", - alpha_3_code="HRV", - continent="Europe", - name="Croatia", - capital="Zagreb", - ), - Country( - timezones=["Asia/Dili"], - alpha_2_code="TL", - alpha_3_code="TLS", - continent="Asia", - name="East Timor", - capital="Dili", - ), - Country( - timezones=["America/El_Salvador"], - alpha_2_code="SV", - alpha_3_code="SLV", - continent="North America", - name="El Salvador", - capital="San Salvador", - ), - Country( - timezones=["Africa/Malabo"], - alpha_2_code="GQ", - alpha_3_code="GNQ", - continent="Africa", - name="Equatorial Guinea", - capital="Malabo", - ), - Country( - timezones=["America/Grenada"], - alpha_2_code="GD", - alpha_3_code="GRD", - continent="North America", - name="Grenada", - capital="St. George's", - ), - Country( - timezones=[ - "Asia/Almaty", - "Asia/Qyzylorda", - "Asia/Aqtobe", - "Asia/Aqtau", - "Asia/Oral", - ], - alpha_2_code="KZ", - alpha_3_code="KAZ", - continent="Asia", - name="Kazakhstan", - capital="Astana", - ), - Country( - timezones=["Asia/Vientiane"], - alpha_2_code="LA", - alpha_3_code="LAO", - continent="Asia", - name="Laos", - capital="Vientiane", - ), - Country( - timezones=["Pacific/Truk", "Pacific/Ponape", "Pacific/Kosrae"], - alpha_2_code="FM", - alpha_3_code="FSM", - continent="Oceania", - name="Federated States of Micronesia", - capital="Palikir", - ), - Country( - timezones=["Europe/Chisinau"], - alpha_2_code="MD", - alpha_3_code="MDA", - continent="Europe", - name="Moldova", - capital="Chi\xc5\x9fin\xc4\x83u", - ), - Country( - timezones=["Europe/Monaco"], - alpha_2_code="MC", - alpha_3_code="MCO", - continent="Europe", - name="Monaco", - capital="Monaco", - ), - Country( - timezones=["Europe/Podgorica"], - alpha_2_code="ME", - alpha_3_code="MNE", - continent="Europe", - name="Montenegro", - capital="Podgorica", - ), - Country( - timezones=["Africa/Casablanca"], - alpha_2_code="MA", - alpha_3_code="MAR", - continent="Africa", - name="Morocco", - capital="Rabat", - ), - Country( - timezones=["America/St_Kitts"], - alpha_2_code="KN", - alpha_3_code="KNA", - continent="North America", - name="Saint Kitts and Nevis", - capital="Basseterre", - ), - Country( - timezones=["America/St_Lucia"], - alpha_2_code="LC", - alpha_3_code="LCA", - continent="North America", - name="Saint Lucia", - capital="Castries", - ), - Country( - timezones=["America/St_Vincent"], - alpha_2_code="VC", - alpha_3_code="VCT", - continent="North America", - name="Saint Vincent and the Grenadines", - capital="Kingstown", - ), - Country( - timezones=["Pacific/Apia"], - alpha_2_code="WS", - alpha_3_code="WSM", - continent="Oceania", - name="Samoa", - capital="Apia", - ), - Country( - timezones=["Europe/Belgrade"], - alpha_2_code="RS", - alpha_3_code="SRB", - continent="Europe", - name="Serbia", - capital="Belgrade", - ), - Country( - timezones=["Africa/Johannesburg"], - alpha_2_code="ZA", - alpha_3_code="ZAF", - continent="Africa", - name="South Africa", - capital="Pretoria", - ), - Country( - timezones=["Europe/Madrid", "Africa/Ceuta", "Atlantic/Canary"], - alpha_2_code="ES", - alpha_3_code="ESP", - continent="Europe", - name="Spain", - capital="Madrid", - ), - Country( - timezones=["Asia/Colombo"], - alpha_2_code="LK", - alpha_3_code="LKA", - continent="Asia", - name="Sri Lanka", - capital="Sri Jayewardenepura Kotte", - ), - Country( - timezones=["Africa/Mbabane"], - alpha_2_code="SZ", - alpha_3_code="SWZ", - continent="Africa", - name="Swaziland", - capital="Mbabane", - ), - Country( - timezones=["Europe/Zurich"], - alpha_2_code="CH", - alpha_3_code="CHE", - continent="Europe", - name="Switzerland", - capital="Bern", - ), - Country( - timezones=["Asia/Dubai"], - alpha_2_code="AE", - alpha_3_code="ARE", - continent="Asia", - name="United Arab Emirates", - capital="Abu Dhabi", - ), - Country( - timezones=["Europe/London"], - alpha_2_code="GB", - alpha_3_code="GBR", - continent="Europe", - name="United Kingdom", - capital="London", - ), - Country( - timezones=["Asia/Taipei"], - alpha_2_code="TW", - alpha_3_code="TWN", - continent="Asia", - name="Taiwan", - capital="Taipei", - ), - Country( - timezones=["Asia/Gaza", "Asia/Hebron"], - alpha_2_code="PS", - alpha_3_code="PSE", - continent="Asia", - name="Palestine", - capital="Ramallah", - ), - ] - - regex = re.compile(timedelta_pattern) - - def unix_time( - self, - end_datetime: Optional[DateParseType] = None, - start_datetime: Optional[DateParseType] = None, - ) -> float: - """ - Get a timestamp between January 1, 1970 and now, unless passed - explicit ``start_datetime`` or `end_datetime` values. - - On Windows, the decimal part is always 0. - - :param end_datetime: A ``DateParseType``. Defaults to the UNIX epoch - :param start_datetime: A ``DateParseType``. Defaults to the current date and time - - :sample: - """ - start_datetime = self._parse_start_datetime(start_datetime) - end_datetime = self._parse_end_datetime(end_datetime) - return float(self._rand_seconds(start_datetime, end_datetime)) - - def time_delta(self, end_datetime: Optional[DateParseType] = None) -> timedelta: - """ - Get a random timedelta object of duration between the current date and time and `end_datetime` - - :param end_datetime: A ``DateParseType``. Defaults to the current date and time - - :sample: - :sample: end_datetime='+30h' - """ - start_datetime = self._parse_start_datetime("now") - end_datetime = self._parse_end_datetime(end_datetime) - seconds = end_datetime - start_datetime - - ts = self._rand_seconds(*sorted([0, seconds])) - return timedelta(seconds=ts) - - def date_time( - self, - tzinfo: Optional[TzInfo] = None, - end_datetime: Optional[DateParseType] = None, - ) -> datetime: - """ - Get a datetime object for a date between January 1, 1970 and a specified end_datetime - - :param tzinfo: timezone, instance of datetime.tzinfo subclass - :param end_datetime: A ``DateParseType``. Defaults to the current date and time - - :sample: - """ - # NOTE: On windows, the lowest value you can get from windows is 86400 - # on the first day. Known python issue: - # https://bugs.python.org/issue30684 - return datetime(1970, 1, 1, tzinfo=tzinfo) + timedelta(seconds=self.unix_time(end_datetime=end_datetime)) - - def date_time_ad( - self, - tzinfo: Optional[TzInfo] = None, - end_datetime: Optional[DateParseType] = None, - start_datetime: Optional[DateParseType] = None, - ) -> datetime: - """ - Get a datetime object for a date between January 1, 0001 and now - - :param tzinfo: timezone, instance of datetime.tzinfo subclass - :param end_datetime: A ``DateParseType``. Defaults to the current date and time - :param start_datetime: A ``DateParseType``. Defaults to UNIX timestamp ``-62135596800``, - equivalent to 0001-01-01 00:00:00 UTC - - :sample: - """ - - # 1970-01-01 00:00:00 UTC minus 62135596800 seconds is - # 0001-01-01 00:00:00 UTC. Since _parse_end_datetime() is used - # elsewhere where a default value of 0 is expected, we can't - # simply change that class method to use this magic number as a - # default value when None is provided. - - start_time = -62135596800 if start_datetime is None else self._parse_start_datetime(start_datetime) - end_datetime = self._parse_end_datetime(end_datetime) - - ts = self._rand_seconds(start_time, end_datetime) - # NOTE: using datetime.fromtimestamp(ts) directly will raise - # a "ValueError: timestamp out of range for platform time_t" - # on some platforms due to system C functions; - # see http://stackoverflow.com/a/10588133/2315612 - # NOTE: On windows, the lowest value you can get from windows is 86400 - # on the first day. Known python issue: - # https://bugs.python.org/issue30684 - return datetime(1970, 1, 1, tzinfo=tzinfo) + timedelta(seconds=ts) - - def iso8601( - self, - tzinfo: Optional[TzInfo] = None, - end_datetime: Optional[DateParseType] = None, - sep: str = "T", - timespec: str = "auto", - ) -> str: - """ - Get an ISO 8601 string for a datetime between the UNIX epoch and now. - - :param tzinfo: timezone, instance of datetime.tzinfo subclass - :param end_datetime: A ``DateParseType``. Defaults to the current date and time - :param sep: separator between date and time, defaults to 'T' - :param timespec: format specifier for the time part, defaults to 'auto' - see datetime.isoformat() documentation - - :sample: - """ - return self.date_time(tzinfo, end_datetime=end_datetime).isoformat(sep, timespec) - - def date(self, pattern: str = "%Y-%m-%d", end_datetime: Optional[DateParseType] = None) -> str: - """ - Get a date string between January 1, 1970 and now. - - :param pattern: Format of the date (year-month-day by default) - :param end_datetime: A ``DateParseType``. Defaults to the current date and time - - :sample: - :sample: pattern='%m/%d/%Y' - :sample: end_datetime='+1w' - """ - return self.date_time(end_datetime=end_datetime).strftime(pattern) - - def date_object(self, end_datetime: Optional[datetime] = None) -> dtdate: - """ - Get a date object between January 1, 1970 and now - - :param end_datetime: A ``DateParseType``. Defaults to the current date and time - - :sample: - :sample: end_datetime='+1w' - """ - return self.date_time(end_datetime=end_datetime).date() - - def time(self, pattern: str = "%H:%M:%S", end_datetime: Optional[DateParseType] = None) -> str: - """ - Get a time string (24h format by default) - - :param pattern: format - :param end_datetime: A ``DateParseType``. Defaults to the current date and time - - :sample: - :sample: pattern='%I:%M %p' - """ - return self.date_time(end_datetime=end_datetime).time().strftime(pattern) - - def time_object(self, end_datetime: Optional[DateParseType] = None) -> dttime: - """ - Get a time object - - :param end_datetime: A ``DateParseType``. Defaults to the current date and time - - :sample: - :sample: end_datetime='+1h' - """ - return self.date_time(end_datetime=end_datetime).time() - - @classmethod - def _parse_start_datetime(cls, value: Optional[DateParseType]) -> int: - if value is None: - return 0 - - return cls._parse_date_time(value) - - @classmethod - def _parse_end_datetime(cls, value: Optional[DateParseType]) -> int: - if value is None: - return datetime_to_timestamp(datetime.now()) - - return cls._parse_date_time(value) - - @classmethod - def _parse_date_string(cls, value: str) -> Dict[str, float]: - parts = cls.regex.match(value) - if not parts: - raise ParseError(f"Can't parse date string `{value}`") - parts = parts.groupdict() - time_params: Dict[str, float] = {} - for name_, param_ in parts.items(): - if param_: - time_params[name_] = int(param_) - - if "years" in time_params: - if "days" not in time_params: - time_params["days"] = 0 - time_params["days"] += 365.24 * time_params.pop("years") - if "months" in time_params: - if "days" not in time_params: - time_params["days"] = 0 - time_params["days"] += 30.42 * time_params.pop("months") - - if not time_params: - raise ParseError(f"Can't parse date string `{value}`") - return time_params - - @classmethod - def _parse_timedelta(cls, value: Union[timedelta, str, float]) -> Union[float, int]: - if isinstance(value, timedelta): - return value.total_seconds() - if isinstance(value, str): - time_params = cls._parse_date_string(value) - return timedelta(**time_params).total_seconds() # type: ignore - if isinstance(value, (int, float)): - return value - raise ParseError(f"Invalid format for timedelta {value!r}") - - @classmethod - def _parse_date_time(cls, value: DateParseType, tzinfo: Optional[TzInfo] = None) -> int: - if isinstance(value, (datetime, dtdate)): - return datetime_to_timestamp(value) - now = datetime.now(tzinfo) - if isinstance(value, timedelta): - return datetime_to_timestamp(now + value) - if isinstance(value, str): - if value == "now": - return datetime_to_timestamp(datetime.now(tzinfo)) - time_params = cls._parse_date_string(value) - return datetime_to_timestamp(now + timedelta(**time_params)) # type: ignore - if isinstance(value, int): - return value - raise ParseError(f"Invalid format for date {value!r}") - - @classmethod - def _parse_date(cls, value: DateParseType) -> dtdate: - if isinstance(value, datetime): - return value.date() - elif isinstance(value, dtdate): - return value - today = dtdate.today() - if isinstance(value, timedelta): - return today + value - if isinstance(value, str): - if value in ("today", "now"): - return today - time_params = cls._parse_date_string(value) - return today + timedelta(**time_params) # type: ignore - if isinstance(value, int): - return today + timedelta(value) - raise ParseError(f"Invalid format for date {value!r}") - - def date_time_between( - self, - start_date: DateParseType = "-30y", - end_date: DateParseType = "now", - tzinfo: Optional[TzInfo] = None, - ) -> datetime: - """ - Get a datetime object based on a random date between two given dates. - Accepts date strings that can be recognized by strtotime(). - - :param start_date: A ``DateParseType``. Defaults to 30 years ago - :param end_date: A ``DateParseType``. Defaults to ``"now"`` - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - """ - start_date = self._parse_date_time(start_date, tzinfo=tzinfo) - end_date = self._parse_date_time(end_date, tzinfo=tzinfo) - if end_date - start_date <= 1: - ts = start_date + self.generator.random.random() - else: - ts = self._rand_seconds(start_date, end_date) - if tzinfo is None: - return datetime(1970, 1, 1, tzinfo=tzinfo) + timedelta(seconds=ts) - else: - return (datetime(1970, 1, 1, tzinfo=dttimezone.utc) + timedelta(seconds=ts)).astimezone(tzinfo) - - def date_between(self, start_date: DateParseType = "-30y", end_date: DateParseType = "today") -> dtdate: - """ - Get a Date object based on a random date between two given dates. - Accepts date strings that can be recognized by strtotime(). - - :param start_date: A ``DateParseType``. Defaults to 30 years ago - :param end_date: A ``DateParseType``. Defaults to ``"today"`` - - :sample: - :sample: start_date='-1w' - :sample: start_date="-1y", end_date="+1w" - """ - - start_date = self._parse_date(start_date) - end_date = self._parse_date(end_date) - return self.date_between_dates(date_start=start_date, date_end=end_date) - - def future_datetime(self, end_date: DateParseType = "+30d", tzinfo: Optional[TzInfo] = None) -> datetime: - """ - Get a datetime object based on a random date between 1 second form now - and a given date. - - :param end_date: A ``DateParseType``. Defaults to ``"+30d"`` - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - :sample: end_date='+1y' - """ - return self.date_time_between(start_date="+1s", end_date=end_date, tzinfo=tzinfo) - - def future_date(self, end_date: DateParseType = "+30d") -> dtdate: - """ - Get a Date object based on a random date between 1 day from now and a - given date. - - :param end_date: A ``DateParseType``. Defaults to ``"+30d"`` - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - :sample: end_date='+1y' - """ - return self.date_between(start_date="+1d", end_date=end_date) - - def past_datetime(self, start_date: DateParseType = "-30d", tzinfo: Optional[TzInfo] = None) -> datetime: - """ - Get a datetime object based on a random date between a given date and 1 - second ago. - - :param start_date: A ``DateParseType``. Defaults to ``"-30d"`` - :param tzinfo: timezone, instance of datetime.tzinfo subclass - :example: datetime('1999-02-02 11:42:52') - - :sample: - :sample: end_date='+1y' - """ - return self.date_time_between(start_date=start_date, end_date="-1s", tzinfo=tzinfo) - - def past_date(self, start_date: DateParseType = "-30d", tzinfo: Optional[TzInfo] = None) -> dtdate: - """ - Get a Date object based on a random date between a given date and 1 day - ago. - - :param start_date: A ``DateParseType``. Defaults to ``"-30d"`` - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - :sample: start_date='-1y' - """ - return self.date_between(start_date=start_date, end_date="-1d") - - def date_time_between_dates( - self, - datetime_start: Optional[DateParseType] = None, - datetime_end: Optional[DateParseType] = None, - tzinfo: Optional[TzInfo] = None, - ) -> datetime: - """ - Get a random datetime between the two given datetimes. - - :param datetime_start: A ``DateParseType``. Defaults to the UNIX epoch - :param datetime_end: A ``DateParseType``. Defaults to the current date and time - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - :sample: datetime_start='-30y', datetime_end='now' - :sample: datetime_start='now', datetime_end='+1y' - - """ - datetime_start_ = ( - datetime_to_timestamp(datetime.now(tzinfo)) - if datetime_start is None - else self._parse_date_time(datetime_start) - ) - datetime_end_ = ( - datetime_to_timestamp(datetime.now(tzinfo)) if datetime_end is None else self._parse_date_time(datetime_end) - ) - - timestamp = self._rand_seconds(datetime_start_, datetime_end_) - try: - if tzinfo is None: - pick = convert_timestamp_to_datetime(timestamp, _get_local_timezone()) - try: - pick = pick.astimezone(dttimezone.utc).replace(tzinfo=None) - except OSError: - pass - else: - pick = datetime.fromtimestamp(timestamp, tzinfo) - except OverflowError: - raise OverflowError( - "You specified an end date with a timestamp bigger than the maximum allowed on this" - " system. Please specify an earlier date.", - ) - return pick - - def date_between_dates( - self, - date_start: Optional[DateParseType] = None, - date_end: Optional[DateParseType] = None, - ) -> dtdate: - """ - Get a random date between the two given dates. - - :param date_start: A ``DateParseType``. Defaults to the UNIX epoch - :param date_end: A ``DateParseType``. Defaults to the current date and time - - :sample: - """ - return self.date_time_between_dates(date_start, date_end).date() - - def date_time_this_century( - self, - before_now: bool = True, - after_now: bool = False, - tzinfo: Optional[TzInfo] = None, - ) -> datetime: - """ - Gets a datetime object for the current century. - - :param before_now: include days in current century before today. Defaults to True - :param after_now: include days in current century after today. Defaults to False - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - :sample: before_now=False, after_now=True - """ - now = datetime.now(tzinfo) - this_century_start = datetime(now.year - (now.year % 100), 1, 1, tzinfo=tzinfo) - next_century_start = datetime(min(this_century_start.year + 100, MAXYEAR), 1, 1, tzinfo=tzinfo) - - if before_now and after_now: - return self.date_time_between_dates(this_century_start, next_century_start, tzinfo) - elif not before_now and after_now: - return self.date_time_between_dates(now, next_century_start, tzinfo) - elif not after_now and before_now: - return self.date_time_between_dates(this_century_start, now, tzinfo) - else: - return now - - def date_time_this_decade( - self, - before_now: bool = True, - after_now: bool = False, - tzinfo: Optional[TzInfo] = None, - ) -> datetime: - """ - Gets a datetime object for the decade year. - - :param before_now: include days in current decade before today. Defaults to True - :param after_now: include days in current decade after today. Defaults to False - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - :sample: before_now=False, after_now=True - """ - now = datetime.now(tzinfo) - this_decade_start = datetime(now.year - (now.year % 10), 1, 1, tzinfo=tzinfo) - next_decade_start = datetime(min(this_decade_start.year + 10, MAXYEAR), 1, 1, tzinfo=tzinfo) - - if before_now and after_now: - return self.date_time_between_dates(this_decade_start, next_decade_start, tzinfo) - elif not before_now and after_now: - return self.date_time_between_dates(now, next_decade_start, tzinfo) - elif not after_now and before_now: - return self.date_time_between_dates(this_decade_start, now, tzinfo) - else: - return now - - def date_time_this_year( - self, - before_now: bool = True, - after_now: bool = False, - tzinfo: Optional[TzInfo] = None, - ) -> datetime: - """ - Gets a datetime object for the current year. - - :param before_now: include days in current year before today. Defaults to True - :param after_now: include days in current year after today. Defaults to False - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - :sample: before_now=False, after_now=True - """ - now = datetime.now(tzinfo) - this_year_start = now.replace(month=1, day=1, hour=0, minute=0, second=0, microsecond=0) - next_year_start = datetime(now.year + 1, 1, 1, tzinfo=tzinfo) - - if before_now and after_now: - return self.date_time_between_dates(this_year_start, next_year_start, tzinfo) - elif not before_now and after_now: - return self.date_time_between_dates(now, next_year_start, tzinfo) - elif not after_now and before_now: - return self.date_time_between_dates(this_year_start, now, tzinfo) - else: - return now - - def date_time_this_month( - self, - before_now: bool = True, - after_now: bool = False, - tzinfo: Optional[TzInfo] = None, - ) -> datetime: - """ - Gets a datetime object for the current month. - - :param before_now: include days in current month before today. Defaults to True - :param after_now: include days in current month after today. Defaults to False - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - :sample: before_now=False, after_now=True - """ - now = datetime.now(tzinfo) - this_month_start = now.replace(day=1, hour=0, minute=0, second=0, microsecond=0) - next_month_start = _get_next_month_start(this_month_start) - - if before_now and after_now: - return self.date_time_between_dates(this_month_start, next_month_start, tzinfo) - elif not before_now and after_now: - return self.date_time_between_dates(now, next_month_start, tzinfo) - elif not after_now and before_now: - return self.date_time_between_dates(this_month_start, now, tzinfo) - else: - return now - - def date_this_century(self, before_today: bool = True, after_today: bool = False) -> dtdate: - """ - Gets a Date object for the current century. - - :param before_today: include days in current century before today. Defaults to True - :param after_today: include days in current century after today. Defaults to False - - :sample: - :sample: before_today=False, after_today=True - """ - today = dtdate.today() - this_century_start = dtdate(today.year - (today.year % 100), 1, 1) - next_century_start = dtdate(this_century_start.year + 100, 1, 1) - - if before_today and after_today: - return self.date_between_dates(this_century_start, next_century_start) - elif not before_today and after_today: - return self.date_between_dates(today, next_century_start) - elif not after_today and before_today: - return self.date_between_dates(this_century_start, today) - else: - return today - - def date_this_decade(self, before_today: bool = True, after_today: bool = False) -> dtdate: - """ - Gets a Date object for the decade year. - - :param before_today: include days in current decade before today. Defaults to True - :param after_today: include days in current decade after today. Defaults to False - - :sample: - :sample: before_today=False, after_today=True - """ - today = dtdate.today() - this_decade_start = dtdate(today.year - (today.year % 10), 1, 1) - next_decade_start = dtdate(this_decade_start.year + 10, 1, 1) - - if before_today and after_today: - return self.date_between_dates(this_decade_start, next_decade_start) - elif not before_today and after_today: - return self.date_between_dates(today, next_decade_start) - elif not after_today and before_today: - return self.date_between_dates(this_decade_start, today) - else: - return today - - def date_this_year(self, before_today: bool = True, after_today: bool = False) -> dtdate: - """ - Gets a Date object for the current year. - - :param before_today: include days in current year before today. Defaults to True - :param after_today: include days in current year after today. Defaults to False - - :sample: - :sample: before_today=False, after_today=True - """ - today = dtdate.today() - this_year_start = today.replace(month=1, day=1) - next_year_start = dtdate(today.year + 1, 1, 1) - - if before_today and after_today: - return self.date_between_dates(this_year_start, next_year_start) - elif not before_today and after_today: - return self.date_between_dates(today, next_year_start) - elif not after_today and before_today: - return self.date_between_dates(this_year_start, today) - else: - return today - - def date_this_month(self, before_today: bool = True, after_today: bool = False) -> dtdate: - """ - Gets a Date object for the current month. - - :param before_today: include days in current month before today. Defaults to True - :param after_today: include days in current month after today. Defaults to False - - :sample: - :sample: before_today=False, after_today=True - """ - today = dtdate.today() - this_month_start = today.replace(day=1) - next_month_start = _get_next_month_start(this_month_start) - - if before_today and after_today: - return self.date_between_dates(this_month_start, next_month_start) - elif not before_today and after_today: - return self.date_between_dates(today, next_month_start) - elif not after_today and before_today: - return self.date_between_dates(this_month_start, today) - else: - return today - - def time_series( - self, - start_date: DateParseType = "-30d", - end_date: DateParseType = "now", - precision: Optional[float] = None, - distrib: Optional[Callable[[datetime], float]] = None, - tzinfo: Optional[TzInfo] = None, - ) -> Iterator[Tuple[datetime, Any]]: - """ - Returns a generator yielding tuples of ``(, )``. - - The data points will start at ``start_date``, and be at every time interval specified by - ``precision``. - - :param start_date: A ``DateParseType``. Defaults to ``"-30d"`` - :param end_date: A ``DateParseType``. Defaults to ``"now"`` - :param precision: A float representing the time interval between data points. - Defaults to 1/30th of the time - :param distrib: A callable that accepts a datetime object and returns a value. - Defaults to a uniform distribution - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - """ - start_date_ = self._parse_date_time(start_date, tzinfo=tzinfo) - end_date_ = self._parse_date_time(end_date, tzinfo=tzinfo) - - if end_date_ < start_date_: - raise ValueError("`end_date` must be greater than `start_date`.") - - precision_ = self._parse_timedelta((end_date_ - start_date_) / 30 if precision is None else precision) - if distrib is None: - - def distrib(dt): - return self.generator.random.uniform(0, precision_) # noqa - - if not callable(distrib): - raise ValueError(f"`distrib` must be a callable. Got {distrib} instead.") - - datapoint: Union[float, int] = start_date_ - while datapoint < end_date_: - dt = timestamp_to_datetime(datapoint, tzinfo) - datapoint += precision_ - yield (dt, distrib(dt)) - - def am_pm(self) -> str: - """ - :sample: - """ - return self.date("%p") - - def day_of_month(self) -> str: - """ - :sample: - """ - return self.date("%d") - - def day_of_week(self) -> str: - """ - :sample: - """ - return self.date("%A") - - def month(self) -> str: - """ - :sample: - """ - return self.date("%m") - - def month_name(self) -> str: - """ - :sample: - """ - return self.date("%B") - - def year(self) -> str: - """ - :sample: - """ - return self.date("%Y") - - def century(self) -> str: - """ - :sample: - """ - return self.random_element(self.centuries) - - def timezone(self) -> str: - """ - :sample: - """ - return self.generator.random.choice(self.random_element(self.countries).timezones) # type: ignore - - def pytimezone(self, *args: Any, **kwargs: Any) -> Optional[TzInfo]: - """ - Generate a random timezone (see ``faker.timezone`` for any args) - and return a Python object usable as a ``tzinfo`` for ``datetime`` - or other fakers. - - :sample: - """ - try: - return zoneinfo.ZoneInfo(self.timezone(*args, **kwargs)) # type: ignore - except zoneinfo.ZoneInfoNotFoundError as exc: - msg = ( - f"Timezone data not found: {exc}. " - "The 'tzdata' package provides timezone database files needed by Python's zoneinfo module. " - "While most systems have these files built-in, some minimal environments may not. " - f"Install faker with tzdata support: pip install 'faker[tzdata]'" - ) - raise ImportError(msg) from exc - - def date_of_birth( - self, - tzinfo: Optional[TzInfo] = None, - minimum_age: int = 0, - maximum_age: int = 115, - ) -> dtdate: - """ - Generate a random date of birth represented as a Date object, - constrained by optional miminimum_age and maximum_age - parameters. - - :param tzinfo: Defaults to None. - :param minimum_age: Defaults to ``0``. - :param maximum_age: Defaults to ``115``. - - :sample: - :sample: minimum_age=30, maximum_age=50 - """ - - if not isinstance(minimum_age, int): - raise TypeError("minimum_age must be an integer.") - - if not isinstance(maximum_age, int): - raise TypeError("maximum_age must be an integer.") - - if maximum_age < 0: - raise ValueError("maximum_age must be greater than or equal to zero.") - - if minimum_age < 0: - raise ValueError("minimum_age must be greater than or equal to zero.") - - if minimum_age > maximum_age: - raise ValueError("minimum_age must be less than or equal to maximum_age.") - - # In order to return the full range of possible dates of birth, add one - # year to the potential age cap and subtract one day if we land on the - # boundary. - - now = datetime.now(tzinfo).date() - start_date = change_year(now, -(maximum_age + 1)) - end_date = change_year(now, -minimum_age) - - dob = self.date_time_ad(tzinfo=tzinfo, start_datetime=start_date, end_datetime=end_date).date() - - return dob if dob != start_date else dob + timedelta(days=1) - - -def convert_timestamp_to_datetime(timestamp: Union[int, float], tzinfo: TzInfo) -> datetime: - import datetime as dt - - if timestamp >= 0: - return dt.datetime.fromtimestamp(timestamp, tzinfo) - else: - return dt.datetime(1970, 1, 1, tzinfo=tzinfo) + dt.timedelta(seconds=int(timestamp)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0213694..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_AA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_AA/__init__.py deleted file mode 100644 index 2dbcc77..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_AA/__init__.py +++ /dev/null @@ -1,1765 +0,0 @@ -from faker.typing import Country - -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "السبت", - "1": "الأحد", - "2": "الإثنين", - "3": "الثلاثاء", - "4": "الأربعاء", - "5": "الخميس", - "6": "الجمعة", - } - - MONTH_NAMES = { - "01": "كانون الثّاني", - "02": "شباط", - "03": "آذار", - "04": "نيسان", - "05": "أيّار", - "06": "حزيران", - "07": "تمّوز", - "08": "آب", - "09": "أيلول", - "10": "تشرين الأول", - "11": "تشرين الثاني", - "12": "كانون الأول", - } - - centuries = [ - "الأول", - "الثاني", - "الثالث", - "الرابع", - "الخامس", - "السادس", - "السابع", - "الثامن", - "التاسع", - "العاشر", - "الحادي عشر", - "الثاني عشر", - "الثالث عشر", - "الرابع عشر", - "الخامس عشر", - "السادس عشر", - "الثامن عشر", - "التاسع عشر", - "العشرين", - "الحادي والعشرين", - "الثاني والعشرين", - ] - - countries = [ - Country( - timezones=["أوروب/أندورا"], - alpha_2_code="AD", - alpha_3_code="AND", - continent="أوروبا", - name="أندورا", - capital="أندورا لا فيلا", - ), - Country( - timezones=["آسيا/كابل"], - alpha_2_code="AF", - alpha_3_code="AFG", - continent="آسيا", - name="أفغانستان", - capital="كابل", - ), - Country( - timezones=["أمريكا/أنتيغوا"], - alpha_2_code="AG", - alpha_3_code="ATG", - continent="أمريكا الشمالية", - name="أنتيغوا وباربودا", - capital="سانت جونز", - ), - Country( - timezones=["أوروبا/تيرانا"], - alpha_2_code="AL", - alpha_3_code="ALB", - continent="أوروبا", - name="ألبانيا", - capital="تيرانا", - ), - Country( - timezones=["آسيا/يريفان"], - alpha_2_code="AM", - alpha_3_code="ARM", - continent="آسيا", - name="أرمينيا", - capital="يريفان", - ), - Country( - timezones=["إفريقيا/لواندا"], - alpha_2_code="AO", - alpha_3_code="AGO", - continent="إفريقيا", - name="أنغولا", - capital="لواندا", - ), - Country( - timezones=[ - "أمريكا/الأرجنتين/بوينس_آيرس", - "أمريكا/الأرجنتين/Cordoba", - "أمريكا/الأرجنتين/خوخوي", - "أمريكا/الأرجنتين/توكومان", - "أمريكا/الأرجنتين/كاتاماركا", - "أمريكا/الأرجنتين/لا_ريوخا", - "أمريكا/الأرجنتين/سان_خوان", - "أمريكا/الأرجنتين/مندوزا", - "أمريكا/الأرجنتين/ريو_غاليغوس", - "أمريكا/الأرجنتين/أوشوايا", - ], - alpha_2_code="AR", - alpha_3_code="ARG", - continent="أمريكا الجنوبية", - name="الأرجنتين", - capital="بوينس آيرس", - ), - Country( - timezones=["أوروبا/النمسا"], - alpha_2_code="AT", - alpha_3_code="AUT", - continent="أوروبا", - name="النمسا", - capital="فيينا", - ), - Country( - timezones=[ - "أستراليا/لورد_هاو", - "أستراليا/هوبارت", - "أستراليا/كري", - "أستراليا/ملبورن", - "أستراليا/سدني", - "أستراليا/بروكن_هل", - "أستراليا/بريزبن", - "أستراليا/ليندمان", - "أستراليا/أديلايد", - "أستراليا/داروين", - "أستراليا/برث", - ], - alpha_2_code="AU", - alpha_3_code="AUS", - continent="أوقيانوسيا", - name="أستراليا", - capital="كانبرا", - ), - Country( - timezones=["آسيا/باكو"], - alpha_2_code="AZ", - alpha_3_code="AZE", - continent="آسيا", - name="أذربيجان", - capital="باكو", - ), - Country( - timezones=["أمريكا/باربادوس"], - alpha_2_code="BB", - alpha_3_code="BRB", - continent="أمريكا الشمالية", - name="باربادوس", - capital="بريدج تاون", - ), - Country( - timezones=["آسيا/دكا"], - alpha_2_code="BD", - alpha_3_code="BGD", - continent="آسيا", - name="بنغلادش", - capital="دكا", - ), - Country( - timezones=["أوروبا/بروكسل"], - alpha_2_code="BE", - alpha_3_code="BEL", - continent="أوروبا", - name="بلجيكا", - capital="بروكسل", - ), - Country( - timezones=["إفريقيا/واغادوغو"], - alpha_2_code="BF", - alpha_3_code="BFA", - continent="إفريقيا", - name="بوركينا فاسو", - capital="واغادوغو", - ), - Country( - timezones=["أوروبا/صوفيا"], - alpha_2_code="BG", - alpha_3_code="BGR", - continent="أوروبا", - name="بلغاريا", - capital="صوفيا", - ), - Country( - timezones=["آسيا/البحرين"], - alpha_2_code="BH", - alpha_3_code="BHR", - continent="آسيا", - name="البحرين", - capital="المنامة", - ), - Country( - timezones=["إفريقيا/بوجمبورا"], - alpha_2_code="BI", - alpha_3_code="BDI", - continent="إفريقيا", - name="بوروندي", - capital="بوجمبورا", - ), - Country( - timezones=["إفريقيا/بورتو نوفو"], - alpha_2_code="BJ", - alpha_3_code="BEN", - continent="إفريقيا", - name="بنين", - capital="بورتو نوفو", - ), - Country( - timezones=["آسيا/بروناي"], - alpha_2_code="BN", - alpha_3_code="BRN", - continent="آسيا", - name="اتحاد بروناي (دار السلام)", - capital="بندر سري بكاوان", - ), - Country( - timezones=["أمريكا/لاباز"], - alpha_2_code="BO", - alpha_3_code="BOL", - continent="أمريكا الجنوبية", - name="بوليفيا", - capital="سوكري", - ), - Country( - timezones=[ - "أمريكا/نورونها", - "أمريكا/بليم", - "أمريكا/فورتاليزا", - "أمريكا/ريسيفي", - "أمريكا/أراغوينا", - "أمريكا/ماسايو", - "أمريكا/باهيا", - "أمريكا/ساو_باولو", - "أمريكا/كامبو_غراندي", - "أمريكا/كويابا", - "أمريكا/بورتو_فاليو", - "أمريكا/بوا_فيستا", - "أمريكا/ماناوس", - "أمريكا/إيرونيبي", - "أمريكا/ريو_برانكو", - ], - alpha_2_code="BR", - alpha_3_code="BRA", - continent="أمريكا الجنوبية", - name="البرازيل", - capital="برازيليا", - ), - Country( - timezones=["أمريكا/ناساو"], - alpha_2_code="BS", - alpha_3_code="BHS", - continent="أمريكا الشمالية", - name="باهاماس", - capital="ناساو", - ), - Country( - timezones=["آسيا/تيمفو"], - alpha_2_code="BT", - alpha_3_code="BTN", - continent="آسيا", - name="بوتان", - capital="تيمفو", - ), - Country( - timezones=["إفريقيا/غابورون"], - alpha_2_code="BW", - alpha_3_code="BWA", - continent="إفريقيا", - name="بوتسوانا", - capital="غابورون", - ), - Country( - timezones=["أوروبا/مينسك"], - alpha_2_code="BY", - alpha_3_code="BLR", - continent="أوروبا", - name="روسيا البيضاء", - capital="مينسك", - ), - Country( - timezones=["أمريكا/بليز"], - alpha_2_code="BZ", - alpha_3_code="BLZ", - continent="أمريكا الشمالية", - name="بليز", - capital="بلموبان", - ), - Country( - timezones=[ - "أمريكا/سينت_جونز", - "أمريكا/هاليفاكس", - "أمريكا/جليس_باي", - "أمريكا/مونكتون", - "أمريكا/جووس_باي", - "أمريكا/بلانك_سابلون", - "أمريكا/مونتريال", - "أمريكا/تورونتو", - "أمريكا/نيبيغون", - "أمريكا/ثاندر_باي", - "أمريكا/بانغيرتانغ", - "أمريكا/إيكواليوت", - "أمريكا/أتيكوكان", - "أمريكا/رانكن_إنلت", - "أمريكا/وينيبيغ", - "أمريكا/رايني_ريفر", - "أمريكا/كامبريدج_باي", - "أمريكا/ريجينا", - "أمريكا/سويفت_كارنت", - "أمريكا/إدمونتون", - "أمريكا/يلو_نايف", - "أمريكا/إنوفك", - "أمريكا/دوسن_كريك", - "أمريكا/فانكوفر", - "أمريكا/وايت_هورس", - "أمريكا/داوسون", - ], - alpha_2_code="CA", - alpha_3_code="CAN", - continent="أمريكا الشمالية", - name="كندا", - capital="أوتاوا", - ), - Country( - timezones=["إفريقيا/كينشاسا", "إفريقيا/لوبومباشي"], - alpha_2_code="CD", - alpha_3_code="COD", - continent="إفريقيا", - name="جمهورية الكونغو الديمقراطية", - capital="كينشاسا", - ), - Country( - timezones=["إفريقيا/برازافيل"], - alpha_2_code="CG", - alpha_3_code="COG", - continent="إفريقيا", - name="جمهورية الكونغو", - capital="برازافيل", - ), - Country( - timezones=["إفريقيا/أبيدجان"], - alpha_2_code="CI", - alpha_3_code="CIV", - continent="إفريقيا", - name="ساحل العاج", - capital="ياموسوكرو", - ), - Country( - timezones=["أمريكا/سانتياغو", "المحيط_الهاديء/جزيرة_القيامة"], - alpha_2_code="CL", - alpha_3_code="CHL", - continent="أمريكا الجنوبية", - name="تشيلي", - capital="سانتياغو", - ), - Country( - timezones=["إفريقيا/دوالا"], - alpha_2_code="CM", - alpha_3_code="CMR", - continent="إفريقيا", - name="الكاميرون", - capital="ياوندي", - ), - Country( - timezones=[ - "آسيا/شانغهاي", - "آسيا/هاربن", - "آسيا/تشونغتشينغ", - "آسيا/أورومتشي", - "آسيا/كاشغر", - ], - alpha_2_code="CN", - alpha_3_code="CHN", - continent="آسيا", - name="جمهورية الصين الشعبية", - capital="بكين", - ), - Country( - timezones=["أمريكا/بوغوتا"], - alpha_2_code="CO", - alpha_3_code="COL", - continent="أمريكا الجنوبية", - name="كولومبيا", - capital="بوغوتا", - ), - Country( - timezones=["أمريكا/كوستاريكا"], - alpha_2_code="CR", - alpha_3_code="CRI", - continent="أمريكا الشمالية", - name="كوستاريكا", - capital="سان خوسيه", - ), - Country( - timezones=["أمريكا/هافانا"], - alpha_2_code="CU", - alpha_3_code="CUB", - continent="أمريكا الشمالية", - name="كوبا", - capital="هافانا", - ), - Country( - timezones=["الأطلنطي/الرأس_الأخضر"], - alpha_2_code="CV", - alpha_3_code="CPV", - continent="إفريقيا", - name="جمهورية الرأس الأخضر", - capital="برايا", - ), - Country( - timezones=["آسيا/نيقوسيا"], - alpha_2_code="CY", - alpha_3_code="CYP", - continent="آسيا", - name="قبرص", - capital="نيقوسيا", - ), - Country( - timezones=["أوروبا/براغ"], - alpha_2_code="CZ", - alpha_3_code="CZE", - continent="أوروبا", - name="جمهورية التشيك", - capital="براغ", - ), - Country( - timezones=["أوروبا/برلين"], - alpha_2_code="DE", - alpha_3_code="DEU", - continent="أوروبا", - name="ألمانيا", - capital="برلين", - ), - Country( - timezones=["إفريقيا/جيبوتي"], - alpha_2_code="DJ", - alpha_3_code="DJI", - continent="إفريقيا", - name="جيبوتي", - capital="جيبوتي", - ), - Country( - timezones=["أوروبا/كوبنهاغن"], - alpha_2_code="DK", - alpha_3_code="DNK", - continent="أوروبا", - name="الدنمارك", - capital="كوبنهاغن", - ), - Country( - timezones=["أمريكا/دومينيكا"], - alpha_2_code="DM", - alpha_3_code="DMA", - continent="أمريكا الشمالية", - name="دومينيكا", - capital="روسياو", - ), - Country( - timezones=["أمريكا/سانتو_دومينغو"], - alpha_2_code="DO", - alpha_3_code="DOM", - continent="أمريكا الشمالية", - name="جمهورية الدومينيكان", - capital="سانتو دومينغو", - ), - Country( - timezones=["أمريكا/غواياكيل", "المحيط_الهاديء/أرخبيل_غالاباغوس"], - alpha_2_code="EC", - alpha_3_code="ECU", - continent="أمريكا الجنوبية", - name="الإكوادور", - capital="كيتو", - ), - Country( - timezones=["أوروبا/تالين"], - alpha_2_code="EE", - alpha_3_code="EST", - continent="أوروبا", - name="إستونيا", - capital="تالين", - ), - Country( - timezones=["إفريقيا/القاهرة"], - alpha_2_code="EG", - alpha_3_code="EGY", - continent="إفريقيا", - name="مصر", - capital="القاهرة", - ), - Country( - timezones=["إفريقيا/أسمرة"], - alpha_2_code="ER", - alpha_3_code="ERI", - continent="إفريقيا", - name="إرتيريا", - capital="أسمرة", - ), - Country( - timezones=["إفريقيا/أديس أبابا"], - alpha_2_code="ET", - alpha_3_code="ETH", - continent="إفريقيا", - name="إثيوبيا", - capital="أديس أبابا", - ), - Country( - timezones=["أوروبا/هلسنكي"], - alpha_2_code="FI", - alpha_3_code="FIN", - continent="أوروبا", - name="فنلندا", - capital="هلسنكي", - ), - Country( - timezones=["المحيط_الهاديء/فيجي"], - alpha_2_code="FJ", - alpha_3_code="FJI", - continent="أوقيانوسيا", - name="فيجي", - capital="سوفا", - ), - Country( - timezones=["أوروبا/باريس"], - alpha_2_code="FR", - alpha_3_code="FRA", - continent="أوروبا", - name="فرنسا", - capital="باريس", - ), - Country( - timezones=["إفريقيا/ليبرفيل"], - alpha_2_code="GA", - alpha_3_code="GAB", - continent="إفريقيا", - name="الغابون", - capital="ليبرفيل", - ), - Country( - timezones=["آسيا/تبليسي"], - alpha_2_code="GE", - alpha_3_code="GEO", - continent="آسيا", - name="جورجيا", - capital="تبليسي", - ), - Country( - timezones=["إفريقيا/أكرا"], - alpha_2_code="GH", - alpha_3_code="GHA", - continent="إفريقيا", - name="غانا", - capital="أكرا", - ), - Country( - timezones=["إفريقيا/بانجول"], - alpha_2_code="GM", - alpha_3_code="GMB", - continent="إفريقيا", - name="غامبيا", - capital="بانجول", - ), - Country( - timezones=["إفريقيا/كوناكري"], - alpha_2_code="GN", - alpha_3_code="GIN", - continent="إفريقيا", - name="غينيا", - capital="كوناكري", - ), - Country( - timezones=["أوروبا/أثينا"], - alpha_2_code="GR", - alpha_3_code="GRC", - continent="أوروبا", - name="اليونان", - capital="أثينا", - ), - Country( - timezones=["أمريكا/غواتيمالا"], - alpha_2_code="GT", - alpha_3_code="GTM", - continent="أمريكا الشمالية", - name="غواتيمالا", - capital="غواتيمالا سيتي", - ), - Country( - timezones=["أمريكا/غواتيمالا"], - alpha_2_code="HT", - alpha_3_code="HTI", - continent="أمريكا الشمالية", - name="هايتي", - capital="بورت أو برانس", - ), - Country( - timezones=["إفريقيا/بيساو"], - alpha_2_code="GW", - alpha_3_code="GNB", - continent="إفريقيا", - name="غينيا بيساو", - capital="بيساو", - ), - Country( - timezones=["أمريكا/غيانا"], - alpha_2_code="GY", - alpha_3_code="GUY", - continent="أمريكا الجنوبية", - name="غيانا", - capital="جورج تاون", - ), - Country( - timezones=["أمريكا/تيجوسيجالبا"], - alpha_2_code="HN", - alpha_3_code="HND", - continent="أمريكا الشمالية", - name="هندوراس", - capital="تيجوسيجالبا", - ), - Country( - timezones=["أوروبا/بودابست"], - alpha_2_code="HU", - alpha_3_code="HUN", - continent="أوروبا", - name="هنغاريا", - capital="بودابست", - ), - Country( - timezones=[ - "آسيا/جاكرتا", - "آسيا/بونتياناك", - "آسيا/ماكاسار", - "آسيا/جايابورا", - ], - alpha_2_code="ID", - alpha_3_code="IDN", - continent="آسيا", - name="إندونسيا", - capital="جاكرتا", - ), - Country( - timezones=["أوروبا/دبلن"], - alpha_2_code="IE", - alpha_3_code="IRL", - continent="أوروبا", - name="إيرلندا", - capital="دبلن", - ), - Country( - timezones=["آسيا/القدس"], - alpha_2_code="IL", - alpha_3_code="ISR", - continent="آسيا", - name="فلسطين", - capital="القدس", - ), - Country( - timezones=["آسيا/كالكتا"], - alpha_2_code="IN", - alpha_3_code="IND", - continent="آسيا", - name="الهند", - capital="نيو دلهي", - ), - Country( - timezones=["آسيا/بغداد"], - alpha_2_code="IQ", - alpha_3_code="IRQ", - continent="آسيا", - name="العراق", - capital="بغداد", - ), - Country( - timezones=["آسيا/طهران"], - alpha_2_code="IR", - alpha_3_code="IRN", - continent="آسيا", - name="إيران", - capital="طهران", - ), - Country( - timezones=["الأطلنطي/ريكيافيك"], - alpha_2_code="IS", - alpha_3_code="ISL", - continent="أوروبا", - name="آيسلندا", - capital="ريكيافيك", - ), - Country( - timezones=["أوروبا/روما"], - alpha_2_code="IT", - alpha_3_code="ITA", - continent="أوروبا", - name="إيطاليا", - capital="روما", - ), - Country( - timezones=["أمريكا/جامايكا"], - alpha_2_code="JM", - alpha_3_code="JAM", - continent="أمريكا الشمالية", - name="جامايكا", - capital="كينغستون", - ), - Country( - timezones=["آسيا/عمّان"], - alpha_2_code="JO", - alpha_3_code="JOR", - continent="آسيا", - name="الأردن", - capital="عمّان", - ), - Country( - timezones=["آسيا/طوكيو"], - alpha_2_code="JP", - alpha_3_code="JPN", - continent="آسيا", - name="اليابان", - capital="طوكيو", - ), - Country( - timezones=["إفريقيا/نيروبي"], - alpha_2_code="KE", - alpha_3_code="KEN", - continent="إفريقيا", - name="كينيا", - capital="نيروبي", - ), - Country( - timezones=["آسيا/بشكيك"], - alpha_2_code="KG", - alpha_3_code="KGZ", - continent="آسيا", - name="قيرغيزستان", - capital="بشكيك", - ), - Country( - timezones=[ - "المحيط_الهاديء/تاراوا", - "المحيط_الهاديء/إيديربيري", - "المحيط_الهاديء/كريتيماتي", - ], - alpha_2_code="KI", - alpha_3_code="KIR", - continent="أوقيانوسيا", - name="كيريباتي", - capital="جنوب تاراوا", - ), - Country( - timezones=["آسيا/بيونغ_يانغ"], - alpha_2_code="KP", - alpha_3_code="PRK", - continent="آسيا", - name="كوريا الشمالية", - capital="بيونغ يانغ", - ), - Country( - timezones=["آسيا/سيؤول"], - alpha_2_code="KR", - alpha_3_code="KOR", - continent="آسيا", - name="؛كوريا الجنوبية", - capital="سيؤول", - ), - Country( - timezones=["آسيا/الكويت"], - alpha_2_code="KW", - alpha_3_code="KWT", - continent="آسيا", - name="الكويت", - capital="الكويت", - ), - Country( - timezones=["آسيا/بيروت"], - alpha_2_code="LB", - alpha_3_code="LBN", - continent="آسيا", - name="لبنان", - capital="بيروت", - ), - Country( - timezones=["أوروبا/فادوز"], - alpha_2_code="LI", - alpha_3_code="LIE", - continent="أوروبا", - name="ليختنشتاين", - capital="فادوز", - ), - Country( - timezones=["إفريقيا/مونروفيا"], - alpha_2_code="LR", - alpha_3_code="LBR", - continent="إفريقيا", - name="ليبيريا", - capital="مونروفيا", - ), - Country( - timezones=["إفريقيا/ماسيرو"], - alpha_2_code="LS", - alpha_3_code="LSO", - continent="إفريقيا", - name="ليسوتو", - capital="ماسيرو", - ), - Country( - timezones=["أوروبا/فيلنيوس"], - alpha_2_code="LT", - alpha_3_code="LTU", - continent="أوروبا", - name="ليتوانيا", - capital="فيلنيوس", - ), - Country( - timezones=["أوروبا/لوكسمبرغ"], - alpha_2_code="LU", - alpha_3_code="LUX", - continent="أوروبا", - name="لوكسمبرغ", - capital="لوكسمبرغ سيتي", - ), - Country( - timezones=["أوروبا/ربيغ"], - alpha_2_code="LV", - alpha_3_code="LVA", - continent="أوروبا", - name="لاتفيا", - capital="ربيغ", - ), - Country( - timezones=["إفريقيا/طرابلس"], - alpha_2_code="LY", - alpha_3_code="LBY", - continent="إفريقيا", - name="ليبيا", - capital="طرابلس", - ), - Country( - timezones=["الهندي/أنتاناناريفو"], - alpha_2_code="MG", - alpha_3_code="MDG", - continent="إفريقيا", - name="مدغشقر", - capital="أنتاناناريفو", - ), - Country( - timezones=["المحيط_الهاديء/ماجورو", "المحيط_الهاديء/كواجلين_أتول"], - alpha_2_code="MH", - alpha_3_code="MHL", - continent="أوقيانوسيا", - name="جزر مارشال", - capital="ماجورو", - ), - Country( - timezones=["أوروبا/سكوبيه"], - alpha_2_code="MK", - alpha_3_code="MKD", - continent="أوروبا", - name="جمهورية مقدونيا", - capital="سكوبيه", - ), - Country( - timezones=["إفريقيا/باماكو"], - alpha_2_code="ML", - alpha_3_code="MLI", - continent="إفريقيا", - name="مالي", - capital="باماكو", - ), - Country( - timezones=["آسيا/رانغون"], - alpha_2_code="MM", - alpha_3_code="MMR", - continent="آسيا", - name="ميانمار", - capital="نايبيداو", - ), - Country( - timezones=["آسيا/أولان_باتور", "آسيا/Hovd", "آسيا/تشويبالسان"], - alpha_2_code="MN", - alpha_3_code="MNG", - continent="آسيا", - name="مانغوليا", - capital="أولان باتور", - ), - Country( - timezones=["إفريقيا/نواكشط"], - alpha_2_code="MR", - alpha_3_code="MRT", - continent="إفريقيا", - name="موريتانيا", - capital="نواكشط", - ), - Country( - timezones=["أوروبا/مالطا"], - alpha_2_code="MT", - alpha_3_code="MLT", - continent="أوروبا", - name="مالطا", - capital="فاليتا", - ), - Country( - timezones=["الهندي/موريشيوس"], - alpha_2_code="MU", - alpha_3_code="MUS", - continent="إفريقيا", - name="موريشيوس", - capital="بور لويس", - ), - Country( - timezones=["الهندي/جزر_المالديف"], - alpha_2_code="MV", - alpha_3_code="MDV", - continent="آسيا", - name="جمهورية المالديف", - capital="ماليه", - ), - Country( - timezones=["إفريقيا/بلانتاير"], - alpha_2_code="MW", - alpha_3_code="MWI", - continent="إفريقيا", - name="ملاوي", - capital="ليلونغوي", - ), - Country( - timezones=[ - "أمريكا/ميكسيكو_سيتي", - "أمريكا/كانكون", - "أمريكا/ميرديا", - "أمريكا/مونتيري", - "أمريكا/مازاتلان", - "أمريكا/شيواوا", - "أمريكا/ارموسييو_سونورا", - "أمريكا/تيخوانا", - ], - alpha_2_code="MX", - alpha_3_code="MEX", - continent="أمريكا الشمالية", - name="المكسيك", - capital="ميكسيكو سيتي§", - ), - Country( - timezones=["آسيا/كوالا_لامبور", "آسيا/Kuching"], - alpha_2_code="MY", - alpha_3_code="MYS", - continent="آسيا", - name="ماليزيا", - capital="كوالا لامبور", - ), - Country( - timezones=["إفريقيا/مابوتو"], - alpha_2_code="MZ", - alpha_3_code="MOZ", - continent="إفريقيا", - name="موزمبيق", - capital="مابوتو", - ), - Country( - timezones=["إفريقيا/ويندهوك"], - alpha_2_code="NA", - alpha_3_code="NAM", - continent="إفريقيا", - name="ناميبيا", - capital="ويندهوك", - ), - Country( - timezones=["إفريقيا/نيامي"], - alpha_2_code="NE", - alpha_3_code="NER", - continent="إفريقيا", - name="النيجر", - capital="نيامي", - ), - Country( - timezones=["إفريقيا/لاغوس"], - alpha_2_code="NG", - alpha_3_code="NGA", - continent="إفريقيا", - name="نيجيريا", - capital="أبوجا", - ), - Country( - timezones=["أمريكا/ماناغوا"], - alpha_2_code="NI", - alpha_3_code="NIC", - continent="أمريكا الشمالية", - name="نيكاراغوا", - capital="ماناغوا", - ), - Country( - timezones=["أوروبا/أمستردام"], - alpha_2_code="NL", - alpha_3_code="NLD", - continent="أوروبا", - name="هولندا", - capital="أمستردام", - ), - Country( - timezones=["أوروبا/أوسلو"], - alpha_2_code="NO", - alpha_3_code="NOR", - continent="أوروبا", - name="النرويج", - capital="أوسلو", - ), - Country( - timezones=["آسيا/كاتماندو"], - alpha_2_code="NP", - alpha_3_code="NPL", - continent="آسيا", - name="النيبال", - capital="كاتماندو", - ), - Country( - timezones=["المحيط_الهاديء/ناورو"], - alpha_2_code="NR", - alpha_3_code="NRU", - continent="أوقيانوسيا", - name="ناورو", - capital="يارين", - ), - Country( - timezones=["المحيط_الهاديء/أوكلاند", "المحيط_الهاديء/تشاتهام"], - alpha_2_code="NZ", - alpha_3_code="NZL", - continent="أوقيانوسيا", - name="نيوزيلاندا", - capital="ويلينغتون", - ), - Country( - timezones=["آسيا/مسقط"], - alpha_2_code="OM", - alpha_3_code="OMN", - continent="آسيا", - name="عمان", - capital="مسقط", - ), - Country( - timezones=["أمريكا/بنما"], - alpha_2_code="PA", - alpha_3_code="PAN", - continent="أمريكا الشمالية", - name="بنما", - capital="بنما", - ), - Country( - timezones=["أمريكا/ليما"], - alpha_2_code="PE", - alpha_3_code="PER", - continent="أمريكا الجنوبية", - name="البيرو", - capital="ليما", - ), - Country( - timezones=["المحيط_الهاديء/بورت_مورسبي"], - alpha_2_code="PG", - alpha_3_code="PNG", - continent="أوقيانوسيا", - name="بابوا غينيا الجديدة", - capital="بورت مورسبي", - ), - Country( - timezones=["آسيا/مانيلا"], - alpha_2_code="PH", - alpha_3_code="PHL", - continent="آسيا", - name="الفيليبين", - capital="مانيلا", - ), - Country( - timezones=["آسيا/كاراتشي"], - alpha_2_code="PK", - alpha_3_code="PAK", - continent="آسيا", - name="باكستان", - capital="إسلام أباد", - ), - Country( - timezones=["أوروبا/وارسو"], - alpha_2_code="PL", - alpha_3_code="POL", - continent="أوروبا", - name="بولندا", - capital="وارسو", - ), - Country( - timezones=["أوروبا/لشبونة", "الأطلنطي/ماديرا", "الأطلنطي/الأزور"], - alpha_2_code="PT", - alpha_3_code="PRT", - continent="أوروبا", - name="البرتغال", - capital="لشبونة", - ), - Country( - timezones=["المحيط_الهاديء/بالاو"], - alpha_2_code="PW", - alpha_3_code="PLW", - continent="أوقيانوسيا", - name="بالاو", - capital="نجيرولمد", - ), - Country( - timezones=["أمريكا/أسونسيون"], - alpha_2_code="PY", - alpha_3_code="PRY", - continent="أمريكا الجنوبية", - name="بابرغوي", - capital="أسونسيون", - ), - Country( - timezones=["آسيا/قطر"], - alpha_2_code="QA", - alpha_3_code="QAT", - continent="آسيا", - name="قطر", - capital="الدوحة", - ), - Country( - timezones=["أوروبا/بوخارست"], - alpha_2_code="RO", - alpha_3_code="ROU", - continent="أوروبا", - name="رومانيا", - capital="بوخارست", - ), - Country( - timezones=[ - "أوروبا/كالينينغراد", - "أوروبا/موسكو", - "أوروبا/Volgograd", - "أوروبا/سمارة", - "آسيا/يكاترينبورغ", - "آسيا/أومسك", - "آسيا/نوفوسيبيرسك", - "آسيا/كراسنوياسك", - "آسيا/إروتسك", - "آسيا/ياكوتسك", - "آسيا/فالديفوستوك", - "آسيا/ساخالن", - "آسيا/ماغادان", - "آسيا/كامشتكا", - "آسيا/أنادير", - ], - alpha_2_code="RU", - alpha_3_code="RUS", - continent="أوروبا", - name="روسيا", - capital="موسكو", - ), - Country( - timezones=["إفريقيا/كيغالي"], - alpha_2_code="RW", - alpha_3_code="RWA", - continent="إفريقيا", - name="رواندا", - capital="كيغالي", - ), - Country( - timezones=["آسيا/الرياض"], - alpha_2_code="SA", - alpha_3_code="SAU", - continent="آسيا", - name="المملكة العربية السعودية", - capital="الرياض", - ), - Country( - timezones=["المحيط_الهاديء/غوادالكانال"], - alpha_2_code="SB", - alpha_3_code="SLB", - continent="أوقيانوسيا", - name="جزر سولمون", - capital="هونيارا", - ), - Country( - timezones=["الهندي/ماهي"], - alpha_2_code="SC", - alpha_3_code="SYC", - continent="إفريقيا", - name="سيشل", - capital="فيكتوريا", - ), - Country( - timezones=["إفريقيا/الخرطوم"], - alpha_2_code="SD", - alpha_3_code="SDN", - continent="إفريقيا", - name="السودان", - capital="الخرطوم", - ), - Country( - timezones=["أوروبا/ستوكهولم"], - alpha_2_code="SE", - alpha_3_code="SWE", - continent="أوروبا", - name="السويد", - capital="ستوكهولم", - ), - Country( - timezones=["آسيا/سنغافورة"], - alpha_2_code="SG", - alpha_3_code="SGP", - continent="آسيا", - name="سنغافورة", - capital="سنغافورة", - ), - Country( - timezones=["أوروبا/ليوبليانا"], - alpha_2_code="SI", - alpha_3_code="SVN", - continent="أوروبا", - name="سلوفانيا", - capital="ليوبليانا", - ), - Country( - timezones=["أوروبا/براتيسلافا"], - alpha_2_code="SK", - alpha_3_code="SVK", - continent="أوروبا", - name="سلوفاكيا", - capital="براتيسلافا", - ), - Country( - timezones=["إفريقيا/فريتاون"], - alpha_2_code="SL", - alpha_3_code="SLE", - continent="إفريقيا", - name="سيراليون", - capital="فريتاون", - ), - Country( - timezones=["أوروبا/سان_مارينو"], - alpha_2_code="SM", - alpha_3_code="SMR", - continent="أوروبا", - name="جمهورية سان مارينو", - capital="سان مارينو", - ), - Country( - timezones=["إفريقيا/داكار"], - alpha_2_code="SN", - alpha_3_code="SEN", - continent="إفريقيا", - name="السنغال", - capital="داكار", - ), - Country( - timezones=["إفريقيا/مقديشو"], - alpha_2_code="SO", - alpha_3_code="SOM", - continent="إفريقيا", - name="الصومال", - capital="مقديشو", - ), - Country( - timezones=["أمريكا/باراماريبو"], - alpha_2_code="SR", - alpha_3_code="SUR", - continent="أمريكا الجنوبية", - name="Suriname", - capital="باراماريبو", - ), - Country( - timezones=["إفريقيا/ساو_تومي"], - alpha_2_code="ST", - alpha_3_code="STP", - continent="إفريقيا", - name=" ساو تومي وبرينسيب", - capital="ساو تومي", - ), - Country( - timezones=["آسيا/دممشق"], - alpha_2_code="SY", - alpha_3_code="SYR", - continent="آسيا", - name="سوريا", - capital="دمشق", - ), - Country( - timezones=["إفريقيا/لومي"], - alpha_2_code="TG", - alpha_3_code="TGO", - continent="إفريقيا", - name="توغو", - capital="لومي", - ), - Country( - timezones=["آسيا/بانغوك"], - alpha_2_code="TH", - alpha_3_code="THA", - continent="آسيا", - name="تايلند", - capital="بناغوك", - ), - Country( - timezones=["آسيا/دوشنبه"], - alpha_2_code="TJ", - alpha_3_code="TJK", - continent="آسيا", - name="طاجكيستان", - capital="دوشنبه", - ), - Country( - timezones=["آسيا/عشق_آباد"], - alpha_2_code="TM", - alpha_3_code="TKM", - continent="آسيا", - name="تركمانستان", - capital="عشق آباد", - ), - Country( - timezones=["إفريقيا/تونس"], - alpha_2_code="TN", - alpha_3_code="TUN", - continent="إفريقيا", - name="تونس", - capital="تونس", - ), - Country( - timezones=["المحيط_الهاديء/تونغاتابو"], - alpha_2_code="TO", - alpha_3_code="TON", - continent="أوقيانوسيا", - name="تونغا", - capital="نوكو ألوفا", - ), - Country( - timezones=["أوروبا/إسطنبول"], - alpha_2_code="TR", - alpha_3_code="TUR", - continent="آسيا", - name="تركيا", - capital="أنقرة", - ), - Country( - timezones=["أمريكا/بورت_أوف_سبين"], - alpha_2_code="TT", - alpha_3_code="TTO", - continent="أمريكا الشمالية", - name="ترينيداد وتوباغو", - capital="بورت أوف سبين", - ), - Country( - timezones=["المحيط_الهاديء/فونافوتي"], - alpha_2_code="TV", - alpha_3_code="TUV", - continent="أوقيانوسيا", - name="توفالو", - capital="فونافوتي", - ), - Country( - timezones=["إفريقيا/دار_السلام"], - alpha_2_code="TZ", - alpha_3_code="TZA", - continent="إفريقيا", - name="تانزانيا", - capital="دودوما", - ), - Country( - timezones=[ - "أوروبا/كييف", - "أوروبا/أوجهورود", - "أوروبا/زاباروجيا", - "أوروبا/سيمفروبول", - ], - alpha_2_code="UA", - alpha_3_code="UKR", - continent="أوروبا", - name="أوكرانيا", - capital="كييف", - ), - Country( - timezones=["إفريقيا/كامبالا"], - alpha_2_code="UG", - alpha_3_code="UGA", - continent="إفريقيا", - name="أوغندا", - capital="كامبالا", - ), - Country( - timezones=[ - "أمريكا/نيويورك", - "أمريكا/ديترويت", - "أمريكا/كنتاكي/لويسفيل", - "أمريكا/كنتاكي/مونتيسللو", - "أمريكا/إنديانا/إنديانابولس", - "أمريكا/إنديانا/مارنغو", - "أمريكا/إنديانا/نوكس", - "أمريكا/إنديانا/فيفاي", - "أمريكا/شيكاغو", - "أمريكا/إنديانا/فانسان", - "أمريكا/إنديانا/بيترزبيرغ", - "أمريكا/مينومني", - "أمريكا/نورث_داكوتا/سينتر", - "أمريكا/نورث_داكوتا/نيو_سالم", - "أمريكا/دنفر", - "أمريكا/بويسي", - "أمريكا/شيبروك", - "أمريكا/فينيكس", - "أمريكا/لوس_أنجيلوس", - "أمريكا/أنكوريج", - "أمريكا/جونو", - "أمريكا/ياكوتات", - "أمريكا/نوم", - "أمريكا/أداك", - "المحيط_الهاديء/هونولولو", - ], - alpha_2_code="US", - alpha_3_code="USA", - continent="أمريكا الشمالية", - name="الولايات المتحدة الأمريكية", - capital="واشنطن", - ), - Country( - timezones=["أمريكا/مونتفيدو"], - alpha_2_code="UY", - alpha_3_code="URY", - continent="أمريكا الجنوبية", - name="أوروغواي", - capital="مونتفيدو", - ), - Country( - timezones=["آسيا/سمرقند", "آسيا/طشقند"], - alpha_2_code="UZ", - alpha_3_code="UZB", - continent="آسيا", - name="أوزبكستان", - capital="طشقند", - ), - Country( - timezones=["أوروبا/الفاتيكان"], - alpha_2_code="VA", - alpha_3_code="VAT", - continent="أوروبا", - name="الفاتيكان", - capital="الفاتيكان", - ), - Country( - timezones=["أمريكا/كاركاس"], - alpha_2_code="VE", - alpha_3_code="VEN", - continent="أمريكا الجنوبية", - name="فنزويلا", - capital="كاركاس", - ), - Country( - timezones=["آسيا/سايغون"], - alpha_2_code="VN", - alpha_3_code="VNM", - continent="آسيا", - name="فيتنام", - capital="هانوي", - ), - Country( - timezones=["المحيط_الهاديء/أيفاتي"], - alpha_2_code="VU", - alpha_3_code="VUT", - continent="أوقيانوسيا", - name="فانواتو", - capital="بورت فيلا", - ), - Country( - timezones=["آسيا/عدن"], - alpha_2_code="YE", - alpha_3_code="YEM", - continent="آسيا", - name="اليمن", - capital="صنعاء", - ), - Country( - timezones=["إفريقيا/لوساكا"], - alpha_2_code="ZM", - alpha_3_code="ZMB", - continent="إفريقيا", - name="زامبيا", - capital="لوساكا", - ), - Country( - timezones=["إفريقيا/هراري"], - alpha_2_code="ZW", - alpha_3_code="ZWE", - continent="إفريقيا", - name="زيمبابوي", - capital="هراري", - ), - Country( - timezones=["إفريقيا/الجزائر"], - alpha_2_code="DZ", - alpha_3_code="DZA", - continent="إفريقيا", - name="الجزائر", - capital="الجزائر", - ), - Country( - timezones=["أوروبا/سراييفو"], - alpha_2_code="BA", - alpha_3_code="BIH", - continent="أوروبا", - name="البوسنة والهرسك", - capital="سراييفو", - ), - Country( - timezones=["آسيا/بنوم_بنه"], - alpha_2_code="KH", - alpha_3_code="KHM", - continent="آسيا", - name="كمبوديا", - capital="بنوم بنه", - ), - Country( - timezones=["إفريقيا/بانغي"], - alpha_2_code="CF", - alpha_3_code="CAF", - continent="إفريقيا", - name="جمهورية أفريقيا الوسطى", - capital="بانغي", - ), - Country( - timezones=["إفريقيا/نجامينا"], - alpha_2_code="TD", - alpha_3_code="TCD", - continent="إفريقيا", - name="تشاد", - capital="نجامينا", - ), - Country( - timezones=["الهندي/كومورو"], - alpha_2_code="KM", - alpha_3_code="COM", - continent="إفريقيا", - name="جزر القمر", - capital="موروني", - ), - Country( - timezones=["أوروبا/زغرب"], - alpha_2_code="HR", - alpha_3_code="HRV", - continent="أوروبا", - name="كرواتيا", - capital="زغرب", - ), - Country( - timezones=["آسيا/ديلي"], - alpha_2_code="TL", - alpha_3_code="TLS", - continent="آسيا", - name="تيمور الشرقية", - capital="ديلي", - ), - Country( - timezones=["أمريكا/السلفادور"], - alpha_2_code="SV", - alpha_3_code="SLV", - continent="أمريكا الشمالية", - name="السلفادور", - capital="سان سلفادور", - ), - Country( - timezones=["إفريقيا/مالابو"], - alpha_2_code="GQ", - alpha_3_code="GNQ", - continent="إفريقيا", - name="غينيا الاستوائية", - capital="مالابو", - ), - Country( - timezones=["أمريكا/غرينادا"], - alpha_2_code="GD", - alpha_3_code="GRD", - continent="أمريكا الشمالية", - name="غرينادا", - capital="سانت جورجز", - ), - Country( - timezones=[ - "آسيا/ألماتي", - "آسيا/كيزيلوردا", - "آسيا/أقتوبي", - "آسيا/أقتاو", - "آسيا/أورال", - ], - alpha_2_code="KZ", - alpha_3_code="KAZ", - continent="آسيا", - name="كازاخستان", - capital="أستانة", - ), - Country( - timezones=["آسيا/فيينتيان"], - alpha_2_code="LA", - alpha_3_code="LAO", - continent="آسيا", - name="لاوس", - capital="فيينتيان", - ), - Country( - timezones=[ - "المحيط_الهاديء/تشوك", - "المحيط_الهاديء/بونابي", - "المحيط_الهاديء/كورساي", - ], - alpha_2_code="FM", - alpha_3_code="FSM", - continent="أوقيانوسيا", - name="ولايات ميكرونيسيا المتحدة", - capital="باليكير", - ), - Country( - timezones=["أوروبا/كيشيناو"], - alpha_2_code="MD", - alpha_3_code="MDA", - continent="أوروبا", - name="مولدافيا", - capital="كيشيناو", - ), - Country( - timezones=["أوروبا/موناكو"], - alpha_2_code="MC", - alpha_3_code="MCO", - continent="أوروبا", - name="موناكو", - capital="موناكو", - ), - Country( - timezones=["أوروبا/بودغوريتسا"], - alpha_2_code="ME", - alpha_3_code="MNE", - continent="أوروبا", - name="الجبل الأسود", - capital="بودغوريتسا", - ), - Country( - timezones=["إفريقيا/الدار_البيضاء"], - alpha_2_code="MA", - alpha_3_code="MAR", - continent="إفريقيا", - name="المغرب", - capital="الرباط", - ), - Country( - timezones=["أمريكا/سانت_كيتس"], - alpha_2_code="KN", - alpha_3_code="KNA", - continent="أمريكا الشمالية", - name="سانت كيتس ونيفيس", - capital="باستير", - ), - Country( - timezones=["أمريكا/سانت_لوسيا"], - alpha_2_code="LC", - alpha_3_code="LCA", - continent="أمريكا الشمالية", - name="سانت لوسيا", - capital="كاستريس", - ), - Country( - timezones=["أمريكا/سينت_فينسينت"], - alpha_2_code="VC", - alpha_3_code="VCT", - continent="أمريكا الشمالية", - name="سانت فينسنت والغرينادين", - capital="كينغستاون", - ), - Country( - timezones=["المحيط_الهاديء/أبيا"], - alpha_2_code="WS", - alpha_3_code="WSM", - continent="أوقيانوسيا", - name="ساموا", - capital="أبيا", - ), - Country( - timezones=["أوروبا/بلغراد"], - alpha_2_code="RS", - alpha_3_code="SRB", - continent="أوروبا", - name="صربيا", - capital="بلغراد", - ), - Country( - timezones=["إفريقيا/جوهانسبرغ"], - alpha_2_code="ZA", - alpha_3_code="ZAF", - continent="إفريقيا", - name="جنوب إفريقيا", - capital="بريتوريا", - ), - Country( - timezones=["أوروبا/مدريد", "إفريقيا/سبتة", "الأطلنطي/الكناري"], - alpha_2_code="ES", - alpha_3_code="ESP", - continent="أوروبا", - name="إسبانيا", - capital="مدريد", - ), - Country( - timezones=["آسيا/كولمبو"], - alpha_2_code="LK", - alpha_3_code="LKA", - continent="آسيا", - name="سريلانكا", - capital="سري جاياواردنابورا كوتي", - ), - Country( - timezones=["إفريقيا/مبابان"], - alpha_2_code="SZ", - alpha_3_code="SWZ", - continent="إفريقيا", - name="سوازيلاند", - capital="مبابان", - ), - Country( - timezones=["أوروبا/زيورخ"], - alpha_2_code="CH", - alpha_3_code="CHE", - continent="أوروبا", - name="سويسرا", - capital="برن", - ), - Country( - timezones=["آسيا/دبي"], - alpha_2_code="AE", - alpha_3_code="ARE", - continent="آسيا", - name="الإمارات العربية المتحدة", - capital="أبو ظبي", - ), - Country( - timezones=["أوروبا/لندن"], - alpha_2_code="GB", - alpha_3_code="GBR", - continent="أوروبا", - name="المملكة المتحدة", - capital="لندن", - ), - ] - - AM_PM = { - "AM": "ص", - "PM": "م", - } - - def month_name(self) -> str: - month = self.date("%m") - return self.MONTH_NAMES[month] - - def am_pm(self) -> str: - date = self.date("%p") - return self.AM_PM[date] - - def day_of_week(self) -> str: - day = self.date("%w") - return self.DAY_NAMES[day] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_AA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_AA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 03a1b9e..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_AA/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_DZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_DZ/__init__.py deleted file mode 100644 index 4a40df4..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_DZ/__init__.py +++ /dev/null @@ -1,19 +0,0 @@ -from ..ar_AA import Provider as ArabicDateTimeProvider - - -class Provider(ArabicDateTimeProvider): - # source: https://ar.wikipedia.org/wiki/أسماء_الشهور - MONTH_NAMES = { - "01": "جانفي", - "02": "فيفري", - "03": "مارس", - "04": "أفريل", - "05": "ماي", - "06": "جوان", - "07": "جويلية", - "08": "أوت", - "09": "سبتمبر", - "10": "أكتوبر", - "11": "نوفمبر", - "12": "ديسمبر", - } diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_DZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_DZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 434e463..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_DZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_EG/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_EG/__init__.py deleted file mode 100644 index 1a05cd6..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_EG/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -from ..ar_AA import Provider as ArabicDateTimeProvider - - -class Provider(ArabicDateTimeProvider): - MONTH_NAMES = { - "01": "يناير", - "02": "فبراير", - "03": "مارس", - "04": "أبريل", - "05": "مايو", - "06": "يونيو", - "07": "يوليو", - "08": "أغسطس", - "09": "سبتمبر", - "10": "أكتوبر", - "11": "نوفمبر", - "12": "ديسمبر", - } diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_EG/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_EG/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7984c5a..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_EG/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/az_AZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/az_AZ/__init__.py deleted file mode 100644 index cb2ccc5..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/az_AZ/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "Bazar", - "1": "Bazar ertəsi", - "2": "Çərşənbə axşamı", - "3": "Çərşənbə", - "4": "Cümə axşamı", - "5": "Cümə", - "6": "Şənbə", - } - - MONTH_NAMES = { - "01": "Yanvar", - "02": "Fevral", - "03": "Mart", - "04": "Aprel", - "05": "May", - "06": "İyun", - "07": "İyul", - "08": "Avqust", - "09": "Sentyabr", - "10": "Oktyabr", - "11": "Noyabr", - "12": "Dekabr", - } - - 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/.venv/lib/python3.12/site-packages/faker/providers/date_time/az_AZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/az_AZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index adcfea7..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/az_AZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/bn_BD/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/bn_BD/__init__.py deleted file mode 100644 index 87f7dc1..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/bn_BD/__init__.py +++ /dev/null @@ -1,1740 +0,0 @@ -from faker.typing import Country - -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "রবিবার", - "1": "সোমবার", - "2": "মঙ্গলবার", - "3": "বুধবার", - "4": "বৃহস্পতিবার", - "5": "শুক্রবার", - "6": "শনিবার", - } - - MONTH_NAMES = { - "01": "জানুয়ারি", - "02": "ফেব্রুয়ারি", - "03": "মার্চ", - "04": "এপ্রিল", - "05": "মে", - "06": "জুন", - "07": "জুলাই", - "08": "আগস্ট", - "09": "সেপ্টেম্বর", - "10": "অক্টোবর", - "11": "নভেম্বর", - "12": "ডিসেম্বর", - } - - countries = [ - Country( - timezones=["ইউরোপ/অ্যান্ডোরা"], - alpha_2_code="AD", - alpha_3_code="এবং", - continent="ইউরোপ", - name="অ্যান্ডোরা", - capital="অ্যান্ডোরা লা ভেলা", - ), - Country( - timezones=["এশিয়া/কাবুল"], - alpha_2_code="AF", - alpha_3_code="AFG", - continent="এশিয়া", - name="আফগানিস্তান", - capital="কাবুল", - ), - Country( - timezones=["আমেরিকা/অ্যান্টিগা"], - alpha_2_code="AG", - alpha_3_code="ATG", - continent="উত্তর আমেরিকা", - name="অ্যান্টিগা এবং বারবুডা", - capital="সেন্ট জনস", - ), - Country( - timezones=["ইউরোপ/তিরানে"], - alpha_2_code="AL", - alpha_3_code="ALB", - continent="ইউরোপ", - name="আলবেনিয়া", - capital="তিরানা", - ), - Country( - timezones=["এশিয়া/ইয়েরেভান"], - alpha_2_code="AM", - alpha_3_code="ARM", - continent="এশিয়া", - name="আর্মেনিয়া", - capital="ইয়েরেভান", - ), - Country( - timezones=["আফ্রিকা/লুয়ান্ডা"], - alpha_2_code="AO", - alpha_3_code="আগে", - continent="আফ্রিকা", - name="অ্যাঙ্গোলা", - capital="লুয়ান্ডা", - ), - Country( - timezones=[ - "আমেরিকা/আর্জেন্টিনা/বুয়েনস_আয়ার্স", - "আমেরিকা/আর্জেন্টিনা/কর্ডোবা", - "আমেরিকা/আর্জেন্টিনা/জুজুয়", - "আমেরিকা/আর্জেন্টিনা/টুকুমান", - "আমেরিকা/আর্জেন্টিনা/কাটামার্কা", - "আমেরিকা/আর্জেন্টিনা/লা_রিওজা", - "আমেরিকা/আর্জেন্টিনা/সান_জুয়ান", - "আমেরিকা/আর্জেন্টিনা/মেন্ডোজা", - "আমেরিকা/আর্জেন্টিনা/রিও_গ্যালেগোস", - "আমেরিকা/আর্জেন্টিনা/উশুইয়া", - ], - alpha_2_code="AR", - alpha_3_code="ARG", - continent="দক্ষিণ আমেরিকা", - name="আর্জেন্টিনা", - capital="বুয়েনস আইরেস", - ), - Country( - timezones=["ইউরোপ/ভিয়েনা"], - alpha_2_code="AT", - alpha_3_code="AUT", - continent="ইউরোপ", - name="অস্ট্রিয়া", - capital="ভিয়েনা", - ), - Country( - timezones=[ - "অস্ট্রেলিয়া/লর্ড_হাউ", - "অস্ট্রেলিয়া/হোবার্ট", - "অস্ট্রেলিয়া/কারি", - "অস্ট্রেলিয়া/মেলবোর্ন", - "অস্ট্রেলিয়া/সিডনি", - "অস্ট্রেলিয়া/ব্রোকেন_হিল", - "অস্ট্রেলিয়া/ব্রিসবেন", - "অস্ট্রেলিয়া/লিন্ডেম্যান", - "অস্ট্রেলিয়া/অ্যাডিলেড", - "অস্ট্রেলিয়া/ডারউইন", - "অস্ট্রেলিয়া/পার্থ", - ], - alpha_2_code="AU", - alpha_3_code="AUS", - continent="ওশেনিয়া", - name="অস্ট্রেলিয়া", - capital="ক্যানবেরা", - ), - Country( - timezones=["এশিয়া/বাকু"], - alpha_2_code="AZ", - alpha_3_code="AZE", - continent="এশিয়া", - name="আজারবাইজান", - capital="বাকু", - ), - Country( - timezones=["আমেরিকা/বার্বাডোস"], - alpha_2_code="BB", - alpha_3_code="BRB", - continent="উত্তর আমেরিকা", - name="বার্বাডোস", - capital="ব্রিজটাউন", - ), - Country( - timezones=["এশিয়া/ঢাকা"], - alpha_2_code="বিডি", - alpha_3_code="BGD", - continent="এশিয়া", - name="বাংলাদেশ", - capital="ঢাকা", - ), - Country( - timezones=["ইউরোপ/ব্রাসেলস"], - alpha_2_code="BE", - alpha_3_code="BEL", - continent="ইউরোপ", - name="বেলজিয়াম", - capital="ব্রাসেলস", - ), - Country( - timezones=["আফ্রিকা/ওগাডুগু"], - alpha_2_code="BF", - alpha_3_code="BFA", - continent="আফ্রিকা", - name="বুর্কিনা ফাসো", - capital="ওগাডুগউ", - ), - Country( - timezones=["ইউরোপ/সোফিয়া"], - alpha_2_code="বিজি", - alpha_3_code="BGR", - continent="ইউরোপ", - name="বুলগেরিয়া", - capital="সোফিয়া", - ), - Country( - timezones=["এশিয়া/বাহরাইন"], - alpha_2_code="BH", - alpha_3_code="BHR", - continent="এশিয়া", - name="বাহরাইন", - capital="মাnameা", - ), - Country( - timezones=["আফ্রিকা/বুজুম্বুরা"], - alpha_2_code="BI", - alpha_3_code="BDI", - continent="আফ্রিকা", - name="বুরুন্ডি", - capital="বুজুম্বুরা", - ), - Country( - timezones=["আফ্রিকা/পোর্টো-নোভো"], - alpha_2_code="BJ", - alpha_3_code="BEN", - continent="আফ্রিকা", - name="বেনিন", - capital="পোর্টো-নভো", - ), - Country( - timezones=["এশিয়া/ব্রুনাই"], - alpha_2_code="BN", - alpha_3_code="BRN", - continent="এশিয়া", - name="ব্রুনাই দারুসসালাম", - capital="বন্দর সেরি বেগাওয়ান", - ), - Country( - timezones=["আমেরিকা/লা_পাজ"], - alpha_2_code="BO", - alpha_3_code="BOL", - continent="দক্ষিণ আমেরিকা", - name="বলিভিয়া", - capital="সুক্রে", - ), - Country( - timezones=[ - "আমেরিকা/নরোনহা", - "আমেরিকা/বেলেম", - "আমেরিকা/ফর্তালেজা", - "আমেরিকা/রেসিফ", - "আমেরিকা/আরাগুয়েনা", - "আমেরিকা/ম্যাসিও", - "আমেরিকা/বাহিয়া", - "আমেরিকা/সাও_পাওলো", - "আমেরিকা/ক্যাম্পো_গ্রান্ডে", - "আমেরিকা/কুয়াবা", - "আমেরিকা/পোর্টো_ভেলহো", - "আমেরিকা/বোয়া_ভিস্তা", - "আমেরিকা/মানাস", - "আমেরিকা/ইরুনেপে", - "আমেরিকা/রিও_ব্র্যাঙ্কো", - ], - alpha_2_code="BR", - alpha_3_code="BRA", - continent="দক্ষিণ আমেরিকা", - name="ব্রাজিল", - capital="ব্রাসেলস", - ), - Country( - timezones=["আমেরিকা/নাসাউ"], - alpha_2_code="BS", - alpha_3_code="BHS", - continent="উত্তর আমেরিকা", - name="বাহামাস", - capital="নাসাউ", - ), - Country( - timezones=["এশিয়া/থিম্পু"], - alpha_2_code="BT", - alpha_3_code="BTN", - continent="এশিয়া", - name="ভুটান", - capital="থিম্পু", - ), - Country( - timezones=["আফ্রিকা/গ্যাবোরোন"], - alpha_2_code="BW", - alpha_3_code="BWA", - continent="আফ্রিকা", - name="বতসোয়ানা", - capital="গ্যাবরোন", - ), - Country( - timezones=["ইউরোপ/মিনস্ক"], - alpha_2_code="দ্বারা", - alpha_3_code="BLR", - continent="ইউরোপ", - name="বেলারুশ", - capital="মিনস্ক", - ), - Country( - timezones=["আমেরিকা/বেলিজ"], - alpha_2_code="BZ", - alpha_3_code="BLZ", - continent="উত্তর আমেরিকা", - name="বেলিজ", - capital="বেলমোপান", - ), - Country( - timezones=[ - "আমেরিকা/সেন্ট জনস", - "আমেরিকা/হ্যালিফ্যাক্স", - "আমেরিকা/গ্লেস_বে", - "আমেরিকা/মঙ্কটন", - "আমেরিকা/গোজ_বে", - "আমেরিকা/ব্ল্যাঙ্ক-সাবলন", - "আমেরিকা/মন্ট্রিল", - "আমেরিকা/টরন্টো", - "আমেরিকা/নিপিগন", - "আমেরিকা/থান্ডার_বে", - "আমেরিকা/পাংনিরতুং", - "আমেরিকা/ইকালুইট", - "আমেরিকা/আতিকোকান", - "আমেরিকা/র‍্যাঙ্কিন_ইনলেট", - "আমেরিকা/উইনিপেগ", - "আমেরিকা/বৃষ্টি_নদী", - "আমেরিকা/কেমব্রিজ_বে", - "আমেরিকা/রেজিনা", - "আমেরিকা/সুইফট_কারেন্ট", - "আমেরিকা/এডমন্টন", - "আমেরিকা/ইয়েলোনাইফ", - "আমেরিকা/ইনুভিক", - "আমেরিকা/ডসন_ক্রিক", - "আমেরিকা/ভ্যাঙ্কুভার", - "আমেরিকা/হোয়াইটহরস", - "আমেরিকা/ডসন", - ], - alpha_2_code="CA", - alpha_3_code="CAN", - continent="উত্তর আমেরিকা", - name="কানাডা", - capital="অটোয়া", - ), - Country( - timezones=["আফ্রিকা/কিনশাসা", "আফ্রিকা/লুবুম্বাশি"], - alpha_2_code="CD", - alpha_3_code="COD", - continent="আফ্রিকা", - name="কঙ্গো গণতান্ত্রিক প্রজাতন্ত্র", - capital="কিনশাসা", - ), - Country( - timezones=["আফ্রিকা/ব্রাজাভিল"], - alpha_2_code="CG", - alpha_3_code="COG", - continent="আফ্রিকা", - name="কঙ্গো প্রজাতন্ত্র", - capital="ব্রাজাভিল", - ), - Country( - timezones=["আফ্রিকা/আবিজান"], - alpha_2_code="CI", - alpha_3_code="CIV", - continent="আফ্রিকা", - name="C\xc3\xb4te d'Ivoire", - capital="ইয়ামুসুক্রো", - ), - Country( - timezones=["আমেরিকা/সান্টিয়াগো", "প্যাসিফিক/ইস্টার"], - alpha_2_code="CL", - alpha_3_code="CHL", - continent="দক্ষিণ আমেরিকা", - name="চিলি", - capital="সান্তিয়াগো", - ), - Country( - timezones=["আফ্রিকা/ডুয়ালা"], - alpha_2_code="CM", - alpha_3_code="CMR", - continent="আফ্রিকা", - name="ক্যামেরুন", - capital="ইয়াউন্ড", - ), - Country( - timezones=[ - "এশিয়া/সাংহাই", - "এশিয়া/হারবিন", - "এশিয়া/চংকিং", - "এশিয়া/উরুমকি", - "এশিয়া/কাশগর", - ], - alpha_2_code="CN", - alpha_3_code="CHN", - continent="এশিয়া", - name="গণপ্রজাতন্ত্রী চীন", - capital="বেইজিং", - ), - Country( - timezones=["আমেরিকা/বোগোটা"], - alpha_2_code="CO", - alpha_3_code="COL", - continent="দক্ষিণ আমেরিকা", - name="কলম্বিয়া", - capital="বোগোট\xc3\xa1", - ), - Country( - timezones=["আমেরিকা/কোস্টা_রিকা"], - alpha_2_code="CR", - alpha_3_code="CRI", - continent="উত্তর আমেরিকা", - name="কোস্টারিকা", - capital="সান জোস\xc3\xa9", - ), - Country( - timezones=["আমেরিকা/হাভানা"], - alpha_2_code="CU", - alpha_3_code="CUB", - continent="উত্তর আমেরিকা", - name="কিউবা", - capital="হাভানা", - ), - Country( - timezones=["আটলান্টিক/কেপ_ভার্দে"], - alpha_2_code="সিভি", - alpha_3_code="CPV", - continent="আফ্রিকা", - name="কেপ ভার্দে", - capital="প্রাইয়া", - ), - Country( - timezones=["এশিয়া/নিকোসিয়া"], - alpha_2_code="CY", - alpha_3_code="CYP", - continent="এশিয়া", - name="সাইপ্রাস", - capital="নিকোসিয়া", - ), - Country( - timezones=["ইউরোপ/প্রাগ"], - alpha_2_code="CZ", - alpha_3_code="CZE", - continent="ইউরোপ", - name="চেক প্রজাতন্ত্র", - capital="প্রাগ", - ), - Country( - timezones=["ইউরোপ/বার্লিন"], - alpha_2_code="DE", - alpha_3_code="DEU", - continent="ইউরোপ", - name="জার্মানি", - capital="বার্লিন", - ), - Country( - timezones=["আফ্রিকা/জিবুতি"], - alpha_2_code="ডিজে", - alpha_3_code="DJI", - continent="আফ্রিকা", - name="জিবুতি", - capital="জিবুতি শহর", - ), - Country( - timezones=["ইউরোপ/কোপেনহেগেন"], - alpha_2_code="DK", - alpha_3_code="DNK", - continent="ইউরোপ", - name="ডেনমার্ক", - capital="কোপেনহেগেন", - ), - Country( - timezones=["আমেরিকা/ডোমিনিকা"], - alpha_2_code="DM", - alpha_3_code="DMA", - continent="উত্তর আমেরিকা", - name="ডোমিনিকা", - capital="রোজাও", - ), - Country( - timezones=["আমেরিকা/সান্টো_ডোমিঙ্গো"], - alpha_2_code="করুন", - alpha_3_code="DOM", - continent="উত্তর আমেরিকা", - name="ডোমিনিকান রিপাবলিক", - capital="সান্তো ডোমিঙ্গো", - ), - Country( - timezones=["আমেরিকা/গুয়াকিল", "প্যাসিফিক/গালাপাগোস"], - alpha_2_code="EC", - alpha_3_code="ECU", - continent="দক্ষিণ আমেরিকা", - name="ইকুয়েডর", - capital="কুইটো", - ), - Country( - timezones=["ইউরোপ/টালিন"], - alpha_2_code="EE", - alpha_3_code="EST", - continent="ইউরোপ", - name="এস্তোনিয়া", - capital="টালিন", - ), - Country( - timezones=["আফ্রিকা/কায়রো"], - alpha_2_code="EG", - alpha_3_code="EGY", - continent="আফ্রিকা", - name="মিশর", - capital="কায়রো", - ), - Country( - timezones=["আফ্রিকা/আসমেরা"], - alpha_2_code="ER", - alpha_3_code="ERI", - continent="আফ্রিকা", - name="ইরিত্রিয়া", - capital="আসমারা", - ), - Country( - timezones=["আফ্রিকা/আদিস_আবাবা"], - alpha_2_code="ET", - alpha_3_code="ETH", - continent="আফ্রিকা", - name="ইথিওপিয়া", - capital="আদিস আবাবা", - ), - Country( - timezones=["ইউরোপ/হেলসিঙ্কি"], - alpha_2_code="FI", - alpha_3_code="FIN", - continent="ইউরোপ", - name="ফিনল্যান্ড", - capital="হেলসিঙ্কি", - ), - Country( - timezones=["প্যাসিফিক/ফিজি"], - alpha_2_code="FJ", - alpha_3_code="FJI", - continent="ওশেনিয়া", - name="ফিজি", - capital="সুভা", - ), - Country( - timezones=["ইউরোপ/প্যারিস"], - alpha_2_code="FR", - alpha_3_code="FRA", - continent="ইউরোপ", - name="ফ্রান্স", - capital="প্যারিস", - ), - Country( - timezones=["আফ্রিকা/লিব্রেভিল"], - alpha_2_code="GA", - alpha_3_code="GAB", - continent="আফ্রিকা", - name="গ্যাবন", - capital="লিব্রেভিল", - ), - Country( - timezones=["এশিয়া/টিবিলিসি"], - alpha_2_code="GE", - alpha_3_code="জিও", - continent="এশিয়া", - name="জর্জিয়া", - capital="তিবিলিসি", - ), - Country( - timezones=["আফ্রিকা/আকরা"], - alpha_2_code="GH", - alpha_3_code="GHA", - continent="আফ্রিকা", - name="ঘানা", - capital="আকরা", - ), - Country( - timezones=["আফ্রিকা/বানজুল"], - alpha_2_code="GM", - alpha_3_code="GMB", - continent="আফ্রিকা", - name="গাম্বিয়া", - capital="বানজুল", - ), - Country( - timezones=["আফ্রিকা/কোনাক্রি"], - alpha_2_code="GN", - alpha_3_code="GIN", - continent="আফ্রিকা", - name="গিনি", - capital="কোনাক্রি", - ), - Country( - timezones=["ইউরোপ/এথেন্স"], - alpha_2_code="GR", - alpha_3_code="GRC", - continent="ইউরোপ", - name="গ্রীস", - capital="এথেন্স", - ), - Country( - timezones=["আমেরিকা/গুয়েতেমালা"], - alpha_2_code="GT", - alpha_3_code="GTM", - continent="উত্তর আমেরিকা", - name="গুয়েতেমালা", - capital="গুয়েতেমালা সিটি", - ), - Country( - timezones=["আমেরিকা/গুয়েতেমালা"], - alpha_2_code="HT", - alpha_3_code="HTI", - continent="উত্তর আমেরিকা", - name="হাইতি", - capital="পোর্ট-অ-প্রিন্স", - ), - Country( - timezones=["আফ্রিকা/বিসাউ"], - alpha_2_code="GW", - alpha_3_code="GNB", - continent="আফ্রিকা", - name="গিনি-বিসাউ", - capital="বিসাউ", - ), - Country( - timezones=["আমেরিকা/গিয়ানা"], - alpha_2_code="GY", - alpha_3_code="লোক", - continent="দক্ষিণ আমেরিকা", - name="গিয়ানা", - capital="জর্জটাউন", - ), - Country( - timezones=["আমেরিকা/টেগুসিগালপা"], - alpha_2_code="HN", - alpha_3_code="HND", - continent="উত্তর আমেরিকা", - name="হন্ডুরাস", - capital="টেগুসিগালপা", - ), - Country( - timezones=["ইউরোপ/বুদাপেস্ট"], - alpha_2_code="HU", - alpha_3_code="HUN", - continent="ইউরোপ", - name="হাঙ্গেরি", - capital="বুদাপেস্ট", - ), - Country( - timezones=[ - "এশিয়া/জাকার্তা", - "এশিয়া/পন্টিয়ানাক", - "এশিয়া/মাকাসার", - "এশিয়া/জয়াপুরা", - ], - alpha_2_code="আইডি", - alpha_3_code="IDN", - continent="এশিয়া", - name="ইন্দোনেশিয়া", - capital="জাকার্তা", - ), - Country( - timezones=["ইউরোপ/ডাবলিন"], - alpha_2_code="IE", - alpha_3_code="IRL", - continent="ইউরোপ", - name="আয়ারল্যান্ড প্রজাতন্ত্র", - capital="ডাবলিন", - ), - Country( - timezones=["এশিয়া/জেরুজালেম"], - alpha_2_code="IL", - alpha_3_code="ISR", - continent="এশিয়া", - name="ইসরায়েল", - capital="জেরুজালেম", - ), - Country( - timezones=["এশিয়া/কলকাতা"], - alpha_2_code="IN", - alpha_3_code="IND", - continent="এশিয়া", - name="ভারত", - capital="নয়া দিল্লী", - ), - Country( - timezones=["এশিয়া/বাগদাদ"], - alpha_2_code="IQ", - alpha_3_code="IRQ", - continent="এশিয়া", - name="ইরাক", - capital="বাগদাদ", - ), - Country( - timezones=["এশিয়া/তেহরান"], - alpha_2_code="IR", - alpha_3_code="IRN", - continent="এশিয়া", - name="ইরান", - capital="তেহরান", - ), - Country( - timezones=["আটলান্টিক/রেকজাভিক"], - alpha_2_code="IS", - alpha_3_code="ISL", - continent="ইউরোপ", - name="আইসল্যান্ড", - capital="রেকজাভিক", - ), - Country( - timezones=["ইউরোপ/রোম"], - alpha_2_code="IT", - alpha_3_code="ITA", - continent="ইউরোপ", - name="ইতালি", - capital="রোম", - ), - Country( - timezones=["আমেরিকা/জ্যামাইকা"], - alpha_2_code="JM", - alpha_3_code="JAM", - continent="উত্তর আমেরিকা", - name="জ্যামাইকা", - capital="কিংসটন", - ), - Country( - timezones=["এশিয়া/আম্মান"], - alpha_2_code="JO", - alpha_3_code="JOR", - continent="এশিয়া", - name="জর্ডান", - capital="আম্মান", - ), - Country( - timezones=["এশিয়া/টোকিও"], - alpha_2_code="JP", - alpha_3_code="JPN", - continent="এশিয়া", - name="জাপান", - capital="টোকিও", - ), - Country( - timezones=["আফ্রিকা/নাইরোবি"], - alpha_2_code="KE", - alpha_3_code="KEN", - continent="আফ্রিকা", - name="কেনিয়া", - capital="নাইরোবি", - ), - Country( - timezones=["এশিয়া/বিশকেক"], - alpha_2_code="কেজি", - alpha_3_code="KGZ", - continent="এশিয়া", - name="কিরগিজস্তান", - capital="বিশকেক", - ), - Country( - timezones=["প্যাসিফিক/তারাওয়া", "প্যাসিফিক/এন্ডারবেরি", "প্যাসিফিক/কিরিটিমাতি"], - alpha_2_code="KI", - alpha_3_code="KIR", - continent="ওশেনিয়া", - name="কিরিবাতি", - capital="তারাওয়া", - ), - Country( - timezones=["এশিয়া/পিয়ংইয়ং"], - alpha_2_code="KP", - alpha_3_code="PRK", - continent="এশিয়া", - name="উত্তর কোরিয়া", - capital="পিয়ংইয়ং", - ), - Country( - timezones=["এশিয়া/সিউল"], - alpha_2_code="KR", - alpha_3_code="KOR", - continent="এশিয়া", - name="দক্ষিণ কোরিয়া", - capital="সিউল", - ), - Country( - timezones=["এশিয়া/কুয়েত"], - alpha_2_code="কিলোওয়াট", - alpha_3_code="KWT", - continent="এশিয়া", - name="কুয়েত", - capital="কুয়েত সিটি", - ), - Country( - timezones=["এশিয়া/বৈরুত"], - alpha_2_code="LB", - alpha_3_code="LBN", - continent="এশিয়া", - name="লেবানন", - capital="বৈরুত", - ), - Country( - timezones=["ইউরোপ/ভাদুজ"], - alpha_2_code="LI", - alpha_3_code="মিথ্যা", - continent="ইউরোপ", - name="লিচেনস্টাইন", - capital="ভাদুজ", - ), - Country( - timezones=["আফ্রিকা/মনরোভিয়া"], - alpha_2_code="LR", - alpha_3_code="LBR", - continent="আফ্রিকা", - name="লাইবেরিয়া", - capital="মনরোভিয়া", - ), - Country( - timezones=["আফ্রিকা/মাসেরু"], - alpha_2_code="LS", - alpha_3_code="LSO", - continent="আফ্রিকা", - name="লেসোথো", - capital="মাসেরু", - ), - Country( - timezones=["ইউরোপ/ভিলনিয়াস"], - alpha_2_code="LT", - alpha_3_code="LTU", - continent="ইউরোপ", - name="লিথুয়ানিয়া", - capital="ভিলনিয়াস", - ), - Country( - timezones=["ইউরোপ/লাক্সেমবার্গ"], - alpha_2_code="LU", - alpha_3_code="LUX", - continent="ইউরোপ", - name="লাক্সেমবার্গ", - capital="লাক্সেমবার্গ সিটি", - ), - Country( - timezones=["ইউরোপ/রিগা"], - alpha_2_code="LV", - alpha_3_code="LVA", - continent="ইউরোপ", - name="লাটভিয়া", - capital="রিগা", - ), - Country( - timezones=["আফ্রিকা/ত্রিপোলি"], - alpha_2_code="LY", - alpha_3_code="LBY", - continent="আফ্রিকা", - name="লিবিয়া", - capital="ত্রিপোলি", - ), - Country( - timezones=["ভারতীয়/আন্তানানারিভো"], - alpha_2_code="MG", - alpha_3_code="MDG", - continent="আফ্রিকা", - name="মাদাগাস্কার", - capital="আন্তানানারিভো", - ), - Country( - timezones=["প্যাসিফিক/মাজুরো", "প্যাসিফিক/কোয়াজালেইন"], - alpha_2_code="MH", - alpha_3_code="MHL", - continent="ওশেনিয়া", - name="মার্শাল দ্বীপপুঞ্জ", - capital="মাজুরো", - ), - Country( - timezones=["ইউরোপ/স্কোপজে"], - alpha_2_code="MK", - alpha_3_code="MKD", - continent="ইউরোপ", - name="ম্যাসিডোনিয়া", - capital="স্কোপজে", - ), - Country( - timezones=["আফ্রিকা/বামাকো"], - alpha_2_code="ML", - alpha_3_code="MLI", - continent="আফ্রিকা", - name="মালি", - capital="বামাকো", - ), - Country( - timezones=["এশিয়া/রেঙ্গুন"], - alpha_2_code="MM", - alpha_3_code="MMR", - continent="এশিয়া", - name="মিয়ানমার", - capital="নায়প্যিদা", - ), - Country( - timezones=["এশিয়া/উলানবাতার", "এশিয়া/হোভড", "এশিয়া/চোইবালসান"], - alpha_2_code="MN", - alpha_3_code="MNG", - continent="এশিয়া", - name="মঙ্গোলিয়া", - capital="উলানবাতার", - ), - Country( - timezones=["আফ্রিকা/নোয়াকচট"], - alpha_2_code="MR", - alpha_3_code="MRT", - continent="আফ্রিকা", - name="মৌরিতানিয়া", - capital="নুয়াকচট", - ), - Country( - timezones=["ইউরোপ/মাল্টা"], - alpha_2_code="MT", - alpha_3_code="MLT", - continent="ইউরোপ", - name="মাল্টা", - capital="ভ্যালেটা", - ), - Country( - timezones=["ভারতীয়/মরিশাস"], - alpha_2_code="MU", - alpha_3_code="MUS", - continent="আফ্রিকা", - name="মরিশাস", - capital="পোর্ট লুইস", - ), - Country( - timezones=["ভারতীয়/মালদ্বীপ"], - alpha_2_code="MV", - alpha_3_code="MDV", - continent="এশিয়া", - name="মালদ্বীপ", - capital="মাল\xc3\xa9", - ), - Country( - timezones=["আফ্রিকা/ব্লান্টিয়ার"], - alpha_2_code="মেগাওয়াট", - alpha_3_code="MWI", - continent="আফ্রিকা", - name="মালাউই", - capital="লিলংওয়ে", - ), - Country( - timezones=[ - "আমেরিকা/মেক্সিকো_সিটি", - "আমেরিকা/কানকুন", - "আমেরিকা/মেরিডা", - "আমেরিকা/মন্টেরে", - "আমেরিকা/মাজাতলান", - "আমেরিকা/চিহুয়াহুয়া", - "আমেরিকা/হার্মোসিলো", - "আমেরিকা/টিজুয়ানা", - ], - alpha_2_code="MX", - alpha_3_code="MEX", - continent="উত্তর আমেরিকা", - name="মেক্সিকো", - capital="মেক্সিকো সিটি", - ), - Country( - timezones=["এশিয়া/কুয়ালা_লামপুর", "এশিয়া/কুচিং"], - alpha_2_code="আমার", - alpha_3_code="MYS", - continent="এশিয়া", - name="মালয়েশিয়া", - capital="কুয়ালালামপুর", - ), - Country( - timezones=["আফ্রিকা/মাপুটো"], - alpha_2_code="MZ", - alpha_3_code="MOZ", - continent="আফ্রিকা", - name="মোজাম্বিক", - capital="মাপুতো", - ), - Country( - timezones=["আফ্রিকা/উইন্ডহোক"], - alpha_2_code="NA", - alpha_3_code="NAM", - continent="আফ্রিকা", - name="nameিবিয়া", - capital="উইন্ডহোক", - ), - Country( - timezones=["আফ্রিকা/নিয়ামে"], - alpha_2_code="NE", - alpha_3_code="NER", - continent="আফ্রিকা", - name="নাইজার", - capital="নিয়ামে", - ), - Country( - timezones=["আফ্রিকা/লাগোস"], - alpha_2_code="NG", - alpha_3_code="NGA", - continent="আফ্রিকা", - name="নাইজেরিয়া", - capital="আবুজা", - ), - Country( - timezones=["আমেরিকা/মানাগুয়া"], - alpha_2_code="NI", - alpha_3_code="NIC", - continent="উত্তর আমেরিকা", - name="নিকারাগুয়া", - capital="মানাগুয়া", - ), - Country( - timezones=["ইউরোপ/আমস্টারডাম"], - alpha_2_code="NL", - alpha_3_code="NLD", - continent="ইউরোপ", - name="নেদারল্যান্ডের রাজ্য", - capital="আমস্টারডাম", - ), - Country( - timezones=["ইউরোপ/অসলো"], - alpha_2_code="না", - alpha_3_code="NOR", - continent="ইউরোপ", - name="নরওয়ে", - capital="অসলো", - ), - Country( - timezones=["এশিয়া/কাটমান্ডু"], - alpha_2_code="NP", - alpha_3_code="NPL", - continent="এশিয়া", - name="নেপাল", - capital="কাঠমান্ডু", - ), - Country( - timezones=["প্যাসিফিক/নাউরু"], - alpha_2_code="NR", - alpha_3_code="NRU", - continent="ওশেনিয়া", - name="নাউরু", - capital="ইয়েরেন", - ), - Country( - timezones=["প্যাসিফিক/অকল্যান্ড", "প্যাসিফিক/চ্যাথাম"], - alpha_2_code="NZ", - alpha_3_code="NZL", - continent="ওশেনিয়া", - name="নিউজিল্যান্ড", - capital="ওয়েলিংটন", - ), - Country( - timezones=["এশিয়া/মাস্কাট"], - alpha_2_code="OM", - alpha_3_code="OMN", - continent="এশিয়া", - name="ওমান", - capital="মাস্কাট", - ), - Country( - timezones=["আমেরিকা/পাnameা"], - alpha_2_code="PA", - alpha_3_code="PAN", - continent="উত্তর আমেরিকা", - name="পাnameা", - capital="পাnameা সিটি", - ), - Country( - timezones=["আমেরিকা/লিমা"], - alpha_2_code="PE", - alpha_3_code="PER", - continent="দক্ষিণ আমেরিকা", - name="পেরু", - capital="লিমা", - ), - Country( - timezones=["প্যাসিফিক/পোর্ট_মোরেসবি"], - alpha_2_code="PG", - alpha_3_code="PNG", - continent="ওশেনিয়া", - name="পাপুয়া নিউ গিনি", - capital="পোর্ট মোরসবি", - ), - Country( - timezones=["এশিয়া/ম্যানিলা"], - alpha_2_code="PH", - alpha_3_code="PHL", - continent="এশিয়া", - name="ফিলিপাইন", - capital="ম্যানিলা", - ), - Country( - timezones=["এশিয়া/করাচি"], - alpha_2_code="PK", - alpha_3_code="PAK", - continent="এশিয়া", - name="পাকিস্তান", - capital="ইসলামাবাদ", - ), - Country( - timezones=["ইউরোপ/ওয়ারশ"], - alpha_2_code="PL", - alpha_3_code="POL", - continent="ইউরোপ", - name="পোল্যান্ড", - capital="ওয়ারশ", - ), - Country( - timezones=["ইউরোপ/লিসবন", "আটলান্টিক/মাদেইরা", "আটলান্টিক/আজোরস"], - alpha_2_code="PT", - alpha_3_code="PRT", - continent="ইউরোপ", - name="পর্তুগাল", - capital="লিসবন", - ), - Country( - timezones=["প্যাসিফিক/পালাউ"], - alpha_2_code="PW", - alpha_3_code="PLW", - continent="ওশেনিয়া", - name="পালাউ", - capital="এনগেরুলমুদ", - ), - Country( - timezones=["আমেরিকা/আসুনসিয়ন"], - alpha_2_code="PY", - alpha_3_code="PRY", - continent="দক্ষিণ আমেরিকা", - name="প্যারাগুয়ে", - capital="আসুন্সি\xc3\xb3n", - ), - Country( - timezones=["এশিয়া/কাতার"], - alpha_2_code="QA", - alpha_3_code="QAT", - continent="এশিয়া", - name="কাতার", - capital="দোহা", - ), - Country( - timezones=["ইউরোপ/বুখারেস্ট"], - alpha_2_code="RO", - alpha_3_code="ROU", - continent="ইউরোপ", - name="রোমানিয়া", - capital="বুখারেস্ট", - ), - Country( - timezones=[ - "ইউরোপ/ক্যালিনিনগ্রাদ", - "ইউরোপ/মস্কো", - "ইউরোপ/ভলগোগ্রাদ", - "ইউরোপ/সামারা", - "এশিয়া/ইয়েকাটেরিনবার্গ", - "এশিয়া/ওমস্ক", - "এশিয়া/নভোসিবিরস্ক", - "এশিয়া/ক্রাসনোয়ারস্ক", - "এশিয়া/ইরকুটস্ক", - "এশিয়া/ইয়াকুটস্ক", - "এশিয়া/ভ্লাদিভোস্টক", - "এশিয়া/সাখালিন", - "এশিয়া/মাগাদান", - "এশিয়া/কামচাটকা", - "এশিয়া/আনাডার", - ], - alpha_2_code="RU", - alpha_3_code="RUS", - continent="ইউরোপ", - name="রাশিয়া", - capital="মস্কো", - ), - Country( - timezones=["আফ্রিকা/কিগালি"], - alpha_2_code="RW", - alpha_3_code="RWA", - continent="আফ্রিকা", - name="রুয়ান্ডা", - capital="কিগালি", - ), - Country( - timezones=["এশিয়া/রিয়াদ"], - alpha_2_code="SA", - alpha_3_code="SAU", - continent="এশিয়া", - name="সৌদি আরব", - capital="রিয়াদ", - ), - Country( - timezones=["প্যাসিফিক/গুয়াডালকানাল"], - alpha_2_code="SB", - alpha_3_code="SLB", - continent="ওশেনিয়া", - name="সলোমন দ্বীপপুঞ্জ", - capital="হোনিয়ারা", - ), - Country( - timezones=["ভারতীয়/মাহে"], - alpha_2_code="SC", - alpha_3_code="SYC", - continent="আফ্রিকা", - name="সেশেলস", - capital="ভিক্টোরিয়া", - ), - Country( - timezones=["আফ্রিকা/খার্তুম"], - alpha_2_code="SD", - alpha_3_code="SDN", - continent="আফ্রিকা", - name="সুদান", - capital="খার্তুম", - ), - Country( - timezones=["ইউরোপ/স্টকহোম"], - alpha_2_code="SE", - alpha_3_code="SWE", - continent="ইউরোপ", - name="সুইডেন", - capital="স্টকহোম", - ), - Country( - timezones=["এশিয়া/সিঙ্গাপুর"], - alpha_2_code="SG", - alpha_3_code="SGP", - continent="এশিয়া", - name="সিঙ্গাপুর", - capital="সিঙ্গাপুর", - ), - Country( - timezones=["ইউরোপ/লুব্লজানা"], - alpha_2_code="SI", - alpha_3_code="SVN", - continent="ইউরোপ", - name="স্লোভেনিয়া", - capital="লুব্লজানা", - ), - Country( - timezones=["ইউরোপ/ব্র্যাটিস্লাভা"], - alpha_2_code="SK", - alpha_3_code="SVK", - continent="ইউরোপ", - name="স্লোভাকিয়া", - capital="ব্রাটিস্লাভা", - ), - Country( - timezones=["আফ্রিকা/ফ্রিটাউন"], - alpha_2_code="SL", - alpha_3_code="SLE", - continent="আফ্রিকা", - name="সিয়েরা লিওন", - capital="ফ্রিটাউন", - ), - Country( - timezones=["ইউরোপ/সান_মারিনো"], - alpha_2_code="SM", - alpha_3_code="SMR", - continent="ইউরোপ", - name="সান মারিনো", - capital="সান মারিনো", - ), - Country( - timezones=["আফ্রিকা/ডাকার"], - alpha_2_code="SN", - alpha_3_code="SEN", - continent="আফ্রিকা", - name="সেনেগাল", - capital="ডাকার", - ), - Country( - timezones=["আফ্রিকা/মোগাদিশু"], - alpha_2_code="SO", - alpha_3_code="SOM", - continent="আফ্রিকা", - name="সোমালিয়া", - capital="মোগাদিশু", - ), - Country( - timezones=["আমেরিকা/পারামারিবো"], - alpha_2_code="SR", - alpha_3_code="SUR", - continent="দক্ষিণ আমেরিকা", - name="সুরিname", - capital="পারমারিবো", - ), - Country( - timezones=["আফ্রিকা/সাও_টোম"], - alpha_2_code="ST", - alpha_3_code="STP", - continent="আফ্রিকা", - name="S\xc3\xa3o Tom\xc3\xa9 এবং Pr\xc3\xadncipe", - capital="S\xc3\xa3o টম\xc3\xa9", - ), - Country( - timezones=["এশিয়া/দামাস্কাস"], - alpha_2_code="SY", - alpha_3_code="SYR", - continent="এশিয়া", - name="সিরিয়া", - capital="দামাস্কাস", - ), - Country( - timezones=["আফ্রিকা/লোম"], - alpha_2_code="TG", - alpha_3_code="TGO", - continent="আফ্রিকা", - name="টোগো", - capital="Lom\xc3\xa9", - ), - Country( - timezones=["এশিয়া/ব্যাংকক"], - alpha_2_code="TH", - alpha_3_code="THA", - continent="এশিয়া", - name="থাইল্যান্ড", - capital="ব্যাংকক", - ), - Country( - timezones=["এশিয়া/দুশানবে"], - alpha_2_code="TJ", - alpha_3_code="TJK", - continent="এশিয়া", - name="তাজিকিস্তান", - capital="দুশানবে", - ), - Country( - timezones=["এশিয়া/আশগাবাত"], - alpha_2_code="TM", - alpha_3_code="TKM", - continent="এশিয়া", - name="তুর্কমেনিস্তান", - capital="আশগাবাত", - ), - Country( - timezones=["আফ্রিকা/টিউনিস"], - alpha_2_code="TN", - alpha_3_code="TUN", - continent="আফ্রিকা", - name="তিউনিসিয়া", - capital="তিউনিস", - ), - Country( - timezones=["প্যাসিফিক/টোঙ্গাটাপু"], - alpha_2_code="TO", - alpha_3_code="TON", - continent="ওশেনিয়া", - name="টোঙ্গা", - capital="নুকু\xca\xbbalofa", - ), - Country( - timezones=["ইউরোপ/ইস্তানবুল"], - alpha_2_code="TR", - alpha_3_code="TUR", - continent="এশিয়া", - name="তুরস্ক", - capital="আঙ্কারা", - ), - Country( - timezones=["আমেরিকা/পোর্ট_অফ_স্পেন"], - alpha_2_code="TT", - alpha_3_code="TTO", - continent="উত্তর আমেরিকা", - name="ত্রিনিদাদ ও টোবাগো", - capital="স্পেন বন্দর", - ), - Country( - timezones=["প্যাসিফিক/ফুনাফুটি"], - alpha_2_code="টিভি", - alpha_3_code="TUV", - continent="ওশেনিয়া", - name="টুভালু", - capital="ফুনাফুটি", - ), - Country( - timezones=["আফ্রিকা/দার_এস_সালাম"], - alpha_2_code="TZ", - alpha_3_code="TZA", - continent="আফ্রিকা", - name="তানজানিয়া", - capital="ডোডোমা", - ), - Country( - timezones=[ - "ইউরোপ/কিয়েভ", - "ইউরোপ/উজগোরড", - "ইউরোপ/জাপোরোজি", - "ইউরোপ/সিমফেরোপল", - ], - alpha_2_code="UA", - alpha_3_code="UKR", - continent="ইউরোপ", - name="ইউক্রেন", - capital="কিয়েভ", - ), - Country( - timezones=["আফ্রিকা/কাম্পালা"], - alpha_2_code="UG", - alpha_3_code="UGA", - continent="আফ্রিকা", - name="উগান্ডা", - capital="কাম্পালা", - ), - Country( - timezones=[ - "আমেরিকা/নিউইয়র্ক", - "আমেরিকা/ডেট্রয়েট", - "আমেরিকা/কেনটাকি/লুইসভিল", - "আমেরিকা/কেনটাকি/মন্টিসেলো", - "আমেরিকা/ইন্ডিয়ানা/ইন্ডিয়ানাপোলিস", - "আমেরিকা/ইন্ডিয়ানা/মারেঙ্গো", - "আমেরিকা/ইন্ডিয়ানা/নক্স", - "আমেরিকা/ইন্ডিয়ানা/ভেভে", - "আমেরিকা/শিকাগো", - "আমেরিকা/ইন্ডিয়ানা/ভিনসেনেস", - "আমেরিকা/ইন্ডিয়ানা/পিটার্সবার্গ", - "আমেরিকা/মেনোমিনী", - "আমেরিকা/উত্তর_ডাকোটা/সেন্টার", - "আমেরিকা/উত্তর_ডাকোটা/নিউ_সালেম", - "আমেরিকা/ডেনভার", - "আমেরিকা/বোইস", - "আমেরিকা/শিপ্রক", - "আমেরিকা/ফিনিক্স", - "আমেরিকা/লস_এঞ্জেলেস", - "আমেরিকা/অ্যাঙ্কোরেজ", - "আমেরিকা/জুনেউ", - "আমেরিকা/ইয়াকুটাত", - "আমেরিকা/name", - "আমেরিকা/আডাক", - "প্যাসিফিক/হনোলুলু", - ], - alpha_2_code="মার্কিন যুক্তরাষ্ট্র", - alpha_3_code="USA", - continent="উত্তর আমেরিকা", - name="মার্কিন যুক্তরাষ্ট্র", - capital="ওয়াশিংটন, ডিসি", - ), - Country( - timezones=["আমেরিকা/মন্টেভিডিও"], - alpha_2_code="UY", - alpha_3_code="URY", - continent="দক্ষিণ আমেরিকা", - name="উরুগুয়ে", - capital="মন্টেভিডিও", - ), - Country( - timezones=["এশিয়া/সমরকন্দ", "এশিয়া/তাসখন্দ"], - alpha_2_code="UZ", - alpha_3_code="UZB", - continent="এশিয়া", - name="উজবেকিস্তান", - capital="তাসখন্দ", - ), - Country( - timezones=["ইউরোপ/ভ্যাটিকান"], - alpha_2_code="VA", - alpha_3_code="ভ্যাট", - continent="ইউরোপ", - name="ভ্যাটিকান সিটি", - capital="ভ্যাটিকান সিটি", - ), - Country( - timezones=["আমেরিকা/কারাকাস"], - alpha_2_code="VE", - alpha_3_code="VEN", - continent="দক্ষিণ আমেরিকা", - name="ভেনিজুয়েলা", - capital="কারাকাস", - ), - Country( - timezones=["এশিয়া/সাইগন"], - alpha_2_code="VN", - alpha_3_code="VNM", - continent="এশিয়া", - name="ভিয়েতname", - capital="হানয়", - ), - Country( - timezones=["প্যাসিফিক/ইফেট"], - alpha_2_code="VU", - alpha_3_code="VUT", - continent="ওশেনিয়া", - name="ভানুয়াতু", - capital="পোর্ট ভিলা", - ), - Country( - timezones=["এশিয়া/এডেন"], - alpha_2_code="YE", - alpha_3_code="YEM", - continent="এশিয়া", - name="ইয়েমেন", - capital="সানা", - ), - Country( - timezones=["আফ্রিকা/লুসাকা"], - alpha_2_code="ZM", - alpha_3_code="ZMB", - continent="আফ্রিকা", - name="জাম্বিয়া", - capital="লুসাকা", - ), - Country( - timezones=["আফ্রিকা/হারারে"], - alpha_2_code="ZW", - alpha_3_code="ZWE", - continent="আফ্রিকা", - name="জিম্বাবুয়ে", - capital="হারারে", - ), - Country( - timezones=["আফ্রিকা/আলজিয়ার্স"], - alpha_2_code="DZ", - alpha_3_code="DZA", - continent="আফ্রিকা", - name="আলজেরিয়া", - capital="আলজিয়ার্স", - ), - Country( - timezones=["ইউরোপ/সারাজেভো"], - alpha_2_code="BA", - alpha_3_code="BIH", - continent="ইউরোপ", - name="বসনিয়া ও হার্জেগোভিনা", - capital="সারায়েভো", - ), - Country( - timezones=["এশিয়া/ফনম_পেন"], - alpha_2_code="KH", - alpha_3_code="KHM", - continent="এশিয়া", - name="কম্বোডিয়া", - capital="নম পেন", - ), - Country( - timezones=["আফ্রিকা/বাঙ্গুই"], - alpha_2_code="CF", - alpha_3_code="CAF", - continent="আফ্রিকা", - name="মধ্য আফ্রিকান প্রজাতন্ত্র", - capital="বাঙ্গুই", - ), - Country( - timezones=["আফ্রিকা/এনডজামেনা"], - alpha_2_code="TD", - alpha_3_code="TCD", - continent="আফ্রিকা", - name="চাদ", - capital="এন'জামেনা", - ), - Country( - timezones=["ভারতীয়/কোমোরো"], - alpha_2_code="KM", - alpha_3_code="COM", - continent="আফ্রিকা", - name="কোমোরোস", - capital="মোরোনি", - ), - Country( - timezones=["ইউরোপ/জাগরেব"], - alpha_2_code="HR", - alpha_3_code="HRV", - continent="ইউরোপ", - name="ক্রোয়েশিয়া", - capital="জাগরেব", - ), - Country( - timezones=["এশিয়া/দিলি"], - alpha_2_code="TL", - alpha_3_code="TLS", - continent="এশিয়া", - name="পূর্ব তিমুর", - capital="দিলি", - ), - Country( - timezones=["আমেরিকা/এল_সালভাদর"], - alpha_2_code="SV", - alpha_3_code="SLV", - continent="উত্তর আমেরিকা", - name="এল সালভাদর", - capital="সান সালভাদর", - ), - Country( - timezones=["আফ্রিকা/মালাবো"], - alpha_2_code="GQ", - alpha_3_code="GNQ", - continent="আফ্রিকা", - name="নিরক্ষীয় গিনি", - capital="মালাবো", - ), - Country( - timezones=["আমেরিকা/গ্রেনাডা"], - alpha_2_code="GD", - alpha_3_code="GRD", - continent="উত্তর আমেরিকা", - name="গ্রেনাডা", - capital="সেন্ট জর্জস", - ), - Country( - timezones=[ - "এশিয়া/আলমাটি", - "এশিয়া/কিউজিলর্ডা", - "এশিয়া/আকতোব", - "এশিয়া/আকতাউ", - "এশিয়া/ওরাল", - ], - alpha_2_code="KZ", - alpha_3_code="KAZ", - continent="এশিয়া", - name="কাজাখস্তান", - capital="আস্তানা", - ), - Country( - timezones=["এশিয়া/ভিয়েনতিয়েন"], - alpha_2_code="LA", - alpha_3_code="LAO", - continent="এশিয়া", - name="লাওস", - capital="ভিয়েনতিয়েন", - ), - Country( - timezones=["প্যাসিফিক/ট্রুক", "প্যাসিফিক/পোনাপে", "প্যাসিফিক/কোসরা"], - alpha_2_code="FM", - alpha_3_code="FSM", - continent="ওশেনিয়া", - name="মাইক্রোনেশিয়ার ফেডারেটেড স্টেটস", - capital="পালকির", - ), - Country( - timezones=["ইউরোপ/চিসিনাউ"], - alpha_2_code="MD", - alpha_3_code="MDA", - continent="ইউরোপ", - name="মোল্দোভা", - capital="চি\xc5\x9fin\xc4\x83u", - ), - Country( - timezones=["ইউরোপ/মোনাকো"], - alpha_2_code="MC", - alpha_3_code="MCO", - continent="ইউরোপ", - name="মোনাকো", - capital="মোনাকো", - ), - Country( - timezones=["ইউরোপ/পডগোরিকা"], - alpha_2_code="ME", - alpha_3_code="MNE", - continent="ইউরোপ", - name="মন্টিনিগ্রো", - capital="পডগোরিকা", - ), - Country( - timezones=["আফ্রিকা/ক্যাসাব্লাঙ্কা"], - alpha_2_code="MA", - alpha_3_code="MAR", - continent="আফ্রিকা", - name="মরক্কো", - capital="রাবাত", - ), - Country( - timezones=["আমেরিকা/সেন্ট_কিটস"], - alpha_2_code="KN", - alpha_3_code="KNA", - continent="উত্তর আমেরিকা", - name="সেন্ট কিটস অ্যান্ড নেভিস", - capital="ব্যাসেটেরে", - ), - Country( - timezones=["আমেরিকা/সেন্ট_লুসিয়া"], - alpha_2_code="LC", - alpha_3_code="LCA", - continent="উত্তর আমেরিকা", - name="সেন্ট লুসিয়া", - capital="ক্যাস্ট্রিজ", - ), - Country( - timezones=["America/St_Vincent"], - alpha_2_code="ভিসি", - alpha_3_code="VCT", - continent="উত্তর আমেরিকা", - name="সেন্ট ভিনসেন্ট এবং গ্রেনাডাইনস", - capital="কিংসটাউন", - ), - Country( - timezones=["প্যাসিফিক/অপিয়া"], - alpha_2_code="WS", - alpha_3_code="WSM", - continent="ওশেনিয়া", - name="সামোয়া", - capital="আপিয়া", - ), - Country( - timezones=["ইউরোপ/বেলগ্রেড"], - alpha_2_code="RS", - alpha_3_code="SRB", - continent="ইউরোপ", - name="সার্বিয়া", - capital="বেলগ্রেড", - ), - Country( - timezones=["আফ্রিকা/জোহানেসবার্গ"], - alpha_2_code="ZA", - alpha_3_code="ZAF", - continent="আফ্রিকা", - name="দক্ষিণ আফ্রিকা", - capital="প্রিটোরিয়া", - ), - Country( - timezones=["ইউরোপ/মাদ্রিদ", "আফ্রিকা/সেউটা", "আটলান্টিক/ক্যানারি"], - alpha_2_code="ES", - alpha_3_code="ESP", - continent="ইউরোপ", - name="স্পেন", - capital="মাদ্রিদ", - ), - Country( - timezones=["এশিয়া/কলম্বো"], - alpha_2_code="LK", - alpha_3_code="LKA", - continent="এশিয়া", - name="শ্রীলঙ্কা", - capital="শ্রী জয়বর্ধনেপুরা কোট্টে", - ), - Country( - timezones=["আফ্রিকা/এমবাবেন"], - alpha_2_code="SZ", - alpha_3_code="SWZ", - continent="আফ্রিকা", - name="সোয়াজিল্যান্ড", - capital="এমবাবেন", - ), - Country( - timezones=["ইউরোপ/জুরিখ"], - alpha_2_code="CH", - alpha_3_code="CHE", - continent="ইউরোপ", - name="সুইজারল্যান্ড", - capital="বার্ন", - ), - Country( - timezones=["এশিয়া/দুবাই"], - alpha_2_code="AE", - alpha_3_code="ARE", - continent="এশিয়া", - name="সংযুক্ত আরব আমিরাত", - capital="আবুধাবি", - ), - Country( - timezones=["ইউরোপ/লন্ডন"], - alpha_2_code="GB", - alpha_3_code="GBR", - continent="ইউরোপ", - name="যুক্তরাজ্য", - capital="লন্ডন", - ), - Country( - timezones=["এশিয়া/তাইপেই"], - alpha_2_code="TW", - alpha_3_code="TWN", - continent="এশিয়া", - name="তাইওয়ান", - capital="তাইপেই", - ), - Country( - timezones=["এশিয়া/গাজা", "এশিয়া/হেব্রন"], - alpha_2_code="PS", - alpha_3_code="PSE", - continent="এশিয়া", - name="ফিলিস্তিন", - capital="রামাল্লা", - ), - ] - - 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] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/bn_BD/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/bn_BD/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 090c8fd..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/bn_BD/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/cs_CZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/cs_CZ/__init__.py deleted file mode 100644 index 45b39c2..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/cs_CZ/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "neděle", - "1": "pondělí", - "2": "úterý", - "3": "středa", - "4": "čtvrtek", - "5": "pátek", - "6": "sobota", - } - - MONTH_NAMES = { - "01": "leden", - "02": "únor", - "03": "březen", - "04": "duben", - "05": "květen", - "06": "červen", - "07": "červenec", - "08": "srpen", - "09": "září", - "10": "říjen", - "11": "listopad", - "12": "prosinec", - } - - 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/.venv/lib/python3.12/site-packages/faker/providers/date_time/cs_CZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/cs_CZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d710c14..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/cs_CZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/da_DK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/da_DK/__init__.py deleted file mode 100644 index b2d238d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/da_DK/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "mandag", - "1": "tirsdag", - "2": "onsdag", - "3": "torsdag", - "4": "fredag", - "5": "lørdag", - "6": "søndag", - } - - MONTH_NAMES = { - "01": "januar", - "02": "februar", - "03": "marts", - "04": "april", - "05": "maj", - "06": "juni", - "07": "juli", - "08": "august", - "09": "september", - "10": "oktober", - "11": "november", - "12": "decembder", - } - - 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/.venv/lib/python3.12/site-packages/faker/providers/date_time/da_DK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/da_DK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0818bf2..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/da_DK/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/de_AT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/de_AT/__init__.py deleted file mode 100644 index 26a7974..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/de_AT/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "Sonntag", - "1": "Montag", - "2": "Dienstag", - "3": "Mittwoch", - "4": "Donnerstag", - "5": "Freitag", - "6": "Samstag", - } - - MONTH_NAMES = { - "01": "Jänner", - "02": "Februar", - "03": "März", - "04": "April", - "05": "Mai", - "06": "Juni", - "07": "Juli", - "08": "August", - "09": "September", - "10": "Oktober", - "11": "November", - "12": "Dezember", - } - - 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/.venv/lib/python3.12/site-packages/faker/providers/date_time/de_AT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/de_AT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ea700c0..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/de_AT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/de_DE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/de_DE/__init__.py deleted file mode 100644 index 70c776d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/de_DE/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "Sonntag", - "1": "Montag", - "2": "Dienstag", - "3": "Mittwoch", - "4": "Donnerstag", - "5": "Freitag", - "6": "Samstag", - } - - MONTH_NAMES = { - "01": "Januar", - "02": "Februar", - "03": "März", - "04": "April", - "05": "Mai", - "06": "Juni", - "07": "Juli", - "08": "August", - "09": "September", - "10": "Oktober", - "11": "November", - "12": "Dezember", - } - - 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/.venv/lib/python3.12/site-packages/faker/providers/date_time/de_DE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/de_DE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index c4a14b4..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/de_DE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/el_GR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/el_GR/__init__.py deleted file mode 100644 index 198b730..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/el_GR/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - 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/.venv/lib/python3.12/site-packages/faker/providers/date_time/el_GR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/el_GR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 70065e7..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/el_GR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_PH/__init__.py deleted file mode 100644 index f57570e..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_PH/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - """No difference from default DateTimeProvider""" - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1c1d9ec..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_PH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_US/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_US/__init__.py deleted file mode 100644 index 542b583..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_US/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_US/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_US/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f0df477..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_US/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/es/__init__.py deleted file mode 100644 index 7b742cb..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "domingo", - "1": "lunes", - "2": "martes", - "3": "miércoles", - "4": "jueves", - "5": "viernes", - "6": "sábado", - } - - MONTH_NAMES = { - "01": "enero", - "02": "febrero", - "03": "marzo", - "04": "abril", - "05": "mayo", - "06": "junio", - "07": "julio", - "08": "agosto", - "09": "septiembre", - "10": "octubre", - "11": "noviembre", - "12": "diciembre", - } - - 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/.venv/lib/python3.12/site-packages/faker/providers/date_time/es/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/es/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3e542c1..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_AR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_AR/__init__.py deleted file mode 100644 index 8aac302..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_AR/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from ..es import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_AR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_AR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ab0a83a..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_AR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_CL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_CL/__init__.py deleted file mode 100644 index 8aac302..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_CL/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from ..es import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_CL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_CL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e965aae..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_CL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_ES/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_ES/__init__.py deleted file mode 100644 index 8aac302..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_ES/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from ..es import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_ES/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_ES/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index cb029e7..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_ES/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fil_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/fil_PH/__init__.py deleted file mode 100644 index b569092..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fil_PH/__init__.py +++ /dev/null @@ -1,37 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - """Provider for datetimes for fil_PH locale""" - - DAY_NAMES = { - "0": "Linggo", - "1": "Lunes", - "2": "Martes", - "3": "Miyerkules", - "4": "Huwebes", - "5": "Biyernes", - "6": "Sabado", - } - MONTH_NAMES = { - "01": "Enero", - "02": "Pebrero", - "03": "Marso", - "04": "Abril", - "05": "Mayo", - "06": "Hunyo", - "07": "Hulyo", - "08": "Agosto", - "09": "Setyembre", - "10": "Oktubre", - "11": "Nobyembre", - "12": "Disyembre", - } - - 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/.venv/lib/python3.12/site-packages/faker/providers/date_time/fil_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/fil_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2e7d061..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fil_PH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_CA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_CA/__init__.py deleted file mode 100644 index 3756d8a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_CA/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from typing import Any - -from ..fr_FR import Provider as FRFRProvider - - -class Provider(FRFRProvider): - def __init__(self, *args: Any, **kwargs: Any) -> None: - super().__init__(*args, **kwargs) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_CA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_CA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5bc0738..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_CA/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_DZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_DZ/__init__.py deleted file mode 100644 index 776a8e3..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_DZ/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from ..fr_FR import Provider as fr_FRProvider - - -class Provider(fr_FRProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_DZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_DZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 43f4c72..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_DZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_FR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_FR/__init__.py deleted file mode 100644 index b7d25de..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_FR/__init__.py +++ /dev/null @@ -1,35 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "dimanche", - "1": "lundi", - "2": "mardi", - "3": "mercredi", - "4": "jeudi", - "5": "vendredi", - "6": "samedi", - } - MONTH_NAMES = { - "01": "Janvier", - "02": "Février", - "03": "Mars", - "04": "Avril", - "05": "Mai", - "06": "Juin", - "07": "Juillet", - "08": "Août", - "09": "Septembre", - "10": "Octobre", - "11": "Novembre", - "12": "Décembre", - } - - 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] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_FR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_FR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0a7653f..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_FR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/gu_IN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/gu_IN/__init__.py deleted file mode 100644 index 61028b7..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/gu_IN/__init__.py +++ /dev/null @@ -1,76 +0,0 @@ -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_in_guj() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/gu_IN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/gu_IN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a2ada97..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/gu_IN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hi_IN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/hi_IN/__init__.py deleted file mode 100644 index 06ff2f1..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hi_IN/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - def day_of_week(self) -> str: - day = self.date("%w") - DAY_NAMES = { - "0": "सोमवार", - "1": "मंगलवार", - "2": "बुधवार", - "3": "गुरुवार", - "4": "जुम्मा", - "5": "शनिवार", - "6": "रविवार", - } - - return DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - MONTH_NAMES = { - "01": "जनवरी", - "02": "फ़रवरी", - "03": "मार्च", - "04": "अप्रैल", - "05": "मई", - "06": "जून", - "07": "जुलाई", - "08": "अगस्त", - "09": "सितंबर", - "10": "अक्टूबर", - "11": "नवंबर", - "12": "दिसंबर", - } - - return MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hi_IN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/hi_IN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4249345..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hi_IN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hr_HR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/hr_HR/__init__.py deleted file mode 100644 index 010ebb8..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hr_HR/__init__.py +++ /dev/null @@ -1,34 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - def day_of_week(self) -> str: - day = self.date("%w") - DAY_NAMES = { - "0": "Nedjelja", - "1": "Ponedjeljak", - "2": "Utorak", - "3": "Srijeda", - "4": "Četvrtak", - "5": "Petak", - "6": "Subota", - } - return DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - MONTH_NAMES = { - "01": "Siječanj", - "02": "Veljača", - "03": "Ožujak", - "04": "Travanj", - "05": "Svibanj", - "06": "Lipanj", - "07": "Srpanj", - "08": "Kolovoz", - "09": "Rujan", - "10": "Listopad", - "11": "Studeni", - "12": "Prosinac", - } - return MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hr_HR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/hr_HR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 79f9b9e..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hr_HR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hu_HU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/hu_HU/__init__.py deleted file mode 100644 index 58a22b0..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hu_HU/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - def day_of_week(self) -> str: - day = self.date("%w") - DAY_NAMES = { - "0": "hétfő", - "1": "kedd", - "2": "szerda", - "3": "csütörtök", - "4": "péntek", - "5": "szombat", - "6": "vasárnap", - } - - return DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - MONTH_NAMES = { - "01": "január", - "02": "február", - "03": "március", - "04": "április", - "05": "május", - "06": "junius", - "07": "julius", - "08": "augusztus", - "09": "szeptember", - "10": "október", - "11": "november", - "12": "december", - } - - return MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hu_HU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/hu_HU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 19a3c78..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hu_HU/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hy_AM/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/hy_AM/__init__.py deleted file mode 100644 index 01b25cd..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hy_AM/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - 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/.venv/lib/python3.12/site-packages/faker/providers/date_time/hy_AM/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/hy_AM/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index c27deea..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hy_AM/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/id_ID/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/id_ID/__init__.py deleted file mode 100644 index f59e3fd..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/id_ID/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - def day_of_week(self) -> str: - day = self.date("%w") - DAY_NAMES = { - "0": "Senin", - "1": "Selasa", - "2": "Rabu", - "3": "Kamis", - "4": "Jumat", - "5": "Sabtu", - "6": "Minggu", - } - - return DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - MONTH_NAMES = { - "01": "Januari", - "02": "Februari", - "03": "Maret", - "04": "April", - "05": "Mei", - "06": "Juni", - "07": "Juli", - "08": "Agustus", - "09": "September", - "10": "Oktober", - "11": "November", - "12": "Desember", - } - - return MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/id_ID/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/id_ID/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 04fd87e..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/id_ID/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/it_IT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/it_IT/__init__.py deleted file mode 100644 index 53f841f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/it_IT/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "domenica", - "1": "lunedì", - "2": "martedì", - "3": "mercoledì", - "4": "giovedì", - "5": "venerdì", - "6": "sabato", - } - - MONTH_NAMES = { - "01": "gennaio", - "02": "febbraio", - "03": "marzo", - "04": "aprile", - "05": "maggio", - "06": "giugno", - "07": "luglio", - "08": "agosto", - "09": "settembre", - "10": "ottobre", - "11": "novembre", - "12": "dicembre", - } - - 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/.venv/lib/python3.12/site-packages/faker/providers/date_time/it_IT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/it_IT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 03f5f68..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/it_IT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ja_JP/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ja_JP/__init__.py deleted file mode 100644 index 6ea489d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ja_JP/__init__.py +++ /dev/null @@ -1,54 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - MONTH_NAMES = { - "01": "一月", - "02": "二月", - "03": "三月", - "04": "四月", - "05": "五月", - "06": "六月", - "07": "七月", - "08": "八月", - "09": "九月", - "10": "十月", - "11": "十一月", - "12": "十二月", - } - - TRADITIONAL_MONTH_NAMES = { - "01": "睦月", - "02": "如月", - "03": "弥生", - "04": "卯月", - "05": "皐月", - "06": "水無月", - "07": "文月", - "08": "葉月", - "09": "長月", - "10": "神無月", - "11": "霜月", - "12": "師走", - } - DAY_NAMES = { - "0": "日曜日", - "1": "月曜日", - "2": "火曜日", - "3": "水曜日", - "4": "木曜日", - "5": "金曜日", - "6": "土曜日", - } - - 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 traditional_month_name(self) -> str: - month = self.month() - return self.TRADITIONAL_MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ja_JP/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ja_JP/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 79fbe4f..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ja_JP/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ka_GE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ka_GE/__init__.py deleted file mode 100644 index dff9764..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ka_GE/__init__.py +++ /dev/null @@ -1,37 +0,0 @@ -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/.venv/lib/python3.12/site-packages/faker/providers/date_time/ka_GE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ka_GE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 03ce0b8..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ka_GE/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ko_KR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ko_KR/__init__.py deleted file mode 100644 index 12de462..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ko_KR/__init__.py +++ /dev/null @@ -1,34 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - def day_of_week(self) -> str: - day = self.date("%w") - DAY_NAMES = { - "0": "일요일", - "1": "월요일", - "2": "화요일", - "3": "수요일", - "4": "목요일", - "5": "금요일", - "6": "토요일", - } - return DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - MONTH_NAMES = { - "01": "1월", - "02": "2월", - "03": "3월", - "04": "4월", - "05": "5월", - "06": "6월", - "07": "7월", - "08": "8월", - "09": "9월", - "10": "10월", - "11": "11월", - "12": "12월", - } - return MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ko_KR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ko_KR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 28d4fd9..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ko_KR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/nl_NL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/nl_NL/__init__.py deleted file mode 100644 index 46a8da1..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/nl_NL/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "zondag", - "1": "maandag", - "2": "dinsdag", - "3": "woensdag", - "4": "donderdag", - "5": "vrijdag", - "6": "zaterdag", - } - - MONTH_NAMES = { - "01": "januari", - "02": "februari", - "03": "maart", - "04": "april", - "05": "mei", - "06": "juni", - "07": "juli", - "08": "augustus", - "09": "september", - "10": "oktober", - "11": "november", - "12": "december", - } - - 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/.venv/lib/python3.12/site-packages/faker/providers/date_time/nl_NL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/nl_NL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 53b5bd1..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/nl_NL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/no_NO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/no_NO/__init__.py deleted file mode 100644 index ac367ee..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/no_NO/__init__.py +++ /dev/null @@ -1,35 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - MONTH_NAMES = { - "01": "januar", - "02": "februar", - "03": "mars", - "04": "april", - "05": "mai", - "06": "juni", - "07": "juli", - "08": "august", - "09": "september", - "10": "oktober", - "11": "november", - "12": "desember", - } - DAY_NAMES = { - "0": "søndag", - "1": "mandag", - "2": "tirsdag", - "3": "onsdag", - "4": "torsdag", - "5": "fredag", - "6": "lørdag", - } - - 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] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/no_NO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/no_NO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 562620f..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/no_NO/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/pl_PL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/pl_PL/__init__.py deleted file mode 100644 index 7e4620c..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/pl_PL/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "poniedziałek", - "1": "wtorek", - "2": "środa", - "3": "czwartek", - "4": "piątek", - "5": "sobota", - "6": "niedziela", - } - - MONTH_NAMES = { - "01": "styczeń", - "02": "luty", - "03": "marzec", - "04": "kwiecień", - "05": "maj", - "06": "czerwiec", - "07": "lipiec", - "08": "sierpień", - "09": "wrzesień", - "10": "październik", - "11": "listopad", - "12": "grudzień", - } - - 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/.venv/lib/python3.12/site-packages/faker/providers/date_time/pl_PL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/pl_PL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5f776af..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/pl_PL/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/pt_BR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/pt_BR/__init__.py deleted file mode 100644 index 80f3c23..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/pt_BR/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "domingo", - "1": "segunda-feira", - "2": "terça-feira", - "3": "quarta-feira", - "4": "quinta-feira", - "5": "sexta-feira", - "6": "sábado", - } - - MONTH_NAMES = { - "01": "janeiro", - "02": "fevereiro", - "03": "março", - "04": "abril", - "05": "maio", - "06": "junho", - "07": "julho", - "08": "agosto", - "09": "setembro", - "10": "outubro", - "11": "novembro", - "12": "dezembro", - } - - 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/.venv/lib/python3.12/site-packages/faker/providers/date_time/pt_BR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/pt_BR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index dfdfe63..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/pt_BR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/pt_PT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/pt_PT/__init__.py deleted file mode 100644 index 80f3c23..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/pt_PT/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "domingo", - "1": "segunda-feira", - "2": "terça-feira", - "3": "quarta-feira", - "4": "quinta-feira", - "5": "sexta-feira", - "6": "sábado", - } - - MONTH_NAMES = { - "01": "janeiro", - "02": "fevereiro", - "03": "março", - "04": "abril", - "05": "maio", - "06": "junho", - "07": "julho", - "08": "agosto", - "09": "setembro", - "10": "outubro", - "11": "novembro", - "12": "dezembro", - } - - 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/.venv/lib/python3.12/site-packages/faker/providers/date_time/pt_PT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/pt_PT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 575a987..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/pt_PT/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ro_RO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ro_RO/__init__.py deleted file mode 100644 index de733e2..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ro_RO/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "duminica", - "1": "luni", - "2": "marti", - "3": "miercuri", - "4": "joi", - "5": "vineri", - "6": "sambata", - } - - MONTH_NAMES = { - "01": "ianuarie", - "02": "februarie", - "03": "martie", - "04": "aprilie", - "05": "mai", - "06": "iunie", - "07": "iulie", - "08": "august", - "09": "septembrie", - "10": "octombrie", - "11": "noiembrie", - "12": "decembrie", - } - - 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/.venv/lib/python3.12/site-packages/faker/providers/date_time/ro_RO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ro_RO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index dcef693..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ro_RO/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ru_RU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ru_RU/__init__.py deleted file mode 100644 index 25fd9a6..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ru_RU/__init__.py +++ /dev/null @@ -1,1640 +0,0 @@ -from faker.typing import Country - -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "Воскресенье", - "1": "Понедельник", - "2": "Вторник", - "3": "Среда", - "4": "Четверг", - "5": "Пятница", - "6": "Суббота", - } - - MONTH_NAMES = { - "01": "Январь", - "02": "Февраль", - "03": "Март", - "04": "Апрель", - "05": "Май", - "06": "Июнь", - "07": "Июль", - "08": "Август", - "09": "Сентябрь", - "10": "Октябрь", - "11": "Ноябрь", - "12": "Декабрь", - } - - # Timezone names are based on Wiki list, source: https://ru.wikipedia.org/wiki/Список_часовых_поясов_по_странам - countries = [ - Country( - timezones=["Андорра (UTC+01)"], - alpha_2_code="AD", - alpha_3_code="AND", - continent="Европа", - name="Андорра", - capital="Андорра-ла-Велья", - ), - Country( - timezones=["Афганистан (UTC+04:30)"], - alpha_2_code="AF", - alpha_3_code="AFG", - continent="Азия", - name="Афганистан", - capital="Кабул", - ), - Country( - timezones=["Антигуа и Барбуда (UTC-04)"], - alpha_2_code="AG", - alpha_3_code="ATG", - continent="Северная Америка", - name="Антигуа и Барбуда", - capital="Сент-Джонс", - ), - Country( - timezones=["Албания (UTC+01)"], - alpha_2_code="AL", - alpha_3_code="ALB", - continent="Европа", - name="Албания", - capital="Тирана", - ), - Country( - timezones=["Армения (UTC+04)"], - alpha_2_code="AM", - alpha_3_code="ARM", - continent="Азия", - name="Армения", - capital="Ереван", - ), - Country( - timezones=["Ангола (UTC+01)"], - alpha_2_code="AO", - alpha_3_code="AGO", - continent="Африка", - name="Ангола", - capital="Луанда", - ), - Country( - timezones=["Аргентина (UTC-03)"], - alpha_2_code="AR", - alpha_3_code="ARG", - continent="Южная Америка", - name="Аргентина", - capital="Буэнос Айрес", - ), - Country( - timezones=["Австрия (UTC+01)"], - alpha_2_code="AT", - alpha_3_code="AUT", - continent="Европа", - name="Австрия", - capital="Вена", - ), - Country( - timezones=[ - "Австралия (UTC+05)", - "Австралия (UTC+06:30)", - "Австралия (UTC+07)", - "Австралия (UTC+08)", - "Австралия (UTC+9:30)", - "Австралия (UTC+10)", - "Австралия (UTC+10:30)", - "Австралия (UTC+11:30)", - ], - alpha_2_code="AU", - alpha_3_code="AUS", - continent="Океания", - name="Австралия", - capital="Канберра", - ), - Country( - timezones=["Азербайджан (UTC+04)"], - alpha_2_code="AZ", - alpha_3_code="AZE", - continent="Азия", - name="Азербайджан", - capital="Баку", - ), - Country( - timezones=["Барбадос (UTC-04)"], - alpha_2_code="BB", - alpha_3_code="BRB", - continent="Северная Америка", - name="Барбадос", - capital="Бриджтаун", - ), - Country( - timezones=["Бангладеш (UTC+06)"], - alpha_2_code="BD", - alpha_3_code="BGD", - continent="Азия", - name="Бангладеш", - capital="Дака", - ), - Country( - timezones=["Бельгия (UTC+01)"], - alpha_2_code="BE", - alpha_3_code="BEL", - continent="Европа", - name="Бельгия", - capital="Брюссель", - ), - Country( - timezones=["Буркина-Фасо (UTC)"], - alpha_2_code="BF", - alpha_3_code="BFA", - continent="Африка", - name="Буркина-Фасо", - capital="Уагадугу", - ), - Country( - timezones=["Болгария (UTC+02)"], - alpha_2_code="BG", - alpha_3_code="BGR", - continent="Европа", - name="Болгария", - capital="София", - ), - Country( - timezones=["Бахрейн (UTC+03)"], - alpha_2_code="BH", - alpha_3_code="BHR", - continent="Азия", - name="Бахрейн", - capital="Манама", - ), - Country( - timezones=["Бурунди (UTC+02)"], - alpha_2_code="BI", - alpha_3_code="BDI", - continent="Африка", - name="Бурунди", - capital="Гитега", - ), - Country( - timezones=["Бенин (UTC+01)"], - alpha_2_code="BJ", - alpha_3_code="BEN", - continent="Африка", - name="Бенин", - capital="Порто-Ново", - ), - Country( - timezones=["Бруней (UTC+08)"], - alpha_2_code="BN", - alpha_3_code="BRN", - continent="Азия", - name="Бруней", - capital="Бандар-Сери-Бегаван", - ), - Country( - timezones=["Боливия (UTC-04)"], - alpha_2_code="BO", - alpha_3_code="BOL", - continent="Южная Америка", - name="Боливия", - capital="Сукре", - ), - Country( - timezones=[ - "Бразилия (UTC-05)", - "Бразилия (UTC-04)", - "Бразилия (UTC-03)", - "Бразилия (UTC-02)", - ], - alpha_2_code="BR", - alpha_3_code="BRA", - continent="Южная Америка", - name="Бразилия", - capital="Бразилиа", - ), - Country( - timezones=["Багамские Острова (UTC-05)"], - alpha_2_code="BS", - alpha_3_code="BHS", - continent="Северная Америка", - name="Багамские Острова", - capital="Нассау", - ), - Country( - timezones=["Бутан (UTC+06)"], - alpha_2_code="BT", - alpha_3_code="BTN", - continent="Азия", - name="Бутан", - capital="Тхимпху", - ), - Country( - timezones=["Ботсвана (UTC+02)"], - alpha_2_code="BW", - alpha_3_code="BWA", - continent="Африка", - name="Ботсвана", - capital="Габороне", - ), - Country( - timezones=["Белоруссия (UTC+03)"], - alpha_2_code="BY", - alpha_3_code="BLR", - continent="Европа", - name="Белоруссия", - capital="Минск", - ), - Country( - timezones=["Белиз (UTC-06)"], - alpha_2_code="BZ", - alpha_3_code="BLZ", - continent="Северная Америка", - name="Белиз", - capital="Бельмопан", - ), - Country( - timezones=[ - "Канада (UTC-08)", - "Канада (UTC-07)", - "Канада (UTC-06)", - "Канада (UTC-05)", - "Канада (UTC-04)", - "Канада (UTC-03:30)", - ], - alpha_2_code="CA", - alpha_3_code="CAN", - continent="Северная Америка", - name="Канада", - capital="Оттава", - ), - Country( - timezones=[ - "Демократическая Республика Конго (UTC+01)", - "Демократическая Республика Конго (UTC+02)", - ], - alpha_2_code="CD", - alpha_3_code="COD", - continent="Африка", - name="Демократическая Республика Конго", - capital="Киншаса", - ), - Country( - timezones=["Республика Конго (UTC+01)"], - alpha_2_code="CG", - alpha_3_code="COG", - continent="Африка", - name="Руспублика Конго", - capital="Браззавиль", - ), - Country( - timezones=["Кот-д'Ивуар (UTC)"], - alpha_2_code="CI", - alpha_3_code="CIV", - continent="Африка", - name="Кот-д'Ивуар", - capital="Ямусукро", - ), - Country( - timezones=["Чили (UTC-06)", "Чили (UTC-04)"], - alpha_2_code="CL", - alpha_3_code="CHL", - continent="Южная Америка", - name="Чили", - capital="Сантьяго", - ), - Country( - timezones=["Камерун (UTC+01)"], - alpha_2_code="CM", - alpha_3_code="CMR", - continent="Африка", - name="Камерун", - capital="Яунде", - ), - Country( - timezones=["Китай (UTC+08)"], - alpha_2_code="CN", - alpha_3_code="CHN", - continent="Азия", - name="Китайская Народная Республика", - capital="Пекин", - ), - Country( - timezones=["Колумбия (UTC-05)"], - alpha_2_code="CO", - alpha_3_code="COL", - continent="Южная Америка", - name="Колумбия", - capital="Богота", - ), - Country( - timezones=["Коста-Рика (UTC-06)"], - alpha_2_code="CR", - alpha_3_code="CRI", - continent="Северная Америка", - name="Коста-Рика", - capital="Сан-Хосе", - ), - Country( - timezones=["Куба (UTC-05)"], - alpha_2_code="CU", - alpha_3_code="CUB", - continent="Северная Америка", - name="Куба", - capital="Гавана", - ), - Country( - timezones=["Кабо-Верде (UTC-01)"], - alpha_2_code="CV", - alpha_3_code="CPV", - continent="Африка", - name="Кабо-Верде", - capital="Прая", - ), - Country( - timezones=["Кипр (UTC+02)"], - alpha_2_code="CY", - alpha_3_code="CYP", - continent="Азия", - name="Кипр", - capital="Никосия", - ), - Country( - timezones=["Чехия (UTC+01)"], - alpha_2_code="CZ", - alpha_3_code="CZE", - continent="Европа", - name="Чехия", - capital="Прага", - ), - Country( - timezones=["Германия (UTC+01)"], - alpha_2_code="DE", - alpha_3_code="DEU", - continent="Европа", - name="Германия", - capital="Берлин", - ), - Country( - timezones=["Джибути (UTC+03)"], - alpha_2_code="DJ", - alpha_3_code="DJI", - continent="Африка", - name="Джибути", - capital="Джибути", - ), - Country( - timezones=["Дания (UTC+01)"], - alpha_2_code="DK", - alpha_3_code="DNK", - continent="Европа", - name="Дания", - capital="Копенгаген", - ), - Country( - timezones=["Доминика (UTC-04)"], - alpha_2_code="DM", - alpha_3_code="DMA", - continent="Северная Америка", - name="Доминика", - capital="Розо", - ), - Country( - timezones=["Доминиканская Республика (UTC-04)"], - alpha_2_code="DO", - alpha_3_code="DOM", - continent="Северная Америка", - name="Доминиканская Республика", - capital="Санто-Доминго", - ), - Country( - timezones=["Эквадор (UTC-06)", "Эквадор (UTC-05)"], - alpha_2_code="EC", - alpha_3_code="ECU", - continent="Южная Америка", - name="Эквадор", - capital="Кито", - ), - Country( - timezones=["Эстония (UTC+02)"], - alpha_2_code="EE", - alpha_3_code="EST", - continent="Европа", - name="Эстония", - capital="Таллинн", - ), - Country( - timezones=["Египет (UTC+02)"], - alpha_2_code="EG", - alpha_3_code="EGY", - continent="Африка", - name="Египет", - capital="Каир", - ), - Country( - timezones=["Эритрея (UTC+03)"], - alpha_2_code="ER", - alpha_3_code="ERI", - continent="Африка", - name="Эритрея", - capital="Асмэра", - ), - Country( - timezones=["Эфиопия (UTC+03)"], - alpha_2_code="ET", - alpha_3_code="ETH", - continent="Африка", - name="Эфиопия", - capital="Аддис-Абеба", - ), - Country( - timezones=["Финляндия (UTC+02)"], - alpha_2_code="FI", - alpha_3_code="FIN", - continent="Европа", - name="Финляндия", - capital="Хельсинки", - ), - Country( - timezones=["Фиджи (UTC+12)"], - alpha_2_code="FJ", - alpha_3_code="FJI", - continent="Океания", - name="Фиджи", - capital="Сува", - ), - Country( - timezones=["Франция (UTC+01)"], - alpha_2_code="FR", - alpha_3_code="FRA", - continent="Европа", - name="Франция", - capital="Париж", - ), - Country( - timezones=["Габон (UTC+01)"], - alpha_2_code="GA", - alpha_3_code="GAB", - continent="Африка", - name="Габон", - capital="Либревиль", - ), - Country( - timezones=["Грузия (UTC+04)"], - alpha_2_code="GE", - alpha_3_code="GEO", - continent="Азия", - name="Грузия", - capital="Тбилиси", - ), - Country( - timezones=["Гана (UTC)"], - alpha_2_code="GH", - alpha_3_code="GHA", - continent="Африка", - name="Гана", - capital="Аккра", - ), - Country( - timezones=["Гамбия (UTC)"], - alpha_2_code="GM", - alpha_3_code="GMB", - continent="Африка", - name="Гамбия", - capital="Банджул", - ), - Country( - timezones=["Гвинея (UTC)"], - alpha_2_code="GN", - alpha_3_code="GIN", - continent="Африка", - name="Гвинея", - capital="Конакри", - ), - Country( - timezones=["Греция (UTC+02)"], - alpha_2_code="GR", - alpha_3_code="GRC", - continent="Европа", - name="Греция", - capital="Афины", - ), - Country( - timezones=["Гватемала (UTC-06)"], - alpha_2_code="GT", - alpha_3_code="GTM", - continent="Северная Америка", - name="Гватемала", - capital="Гватемала", - ), - Country( - timezones=["Гаити (UTC-05)"], - alpha_2_code="HT", - alpha_3_code="HTI", - continent="Северная Америка", - name="Гаити", - capital="Порт-о-Пренс", - ), - Country( - timezones=["Гвинея-Бисау (UTC)"], - alpha_2_code="GW", - alpha_3_code="GNB", - continent="Африка", - name="Гвинея-Бисау", - capital="Бисау", - ), - Country( - timezones=["Гайана (UTC-04)"], - alpha_2_code="GY", - alpha_3_code="GUY", - continent="Южная Америка", - name="Гайана", - capital="Джорджтаун", - ), - Country( - timezones=["Гондурас (UTC-06)"], - alpha_2_code="HN", - alpha_3_code="HND", - continent="Северная Америка", - name="Гондурас", - capital="Тегусигальпа", - ), - Country( - timezones=["Венгрия (UTC+01)"], - alpha_2_code="HU", - alpha_3_code="HUN", - continent="Европа", - name="Венгрия", - capital="Будапешт", - ), - Country( - timezones=[ - "Индонезия (UTC+07)", - "Индонезия (UTC+08)", - "Индонезия (UTC+09)", - ], - alpha_2_code="ID", - alpha_3_code="IDN", - continent="Азия", - name="Индонезия", - capital="Джакарта", - ), - Country( - timezones=["Ирландия (UTC)"], - alpha_2_code="IE", - alpha_3_code="IRL", - continent="Европа", - name="Ирландия", - capital="Дублин", - ), - Country( - timezones=["Израиль (UTC+02)"], - alpha_2_code="IL", - alpha_3_code="ISR", - continent="Азия", - name="Израиль", - capital="Иерусалим", - ), - Country( - timezones=["Индия (UTC+05:30"], - alpha_2_code="IN", - alpha_3_code="IND", - continent="Азия", - name="Индия", - capital="Дели", - ), - Country( - timezones=["Ирак (UTC+03)"], - alpha_2_code="IQ", - alpha_3_code="IRQ", - continent="Азия", - name="Ирак", - capital="Багдад", - ), - Country( - timezones=["Иран (UTC+03:30)"], - alpha_2_code="IR", - alpha_3_code="IRN", - continent="Азия", - name="Иран", - capital="Тегеран", - ), - Country( - timezones=["Исландия (UTC)"], - alpha_2_code="IS", - alpha_3_code="ISL", - continent="Европа", - name="Исландия", - capital="Рейкьявик", - ), - Country( - timezones=["Италия (UTC+01)"], - alpha_2_code="IT", - alpha_3_code="ITA", - continent="Европа", - name="Италия", - capital="Рим", - ), - Country( - timezones=["Ямайка (UTC-05)"], - alpha_2_code="JM", - alpha_3_code="JAM", - continent="Северная Америка", - name="Ямайка", - capital="Кингстон", - ), - Country( - timezones=["Иордания (UTC+02)"], - alpha_2_code="JO", - alpha_3_code="JOR", - continent="Азия", - name="Иордания", - capital="Амман", - ), - Country( - timezones=["Япония (UTC+09)"], - alpha_2_code="JP", - alpha_3_code="JPN", - continent="Азия", - name="Япония", - capital="Токио", - ), - Country( - timezones=["Кения (UTC+03)"], - alpha_2_code="KE", - alpha_3_code="KEN", - continent="Африка", - name="Кения", - capital="Найроби", - ), - Country( - timezones=["Киргизия (UTC+06)"], - alpha_2_code="KG", - alpha_3_code="KGZ", - continent="Азия", - name="Киргизия", - capital="Бишкек", - ), - Country( - timezones=[ - "Кирибати (UTC+12)", - "Кирибати (UTC+13)", - "Кирибати (UTC+14)", - ], - alpha_2_code="KI", - alpha_3_code="KIR", - continent="Океания", - name="Кирибати", - capital="Южная Тарава", - ), - Country( - timezones=["КНДР (UTC+09)"], - alpha_2_code="KP", - alpha_3_code="PRK", - continent="Азия", - name="КНДР", - capital="Пхеньян", - ), - Country( - timezones=["Республика Корея (UTC+09)"], - alpha_2_code="KR", - alpha_3_code="KOR", - continent="Азия", - name="Республика Корея", - capital="Сеул", - ), - Country( - timezones=["Кувейт (UTC+03)"], - alpha_2_code="KW", - alpha_3_code="KWT", - continent="Азия", - name="Кувейт", - capital="Эль-Кувейт", - ), - Country( - timezones=["Ливан (UTC+02)"], - alpha_2_code="LB", - alpha_3_code="LBN", - continent="Азия", - name="Ливан", - capital="Бейрут", - ), - Country( - timezones=["Лихтенштейн (UTC+01)"], - alpha_2_code="LI", - alpha_3_code="LIE", - continent="Европа", - name="Лихтенштейн", - capital="Вадуц", - ), - Country( - timezones=["Либерия (UTC)"], - alpha_2_code="LR", - alpha_3_code="LBR", - continent="Африка", - name="Либерия", - capital="Монровия", - ), - Country( - timezones=["Лесото (UTC+02)"], - alpha_2_code="LS", - alpha_3_code="LSO", - continent="Африка", - name="Лесото", - capital="Масеру", - ), - Country( - timezones=["Литва (UTC+02)"], - alpha_2_code="LT", - alpha_3_code="LTU", - continent="Европа", - name="Литва", - capital="Вильнюс", - ), - Country( - timezones=["Люксембург (UTC+01)"], - alpha_2_code="LU", - alpha_3_code="LUX", - continent="Европа", - name="Люксембург", - capital="Люксембург", - ), - Country( - timezones=["Латвия (UTC+02)"], - alpha_2_code="LV", - alpha_3_code="LVA", - continent="Европа", - name="Латвия", - capital="Рига", - ), - Country( - timezones=["Ливия (UTC+02)"], - alpha_2_code="LY", - alpha_3_code="LBY", - continent="Африка", - name="Ливия", - capital="Триполи", - ), - Country( - timezones=["Мадагаскар (UTC+03)"], - alpha_2_code="MG", - alpha_3_code="MDG", - continent="Африка", - name="Мадагаскар", - capital="Антананариву", - ), - Country( - timezones=["Маршалловы Острова (UTC+12)"], - alpha_2_code="MH", - alpha_3_code="MHL", - continent="Океания", - name="Маршалловы Острова", - capital="Маджуро", - ), - Country( - timezones=["Северная Македония (UTC+01)"], - alpha_2_code="MK", - alpha_3_code="MKD", - continent="Европа", - name="Северная Македония", - capital="Скопье", - ), - Country( - timezones=["Мали (UTC)"], - alpha_2_code="ML", - alpha_3_code="MLI", - continent="Африка", - name="Мали", - capital="Бамако", - ), - Country( - timezones=["Мьянма (UTC+06:30)"], - alpha_2_code="MM", - alpha_3_code="MMR", - continent="Азия", - name="Мьянма", - capital="Нейпьидо", - ), - Country( - timezones=["Монголия (UTC+07)", "Монголия (UTC+08)"], - alpha_2_code="MN", - alpha_3_code="MNG", - continent="Азия", - name="Монголия", - capital="Улан-Батор", - ), - Country( - timezones=["Мавритания (UTC)"], - alpha_2_code="MR", - alpha_3_code="MRT", - continent="Африка", - name="Мавритания", - capital="Нуакшот", - ), - Country( - timezones=["Мальта (UTC+01)"], - alpha_2_code="MT", - alpha_3_code="MLT", - continent="Европа", - name="Мальта", - capital="Валлетта", - ), - Country( - timezones=["Маврикий (UTC+04)"], - alpha_2_code="MU", - alpha_3_code="MUS", - continent="Африка", - name="Маврикий", - capital="Порт-Луи", - ), - Country( - timezones=["Мальдивы (UTC+05)"], - alpha_2_code="MV", - alpha_3_code="MDV", - continent="Азия", - name="Мальдивы", - capital="Мале", - ), - Country( - timezones=["Малави (UTC+02)"], - alpha_2_code="MW", - alpha_3_code="MWI", - continent="Африка", - name="Малави", - capital="Лилонгве", - ), - Country( - timezones=["Мексика (UTC-08)", "Мексика (UTC-07)", "Мексика (UTC-06)"], - alpha_2_code="MX", - alpha_3_code="MEX", - continent="Северная Америка", - name="Мексика", - capital="Мехико", - ), - Country( - timezones=["Малайзия (UTC+08)"], - alpha_2_code="MY", - alpha_3_code="MYS", - continent="Азия", - name="Малайзия", - capital="Куала-Лумпур", - ), - Country( - timezones=["Мозамбик (UTC+02)"], - alpha_2_code="MZ", - alpha_3_code="MOZ", - continent="Африка", - name="Мозамбик", - capital="Мапуту", - ), - Country( - timezones=["Намибия (UTC+01)"], - alpha_2_code="NA", - alpha_3_code="NAM", - continent="Африка", - name="Намибия", - capital="Виндхук", - ), - Country( - timezones=["Нигер (UTC+01)"], - alpha_2_code="NE", - alpha_3_code="NER", - continent="Африка", - name="Нигер", - capital="Ниамей", - ), - Country( - timezones=["Нигерия (UTC+01)"], - alpha_2_code="NG", - alpha_3_code="NGA", - continent="Африка", - name="Нигерия", - capital="Абуджа", - ), - Country( - timezones=["Никарагуа (UTC-06)"], - alpha_2_code="NI", - alpha_3_code="NIC", - continent="Северная Америка", - name="Никарагуа", - capital="Манагуа", - ), - Country( - timezones=["Нидерланды (UTC+01)"], - alpha_2_code="NL", - alpha_3_code="NLD", - continent="Европа", - name="Нидерланды", - capital="Амстердам", - ), - Country( - timezones=["Норвегия (UTC+01)"], - alpha_2_code="NO", - alpha_3_code="NOR", - continent="Европа", - name="Норвегия", - capital="Осло", - ), - Country( - timezones=["Непал (UTC+05:45"], - alpha_2_code="NP", - alpha_3_code="NPL", - continent="Азия", - name="Непал", - capital="Катманду", - ), - Country( - timezones=["Науру (UTC+12)"], - alpha_2_code="NR", - alpha_3_code="NRU", - continent="Океания", - name="Науру", - capital="Ярен", - ), - Country( - timezones=["Новая Зеландия (UTC+12)"], - alpha_2_code="NZ", - alpha_3_code="NZL", - continent="Океания", - name="Новая Зеландия", - capital="Веллингтон", - ), - Country( - timezones=["Оман (UTC+04"], - alpha_2_code="OM", - alpha_3_code="OMN", - continent="Азия", - name="Оман", - capital="Маскат", - ), - Country( - timezones=["Панама (UTC-05)"], - alpha_2_code="PA", - alpha_3_code="PAN", - continent="Северная Америка", - name="Панама", - capital="Панама", - ), - Country( - timezones=["Перу (UTC-05)"], - alpha_2_code="PE", - alpha_3_code="PER", - continent="Южная Америка", - name="Перу", - capital="Лима", - ), - Country( - timezones=["Папуа - Новая Гвинея (UTC+10)"], - alpha_2_code="PG", - alpha_3_code="PNG", - continent="Океания", - name="Папуа - Новая Гвинея", - capital="Порт-Морсби", - ), - Country( - timezones=["Филиппины (UTC+08)"], - alpha_2_code="PH", - alpha_3_code="PHL", - continent="Азия", - name="Филиппины", - capital="Манила", - ), - Country( - timezones=["Пакистан (UTC+05)"], - alpha_2_code="PK", - alpha_3_code="PAK", - continent="Азия", - name="Пакистан", - capital="Исламабад", - ), - Country( - timezones=["Польша (UTC+01)"], - alpha_2_code="PL", - alpha_3_code="POL", - continent="Европа", - name="Польша", - capital="Варшава", - ), - Country( - timezones=["Португалия (UTC)"], - alpha_2_code="PT", - alpha_3_code="PRT", - continent="Европа", - name="Португалия", - capital="Лиссабон", - ), - Country( - timezones=["Палау (UTC+09)"], - alpha_2_code="PW", - alpha_3_code="PLW", - continent="Океания", - name="Палау", - capital="Кампала", - ), - Country( - timezones=["Парагвай (UTC-04)"], - alpha_2_code="PY", - alpha_3_code="PRY", - continent="Южная Америка", - name="Парагвай", - capital="Асунсьон", - ), - Country( - timezones=["Катар (UTC+03)"], - alpha_2_code="QA", - alpha_3_code="QAT", - continent="Азия", - name="Катар", - capital="Доха", - ), - Country( - timezones=["Румыния (UTC+02)"], - alpha_2_code="RO", - alpha_3_code="ROU", - continent="Европа", - name="Румыния", - capital="Бухарест", - ), - Country( - timezones=[ - "Россия (UTC+02)", - "Россия (UTC+03)", - "Россия (UTC+04)", - "Россия (UTC+05)", - "Россия (UTC+06)", - "Россия (UTC+07)", - "Россия (UTC+08)", - "Россия (UTC+09)", - "Россия (UTC+10)", - "Россия (UTC+11)", - "Россия (UTC+12)", - ], - alpha_2_code="RU", - alpha_3_code="RUS", - continent="Европа", - name="Россия", - capital="Москва", - ), - Country( - timezones=["Руанда (UTC+02)"], - alpha_2_code="RW", - alpha_3_code="RWA", - continent="Африка", - name="Руанда", - capital="Кигали", - ), - Country( - timezones=["Саудовская Аравия (UTC+03)"], - alpha_2_code="SA", - alpha_3_code="SAU", - continent="Азия", - name="Саудовская Аравия", - capital="Эр-Рияд", - ), - Country( - timezones=["Соломоновы Острова (UTC+11)"], - alpha_2_code="SB", - alpha_3_code="SLB", - continent="Океания", - name="Соломоновы Острова", - capital="Хониара", - ), - Country( - timezones=["Сейшельские острова (UTC+04)"], - alpha_2_code="SC", - alpha_3_code="SYC", - continent="Африка", - name="Сейшельские острова", - capital="Виктория", - ), - Country( - timezones=["Судан (UTC+03)"], - alpha_2_code="SD", - alpha_3_code="SDN", - continent="Африка", - name="Судан", - capital="Хартум", - ), - Country( - timezones=["Швеция (UTC+01)"], - alpha_2_code="SE", - alpha_3_code="SWE", - continent="Европа", - name="Швеци", - capital="Стокгольм", - ), - Country( - timezones=["Сингапур (UTC+08)"], - alpha_2_code="SG", - alpha_3_code="SGP", - continent="Азия", - name="Сингапур", - capital="Сингапур", - ), - Country( - timezones=["Словения (UTC+01)"], - alpha_2_code="SI", - alpha_3_code="SVN", - continent="Европа", - name="Словения", - capital="Любляна", - ), - Country( - timezones=["Словакия (UTC+01)"], - alpha_2_code="SK", - alpha_3_code="SVK", - continent="Европа", - name="Словакия", - capital="Братислава", - ), - Country( - timezones=["Сьерра-Леоне (UTC)"], - alpha_2_code="SL", - alpha_3_code="SLE", - continent="Африка", - name="Сьерра Леоне", - capital="Фритаун", - ), - Country( - timezones=["Сан-Марино (UTC+01)"], - alpha_2_code="SM", - alpha_3_code="SMR", - continent="Европа", - name="Сан-Марино", - capital="Сан-Марино", - ), - Country( - timezones=["Сенегал (UTC)"], - alpha_2_code="SN", - alpha_3_code="SEN", - continent="Африка", - name="Сенегал", - capital="Дакар", - ), - Country( - timezones=["Сомали (UTC+03)"], - alpha_2_code="SO", - alpha_3_code="SOM", - continent="Африка", - name="Сомали", - capital="Могадишо", - ), - Country( - timezones=["Суринам (UTC-03)"], - alpha_2_code="SR", - alpha_3_code="SUR", - continent="Южная Америка", - name="Суринам", - capital="Парамарибо", - ), - Country( - timezones=["Сан-Томе и Принсипи (UTC)"], - alpha_2_code="ST", - alpha_3_code="STP", - continent="Африка", - name="Сан-Томе и Принсипи", - capital="Сан-Томе", - ), - Country( - timezones=["Сирия (UTC+02)"], - alpha_2_code="SY", - alpha_3_code="SYR", - continent="Азия", - name="Сирия", - capital="Дамаск", - ), - Country( - timezones=["Того (UTC)"], - alpha_2_code="TG", - alpha_3_code="TGO", - continent="Африка", - name="Того", - capital="Ломе", - ), - Country( - timezones=["Таиланд (UTC+07)"], - alpha_2_code="TH", - alpha_3_code="THA", - continent="Азия", - name="Таиланд", - capital="Бангкок", - ), - Country( - timezones=["Таджикистан (UTC+05)"], - alpha_2_code="TJ", - alpha_3_code="TJK", - continent="Азия", - name="Таджикистан", - capital="Душанбе", - ), - Country( - timezones=["Туркмения (UTC+05)"], - alpha_2_code="TM", - alpha_3_code="TKM", - continent="Азия", - name="Туркмения", - capital="Ашхабад", - ), - Country( - timezones=["Тунис (UTC+01)"], - alpha_2_code="TN", - alpha_3_code="TUN", - continent="Африка", - name="Тунис", - capital="Тунис", - ), - Country( - timezones=["Тонга (UTC+13)"], - alpha_2_code="TO", - alpha_3_code="TON", - continent="Океания", - name="Тонга", - capital="Нукуалофа", - ), - Country( - timezones=["Турция (UTC+02)"], - alpha_2_code="TR", - alpha_3_code="TUR", - continent="Азия", - name="Турция", - capital="Анкара", - ), - Country( - timezones=["Тринидад и Тобаго (UTC-04)"], - alpha_2_code="TT", - alpha_3_code="TTO", - continent="Северная Америка", - name="Тринидад и Тобаго", - capital="Порт-оф-Спейн", - ), - Country( - timezones=["Тувалу (UTC+12)"], - alpha_2_code="TV", - alpha_3_code="TUV", - continent="Океания", - name="Тувалу", - capital="Фунафути", - ), - Country( - timezones=["Танзания (UTC+03)"], - alpha_2_code="TZ", - alpha_3_code="TZA", - continent="Африка", - name="Танзания", - capital="Додома", - ), - Country( - timezones=["Украина (UTC+02)", "Украина (UTC+03)"], - alpha_2_code="UA", - alpha_3_code="UKR", - continent="Европа", - name="Украина", - capital="Киев", - ), - Country( - timezones=["Уганда (UTC+03)"], - alpha_2_code="UG", - alpha_3_code="UGA", - continent="Африка", - name="Уганда", - capital="Кампала", - ), - Country( - timezones=[ - "США (UTC-11)", - "США (UTC-10)", - "США (UTC-09)", - "США (UTC-08)", - "США (UTC-07)", - "США (UTC-06)", - "США (UTC-05)", - "США (UTC-04)", - "США (UTC+10)", - ], - alpha_2_code="US", - alpha_3_code="USA", - continent="Северная Америка", - name="США", - capital="Вашингтон", - ), - Country( - timezones=["Уругвай (UTC-03)"], - alpha_2_code="UY", - alpha_3_code="URY", - continent="Южная Америка", - name="Уругвай", - capital="Монтевидео", - ), - Country( - timezones=["Узбекистан (UTC+05)"], - alpha_2_code="UZ", - alpha_3_code="UZB", - continent="Азия", - name="Узбекистан", - capital="Ташкент", - ), - Country( - timezones=["Ватикан (UTC+01)"], - alpha_2_code="VA", - alpha_3_code="VAT", - continent="Европа", - name="Ватикан", - capital="Ватикан", - ), - Country( - timezones=["Венесуэла (UTC-04:30)"], - alpha_2_code="VE", - alpha_3_code="VEN", - continent="Южная Америка", - name="Венесуэла", - capital="Каракас", - ), - Country( - timezones=["Вьетнам (UTC+07)"], - alpha_2_code="VN", - alpha_3_code="VNM", - continent="Азия", - name="Вьетнам", - capital="Ханой", - ), - Country( - timezones=["Вануату (UTC+11)"], - alpha_2_code="VU", - alpha_3_code="VUT", - continent="Океания", - name="Вануату", - capital="Порт-Вила", - ), - Country( - timezones=["Йемен (UTC+03)"], - alpha_2_code="YE", - alpha_3_code="YEM", - continent="Азия", - name="Йемен", - capital="Сана", - ), - Country( - timezones=["Замбия (UTC+02)"], - alpha_2_code="ZM", - alpha_3_code="ZMB", - continent="Африка", - name="Замбия", - capital="Лусака", - ), - Country( - timezones=["Зимбабве (UTC+02)"], - alpha_2_code="ZW", - alpha_3_code="ZWE", - continent="Африка", - name="Зимбабве", - capital="Хараре", - ), - Country( - timezones=["Алжир (UTC+01)"], - alpha_2_code="DZ", - alpha_3_code="DZA", - continent="Африка", - name="Алжир", - capital="Алжир", - ), - Country( - timezones=["Босния и Герцеговина (UTC+01)"], - alpha_2_code="BA", - alpha_3_code="BIH", - continent="Европа", - name="Босния и Герцеговина", - capital="Сараево", - ), - Country( - timezones=["Камбоджа (UTC+07)"], - alpha_2_code="KH", - alpha_3_code="KHM", - continent="Азия", - name="Камбоджа", - capital="Пномпень", - ), - Country( - timezones=["ЦАР (UTC+01)"], - alpha_2_code="CF", - alpha_3_code="CAF", - continent="Африка", - name="ЦАР", - capital="Банги", - ), - Country( - timezones=["Чад (UTC+01)"], - alpha_2_code="TD", - alpha_3_code="TCD", - continent="Африка", - name="Чад", - capital="Нджамена", - ), - Country( - timezones=["Коморы (UTC+03)"], - alpha_2_code="KM", - alpha_3_code="COM", - continent="Африка", - name="Коморы", - capital="Морони", - ), - Country( - timezones=["Хорватия (UTC+01)"], - alpha_2_code="HR", - alpha_3_code="HRV", - continent="Европа", - name="Хорватия", - capital="Загреб", - ), - Country( - timezones=["Восточный Тимор (UTC+09)"], - alpha_2_code="TL", - alpha_3_code="TLS", - continent="Азия", - name="Восточный Тимор", - capital="Дили", - ), - Country( - timezones=["Сальвадор (UTC-06)"], - alpha_2_code="SV", - alpha_3_code="SLV", - continent="Северная Америка", - name="Сальвадор", - capital="Сан-Сальвадор", - ), - Country( - timezones=["Экваториальная Гвинея (UTC+01)"], - alpha_2_code="GQ", - alpha_3_code="GNQ", - continent="Африка", - name="Экваториальная Гвинея", - capital="Малабо", - ), - Country( - timezones=["Гренада (UTC-04)"], - alpha_2_code="GD", - alpha_3_code="GRD", - continent="Северная Америка", - name="Гренада", - capital="Сент-Джорджес", - ), - Country( - timezones=["Казахстан (UTC+05)", "Казахстан (UTC+06)"], - alpha_2_code="KZ", - alpha_3_code="KAZ", - continent="Азия", - name="Казахстан", - capital="Нур-Султан (Астана)", - ), - Country( - timezones=["Лаос (UTC+07)"], - alpha_2_code="LA", - alpha_3_code="LAO", - continent="Азия", - name="Лаос", - capital="Вьентьян", - ), - Country( - timezones=["Микронезия (UTC+10)", "Микронезия (UTC+11)"], - alpha_2_code="FM", - alpha_3_code="FSM", - continent="Океания", - name="Микронезия", - capital="Паликир", - ), - Country( - timezones=["Молдавия (UTC+02)"], - alpha_2_code="MD", - alpha_3_code="MDA", - continent="Европа", - name="Молдавия", - capital="Кишинев", - ), - Country( - timezones=["Монако (UTC+01)"], - alpha_2_code="MC", - alpha_3_code="MCO", - continent="Европа", - name="Монако", - capital="Монако", - ), - Country( - timezones=["Черногория (UTC+01)"], - alpha_2_code="ME", - alpha_3_code="MNE", - continent="Европа", - name="Черногория", - capital="Подгорица", - ), - Country( - timezones=["Марокко (UTC)"], - alpha_2_code="MA", - alpha_3_code="MAR", - continent="Африка", - name="Марокко", - capital="Рабат", - ), - Country( - timezones=["Сент-Китс и Невис (UTC-04)"], - alpha_2_code="KN", - alpha_3_code="KNA", - continent="Северная Америка", - name="Сент-Китс и Невис", - capital="Бастер", - ), - Country( - timezones=["Сент-Люсия (UTC-04)"], - alpha_2_code="LC", - alpha_3_code="LCA", - continent="Северная Америка", - name="Сент-Люсия", - capital="Кастри", - ), - Country( - timezones=["Сент-Винсент и Гренадины (UTC-04)"], - alpha_2_code="VC", - alpha_3_code="VCT", - continent="Северная Америка", - name="Сент-Винсент и Гренадины", - capital="Кингстаун", - ), - Country( - timezones=["Самоа (UTC+13)"], - alpha_2_code="WS", - alpha_3_code="WSM", - continent="Океания", - name="Самоа", - capital="Апиа", - ), - Country( - timezones=["Сербия (UTC+01)"], - alpha_2_code="RS", - alpha_3_code="SRB", - continent="Европа", - name="Сербия", - capital="Белград", - ), - Country( - timezones=["ЮАР (UTC+02)"], - alpha_2_code="ZA", - alpha_3_code="ZAF", - continent="Африка", - name="ЮАР", - capital="Претория", - ), - Country( - timezones=["Испания (UTC)", "Испания (UTC+01)"], - alpha_2_code="ES", - alpha_3_code="ESP", - continent="Европа", - name="Испания", - capital="Мадрид", - ), - Country( - timezones=["Шри-Ланка (UTC+05:30)"], - alpha_2_code="LK", - alpha_3_code="LKA", - continent="Азия", - name="Шри-Ланка", - capital="Шри-Джаяварденепура-Котте", - ), - Country( - timezones=["Эсватини (Свазиленд) (UTC+02)"], - alpha_2_code="SZ", - alpha_3_code="SWZ", - continent="Африка", - name="Эсватини (Свазиленд)", - capital="Мбабане", - ), - Country( - timezones=["Швейцария (UTC+01)"], - alpha_2_code="CH", - alpha_3_code="CHE", - continent="Европа", - name="Швейцария", - capital="Берн", - ), - Country( - timezones=["ОАЭ (UTC+04)"], - alpha_2_code="AE", - alpha_3_code="ARE", - continent="Азия", - name="ОАЭ", - capital="Абу-Даби", - ), - Country( - timezones=["Великобритания (UTC)"], - alpha_2_code="GB", - alpha_3_code="GBR", - continent="Европа", - name="Великобритания", - capital="Лондон", - ), - ] - - 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] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ru_RU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ru_RU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 03ffaff..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ru_RU/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/sk_SK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/sk_SK/__init__.py deleted file mode 100644 index f7f9755..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/sk_SK/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "nedeľa", - "1": "pondelok", - "2": "utorok", - "3": "streda", - "4": "štvrtok", - "5": "piatok", - "6": "sobota", - } - - MONTH_NAMES = { - "01": "január", - "02": "február", - "03": "marec", - "04": "apríl", - "05": "máj", - "06": "jún", - "07": "júl", - "08": "august", - "09": "september", - "10": "október", - "11": "november", - "12": "december", - } - - 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/.venv/lib/python3.12/site-packages/faker/providers/date_time/sk_SK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/sk_SK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index be1f5c4..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/sk_SK/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/sl_SI/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/sl_SI/__init__.py deleted file mode 100644 index efc7b67..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/sl_SI/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "Nedelja", - "1": "Ponedeljek", - "2": "Torek", - "3": "Sreda", - "4": "Četrtek", - "5": "Petek", - "6": "Sobota", - } - - MONTH_NAMES = { - "01": "Januar", - "02": "Februar", - "03": "Marec", - "04": "April", - "05": "Maj", - "06": "Junij", - "07": "Julij", - "08": "Avgust", - "09": "September", - "10": "Oktober", - "11": "November", - "12": "December", - } - - 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] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/sl_SI/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/sl_SI/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7417505..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/sl_SI/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ta_IN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ta_IN/__init__.py deleted file mode 100644 index 355ea0b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ta_IN/__init__.py +++ /dev/null @@ -1,37 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - # Source: http://www.localeplanet.com/icu/ta-IN/index.html - 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) -> str: - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - return self.MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ta_IN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ta_IN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d0d4141..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ta_IN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/th_TH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/th_TH/__init__.py deleted file mode 100644 index 8ece4b5..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/th_TH/__init__.py +++ /dev/null @@ -1,340 +0,0 @@ -import warnings - -from datetime import datetime -from typing import Optional - -from ....typing import DateParseType -from .. import Provider as DateParseTypeProvider - -# thai_strftime() code adapted from -# https://gist.github.com/bact/b8afe49cb1ae62913e6c1e899dcddbdb -# (Same code base with PyThaiNLP 2.x) -# Public Domain or CC0 1.0 Universal - -_TH_ABBR_WEEKDAYS = ["จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"] -_TH_FULL_WEEKDAYS = [ - "วันจันทร์", - "วันอังคาร", - "วันพุธ", - "วันพฤหัสบดี", - "วันศุกร์", - "วันเสาร์", - "วันอาทิตย์", -] - -_TH_ABBR_MONTHS = [ - "ม.ค.", - "ก.พ.", - "มี.ค.", - "เม.ย.", - "พ.ค.", - "มิ.ย.", - "ก.ค.", - "ส.ค.", - "ก.ย.", - "ต.ค.", - "พ.ย.", - "ธ.ค.", -] -_TH_FULL_MONTHS = [ - "มกราคม", - "กุมภาพันธ์", - "มีนาคม", - "เมษายน", - "พฤษภาคม", - "มิถุนายน", - "กรกฎาคม", - "สิงหาคม", - "กันยายน", - "ตุลาคม", - "พฤศจิกายน", - "ธันวาคม", -] - -_HA_TH_DIGITS = str.maketrans("0123456789", "๐๑๒๓๔๕๖๗๘๙") -_BE_AD_DIFFERENCE = 543 - -_NEED_L10N = "AaBbCcDFGgvXxYy+" # flags that need localization -_EXTENSIONS = "EO-_0^#" # extension flags - - -# Standard conversion support for thai_strftime() -def _std_strftime(dt_obj: datetime, fmt_char: str) -> str: - """ - Standard datetime.strftime() with normalization and exception handling. - """ - str_ = "" - try: - str_ = dt_obj.strftime(f"%{fmt_char}") - if not str_ or str_ == f"%{fmt_char}": - # normalize outputs for unsupported directives - # in different platforms - # "%Q" may result "%Q", "Q", or "", make it "Q" - str_ = fmt_char - except ValueError as err: # pragma: no cover - # Unsupported directives may raise ValueError on Windows, - # in that case just use the fmt_char - warnings.warn( - (f"String format directive unknown/not support: %{fmt_char}" f"The system raises this ValueError: {err}"), - UserWarning, - ) - str_ = fmt_char - return str_ - - -# Thai conversion support for thai_strftime() -def _thai_strftime( - dt_obj: datetime, - fmt_char: str, - buddhist_era: bool = True, -) -> str: - """ - Conversion support for thai_strftime(). - - The fmt_char should be in _NEED_L10N when call this function. - """ - str_ = "" - year = dt_obj.year - if buddhist_era: - year = year + _BE_AD_DIFFERENCE - - if fmt_char == "A": - # National representation of the full weekday name - str_ = _TH_FULL_WEEKDAYS[dt_obj.weekday()] - elif fmt_char == "a": - # National representation of the abbreviated weekday - str_ = _TH_ABBR_WEEKDAYS[dt_obj.weekday()] - elif fmt_char == "B": - # National representation of the full month name - str_ = _TH_FULL_MONTHS[dt_obj.month - 1] - elif fmt_char == "b": - # National representation of the abbreviated month name - str_ = _TH_ABBR_MONTHS[dt_obj.month - 1] - elif fmt_char == "C": - # Thai Buddhist century (AD+543)/100 + 1 as decimal number; - str_ = str(int(year / 100) + 1).zfill(2) - elif fmt_char == "c": - # Locale’s appropriate date and time representation - # Wed 6 Oct 01:40:00 1976 - # พ 6 ต.ค. 01:40:00 2519 <-- left-aligned weekday, right-aligned day - str_ = ( - f"{_TH_ABBR_WEEKDAYS[dt_obj.weekday()]:<2} {dt_obj.day:>2} " - f"{_TH_ABBR_MONTHS[dt_obj.month - 1]} {dt_obj:%H:%M:%S} {year:04}" - ) - elif fmt_char == "D": - # Equivalent to ``%m/%d/%y'' - str_ = f"{dt_obj:%m/%d}/{year % 100:02}" - elif fmt_char == "F": - # Equivalent to ``%Y-%m-%d'' - str_ = f"{year:04}-{dt_obj:%m-%d}" - elif fmt_char == "G": - # ISO 8601 year with century representing the year that contains - # the greater part of the ISO week (%V). Monday as the first day - # of the week. - year_G = int(dt_obj.strftime("%G")) - if buddhist_era: - year_G = year_G + _BE_AD_DIFFERENCE - str_ = f"{year_G:04}" - elif fmt_char == "g": - # Same year as in ``%G'', - # but as a decimal number without century (00-99). - year_G = int(dt_obj.strftime("%G")) - if buddhist_era: - year_G = year_G + _BE_AD_DIFFERENCE - str_ = f"{year_G % 100:02}" - elif fmt_char == "v": - # BSD extension, ' 6-Oct-1976' - str_ = f"{dt_obj.day:>2}-{_TH_ABBR_MONTHS[dt_obj.month - 1]}-{year:04}" - elif fmt_char == "X": - # Locale’s appropriate time representation. - str_ = f"{dt_obj:%H:%M:%S}" - elif fmt_char == "x": - # Locale’s appropriate date representation. - str_ = f"{dt_obj:%d/%m}/{year:04}" - elif fmt_char == "Y": - # Year with century - str_ = f"{year:04}" - elif fmt_char == "y": - # Year without century - str_ = f"{year % 100:02}" - elif fmt_char == "+": - # National representation of the date and time - # (the format is similar to that produced by date(1)) - # Wed 6 Oct 1976 01:40:00 - str_ = ( - f"{_TH_ABBR_WEEKDAYS[dt_obj.weekday()]:<2} {dt_obj.day:>2} " - f"{_TH_ABBR_MONTHS[dt_obj.month - 1]} {year} {dt_obj:%H:%M:%S}" - ) - - return str_ - - -def thai_strftime( - dt_obj: datetime, - fmt: str = "%-d %b %Y", - thai_digit: bool = False, - buddhist_era: bool = True, -) -> str: - """ - Convert :class:`datetime.datetime` into Thai date and time format. - - The formatting directives are similar to :func:`datatime.strrftime`. - - This function uses Thai names and Thai Buddhist Era for these directives: - * **%a** - abbreviated weekday name - (i.e. "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา") - * **%A** - full weekday name - (i.e. "วันจันทร์", "วันอังคาร", "วันเสาร์", "วันอาทิตย์") - * **%b** - abbreviated month name - (i.e. "ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ธ.ค.") - * **%B** - full month name - (i.e. "มกราคม", "กุมภาพันธ์", "พฤศจิกายน", "ธันวาคม",) - * **%y** - year without century (i.e. "56", "10") - * **%Y** - year with century (i.e. "2556", "2410") - * **%c** - date and time representation - (i.e. "พ 6 ต.ค. 01:40:00 2519") - * **%v** - short date representation - (i.e. " 6-ม.ค.-2562", "27-ก.พ.-2555") - """ - thaidate_parts = [] - - i = 0 - fmt_len = len(fmt) - while i < fmt_len: - str_ = "" - if fmt[i] == "%": - j = i + 1 - if j < fmt_len: - fmt_char = fmt[j] - if fmt_char in _NEED_L10N: # requires localization? - str_ = _thai_strftime(dt_obj, fmt_char, buddhist_era) - elif fmt_char in _EXTENSIONS: - fmt_char_ext = fmt_char - k = j + 1 - if k < fmt_len: - fmt_char = fmt[k] - if fmt_char in _NEED_L10N: - str_ = _thai_strftime( - dt_obj, - fmt_char, - buddhist_era, - ) - else: - str_ = _std_strftime(dt_obj, fmt_char) - - if fmt_char_ext == "-": - # GNU libc extension, - # no padding - if str_[0] and str_[0] in " 0": - str_ = str_[1:] - elif fmt_char_ext == "_": - # GNU libc extension, - # explicitly specify space (" ") for padding - if str_[0] and str_[0] == "0": - str_ = " " + str_[1:] - elif fmt_char_ext == "0": - # GNU libc extension, - # explicitly specify zero ("0") for padding - if str_[0] and str_[0] == " ": - str_ = "0" + str_[1:] - elif fmt_char_ext == "^": - # GNU libc extension, - # convert to upper case - str_ = str_.upper() - elif fmt_char_ext == "#": - # GNU libc extension, - # swap case - useful for %Z - str_ = str_.swapcase() - elif fmt_char_ext == "E": - # POSIX extension, - # uses the locale's alternative representation - # Not implemented yet - pass - elif fmt_char_ext == "O": - # POSIX extension, - # uses the locale's alternative numeric symbols - str_ = str_.translate(_HA_TH_DIGITS) - i = i + 1 # consume char after format char - else: - # format char at string's end has no meaning - str_ = fmt_char_ext - else: # not in _NEED_L10N nor _EXTENSIONS - # no known localization available, use Python's default - str_ = _std_strftime(dt_obj, fmt_char) - - i = i + 1 # consume char after "%" - else: - # % char at string's end has no meaning - str_ = "%" - else: - str_ = fmt[i] - - thaidate_parts.append(str_) - i = i + 1 - - thaidate_text = "".join(thaidate_parts) - - if thai_digit: - thaidate_text = thaidate_text.translate(_HA_TH_DIGITS) - - return thaidate_text - - -class Provider(DateParseTypeProvider): - def date( - self, - pattern: str = "%-d %b %Y", - end_datetime: Optional[DateParseType] = None, - thai_digit: bool = False, - buddhist_era: bool = True, - ) -> str: - """ - Get a date string between January 1, 1970 and now - :param pattern: format - :param end_datetime: datetime - :param thai_digit: use Thai digit or not (default: False) - :param buddhist_era: use Buddist era or not (default: True) - :example: '08 พ.ย. 2563' - :example: '๐๘ พ.ย. 2563' (thai_digit = True) - :example: '8 พฤศิจกายน 2020' (pattern: str = "%-d %B %Y", buddhist_era = False) - """ - return thai_strftime( - self.date_time(end_datetime=end_datetime), - pattern, - thai_digit, - buddhist_era, - ) - - def time( - self, - pattern: str = "%H:%M:%S", - end_datetime: Optional[DateParseType] = None, - thai_digit: bool = False, - ) -> str: - """ - Get a time string (24h format by default) - :param pattern: format - :param end_datetime: datetime - :param thai_digit: use Thai digit or not (default: False) - :example: '15:02:34' - :example: '๑๕:๐๒:๓๔' (thai_digit = True) - """ - return thai_strftime( - self.date_time(end_datetime=end_datetime), - pattern, - thai_digit, - ) - - def century(self, thai_digit: bool = False, buddhist_era: bool = True) -> str: - """ - :param thai_digi:t use Thai digit or not (default: False) - :param buddhist:_era use Buddist era or not (default: True) - :example: '20' - """ - end_century = 22 - if buddhist_era: - end_century = 26 - text = str(self.random_element(range(1, end_century))) - if thai_digit: - text = text.translate(_HA_TH_DIGITS) - return text diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/th_TH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/th_TH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2450232..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/th_TH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/tl_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/tl_PH/__init__.py deleted file mode 100644 index a8a98d2..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/tl_PH/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from ..fil_PH import Provider as FilPhProvider - - -class Provider(FilPhProvider): - """No difference from DateTime Provider for fil_PH locale""" - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/tl_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/tl_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 537f24e..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/tl_PH/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/tr_TR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/tr_TR/__init__.py deleted file mode 100644 index 07e2720..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/tr_TR/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "Pazar", - "1": "Pazartesi", - "2": "Salı", - "3": "Çarşamba", - "4": "Perşembe", - "5": "Cuma", - "6": "Cumartesi", - } - - MONTH_NAMES = { - "01": "Ocak", - "02": "Şubat", - "03": "Mart", - "04": "Nisan", - "05": "Mayıs", - "06": "Haziran", - "07": "Temmuz", - "08": "Ağustos", - "09": "Eylül", - "10": "Ekim", - "11": "Kasım", - "12": "Aralık", - } - - 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/.venv/lib/python3.12/site-packages/faker/providers/date_time/tr_TR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/tr_TR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 815dbce..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/tr_TR/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/uz_UZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/uz_UZ/__init__.py deleted file mode 100644 index ad0fe0e..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/uz_UZ/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "Dushanba", - "1": "Seshanba", - "2": "Chorshanba", - "3": "Payshanba", - "4": "Juma", - "5": "Shanba", - "6": "Yakshanba", - } - - MONTH_NAMES = { - "01": "Yanvar", - "02": "Fevral", - "03": "Mart", - "04": "Aprel", - "05": "May", - "06": "Iyun", - "07": "Iyul", - "08": "Avgust", - "09": "Sentabr", - "10": "Oktabr", - "11": "Noyabr", - "12": "Dekabr", - } - - 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] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/uz_UZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/uz_UZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0bc462c..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/uz_UZ/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/vi_VN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/vi_VN/__init__.py deleted file mode 100644 index c90fa16..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/vi_VN/__init__.py +++ /dev/null @@ -1,37 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - # Source: https://vi.wikipedia.org/wiki/%C4%90%E1%BB%8Bnh_d%E1%BA%A1ng_ng%C3%A0y_v%C3%A0_gi%E1%BB%9D_%E1%BB%9F_Vi%E1%BB%87t_Nam # NOQA - DAY_NAMES = { - "0": "Chủ Nhật", - "1": "Thứ Hai", - "2": "Thứ Ba", - "3": "Thứ Tư", - "4": "Thứ Năm", - "5": "Thứ Sáu", - "6": "Thứ Bảy", - } - - MONTH_NAMES = { - "01": "Tháng Một", - "02": "Tháng Hai", - "03": "Tháng Ba", - "04": "Tháng Tư", - "05": "Tháng Năm", - "06": "Tháng Sáu", - "07": "Tháng Bảy", - "08": "Tháng Tám", - "09": "Tháng Chín", - "10": "Tháng Mười", - "11": "Tháng Mười Một", - "12": "Tháng Mười Hai", - } - - 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/.venv/lib/python3.12/site-packages/faker/providers/date_time/vi_VN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/vi_VN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 9e9b153..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/vi_VN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_CN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_CN/__init__.py deleted file mode 100644 index a69e6d0..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_CN/__init__.py +++ /dev/null @@ -1,35 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - MONTH_NAMES = { - "01": "一月", - "02": "二月", - "03": "三月", - "04": "四月", - "05": "五月", - "06": "六月", - "07": "七月", - "08": "八月", - "09": "九月", - "10": "十月", - "11": "十一月", - "12": "十二月", - } - DAY_NAMES = { - "0": "星期日", - "1": "星期一", - "2": "星期二", - "3": "星期三", - "4": "星期四", - "5": "星期五", - "6": "星期六", - } - - 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] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_CN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_CN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e06bd63..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_CN/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_TW/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_TW/__init__.py deleted file mode 100644 index 9b53b6c..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_TW/__init__.py +++ /dev/null @@ -1,39 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - MONTH_NAMES = { - "01": "一月", - "02": "二月", - "03": "三月", - "04": "四月", - "05": "五月", - "06": "六月", - "07": "七月", - "08": "八月", - "09": "九月", - "10": "十月", - "11": "十一月", - "12": "十二月", - } - DAY_NAMES = { - "0": "星期日", - "1": "星期一", - "2": "星期二", - "3": "星期三", - "4": "星期四", - "5": "星期五", - "6": "星期六", - } - - 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 minguo_year(self) -> str: - year = self.year() - return str(int(year) - 1911) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_TW/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_TW/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 56f7eef..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_TW/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/doi/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/doi/__init__.py deleted file mode 100644 index 2ab98ce..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/doi/__init__.py +++ /dev/null @@ -1,22 +0,0 @@ -from faker.providers import BaseProvider - - -class Provider(BaseProvider): - """ - Provider for Digital Object Identifier (DOI) - Source of info: https://en.wikipedia.org/wiki/Digital_object_identifier (English) - """ - - def doi(self) -> str: - """ - Generate a valid Digital Object Identifier (DOI). - Format: 10.{4-9 digits}/{alphanumeric string} - Eg: 10.1000/xyz123 - - :sample: - """ - prefix = "10" - registrant = str(self.generator.random.randint(1000, 99999999)) - suffix = self.generator.bothify("?#?#?##").lower() - - return f"{prefix}.{registrant}/{suffix}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/doi/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/doi/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3362760..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/doi/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/emoji/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/emoji/__init__.py deleted file mode 100644 index 6d29311..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/emoji/__init__.py +++ /dev/null @@ -1,3528 +0,0 @@ -from .. import BaseProvider - - -class Provider(BaseProvider): - emojis = [ - "😀", - "😃", - "😄", - "😁", - "😆", - "😅", - "🤣", - "😂", - "🙂", - "🙃", - "😉", - "😊", - "😇", - "🥰", - "😍", - "🤩", - "😘", - "😗", - "☺️", - "😚", - "😙", - "🥲", - "😋", - "😛", - "😜", - "🤪", - "😝", - "🤑", - "🤗", - "🤭", - "🤫", - "🤔", - "🤐", - "🤨", - "😐", - "😑", - "😶", - "😶‍🌫️", - "😏", - "😒", - "🙄", - "😬", - "😮‍💨", - "🤥", - "😌", - "😔", - "😪", - "🤤", - "😴", - "😷", - "🤒", - "🤕", - "🤢", - "🤮", - "🤧", - "🥵", - "🥶", - "🥴", - "😵", - "😵‍💫", - "🤯", - "🤠", - "🥳", - "🥸", - "😎", - "🤓", - "🧐", - "😕", - "😟", - "🙁", - "☹️", - "😮", - "😯", - "😲", - "😳", - "🥺", - "😦", - "😧", - "😨", - "😰", - "😥", - "😢", - "😭", - "😱", - "😖", - "😣", - "😞", - "😓", - "😩", - "😫", - "🥱", - "😤", - "😡", - "😠", - "🤬", - "😈", - "👿", - "💀", - "☠️", - "💩", - "🤡", - "👹", - "👺", - "👻", - "👽", - "👾", - "🤖", - "😺", - "😸", - "😹", - "😻", - "😼", - "😽", - "🙀", - "😿", - "😾", - "🙈", - "🙉", - "🙊", - "💋", - "💌", - "💘", - "💝", - "💖", - "💗", - "💓", - "💞", - "💕", - "💟", - "❣️", - "💔", - "❤️‍🔥", - "❤️‍🩹", - "❤️", - "🧡", - "💛", - "💚", - "💙", - "💜", - "🤎", - "🖤", - "🤍", - "💯", - "💢", - "💥", - "💫", - "💦", - "💨", - "🕳️", - "💣", - "💬", - "👁️‍🗨️", - "🗨️", - "🗯️", - "💭", - "💤", - "👋", - "👋🏻", - "👋🏼", - "👋🏽", - "👋🏾", - "👋🏿", - "🤚", - "🤚🏻", - "🤚🏼", - "🤚🏽", - "🤚🏾", - "🤚🏿", - "🖐️", - "🖐🏻", - "🖐🏼", - "🖐🏽", - "🖐🏾", - "🖐🏿", - "✋", - "✋🏻", - "✋🏼", - "✋🏽", - "✋🏾", - "✋🏿", - "🖖", - "🖖🏻", - "🖖🏼", - "🖖🏽", - "🖖🏾", - "🖖🏿", - "👌", - "👌🏻", - "👌🏼", - "👌🏽", - "👌🏾", - "👌🏿", - "🤌", - "🤌🏻", - "🤌🏼", - "🤌🏽", - "🤌🏾", - "🤌🏿", - "🤏", - "🤏🏻", - "🤏🏼", - "🤏🏽", - "🤏🏾", - "🤏🏿", - "✌️", - "✌🏻", - "✌🏼", - "✌🏽", - "✌🏾", - "✌🏿", - "🤞", - "🤞🏻", - "🤞🏼", - "🤞🏽", - "🤞🏾", - "🤞🏿", - "🤟", - "🤟🏻", - "🤟🏼", - "🤟🏽", - "🤟🏾", - "🤟🏿", - "🤘", - "🤘🏻", - "🤘🏼", - "🤘🏽", - "🤘🏾", - "🤘🏿", - "🤙", - "🤙🏻", - "🤙🏼", - "🤙🏽", - "🤙🏾", - "🤙🏿", - "👈", - "👈🏻", - "👈🏼", - "👈🏽", - "👈🏾", - "👈🏿", - "👉", - "👉🏻", - "👉🏼", - "👉🏽", - "👉🏾", - "👉🏿", - "👆", - "👆🏻", - "👆🏼", - "👆🏽", - "👆🏾", - "👆🏿", - "🖕", - "🖕🏻", - "🖕🏼", - "🖕🏽", - "🖕🏾", - "🖕🏿", - "👇", - "👇🏻", - "👇🏼", - "👇🏽", - "👇🏾", - "👇🏿", - "☝️", - "☝🏻", - "☝🏼", - "☝🏽", - "☝🏾", - "☝🏿", - "👍", - "👍🏻", - "👍🏼", - "👍🏽", - "👍🏾", - "👍🏿", - "👎", - "👎🏻", - "👎🏼", - "👎🏽", - "👎🏾", - "👎🏿", - "✊", - "✊🏻", - "✊🏼", - "✊🏽", - "✊🏾", - "✊🏿", - "👊", - "👊🏻", - "👊🏼", - "👊🏽", - "👊🏾", - "👊🏿", - "🤛", - "🤛🏻", - "🤛🏼", - "🤛🏽", - "🤛🏾", - "🤛🏿", - "🤜", - "🤜🏻", - "🤜🏼", - "🤜🏽", - "🤜🏾", - "🤜🏿", - "👏", - "👏🏻", - "👏🏼", - "👏🏽", - "👏🏾", - "👏🏿", - "🙌", - "🙌🏻", - "🙌🏼", - "🙌🏽", - "🙌🏾", - "🙌🏿", - "👐", - "👐🏻", - "👐🏼", - "👐🏽", - "👐🏾", - "👐🏿", - "🤲", - "🤲🏻", - "🤲🏼", - "🤲🏽", - "🤲🏾", - "🤲🏿", - "🤝", - "🤝🏻", - "🤝🏼", - "🤝🏽", - "🤝🏾", - "🤝🏿", - "🙏", - "🙏🏻", - "🙏🏼", - "🙏🏽", - "🙏🏾", - "🙏🏿", - "✍️", - "✍🏻", - "✍🏼", - "✍🏽", - "✍🏾", - "✍🏿", - "💅", - "💅🏻", - "💅🏼", - "💅🏽", - "💅🏾", - "💅🏿", - "🤳", - "🤳🏻", - "🤳🏼", - "🤳🏽", - "🤳🏾", - "🤳🏿", - "💪", - "💪🏻", - "💪🏼", - "💪🏽", - "💪🏾", - "💪🏿", - "🦾", - "🦿", - "🦵", - "🦵🏻", - "🦵🏼", - "🦵🏽", - "🦵🏾", - "🦵🏿", - "🦶", - "🦶🏻", - "🦶🏼", - "🦶🏽", - "🦶🏾", - "🦶🏿", - "👂", - "👂🏻", - "👂🏼", - "👂🏽", - "👂🏾", - "👂🏿", - "🦻", - "🦻🏻", - "🦻🏼", - "🦻🏽", - "🦻🏾", - "🦻🏿", - "👃", - "👃🏻", - "👃🏼", - "👃🏽", - "👃🏾", - "👃🏿", - "🧠", - "🫀", - "🫁", - "🦷", - "🦴", - "👀", - "👁️", - "👅", - "👄", - "👶", - "👶🏻", - "👶🏼", - "👶🏽", - "👶🏾", - "👶🏿", - "🧒", - "🧒🏻", - "🧒🏼", - "🧒🏽", - "🧒🏾", - "🧒🏿", - "👦", - "👦🏻", - "👦🏼", - "👦🏽", - "👦🏾", - "👦🏿", - "👧", - "👧🏻", - "👧🏼", - "👧🏽", - "👧🏾", - "👧🏿", - "🧑", - "🧑🏻", - "🧑🏼", - "🧑🏽", - "🧑🏾", - "🧑🏿", - "👱", - "👱🏻", - "👱🏼", - "👱🏽", - "👱🏾", - "👱🏿", - "👨", - "👨🏻", - "👨🏼", - "👨🏽", - "👨🏾", - "👨🏿", - "🧔", - "🧔🏻", - "🧔🏼", - "🧔🏽", - "🧔🏾", - "🧔🏿", - "🧔‍♂️", - "🧔🏻‍♂️", - "🧔🏼‍♂️", - "🧔🏽‍♂️", - "🧔🏾‍♂️", - "🧔🏿‍♂️", - "🧔‍♀️", - "🧔🏻‍♀️", - "🧔🏼‍♀️", - "🧔🏽‍♀️", - "🧔🏾‍♀️", - "🧔🏿‍♀️", - "👨‍🦰", - "👨🏻‍🦰", - "👨🏼‍🦰", - "👨🏽‍🦰", - "👨🏾‍🦰", - "👨🏿‍🦰", - "👨‍🦱", - "👨🏻‍🦱", - "👨🏼‍🦱", - "👨🏽‍🦱", - "👨🏾‍🦱", - "👨🏿‍🦱", - "👨‍🦳", - "👨🏻‍🦳", - "👨🏼‍🦳", - "👨🏽‍🦳", - "👨🏾‍🦳", - "👨🏿‍🦳", - "👨‍🦲", - "👨🏻‍🦲", - "👨🏼‍🦲", - "👨🏽‍🦲", - "👨🏾‍🦲", - "👨🏿‍🦲", - "👩", - "👩🏻", - "👩🏼", - "👩🏽", - "👩🏾", - "👩🏿", - "👩‍🦰", - "👩🏻‍🦰", - "👩🏼‍🦰", - "👩🏽‍🦰", - "👩🏾‍🦰", - "👩🏿‍🦰", - "🧑‍🦰", - "🧑🏻‍🦰", - "🧑🏼‍🦰", - "🧑🏽‍🦰", - "🧑🏾‍🦰", - "🧑🏿‍🦰", - "👩‍🦱", - "👩🏻‍🦱", - "👩🏼‍🦱", - "👩🏽‍🦱", - "👩🏾‍🦱", - "👩🏿‍🦱", - "🧑‍🦱", - "🧑🏻‍🦱", - "🧑🏼‍🦱", - "🧑🏽‍🦱", - "🧑🏾‍🦱", - "🧑🏿‍🦱", - "👩‍🦳", - "👩🏻‍🦳", - "👩🏼‍🦳", - "👩🏽‍🦳", - "👩🏾‍🦳", - "👩🏿‍🦳", - "🧑‍🦳", - "🧑🏻‍🦳", - "🧑🏼‍🦳", - "🧑🏽‍🦳", - "🧑🏾‍🦳", - "🧑🏿‍🦳", - "👩‍🦲", - "👩🏻‍🦲", - "👩🏼‍🦲", - "👩🏽‍🦲", - "👩🏾‍🦲", - "👩🏿‍🦲", - "🧑‍🦲", - "🧑🏻‍🦲", - "🧑🏼‍🦲", - "🧑🏽‍🦲", - "🧑🏾‍🦲", - "🧑🏿‍🦲", - "👱‍♀️", - "👱🏻‍♀️", - "👱🏼‍♀️", - "👱🏽‍♀️", - "👱🏾‍♀️", - "👱🏿‍♀️", - "👱‍♂️", - "👱🏻‍♂️", - "👱🏼‍♂️", - "👱🏽‍♂️", - "👱🏾‍♂️", - "👱🏿‍♂️", - "🧓", - "🧓🏻", - "🧓🏼", - "🧓🏽", - "🧓🏾", - "🧓🏿", - "👴", - "👴🏻", - "👴🏼", - "👴🏽", - "👴🏾", - "👴🏿", - "👵", - "👵🏻", - "👵🏼", - "👵🏽", - "👵🏾", - "👵🏿", - "🙍", - "🙍🏻", - "🙍🏼", - "🙍🏽", - "🙍🏾", - "🙍🏿", - "🙍‍♂️", - "🙍🏻‍♂️", - "🙍🏼‍♂️", - "🙍🏽‍♂️", - "🙍🏾‍♂️", - "🙍🏿‍♂️", - "🙍‍♀️", - "🙍🏻‍♀️", - "🙍🏼‍♀️", - "🙍🏽‍♀️", - "🙍🏾‍♀️", - "🙍🏿‍♀️", - "🙎", - "🙎🏻", - "🙎🏼", - "🙎🏽", - "🙎🏾", - "🙎🏿", - "🙎‍♂️", - "🙎🏻‍♂️", - "🙎🏼‍♂️", - "🙎🏽‍♂️", - "🙎🏾‍♂️", - "🙎🏿‍♂️", - "🙎‍♀️", - "🙎🏻‍♀️", - "🙎🏼‍♀️", - "🙎🏽‍♀️", - "🙎🏾‍♀️", - "🙎🏿‍♀️", - "🙅", - "🙅🏻", - "🙅🏼", - "🙅🏽", - "🙅🏾", - "🙅🏿", - "🙅‍♂️", - "🙅🏻‍♂️", - "🙅🏼‍♂️", - "🙅🏽‍♂️", - "🙅🏾‍♂️", - "🙅🏿‍♂️", - "🙅‍♀️", - "🙅🏻‍♀️", - "🙅🏼‍♀️", - "🙅🏽‍♀️", - "🙅🏾‍♀️", - "🙅🏿‍♀️", - "🙆", - "🙆🏻", - "🙆🏼", - "🙆🏽", - "🙆🏾", - "🙆🏿", - "🙆‍♂️", - "🙆🏻‍♂️", - "🙆🏼‍♂️", - "🙆🏽‍♂️", - "🙆🏾‍♂️", - "🙆🏿‍♂️", - "🙆‍♀️", - "🙆🏻‍♀️", - "🙆🏼‍♀️", - "🙆🏽‍♀️", - "🙆🏾‍♀️", - "🙆🏿‍♀️", - "💁", - "💁🏻", - "💁🏼", - "💁🏽", - "💁🏾", - "💁🏿", - "💁‍♂️", - "💁🏻‍♂️", - "💁🏼‍♂️", - "💁🏽‍♂️", - "💁🏾‍♂️", - "💁🏿‍♂️", - "💁‍♀️", - "💁🏻‍♀️", - "💁🏼‍♀️", - "💁🏽‍♀️", - "💁🏾‍♀️", - "💁🏿‍♀️", - "🙋", - "🙋🏻", - "🙋🏼", - "🙋🏽", - "🙋🏾", - "🙋🏿", - "🙋‍♂️", - "🙋🏻‍♂️", - "🙋🏼‍♂️", - "🙋🏽‍♂️", - "🙋🏾‍♂️", - "🙋🏿‍♂️", - "🙋‍♀️", - "🙋🏻‍♀️", - "🙋🏼‍♀️", - "🙋🏽‍♀️", - "🙋🏾‍♀️", - "🙋🏿‍♀️", - "🧏", - "🧏🏻", - "🧏🏼", - "🧏🏽", - "🧏🏾", - "🧏🏿", - "🧏‍♂️", - "🧏🏻‍♂️", - "🧏🏼‍♂️", - "🧏🏽‍♂️", - "🧏🏾‍♂️", - "🧏🏿‍♂️", - "🧏‍♀️", - "🧏🏻‍♀️", - "🧏🏼‍♀️", - "🧏🏽‍♀️", - "🧏🏾‍♀️", - "🧏🏿‍♀️", - "🙇", - "🙇🏻", - "🙇🏼", - "🙇🏽", - "🙇🏾", - "🙇🏿", - "🙇‍♂️", - "🙇🏻‍♂️", - "🙇🏼‍♂️", - "🙇🏽‍♂️", - "🙇🏾‍♂️", - "🙇🏿‍♂️", - "🙇‍♀️", - "🙇🏻‍♀️", - "🙇🏼‍♀️", - "🙇🏽‍♀️", - "🙇🏾‍♀️", - "🙇🏿‍♀️", - "🤦", - "🤦🏻", - "🤦🏼", - "🤦🏽", - "🤦🏾", - "🤦🏿", - "🤦‍♂️", - "🤦🏻‍♂️", - "🤦🏼‍♂️", - "🤦🏽‍♂️", - "🤦🏾‍♂️", - "🤦🏿‍♂️", - "🤦‍♀️", - "🤦🏻‍♀️", - "🤦🏼‍♀️", - "🤦🏽‍♀️", - "🤦🏾‍♀️", - "🤦🏿‍♀️", - "🤷", - "🤷🏻", - "🤷🏼", - "🤷🏽", - "🤷🏾", - "🤷🏿", - "🤷‍♂️", - "🤷🏻‍♂️", - "🤷🏼‍♂️", - "🤷🏽‍♂️", - "🤷🏾‍♂️", - "🤷🏿‍♂️", - "🤷‍♀️", - "🤷🏻‍♀️", - "🤷🏼‍♀️", - "🤷🏽‍♀️", - "🤷🏾‍♀️", - "🤷🏿‍♀️", - "🧑‍⚕️", - "🧑🏻‍⚕️", - "🧑🏼‍⚕️", - "🧑🏽‍⚕️", - "🧑🏾‍⚕️", - "🧑🏿‍⚕️", - "👨‍⚕️", - "👨🏻‍⚕️", - "👨🏼‍⚕️", - "👨🏽‍⚕️", - "👨🏾‍⚕️", - "👨🏿‍⚕️", - "👩‍⚕️", - "👩🏻‍⚕️", - "👩🏼‍⚕️", - "👩🏽‍⚕️", - "👩🏾‍⚕️", - "👩🏿‍⚕️", - "🧑‍🎓", - "🧑🏻‍🎓", - "🧑🏼‍🎓", - "🧑🏽‍🎓", - "🧑🏾‍🎓", - "🧑🏿‍🎓", - "👨‍🎓", - "👨🏻‍🎓", - "👨🏼‍🎓", - "👨🏽‍🎓", - "👨🏾‍🎓", - "👨🏿‍🎓", - "👩‍🎓", - "👩🏻‍🎓", - "👩🏼‍🎓", - "👩🏽‍🎓", - "👩🏾‍🎓", - "👩🏿‍🎓", - "🧑‍🏫", - "🧑🏻‍🏫", - "🧑🏼‍🏫", - "🧑🏽‍🏫", - "🧑🏾‍🏫", - "🧑🏿‍🏫", - "👨‍🏫", - "👨🏻‍🏫", - "👨🏼‍🏫", - "👨🏽‍🏫", - "👨🏾‍🏫", - "👨🏿‍🏫", - "👩‍🏫", - "👩🏻‍🏫", - "👩🏼‍🏫", - "👩🏽‍🏫", - "👩🏾‍🏫", - "👩🏿‍🏫", - "🧑‍⚖️", - "🧑🏻‍⚖️", - "🧑🏼‍⚖️", - "🧑🏽‍⚖️", - "🧑🏾‍⚖️", - "🧑🏿‍⚖️", - "👨‍⚖️", - "👨🏻‍⚖️", - "👨🏼‍⚖️", - "👨🏽‍⚖️", - "👨🏾‍⚖️", - "👨🏿‍⚖️", - "👩‍⚖️", - "👩🏻‍⚖️", - "👩🏼‍⚖️", - "👩🏽‍⚖️", - "👩🏾‍⚖️", - "👩🏿‍⚖️", - "🧑‍🌾", - "🧑🏻‍🌾", - "🧑🏼‍🌾", - "🧑🏽‍🌾", - "🧑🏾‍🌾", - "🧑🏿‍🌾", - "👨‍🌾", - "👨🏻‍🌾", - "👨🏼‍🌾", - "👨🏽‍🌾", - "👨🏾‍🌾", - "👨🏿‍🌾", - "👩‍🌾", - "👩🏻‍🌾", - "👩🏼‍🌾", - "👩🏽‍🌾", - "👩🏾‍🌾", - "👩🏿‍🌾", - "🧑‍🍳", - "🧑🏻‍🍳", - "🧑🏼‍🍳", - "🧑🏽‍🍳", - "🧑🏾‍🍳", - "🧑🏿‍🍳", - "👨‍🍳", - "👨🏻‍🍳", - "👨🏼‍🍳", - "👨🏽‍🍳", - "👨🏾‍🍳", - "👨🏿‍🍳", - "👩‍🍳", - "👩🏻‍🍳", - "👩🏼‍🍳", - "👩🏽‍🍳", - "👩🏾‍🍳", - "👩🏿‍🍳", - "🧑‍🔧", - "🧑🏻‍🔧", - "🧑🏼‍🔧", - "🧑🏽‍🔧", - "🧑🏾‍🔧", - "🧑🏿‍🔧", - "👨‍🔧", - "👨🏻‍🔧", - "👨🏼‍🔧", - "👨🏽‍🔧", - "👨🏾‍🔧", - "👨🏿‍🔧", - "👩‍🔧", - "👩🏻‍🔧", - "👩🏼‍🔧", - "👩🏽‍🔧", - "👩🏾‍🔧", - "👩🏿‍🔧", - "🧑‍🏭", - "🧑🏻‍🏭", - "🧑🏼‍🏭", - "🧑🏽‍🏭", - "🧑🏾‍🏭", - "🧑🏿‍🏭", - "👨‍🏭", - "👨🏻‍🏭", - "👨🏼‍🏭", - "👨🏽‍🏭", - "👨🏾‍🏭", - "👨🏿‍🏭", - "👩‍🏭", - "👩🏻‍🏭", - "👩🏼‍🏭", - "👩🏽‍🏭", - "👩🏾‍🏭", - "👩🏿‍🏭", - "🧑‍💼", - "🧑🏻‍💼", - "🧑🏼‍💼", - "🧑🏽‍💼", - "🧑🏾‍💼", - "🧑🏿‍💼", - "👨‍💼", - "👨🏻‍💼", - "👨🏼‍💼", - "👨🏽‍💼", - "👨🏾‍💼", - "👨🏿‍💼", - "👩‍💼", - "👩🏻‍💼", - "👩🏼‍💼", - "👩🏽‍💼", - "👩🏾‍💼", - "👩🏿‍💼", - "🧑‍🔬", - "🧑🏻‍🔬", - "🧑🏼‍🔬", - "🧑🏽‍🔬", - "🧑🏾‍🔬", - "🧑🏿‍🔬", - "👨‍🔬", - "👨🏻‍🔬", - "👨🏼‍🔬", - "👨🏽‍🔬", - "👨🏾‍🔬", - "👨🏿‍🔬", - "👩‍🔬", - "👩🏻‍🔬", - "👩🏼‍🔬", - "👩🏽‍🔬", - "👩🏾‍🔬", - "👩🏿‍🔬", - "🧑‍💻", - "🧑🏻‍💻", - "🧑🏼‍💻", - "🧑🏽‍💻", - "🧑🏾‍💻", - "🧑🏿‍💻", - "👨‍💻", - "👨🏻‍💻", - "👨🏼‍💻", - "👨🏽‍💻", - "👨🏾‍💻", - "👨🏿‍💻", - "👩‍💻", - "👩🏻‍💻", - "👩🏼‍💻", - "👩🏽‍💻", - "👩🏾‍💻", - "👩🏿‍💻", - "🧑‍🎤", - "🧑🏻‍🎤", - "🧑🏼‍🎤", - "🧑🏽‍🎤", - "🧑🏾‍🎤", - "🧑🏿‍🎤", - "👨‍🎤", - "👨🏻‍🎤", - "👨🏼‍🎤", - "👨🏽‍🎤", - "👨🏾‍🎤", - "👨🏿‍🎤", - "👩‍🎤", - "👩🏻‍🎤", - "👩🏼‍🎤", - "👩🏽‍🎤", - "👩🏾‍🎤", - "👩🏿‍🎤", - "🧑‍🎨", - "🧑🏻‍🎨", - "🧑🏼‍🎨", - "🧑🏽‍🎨", - "🧑🏾‍🎨", - "🧑🏿‍🎨", - "👨‍🎨", - "👨🏻‍🎨", - "👨🏼‍🎨", - "👨🏽‍🎨", - "👨🏾‍🎨", - "👨🏿‍🎨", - "👩‍🎨", - "👩🏻‍🎨", - "👩🏼‍🎨", - "👩🏽‍🎨", - "👩🏾‍🎨", - "👩🏿‍🎨", - "🧑‍✈️", - "🧑🏻‍✈️", - "🧑🏼‍✈️", - "🧑🏽‍✈️", - "🧑🏾‍✈️", - "🧑🏿‍✈️", - "👨‍✈️", - "👨🏻‍✈️", - "👨🏼‍✈️", - "👨🏽‍✈️", - "👨🏾‍✈️", - "👨🏿‍✈️", - "👩‍✈️", - "👩🏻‍✈️", - "👩🏼‍✈️", - "👩🏽‍✈️", - "👩🏾‍✈️", - "👩🏿‍✈️", - "🧑‍🚀", - "🧑🏻‍🚀", - "🧑🏼‍🚀", - "🧑🏽‍🚀", - "🧑🏾‍🚀", - "🧑🏿‍🚀", - "👨‍🚀", - "👨🏻‍🚀", - "👨🏼‍🚀", - "👨🏽‍🚀", - "👨🏾‍🚀", - "👨🏿‍🚀", - "👩‍🚀", - "👩🏻‍🚀", - "👩🏼‍🚀", - "👩🏽‍🚀", - "👩🏾‍🚀", - "👩🏿‍🚀", - "🧑‍🚒", - "🧑🏻‍🚒", - "🧑🏼‍🚒", - "🧑🏽‍🚒", - "🧑🏾‍🚒", - "🧑🏿‍🚒", - "👨‍🚒", - "👨🏻‍🚒", - "👨🏼‍🚒", - "👨🏽‍🚒", - "👨🏾‍🚒", - "👨🏿‍🚒", - "👩‍🚒", - "👩🏻‍🚒", - "👩🏼‍🚒", - "👩🏽‍🚒", - "👩🏾‍🚒", - "👩🏿‍🚒", - "👮", - "👮🏻", - "👮🏼", - "👮🏽", - "👮🏾", - "👮🏿", - "👮‍♂️", - "👮🏻‍♂️", - "👮🏼‍♂️", - "👮🏽‍♂️", - "👮🏾‍♂️", - "👮🏿‍♂️", - "👮‍♀️", - "👮🏻‍♀️", - "👮🏼‍♀️", - "👮🏽‍♀️", - "👮🏾‍♀️", - "👮🏿‍♀️", - "🕵️", - "🕵🏻", - "🕵🏼", - "🕵🏽", - "🕵🏾", - "🕵🏿", - "🕵️‍♂️", - "🕵🏻‍♂️", - "🕵🏼‍♂️", - "🕵🏽‍♂️", - "🕵🏾‍♂️", - "🕵🏿‍♂️", - "🕵️‍♀️", - "🕵🏻‍♀️", - "🕵🏼‍♀️", - "🕵🏽‍♀️", - "🕵🏾‍♀️", - "🕵🏿‍♀️", - "💂", - "💂🏻", - "💂🏼", - "💂🏽", - "💂🏾", - "💂🏿", - "💂‍♂️", - "💂🏻‍♂️", - "💂🏼‍♂️", - "💂🏽‍♂️", - "💂🏾‍♂️", - "💂🏿‍♂️", - "💂‍♀️", - "💂🏻‍♀️", - "💂🏼‍♀️", - "💂🏽‍♀️", - "💂🏾‍♀️", - "💂🏿‍♀️", - "🥷", - "🥷🏻", - "🥷🏼", - "🥷🏽", - "🥷🏾", - "🥷🏿", - "👷", - "👷🏻", - "👷🏼", - "👷🏽", - "👷🏾", - "👷🏿", - "👷‍♂️", - "👷🏻‍♂️", - "👷🏼‍♂️", - "👷🏽‍♂️", - "👷🏾‍♂️", - "👷🏿‍♂️", - "👷‍♀️", - "👷🏻‍♀️", - "👷🏼‍♀️", - "👷🏽‍♀️", - "👷🏾‍♀️", - "👷🏿‍♀️", - "🤴", - "🤴🏻", - "🤴🏼", - "🤴🏽", - "🤴🏾", - "🤴🏿", - "👸", - "👸🏻", - "👸🏼", - "👸🏽", - "👸🏾", - "👸🏿", - "👳", - "👳🏻", - "👳🏼", - "👳🏽", - "👳🏾", - "👳🏿", - "👳‍♂️", - "👳🏻‍♂️", - "👳🏼‍♂️", - "👳🏽‍♂️", - "👳🏾‍♂️", - "👳🏿‍♂️", - "👳‍♀️", - "👳🏻‍♀️", - "👳🏼‍♀️", - "👳🏽‍♀️", - "👳🏾‍♀️", - "👳🏿‍♀️", - "👲", - "👲🏻", - "👲🏼", - "👲🏽", - "👲🏾", - "👲🏿", - "🧕", - "🧕🏻", - "🧕🏼", - "🧕🏽", - "🧕🏾", - "🧕🏿", - "🤵", - "🤵🏻", - "🤵🏼", - "🤵🏽", - "🤵🏾", - "🤵🏿", - "🤵‍♂️", - "🤵🏻‍♂️", - "🤵🏼‍♂️", - "🤵🏽‍♂️", - "🤵🏾‍♂️", - "🤵🏿‍♂️", - "🤵‍♀️", - "🤵🏻‍♀️", - "🤵🏼‍♀️", - "🤵🏽‍♀️", - "🤵🏾‍♀️", - "🤵🏿‍♀️", - "👰", - "👰🏻", - "👰🏼", - "👰🏽", - "👰🏾", - "👰🏿", - "👰‍♂️", - "👰🏻‍♂️", - "👰🏼‍♂️", - "👰🏽‍♂️", - "👰🏾‍♂️", - "👰🏿‍♂️", - "👰‍♀️", - "👰🏻‍♀️", - "👰🏼‍♀️", - "👰🏽‍♀️", - "👰🏾‍♀️", - "👰🏿‍♀️", - "🤰", - "🤰🏻", - "🤰🏼", - "🤰🏽", - "🤰🏾", - "🤰🏿", - "🤱", - "🤱🏻", - "🤱🏼", - "🤱🏽", - "🤱🏾", - "🤱🏿", - "👩‍🍼", - "👩🏻‍🍼", - "👩🏼‍🍼", - "👩🏽‍🍼", - "👩🏾‍🍼", - "👩🏿‍🍼", - "👨‍🍼", - "👨🏻‍🍼", - "👨🏼‍🍼", - "👨🏽‍🍼", - "👨🏾‍🍼", - "👨🏿‍🍼", - "🧑‍🍼", - "🧑🏻‍🍼", - "🧑🏼‍🍼", - "🧑🏽‍🍼", - "🧑🏾‍🍼", - "🧑🏿‍🍼", - "👼", - "👼🏻", - "👼🏼", - "👼🏽", - "👼🏾", - "👼🏿", - "🎅", - "🎅🏻", - "🎅🏼", - "🎅🏽", - "🎅🏾", - "🎅🏿", - "🤶", - "🤶🏻", - "🤶🏼", - "🤶🏽", - "🤶🏾", - "🤶🏿", - "🧑‍🎄", - "🧑🏻‍🎄", - "🧑🏼‍🎄", - "🧑🏽‍🎄", - "🧑🏾‍🎄", - "🧑🏿‍🎄", - "🦸", - "🦸🏻", - "🦸🏼", - "🦸🏽", - "🦸🏾", - "🦸🏿", - "🦸‍♂️", - "🦸🏻‍♂️", - "🦸🏼‍♂️", - "🦸🏽‍♂️", - "🦸🏾‍♂️", - "🦸🏿‍♂️", - "🦸‍♀️", - "🦸🏻‍♀️", - "🦸🏼‍♀️", - "🦸🏽‍♀️", - "🦸🏾‍♀️", - "🦸🏿‍♀️", - "🦹", - "🦹🏻", - "🦹🏼", - "🦹🏽", - "🦹🏾", - "🦹🏿", - "🦹‍♂️", - "🦹🏻‍♂️", - "🦹🏼‍♂️", - "🦹🏽‍♂️", - "🦹🏾‍♂️", - "🦹🏿‍♂️", - "🦹‍♀️", - "🦹🏻‍♀️", - "🦹🏼‍♀️", - "🦹🏽‍♀️", - "🦹🏾‍♀️", - "🦹🏿‍♀️", - "🧙", - "🧙🏻", - "🧙🏼", - "🧙🏽", - "🧙🏾", - "🧙🏿", - "🧙‍♂️", - "🧙🏻‍♂️", - "🧙🏼‍♂️", - "🧙🏽‍♂️", - "🧙🏾‍♂️", - "🧙🏿‍♂️", - "🧙‍♀️", - "🧙🏻‍♀️", - "🧙🏼‍♀️", - "🧙🏽‍♀️", - "🧙🏾‍♀️", - "🧙🏿‍♀️", - "🧚", - "🧚🏻", - "🧚🏼", - "🧚🏽", - "🧚🏾", - "🧚🏿", - "🧚‍♂️", - "🧚🏻‍♂️", - "🧚🏼‍♂️", - "🧚🏽‍♂️", - "🧚🏾‍♂️", - "🧚🏿‍♂️", - "🧚‍♀️", - "🧚🏻‍♀️", - "🧚🏼‍♀️", - "🧚🏽‍♀️", - "🧚🏾‍♀️", - "🧚🏿‍♀️", - "🧛", - "🧛🏻", - "🧛🏼", - "🧛🏽", - "🧛🏾", - "🧛🏿", - "🧛‍♂️", - "🧛🏻‍♂️", - "🧛🏼‍♂️", - "🧛🏽‍♂️", - "🧛🏾‍♂️", - "🧛🏿‍♂️", - "🧛‍♀️", - "🧛🏻‍♀️", - "🧛🏼‍♀️", - "🧛🏽‍♀️", - "🧛🏾‍♀️", - "🧛🏿‍♀️", - "🧜", - "🧜🏻", - "🧜🏼", - "🧜🏽", - "🧜🏾", - "🧜🏿", - "🧜‍♂️", - "🧜🏻‍♂️", - "🧜🏼‍♂️", - "🧜🏽‍♂️", - "🧜🏾‍♂️", - "🧜🏿‍♂️", - "🧜‍♀️", - "🧜🏻‍♀️", - "🧜🏼‍♀️", - "🧜🏽‍♀️", - "🧜🏾‍♀️", - "🧜🏿‍♀️", - "🧝", - "🧝🏻", - "🧝🏼", - "🧝🏽", - "🧝🏾", - "🧝🏿", - "🧝‍♂️", - "🧝🏻‍♂️", - "🧝🏼‍♂️", - "🧝🏽‍♂️", - "🧝🏾‍♂️", - "🧝🏿‍♂️", - "🧝‍♀️", - "🧝🏻‍♀️", - "🧝🏼‍♀️", - "🧝🏽‍♀️", - "🧝🏾‍♀️", - "🧝🏿‍♀️", - "🧞", - "🧞‍♂️", - "🧞‍♀️", - "🧟", - "🧟‍♂️", - "🧟‍♀️", - "💆", - "💆🏻", - "💆🏼", - "💆🏽", - "💆🏾", - "💆🏿", - "💆‍♂️", - "💆🏻‍♂️", - "💆🏼‍♂️", - "💆🏽‍♂️", - "💆🏾‍♂️", - "💆🏿‍♂️", - "💆‍♀️", - "💆🏻‍♀️", - "💆🏼‍♀️", - "💆🏽‍♀️", - "💆🏾‍♀️", - "💆🏿‍♀️", - "💇", - "💇🏻", - "💇🏼", - "💇🏽", - "💇🏾", - "💇🏿", - "💇‍♂️", - "💇🏻‍♂️", - "💇🏼‍♂️", - "💇🏽‍♂️", - "💇🏾‍♂️", - "💇🏿‍♂️", - "💇‍♀️", - "💇🏻‍♀️", - "💇🏼‍♀️", - "💇🏽‍♀️", - "💇🏾‍♀️", - "💇🏿‍♀️", - "🚶", - "🚶🏻", - "🚶🏼", - "🚶🏽", - "🚶🏾", - "🚶🏿", - "🚶‍♂️", - "🚶🏻‍♂️", - "🚶🏼‍♂️", - "🚶🏽‍♂️", - "🚶🏾‍♂️", - "🚶🏿‍♂️", - "🚶‍♀️", - "🚶🏻‍♀️", - "🚶🏼‍♀️", - "🚶🏽‍♀️", - "🚶🏾‍♀️", - "🚶🏿‍♀️", - "🧍", - "🧍🏻", - "🧍🏼", - "🧍🏽", - "🧍🏾", - "🧍🏿", - "🧍‍♂️", - "🧍🏻‍♂️", - "🧍🏼‍♂️", - "🧍🏽‍♂️", - "🧍🏾‍♂️", - "🧍🏿‍♂️", - "🧍‍♀️", - "🧍🏻‍♀️", - "🧍🏼‍♀️", - "🧍🏽‍♀️", - "🧍🏾‍♀️", - "🧍🏿‍♀️", - "🧎", - "🧎🏻", - "🧎🏼", - "🧎🏽", - "🧎🏾", - "🧎🏿", - "🧎‍♂️", - "🧎🏻‍♂️", - "🧎🏼‍♂️", - "🧎🏽‍♂️", - "🧎🏾‍♂️", - "🧎🏿‍♂️", - "🧎‍♀️", - "🧎🏻‍♀️", - "🧎🏼‍♀️", - "🧎🏽‍♀️", - "🧎🏾‍♀️", - "🧎🏿‍♀️", - "🧑‍🦯", - "🧑🏻‍🦯", - "🧑🏼‍🦯", - "🧑🏽‍🦯", - "🧑🏾‍🦯", - "🧑🏿‍🦯", - "👨‍🦯", - "👨🏻‍🦯", - "👨🏼‍🦯", - "👨🏽‍🦯", - "👨🏾‍🦯", - "👨🏿‍🦯", - "👩‍🦯", - "👩🏻‍🦯", - "👩🏼‍🦯", - "👩🏽‍🦯", - "👩🏾‍🦯", - "👩🏿‍🦯", - "🧑‍🦼", - "🧑🏻‍🦼", - "🧑🏼‍🦼", - "🧑🏽‍🦼", - "🧑🏾‍🦼", - "🧑🏿‍🦼", - "👨‍🦼", - "👨🏻‍🦼", - "👨🏼‍🦼", - "👨🏽‍🦼", - "👨🏾‍🦼", - "👨🏿‍🦼", - "👩‍🦼", - "👩🏻‍🦼", - "👩🏼‍🦼", - "👩🏽‍🦼", - "👩🏾‍🦼", - "👩🏿‍🦼", - "🧑‍🦽", - "🧑🏻‍🦽", - "🧑🏼‍🦽", - "🧑🏽‍🦽", - "🧑🏾‍🦽", - "🧑🏿‍🦽", - "👨‍🦽", - "👨🏻‍🦽", - "👨🏼‍🦽", - "👨🏽‍🦽", - "👨🏾‍🦽", - "👨🏿‍🦽", - "👩‍🦽", - "👩🏻‍🦽", - "👩🏼‍🦽", - "👩🏽‍🦽", - "👩🏾‍🦽", - "👩🏿‍🦽", - "🏃", - "🏃🏻", - "🏃🏼", - "🏃🏽", - "🏃🏾", - "🏃🏿", - "🏃‍♂️", - "🏃🏻‍♂️", - "🏃🏼‍♂️", - "🏃🏽‍♂️", - "🏃🏾‍♂️", - "🏃🏿‍♂️", - "🏃‍♀️", - "🏃🏻‍♀️", - "🏃🏼‍♀️", - "🏃🏽‍♀️", - "🏃🏾‍♀️", - "🏃🏿‍♀️", - "💃", - "💃🏻", - "💃🏼", - "💃🏽", - "💃🏾", - "💃🏿", - "🕺", - "🕺🏻", - "🕺🏼", - "🕺🏽", - "🕺🏾", - "🕺🏿", - "🕴️", - "🕴🏻", - "🕴🏼", - "🕴🏽", - "🕴🏾", - "🕴🏿", - "👯", - "👯‍♂️", - "👯‍♀️", - "🧖", - "🧖🏻", - "🧖🏼", - "🧖🏽", - "🧖🏾", - "🧖🏿", - "🧖‍♂️", - "🧖🏻‍♂️", - "🧖🏼‍♂️", - "🧖🏽‍♂️", - "🧖🏾‍♂️", - "🧖🏿‍♂️", - "🧖‍♀️", - "🧖🏻‍♀️", - "🧖🏼‍♀️", - "🧖🏽‍♀️", - "🧖🏾‍♀️", - "🧖🏿‍♀️", - "🧗", - "🧗🏻", - "🧗🏼", - "🧗🏽", - "🧗🏾", - "🧗🏿", - "🧗‍♂️", - "🧗🏻‍♂️", - "🧗🏼‍♂️", - "🧗🏽‍♂️", - "🧗🏾‍♂️", - "🧗🏿‍♂️", - "🧗‍♀️", - "🧗🏻‍♀️", - "🧗🏼‍♀️", - "🧗🏽‍♀️", - "🧗🏾‍♀️", - "🧗🏿‍♀️", - "🤺", - "🏇", - "🏇🏻", - "🏇🏼", - "🏇🏽", - "🏇🏾", - "🏇🏿", - "⛷️", - "🏂", - "🏂🏻", - "🏂🏼", - "🏂🏽", - "🏂🏾", - "🏂🏿", - "🏌️", - "🏌🏻", - "🏌🏼", - "🏌🏽", - "🏌🏾", - "🏌🏿", - "🏌️‍♂️", - "🏌🏻‍♂️", - "🏌🏼‍♂️", - "🏌🏽‍♂️", - "🏌🏾‍♂️", - "🏌🏿‍♂️", - "🏌️‍♀️", - "🏌🏻‍♀️", - "🏌🏼‍♀️", - "🏌🏽‍♀️", - "🏌🏾‍♀️", - "🏌🏿‍♀️", - "🏄", - "🏄🏻", - "🏄🏼", - "🏄🏽", - "🏄🏾", - "🏄🏿", - "🏄‍♂️", - "🏄🏻‍♂️", - "🏄🏼‍♂️", - "🏄🏽‍♂️", - "🏄🏾‍♂️", - "🏄🏿‍♂️", - "🏄‍♀️", - "🏄🏻‍♀️", - "🏄🏼‍♀️", - "🏄🏽‍♀️", - "🏄🏾‍♀️", - "🏄🏿‍♀️", - "🚣", - "🚣🏻", - "🚣🏼", - "🚣🏽", - "🚣🏾", - "🚣🏿", - "🚣‍♂️", - "🚣🏻‍♂️", - "🚣🏼‍♂️", - "🚣🏽‍♂️", - "🚣🏾‍♂️", - "🚣🏿‍♂️", - "🚣‍♀️", - "🚣🏻‍♀️", - "🚣🏼‍♀️", - "🚣🏽‍♀️", - "🚣🏾‍♀️", - "🚣🏿‍♀️", - "🏊", - "🏊🏻", - "🏊🏼", - "🏊🏽", - "🏊🏾", - "🏊🏿", - "🏊‍♂️", - "🏊🏻‍♂️", - "🏊🏼‍♂️", - "🏊🏽‍♂️", - "🏊🏾‍♂️", - "🏊🏿‍♂️", - "🏊‍♀️", - "🏊🏻‍♀️", - "🏊🏼‍♀️", - "🏊🏽‍♀️", - "🏊🏾‍♀️", - "🏊🏿‍♀️", - "⛹️", - "⛹🏻", - "⛹🏼", - "⛹🏽", - "⛹🏾", - "⛹🏿", - "⛹️‍♂️", - "⛹🏻‍♂️", - "⛹🏼‍♂️", - "⛹🏽‍♂️", - "⛹🏾‍♂️", - "⛹🏿‍♂️", - "⛹️‍♀️", - "⛹🏻‍♀️", - "⛹🏼‍♀️", - "⛹🏽‍♀️", - "⛹🏾‍♀️", - "⛹🏿‍♀️", - "🏋️", - "🏋🏻", - "🏋🏼", - "🏋🏽", - "🏋🏾", - "🏋🏿", - "🏋️‍♂️", - "🏋🏻‍♂️", - "🏋🏼‍♂️", - "🏋🏽‍♂️", - "🏋🏾‍♂️", - "🏋🏿‍♂️", - "🏋️‍♀️", - "🏋🏻‍♀️", - "🏋🏼‍♀️", - "🏋🏽‍♀️", - "🏋🏾‍♀️", - "🏋🏿‍♀️", - "🚴", - "🚴🏻", - "🚴🏼", - "🚴🏽", - "🚴🏾", - "🚴🏿", - "🚴‍♂️", - "🚴🏻‍♂️", - "🚴🏼‍♂️", - "🚴🏽‍♂️", - "🚴🏾‍♂️", - "🚴🏿‍♂️", - "🚴‍♀️", - "🚴🏻‍♀️", - "🚴🏼‍♀️", - "🚴🏽‍♀️", - "🚴🏾‍♀️", - "🚴🏿‍♀️", - "🚵", - "🚵🏻", - "🚵🏼", - "🚵🏽", - "🚵🏾", - "🚵🏿", - "🚵‍♂️", - "🚵🏻‍♂️", - "🚵🏼‍♂️", - "🚵🏽‍♂️", - "🚵🏾‍♂️", - "🚵🏿‍♂️", - "🚵‍♀️", - "🚵🏻‍♀️", - "🚵🏼‍♀️", - "🚵🏽‍♀️", - "🚵🏾‍♀️", - "🚵🏿‍♀️", - "🤸", - "🤸🏻", - "🤸🏼", - "🤸🏽", - "🤸🏾", - "🤸🏿", - "🤸‍♂️", - "🤸🏻‍♂️", - "🤸🏼‍♂️", - "🤸🏽‍♂️", - "🤸🏾‍♂️", - "🤸🏿‍♂️", - "🤸‍♀️", - "🤸🏻‍♀️", - "🤸🏼‍♀️", - "🤸🏽‍♀️", - "🤸🏾‍♀️", - "🤸🏿‍♀️", - "🤼", - "🤼‍♂️", - "🤼‍♀️", - "🤽", - "🤽🏻", - "🤽🏼", - "🤽🏽", - "🤽🏾", - "🤽🏿", - "🤽‍♂️", - "🤽🏻‍♂️", - "🤽🏼‍♂️", - "🤽🏽‍♂️", - "🤽🏾‍♂️", - "🤽🏿‍♂️", - "🤽‍♀️", - "🤽🏻‍♀️", - "🤽🏼‍♀️", - "🤽🏽‍♀️", - "🤽🏾‍♀️", - "🤽🏿‍♀️", - "🤾", - "🤾🏻", - "🤾🏼", - "🤾🏽", - "🤾🏾", - "🤾🏿", - "🤾‍♂️", - "🤾🏻‍♂️", - "🤾🏼‍♂️", - "🤾🏽‍♂️", - "🤾🏾‍♂️", - "🤾🏿‍♂️", - "🤾‍♀️", - "🤾🏻‍♀️", - "🤾🏼‍♀️", - "🤾🏽‍♀️", - "🤾🏾‍♀️", - "🤾🏿‍♀️", - "🤹", - "🤹🏻", - "🤹🏼", - "🤹🏽", - "🤹🏾", - "🤹🏿", - "🤹‍♂️", - "🤹🏻‍♂️", - "🤹🏼‍♂️", - "🤹🏽‍♂️", - "🤹🏾‍♂️", - "🤹🏿‍♂️", - "🤹‍♀️", - "🤹🏻‍♀️", - "🤹🏼‍♀️", - "🤹🏽‍♀️", - "🤹🏾‍♀️", - "🤹🏿‍♀️", - "🧘", - "🧘🏻", - "🧘🏼", - "🧘🏽", - "🧘🏾", - "🧘🏿", - "🧘‍♂️", - "🧘🏻‍♂️", - "🧘🏼‍♂️", - "🧘🏽‍♂️", - "🧘🏾‍♂️", - "🧘🏿‍♂️", - "🧘‍♀️", - "🧘🏻‍♀️", - "🧘🏼‍♀️", - "🧘🏽‍♀️", - "🧘🏾‍♀️", - "🧘🏿‍♀️", - "🛀", - "🛀🏻", - "🛀🏼", - "🛀🏽", - "🛀🏾", - "🛀🏿", - "🛌", - "🛌🏻", - "🛌🏼", - "🛌🏽", - "🛌🏾", - "🛌🏿", - "🧑‍🤝‍🧑", - "🧑🏻‍🤝‍🧑🏻", - "🧑🏻‍🤝‍🧑🏼", - "🧑🏻‍🤝‍🧑🏽", - "🧑🏻‍🤝‍🧑🏾", - "🧑🏻‍🤝‍🧑🏿", - "🧑🏼‍🤝‍🧑🏻", - "🧑🏼‍🤝‍🧑🏼", - "🧑🏼‍🤝‍🧑🏽", - "🧑🏼‍🤝‍🧑🏾", - "🧑🏼‍🤝‍🧑🏿", - "🧑🏽‍🤝‍🧑🏻", - "🧑🏽‍🤝‍🧑🏼", - "🧑🏽‍🤝‍🧑🏽", - "🧑🏽‍🤝‍🧑🏾", - "🧑🏽‍🤝‍🧑🏿", - "🧑🏾‍🤝‍🧑🏻", - "🧑🏾‍🤝‍🧑🏼", - "🧑🏾‍🤝‍🧑🏽", - "🧑🏾‍🤝‍🧑🏾", - "🧑🏾‍🤝‍🧑🏿", - "🧑🏿‍🤝‍🧑🏻", - "🧑🏿‍🤝‍🧑🏼", - "🧑🏿‍🤝‍🧑🏽", - "🧑🏿‍🤝‍🧑🏾", - "🧑🏿‍🤝‍🧑🏿", - "👭", - "👭🏻", - "👩🏻‍🤝‍👩🏼", - "👩🏻‍🤝‍👩🏽", - "👩🏻‍🤝‍👩🏾", - "👩🏻‍🤝‍👩🏿", - "👩🏼‍🤝‍👩🏻", - "👭🏼", - "👩🏼‍🤝‍👩🏽", - "👩🏼‍🤝‍👩🏾", - "👩🏼‍🤝‍👩🏿", - "👩🏽‍🤝‍👩🏻", - "👩🏽‍🤝‍👩🏼", - "👭🏽", - "👩🏽‍🤝‍👩🏾", - "👩🏽‍🤝‍👩🏿", - "👩🏾‍🤝‍👩🏻", - "👩🏾‍🤝‍👩🏼", - "👩🏾‍🤝‍👩🏽", - "👭🏾", - "👩🏾‍🤝‍👩🏿", - "👩🏿‍🤝‍👩🏻", - "👩🏿‍🤝‍👩🏼", - "👩🏿‍🤝‍👩🏽", - "👩🏿‍🤝‍👩🏾", - "👭🏿", - "👫", - "👫🏻", - "👩🏻‍🤝‍👨🏼", - "👩🏻‍🤝‍👨🏽", - "👩🏻‍🤝‍👨🏾", - "👩🏻‍🤝‍👨🏿", - "👩🏼‍🤝‍👨🏻", - "👫🏼", - "👩🏼‍🤝‍👨🏽", - "👩🏼‍🤝‍👨🏾", - "👩🏼‍🤝‍👨🏿", - "👩🏽‍🤝‍👨🏻", - "👩🏽‍🤝‍👨🏼", - "👫🏽", - "👩🏽‍🤝‍👨🏾", - "👩🏽‍🤝‍👨🏿", - "👩🏾‍🤝‍👨🏻", - "👩🏾‍🤝‍👨🏼", - "👩🏾‍🤝‍👨🏽", - "👫🏾", - "👩🏾‍🤝‍👨🏿", - "👩🏿‍🤝‍👨🏻", - "👩🏿‍🤝‍👨🏼", - "👩🏿‍🤝‍👨🏽", - "👩🏿‍🤝‍👨🏾", - "👫🏿", - "👬", - "👬🏻", - "👨🏻‍🤝‍👨🏼", - "👨🏻‍🤝‍👨🏽", - "👨🏻‍🤝‍👨🏾", - "👨🏻‍🤝‍👨🏿", - "👨🏼‍🤝‍👨🏻", - "👬🏼", - "👨🏼‍🤝‍👨🏽", - "👨🏼‍🤝‍👨🏾", - "👨🏼‍🤝‍👨🏿", - "👨🏽‍🤝‍👨🏻", - "👨🏽‍🤝‍👨🏼", - "👬🏽", - "👨🏽‍🤝‍👨🏾", - "👨🏽‍🤝‍👨🏿", - "👨🏾‍🤝‍👨🏻", - "👨🏾‍🤝‍👨🏼", - "👨🏾‍🤝‍👨🏽", - "👬🏾", - "👨🏾‍🤝‍👨🏿", - "👨🏿‍🤝‍👨🏻", - "👨🏿‍🤝‍👨🏼", - "👨🏿‍🤝‍👨🏽", - "👨🏿‍🤝‍👨🏾", - "👬🏿", - "💏", - "💏🏻", - "💏🏼", - "💏🏽", - "💏🏾", - "💏🏿", - "🧑🏻‍❤️‍💋‍🧑🏼", - "🧑🏻‍❤️‍💋‍🧑🏽", - "🧑🏻‍❤️‍💋‍🧑🏾", - "🧑🏻‍❤️‍💋‍🧑🏿", - "🧑🏼‍❤️‍💋‍🧑🏻", - "🧑🏼‍❤️‍💋‍🧑🏽", - "🧑🏼‍❤️‍💋‍🧑🏾", - "🧑🏼‍❤️‍💋‍🧑🏿", - "🧑🏽‍❤️‍💋‍🧑🏻", - "🧑🏽‍❤️‍💋‍🧑🏼", - "🧑🏽‍❤️‍💋‍🧑🏾", - "🧑🏽‍❤️‍💋‍🧑🏿", - "🧑🏾‍❤️‍💋‍🧑🏻", - "🧑🏾‍❤️‍💋‍🧑🏼", - "🧑🏾‍❤️‍💋‍🧑🏽", - "🧑🏾‍❤️‍💋‍🧑🏿", - "🧑🏿‍❤️‍💋‍🧑🏻", - "🧑🏿‍❤️‍💋‍🧑🏼", - "🧑🏿‍❤️‍💋‍🧑🏽", - "🧑🏿‍❤️‍💋‍🧑🏾", - "👩‍❤️‍💋‍👨", - "👩🏻‍❤️‍💋‍👨🏻", - "👩🏻‍❤️‍💋‍👨🏼", - "👩🏻‍❤️‍💋‍👨🏽", - "👩🏻‍❤️‍💋‍👨🏾", - "👩🏻‍❤️‍💋‍👨🏿", - "👩🏼‍❤️‍💋‍👨🏻", - "👩🏼‍❤️‍💋‍👨🏼", - "👩🏼‍❤️‍💋‍👨🏽", - "👩🏼‍❤️‍💋‍👨🏾", - "👩🏼‍❤️‍💋‍👨🏿", - "👩🏽‍❤️‍💋‍👨🏻", - "👩🏽‍❤️‍💋‍👨🏼", - "👩🏽‍❤️‍💋‍👨🏽", - "👩🏽‍❤️‍💋‍👨🏾", - "👩🏽‍❤️‍💋‍👨🏿", - "👩🏾‍❤️‍💋‍👨🏻", - "👩🏾‍❤️‍💋‍👨🏼", - "👩🏾‍❤️‍💋‍👨🏽", - "👩🏾‍❤️‍💋‍👨🏾", - "👩🏾‍❤️‍💋‍👨🏿", - "👩🏿‍❤️‍💋‍👨🏻", - "👩🏿‍❤️‍💋‍👨🏼", - "👩🏿‍❤️‍💋‍👨🏽", - "👩🏿‍❤️‍💋‍👨🏾", - "👩🏿‍❤️‍💋‍👨🏿", - "👨‍❤️‍💋‍👨", - "👨🏻‍❤️‍💋‍👨🏻", - "👨🏻‍❤️‍💋‍👨🏼", - "👨🏻‍❤️‍💋‍👨🏽", - "👨🏻‍❤️‍💋‍👨🏾", - "👨🏻‍❤️‍💋‍👨🏿", - "👨🏼‍❤️‍💋‍👨🏻", - "👨🏼‍❤️‍💋‍👨🏼", - "👨🏼‍❤️‍💋‍👨🏽", - "👨🏼‍❤️‍💋‍👨🏾", - "👨🏼‍❤️‍💋‍👨🏿", - "👨🏽‍❤️‍💋‍👨🏻", - "👨🏽‍❤️‍💋‍👨🏼", - "👨🏽‍❤️‍💋‍👨🏽", - "👨🏽‍❤️‍💋‍👨🏾", - "👨🏽‍❤️‍💋‍👨🏿", - "👨🏾‍❤️‍💋‍👨🏻", - "👨🏾‍❤️‍💋‍👨🏼", - "👨🏾‍❤️‍💋‍👨🏽", - "👨🏾‍❤️‍💋‍👨🏾", - "👨🏾‍❤️‍💋‍👨🏿", - "👨🏿‍❤️‍💋‍👨🏻", - "👨🏿‍❤️‍💋‍👨🏼", - "👨🏿‍❤️‍💋‍👨🏽", - "👨🏿‍❤️‍💋‍👨🏾", - "👨🏿‍❤️‍💋‍👨🏿", - "👩‍❤️‍💋‍👩", - "👩🏻‍❤️‍💋‍👩🏻", - "👩🏻‍❤️‍💋‍👩🏼", - "👩🏻‍❤️‍💋‍👩🏽", - "👩🏻‍❤️‍💋‍👩🏾", - "👩🏻‍❤️‍💋‍👩🏿", - "👩🏼‍❤️‍💋‍👩🏻", - "👩🏼‍❤️‍💋‍👩🏼", - "👩🏼‍❤️‍💋‍👩🏽", - "👩🏼‍❤️‍💋‍👩🏾", - "👩🏼‍❤️‍💋‍👩🏿", - "👩🏽‍❤️‍💋‍👩🏻", - "👩🏽‍❤️‍💋‍👩🏼", - "👩🏽‍❤️‍💋‍👩🏽", - "👩🏽‍❤️‍💋‍👩🏾", - "👩🏽‍❤️‍💋‍👩🏿", - "👩🏾‍❤️‍💋‍👩🏻", - "👩🏾‍❤️‍💋‍👩🏼", - "👩🏾‍❤️‍💋‍👩🏽", - "👩🏾‍❤️‍💋‍👩🏾", - "👩🏾‍❤️‍💋‍👩🏿", - "👩🏿‍❤️‍💋‍👩🏻", - "👩🏿‍❤️‍💋‍👩🏼", - "👩🏿‍❤️‍💋‍👩🏽", - "👩🏿‍❤️‍💋‍👩🏾", - "👩🏿‍❤️‍💋‍👩🏿", - "💑", - "💑🏻", - "💑🏼", - "💑🏽", - "💑🏾", - "💑🏿", - "🧑🏻‍❤️‍🧑🏼", - "🧑🏻‍❤️‍🧑🏽", - "🧑🏻‍❤️‍🧑🏾", - "🧑🏻‍❤️‍🧑🏿", - "🧑🏼‍❤️‍🧑🏻", - "🧑🏼‍❤️‍🧑🏽", - "🧑🏼‍❤️‍🧑🏾", - "🧑🏼‍❤️‍🧑🏿", - "🧑🏽‍❤️‍🧑🏻", - "🧑🏽‍❤️‍🧑🏼", - "🧑🏽‍❤️‍🧑🏾", - "🧑🏽‍❤️‍🧑🏿", - "🧑🏾‍❤️‍🧑🏻", - "🧑🏾‍❤️‍🧑🏼", - "🧑🏾‍❤️‍🧑🏽", - "🧑🏾‍❤️‍🧑🏿", - "🧑🏿‍❤️‍🧑🏻", - "🧑🏿‍❤️‍🧑🏼", - "🧑🏿‍❤️‍🧑🏽", - "🧑🏿‍❤️‍🧑🏾", - "👩‍❤️‍👨", - "👩🏻‍❤️‍👨🏻", - "👩🏻‍❤️‍👨🏼", - "👩🏻‍❤️‍👨🏽", - "👩🏻‍❤️‍👨🏾", - "👩🏻‍❤️‍👨🏿", - "👩🏼‍❤️‍👨🏻", - "👩🏼‍❤️‍👨🏼", - "👩🏼‍❤️‍👨🏽", - "👩🏼‍❤️‍👨🏾", - "👩🏼‍❤️‍👨🏿", - "👩🏽‍❤️‍👨🏻", - "👩🏽‍❤️‍👨🏼", - "👩🏽‍❤️‍👨🏽", - "👩🏽‍❤️‍👨🏾", - "👩🏽‍❤️‍👨🏿", - "👩🏾‍❤️‍👨🏻", - "👩🏾‍❤️‍👨🏼", - "👩🏾‍❤️‍👨🏽", - "👩🏾‍❤️‍👨🏾", - "👩🏾‍❤️‍👨🏿", - "👩🏿‍❤️‍👨🏻", - "👩🏿‍❤️‍👨🏼", - "👩🏿‍❤️‍👨🏽", - "👩🏿‍❤️‍👨🏾", - "👩🏿‍❤️‍👨🏿", - "👨‍❤️‍👨", - "👨🏻‍❤️‍👨🏻", - "👨🏻‍❤️‍👨🏼", - "👨🏻‍❤️‍👨🏽", - "👨🏻‍❤️‍👨🏾", - "👨🏻‍❤️‍👨🏿", - "👨🏼‍❤️‍👨🏻", - "👨🏼‍❤️‍👨🏼", - "👨🏼‍❤️‍👨🏽", - "👨🏼‍❤️‍👨🏾", - "👨🏼‍❤️‍👨🏿", - "👨🏽‍❤️‍👨🏻", - "👨🏽‍❤️‍👨🏼", - "👨🏽‍❤️‍👨🏽", - "👨🏽‍❤️‍👨🏾", - "👨🏽‍❤️‍👨🏿", - "👨🏾‍❤️‍👨🏻", - "👨🏾‍❤️‍👨🏼", - "👨🏾‍❤️‍👨🏽", - "👨🏾‍❤️‍👨🏾", - "👨🏾‍❤️‍👨🏿", - "👨🏿‍❤️‍👨🏻", - "👨🏿‍❤️‍👨🏼", - "👨🏿‍❤️‍👨🏽", - "👨🏿‍❤️‍👨🏾", - "👨🏿‍❤️‍👨🏿", - "👩‍❤️‍👩", - "👩🏻‍❤️‍👩🏻", - "👩🏻‍❤️‍👩🏼", - "👩🏻‍❤️‍👩🏽", - "👩🏻‍❤️‍👩🏾", - "👩🏻‍❤️‍👩🏿", - "👩🏼‍❤️‍👩🏻", - "👩🏼‍❤️‍👩🏼", - "👩🏼‍❤️‍👩🏽", - "👩🏼‍❤️‍👩🏾", - "👩🏼‍❤️‍👩🏿", - "👩🏽‍❤️‍👩🏻", - "👩🏽‍❤️‍👩🏼", - "👩🏽‍❤️‍👩🏽", - "👩🏽‍❤️‍👩🏾", - "👩🏽‍❤️‍👩🏿", - "👩🏾‍❤️‍👩🏻", - "👩🏾‍❤️‍👩🏼", - "👩🏾‍❤️‍👩🏽", - "👩🏾‍❤️‍👩🏾", - "👩🏾‍❤️‍👩🏿", - "👩🏿‍❤️‍👩🏻", - "👩🏿‍❤️‍👩🏼", - "👩🏿‍❤️‍👩🏽", - "👩🏿‍❤️‍👩🏾", - "👩🏿‍❤️‍👩🏿", - "👪", - "👨‍👩‍👦", - "👨‍👩‍👧", - "👨‍👩‍👧‍👦", - "👨‍👩‍👦‍👦", - "👨‍👩‍👧‍👧", - "👨‍👨‍👦", - "👨‍👨‍👧", - "👨‍👨‍👧‍👦", - "👨‍👨‍👦‍👦", - "👨‍👨‍👧‍👧", - "👩‍👩‍👦", - "👩‍👩‍👧", - "👩‍👩‍👧‍👦", - "👩‍👩‍👦‍👦", - "👩‍👩‍👧‍👧", - "👨‍👦", - "👨‍👦‍👦", - "👨‍👧", - "👨‍👧‍👦", - "👨‍👧‍👧", - "👩‍👦", - "👩‍👦‍👦", - "👩‍👧", - "👩‍👧‍👦", - "👩‍👧‍👧", - "🗣️", - "👤", - "👥", - "🫂", - "👣", - "🐵", - "🐒", - "🦍", - "🦧", - "🐶", - "🐕", - "🦮", - "🐕‍🦺", - "🐩", - "🐺", - "🦊", - "🦝", - "🐱", - "🐈", - "🐈‍⬛", - "🦁", - "🐯", - "🐅", - "🐆", - "🐴", - "🐎", - "🦄", - "🦓", - "🦌", - "🦬", - "🐮", - "🐂", - "🐃", - "🐄", - "🐷", - "🐖", - "🐗", - "🐽", - "🐏", - "🐑", - "🐐", - "🐪", - "🐫", - "🦙", - "🦒", - "🐘", - "🦣", - "🦏", - "🦛", - "🐭", - "🐁", - "🐀", - "🐹", - "🐰", - "🐇", - "🐿️", - "🦫", - "🦔", - "🦇", - "🐻", - "🐻‍❄️", - "🐨", - "🐼", - "🦥", - "🦦", - "🦨", - "🦘", - "🦡", - "🐾", - "🦃", - "🐔", - "🐓", - "🐣", - "🐤", - "🐥", - "🐦", - "🐧", - "🕊️", - "🦅", - "🦆", - "🦢", - "🦉", - "🦤", - "🪶", - "🦩", - "🦚", - "🦜", - "🐸", - "🐊", - "🐢", - "🦎", - "🐍", - "🐲", - "🐉", - "🦕", - "🦖", - "🐳", - "🐋", - "🐬", - "🦭", - "🐟", - "🐠", - "🐡", - "🦈", - "🐙", - "🐚", - "🐌", - "🦋", - "🐛", - "🐜", - "🐝", - "🪲", - "🐞", - "🦗", - "🪳", - "🕷️", - "🕸️", - "🦂", - "🦟", - "🪰", - "🪱", - "🦠", - "💐", - "🌸", - "💮", - "🏵️", - "🌹", - "🥀", - "🌺", - "🌻", - "🌼", - "🌷", - "🌱", - "🪴", - "🌲", - "🌳", - "🌴", - "🌵", - "🌾", - "🌿", - "☘️", - "🍀", - "🍁", - "🍂", - "🍃", - "🍇", - "🍈", - "🍉", - "🍊", - "🍋", - "🍌", - "🍍", - "🥭", - "🍎", - "🍏", - "🍐", - "🍑", - "🍒", - "🍓", - "🫐", - "🥝", - "🍅", - "🫒", - "🥥", - "🥑", - "🍆", - "🥔", - "🥕", - "🌽", - "🌶️", - "🫑", - "🥒", - "🥬", - "🥦", - "🧄", - "🧅", - "🍄", - "🥜", - "🌰", - "🍞", - "🥐", - "🥖", - "🫓", - "🥨", - "🥯", - "🥞", - "🧇", - "🧀", - "🍖", - "🍗", - "🥩", - "🥓", - "🍔", - "🍟", - "🍕", - "🌭", - "🥪", - "🌮", - "🌯", - "🫔", - "🥙", - "🧆", - "🥚", - "🍳", - "🥘", - "🍲", - "🫕", - "🥣", - "🥗", - "🍿", - "🧈", - "🧂", - "🥫", - "🍱", - "🍘", - "🍙", - "🍚", - "🍛", - "🍜", - "🍝", - "🍠", - "🍢", - "🍣", - "🍤", - "🍥", - "🥮", - "🍡", - "🥟", - "🥠", - "🥡", - "🦀", - "🦞", - "🦐", - "🦑", - "🦪", - "🍦", - "🍧", - "🍨", - "🍩", - "🍪", - "🎂", - "🍰", - "🧁", - "🥧", - "🍫", - "🍬", - "🍭", - "🍮", - "🍯", - "🍼", - "🥛", - "☕", - "🫖", - "🍵", - "🍶", - "🍾", - "🍷", - "🍸", - "🍹", - "🍺", - "🍻", - "🥂", - "🥃", - "🥤", - "🧋", - "🧃", - "🧉", - "🧊", - "🥢", - "🍽️", - "🍴", - "🥄", - "🔪", - "🏺", - "🌍", - "🌎", - "🌏", - "🌐", - "🗺️", - "🗾", - "🧭", - "🏔️", - "⛰️", - "🌋", - "🗻", - "🏕️", - "🏖️", - "🏜️", - "🏝️", - "🏞️", - "🏟️", - "🏛️", - "🏗️", - "🧱", - "🪨", - "🪵", - "🛖", - "🏘️", - "🏚️", - "🏠", - "🏡", - "🏢", - "🏣", - "🏤", - "🏥", - "🏦", - "🏨", - "🏩", - "🏪", - "🏫", - "🏬", - "🏭", - "🏯", - "🏰", - "💒", - "🗼", - "🗽", - "⛪", - "🕌", - "🛕", - "🕍", - "⛩️", - "🕋", - "⛲", - "⛺", - "🌁", - "🌃", - "🏙️", - "🌄", - "🌅", - "🌆", - "🌇", - "🌉", - "♨️", - "🎠", - "🎡", - "🎢", - "💈", - "🎪", - "🚂", - "🚃", - "🚄", - "🚅", - "🚆", - "🚇", - "🚈", - "🚉", - "🚊", - "🚝", - "🚞", - "🚋", - "🚌", - "🚍", - "🚎", - "🚐", - "🚑", - "🚒", - "🚓", - "🚔", - "🚕", - "🚖", - "🚗", - "🚘", - "🚙", - "🛻", - "🚚", - "🚛", - "🚜", - "🏎️", - "🏍️", - "🛵", - "🦽", - "🦼", - "🛺", - "🚲", - "🛴", - "🛹", - "🛼", - "🚏", - "🛣️", - "🛤️", - "🛢️", - "⛽", - "🚨", - "🚥", - "🚦", - "🛑", - "🚧", - "⚓", - "⛵", - "🛶", - "🚤", - "🛳️", - "⛴️", - "🛥️", - "🚢", - "✈️", - "🛩️", - "🛫", - "🛬", - "🪂", - "💺", - "🚁", - "🚟", - "🚠", - "🚡", - "🛰️", - "🚀", - "🛸", - "🛎️", - "🧳", - "⌛", - "⏳", - "⌚", - "⏰", - "⏱️", - "⏲️", - "🕰️", - "🕛", - "🕧", - "🕐", - "🕜", - "🕑", - "🕝", - "🕒", - "🕞", - "🕓", - "🕟", - "🕔", - "🕠", - "🕕", - "🕡", - "🕖", - "🕢", - "🕗", - "🕣", - "🕘", - "🕤", - "🕙", - "🕥", - "🕚", - "🕦", - "🌑", - "🌒", - "🌓", - "🌔", - "🌕", - "🌖", - "🌗", - "🌘", - "🌙", - "🌚", - "🌛", - "🌜", - "🌡️", - "☀️", - "🌝", - "🌞", - "🪐", - "⭐", - "🌟", - "🌠", - "🌌", - "☁️", - "⛅", - "⛈️", - "🌤️", - "🌥️", - "🌦️", - "🌧️", - "🌨️", - "🌩️", - "🌪️", - "🌫️", - "🌬️", - "🌀", - "🌈", - "🌂", - "☂️", - "☔", - "⛱️", - "⚡", - "❄️", - "☃️", - "⛄", - "☄️", - "🔥", - "💧", - "🌊", - "🎃", - "🎄", - "🎆", - "🎇", - "🧨", - "✨", - "🎈", - "🎉", - "🎊", - "🎋", - "🎍", - "🎎", - "🎏", - "🎐", - "🎑", - "🧧", - "🎀", - "🎁", - "🎗️", - "🎟️", - "🎫", - "🎖️", - "🏆", - "🏅", - "🥇", - "🥈", - "🥉", - "⚽", - "⚾", - "🥎", - "🏀", - "🏐", - "🏈", - "🏉", - "🎾", - "🥏", - "🎳", - "🏏", - "🏑", - "🏒", - "🥍", - "🏓", - "🏸", - "🥊", - "🥋", - "🥅", - "⛳", - "⛸️", - "🎣", - "🤿", - "🎽", - "🎿", - "🛷", - "🥌", - "🎯", - "🪀", - "🪁", - "🎱", - "🔮", - "🪄", - "🧿", - "🎮", - "🕹️", - "🎰", - "🎲", - "🧩", - "🧸", - "🪅", - "🪆", - "♠️", - "♥️", - "♦️", - "♣️", - "♟️", - "🃏", - "🀄", - "🎴", - "🎭", - "🖼️", - "🎨", - "🧵", - "🪡", - "🧶", - "🪢", - "👓", - "🕶️", - "🥽", - "🥼", - "🦺", - "👔", - "👕", - "👖", - "🧣", - "🧤", - "🧥", - "🧦", - "👗", - "👘", - "🥻", - "🩱", - "🩲", - "🩳", - "👙", - "👚", - "👛", - "👜", - "👝", - "🛍️", - "🎒", - "🩴", - "👞", - "👟", - "🥾", - "🥿", - "👠", - "👡", - "🩰", - "👢", - "👑", - "👒", - "🎩", - "🎓", - "🧢", - "🪖", - "⛑️", - "📿", - "💄", - "💍", - "💎", - "🔇", - "🔈", - "🔉", - "🔊", - "📢", - "📣", - "📯", - "🔔", - "🔕", - "🎼", - "🎵", - "🎶", - "🎙️", - "🎚️", - "🎛️", - "🎤", - "🎧", - "📻", - "🎷", - "🪗", - "🎸", - "🎹", - "🎺", - "🎻", - "🪕", - "🥁", - "🪘", - "📱", - "📲", - "☎️", - "📞", - "📟", - "📠", - "🔋", - "🔌", - "💻", - "🖥️", - "🖨️", - "⌨️", - "🖱️", - "🖲️", - "💽", - "💾", - "💿", - "📀", - "🧮", - "🎥", - "🎞️", - "📽️", - "🎬", - "📺", - "📷", - "📸", - "📹", - "📼", - "🔍", - "🔎", - "🕯️", - "💡", - "🔦", - "🏮", - "🪔", - "📔", - "📕", - "📖", - "📗", - "📘", - "📙", - "📚", - "📓", - "📒", - "📃", - "📜", - "📄", - "📰", - "🗞️", - "📑", - "🔖", - "🏷️", - "💰", - "🪙", - "💴", - "💵", - "💶", - "💷", - "💸", - "💳", - "🧾", - "💹", - "✉️", - "📧", - "📨", - "📩", - "📤", - "📥", - "📦", - "📫", - "📪", - "📬", - "📭", - "📮", - "🗳️", - "✏️", - "✒️", - "🖋️", - "🖊️", - "🖌️", - "🖍️", - "📝", - "💼", - "📁", - "📂", - "🗂️", - "📅", - "📆", - "🗒️", - "🗓️", - "📇", - "📈", - "📉", - "📊", - "📋", - "📌", - "📍", - "📎", - "🖇️", - "📏", - "📐", - "✂️", - "🗃️", - "🗄️", - "🗑️", - "🔒", - "🔓", - "🔏", - "🔐", - "🔑", - "🗝️", - "🔨", - "🪓", - "⛏️", - "⚒️", - "🛠️", - "🗡️", - "⚔️", - "🔫", - "🪃", - "🏹", - "🛡️", - "🪚", - "🔧", - "🪛", - "🔩", - "⚙️", - "🗜️", - "⚖️", - "🦯", - "🔗", - "⛓️", - "🪝", - "🧰", - "🧲", - "🪜", - "⚗️", - "🧪", - "🧫", - "🧬", - "🔬", - "🔭", - "📡", - "💉", - "🩸", - "💊", - "🩹", - "🩺", - "🚪", - "🛗", - "🪞", - "🪟", - "🛏️", - "🛋️", - "🪑", - "🚽", - "🪠", - "🚿", - "🛁", - "🪤", - "🪒", - "🧴", - "🧷", - "🧹", - "🧺", - "🧻", - "🪣", - "🧼", - "🪥", - "🧽", - "🧯", - "🛒", - "🚬", - "⚰️", - "🪦", - "⚱️", - "🗿", - "🪧", - "🏧", - "🚮", - "🚰", - "♿", - "🚹", - "🚺", - "🚻", - "🚼", - "🚾", - "🛂", - "🛃", - "🛄", - "🛅", - "⚠️", - "🚸", - "⛔", - "🚫", - "🚳", - "🚭", - "🚯", - "🚱", - "🚷", - "📵", - "🔞", - "☢️", - "☣️", - "⬆️", - "↗️", - "➡️", - "↘️", - "⬇️", - "↙️", - "⬅️", - "↖️", - "↕️", - "↔️", - "↩️", - "↪️", - "⤴️", - "⤵️", - "🔃", - "🔄", - "🔙", - "🔚", - "🔛", - "🔜", - "🔝", - "🛐", - "⚛️", - "🕉️", - "✡️", - "☸️", - "☯️", - "✝️", - "☦️", - "☪️", - "☮️", - "🕎", - "🔯", - "♈", - "♉", - "♊", - "♋", - "♌", - "♍", - "♎", - "♏", - "♐", - "♑", - "♒", - "♓", - "⛎", - "🔀", - "🔁", - "🔂", - "▶️", - "⏩", - "⏭️", - "⏯️", - "◀️", - "⏪", - "⏮️", - "🔼", - "⏫", - "🔽", - "⏬", - "⏸️", - "⏹️", - "⏺️", - "⏏️", - "🎦", - "🔅", - "🔆", - "📶", - "📳", - "📴", - "♀️", - "♂️", - "⚧️", - "✖️", - "➕", - "➖", - "➗", - "♾️", - "‼️", - "⁉️", - "❓", - "❔", - "❕", - "❗", - "〰️", - "💱", - "💲", - "⚕️", - "♻️", - "⚜️", - "🔱", - "📛", - "🔰", - "⭕", - "✅", - "☑️", - "✔️", - "❌", - "❎", - "➰", - "➿", - "〽️", - "✳️", - "✴️", - "❇️", - "©️", - "®️", - "™️", - "#️⃣", - "*️⃣", - "0️⃣", - "1️⃣", - "2️⃣", - "3️⃣", - "4️⃣", - "5️⃣", - "6️⃣", - "7️⃣", - "8️⃣", - "9️⃣", - "🔟", - "🔠", - "🔡", - "🔢", - "🔣", - "🔤", - "🅰️", - "🆎", - "🅱️", - "🆑", - "🆒", - "🆓", - "ℹ️", - "🆔", - "Ⓜ️", - "🆕", - "🆖", - "🅾️", - "🆗", - "🅿️", - "🆘", - "🆙", - "🆚", - "🈁", - "🈂️", - "🈷️", - "🈶", - "🈯", - "🉐", - "🈹", - "🈚", - "🈲", - "🉑", - "🈸", - "🈴", - "🈳", - "㊗️", - "㊙️", - "🈺", - "🈵", - "🔴", - "🟠", - "🟡", - "🟢", - "🔵", - "🟣", - "🟤", - "⚫", - "⚪", - "🟥", - "🟧", - "🟨", - "🟩", - "🟦", - "🟪", - "🟫", - "⬛", - "⬜", - "◼️", - "◻️", - "◾", - "◽", - "▪️", - "▫️", - "🔶", - "🔷", - "🔸", - "🔹", - "🔺", - "🔻", - "💠", - "🔘", - "🔳", - "🔲", - "🏁", - "🚩", - "🎌", - "🏴", - "🏳️", - "🏳️‍🌈", - "🏳️‍⚧️", - "🏴‍☠️", - "🇦🇨", - "🇦🇩", - "🇦🇪", - "🇦🇫", - "🇦🇬", - "🇦🇮", - "🇦🇱", - "🇦🇲", - "🇦🇴", - "🇦🇶", - "🇦🇷", - "🇦🇸", - "🇦🇹", - "🇦🇺", - "🇦🇼", - "🇦🇽", - "🇦🇿", - "🇧🇦", - "🇧🇧", - "🇧🇩", - "🇧🇪", - "🇧🇫", - "🇧🇬", - "🇧🇭", - "🇧🇮", - "🇧🇯", - "🇧🇱", - "🇧🇲", - "🇧🇳", - "🇧🇴", - "🇧🇶", - "🇧🇷", - "🇧🇸", - "🇧🇹", - "🇧🇻", - "🇧🇼", - "🇧🇾", - "🇧🇿", - "🇨🇦", - "🇨🇨", - "🇨🇩", - "🇨🇫", - "🇨🇬", - "🇨🇭", - "🇨🇮", - "🇨🇰", - "🇨🇱", - "🇨🇲", - "🇨🇳", - "🇨🇴", - "🇨🇵", - "🇨🇷", - "🇨🇺", - "🇨🇻", - "🇨🇼", - "🇨🇽", - "🇨🇾", - "🇨🇿", - "🇩🇪", - "🇩🇬", - "🇩🇯", - "🇩🇰", - "🇩🇲", - "🇩🇴", - "🇩🇿", - "🇪🇦", - "🇪🇨", - "🇪🇪", - "🇪🇬", - "🇪🇭", - "🇪🇷", - "🇪🇸", - "🇪🇹", - "🇪🇺", - "🇫🇮", - "🇫🇯", - "🇫🇰", - "🇫🇲", - "🇫🇴", - "🇫🇷", - "🇬🇦", - "🇬🇧", - "🇬🇩", - "🇬🇪", - "🇬🇫", - "🇬🇬", - "🇬🇭", - "🇬🇮", - "🇬🇱", - "🇬🇲", - "🇬🇳", - "🇬🇵", - "🇬🇶", - "🇬🇷", - "🇬🇸", - "🇬🇹", - "🇬🇺", - "🇬🇼", - "🇬🇾", - "🇭🇰", - "🇭🇲", - "🇭🇳", - "🇭🇷", - "🇭🇹", - "🇭🇺", - "🇮🇨", - "🇮🇩", - "🇮🇪", - "🇮🇱", - "🇮🇲", - "🇮🇳", - "🇮🇴", - "🇮🇶", - "🇮🇷", - "🇮🇸", - "🇮🇹", - "🇯🇪", - "🇯🇲", - "🇯🇴", - "🇯🇵", - "🇰🇪", - "🇰🇬", - "🇰🇭", - "🇰🇮", - "🇰🇲", - "🇰🇳", - "🇰🇵", - "🇰🇷", - "🇰🇼", - "🇰🇾", - "🇰🇿", - "🇱🇦", - "🇱🇧", - "🇱🇨", - "🇱🇮", - "🇱🇰", - "🇱🇷", - "🇱🇸", - "🇱🇹", - "🇱🇺", - "🇱🇻", - "🇱🇾", - "🇲🇦", - "🇲🇨", - "🇲🇩", - "🇲🇪", - "🇲🇫", - "🇲🇬", - "🇲🇭", - "🇲🇰", - "🇲🇱", - "🇲🇲", - "🇲🇳", - "🇲🇴", - "🇲🇵", - "🇲🇶", - "🇲🇷", - "🇲🇸", - "🇲🇹", - "🇲🇺", - "🇲🇻", - "🇲🇼", - "🇲🇽", - "🇲🇾", - "🇲🇿", - "🇳🇦", - "🇳🇨", - "🇳🇪", - "🇳🇫", - "🇳🇬", - "🇳🇮", - "🇳🇱", - "🇳🇴", - "🇳🇵", - "🇳🇷", - "🇳🇺", - "🇳🇿", - "🇴🇲", - "🇵🇦", - "🇵🇪", - "🇵🇫", - "🇵🇬", - "🇵🇭", - "🇵🇰", - "🇵🇱", - "🇵🇲", - "🇵🇳", - "🇵🇷", - "🇵🇸", - "🇵🇹", - "🇵🇼", - "🇵🇾", - "🇶🇦", - "🇷🇪", - "🇷🇴", - "🇷🇸", - "🇷🇺", - "🇷🇼", - "🇸🇦", - "🇸🇧", - "🇸🇨", - "🇸🇩", - "🇸🇪", - "🇸🇬", - "🇸🇭", - "🇸🇮", - "🇸🇯", - "🇸🇰", - "🇸🇱", - "🇸🇲", - "🇸🇳", - "🇸🇴", - "🇸🇷", - "🇸🇸", - "🇸🇹", - "🇸🇻", - "🇸🇽", - "🇸🇾", - "🇸🇿", - "🇹🇦", - "🇹🇨", - "🇹🇩", - "🇹🇫", - "🇹🇬", - "🇹🇭", - "🇹🇯", - "🇹🇰", - "🇹🇱", - "🇹🇲", - "🇹🇳", - "🇹🇴", - "🇹🇷", - "🇹🇹", - "🇹🇻", - "🇹🇼", - "🇹🇿", - "🇺🇦", - "🇺🇬", - "🇺🇲", - "🇺🇳", - "🇺🇸", - "🇺🇾", - "🇺🇿", - "🇻🇦", - "🇻🇨", - "🇻🇪", - "🇻🇬", - "🇻🇮", - "🇻🇳", - "🇻🇺", - "🇼🇫", - "🇼🇸", - "🇽🇰", - "🇾🇪", - "🇾🇹", - "🇿🇦", - "🇿🇲", - "🇿🇼", - ] - - emoji_formats = "{{emoji}}" - - def emoji(self) -> str: - """ - :example: '😉' - """ - return self.random_element(self.emojis) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/emoji/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/emoji/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 017acec..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/emoji/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/emoji/en_US/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/emoji/en_US/__init__.py deleted file mode 100644 index b9a9c7f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/emoji/en_US/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from .. import Provider as EmojiProvider - - -class Provider(EmojiProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/emoji/en_US/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/emoji/en_US/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 37b8485..0000000 Binary files a/.venv/lib/python3.12/site-packages/faker/providers/emoji/en_US/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/file/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/file/__init__.py deleted file mode 100644 index 9634001..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/file/__init__.py +++ /dev/null @@ -1,354 +0,0 @@ -import string - -from collections import OrderedDict -from typing import Dict, Literal, Optional, Sequence, Union - -from .. import BaseProvider, ElementsType - - -class Provider(BaseProvider): - """Implement default file provider for Faker.""" - - application_mime_types: ElementsType[str] = ( - "application/atom+xml", # Atom feeds - "application/ecmascript", - # ECMAScript/JavaScript; Defined in RFC 4329 (equivalent to - # application/javascript but with stricter processing rules) - "application/EDI-X12", # EDI X12 data; Defined in RFC 1767 - "application/EDIFACT", # EDI EDIFACT data; Defined in RFC 1767 - "application/json", # JavaScript Object Notation JSON; Defined in RFC 4627 - # ECMAScript/JavaScript; Defined in RFC 4329 (equivalent to - # application/ecmascript - "application/javascript", - # but with looser processing rules) It is not accepted in IE 8 - # or earlier - text/javascript is accepted but it is defined as obsolete in RFC 4329. - # The "type" attribute of the