diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index fd2a76e680..7cde35b38c 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -31,7 +31,7 @@ jobs:
- name: flake8
run: flake8 flask_appbuilder
- name: mypy
- run: mypy flask_appbuilder
+ run: mypy flask_appbuilder/**/*.py
- name: black
run: black --check tests
- name: flake8
@@ -187,62 +187,3 @@ jobs:
- name: Upload code coverage
run: |
bash <(curl -s https://codecov.io/bash) -cF python
-
- test-mongodb:
- runs-on: ubuntu-22.04
- strategy:
- matrix:
- python-version: [3.8]
- services:
- mongo:
- image: mongo:4.4.1-bionic
- ports:
- - 27017:27017
- steps:
- - uses: actions/checkout@v4
- - name: Setup Python
- uses: actions/setup-python@v5
- with:
- python-version: ${{ matrix.python-version }}
- - name: Install dependencies
- run: |
- sudo apt-get update
- sudo apt-get install -y libldap2-dev libsasl2-dev libssl-dev
- pip install --upgrade pip
- pip install -r requirements/base.txt
- pip install -r requirements/tests.txt
- pip install -r requirements/extra.txt
- pip install -r requirements/mongodb.txt
- - name: Run tests
- run: |
- nose2 -c setup.cfg -F -v --with-coverage --coverage flask_appbuilder -A 'mongo' tests
- - name: Upload code coverage
- run: |
- bash <(curl -s https://codecov.io/bash) -cF python
-
- test-openid:
- runs-on: ubuntu-22.04
- strategy:
- matrix:
- python-version: [3.8]
- steps:
- - uses: actions/checkout@v4
- - name: Setup Python
- uses: actions/setup-python@v5
- with:
- python-version: ${{ matrix.python-version }}
- - name: Install dependencies
- run: |
- sudo apt-get update
- sudo apt-get install -y libldap2-dev libsasl2-dev libssl-dev
- pip install --upgrade pip
- pip install -r requirements/base.txt
- pip install -r requirements/tests.txt
- pip install -r requirements/extra.txt
- pip install -r requirements/openid.txt
- - name: Run tests
- run: |
- nose2 -c setup.cfg -F -v --with-coverage --coverage flask_appbuilder -A 'openid' tests
- - name: Upload code coverage
- run: |
- bash <(curl -s https://codecov.io/bash) -cF python
diff --git a/.github/workflows/ptlint.yml b/.github/workflows/prlint.yml
similarity index 100%
rename from .github/workflows/ptlint.yml
rename to .github/workflows/prlint.yml
diff --git a/docs/config.rst b/docs/config.rst
index fc531ff45b..4a8a1fc849 100755
--- a/docs/config.rst
+++ b/docs/config.rst
@@ -6,325 +6,215 @@ Configuration keys
Use config.py to configure the following parameters. By default it will use SQLLITE DB, and bootstrap's default theme:
- .. cssclass:: table-bordered table-hover
-
-+----------------------------------------+--------------------------------------------+-----------+
-| Key | Description | Mandatory |
-+========================================+============================================+===========+
-| SQLALCHEMY_DATABASE_URI | DB connection string (flask-sqlalchemy) | Cond. |
-+----------------------------------------+--------------------------------------------+-----------+
-| SECRET_KEY | Flask secret key used for securely signing | |
-| | the session cookie Set the secret_key on | |
-| | the application to something unique and | |
-| | secret. | Yes |
-+----------------------------------------+--------------------------------------------+-----------+
-| MONGODB_SETTINGS | DB connection string (flask-mongoengine) | Cond. |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_TYPE = 0 | 1 | 2 | 3 | 4 | This is the authentication type | Yes |
-| or | - 0 = Open ID | |
-| AUTH_TYPE = AUTH_OID, AUTH_DB, | - 1 = Database style (user/password) | |
-| AUTH_LDAP, AUTH_REMOTE | - 2 = LDAP, use AUTH_LDAP_SERVER also | |
-| AUTH_OAUTH | - 3 = uses web server environ var | |
-| | REMOTE_USER | |
-| | - 4 = USE ONE OR MANY OAUTH PROVIDERS | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_USER_REGISTRATION = | Set to True to enable user self | No |
-| True|False | registration | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_USERNAME_CI = | Make auth login CI of not defaults to true | No |
-| True|False | | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_USER_REGISTRATION_ROLE | Set role name, to be assign when a user | Cond. |
-| | registers himself. This role must already | |
-| | exist. Mandatory when using user | |
-| | registration | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_USER_REGISTRATION_ROLE_JMESPATH | The `JMESPath `_ | No |
-| | expression used to evaluate user role on | |
-| | registration. If set, takes precedence | |
-| | over ``AUTH_USER_REGISTRATION_ROLE``. | |
-| | Requires ``jmespath`` to be installed. | |
-| | See :ref:`jmespath-examples` for examples | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_REMOTE_USER_ENV_VAR | When using AUTH_TYPE = AUTH_REMOTE_USER | No |
-| | Optionally set the wsgi environment var | |
-| | that holds the current logged in user | |
-| | Default: REMOTE_USER | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_ROLES_SYNC_AT_LOGIN | Sets if user's roles are replaced each | No |
-| | login with those received from LDAP/OAUTH | |
-| | Default: False | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_ROLES_MAPPING | A mapping from LDAP/OAUTH group names | No |
-| | to FAB roles | |
-| | | |
-| | See example under AUTH_LDAP_GROUP_FIELD | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_SERVER | define your ldap server when AUTH_TYPE=2 | Cond. |
-| | example: | |
-| | | |
-| | AUTH_TYPE = 2 | |
-| | | |
-| | AUTH_LDAP_SERVER = "ldap://ldapserver.new" | |
-| | | |
-| | For using LDAP over TLS, set the protocol | |
-| | scheme to "ldaps" and set | |
-| | "AUTH_LDAP_USE_TLS = False" | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_USE_TLS | Require the use of STARTTLS | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_BIND_USER | Define the DN for the user that will be | No |
-| | used for the initial LDAP BIND. | |
-| | This is necessary for OpenLDAP and can be | |
-| | used on MSFT AD. | |
-| | | |
-| | AUTH_LDAP_BIND_USER = | |
-| | "cn=queryuser,dc=example,dc=com" | |
-| | | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_BIND_PASSWORD | Define password for the bind user. | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_TLS_DEMAND | Demands TLS peer certificate checking | No |
-| | (Bool) | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_TLS_CACERTDIR | CA Certificate directory to check peer | No |
-| | certificate. Certificate files must be | |
-| | PEM-encoded | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_TLS_CACERTFILE | CA Certificate file to check peer | No |
-| | certificate. File must be PEM-encoded | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_TLS_CERTFILE | Certificate file for client auth | No |
-| | use with AUTH_LDAP_TLS_KEYFILE | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_TLS_KEYFILE | Certificate key file for client aut | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_SEARCH | Use search with self user | No |
-| | registration or when using | |
-| | AUTH_LDAP_BIND_USER. | |
-| | | |
-| | AUTH_LDAP_SERVER = "ldap://ldapserver.new" | |
-| | | |
-| | AUTH_LDAP_SEARCH = "ou=people,dc=example" | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_SEARCH_FILTER | Filter or limit allowable users from | No |
-| | the LDAP server, e.g., only the people | |
-| | on your team. | |
-| | | |
-| | AUTH_LDAP_SEARCH_FILTER = | |
-| | "(memberOf=cn=group name,OU=type,dc=ex | |
-| | ,cn=com)" | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_UID_FIELD | if doing an indirect bind to ldap, this | No |
-| | is the field that matches the username | |
-| | when searching for the account to bind | |
-| | to. | |
-| | example: | |
-| | | |
-| | AUTH_TYPE = 2 | |
-| | | |
-| | AUTH_LDAP_SERVER = "ldap://ldapserver.new" | |
-| | | |
-| | AUTH_LDAP_SEARCH = "ou=people,dc=example" | |
-| | | |
-| | AUTH_LDAP_UID_FIELD = "uid" | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_GROUP_FIELD | sets the field in the ldap directory that | No |
-| | stores the user's group uids. This field | |
-| | is used in combination with | |
-| | AUTH_ROLES_MAPPING to propagate the users | |
-| | groups into the User database. | |
-| | Default is "memberOf". | |
-| | example: | |
-| | | |
-| | AUTH_TYPE = 2 | |
-| | | |
-| | AUTH_LDAP_SERVER = "ldap://ldapserver.new" | |
-| | | |
-| | AUTH_LDAP_SEARCH = "ou=people,dc=example" | |
-| | | |
-| | AUTH_LDAP_GROUP_FIELD = "memberOf" | |
-| | | |
-| | AUTH_ROLES_MAPPING = { | |
-| | "cn=User,ou=groups,dc=example,dc=com": | |
-| | ["User"] | |
-| | } | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_FIRSTNAME_FIELD | sets the field in the ldap directory that | No |
-| | stores the user's first name. This field | |
-| | is used to propagate user's first name | |
-| | into the User database. | |
-| | Default is "givenName". | |
-| | example: | |
-| | | |
-| | AUTH_TYPE = 2 | |
-| | | |
-| | AUTH_LDAP_SERVER = "ldap://ldapserver.new" | |
-| | | |
-| | AUTH_LDAP_SEARCH = "ou=people,dc=example" | |
-| | | |
-| | AUTH_LDAP_FIRSTNAME_FIELD = "givenName" | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_LASTNAME_FIELD | sets the field in the ldap directory that | No |
-| | stores the user's last name. This field | |
-| | is used to propagate user's last name | |
-| | into the User database. | |
-| | Default is "sn". | |
-| | example: | |
-| | | |
-| | AUTH_TYPE = 2 | |
-| | | |
-| | AUTH_LDAP_SERVER = "ldap://ldapserver.new" | |
-| | | |
-| | AUTH_LDAP_SEARCH = "ou=people,dc=example" | |
-| | | |
-| | AUTH_LDAP_LASTNAME_FIELD = "sn" | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_EMAIL_FIELD | sets the field in the ldap directory that | No |
-| | stores the user's email address. This | |
-| | field is used to propagate user's email | |
-| | address into the User database. | |
-| | Default is "mail". | |
-| | example: | |
-| | | |
-| | AUTH_TYPE = 2 | |
-| | | |
-| | AUTH_LDAP_SERVER = "ldap://ldapserver.new" | |
-| | | |
-| | AUTH_LDAP_SEARCH = "ou=people,dc=example" | |
-| | | |
-| | AUTH_LDAP_EMAIL_FIELD = "mail" | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_ALLOW_SELF_SIGNED | Allow LDAP authentication to use self | No |
-| | signed certificates (LDAPS) | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_APPEND_DOMAIN | Append a domain to all logins. No need to | No |
-| | use john@domain.local. Set it like: | |
-| | | |
-| | AUTH_LDAP_APPEND_DOMAIN = 'domain.local' | |
-| | | |
-| | And the user can login using just 'john' | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_LDAP_USERNAME_FORMAT | It converts username to specific format for| No |
-| | LDAP authentications. For example, | |
-| | | |
-| | username = "userexample" | |
-| | | |
-| | AUTH_LDAP_USERNAME_FORMAT="format-%s". | |
-| | | |
-| | It authenticates with "format-userexample".| |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_ROLE_ADMIN | Configure the name of the admin role. | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_ROLE_PUBLIC | Special Role that holds the public | No |
-| | permissions, no authentication needed. | |
-+----------------------------------------+--------------------------------------------+-----------+
-| AUTH_API_LOGIN_ALLOW_MULTIPLE_PROVIDERS| Allow REST API login with alternative auth | No |
-| True|False | providers (default False) | |
-+----------------------------------------+--------------------------------------------+-----------+
-| APP_NAME | The name of your application. | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| APP_THEME | Various themes for you to choose | No |
-| | from (bootwatch). | |
-+----------------------------------------+--------------------------------------------+-----------+
-| APP_ICON | path of your application icons | No |
-| | will be shown on the left side of the menu | |
-+----------------------------------------+--------------------------------------------+-----------+
-| ADDON_MANAGERS | A list of addon manager's classes | No |
-| | Take a look at addon chapter on docs. | |
-+----------------------------------------+--------------------------------------------+-----------+
-| UPLOAD_FOLDER | Files upload folder. | No |
-| | Mandatory for file uploads. | |
-+----------------------------------------+--------------------------------------------+-----------+
-| FILE_ALLOWED_EXTENSIONS | Tuple with allower extensions. | No |
-| | FILE_ALLOWED_EXTENSIONS = ('txt','doc') | |
-+----------------------------------------+--------------------------------------------+-----------+
-| IMG_UPLOAD_FOLDER | Image upload folder. | No |
-| | Mandatory for image uploads. | |
-+----------------------------------------+--------------------------------------------+-----------+
-| IMG_UPLOAD_URL | Image relative URL. | No |
-| | Mandatory for image uploads. | |
-+----------------------------------------+--------------------------------------------+-----------+
-| IMG_SIZE | tuple to define default image resize. | No |
-| | (width, height, True|False). | |
-+----------------------------------------+--------------------------------------------+-----------+
-| BABEL_DEFAULT_LOCALE | Babel's default language. | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| LANGUAGES | A dictionary mapping | No |
-| | the existing languages with the countries | |
-| | name and flag | |
-+----------------------------------------+--------------------------------------------+-----------+
-| LOGOUT_REDIRECT_URL | The location to redirect to after logout | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_API_SHOW_STACKTRACE | Sends api stack trace on uncaught | No |
-| | exceptions. (Boolean) | |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_API_MAX_PAGE_SIZE | Sets a limit for FAB Model Api page size | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_API_SWAGGER_UI | Enables a Swagger UI view (Boolean) | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_API_SWAGGER_TEMPLATE | Path of your custom Swagger Template | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_API_ALLOW_JSON_QS | Allow query string parameters to be JSON | |
-| | Default is True (Boolean) | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_UPDATE_PERMS | Enables or disables update permissions | |
-| | Default is True (Boolean) | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_SECURITY_MANAGER_CLASS | Declare a new custom SecurityManager | |
-| | class | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_ADD_SECURITY_API | [Beta] Adds a CRUD REST API for users, | |
-| | roles, permissions, view_menus. | No |
-| | Further details on /swagger/v1 | |
-| | All endpoints are under /api/v1/sercurity/ | |
-| | [Note]: This feature is still in beta | |
-| | breaking changes are likely to occur | |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_ADD_SECURITY_VIEWS | Enables or disables registering all | |
-| | security views (boolean default:True) | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_ADD_SECURITY_PERMISSION_VIEW | Enables or disables registering the | |
-| | permission view (boolean default:True) | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_ADD_SECURITY_VIEW_MENU_VIEW | Enables or disables registering the | |
-| | view_menu view (boolean default:True) | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_ADD_SECURITY_PERMISSION_VIEWS_VIEW | Enables or disables registering the | |
-| | pmv views (boolean default:True) | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_ADD_OPENAPI_VIEWS | Enables or disables registering all | |
-| | OPENAPI views (boolean default:True) | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_OPENAPI_SERVERS | Used for setting OpenApi Swagger UI | |
-| | servers if not set Swagger will use the | |
-| | current request host URL | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_ROLES | Configure builtin roles see Security | |
-| | chapter for further detail | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_INDEX_VIEW | Path of your custom IndexView class | |
-| | (str) | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_MENU | Path of your custom Menu class | |
-| | (str) | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_BASE_TEMPLATE | Path of your custom base template | |
-| | | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_STATIC_FOLDER | Path to override default static folder | |
-| | | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_STATIC_URL_PATH | Path to override default static folder | |
-| | | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_PASSWORD_COMPLEXITY_VALIDATOR | Hook for your own custom password | |
-| | validator function. | No |
-+----------------------------------------+--------------------------------------------+-----------+
-| FAB_PASSWORD_COMPLEXITY_ENABLED | Enables the password complexity | |
-| | validation for AUTH database users. | No |
-| | Default is False. | |
-+----------------------------------------+--------------------------------------------+-----------+
+- SQLALCHEMY_DATABASE_URI
+ - Description: DB connection string (flask-sqlalchemy)
+ - Mandatory: Conditional
+- SECRET_KEY
+ - Description: Flask secret key used for securely signing the session cookie. Set the secret_key on the application to something unique and secret.
+ - Mandatory: Yes
+- MONGODB_SETTINGS
+ - Description: DB connection string (flask-mongoengine)
+ - Mandatory: Conditional
+- AUTH_TYPE
+ - Description: This is the authentication type
+ - 0 = Open ID
+ - 1 = Database style (user/password)
+ - 2 = LDAP, use AUTH_LDAP_SERVER also
+ - 3 = uses web server environment variable REMOTE_USER
+ - 4 = USE ONE OR MANY OAUTH PROVIDERS
+ - Mandatory: Yes
+- AUTH_USER_REGISTRATION
+ - Description: Set to True to enable user self-registration
+ - Mandatory: No
+- AUTH_USERNAME_CI
+ - Description: Make auth login CI of not defaults to true
+ - Mandatory: No
+- AUTH_USER_REGISTRATION_ROLE
+ - Description: Set role name, to be assigned when a user registers himself. This role must already exist. Mandatory when using user registration
+ - Mandatory: Conditional
+- AUTH_USER_REGISTRATION_ROLE_JMESPATH
+ - Description: The `JMESPath `_ expression used to evaluate user role on registration. If set, takes precedence over ``AUTH_USER_REGISTRATION_ROLE``. Requires ``jmespath`` to be installed. See :ref:`jmespath-examples` for examples
+ - Mandatory: No
+- AUTH_REMOTE_USER_ENV_VAR
+ - Description: When using AUTH_TYPE = AUTH_REMOTE_USER, optionally set the wsgi environment variable that holds the current logged in user. Default: REMOTE_USER
+ - Mandatory: No
+- AUTH_ROLES_SYNC_AT_LOGIN
+ - Description: Sets if user's roles are replaced each login with those received from LDAP/OAUTH. Default: False
+ - Mandatory: No
+- AUTH_ROLES_MAPPING
+ - Description: A mapping from LDAP/OAUTH group names to FAB roles. See example under AUTH_LDAP_GROUP_FIELD
+ - Mandatory: No
+- AUTH_LDAP_SERVER
+ - Description: Define your ldap server when AUTH_TYPE=2. For example, AUTH_TYPE = 2, AUTH_LDAP_SERVER = "ldap://ldapserver.new". For using LDAP over TLS, set the protocol scheme to "ldaps" and set "AUTH_LDAP_USE_TLS = False"
+ - Mandatory: Conditional
+- AUTH_LDAP_USE_TLS
+ - Description: Require the use of STARTTLS
+ - Mandatory: No
+- AUTH_LDAP_BIND_USER
+ - Description: Define the DN for the user that will be used for the initial LDAP BIND. This is necessary for OpenLDAP and can be used on MSFT AD. For example, AUTH_LDAP_BIND_USER = "cn=queryuser,dc=example,dc=com"
+ - Mandatory: No
+- AUTH_LDAP_BIND_PASSWORD
+ - Description: Define password for the bind user.
+ - Mandatory: No
+- AUTH_LDAP_TLS_DEMAND
+ - Description: Demands TLS peer certificate checking (Bool)
+ - Mandatory: No
+- AUTH_LDAP_TLS_CACERTDIR
+ - Description: CA Certificate directory to check peer certificate. Certificate files must be PEM-encoded
+ - Mandatory: No
+- AUTH_LDAP_TLS_CACERTFILE
+ - Description: CA Certificate file to check peer certificate. File must be PEM-encoded
+ - Mandatory: No
+- AUTH_LDAP_TLS_CERTFILE
+ - Description: Certificate file for client auth use with AUTH_LDAP_TLS_KEYFILE
+ - Mandatory: No
+- AUTH_LDAP_TLS_KEYFILE
+ - Description: Certificate key file for client auth
+ - Mandatory: No
+- AUTH_LDAP_SEARCH
+ - Description: Use search with self user registration or when using AUTH_LDAP_BIND_USER. For example, AUTH_LDAP_SERVER = "ldap://ldapserver.new", AUTH_LDAP_SEARCH = "ou=people,dc=example"
+ - Mandatory: No
+- AUTH_LDAP_SEARCH_FILTER
+ - Description: Filter or limit allowable users from the LDAP server, e.g., only the people on your team. For example, AUTH_LDAP_SEARCH_FILTER = "(memberOf=cn=group name,OU=type,dc=ex,cn=com)"
+ - Mandatory: No
+- AUTH_LDAP_UID_FIELD
+ - Description: If doing an indirect bind to ldap, this is the field that matches the username when searching for the account to bind to. For example, AUTH_TYPE = 2, AUTH_LDAP_SERVER = "ldap://ldapserver.new", AUTH_LDAP_SEARCH = "ou=people,dc=example", AUTH_LDAP_UID_FIELD = "uid"
+ - Mandatory: No
+- AUTH_LDAP_GROUP_FIELD
+ - Description: Sets the field in the ldap directory that stores the user's group uids. This field is used in combination with AUTH_ROLES_MAPPING to propagate the users groups into the User database. Default is "memberOf". For example, AUTH_TYPE = 2, AUTH_LDAP_SERVER = "ldap://ldapserver.new", AUTH_LDAP_SEARCH = "ou=people,dc=example", AUTH_LDAP_GROUP_FIELD = "memberOf", AUTH_ROLES_MAPPING = { "cn=User,ou=groups,dc=example,dc=com": ["User"] }
+ - Mandatory: No
+- AUTH_LDAP_FIRSTNAME_FIELD
+ - Description: Sets the field in the ldap directory that stores the user's first name. This field is used to propagate user's first name into the User database. Default is "givenName". For example, AUTH_TYPE = 2, AUTH_LDAP_SERVER = "ldap://ldapserver.new", AUTH_LDAP_SEARCH = "ou=people,dc=example", AUTH_LDAP_FIRSTNAME_FIELD = "givenName"
+ - Mandatory: No
+- AUTH_LDAP_LASTNAME_FIELD
+ - Description: Sets the field in the ldap directory that stores the user's last name. This field is used to propagate user's last name into the User database. Default is "sn". For example, AUTH_TYPE = 2, AUTH_LDAP_SERVER = "ldap://ldapserver.new", AUTH_LDAP_SEARCH = "ou=people,dc=example", AUTH_LDAP_LASTNAME_FIELD = "sn"
+ - Mandatory: No
+- AUTH_LDAP_EMAIL_FIELD
+ - Description: Sets the field in the ldap directory that stores the user's email address. This field is used to propagate user's email address into the User database. Default is "mail". For example, AUTH_TYPE = 2, AUTH_LDAP_SERVER = "ldap://ldapserver.new", AUTH_LDAP_SEARCH = "ou=people,dc=example", AUTH_LDAP_EMAIL_FIELD = "mail"
+ - Mandatory: No
+- AUTH_LDAP_ALLOW_SELF_SIGNED
+ - Description: Allow LDAP authentication to use self-signed certificates (LDAPS)
+ - Mandatory: No
+- AUTH_LDAP_APPEND_DOMAIN
+ - Description: Append a domain to all logins. No need to use john@domain.local. Set it like: AUTH_LDAP_APPEND_DOMAIN = 'domain.local'. And the user can login using just 'john'
+ - Mandatory: No
+- AUTH_LDAP_USERNAME_FORMAT
+ - Description: It converts username to specific format for LDAP authentications. For example, username = "userexample", AUTH_LDAP_USERNAME_FORMAT="format-%s". It authenticates with "format-userexample".
+ - Mandatory: No
+- AUTH_ROLE_ADMIN
+ - Description: Configure the name of the admin role.
+ - Mandatory: No
+- AUTH_ROLE_PUBLIC
+ - Description: Special Role that holds the public permissions, no authentication needed.
+ - Mandatory: No
+- AUTH_API_LOGIN_ALLOW_MULTIPLE_PROVIDERS
+ - Description: Allow REST API login with alternative auth providers (default False)
+ - Mandatory: No
+- APP_NAME
+ - Description: The name of your application.
+ - Mandatory: No
+- APP_THEME
+ - Description: Various themes for you to choose from (bootwatch).
+ - Mandatory: No
+- APP_ICON
+ - Description: Path of your application icons will be shown on the left side of the menu
+ - Mandatory: No
+- ADDON_MANAGERS
+ - Description: A list of addon manager's classes. Take a look at addon chapter on docs.
+ - Mandatory: No
+- UPLOAD_FOLDER
+ - Description: Files upload folder. Mandatory for file uploads.
+ - Mandatory: No
+- FILE_ALLOWED_EXTENSIONS
+ - Description: Tuple with allowed extensions. FILE_ALLOWED_EXTENSIONS = ('txt','doc')
+ - Mandatory: No
+- IMG_UPLOAD_FOLDER
+ - Description: Image upload folder. Mandatory for image uploads.
+ - Mandatory: No
+- IMG_UPLOAD_URL
+ - Description: Image relative URL. Mandatory for image uploads.
+ - Mandatory: No
+- IMG_SIZE
+ - Description: Tuple to define default image resize. (width, height, True|False)
+ - Mandatory: No
+- BABEL_DEFAULT_LOCALE
+ - Description: Babel's default language.
+ - Mandatory: No
+- LANGUAGES
+ - Description: A dictionary mapping the existing languages with the countries name and flag
+ - Mandatory: No
+- LOGOUT_REDIRECT_URL
+ - Description: The location to redirect to after logout
+ - Mandatory: No
+- FAB_API_SHOW_STACKTRACE
+ - Description: Sends api stack trace on uncaught exceptions. (Boolean)
+ - Mandatory: No
+- FAB_API_MAX_PAGE_SIZE
+ - Description: Sets a limit for FAB Model Api page size
+ - Mandatory: No
+- FAB_API_SWAGGER_UI
+ - Description: Enables a Swagger UI view (Boolean)
+ - Mandatory: No
+- FAB_API_SWAGGER_TEMPLATE
+ - Description: Path of your custom Swagger Template
+ - Mandatory: No
+- FAB_API_ALLOW_JSON_QS
+ - Description: Allow query string parameters to be JSON. Default is True (Boolean)
+ - Mandatory: No
+- FAB_CREATE_DB
+ - Description: Create the database if it does not exist. Default is True (Boolean)
+ - Mandatory: No
+- FAB_UPDATE_PERMS
+ - Description: Enables or disables update permissions. Default is True (Boolean)
+ - Mandatory: No
+- FAB_SECURITY_MANAGER_CLASS
+ - Description: Declare a new custom SecurityManager class
+ - Mandatory: No
+- FAB_ADD_SECURITY_API
+ - Description: [Beta] Adds a CRUD REST API for users, roles, permissions, view_menus. Further details on /swagger/v1. All endpoints are under /api/v1/sercurity/. [Note]: This feature is still in beta, breaking changes are likely to occur
+ - Mandatory: No
+- FAB_ADD_SECURITY_VIEWS
+ - Description: Enables or disables registering all security views (boolean default:True)
+ - Mandatory: No
+- FAB_ADD_SECURITY_PERMISSION_VIEW
+ - Description: Enables or disables registering the permission view (boolean default:True)
+ - Mandatory: No
+- FAB_ADD_SECURITY_VIEW_MENU_VIEW
+ - Description: Enables or disables registering the view_menu view (boolean default:True)
+ - Mandatory: No
+- FAB_ADD_SECURITY_PERMISSION_VIEWS_VIEW
+ - Description: Enables or disables registering the pmv views (boolean default:True)
+ - Mandatory: No
+- FAB_ADD_OPENAPI_VIEWS
+ - Description: Enables or disables registering all OPENAPI views (boolean default:True)
+ - Mandatory: No
+- FAB_OPENAPI_SERVERS
+ - Description: Used for setting OpenApi Swagger UI servers if not set Swagger will use the current request host URL
+ - Mandatory: No
+- FAB_ROLES
+ - Description: Configure builtin roles see Security chapter for further detail
+ - Mandatory: No
+- FAB_INDEX_VIEW
+ - Description: Path of your custom IndexView class (str)
+ - Mandatory: No
+- FAB_MENU
+ - Description: Path of your custom Menu class (str)
+ - Mandatory: No
+- FAB_BASE_TEMPLATE
+ - Description: Path of your custom base template
+ - Mandatory: No
+- FAB_STATIC_FOLDER
+ - Description: Path to override default static folder
+ - Mandatory: No
+- FAB_STATIC_URL_PATH
+ - Description: Path to override default static folder
+ - Mandatory: No
+- FAB_PASSWORD_COMPLEXITY_VALIDATOR
+ - Description: Hook for your own custom password validator function
+ - Mandatory: No
+- FAB_PASSWORD_COMPLEXITY_ENABLED
+ - Description: Enables the password complexity validation for AUTH database users. Default is False
+ - Mandatory: No
Note
----
diff --git a/examples/base_api/README.rst b/examples/base_api/README.rst
index 194a5aecc9..984790561c 100644
--- a/examples/base_api/README.rst
+++ b/examples/base_api/README.rst
@@ -5,7 +5,6 @@ Simple example showing how to use *BaseApi* class
Run it::
- $ export FLASK_APP=app/__init__.py
$ flask run
For Swagger view go to: http://localhost:5000/swagger/v1
diff --git a/examples/base_api/app/__init__.py b/examples/base_api/app/__init__.py
index b40b0bc16d..cfee480ff8 100644
--- a/examples/base_api/app/__init__.py
+++ b/examples/base_api/app/__init__.py
@@ -1,19 +1,13 @@
-import logging
-
from flask import Flask
-from flask_appbuilder import AppBuilder, SQLA
-
-"""
- Logging configuration
-"""
-logging.basicConfig(format="%(asctime)s:%(levelname)s:%(name)s:%(message)s")
-logging.getLogger().setLevel(logging.DEBUG)
-
-app = Flask(__name__)
-app.config.from_object("config")
-db = SQLA(app)
-appbuilder = AppBuilder(app, db.session)
+from .api import ExampleApi
+from .extensions import appbuilder
-from . import api # noqa
+def create_app() -> Flask:
+ app = Flask(__name__)
+ app.config.from_object("config")
+ with app.app_context():
+ appbuilder.init_app(app)
+ appbuilder.add_api(ExampleApi)
+ return app
diff --git a/examples/base_api/app/api.py b/examples/base_api/app/api.py
index 077cb0b7e0..aa99ca1af4 100644
--- a/examples/base_api/app/api.py
+++ b/examples/base_api/app/api.py
@@ -2,13 +2,15 @@
from flask_appbuilder.api import BaseApi, expose, rison, safe
from flask_appbuilder.security.decorators import protect
-from . import appbuilder
-greeting_schema = {"type": "object", "properties": {"name": {"type": "string"}}}
+greeting_schema = {
+ "type": "object",
+ "properties": {"name": {"type": "string"}},
+ "required": ["name"],
+}
class ExampleApi(BaseApi):
-
resource_name = "example"
apispec_parameter_schemas = {"greeting_schema": greeting_schema}
@@ -77,7 +79,12 @@ def greeting4(self, **kwargs):
---
get:
parameters:
- - $ref: '#/components/parameters/greeting_schema'
+ - in: query
+ name: q
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/greeting_schema'
responses:
200:
description: Greet the user
@@ -137,6 +144,3 @@ def error(self):
$ref: '#/components/responses/500'
"""
raise Exception
-
-
-appbuilder.add_api(ExampleApi)
diff --git a/examples/base_api/app/extensions.py b/examples/base_api/app/extensions.py
new file mode 100644
index 0000000000..cda8f08716
--- /dev/null
+++ b/examples/base_api/app/extensions.py
@@ -0,0 +1,4 @@
+from flask_appbuilder import AppBuilder
+
+
+appbuilder = AppBuilder()
diff --git a/examples/base_api/config.py b/examples/base_api/config.py
index d9fd660b0c..ddc755c962 100644
--- a/examples/base_api/config.py
+++ b/examples/base_api/config.py
@@ -5,55 +5,12 @@
CSRF_ENABLED = True
SECRET_KEY = "\2\1thisismyscretkey\1\2\e\y\y\h"
-OPENID_PROVIDERS = [
- {"name": "Google", "url": "https://www.google.com/accounts/o8/id"},
- {"name": "Yahoo", "url": "https://me.yahoo.com"},
- {"name": "AOL", "url": "http://openid.aol.com/"},
- {"name": "Flickr", "url": "http://www.flickr.com/"},
- {"name": "MyOpenID", "url": "https://www.myopenid.com"},
-]
-
SQLALCHEMY_DATABASE_URI = "sqlite:///" + os.path.join(basedir, "app.db")
# SQLALCHEMY_DATABASE_URI = 'mysql://myapp@localhost/myapp'
# SQLALCHEMY_DATABASE_URI = 'postgresql://root:password@localhost/myapp'
BABEL_DEFAULT_LOCALE = "en"
-
# ------------------------------
# GLOBALS FOR APP Builder
# ------------------------------
FAB_API_SWAGGER_UI = True
-
-BABEL_DEFAULT_LOCALE = "en"
-BABEL_DEFAULT_FOLDER = "translations"
-LANGUAGES = {
- "en": {"flag": "gb", "name": "English"},
- "pt": {"flag": "pt", "name": "Portuguese"},
- "es": {"flag": "es", "name": "Spanish"},
- "de": {"flag": "de", "name": "German"},
- "zh": {"flag": "cn", "name": "Chinese"},
- "ru": {"flag": "ru", "name": "Russian"},
-}
-
-
-UPLOAD_FOLDER = basedir + "/app/static/uploads/"
-IMG_UPLOAD_FOLDER = basedir + "/app/static/uploads/"
-IMG_UPLOAD_URL = "/static/uploads/"
-AUTH_TYPE = 1
-AUTH_ROLE_ADMIN = "Admin"
-AUTH_ROLE_PUBLIC = "Public"
-# APP_NAME = "My App Name"
-# APP_ICON = "static/img/logo.jpg"
-APP_THEME = "" # default
-# APP_THEME = "cerulean.css"
-# APP_THEME = "amelia.css"
-# APP_THEME = "cosmo.css"
-# APP_THEME = "cyborg.css"
-# APP_THEME = "flatly.css"
-# APP_THEME = "journal.css"
-# APP_THEME = "readable.css"
-# APP_THEME = "simplex.css"
-# APP_THEME = "slate.css"
-# APP_THEME = "spacelab.css"
-# APP_THEME = "united.css"
-# APP_THEME = "yeti.css"
diff --git a/examples/basefilter/NAMES.DIC b/examples/base_filters/NAMES.DIC
similarity index 87%
rename from examples/basefilter/NAMES.DIC
rename to examples/base_filters/NAMES.DIC
index b7266ad644..97017cf3f1 100644
--- a/examples/basefilter/NAMES.DIC
+++ b/examples/base_filters/NAMES.DIC
@@ -1,27607 +1,27607 @@
-aaccf
-aalders
-aaren
-aarika
-aaron
-aartjan
-aasen
-ab
-abacus
-abadines
-abagael
-abagail
-abahri
-abasolo
-abazari
-abba
-abbai
-abbas
-abbatant
-abbate
-abbe
-abbey
-abbi
-abbie
-abbot
-abbott
-abby
-abbye
-abdalla
-abdallah
-abdel
-abdel-az
-abdel-ma
-abdel-ra
-abdel-sa
-abdelazi
-abdelmad
-abdelrah
-abdelran
-abdelsal
-abderrao
-abderraz
-abdi
-abdo
-abdollah
-abdolrah
-abdou
-abdrani
-abdul
-abdul-az
-abdul-ma
-abdul-no
-abdul-ra
-abdul-sa
-abdulazi
-abdulla
-abdullah
-abdulmad
-abdulrah
-abdulran
-abdulsal
-abdur
-abe
-abedi
-abel
-abelard
-abell
-abella
-abellera
-abello
-abelow
-abernath
-aberneth
-abeu
-abey
-abhay
-abhijit
-abi-aad
-abid
-abie
-abigael
-abigail
-abigale
-abike
-abner
-abou-arr
-abou-ezz
-aboul-ma
-aboussou
-abovyan
-abra
-abraham
-abrahan
-abrahim
-abram
-abramo
-abrams
-abran
-abrar
-absi
-abu
-abul
-access
-accounti
-acelvari
-achal
-achamma
-acharyya
-achcar
-achille
-achkar
-achmad
-ackaouy
-acker
-acklin
-ackwood
-acree
-acres
-acs
-action
-actionte
-acton
-aczel
-ad
-ada
-adah
-adahm
-adair
-adal
-adaline
-adam
-adamczyk
-adamkows
-adamo
-adamowic
-adams
-adamski
-adamson
-adamyk
-adan
-adara
-adcock
-adcox
-adda
-addetia
-addi
-addia
-addie
-addison
-addona
-addons
-addy
-ade
-adebayo
-adel
-adela
-adelaida
-adelaide
-adelbert
-adele
-adelheid
-adelia
-adelice
-adelina
-adelind
-adeline
-adella
-adelle
-adena
-adeney
-adeniyi
-aderhold
-adey
-adham
-adhem
-adi
-adiana
-adib
-adie
-adil
-adimari
-adina
-aditya
-adjangba
-adkinson
-adlai
-adler
-adlin
-admad
-admin
-admin-mt
-administ
-adnan
-adnane
-ado
-adolf
-adolfie
-adolph
-adolphe
-adolpho
-adolphus
-adora
-adore
-adoree
-adornato
-adorne
-adorno
-adrea
-adri
-adria
-adriaan
-adriaans
-adriaens
-adrian
-adriana
-adriane
-adrianna
-adrianne
-adriano
-adrie
-adrien
-adriena
-adriene
-adrienne
-adrion
-advance
-ae
-aeinstei
-aeriel
-aeriela
-aeriell
-aery
-afaq
-afif
-afke
-afkham
-afkham-e
-afo
-afton
-afzal
-ag
-agace
-agam
-agarwal
-agata
-agatha
-agathe
-agen
-agenia
-aggarwal
-aggi
-aggie
-aggregat
-aggy
-aghi
-aghili
-agily
-agna
-agnar
-agnella
-agnes
-agnese
-agnesse
-agneta
-agnew
-agnihotr
-agnola
-agostino
-agosto
-agretha
-aguiar
-aguie
-aguilar
-aguinsky
-aguirre
-aguistin
-aguste
-agustin
-ahad
-aharon
-ahbeng
-ahdieh
-ahlberg
-ahlers
-ahluwali
-ahmad
-ahmadi
-ahmed
-ahmet
-ahn
-ai-mei
-ai-tsung
-aida
-aidan
-aidarous
-aideen
-aiden
-aigneis
-aihua
-aija
-aiken
-aila
-ailbert
-aile
-ailee
-aileen
-ailene
-ailey
-aili
-ailina
-ailis
-ailsun
-ailyn
-aiman
-aime
-aimee
-aimei
-aimil
-aimone
-aindrea
-ainslee
-ainsley
-ainslie
-ainswort
-air
-aisha
-aitken
-aitsung
-ajay
-ajersch
-ajeya
-ajit
-ajmal
-ajoy
-akai
-akbar
-akbas
-akemi
-akens
-akers
-akhavan
-akhil
-akhtar
-akihiko
-akim
-akin
-akinniyi
-akio
-akira
-akita
-akkerman
-akram
-akrawi
-aksel
-akshay
-akyurekl
-al
-al bud
-al-basi
-al-tarab
-aladanga
-aladin
-alain
-alaine
-alair
-alameda
-alan
-alana
-alanah
-aland
-alane
-alanis
-alanna
-alano
-alanoly
-alanson
-alanturi
-alard
-alaric
-alary
-alasdair
-alastair
-alasteir
-alaster
-alavi
-alayne
-alb
-alba
-albea
-albeon
-alber
-alberik
-albers
-alberse
-albert
-alberta
-albertei
-albertin
-alberto
-alberts
-alberty
-albery
-albie
-albina
-albiston
-albrecht
-albright
-albritto
-albtenta
-alburger
-alcantar
-alcindor
-alcock
-alcott
-alden
-alderdic
-aldhizer
-aldin
-aldis
-aldo
-aldon
-aldous
-aldric
-aldrich
-aldridge
-aldus
-aldwin
-aldyn
-alec
-alecia
-aleda
-aleece
-aleen
-alegre
-aleinste
-alejandr
-alejoa
-aleke
-aleksand
-aleksic
-alena
-alene
-aleong
-alese
-alessand
-aleta
-alethea
-alev
-alex
-alexa
-alexan
-alexande
-alexandr
-alexei
-alexi
-alexia
-alexina
-alexine
-alexio
-alexis
-alexon
-alexson
-alf
-alfaro
-alfi
-alfie
-alfons
-alfonse
-alfonso
-alfonzo
-alford
-alfred
-alfreda
-alfredo
-alfy
-algernon
-algie
-algimant
-algood
-alguire
-ali
-alia
-alic
-alica
-alice
-alicea
-alicia
-alick
-alida
-alidia
-alidina
-alie
-alika
-alikee
-alikhan
-alina
-aline
-alink
-alioto
-alireza
-alis
-alisa
-alisande
-alisha
-alison
-alissa
-alistair
-alister
-alisun
-alix
-aliza
-alka
-alkarim
-alkire
-all the
-alla
-allahdin
-allahyar
-allam
-allaman
-allan
-allard
-allaway
-allaye-c
-allayne
-alleen
-allegra
-allen
-allene
-alles
-alleva
-alley
-alleyn
-alleyne
-allgood
-alli
-allianor
-allida
-allie
-allin
-allina
-allis
-allisan
-allison
-allissa
-allister
-allistir
-allix
-allman
-allsun
-allwork
-allx
-ally
-allyce
-allyn
-allys
-allyson
-alma
-almeda
-almeddah
-almena
-almendar
-almeria
-almerind
-almeta
-almira
-almire
-almon
-alms
-alnoor
-aloi
-aloin
-aloise
-aloisia
-alok
-alomari
-alon
-alonso
-alonzo
-alora
-aloysia
-aloysius
-alp
-alparsla
-alperovi
-alphard
-alphen
-alphonse
-alphonso
-alpine
-alred
-alric
-alsaleh
-alshabou
-alsop
-alspaugh
-alstine
-alston
-alswiti
-alta
-altadonn
-altay
-alteen
-altekar
-alten
-alternat
-althea
-altherr
-alting-m
-altman
-altmann
-alturing
-aluin
-aluino
-alva
-alvan
-alvarez
-alvaro
-alvean
-alvera
-alverta
-alvi
-alvie
-alvin
-alvina
-alvinia
-alvino
-alvira
-alvis
-alvy
-alwin
-alwyn
-aly
-alyce
-alyda
-alynn
-alyosha
-alyre
-alys
-alysa
-alyse
-alysia
-alyson
-alyss
-alyssa
-alzofon
-amabel
-amabelle
-amadeus
-amalea
-amalee
-amaleta
-amalia
-amalie
-amalita
-amalle
-amalu
-amand
-amanda
-amandi
-amandie
-amandip
-amando
-amandy
-amant
-amar
-amara
-amarendr
-amargo
-amarjit
-amarsi
-amarth
-amata
-amato
-amavisca
-ambach
-amber
-amberly
-amble
-ambler
-ambroise
-ambros
-ambrose
-ambrosi
-ambrosio
-ambrosiu
-ambur
-amby
-amda
-ame
-amedeo
-ameen
-amelia
-amelie
-amelina
-ameline
-amelita
-amelkar
-amenta
-america
-amerigo
-amery
-amgad
-ami
-amick
-amie
-amigo
-amii
-amil
-amin
-amina
-amini
-aminuddi
-aminzade
-amiot
-amir
-amit
-amitabh
-amitava
-amitie
-amity
-amiy
-amjad
-amlani
-ammamari
-ammar
-ammiel
-amnish
-amnon
-amol
-amorim
-amory
-amos
-amott
-amour
-amouzgar
-amparo
-amr
-amrik
-amril
-amrish
-amstutz
-amu
-amundsen
-amy
-amye
-an
-an-bin
-an-son
-ana
-anabal
-anabel
-anabella
-anabelle
-anader
-analiese
-analise
-anallese
-anallise
-anamary
-anand
-ananda
-anandaro
-ananmala
-anant
-ananth
-anantha
-ananyo
-anar
-anastasi
-anastass
-anatol
-anatola
-anatole
-anatoli
-anatollo
-anatoly
-anaya
-anbin
-ancel
-ancell
-anchia
-anconeta
-anctil
-anda
-andaree
-andee
-andeee
-ander
-anderea
-anderer
-anders
-andersen
-anderson
-anderton
-andi
-andie
-andiyono
-andonis
-andra
-andrade
-andras
-andrassy
-andre
-andrea
-andreana
-andreas
-andrease
-andreato
-andree
-andrei
-andrej
-andrejs
-andres
-andress
-andrew
-andrews
-andrey
-andria
-andriana
-andric
-andries
-andriett
-andris
-andromac
-andros
-andrukat
-andrus
-andrusia
-andruzzi
-andrzej
-andy
-aneeta
-aneko
-anestass
-anet
-anett
-anetta
-anette
-ange
-angel
-angela
-angelako
-angele
-angeles
-angeli
-angelia
-angelica
-angelico
-angelie
-angeliek
-angelika
-angelina
-angeline
-angeliqu
-angelita
-angell
-angelle
-angelo
-angerer
-angermey
-angie
-angil
-anglin
-angobald
-angus
-angustia
-angvall
-angy
-anh
-anhorn
-anhtuan
-ania
-anibal
-anica
-anika
-aniko
-anil
-anila
-anindita
-anirban
-anissa
-anita
-anitra
-aniya
-anja
-anjali
-anjanett
-anje
-anjela
-anjli
-anke
-anker
-anki
-ankie
-ankur
-anky
-ann
-ann-hoon
-ann-lorr
-ann-mari
-anna
-anna-dia
-anna-mar
-annab
-annabal
-annabel
-annabela
-annabell
-annable
-annadian
-annalea
-annalee
-annalies
-annalisa
-annalise
-annamari
-annamay
-annarbor
-annard
-annas
-anne
-anne mar
-anne-cor
-anne-lis
-anne-mar
-annecori
-anneke
-annelies
-annelise
-annemari
-annemie
-annet
-annetta
-annette
-anni
-annibale
-annice
-annick
-annie
-annika
-annis
-annise
-annissa
-annmaria
-annmarie
-annnora
-annora
-annunzia
-anny
-anolik
-anoop
-anouk
-anoushir
-ans
-ansar
-ansel
-ansell
-anselm
-anselma
-anshel
-ansley
-anson
-ansorger
-anstead
-anstett
-anstice
-ansys
-antai
-antanas
-antanina
-anthe
-anthea
-anthia
-anthiath
-anthonis
-anthony
-antin
-antinucc
-antkowia
-antle
-antoft
-antoine
-antoinet
-anton
-anton-ph
-antonare
-antone
-antonell
-antonett
-antoni
-antonia
-antonie
-antoniet
-antonin
-antonina
-antonino
-antonio
-antonios
-antonius
-antons
-antony
-antti
-antuan
-antworth
-anu
-anup
-anupam
-anurag
-anver
-anvradha
-anwar
-any
-anya
-anzarout
-anzures
-aoki
-aparicio
-aparna
-aphrodit
-api-ecm
-apiruksa
-apollo
-apostolo
-appell
-appenzel
-applebau
-applegar
-appleton
-appleyar
-applicat
-applicon
-appoloni
-appuglie
-apriel
-april
-aprilett
-aprill
-apryle
-apter
-apurba
-apurve
-ara
-arabadji
-arabel
-arabela
-arabele
-arabella
-arabelle
-aragon
-aragorn
-arai
-araldo
-aramideh
-arana
-arash
-aravamud
-arbel
-arbenz
-arbo
-arbuckle
-arch
-archaimb
-archamba
-archana
-archer
-archibal
-archibol
-archie
-archy
-arco
-arcouet
-ard
-arda
-ardath
-ardavan
-ardeen
-ardelia
-ardelis
-ardella
-ardelle
-arden
-ardene
-ardenia
-ardie
-ardiel
-ardine
-ardis
-ardisj
-ardith
-ardizone
-ardoin
-ardra
-ardyce
-ardys
-ardyth
-aref
-areg
-arel
-arellano
-arend
-arens
-ares
-aretha
-areu
-argento
-argyriou
-ari
-ariadne
-ariana
-arias
-aribindi
-aric
-aridatha
-arie
-ariel
-ariela
-ariella
-arielle
-arif
-arin
-arina
-arine
-ario
-aris
-aristide
-aristotl
-arjun
-arkady
-arkestei
-arko
-arlan
-arlana
-arlee
-arleen
-arlen
-arlena
-arlene
-arles
-arleta
-arlette
-arley
-arleyne
-arlie
-arliene
-arlin
-arlina
-arlinda
-arline
-arluene
-arly
-arlyn
-arlyne
-arman
-armand
-armande
-armando
-armbrust
-armelia
-armelle
-armenaki
-armenta
-armentro
-armes
-armida
-armijo
-armin
-armine
-armitage
-armolavi
-armour
-armstead
-armstron
-arn
-arnaldo
-arnauld
-arnav
-arne
-arnett
-arney
-arni
-arnie
-arnis
-arno
-arnold
-arnoldo
-arnon
-arnone
-arnott
-arnuad
-arny
-aroldo
-aron
-arona
-aronovic
-aronson
-aronstam
-arora
-arpin
-arpita
-arrgh
-arri
-arro
-arron
-arsavir
-arsena
-arsenaul
-arsene
-arseneau
-arshad
-art
-artair
-arte
-artemas
-artemis
-artemus
-arther
-arthur
-artie
-artiller
-arto
-artola
-arts
-artspssa
-artur
-arturo
-artus
-artuso
-arty
-artzer
-arul
-arumugam
-arun
-aruna
-arunacha
-arv
-arvid
-arvie
-arvin
-arvind
-arvy
-arwakhi
-arya
-aryavong
-aryn
-arzu
-asa
-asad
-asan
-asawa
-asbill
-asbjorn
-asce
-ascott
-asdel
-ase
-asfazado
-asghar
-asgharza
-ash
-ashalata
-ashar
-ashbee
-ashberry
-ashbey
-ashby
-ashdown
-ashely
-asher
-ashfaq
-ashford
-ashia
-ashien
-ashil
-ashima
-ashis
-ashla
-ashlan
-ashlee
-ashleigh
-ashlen
-ashley
-ashli
-ashlie
-ashlin
-ashly
-ashmore
-ashok
-ashoka
-ashrae
-ashraf
-ashruf
-ashton
-ashu
-ashurkof
-ashutosh
-ashwin
-ashwood-
-ashworth
-asia
-asif
-asing
-asistore
-askins
-askold
-asmar
-asme
-asnat
-asops
-asprer
-asquin
-assaad
-assaf
-asselin
-assenza
-assistan
-associat
-astaire
-astalos
-astle
-astley
-aston
-astor
-astorino
-astra
-astrid
-astrix
-aswini
-atalanta
-atalla
-atcheson
-atchison
-atef
-athalie
-athanasi
-athanass
-athar
-athena
-athene
-athony
-athwal
-atindra
-atique
-atkins
-atkinson
-atl
-atl-sale
-atlanta
-atlante
-atlantic
-atmane
-atoui
-atp
-atpco
-atprs
-atputhar
-atrc
-atsuo
-atsushi
-atta
-attaie
-attanasi
-attarchi
-attard
-attaway
-atte
-attenbor
-atteridg
-attfield
-attilio
-attilla
-atul
-atwater
-atwell
-atwell-b
-au
-au-yang
-au-yeung
-aube
-auberon
-aubert
-auberta
-aubin
-aubine
-aubree
-aubrette
-aubrey
-aubrie
-aubry
-aubuchon
-aucoin
-aud
-audet
-audette
-audi
-audie
-audivox
-audra
-audre
-audrean
-audrey
-audrie
-audrienn
-audry
-audrye
-audy
-auerbach
-augeri
-augie
-august
-augusta
-auguste
-augustin
-augusto
-augustus
-augy
-auker
-aula
-aulakh
-auld
-ault
-aumoine
-aundrea
-aunon
-aura
-aurea
-aurel
-aurelea
-aurelia
-aurelie
-aurelius
-auria
-aurie
-aurilia
-auriol
-aurlie
-auro
-auroora
-aurora
-aurore
-aurthur
-ausley
-austen
-austin
-austina
-austine
-australi
-auth
-auto
-auton
-autoquot
-auyeung
-ava
-avard
-avaz
-ave
-avedis
-aveline
-avellane
-averardo
-averell
-averett
-averette
-averil
-averill
-aversa
-avery
-averyl
-avictor
-avie
-avigdor
-avilez
-avinash
-avirett
-avis
-aviva
-avivah
-avra
-avram
-avril
-avrit
-avrom
-avtar
-awadalla
-awadia
-awan
-awano
-ax
-axberg
-axe
-axel
-ayako
-ayandeh
-ayao
-ayaz
-aybars
-ayda
-aydin
-ayers
-ayles
-aylmar
-aylmer
-aylwin
-aymer
-ayn
-ayodele
-ayotte
-ayoubzad
-ayoup
-ayrault
-ayre
-ayres
-ayscue
-ayse
-ayukawa
-aywie
-ayyuce
-azad
-azam
-azar
-azari
-azarshah
-azer
-azevedo
-azhar
-azim
-aziz
-azizuddi
-azmak
-azmeena
-azmina
-azra
-azuma
-azzuolo
-ba
-baab
-baader
-bab
-baba
-bababunm
-babak
-babalola
-babar
-babara
-babasaki
-babatund
-babb
-babbage
-babbette
-babbie
-babcock
-baber
-babette
-babin
-babineau
-babione
-babita
-babs
-babu
-baby
-babyak
-baccari
-bacchioc
-bacchus
-bacciagl
-bach
-bachecon
-bachelu
-bachewic
-bachitta
-bachmann
-bachner
-bachynsk
-backshal
-bacon
-baddeley
-badelt
-badenoch
-badger
-badjari
-badmingt
-badowski
-badri
-badza
-bae
-baenzige
-baer
-baerg
-baets
-bagetako
-bagg
-baggerma
-baghdadi
-bagi
-bagnato
-bagshaw
-bagwell
-baha
-bahaa
-bahadir
-baheya
-bahgat
-bahia
-bahl
-bahman
-bahoric
-bahram
-bail
-bailetti
-bailey
-bailie
-baillarg
-baillie
-bailloux
-baily
-bain
-bainer
-baines
-bains
-bainton
-baird
-bajada
-bajpeyi
-bakay
-bakel
-baker
-baker-gr
-bakhach
-bakkum
-bakoury
-bal
-balaban
-balabani
-balachan
-balaji
-balakris
-balanger
-balascak
-balasing
-balbir
-balcom
-bald
-balderst
-baldev
-baldock
-baldridg
-balduin
-baldwin
-bale
-bales
-balfour
-balgalvi
-baljinde
-balkenho
-balkisso
-ballanti
-ballard
-ballarte
-ballinge
-ballios
-ballou
-ballyk
-balmer
-balog
-balogh
-balraj
-balsas
-balser
-balter
-baltodan
-balutis
-balvinde
-balwinde
-bam
-bambach
-bambang
-bambi
-bambie
-bamby
-bame
-bamfo
-ban
-banaei
-bancroft
-bandel
-banens
-banerd
-banerjee
-banez
-banfalvi
-bang
-bangert
-bangia
-banh
-banigan
-banik
-bank
-bankhead
-banks
-banky
-bannai
-bannan
-bannard
-banniste
-bansal
-banu
-banville
-bao
-baominh
-baquero
-bar
-barabash
-baragar
-barakat
-baran
-barb
-barba
-barbabas
-barbabra
-barbara
-barbara-
-barbaraa
-barbary
-barbe
-barbeau
-barbee
-barberen
-barbette
-barbey
-barbi
-barbie
-barbour
-barbra
-barby
-barclay
-barcza
-bard
-barde
-bardsley
-bareham
-barel
-barenie
-barentse
-barfield
-barham
-bari
-baribeau
-baril
-baris
-barker
-barkhous
-barkley
-barkwill
-barlas
-barlow
-barn
-barnabas
-barnabe
-barnaby
-barnard
-barnebas
-barnes
-barnett
-barney
-barnhard
-barnhart
-barnhill
-barnhous
-barnicke
-barnie
-barnwell
-barny
-barolet
-baron
-barr
-barraclo
-barrass
-barrell
-barret
-barrett
-barreyre
-barri
-barrie
-barrient
-barriere
-barringt
-barrio
-barris
-barritt
-barron
-barrows
-barry
-barsch
-barsha
-barsky
-barsony
-barstow
-barszcze
-bart
-bartel
-barth
-barthel
-barthole
-bartholo
-bartie
-bartkows
-bartlet
-bartlett
-bartley
-bartolem
-bartolom
-bartoluc
-barton
-bartosze
-bartra
-bartram
-bartush
-barty
-bartz
-baruk
-barwikow
-bary
-baryram
-basa
-basco
-bascombe
-base
-basheer
-bashton
-bashyam
-basia
-basil
-basile
-basilio
-basilius
-basinger
-baskaran
-baskervi
-baskin
-basladyn
-basmadji
-basnett
-bason
-basrur
-bassam
-bassem
-basser
-bassett
-bassigna
-bassil
-basta
-bastani
-bastarac
-bastian
-bastien
-basu
-bat
-batcheld
-batchelo
-batchoun
-bateman
-bates
-batholom
-bathrick
-bathsheb
-batsheva
-batson
-battersb
-battersh
-battisto
-batura
-baudais
-baudoin
-bauer
-baughan
-baugnon
-baulch
-baum
-baumann
-baumberg
-baumert
-bautista
-bawek
-bawn
-bax
-baxie
-baxter
-baxy
-bay
-bayard
-bayer
-bayerkoh
-bayless
-bayley
-bayly
-bayne
-baynes
-bayno
-bayola
-bayrakta
-bays
-bazarjan
-bazemore
-bazerghi
-bazerman
-bazik
-baziuk
-bcs
-bcspatch
-bea
-beach
-beadley
-beagley
-beal
-beale
-beall
-bealle
-beals
-beana
-bear
-beardmor
-bearnard
-bears
-beasley
-beata
-beate
-beato
-beaton
-beatrice
-beatrisa
-beatrix
-beatriz
-beattie
-beattie-
-beatty
-beaty
-beau
-beaubien
-beaucair
-beauchai
-beaucham
-beauchem
-beaudet
-beaudett
-beaudin
-beaudoin
-beaudry
-beaufort
-beaule
-beaulieu
-beaumier
-beaumont
-beaupre
-beaurega
-beausejo
-beauvais
-beavingt
-beavis
-beb
-bebber
-bebe
-bebee
-becan
-becca
-bechara
-bechtel
-beck
-becka
-becke
-becker
-beckett
-beckham
-becki
-beckie
-beckman
-beckstea
-beckwith
-becky
-beconovi
-becquart
-bedard
-bede
-bedford
-bedi
-bedient
-bedlingt
-bednar
-bedoya
-bedrosia
-bee
-beebe
-beeby
-beecker
-beehler
-beekman
-beeman
-beerkens
-beers
-bees
-beeston
-beethove
-beeton
-befanis
-beffert
-beggs
-begley
-begum
-behdad
-behlen
-behler
-behm
-behnam
-behrens
-behroozi
-behrouz
-behzad
-beil
-beilin
-beilul
-beine
-beique
-beisel
-beitinja
-beitris
-bejar
-bekkedam
-bekki
-bektas
-bel
-bela
-belair
-belaire
-beland
-belanger
-belboul
-belcher
-belcourt
-belen
-belford
-belia
-belich
-belicia
-belinda
-belir
-belisle
-belissa
-belita
-belk
-bell
-bella
-bellanca
-belle
-bellefeu
-bellehum
-bellevil
-bellew
-belley
-bellina
-bellingt
-bellis
-bello
-bellosa
-belmont
-belohoub
-belrango
-belson
-belton
-beltran
-belva
-belvia
-belyaev
-belzile
-bemiller
-bemis
-ben
-ben-isha
-benabdal
-benasso
-benavide
-benay
-benchimo
-bencia
-benda
-bender
-bendick
-bendicty
-bendite
-bendix
-beneda
-benedek
-benedett
-benedick
-benedict
-benedikt
-benefiel
-benefits
-beneteau
-benetta
-benfield
-benge
-bengt
-bengtson
-benham
-beniamin
-beninger
-benita
-benito
-benjamen
-benjamin
-benjavan
-benjes
-benji
-benjie
-benjy
-benn
-bennatt
-benne
-bennefel
-benner
-bennesa
-bennet
-bennett
-benni
-bennie
-benning
-bennison
-benny
-benoit
-benoite
-benschop
-benski
-benson
-bent
-benthem
-benthin
-bentlee
-bentley
-bento
-benton
-benwell
-benyamin
-benyon
-benzick
-benzie
-beom-sah
-beomsahn
-beorn
-beowulf
-bep
-beppie
-ber
-beranger
-berek
-berenbac
-berenice
-berenz
-beresfor
-beresnik
-beret
-bereza
-bergado
-berger
-bergeron
-bergeson
-berget
-bergland
-bergman
-bergmann
-bergquis
-bergsma
-bergstro
-bergwerf
-berhane
-beriault
-berk
-berke
-berkeley
-berkie
-berkley
-berkly
-berknet
-berky
-berman
-bermel
-bern
-berna
-bernaden
-bernadet
-bernadin
-bernard
-bernardi
-bernardo
-bernarr
-bernd
-berndt
-berne
-berneche
-bernelle
-berneta
-bernete
-bernetta
-bernette
-bernhard
-berni
-bernice
-bernie
-berniece
-bernier
-berning
-bernita
-berno
-bernstei
-berny
-berri
-berrie
-berrin
-berrisfo
-berro
-berry
-berryhil
-bert
-berta
-berte
-berteau
-bertha
-berthe
-berthele
-berti
-bertie
-bertigno
-bertina
-bertine
-bertini
-bertolin
-berton
-bertram
-bertrand
-berty
-berube
-beryl
-beryle
-beshai
-besharah
-beshir
-besime
-besnier
-bess
-besse
-bessel
-bessell
-bessette
-bessey
-bessie
-besson
-bessuill
-bessy
-bestavro
-beswick
-betcher
-beth
-bethanne
-bethany
-bethena
-bethina
-bethune
-beton
-betsey
-betsill
-betsy
-betta
-bettadap
-bette
-bette-an
-betteann
-betterle
-betters
-betti
-bettie
-bettina
-bettine
-bettink
-betts
-betty
-betty-an
-bettye
-beulah
-beun
-beuren
-bev
-bevan
-beveridg
-beverie
-beverlee
-beverley
-beverlie
-beverly
-bevin
-bevingto
-bevis
-bevon
-bevvy
-bevyn
-beware.
-beygui
-beymer
-bezanson
-bezdel
-beznowsk
-bhagvat
-bhal
-bhandari
-bhanu
-bharadwa
-bharat
-bhardwaj
-bhasin
-bhaskar
-bhatia
-bhatt
-bhattach
-bhatti
-bhavani
-bhoday
-bhullar
-bhupendr
-bhupinde
-bhusan
-bi-jun
-bi-shiou
-biage
-bialek
-bialkeni
-biamonte
-bianca
-bianchi
-bianka
-biard
-bibbie
-bibby
-bibbye
-bibekana
-bibi
-bible
-bibr
-bice
-bickford
-bidc
-biddie
-biddy
-bidetti
-bidget
-bidyut
-biederma
-biegaj
-biel
-bielan
-bielat
-bielby
-bielecki
-bielejes
-bienek
-bienia
-bierbrie
-bierman
-biermann
-biersach
-bieszcza
-bigelow
-biggers
-biggerst
-biggs
-bigley
-bigras
-bihari
-bihl
-bijan
-bijjani
-bijman
-bijons
-bijun
-bil
-bilal
-bilanski
-bili
-bill
-billard
-billi
-billie
-billing
-billingh
-billotea
-billy
-billye
-bilodeau
-bilovus
-bilsboro
-bilton
-bimini
-bin
-bina
-binda
-binder
-bindi
-binette
-bing
-binggeli
-bingham
-bingley
-bingwu
-binh
-bink
-binkley
-binky
-binner
-binni
-binnie
-binningt
-binny
-bins
-biomecha
-biomed
-bipin
-biplab
-bir
-biray
-birch
-bird
-birdie
-birendra
-birgit
-birgitta
-birgitte
-birk
-birkett
-birks
-birkwood
-birmingh
-biron
-birtch
-bisad
-bisch
-bishiou
-bishwa
-bishya
-bismark
-biss
-bissegge
-bissette
-bisson
-bissonne
-biswa
-biswajit
-bitar
-bittenbe
-bittman
-bitton
-bivens
-bizga
-bjorklun
-bjorn
-bjornson
-blaauw
-blackard
-blackbur
-blacker
-blackley
-blackloc
-blackman
-blacksha
-blackshi
-blackwel
-blackwoo
-bladon
-blaikloc
-blaine
-blair
-blaire
-blais
-blaise
-blake
-blake-kn
-blakelee
-blakeley
-blakemor
-blakesle
-blakey
-blakkolb
-blalock
-blanca
-blanca-s
-blancasi
-blanch
-blancha
-blanchar
-blanche
-blanchet
-blanco-a
-blander
-blane
-blankens
-blann
-blaschuk
-blasine
-blasing
-blasko
-blatherw
-blatt
-blau
-blauer
-blaufus
-blaylock
-blayne
-blazejew
-blazek
-blazer
-bleile
-blenk
-blenkarn
-blesi
-blethen
-bleuer
-blevins
-blezard
-blidy
-blimkie
-blinn
-blinni
-blinnie
-blinny
-bliss
-blisse
-blissett
-blithe
-blodgett
-bloedon
-bloemker
-blois
-blomquis
-blondell
-blondie
-blondy
-bloodwor
-blostein
-blouin
-blount
-bluethne
-blum
-blumenfe
-blumer
-bluschke
-bly
-blyskal
-blyszcza
-blythe
-bmethods
-bnr
-bnrecad
-bnrinfo
-bnrlsi
-bnrsport
-bnrtor
-bo
-bo-ping
-boal
-boaman
-boarder
-boase
-boatwrig
-bob
-bobak
-bobar
-bobb
-bobbe
-bobbee
-bobbette
-bobbi
-bobbie
-bobbitt
-bobby
-bobbye
-bobette
-bobina
-bobine
-bobinett
-boccali
-bockaj
-bocklage
-bocservi
-boddevel
-boden
-bodford
-bodin
-bodkin
-bodnar
-bodo
-boeck
-boecke
-boehlke
-boehms
-boen
-boer
-boersma
-boeyen
-bogal
-bogart
-bogdan
-bogert
-bogey
-boggan
-boggia
-boggild
-boggs
-bogumill
-boguslaw
-bohacek
-bohanan
-bohannon
-bohdan
-bohn
-bohner
-bohyun
-boigie
-boileau
-boily
-boinnard
-bois
-boisseau
-boisset
-boisvert
-boivin
-bojeck
-bokanovi
-bokij
-bokish
-boland
-bolding
-bolduc
-boleda
-bolen
-boles
-bolgos
-bolio
-bolli
-bolly
-bolon
-bolouri
-bolsinge
-bolton
-bolzon
-bomba
-bombardi
-bommakan
-bommer
-bomstein
-bon
-bonahoom
-bond
-bondie
-bondon
-bonduran
-bondy
-bone
-bonfanti
-bongers
-boniface
-bonita
-bonn
-bonnar
-bonneau
-bonnee
-bonnefoy
-bonnell
-bonner
-bonnevil
-bonney
-bonni
-bonnibel
-bonnie
-bonnin
-bonny
-bono
-boocock
-booker
-booking
-bookings
-boon-sio
-boone
-boonie
-boonphet
-boonsion
-boony
-boorne
-boorse
-boos
-boose
-boot
-boote
-booth
-boothe
-boothroy
-bophal
-boping
-bopp
-boppana
-bor-wen
-bora
-boraie
-boray
-borcic
-bord
-bordage
-borden
-bordie
-bordin
-bordy
-borek
-borel
-borg
-borgia
-borha
-boris
-borivoje
-borkowic
-borman
-borodajl
-borojevi
-borosch
-borosh
-boroski
-boroughs
-borowiec
-borozny
-borrelli
-borsa
-borsato
-borson
-bortenst
-borthwic
-bortolus
-borum
-boruslaw
-borwen
-borza
-borzic
-bosch
-boschin
-boscio
-bosco
-bose
-bosiljev
-bosiljka
-bosko
-bosnich
-bosnyak
-bossa
-bossert
-bossett
-bossler
-bostelma
-bostock
-boswell
-boswick
-bosworth
-bosy
-bot
-bothwell
-bott
-botti
-botting
-bottis
-botto
-bottomle
-bottoms
-botyrius
-bouchard
-boucher
-boucouri
-boudin
-boudreau
-bouffard
-bouick
-boulais
-boulay
-bouleric
-boulos
-boult
-bounds
-bour
-bourahla
-bourbonn
-bourcier
-bourdeau
-bourdign
-bourdin
-bouret
-bourgaiz
-bourgaul
-bourget
-bourgon
-bourguig
-bourk
-bourke
-bourland
-bourlet
-bourne
-bouroncl
-bourque
-bourret
-bousfiel
-boutilie
-boutin
-boutniko
-boutot
-bovat
-bovee
-bovenize
-bovey
-bowab
-bowcock
-bowden
-bowen
-bowens
-bower
-bowers
-bowes
-bowick
-bowie
-bowler
-bowles
-bowling
-bowser
-bowyer
-boy
-boyachek
-boyajian
-boyce
-boycey
-boycie
-boyd
-boye
-boyea
-boyer
-boyes
-boylan
-boyle
-boynton
-boz
-bozeman
-bozicevi
-bqb
-braaksma
-brabant
-brabec
-bracewel
-brackin
-brackley
-bracy
-brad
-bradan
-bradbury
-bradd
-braddock
-braddy
-brade
-bradee
-braden
-bradford
-brading
-bradlee
-bradley
-bradlow
-bradly
-bradnels
-bradney
-bradshaw
-brady
-bradyhou
-bragado
-braganza
-bragg
-braginet
-braham
-brahim
-brahmana
-brahms
-brailey
-brain
-brait
-brajesh
-bram
-brambley
-bramlett
-bran
-brana
-branchau
-brand
-brandais
-brande
-brandea
-brandel
-branden
-brander
-brandi
-brandice
-brandie
-brandise
-brandon
-brandsen
-brandsta
-brandt
-brandtr
-brandvol
-brandy
-brandyn
-branham
-brann
-brannan
-brannen
-brannick
-brannon
-brans
-branscom
-brant
-brantley
-brar
-brashear
-brasingt
-brassard
-brassell
-brassem
-brasset
-brasunas
-brathwai
-bratten
-brauer
-brault
-braum
-braun
-braunsti
-braverma
-brawley
-brazeau
-breanne
-brear
-brearley
-breault
-brechtje
-bredeck
-bredfeld
-bree
-breedlov
-breena
-bregitte
-breglec
-brehm
-breisch
-breiten
-brekel
-brel
-bremner
-bren
-brena
-brend
-brenda
-brendan
-brenden
-brender
-brendin
-brendis
-brendon
-brenn
-brenna
-brennan
-brennand
-brennen
-brent
-brentley
-brenton
-breon
-brese
-bresee
-breslin
-bresnaha
-bresnan
-bress
-bret
-breton
-brett
-breuer
-brevard
-brew
-brewer
-brewster
-brewton
-bria
-brian
-briana
-brianna
-brianne
-briano
-briant
-briante
-briard
-brice
-brichett
-brickey
-brickman
-bride
-briden
-bridenst
-bridge
-bridgefo
-bridges
-bridget
-bridgett
-bridgman
-bridie
-brieda
-briel
-brien
-brier
-briere
-brierley
-brietta
-brig
-brigg
-briggs
-brigham
-brightwe
-brigid
-brigida
-brigit
-brigitta
-brigitte
-brina
-brind'am
-brindley
-briner
-briney
-bringhur
-brinklow
-brinkman
-brinn
-brinna
-brintnel
-brinton
-briny
-brion
-brisby
-briseboi
-brissett
-brisson
-brit
-brita
-britman
-britney
-britni
-britt
-britta
-brittain
-brittan
-brittane
-brittani
-brittany
-britte
-britteny
-brittne
-brittney
-brittni
-britto
-britton
-brivet
-brivins
-brkich
-brnaba
-brnaby
-broadfoo
-broadhea
-broadwel
-broberg
-broca
-brocato
-brock
-brockhou
-brockie
-brockleb
-brockman
-brockmey
-brocksch
-brocky
-brod
-broddie
-broddy
-broderic
-broderse
-brodfueh
-brodgen
-brodie
-brodman
-brodowsk
-brody
-brogden
-brogdon
-brogley
-brok
-brokaw
-brombal
-bromley
-bron
-bronec
-bronk
-bronnie
-bronny
-bronson
-brook
-brooke
-brooker
-brookes
-brookhar
-brookhou
-brooks
-brooksba
-broome
-brophy
-broschuk
-brose
-brossard
-brossela
-brosso
-brost
-brostrom
-broten
-brothers
-brothert
-brough
-broughto
-brouille
-broulik
-broussar
-broussea
-brouthil
-brouwer
-brovont
-brower
-brown-gi
-browne
-brownfie
-browning
-brownlee
-brownlie
-brownrid
-brox
-broyles
-brubaker
-bruce
-brucie
-bruder
-bruhl
-bruin
-bruis
-bruketa
-brule
-brum
-brummitt
-brummund
-brunato
-bruncati
-bruneau
-brunel
-brunelle
-bruner
-bruner-u
-brunet
-brungard
-brunhild
-brunke
-brunner
-brunner-
-bruno
-brunoni
-brunstin
-brunton
-brushey
-bruxvoor
-bry
-bryan
-bryana
-bryant
-bryanty
-bryce
-brydges
-brydon
-bryenton
-bryn
-bryna
-brynn
-brynna
-brynne
-bryon
-brys
-bryttan
-bse
-bubak
-bubel
-buccella
-bucci
-buchan
-buchanan
-buchko
-buck
-buckalew
-buckhoff
-buckie
-buckingh
-buckley
-bucklin
-buckman
-buckner
-bucky
-buczek
-bud
-buda
-budd
-buddie
-buddy
-buder
-budhram
-budi
-budihard
-budimiro
-bue
-buechner
-buehler
-buettgen
-buffam
-buffett
-buffy
-buford
-bugajska
-bugajski
-buggie
-buhler
-buhr
-buhrkuhl
-bui
-building
-buiron
-bujold
-buker
-bukowski
-bukta
-buky
-bulan
-bulanda
-bulbrook
-bulengo
-bulent
-buley
-bulger
-bulifant
-bulitka
-bulka
-bulkovsh
-bullard
-bullas
-bullen
-bulletin
-bullett
-bullinge
-bullion
-bulman
-bulmanis
-bulmer
-bulz
-bumgarne
-bumstead
-bunce
-bundschu
-bunker
-bunn
-bunner
-bunni
-bunnie
-bunny
-bunting
-buntrock
-bunzey
-buratyns
-burbage
-burbidge
-burcew
-burch
-burchat
-burchby
-burdett
-burdette
-burdick
-burega
-burek
-burg
-burge
-burger
-burgess
-burgette
-burgi
-burgin
-burgwell
-burk
-burkard
-burke
-burkepil
-burkert
-burkett
-burkey
-burkhard
-burl
-burleigh
-burleson
-burlie
-burnaby
-burnage
-burnard
-burness
-burnet
-burnett
-burnette
-burney
-burnie
-burns
-burnside
-burr
-burrell
-burrowes
-burrows
-burrus
-burruss
-burt
-burtie
-burton
-burty
-burwell
-busby
-buscagli
-buscarin
-busch
-busche
-buschelm
-bushell
-bushnell
-bushnik
-business
-buskard
-buske
-buskens
-busko
-bussewit
-bussey
-buster
-bustillo
-busuttil
-butch
-butcher
-butner
-butta
-butterfi
-butters
-buttrey
-butts
-butvich
-buxton
-buzz
-buzzell
-buzzy
-bvworks
-by don o
-bycenko
-byczko
-bydeley
-byer
-byers
-byeungwo
-byk
-bykowy
-bylina
-byoung
-byoungin
-byram
-byran
-byrann
-byrd
-byrgesen
-byrl
-byrle
-byrne
-byrnes
-byrom
-byron
-byung
-byungyon
-cabaniss
-cabi
-cabot
-cabral
-cabras
-cabrera
-caceres
-cacha
-cachero
-cacilia
-cacilie
-cad
-cadd
-caddric
-cadeau
-cadieux
-cadshare
-cadtools
-cady
-cadzow
-cae
-caesar
-caffrey
-caffry
-cagatay
-caglar
-caglayan
-cahill
-cahra
-cai
-caie
-cain
-caine
-caines
-cairisti
-cairns
-caison
-caitlin
-caitrin
-cakarevi
-cal
-calahorr
-calc
-calcote
-calder
-caldwell
-cale
-caleb
-caleta
-calhoun
-caliboso
-calica
-calida
-calis
-calistro
-calkins
-calla
-callagha
-callahan
-callan
-callanan
-callean
-calleja
-callende
-callery
-calley
-calli
-callida
-callie
-callos
-calloway
-cally
-calmejan
-calmenso
-calow
-caltride
-calumet
-calv
-calva
-calvary
-calvin
-calypso
-calzaros
-cam
-camacho
-camala
-camblin
-cambre
-camel
-camel-to
-camella
-camellia
-cameron
-camet
-camey
-cami
-camie
-camila
-camile
-camilla
-camille
-camilluc
-camino
-camirand
-cammi
-cammie
-cammy
-campagna
-campanel
-campara
-campbell
-campeau
-camplone
-campo
-campos
-canada
-canadian
-canavan
-cancela
-candace
-candee
-candelar
-candi
-candice
-candida
-candide
-candie
-candis
-candra
-candy
-canete
-canfield
-cang
-cann
-cannatar
-cano
-cantlie
-cantrell
-cantwell
-canuel
-canute
-capelle
-capes
-capindal
-caple
-caplinge
-capobian
-capostag
-capozzi
-capps
-capretta
-caprice
-captives
-caputo
-car
-cara
-caralie
-carandan
-carbajal
-carbonar
-carbone
-carboni
-carbonne
-carce
-cardella
-carden
-cardozo
-cards
-care
-career
-careers
-carella
-caren
-carena
-caresa
-caresani
-caressa
-caresse
-carevic
-carew
-carey
-cargill
-cargnell
-cari
-caria
-caridad
-carie
-carignan
-caril
-carilyn
-carin
-carina
-carine
-cariotta
-carisa
-carissa
-carita
-caritta
-cark
-carkner
-carl
-carla
-carlberg
-carldata
-carle
-carlean
-carlebac
-carlee
-carleen
-carlen
-carlene
-carleton
-carlett
-carley
-carli
-carlie
-carlin
-carlina
-carline
-carling
-carlis
-carlisle
-carlita
-carlo
-carlock
-carlos
-carlota
-carlotta
-carlsen
-carlson
-carlton
-carly
-carlye
-carlyle
-carlyn
-carlynn
-carlynne
-carm
-carma
-carmel
-carmela
-carmelia
-carmelin
-carmelit
-carmella
-carmelle
-carmelo
-carmen
-carmenci
-carmicha
-carmina
-carmine
-carmita
-carmody
-carmon
-carmona
-carnegie
-carney
-carnogur
-carny
-caro
-carol
-carol-je
-carola
-carolan
-carolann
-carole
-carolee
-carolien
-carolin
-carolina
-caroline
-caroljea
-carolle
-carolus
-carolyn
-carolyne
-carolynn
-caron
-carpenti
-carpool
-carr
-carran
-carranza
-carree
-carri
-carrie
-carriere
-carrillo
-carringt
-carrissa
-carrmtce
-carrol
-carroll
-carron
-carruthe
-carry
-carrye
-carson
-carsten
-carstens
-carswell
-cart
-carter
-cartohl
-carty
-carufel
-caruk
-caruso
-caruth
-carvalho
-carver
-cary
-caryl
-caryn
-cas
-casadont
-casalou
-casandra
-casanova
-casar
-casas
-cascarin
-case
-casey
-cash
-cashin
-casi
-casie
-casinovi
-caskey
-casler
-casnji
-casotto
-caspar
-casper
-casperso
-cass
-cassady
-cassandr
-cassar
-cassat
-cassaund
-cassese
-cassey
-cassi
-cassian
-cassidy
-cassie
-cassius
-casson
-cassondr
-cassy
-castaban
-castell
-castello
-casten
-castillo
-casto
-castongu
-castro
-castro-h
-castrono
-caswell
-cat
-catanach
-catarina
-cate
-caterina
-catering
-cath
-catha
-cathal
-catharin
-cathe
-cathee
-catherin
-catherwo
-cathi
-cathie
-cathleen
-cathlene
-cathrin
-cathrine
-cathryn
-cathy
-cathylee
-cati
-catie
-catina
-catja
-catlaina
-catlee
-catlett
-catlin
-cato
-caton
-catrina
-catriona
-catthoor
-caty
-cau
-cauchy
-caudill
-caudle
-cauthen
-cauthers
-cavan
-cavanagh
-cavanaug
-cavasin
-cavasso
-caves
-cavill
-cavin
-caviness
-cavnar
-cawley
-caye
-cayer-fl
-cayla
-cayless
-cayouett
-caz
-caza
-cazzie
-cbabbage
-cchaddie
-cecco
-cece
-cecelia
-cech
-cecil
-cecile
-ceciley
-cecilia
-cecilio
-cecilius
-cecilla
-cecily
-cecon
-ced
-cedric
-cefee
-cegelski
-ceil
-cele
-celene
-celesta
-celeste
-celestia
-celestin
-celestyn
-celia
-celie
-celina
-celinda
-celine
-celinka
-celisse
-celka
-celle
-cello
-cellucci
-celso
-celyne
-cemensky
-cen
-cencier
-centeno
-center
-centers
-centis
-centre
-cepero
-cepheus
-ceponis
-ceranic
-cerberus
-ceri
-ceriel
-cerny
-cervante
-cesar
-cesaratt
-cesare
-cesario
-cesaro
-cescon
-cesya
-cetraro
-cezary
-chaaban
-chaar
-chabane
-chabert
-chabrat
-chacko
-chacon
-chad
-chadd
-chaddha
-chaddie
-chaddock
-chaddy
-chadha
-chadrick
-chadwick
-chafin
-chafy
-chagnon
-chahal
-chahram
-chai
-chai-seo
-chaikows
-chaim
-chaiman
-chaimson
-chaintre
-chaisupa
-chak-hon
-chakraba
-chakrabo
-chakrava
-chalifou
-chalker
-challice
-chalmers
-chalton
-cham
-chamard
-chamayou
-chambers
-chamblis
-champath
-champion
-champsi
-chamsi
-chan
-chan-jiu
-chan-nan
-chance
-chancey
-chanchal
-chanchla
-chanco
-chand
-chanda
-chandal
-chandan
-chander
-chandler
-chandra
-chandrak
-chandran
-chandras
-chandru
-chane
-chang
-chang-hs
-changes
-changho
-changhsi
-chanh
-chanitr
-chanjiun
-channa
-channan
-channell
-channen
-chanonat
-chanpong
-chanshin
-chansik
-chantal
-chantall
-chantel
-chantell
-chao
-chao-pin
-chaoping
-chapa
-chapdela
-chapen
-chapin
-chapleau
-chaplin
-chapman
-chapmond
-chappell
-chappuis
-chaput
-char
-charangi
-charasse
-charbonn
-charchan
-chardon
-charee
-charene
-charest
-charette
-chari
-charil
-charin
-chariot
-charis
-charissa
-charisse
-charita
-charity
-charko
-charla
-charlean
-charlebo
-charleen
-charlena
-charlene
-charles
-charlesb
-charleto
-charley
-charlie
-charline
-charlino
-charlins
-charlot
-charlott
-charlsey
-charlton
-charly
-charmain
-charman
-charmane
-charmian
-charmine
-charmion
-charness
-charney
-charo
-charon
-charron
-charter
-chartier
-chartran
-charyl
-chas
-chasalow
-chase
-chasse
-chastity
-chatard
-chatchai
-chatel
-chatfiel
-chatha
-chatri
-chatterl
-chattert
-chattoe
-chattos
-chau
-chaudhar
-chaudhry
-chaudry
-chaug-mi
-chaugmin
-chauhan
-chaunce
-chauncey
-chaurasi
-chaurett
-chautems
-chauvin
-chavers
-chaves
-chavez
-chavis
-chawki
-chawla
-chaya
-chaz
-che
-chea
-cheal
-cheatham
-cheba
-checinsk
-checklan
-chee
-chee-yin
-chee-yon
-cheesema
-cheesman
-cheetham
-cheevers
-chel
-chellapp
-chelsae
-chelsea
-chelsey
-chelsie
-chelsy
-chem
-chen
-chen-che
-chen-chu
-chen-jun
-chen-msi
-chenard
-chenault
-chenchun
-chene
-cheney
-cheng
-cheng-do
-cheng-fo
-cheng-ho
-cheng-hu
-cheng-ts
-chengdon
-chengfoo
-chenghon
-chenghun
-chengtse
-chengwei
-chenier
-chenmsie
-chennett
-chenowet
-chenye
-cheol
-cheow-to
-cheowton
-chepregi
-cher
-chere
-cherenso
-cherey
-cheri
-cherian
-cheriann
-cherice
-cherida
-cherie
-cherilyn
-cherin
-cherise
-cherish
-cherkas
-cherlyn
-chern
-chernets
-cherng
-cherri
-cherrier
-cherrita
-cherry
-chertok
-chervena
-chery
-cherye
-cheryl
-ches
-cheshire
-chesley
-cheslie
-chesser
-chesteen
-chester
-chesterf
-cheston
-chet
-chetan
-cheuk
-cheung
-chev
-cheval
-chevalie
-chevarie
-chevy
-cheyenne
-chhabria
-chi
-chi-haw
-chi-ho
-chi-hua
-chi-hung
-chi-kai
-chi-keun
-chi-kwan
-chi-man
-chi-vien
-chi-wen
-chi-yin
-chi-yuan
-chia
-chia-hoa
-chia-hua
-chiabaut
-chiahoan
-chiahuan
-chiaki
-chiamvim
-chian
-chian-fo
-chianfon
-chiang
-chiang-h
-chianghu
-chiaoyun
-chiarell
-chiarra
-chiavaro
-chic
-chick
-chickie
-chickori
-chicky
-chico
-chie
-chief
-chieh
-chiem
-chien
-chien-ch
-chien-hs
-chien-hu
-chienche
-chienchi
-chienhsi
-chienhue
-chieu
-chih
-chih-chi
-chih-hsi
-chih-hua
-chih-tsa
-chihaw
-chihchia
-chihchie
-chihhsia
-chihhua
-chihtsai
-chihua
-chihung
-chiiwen
-chik
-chikai
-chilausk
-childerh
-childers
-childree
-childres
-childs
-chilibec
-chilton
-chima
-chin
-chin-ho
-chin-lin
-chin-shu
-chin-ten
-chin-wen
-chinfui
-ching
-ching-ch
-ching-en
-ching-fu
-ching-lo
-ching-ts
-ching-yu
-chingchy
-chingen
-chingfu
-chingtsu
-chingyun
-chinh
-chinhin
-chinho
-chiniwal
-chinlin
-chinn
-chinnery
-chinrung
-chinshu
-chinteng
-chinwen
-chiou
-chip
-chiquia
-chiquita
-chiracha
-chisholm
-chisolm
-chitkara
-chitnis
-chitra
-chityal
-chiu
-chiverto
-chiwen
-chiykows
-chiyo
-chiyuan
-chlo
-chloe
-chloette
-chloris
-chmara
-cho
-cho-kuen
-cho-lun
-chochon
-chocs
-chod
-choe
-chohan
-choi
-chojan
-chok
-cholet
-cholette
-cholewin
-chomik
-chona
-chonchan
-chong
-chong-ch
-chong-ke
-chong-la
-chongcha
-chongkeu
-choo
-choo-kan
-choon
-choon-li
-choong
-chopin
-chopowic
-chopra
-choptovy
-choquett
-chorley
-chorng
-chotkows
-chou
-choudhur
-chouhan
-chouinar
-chowhan
-choy
-choynows
-chriisto
-chris
-chrisman
-chrisoph
-chrisse
-chrissie
-chrissun
-chrissy
-christ
-christa
-christab
-christal
-christan
-christea
-christel
-christen
-christer
-christi
-christia
-christie
-christin
-christl
-christof
-christop
-christos
-christy
-christye
-christyn
-chrisy
-chronowi
-chrotoem
-chroust
-chruscie
-chrysa
-chrysant
-chrysler
-chrystal
-chryste
-chrystel
-chu
-chu-chay
-chu-chue
-chua
-chuah
-chuan
-chuan-hs
-chuang
-chuanhsi
-chubb
-chubby
-chucho
-chuchuen
-chuck
-chueh
-chuen
-chugha
-chui
-chuj
-chuk
-chukwuem
-chul
-chuming
-chummun
-chun
-chun-li
-chun-shi
-chun-yen
-chung
-chung-ch
-chung-kw
-chung-li
-chung-wo
-chung-yo
-chungen
-chungjen
-chungkwo
-chunglin
-chungpha
-chungsik
-chunkin
-chunlan
-chunli
-chunlin
-chunling
-chunmei
-chunmeng
-chunn
-chunshin
-chunyen
-chuong
-chuq
-churas
-churchil
-chwen
-chychrun
-chye
-chye-lia
-chytil
-cia
-ciampini
-cianci
-ciancibe
-ciaralli
-ciaran
-ciaschi
-ciccarel
-cicchino
-cicci
-cicek
-cicely
-cicero
-cicily
-ciel
-ciesiels
-cieslak
-cifelli
-cifersky
-cigay
-cilka
-cimarron
-cimino
-cimolai
-cinar
-cinda
-cindas
-cindee
-cindelyn
-cinderel
-cindi
-cindie
-cindra
-cindy
-cinicolo
-cinnamon
-cinq-mar
-ciocca
-ciochon
-cioffi
-ciolfi
-cipolla
-circe
-ciriaco
-cirillo
-cirilo
-ciro
-cirri
-cirstofo
-cirulli
-cis @ w
-cisco
-ciskowsk
-cisnews
-cissiee
-cissy
-citarell
-cities
-citrin
-cividino
-cizmar
-clacher
-claggett
-claiborn
-clair
-claire
-clairmon
-claise
-clampitt
-clancy
-clapham
-clapp
-clara
-clarabel
-clarance
-clare
-clarence
-claresta
-clareta
-claretta
-clarette
-clarey
-clari
-claribel
-clarice
-clarie
-clarinda
-clarine
-clarise
-clarissa
-clarisse
-clarita
-clark
-clark-st
-clarka
-clarke
-clarkson
-clary
-clason
-class
-classes
-claude
-claudell
-claudett
-claudia
-claudian
-claudie
-claudina
-claudine
-claudio
-claudius
-claus
-claveau
-claxton
-clay
-clayborn
-claybour
-claybroo
-clayson
-clayton
-clea
-cleary
-cleavlan
-cleere
-clegg
-clem
-clemence
-clemens
-clement
-clemente
-clementi
-clements
-clemie
-clemmie
-clemmons
-clemmy
-clendeni
-clenney
-clennito
-clentice
-cleo
-cleon
-cleopatr
-clerc
-clerissa
-clerkcla
-clerke
-cleroux
-clesson
-clestell
-cletis
-cleto
-cletus
-cleve
-clevelan
-clevey
-clevie
-clevon
-cliff
-clifford
-clifton
-clim
-clincket
-cline
-clinger
-clinkard
-clint
-clinteas
-clinton
-clio
-clippert
-clipsham
-clites
-clive
-clo
-clocklab
-cloe
-cloherty
-clooney
-cloris
-closson
-clost
-clotilda
-clough
-clouthie
-cloutier
-clovis
-clow
-cloyd
-cluett
-clusiau
-cly
-clyde
-clysdale
-clyve
-clywd
-cmet
-co
-co-op
-co-ordin
-coady
-coallier
-coathup
-coats
-cob
-cobaugh
-cobb
-cobban
-cobbie
-cobbold
-cobby
-coble
-cobley
-cobo
-cobran
-cocco
-cochran
-cochrane
-cockburn
-cockcrof
-cocke
-cockins
-cocos
-cocos-ar
-codack
-codata
-coddingt
-code
-codee
-coder
-codi
-codie
-codoc
-codringt
-cody
-coe
-coertnik
-coffey
-cogan
-cogdell
-coggins
-coghlan
-cogwell
-cohea
-cohen
-cohn
-cohn-sfe
-cohoe
-cohrs
-coila
-cointon
-coker
-cokol
-colagros
-colan
-colangel
-colanton
-colas
-colatta
-colbert
-colbourn
-colburn
-colby
-colclasu
-coldwell
-cole
-coleen
-colella
-coleman
-colene
-coles
-colet
-coletta
-colette
-coley
-colford
-colgan
-colin
-colina
-colinda
-collamer
-collamor
-collazo
-collecut
-colledge
-colleen
-collen
-collete
-collette
-collevec
-colley
-colli
-collie
-collier
-collin
-colline
-collins
-collis
-colly
-collyer
-colm
-colman
-coloads
-colonton
-colpitts
-colquett
-colquhou
-colquitt
-colston
-colter
-colterma
-colton
-colucci
-colver
-colvin
-colwell
-comay
-combaz
-combee
-combella
-combos
-combs
-comeau
-comley
-comm
-commazzi
-comments
-committe
-commons
-communic
-comp
-compton
-computin
-comstock
-comtois
-con
-conan
-conant
-conboy
-concetta
-concetti
-conchita
-concklin
-concordi
-conde
-condell
-condurel
-conerly
-coneybea
-cong
-congdon
-congress
-conistis
-conklin
-conley
-conlin
-conlon
-conn
-connell
-connelly
-conner
-conners
-conney
-conni
-connie
-connolly
-connor
-connors
-connors-
-conny
-conoly
-conrad
-conrade
-conrado
-conrath
-conroy
-consalve
-conservi
-consolat
-constabl
-constanc
-constant
-construc
-consuela
-consuelo
-consulta
-containi
-contardo
-conte
-contine
-contomic
-conway
-coochey
-coody
-coogan
-cooke
-cookie
-cooksey
-cooley
-coolidge
-coombs
-cooney
-coop
-cooper
-cooperma
-coord
-coordina
-coors
-copeland
-copello
-copeman
-copes
-coplesto
-copley
-copp
-coppedge
-coppins
-coqueugn
-cora
-corabel
-corabell
-corace
-coral
-coralie
-coraline
-coralyn
-corbeil
-corbet
-corbett
-corbie
-corbin
-corbitt
-corby
-corcoran
-cord
-cordelia
-cordelie
-cordell
-cordes
-cordey
-cordi
-cordie
-cordula
-cordy
-core
-coreen
-corella
-corena
-corenda
-corene
-coretta
-corette
-corey
-cori
-coriaty
-corie
-corilla
-corina
-corine
-corinna
-corinne
-coriss
-corissa
-corker
-corkey
-corkigan
-corkstow
-corkum
-corless
-corlett
-corley
-corliss
-corly
-cormac
-cormier
-cornall
-cornaro
-cornel
-cornela
-cornelia
-cornelis
-corneliu
-cornell
-cornelle
-corner
-corney
-cornie
-corny
-corpenin
-corpuz
-corr
-correa
-correia
-correna
-correy
-corri
-corriann
-corrie
-corrigan
-corrina
-corrine
-corrinne
-corritor
-corrivea
-corry
-corsale
-corse
-corson
-cort
-cortie
-cortland
-cortney
-corty
-corvo
-cory
-cos
-cosburn
-cosentin
-cosetta
-cosette
-cosgrove
-cosimo
-coslas
-cosme
-cosmo
-cosner
-cosola
-cossota
-costa
-costache
-costadim
-costandi
-costanti
-costanza
-costanzi
-costas
-costas-d
-coste
-costello
-costen
-cote
-cothran
-cotnam
-cotner
-cotten
-cottengi
-cotter
-cottingh
-cottrell
-cotugno
-cotuna
-coucopou
-couey
-coughran
-coules
-coulman
-coulombe
-coulson
-coulter
-coulterm
-count
-coupal
-coupland
-courches
-couron
-coursdev
-coursey
-coursol
-courson
-court
-courtadm
-courtena
-courtlan
-courtnay
-courtney
-courvill
-couse
-couser
-cousinea
-cousins
-coutelli
-coutinho
-couto
-coutu
-couture
-covach
-coverdal
-covey
-coviensk
-coville
-covingto
-cowan
-cowart
-cowell
-cowen
-cowick
-cowley
-cowling
-cowlisha
-cownie
-cowper
-coxall
-coxe
-coyle
-coyne
-cozart
-cozmo
-cozyn
-cozzi
-cpebach
-cpm
-cprs
-crabb
-crabe
-crabtree
-cracknel
-craddock
-crafton
-craggie
-craggs
-craggy
-craghead
-craib
-craig
-craig-du
-crain
-cramer
-cramm
-crampton
-crandall
-cranford
-cranston
-crapco
-crase
-craver
-crawford
-crawhall
-crawley
-crawshaw
-cray
-craycraf
-cre
-creamer
-crean
-creane
-creasey
-creasman
-creative
-credico
-credille
-creech
-creecy
-cregan
-creigh
-creight
-creighto
-cremer
-crepeau
-crerar
-creswell
-crews
-cribbs
-crichton
-crick
-crickard
-cricker
-cricket
-crigger
-crin
-crippen
-cripps
-cris
-crisler
-crissie
-crissy
-crista
-cristabe
-cristal
-cristen
-cristesc
-cristi
-cristian
-cristie
-cristin
-cristina
-cristine
-cristion
-cristoba
-cristofa
-cristy
-criswell
-critchle
-crittend
-crl.word
-crocker
-crockett
-crogie
-croiseti
-croix
-crolla
-cromer
-crommie
-crompton
-cromwell
-cronan
-cronin
-cronk
-cronkrig
-cronkwri
-crooks
-croom
-cropper
-crosby
-cross
-cross-as
-crossass
-crossley
-crosson
-crosswel
-croteau
-crothers
-crotty
-crowder
-crowe
-crowell
-crowle
-crowley
-croxall
-croxford
-crozier
-crucefix
-cruey
-cruicksh
-crumpton
-crusoe
-crutchfi
-cruz
-cruzado
-cryoelec
-crysta
-crystal
-crystalb
-crystie
-csaszar
-csenar
-csilla
-csite
-csma
-csop
-csr
-csreport
-csua
-ctas
-cthrine
-cuany
-cuauhtem
-cubical
-cubicle
-cucchiar
-cucci
-cuccia
-cucciole
-cucuzzel
-cuddihey
-cuddihy
-cuddy
-cuellar
-cuervo
-cuffle
-cuffling
-cuggy
-culberso
-culberts
-culbreth
-culham
-culkin
-cull
-cullan
-cullen
-culley
-cullie
-cullin
-culliphe
-cullum
-cully
-culmer
-culp
-culver
-culverho
-cummine
-cumming
-cummings
-cummins
-cumpston
-cunanan
-cung
-cunha-go
-cunningh
-cuong
-cuper
-cupid
-cupido
-curcio
-curley
-curmon
-curnow
-curr
-curran
-currer
-currey
-currie
-currier
-currin
-curry
-curt
-curtice
-curtin
-curtis
-curtt
-cusato
-cushing
-cushman
-cusick
-cusson
-custer
-custsupp
-cusumano
-cuthbert
-cuthill
-cutrufel
-cutter
-cuu
-cwirzen
-cy
-cyb
-cybil
-cybill
-cybotech
-cycelia
-cymbre
-cynde
-cyndi
-cyndia
-cyndie
-cyndy
-cynethia
-cynthea
-cynthia
-cynthie
-cynthy
-cynthya
-cyr
-cyril
-cyrill
-cyrille
-cyrillus
-cyrine
-cyros
-cyrus
-cytrynba
-czappa
-czarneck
-czeban
-czes
-czeslaw
-czychun
-d'ambros
-d'amico
-d'amour
-d'andrea
-d'angelo
-d'anjou
-d'anne
-d'antoni
-d'aoust
-d'arcy
-d'cruz
-d'ingian
-d'ippoli
-d'lima
-d'onofri
-d'orazio
-d'silva
-d'soto
-d'souza
-da
-da gama
-da silva
-da-shih
-daaboul
-dacal
-dace
-dacey
-dach
-dachelet
-dacia
-dacie
-dack
-dacre
-dacy
-dada
-dadalt
-dadang
-dade
-dadgar
-dadkhah
-dae
-daebum
-daedalus
-dael
-daena
-daesik
-daffi
-daffie
-daffy
-dafoe
-dag
-dagama
-dagenais
-dagert
-dages
-dagg
-dagley
-dagmar
-dagnall
-dagnaw
-dagny
-dagoulis
-dahai
-dahan
-dahi
-dahl
-dahlia
-dahlstro
-dai
-daigle
-daigneau
-daijavad
-daile
-dailey
-daimee
-dairin
-daisey
-daisi
-daisie
-daisy
-dajerlin
-dal
-dale
-dalenna
-dales
-daley
-dalia
-dalila
-dalip
-dalis
-dall
-dall'ost
-dallago
-dallaire
-dallal
-dallas
-dalli
-dallis
-dallon
-dalmard
-daloris
-dalrympl
-dalsiel
-dalston
-dalt
-dalton
-daly
-damara
-damaris
-dambenie
-dame
-damena
-damerji
-damian
-damiano
-damien
-damil
-damita
-damon
-damone
-dan
-dana
-danagher
-danai
-danbrook
-danchi
-dancy
-dando
-danduran
-dane
-danell
-danella
-daneshza
-danette
-danforth
-dangubic
-danh
-dani
-dania
-danial
-danica
-danice
-danie
-daniel
-daniela
-danielak
-daniele
-daniella
-danielle
-daniells
-daniels
-danika
-danila
-danilo
-danilowi
-daniluk
-danit
-danita
-danjean
-danker
-danko
-danling
-dann
-danna
-dannel
-danni
-dannie
-danny
-dannye
-dans
-danserea
-dante
-dantu
-dantzler
-dany
-danya
-danyelle
-danyette
-danzeise
-danzig
-dao
-daochuan
-daoud
-daoust
-daphene
-daphine
-daphna
-daphne
-daquano
-dar
-dar-der
-dara
-darb
-darbee
-darbie
-darby
-darcange
-darcee
-darcel
-darcey
-darci
-darcie
-darcy
-darda
-darden
-darder
-dare
-dareen
-darell
-darelle
-daren
-dares
-dari
-daria
-darian
-darice
-darill
-darin
-darina
-dario
-darius
-darko
-darla
-darleen
-darlene
-darline
-darlingt
-darlleen
-darn
-darnall
-darnel
-darnell
-darold
-daron
-darou
-darpa
-darr
-darrel
-darrell
-darrelle
-darren
-darrick
-darrimon
-darrin
-darroch
-darrol
-darrow
-darry
-darryl
-darsey
-darshan
-darshana
-darshi
-darsie
-daruius
-darveau
-darwen
-darwin
-darwyn
-darya
-daryl
-daryle
-daryn
-daryoosh
-daryoush
-das
-dasch
-dasd
-dasha
-dasharat
-dashih
-dasi
-dasie
-dasilva
-dasinger
-dasrath
-dassani
-dassie
-dasya
-dat
-data
-datacent
-datas
-datasupp
-datema
-dates
-datha
-datta
-dattalo
-dau
-daudin
-daugavie
-daughert
-daughtre
-daunais
-daune
-dauphina
-dautenha
-dauteriv
-dav
-davalo
-dave
-daveen
-daven
-daveta
-davey
-david
-david-ye
-davida
-davidde
-davide
-davidh
-davidovi
-davids
-davidson
-davie
-davies
-davin
-davina
-davinci
-davinder
-davine
-davis
-davison
-davita
-davon
-davor
-davy
-dawe
-dawit
-dawkins
-dawn
-dawna
-dawne
-dawson
-daya
-dayal
-dayberry
-dayle
-daymond
-dayna
-dayton
-db
-dba
-dbase
-dbs
-ddavid
-ddene
-ddocdb
-de
-de anda
-de baets
-de beaum
-de belen
-de boer
-de buda
-de cecco
-de chabe
-de cours
-de crist
-de eliza
-de grace
-de hoog
-de la
-de leon
-de los
-de marco
-de marti
-de muinc
-de salis
-de souza
-de toni
-de varen
-de vito
-de vries
-de wiele
-de wilto
-de witt
-de witte
-de-anna
-de-boer
-de-ying
-de_konin
-deacetis
-deadwile
-deagle
-deak
-deakin
-dealmeid
-dealto
-deames
-dean
-deana
-deanda
-deane
-deanm
-deann
-deanna
-deanne
-deans
-deanza
-dear
-dearaujo
-deardurf
-deason
-deathera
-deatrick
-deb
-debadeep
-debasish
-debassig
-debbi
-debbie
-debby
-debee
-debera
-debernar
-debi
-debkumar
-deblois
-debnam
-deboer
-deboor
-debor
-debora
-deborah
-debord
-debortol
-debra
-debrah
-debrun
-debrusk
-debs
-decacque
-decaire
-decapua
-decarie
-decasper
-decca
-decelles
-deciccio
-deck
-decker
-declan
-decleir
-decource
-decourcy
-decoursi
-deczky
-dedas
-dede
-dedie
-dedra
-deduk
-dee
-dee dee
-deeann
-deeanne
-deedee
-deek
-deena
-deep
-deepak
-deerdre
-deere
-deery
-deetta
-deevey
-deeyn
-defacend
-defalco
-defazio
-defilipp
-deford
-deforeit
-defrance
-defranch
-degan
-degen
-degenova
-degraauw
-degrandi
-deguines
-deguire
-dehaan
-dehghan
-dehlia
-dehner
-dehoff
-dehr
-deiadrel
-deibert
-deicher
-deidre
-deikman
-deina
-deininge
-deirdre
-deitera
-deitiker
-dejan
-dejongh
-dekai
-dekeyser
-del
-dela
-delaat
-delage
-delahay
-delainey
-delancey
-delaney
-delangis
-delano
-delargy
-delat
-delbert
-delbret
-delbridg
-delbrouc
-delcina
-delcine
-deleon
-delf
-delfin
-delfreda
-delgass
-delgross
-delia
-deligdis
-delila
-delilah
-delinda
-delisle
-deliva
-dell
-della
-delle
-delli
-dellinge
-delly
-delmar
-delmer
-delmor
-delmore
-delnaz
-delo
-delolmod
-delong
-delora
-delorenz
-delores
-deloria
-deloris
-delorme
-delphine
-delphini
-delroy
-deluca
-deluce
-deluco
-delvecch
-delzer
-demarco
-demarest
-demchuk
-dement
-demeo
-demers
-demet
-demeter
-demetra
-demetre
-demetri
-demetria
-demetric
-demetrio
-demetris
-demetriu
-demeulem
-demi
-demidenk
-demir
-demjen
-demmel
-demone
-demontlu
-demorest
-demorge
-demott
-demps
-dempsey
-dempster
-demren
-demuth
-den
-dena
-dendi
-dene
-denebeim
-deneen
-denemark
-denery
-denest
-denette
-deng
-deng-jyi
-dengjyi
-deni
-denice
-deniece
-denike
-denis
-denise
-denison
-deniz
-denley
-denman
-denmark
-denna
-dennen
-dennet
-denney
-denni
-dennie
-denning
-dennis
-dennison
-denno
-denny
-deno
-denomme
-denoon
-denter
-denton
-denver
-deny
-denys
-denyse
-denzil
-deog
-deok
-deol
-deonne
-depalma
-depeltea
-depew
-dephoure
-deployme
-depooter
-dept
-dept.
-der
-der-chan
-der-shen
-deraadt
-deraaf
-derby
-derbyshi
-derecki
-derek
-derenzo
-derganc
-deri
-derick
-derika
-derin
-derk
-derluen
-dermardi
-dermot
-derome
-derosa
-derose
-derosenr
-derrek
-derrett
-derrick
-derrik
-derril
-derron
-derry
-dersheng
-derward
-derwin
-dery
-deryck
-des
-desai
-desalis
-desantis
-desautel
-desch
-deschamp
-deschiff
-descotea
-descotes
-desdemon
-desgrose
-desharna
-desi
-design
-desilets
-desimone
-desirae
-desire
-desiree
-desiri
-desjardi
-desjarla
-deska
-deslande
-deslauri
-desmarai
-desmond
-desmund
-desoer
-desorbay
-desourdy
-despain
-despault
-despinic
-desplanq
-despres
-desroche
-desrosie
-dessain
-desser
-destech
-destefan
-destry
-detjens
-detlef
-detleff
-detlev
-detloff
-detra
-deugau
-deugo
-deutschm
-dev
-deva
-devadas
-devan
-devarenn
-devault
-deveau
-devel
-developm
-deven
-devenny
-devenyi
-devenyns
-devera
-devere
-devette
-devgon
-devi
-devices
-devin
-devina
-devincen
-devine
-devinne
-devland
-devlen
-devlin
-devon
-devondra
-devonna
-devonne
-devora
-devore
-devouges
-devreeze
-devy
-dew
-dewain
-dewart
-dewayne
-dewey
-dewi
-dewie
-dewit
-dewitt
-dewitte
-dex
-dexiang
-dexter
-deying
-deyirmen
-deyoung
-dezbah
-dezoete
-dg
-dhaliwal
-dhansukh
-dhanvind
-dhar
-dharam
-dharmara
-dharmawa
-dhaussy
-dhawal
-dheeraj
-dhillon
-dhinakar
-dhir
-dhiraj
-dhiren
-dhuga
-dhupar
-di
-di cosol
-di giamb
-di maso
-di millo
-di ninno
-dia-edin
-diaconu
-diahann
-dialout
-diamond
-dian
-diana
-diandra
-diane
-diane-ma
-dianemar
-diann
-dianna
-dianne
-diannne
-diarmid
-dias
-diaz
-dibenede
-dibler
-dicaprio
-dick
-dickard
-dickens
-dickerma
-dickerso
-dickeson
-dickford
-dickie
-dickinso
-dicks
-dicksie
-dickson
-dicky
-didani
-didar
-didi
-didier
-didio-du
-dido
-diduch
-didylows
-diec
-diederic
-diederik
-diedrich
-diee
-diego
-diekman
-diemel
-dien
-diena
-diener
-diep
-diepling
-dierdre
-diersch
-diesing
-dieter
-dietra
-dietrich
-dieu
-dieuwert
-difalco
-diffee
-diffie
-difilipp
-difrance
-digby
-digenova
-digiacom
-digilio
-dignam
-dijaili
-dijian
-diju
-dikaitis
-dikens
-dilallo
-dilan
-dilen
-dilip
-dilkie
-dill
-dillabou
-dillard
-dilley
-dillie
-dillingh
-dillon
-dillow
-dilly
-diloreto
-dilpreet
-dima
-dimarco
-dimarzo
-dimas
-dimetry
-dimillo
-dimitra
-dimitri
-dimitrio
-dimitry
-dimoueri
-dina
-dinaband
-dinah
-dinalic
-dincamps
-dineke
-dinesh
-dinges
-dingle
-dingley
-dingman
-dinh
-dinhtran
-dinkel
-dinker
-dinnervi
-dinneyla
-dinnie
-dinnin
-dinny
-dino
-dinsmore
-dinur
-diogo
-dion
-dione
-dionis
-dionisio
-dionne
-dionysia
-dionysiu
-dionysus
-dipace
-dipak
-dipasqua
-diperna
-dipierro
-dipietro
-dipper
-dirac
-diradmin
-dirbm
-dirck
-diretto
-dirienzo
-dirilten
-dirk
-dis
-disalvo
-discenza
-discours
-discover
-disessa
-disher
-dishong
-disisto
-disney
-dispatch
-dissinge
-distribu
-dita
-ditecco
-ditko
-dittburn
-divyesh
-dix
-dixie
-dixon
-djavaher
-djenana
-djordje
-djuan
-dmaac
-dmitri
-dms
-dmsdb
-dmsrtime
-dmuchals
-dnadoc
-dniren
-dnsproj
-do
-doak
-doan
-dobbing
-dobbins
-dobbs
-dobby
-doble
-dobransk
-dobrosla
-dobry
-doc
-docherty
-dockendo
-doctorjo
-document
-doczy
-doda
-dodd
-dodds
-dode
-dodgson
-dodi
-dodie
-dodier
-dodman
-dodson
-dody
-doe
-doemer
-doerfel
-doerksen
-doernber
-doerr
-doggett
-dohan
-doherty
-doi
-doig
-doing
-dokken
-dokuzogu
-dolan
-dolezal
-dolf
-dolginof
-dolgov
-doliska
-doll
-dolley
-dolli
-dollie
-dolly
-dolores
-dolorita
-dolph
-dolson
-dom
-domains
-domanico
-domas
-dombrosk
-domenic
-domenick
-domenico
-domeniga
-dominado
-domine
-dominga
-domingo
-domingue
-domini
-dominic
-dominica
-dominick
-dominik
-dominiqu
-dommety
-don
-dona
-donaghue
-donahee
-donahue
-donak
-donal
-donald
-donaldso
-donall
-donalt
-donator
-donaugh
-donavon
-doncaste
-doncell
-donegan
-donelan
-donella
-donelle
-donetta
-dong
-dong-ik
-dong-moo
-dong-pyo
-dongik
-dongmoon
-dongpyo
-donia
-donica
-donielle
-donis
-donita
-donkers
-donleyco
-donlon
-donn
-donna
-donnajea
-donnamar
-donne
-donnell
-donnelly
-donner
-donnette
-donni
-donnice
-donnie
-donny
-donoghue
-donohoe
-donohue
-donovan
-dood
-doodeman
-dooley
-doolin
-doolittl
-door
-doortje
-dora
-doraine
-dorais
-doraiswa
-doralia
-doralie
-doralin
-doralyn
-doralynn
-doran
-doray
-dordari
-dorden
-dore
-doreen
-dorelia
-dorella
-dorelle
-dorena
-dorene
-doretta
-dorette
-dorey
-dori
-doria
-dorian
-dorianne
-dorice
-dorie
-dorin
-dorine
-dorion
-dorion-m
-doriot
-doris
-doris-ha
-dorisa
-dorise
-dorit
-dorita
-dormer
-dorn
-dornback
-doro
-dorolice
-dorolisa
-dorotea
-doroteya
-dorothea
-dorothee
-dorothy
-dorotich
-dorr
-dorra
-dorree
-dorreen
-dorrell
-dorri
-dorrie
-dorris
-dorronso
-dorry
-dorsey
-dorthea
-dorthy
-dorval
-dory
-dosanjh
-dosenbac
-doshi
-dosi
-doskas
-dosref
-doss
-dost
-dot
-dotan
-doti
-dotsey
-dotson
-dotti
-dottie
-dottin
-dotty
-doublesi
-doucet
-doucette
-doud
-douet
-doug
-dougall
-doughert
-doughty
-dougie
-douglas
-douglass
-dougy
-dourley
-douville
-dov
-dovel
-dover
-dovydait
-dow
-dowd
-dowding
-dowdy
-dowell
-dower
-dowjones
-dowker
-dowling
-downer
-downes
-downey
-downing
-downs
-dowse
-dowser
-doy
-doyle
-doyon
-dpierre
-dpn
-dpnbuild
-dpnis
-dpnlab
-dpnq&a
-dpp
-dpu
-dr.jones
-dr.seuss
-drabek
-drachman
-draco
-dracula
-draffin
-dragan
-dragana
-dragert
-dragnea
-drago
-draier
-drakage
-drake
-drako
-drane
-dransfie
-draper
-drappel
-draves
-dray
-drayton
-dre
-dreddy
-dredi
-dreisbac
-drenan
-drennan
-drescher
-dresel
-dresser
-dressler
-drew
-drewes
-drexel
-dreyfus
-dreyfuss
-driedger
-drieka
-drinnan
-driscoll
-drissel
-driver
-drjones
-drobnik
-drolet
-dromgool
-drona
-drop-box
-dropin
-droste
-drouin
-drseuss
-dru
-drubld
-druci
-drucie
-drucill
-drucy
-drud
-drudy
-drugi
-drugs
-drumhell
-drumm
-drummer
-drummond
-drusi
-drusie
-drusilla
-drusy
-druzeta
-drwiega
-dryer
-dryfoos
-drynan
-du berge
-du-tuan
-duan
-duane
-dube
-dubeau
-dubee
-dubey
-dubman
-dubois
-dubose
-dubreck
-dubreuil
-dubroff
-dubroy
-dubuc
-duc
-duchaine
-ducharme
-duchesne
-ducic
-dud
-duda
-dudas
-dude
-dudgeon
-dudley
-dueck
-duenas
-duensing
-dueppen
-duer
-duff
-duffie
-duffin
-duffney
-dufford
-duffy
-dufloth
-dufour
-dufresne
-dugal
-dugald
-dugar
-dugas
-duggan
-duguay
-duisman
-duke
-dukes
-dukey
-dukie
-duky
-dula
-dulaney
-dulce
-dulcea
-dulci
-dulcia
-dulciana
-dulcie
-dulcine
-dulcinea
-dulcy
-dulin
-duljit
-dulmage
-dulsea
-dulude
-dumais
-dumas
-dummer
-dumont
-dumouche
-dumps
-dun
-dunajski
-dunbar
-dunc
-duncan
-duncan-s
-dundin
-dunfield
-dung
-dungan
-dunham
-dunik
-dunkelma
-dunker
-dunlap
-dunlay
-dunlop
-dunmore
-dunn
-dunne
-dunnett
-dunning
-dunningh
-dunnion
-dunphy
-dunsmore
-dunson
-dunstan
-duong
-dupaul
-duplacey
-duplan
-dupont
-dupras
-dupre
-dupree
-dupuis
-dupuis-m
-dupuy
-duquette
-dur
-durali
-duran
-durand
-durant
-durantay
-durante
-durham
-durie
-durling
-durnford
-durose
-durousse
-durovic
-durrell
-dursse
-durward
-duryonna
-dusan
-dusko
-dusomos
-duster
-dusty
-dutch
-dutcher
-duthie
-dutil
-dutt
-dutta
-duvarci
-duxbury
-duy
-duyck
-dvm
-dvs
-dwain
-dwaine
-dwayne
-dwight
-dwyer
-dyan
-dyana
-dyane
-dyann
-dyanna
-dyanne
-dyba
-dybenko
-dyck
-dyckman
-dyess
-dyke
-dylan
-dyment
-dyna
-dynah
-dynie
-dyrdahl
-dysart
-dyson
-dziamba
-dziawa
-dziemian
-dzioba
-dzulkarn
-dzung
-eachelle
-eada
-eades
-eadie
-eadith
-eadmund
-eagle
-eagles
-eakes
-eakins
-eal
-ealasaid
-eales
-eamon
-eamonn
-eansor
-earl
-earle
-earlene
-earles
-earley
-earlie
-earline
-early
-earnest
-earnhard
-earnie
-earps
-eartha
-earvin
-easaw
-eason
-easson
-easter
-easterli
-eastick
-eastland
-eastman
-easton
-eastreg
-eastus
-eastwood
-eaton
-eaves
-eb
-eba
-ebara
-ebata
-ebba
-ebbingha
-eben
-ebeneser
-ebenezer
-eberhard
-eberle
-eberlin
-ebert
-eberto
-ebonee
-ebony
-ebrahim
-eby
-echols
-eckardt
-ecker
-eckert
-eckhart
-eckler
-ecklund
-eckstein
-ecocafe
-econ
-ecroyd
-ed
-eda
-edan
-edd
-eddi
-eddie
-eddins
-eddisfor
-eddy
-ede
-edee
-edel
-edeline
-edelman
-eden
-eder
-edey
-edgar
-edgard
-edgardo
-edgette
-edgreen
-edi
-edie
-edif
-edik
-edin
-edison
-edistix
-edita
-edith
-editha
-edithe
-ediva
-edkins
-edlene
-edlin
-edmison
-edmon
-edmond
-edmonds
-edmondso
-edmonton
-edmund
-edmundo
-edmunds
-edmx
-edmxtest
-edna
-edouard
-edric
-edsel
-eduard
-eduardo
-educatio
-eduino
-edvard
-edward
-edwards
-edwige
-edwin
-edwina
-edwins
-edy
-edyta
-edyth
-edythe
-efdal
-effie
-efland
-efrain
-efrem
-efren
-efron
-efstrati
-efthim
-efthimio
-eftychio
-egan
-egashira
-egbert
-egdorf
-egerman
-eggebraa
-eggers
-eggersgl
-eggleton
-egional
-egli
-egne
-egner
-egon
-egor
-ehab
-ehi
-ehlers
-ehninger
-ehrenfri
-ehrenhol
-ehrlich
-ehrlichm
-eicher
-eide
-eierstoc
-eiji
-eike
-eiki
-eiko
-eileen
-eilis
-eimer
-eimile
-einarsso
-einersen
-einstein
-einwohne
-eirena
-eirik
-eisele
-eisen
-eisenach
-eisenber
-eisenhar
-eisler
-eisner
-eisnor
-eiswirth
-eitner
-ekaterin
-ekiert
-el
-el-am
-el-gueba
-el-hawar
-el-torky
-eladio
-elaina
-elaine
-elam
-elana
-elane
-elayne
-elbert
-elberta
-elbertin
-elbeze
-elbi
-elchakie
-elda
-elden
-eldin
-eldon
-eldoris
-eldredge
-eldreth
-eldridge
-eleanor
-eleanora
-eleanore
-elec
-electra
-electric
-electron
-eleen
-elefteri
-elefther
-elena
-elene
-eleni
-elenore
-eleonora
-eleonore
-elery
-eleta
-elex
-eley
-elfie
-elfreda
-elfredia
-elfrida
-elfrieda
-elga
-elgar
-elgie
-elgin
-elhage
-elhamahm
-elhamy
-eli
-elia
-elianora
-elianore
-elias
-elicia
-elie
-eliezer
-elihu
-elijah
-elin
-eline
-elinor
-elinore
-elio
-eliot
-elisa
-elisabet
-elise
-eliseo
-elisha
-elissa
-elita
-eliud
-eliza
-elizabet
-elizalde
-elka
-elkaim
-elke
-elkhayat
-elkind
-elkingto
-elkins
-elks
-ella
-ellacott
-elladine
-ellary
-elle
-elledge
-elleke
-ellement
-ellen
-ellene
-ellens
-eller
-ellerey
-ellerman
-ellery
-ellette
-elli
-ellie
-ellinger
-ellingto
-elliot
-elliott
-ellis
-ellison
-ellissa
-ello
-ellryne
-ellswert
-ellswort
-ellul
-ellwood
-elly
-ellyn
-ellynn
-elmar
-elmer
-elmira
-elmo
-elmore
-elms
-elna
-elnar
-elnora
-elnore
-eloisa
-eloise
-elonore
-elora
-elpida
-elroy
-els
-elsa
-elsbeth
-else
-elset
-elsey
-elsi
-elsie
-elsing
-elsinore
-elson
-elspeth
-elston
-elsworth
-elsy
-elting
-elton
-eluned
-elva
-elvera
-elvert
-elvin
-elvina
-elvira
-elvis
-elvyn
-elwin
-elwira
-elwood
-elwyn
-ely
-elyn
-elyse
-elysee
-elysha
-elysia
-elyssa
-elza
-elzbieta
-elzer
-em
-ema
-emad
-emalee
-emalia
-emami
-emanatia
-emanuel
-emanuele
-emdin-sp
-emelda
-emelen
-emelia
-emelina
-emeline
-emelita
-emelyne
-emer
-emera
-emerick
-emerson
-emery
-emesh
-emhart
-emig
-emil
-emilda
-emile
-emilee
-emili
-emilia
-emilie
-emilien
-emiline
-emilio
-emilios
-emily
-emlen
-emlyn
-emlynn
-emlynne
-emma
-emmalee
-emmaline
-emmalyn
-emmalynn
-emmanuel
-emmeline
-emmell
-emmerich
-emmersto
-emmert
-emmery
-emmet
-emmett
-emmey
-emmi
-emmie
-emmit
-emmons
-emmott
-emmy
-emmye
-emogene
-emond
-emory
-emowilli
-emp
-empdb
-employee
-emr
-emran
-emrick
-emro
-emyle
-emylee
-emysta
-encomend
-endang
-ende
-endenbur
-enderle
-enders
-enderton
-endicott
-endless
-endot
-endrys
-endsley
-enet
-eng
-eng-sion
-engbert
-engel
-engelber
-engelbre
-engelhar
-engin
-engineer
-england
-englande
-engle
-engleber
-englebri
-engleman
-englert
-english
-engman
-engr
-engracia
-engsiong
-engtv
-enid
-enis
-ennis
-enno
-enns
-enoch
-enos
-enrica
-enrichet
-enrico
-enrika
-enrique
-enriquet
-ensign
-ensing
-ensminge
-ensor
-enstone
-entwistl
-enver
-environm
-envoy
-enzo
-eoin
-eolanda
-eolande
-eow
-eperjesy
-ephraim
-ephrayim
-ephrem
-eppensti
-epperson
-eppich
-epplett
-epps
-eprom
-epstein
-epting
-eran
-erasmus
-erastus
-erbach
-erbilgin
-erda
-erdem
-erdinc
-erek
-erena
-erfani
-ergle
-erguven
-erh-huan
-erhard
-erhart
-erhhuan
-eric
-erica
-erich
-ericha
-erichsen
-erick
-ericka
-erickson
-erics
-ericsson
-erie
-erik
-erika
-eriks
-eriksson
-erin
-erina
-erine
-erinn
-erinna
-erkan
-erkel
-erl
-erland
-erle
-erlene
-erler
-erling
-erma
-ermanno
-ermarkar
-ermengar
-ermentru
-ermey
-ermin
-ermina
-erminia
-erminie
-ermo
-erna
-ernaline
-ernest
-ernesta
-ernestin
-ernesto
-ernestus
-ernie
-erning
-ernst
-erny
-eroler
-eros
-errchend
-errick
-errol
-erroll
-ersch
-ersil
-erskine
-ertan
-ertha
-ertl
-erv
-ervi
-ervin
-erwei
-erwin
-erwing
-eryn
-erzsebet
-es
-esam
-esc
-esch
-eschen
-escher
-escherma
-escobedo
-escobido
-escutin
-esdras
-esgate
-esguerra
-eshelman
-eshghi
-esi
-esite
-eskew
-eskiciog
-eskildse
-esko
-eslambol
-esler
-esliger
-esma
-esmail
-esmaili
-esmaria
-esme
-esmerald
-esmond
-esparza
-espenson
-espinosa
-espinoza
-esposito
-espuna
-esra
-esry
-essa
-essam
-esselbac
-esser
-essery
-essie
-essig
-esson
-essy
-esta
-estabroo
-este
-esteban
-estegham
-estel
-estele
-estell
-estella
-estelle
-estep
-ester
-estes
-estevam
-estevan
-estey
-esther
-estrella
-estrelli
-estridge
-eswara
-etan
-etas
-etchieso
-etemad
-eteminan
-ethan
-ethe
-ethel
-ethelber
-ethelda
-ethelin
-ethelind
-etheline
-ethelred
-ethelyn
-ethier
-ethingto
-ethnolog
-ethyl
-etienne
-etoh
-etta
-etten
-etti
-ettie
-ettore
-ettridge
-ettson
-etty
-etu
-etzell
-eu
-eubanks
-euclid
-eudora
-euell
-eugen
-eugene
-eugenia
-eugenie
-eugenio
-eugenius
-eugine
-eula
-eulalie
-euler
-eunchae
-eung
-euni
-eunice
-eunji
-euphemia
-eustace
-eustacia
-eustis
-euy-soo
-euysoo
-euysung
-ev
-eva
-evaleen
-evalyn
-evan
-evandro
-evangeli
-evangelo
-evania
-evanne
-evans
-evanston
-eve
-eveleen
-eveleigh
-evelien
-evelin
-evelina
-eveline
-evely
-evelyn
-evelyne
-even
-evenson
-events
-everard
-evered
-everett
-everette
-everitt
-evers
-evert
-evette
-evey
-evia
-evie
-evin
-evita
-evon
-evona
-evonne
-evraire
-evren
-evvie
-evvy
-evy
-evyn
-ewald
-ewan
-ewanchyn
-eward
-ewart
-ewasyshy
-ewell
-ewen
-ewing
-exner
-ext
-eyde
-eydie
-eyers
-eyk
-ezechiel
-ezekiel
-ezella
-ezequiel
-eziechie
-ezmerald
-ezra
-ezri
-ezzat
-fab
-fabe
-fabella
-faber
-fabian
-fabiano
-fabien
-fabienne
-fabijani
-fabio
-fabris
-fabrizio
-fabry
-facchett
-facility
-fadel
-fadhel
-fadi
-fadj
-fadlalla
-fady
-fadzilah
-fae
-faez
-fafa
-fafara
-fagan
-fagg
-fagin
-fahey
-fahim
-fahrenth
-fahy
-fai
-faina
-fainaru
-fainecos
-faiq
-fair
-fairclou
-fairfax
-fairfiel
-fairleig
-fairless
-fairlie
-fairman
-fairy
-faisal
-faison
-fait
-faith
-faiz
-faizal
-fajardo
-falaki
-falardea
-falbee
-falcao
-falconer
-faletti
-faley
-falicov
-falito
-falke
-falkenst
-falkner
-fallah
-fallahi
-falletti
-fallis
-fallon
-fallows
-falquero
-falt
-faltens
-fambroug
-familiad
-famke
-fan
-fanchett
-fanchi
-fanchon
-fancie
-fancy
-fanechka
-fang
-fangio
-fani
-fania
-fann
-fanner
-fanni
-fannie
-fanny
-fansher
-fantauzz
-fanthome
-fanty
-fanus
-fanya
-faou
-far
-fara
-faraday
-farag
-farago
-farah
-farahvas
-faramarz
-farand
-farant
-fares
-fargis
-fargo
-farhad
-farhan
-farhang
-farhat
-farias
-fariba
-fariborz
-farica
-farid
-faris
-farlay
-farlee
-farleigh
-farley
-farlie
-farly
-farmer
-farn
-farnham
-farnjeng
-farnswor
-farnum
-farokh
-farooa
-farooq
-farouk
-farquhar
-farr
-farra
-farrah
-farrand
-farranto
-farrel
-farrell
-farren
-farringt
-farris
-farrokh
-farronat
-farrow
-farrukh
-farshid
-faruk
-faruque
-farzad
-farzin
-fasken
-fast
-fastfeat
-fastmer
-fastone
-fastowl
-fastpack
-fataneh
-fater
-fatholla
-fatica
-fatima
-fattarus
-fattouh
-faubert
-faucette
-faucher
-faulhabe
-faulkner
-faun
-faunie
-faust
-faustina
-faustine
-fausto
-faustus
-favell
-favreau
-favrot
-fawaz
-fawcett
-fawn
-fawne
-fawnia
-fax
-fay
-fayanne
-faydra
-faye
-fayette
-fayez
-fayina
-fayma
-fayre
-fayth
-faythe
-faz
-fazel
-fearless
-featherm
-feddeman
-fedderse
-feder
-federica
-federico
-federiko
-fedora
-fedoruk
-fedyk
-fee
-feeley
-feeney
-fehr
-fei
-fei-wen
-fei-yin
-feil
-feild
-feisal
-feist
-feitel
-feith
-feiwen
-fekade
-fekri
-felczak
-feld
-feldberg
-felder
-feldman
-felecia
-felfli
-felic
-felicdad
-felice
-felicett
-felicia
-felicio
-felicity
-felicle
-felike
-feliks
-felipa
-felipe
-felisha
-felita
-felix
-feliza
-felizio
-felli
-fellman
-felske
-feltman
-felton
-femke
-fenati
-fender
-fenelia
-fenez
-feng
-fenlason
-fenn
-fennell
-fenner
-fennesse
-fenton
-fenwick
-feodor
-feodora
-fequiere
-ferba
-ferd
-ferdie
-ferdinan
-ferdy
-feregyha
-fereidoo
-ferelith
-ferenc
-ference
-ferenz
-fererro
-fergus
-ferguson
-fergusso
-feridoun
-ferland
-fermat
-fermi
-fermoyle
-fern
-fernald
-fernan
-fernand
-fernanda
-fernande
-fernandi
-fernando
-ferne
-ferner
-ferrao
-ferrara
-ferraro
-ferree
-ferreira
-ferrel
-ferrell
-ferrer
-ferrero
-ferriera
-ferrin
-ferris
-ferriss
-ferro
-ferruzzi
-ferstl
-fetterma
-fetting
-fetzko
-feutlins
-fevre-re
-fey
-feyen
-feynman
-fi-john
-fiann
-fianna
-fiaz
-ficco
-ficici
-ficken
-ficker
-fickes
-fidel
-fidela
-fidelia
-fidelio
-fidelity
-fidole
-fiegel
-fieke
-field
-fielden
-fielding
-fields
-fieldsup
-fierthal
-fiest
-fifi
-fifield
-fifine
-figura
-fijohn
-fikis
-fikre
-fil
-filbert
-filberte
-filberto
-fildey
-filer
-files
-files ar
-filia
-filibert
-filide
-filion
-filip
-filippa
-filippi
-filippo
-filis
-filkins
-fillmore
-filmer
-filmore
-filpus
-filson
-fima
-fin
-fina
-finak
-finance
-finane
-finckler
-findlay
-findley
-finkhels
-finlay
-finlayso
-finley
-finn
-finnegan
-finnerty
-finney
-finnie
-finnigha
-finnon
-fintan
-finucane
-finzel
-fiona
-fionan
-fionna
-fionnula
-fiore
-fiorenze
-fiorile
-firas
-firat
-firdaus
-firerobi
-firment
-firtos
-fischer
-fischett
-fischler
-fiset
-fisette
-fishenco
-fisher
-fishkin
-fishman
-fisico
-fisopn
-fisprod
-fiszman
-fitch
-fiteny
-fitness
-fitz
-fitzgera
-fitzgibb
-fitzpatr
-fitzroy
-fitzsimm
-fixsen
-flach
-flagg
-flaherty
-flanagan
-flanders
-flann
-flanner
-flansbur
-flatley
-fleet
-fleig
-fleische
-fleishma
-flem
-fleming
-flemming
-fleskes
-fletch
-fletcher
-fleuchau
-fleugel
-fleur
-fleurett
-fleurima
-fleury
-flewelli
-flexo
-flicking
-flin
-flindall
-flinn
-flint
-flintall
-flo
-floch
-flook
-flookes
-flor
-flora
-florance
-florante
-flore
-florella
-florence
-florenci
-florenti
-florenza
-flores
-florescu
-florette
-florez
-flori
-floria
-florian
-florida
-florie
-florina
-florinda
-florine
-floris
-florjanc
-florri
-florrie
-florry
-flory
-flossi
-flossie
-flossy
-flounder
-flowers
-floyd
-floysvik
-flss
-fludgate
-flueckin
-fluet
-fluney
-flury
-fluty
-flying
-flynn
-foad
-fobert
-focht
-focsanea
-focus
-fodell
-foderaro
-foeppel
-foessl
-foest
-fogelson
-foght
-fogle
-fogleman
-fok
-folashad
-foldes
-foley
-follett
-follick
-follmer
-folwell
-fon
-fondacar
-fong
-fonnie
-fons
-fonsie
-fontaine
-fontana
-fontanil
-fontanin
-fony
-fonz
-fonzie
-foods
-foong
-foos
-forbes
-forbrich
-forbs
-ford
-forden
-fordham
-forecast
-foreman
-forese
-forest
-forester
-forgeron
-forghani
-forgues
-forland
-formagie
-forno
-forouhar
-forrest
-forreste
-forrette
-forslund
-forst
-forster
-forsythe
-fortes
-fortier
-fortman
-fortner
-foss
-foster
-fothergi
-fotini
-fouad
-foubert
-foucault
-fouchard
-fougere
-fouillar
-fouke
-fouletie
-foulkes
-four
-fouret
-fourier
-fourkas
-fournel
-fourney
-fournier
-fouts
-fowler
-fowler-h
-fowles
-fowlkes
-fowlston
-fox
-foxworth
-fpsched
-fqa
-fraanky
-fradette
-fragnito
-fraley
-fralick
-fralix
-frampton
-fran
-franc
-france
-francene
-frances
-francesc
-francese
-franchot
-francic
-francine
-francis
-francisc
-francisk
-francisp
-franckli
-franckly
-francky
-franco
-francoeu
-francois
-francyne
-frangoul
-franics
-frank
-franka
-frankcom
-frankenb
-franki
-frankie
-frankle
-franklin
-franklyn
-frankos
-franks
-franky
-franni
-frannie
-franny
-frans
-fransis
-fransisc
-frantise
-frants
-frantz
-franz
-franza
-franze
-franzen
-franzky
-franzwa
-frape
-frasco
-fraser
-frasier
-frasquit
-fraties
-frayda
-fraze
-frazer
-frazier
-fred
-freda
-freddi
-freddie
-freddy
-fredek
-fredelia
-fredenbu
-frederic
-frederig
-frederik
-frederiq
-fredette
-fredi
-fredia
-fredimos
-fredine
-fredra
-fredric
-fredrick
-fredrika
-fredriks
-free
-freeburn
-freedman
-freek
-freeland
-freeley
-freeman
-freemand
-freemon
-freeth
-freiberg
-freida
-freimark
-freire
-freiwald
-freixe
-freksa
-fremont
-french
-frendo
-frenette
-freno
-fretz
-freud
-frey
-freya
-freyermu
-freyler
-frezzo
-fricker
-fricks
-fridel
-frie
-frieda
-friedber
-frieder
-friederi
-friedl
-friedlan
-friedman
-friedric
-frierson
-friesen
-frinel
-frink
-frisa
-frischkn
-frischli
-frisk
-friton
-fritz
-fritzie
-frizado
-frobel
-froberg
-frobishe
-frodsham
-froehlic
-froncek
-frondozo
-fronsee_
-fross
-frosst
-froud
-froukje
-frucci
-fruehauf
-frumerie
-fruscia
-fryar
-frydach
-frydman
-fryer
-fscocos
-fssup
-ftpsites
-fu
-fu-sheng
-fu-shin
-fu-zong
-fuchs
-fucito
-fugen
-fujii
-fujimaki
-fujimoto
-fujiwara
-fukui
-fukumoto
-fukunaga
-fulford
-fulk
-fulkerso
-fullager
-fuller
-fullmer
-fullum
-fulmer
-fulton
-fulvia
-fumerton
-fumio
-funamoto
-funderbu
-fung
-funston
-fuping
-fuqua
-furdoonj
-furgerso
-furlin
-furlow
-furmania
-furnas
-furrukh
-furst
-furuta
-fusca
-fusheng
-fuson
-fussell
-fuzal
-fuzong
-fwp
-fwpas
-fwpco
-fwpreg
-fwptools
-fyfe
-fysh
-fyske
-gaal
-gabato
-gabbai
-gabbard
-gabbey
-gabbi
-gabbie
-gabby
-gabe
-gabey
-gabi
-gabie
-gaboury
-gabriel
-gabriela
-gabriele
-gabriell
-gabrila
-gaby
-gach
-gaconnie
-gadbois
-gadher
-gadouchi
-gadsby
-gadzinow
-gae
-gaebel
-gael
-gaelan
-gaertner
-gaetan
-gaetanin
-gaetano
-gaffney
-gafford
-gaftea
-gagan
-gage
-gagne
-gagnier
-gagnon
-gahan
-gahir
-gahlot
-gahn
-gahr
-gahunia
-gaiarsa
-gaiger
-gail
-gaile
-gailya
-gaime
-gainer
-gaines
-gaiotti
-gaiser
-gaitan
-gaither
-gajendra
-gajewski
-gajowiak
-gal
-galanaki
-galasso
-galbrait
-galdwin
-gale
-gale
-galen
-galewski
-galina
-galipeau
-gallaghe
-gallais
-gallard
-gallegos
-gallenbe
-galligan
-gallinge
-gallion
-gallman
-gallo
-gallops
-gallouzi
-galloway
-galluzzi
-galois
-galt
-galvan
-galven
-galvez
-galvin
-gama
-gamal
-gamaleld
-gamaliel
-gamarnik
-gambrell
-gamelin
-gammage
-gamsa
-gan
-ganadry
-ganapath
-gandhi
-gane
-ganesan
-ganesh
-ganeshku
-gangnes
-gangotra
-ganguly
-gani
-gann
-ganness
-gannett
-gannie
-gannon
-gannot
-ganny
-gans
-gant
-gantt
-gapp
-gar
-gara
-garald
-garamvol
-garan
-garand
-garay
-garbis
-garbish
-garcia
-garcia-l
-garcia-m
-gard
-gardener
-gardie
-gardiner
-gardner
-gardy
-gare
-garee
-gareis
-garek
-gareth
-garey
-garfield
-garg
-garguilo
-gargul
-gargulak
-garik
-garinger
-garito
-garland
-garmon
-garneau
-garner
-garnet
-garnett
-garnette
-garney
-garo
-garold
-garp
-garrard
-garrek
-garret
-garreth
-garrett
-garrick
-garrik
-garrot
-garrott
-garry
-garth
-gartley
-gartshor
-garv
-garvey
-garvin
-garvy
-garwin
-garwood
-gary
-gascho
-gascon
-gasikows
-gaskins
-gaspar
-gaspard
-gasparo
-gasparot
-gasper
-gass
-gast
-gaston
-gasul
-gateau
-gateley
-gater
-gates
-gateway
-gatka
-gattrell
-gau-rong
-gaube
-gaudet
-gaudet-m
-gaudon
-gaudreau
-gaughan
-gaul
-gaulle
-gault
-gaultier
-gaunsezl
-gaurong
-gause
-gauss
-gautam
-gauthier
-gav
-gavan
-gaven
-gavens
-gavidia
-gavilluc
-gavin
-gavra
-gavriel
-gavriell
-gawain
-gawargy
-gawdan
-gawen
-gawronsk
-gawtrey
-gay
-gaye
-gayel
-gayelord
-gayl
-gayla
-gayle
-gayleen
-gaylene
-gayler
-gaylor
-gaylord
-gayman
-gaynor
-gayronza
-gazala
-gazier
-gazo
-gdowik
-ge
-geadah
-gean
-gearalt
-gearard
-geary
-gebhardt
-gebhart
-gebrael
-gedas
-geddes
-gedeon
-gedman
-gedra
-gedye
-gee
-gee-meng
-geer
-geert
-geesman
-geeta
-geetha
-geety
-gehm
-gehr
-gehring
-geiger
-geir
-geisler
-geksong
-gelais
-geldrez
-gelinas
-gell
-geller
-gelling
-gelo
-gelya
-gemmill
-gen
-gena
-genae
-gendre
-gendron
-gene
-geneau
-general
-generalc
-generato
-genet
-geneva
-geneviev
-genevra
-genga
-genge
-genia
-genie
-genna
-gennaro
-genni
-gennie
-gennifer
-genny
-geno
-genova
-genovera
-genovise
-genowefa
-gentes
-gentzler
-genvieve
-geoff
-geoffrey
-geoffrio
-geoffry
-georas
-geordie
-georg
-georgann
-george
-georgean
-georgena
-georges
-georgesc
-georgeta
-georgett
-georghio
-georgi
-georgia
-georgian
-georgie
-georgina
-georgine
-georgio
-georgiou
-georgy
-ger
-gera
-gerald
-geralda
-geraldin
-geralene
-gerard
-gerardja
-gerardo
-gerassim
-gerbec
-gerben
-gerber
-gerda
-gerek
-gerenser
-gergen
-gerhard
-gerhardi
-gerhardt
-gerhart
-geri
-gerianna
-gerianne
-gerick
-gerik
-gerladin
-gerlich
-gerlinsk
-gerlt
-germ
-germain
-germaine
-germana
-germano
-germayne
-germe
-gernot
-gerome
-gerrard
-gerri
-gerrie
-gerrilee
-gerrit
-gerritse
-gerry
-gershwin
-gerstmar
-gert
-gerta
-gerth
-gerti
-gertie
-gertridg
-gertrud
-gertruda
-gertrude
-gertrudi
-gerty
-gervais
-gervaise
-gery
-gerynowi
-gesine
-gesino
-gessford
-getchell
-getoor
-gettys
-geuder
-gewell
-geyer
-geza
-ghadisha
-ghaemi
-ghaemian
-ghaffari
-ghandi
-ghanem
-ghangurd
-ghani
-ghantous
-ghartey
-ghasemia
-ghassan
-ghassem
-ghatta
-ghazi
-gheciu
-ghelardu
-gheorghe
-gherardo
-ghidali
-ghislain
-ghobad
-gholamre
-ghorashy
-ghosh
-ghossein
-ghulam
-ghulati
-gia
-giacinta
-giacobo
-giacomo
-giacopo
-giallo
-giamatte
-giambatt
-giambera
-giampaol
-gian
-giana
-giandome
-giang
-giani
-gianina
-gianna
-gianni
-giao
-giap
-giarritt
-giavani
-gib
-gibb
-gibbie
-gibbins
-gibbons
-gibbs
-gibby
-gibeault
-giblin
-gibson
-gidaro
-gideon
-gidget
-gie-ming
-giekes
-gieming
-gierka
-giertych
-giesbrec
-gieschen
-giese
-giff
-giffard
-giffer
-giffie
-gifford
-giffy
-giggey
-gigi
-giguere
-gigus
-gihan
-gihyun
-gil
-gilbert
-gilberta
-gilberte
-gilberti
-gilberto
-gilberts
-gilburt
-gilchris
-gilda
-gilemett
-giles
-giliham
-gill
-gillan
-gillard
-gille
-gillelan
-gilles
-gillespi
-gillespy
-gillet
-gillette
-gilli
-gilliam
-gillian
-gilliard
-gillie
-gillies
-gillig
-gilligan
-gillilan
-gillis
-gillon
-gillot
-gillstro
-gilly
-gilmore
-gilmour
-gilstorf
-gimon
-gin
-gina
-ginelle
-ginest
-ginette
-ginetto
-ginevra
-ginger
-gingeric
-gingold
-gingras
-gingrich
-gini
-ginn
-ginni
-ginnie
-ginnifer
-ginny
-gino
-ginsberg
-gint
-gintaras
-ginzburg
-gio
-gioffre
-gionet
-giordano
-giorgi
-giorgia
-giorgio
-giorgos
-giotis
-giovanna
-giovanni
-giovinaz
-gipsy
-giralda
-giraldo
-girard
-giraud
-girgis
-giri
-giridhar
-girish
-girotti
-girouard
-giroux
-girvan
-gisbert
-gisela
-giselber
-gisele
-gisella
-giselle
-gita
-gittins
-giuditta
-giuhat
-giulia
-giuliani
-giuliett
-giulio
-giuntini
-giuseppe
-giustina
-giustino
-giusto
-gize
-gizela
-glad
-gladi
-gladstei
-gladys
-glancey
-glanfiel
-glaros
-glasa
-glaser
-glasgow
-glass
-glasser
-glast
-glaszcza
-glazer
-gleason
-gleda
-gleditsc
-glembosk
-glen
-glenda
-glenden
-glendon
-glenine
-glenn
-glenna
-glennie
-glennis
-glew
-glickman
-glidewel
-glinka
-glinski
-glofches
-glori
-gloria
-gloriana
-gloriane
-glornia
-glory
-glover
-glowa
-glucksma
-glymph
-glyn
-glynda
-glynis
-glynn
-glynnis
-gnaeding
-gnni
-go
-goangshi
-goatcher
-goba
-gobeil
-gobeli
-goble
-gockel
-godard
-godart
-godcharl
-goddard
-goddart
-godden
-goddette
-godfree
-godfrey
-godfry
-godin
-godina
-godish
-godiva
-godley
-godlingt
-godo
-godowsky
-godse
-godsoe
-godwin
-goei
-goel
-goell
-goeltzen
-goerss
-goertz
-goertzen
-goethe
-goetz
-goff
-gofron
-goggin
-goh
-goheen
-goin
-goins
-gokal
-gokul
-gokul-ch
-golari
-golas
-golaszew
-golczews
-golda
-goldarin
-goldberg
-goldenbe
-goldenso
-golder
-goldfiel
-goldi
-goldia
-goldie
-goldina
-goldman
-goldmann
-goldner
-goldschm
-goldstei
-goldthor
-goldwyn
-goldy
-golia
-goliss
-golka
-goller
-gollu
-golshan
-gombos
-gomes
-gomez
-gomm
-gong-lia
-gonglian
-goniotak
-gonsalve
-gonzaga
-gonzales
-gonzalez
-gonzalo
-goober
-gooch
-goodbar
-goode
-gooderha
-goodfell
-goodier
-goodinso
-goodman
-goodner
-goodridg
-goodrow
-goodson
-goodwin
-goofy
-goold
-gooley
-goos
-gopal
-gopaul
-gope
-gopisett
-goran
-gorasia
-goraud
-gorberg
-gord
-gordan
-gorde
-gorden
-gordie
-gording
-gordon
-gordy
-gorenflo
-gores
-gorfine
-gorham
-gorhum
-goricane
-goridkov
-goring
-gorius
-gorlick
-gorman
-gorsky
-gorton
-gorzocos
-goska
-goss
-gosselin
-gosset
-gostania
-goswick
-goszczyn
-gotch
-gotchall
-goth
-gothard
-gothart
-gottfrie
-gottlieb
-gottscha
-gottstei
-gou-don
-goudon
-goudreau
-gougeon
-gough
-gouhara
-goukon
-gould
-gouldson
-goulet
-goulette
-goulfine
-goupil
-gourley
-goutam
-govind
-govindan
-govindar
-govindas
-gow-jen
-gowan
-gowda
-gowens
-gower
-gowin
-gowjen
-gowl
-gowland
-goyal
-goyer
-goyette
-goza
-gozani
-gozen
-grabner
-grabowsk
-grace
-gracen
-gracey
-gracia
-gracie
-graciela
-gracinda
-gracomda
-gradeigh
-grader
-gradey
-grading
-grads
-grady
-graehme
-graeme
-graessle
-graff
-grafton
-graham
-graibe
-graig
-grainger
-gram
-graman
-grame
-gramiak
-gran
-granado
-granata
-grandboi
-grande
-grandmas
-grandump
-grandy
-granfiel
-grange
-granger
-granic
-granner
-grannie
-granny
-grant
-grantham
-granthem
-grantley
-granvill
-graphics
-grasman
-grason
-grassman
-grata
-gratia
-gratiana
-gratton
-grau
-grauer
-grausso
-gravelle
-gravely
-graver
-graves
-gravitt
-gravitte
-grawberg
-gray
-graybill
-grayce
-graydon
-grayson
-grazia
-graziano
-grazzini
-greaney
-greatest
-greaver
-greaves
-grebil
-grebner
-greco
-greeley
-greenber
-greene
-greenfie
-greenlee
-greenstr
-greenway
-greer
-greet
-greg
-gregaric
-greger
-gregg
-gregge
-greggory
-grego
-gregoire
-gregoor
-gregor
-gregor-p
-gregorio
-gregoriu
-gregorsk
-gregory
-grelck
-grenier
-grenon
-grenvill
-greszczu
-gret
-greta
-gretal
-gretchen
-grete
-gretel
-grethel
-gretna
-gretta
-grevelin
-grevy
-grewal
-grey
-greytock
-gribbon
-gribbons
-grier
-griet
-grietje
-griff
-griffie
-griffin
-griffioe
-griffith
-griffy
-grigg
-griggs
-grignon
-grigsby
-grillmey
-grills
-grimble
-grimes
-grimm
-grimmell
-grimshaw
-grimsley
-griner
-grinham
-grinnell
-gris
-griselda
-grisoni
-grissel
-grissom
-griswold
-gritton
-grixti
-griz
-groce
-grochau
-grodecki
-groetsem
-groff
-grogan
-grohovsk
-groleau
-grona
-grondin
-gronwall
-grooms
-grootenb
-gros
-grosh
-grosjean
-grosman
-grosse
-grossman
-grossutt
-groth
-groulx
-grove
-grover
-groves
-grovesti
-growden
-growler
-gruau
-grubbs
-gruber
-grueneic
-grueng
-gruenhag
-grund
-gruska
-gruszczy
-gryder
-grzegore
-grzegorz
-grzesik
-gsite
-gu
-guajardo
-gualteri
-guan
-guanglia
-guangyou
-guanyun
-guarez
-guarino
-guarnera
-guatto
-guay
-gubbins
-gubenco
-gucer
-guciz
-gudgeon
-gudrun
-guendole
-guenette
-guenever
-guenna
-guenther
-guercion
-guerette
-guerin
-guerrero
-guerrier
-guertin
-guests
-guevara
-guglielm
-gui
-guido
-guignon
-guilbaul
-guilbert
-guilford
-guilfoyl
-guillaum
-guillema
-guilleme
-guillerm
-guillet
-guillory
-guilmett
-guimond
-guin
-guindi
-guindon
-guinever
-guinn
-guinna
-guinnane
-guiqing
-guirguis
-guisler
-guitard
-guitaris
-gulbrand
-gulick
-gulis
-gulko
-gullekso
-gultekin
-gulvin
-gumb
-gumbley
-gummadi
-gumperz
-gun
-gunadhi
-gunar
-gunars
-gunaseke
-gunawan
-gundecha
-gunderse
-gunderso
-gundes
-gundlach
-gundry
-guner
-gunfer
-gung
-gungor
-gunilla
-gunkel
-gunn
-gunnar
-gunnells
-gunner
-gunshor
-guntar
-guntekin
-gunter
-gunther
-guntvedt
-guo
-guo-jie
-guo-qian
-guoben
-guochun
-guojie
-guoming
-gupta
-gupton
-gur-arie
-gurash
-gurchara
-gurdip
-gure
-gurer
-gurevitc
-gurgenci
-gurica
-gurjinde
-gurjit
-gurley
-gurmeet
-gurnam
-gurney
-gursahan
-gurshara
-gursin
-gurvinde
-gus
-gusella
-guss
-gussi
-gussie
-gussy
-gusta
-gustaf
-gustafso
-gustafss
-gustav
-gustave
-gustavo
-gustavus
-gusti
-gustie
-gustlin
-gusty
-gutcher
-gutermut
-guth
-guthrey
-guthrie
-guthro
-guthry
-gutierre
-guttman
-guty
-gutzmann
-guy
-guy-arbo
-guylain
-guylaine
-guyot
-guzman
-gwen
-gwenda
-gwendole
-gwendoli
-gwendoly
-gweneth
-gwenette
-gwenneth
-gwenni
-gwennie
-gwenny
-gwennyth
-gwenora
-gwenore
-gwo-chun
-gwo-hsin
-gwochung
-gwohsing
-gwyn
-gwyneth
-gwynith
-gwynne
-gyenes
-gyeongbe
-gyger
-gylys
-gyoung
-gypsy
-gysel
-gyula
-gyurcsak
-gyurcsik
-gzl
-ha
-haack
-haaksman
-haas
-habeeb
-habel
-habelrih
-haber
-haberman
-habert
-habib
-hachador
-hache
-hachelle
-hachey
-hack-hoo
-hacker
-hackett
-hacking
-had
-hadaway
-haddad
-hadden
-haddow
-hadel
-hadi
-hadiraha
-hadlee
-hadleigh
-hadley
-hadria
-hadrian
-hady
-hadziome
-hae-won
-haerle
-haertel
-haether
-haewon
-hafedh
-hafeezah
-hafermal
-hafiz
-hafleigh
-hagan
-hagar
-hage
-hagen
-hagenbuc
-hager
-hagerty
-hagewood
-haggar
-haggart
-haggarty
-haggerty
-hagglund
-haghighi
-hagley
-hagstrom
-hagwood
-hahn
-hai
-hai-ning
-hai-ping
-hai-shun
-haibo
-haifang
-haig
-haigh
-hailee
-hailes
-hailey
-haily
-haim
-haimson
-hainer
-haines
-haining
-hainline
-haiping
-haire
-hairil
-haishung
-hak-lay
-hakala
-hakan
-hakansso
-hakeem
-hakim
-haklay
-hal
-hala
-halbedel
-halbert
-hale
-haleigh
-halejak
-halet
-halette
-haley
-half
-halford
-hali
-halicki
-halie
-halimeda
-halina
-hall
-hallamas
-hallenbe
-haller
-hallett
-halley
-halli
-hallie
-halligan
-halliwil
-hallman
-hallsy
-hally
-halovani
-halpenny
-halpern
-halpin
-halsey
-halstead
-halsy
-haluk
-halula
-ham
-hamachi
-hamavand
-hambali
-hambone
-hamdy
-hameed
-hamel
-hamelin
-hamid
-hamidi
-hamil
-hamilton
-hamish
-hamlen
-hamlett
-hamlin
-hamliton
-hammad
-hammel
-hammerli
-hammerme
-hammond
-hammonds
-hamner
-hamnet
-hamori
-hamoui
-hampel
-hampshir
-hampson
-hampton
-hamra
-hamsa
-hamzeh
-han
-han-chie
-han-co
-han-fei
-han-tak
-han-van
-hana
-hanan
-hanchieh
-hanco
-hancock
-handel
-handfort
-handley
-handoko
-handschy
-hane
-hanel
-haney
-hanfei
-hanford
-hang-ton
-hangbok
-hanger
-hangup
-hanh
-hanham
-hanhb
-hanhua
-hani
-haningto
-hanja
-hank
-hankins
-hanlan
-hanley
-hann
-hanna
-hannah
-hanneke
-hanneman
-hanni
-hannibal
-hannible
-hannie
-hannis
-hanns
-hannula
-hanny
-hanrahan
-hans
-hans-pet
-hansen
-hanser
-hansiain
-hanson
-hanspete
-hansquin
-hansraj
-hansson
-hantak
-hanzel
-hanzlice
-hao
-hao-nhie
-hao-yung
-haonhien
-haoyung
-happy
-harabedi
-harada
-haralamb
-harald
-harapiak
-harbert
-harbord
-harbottl
-harbour
-harcourt
-hardage
-hardcast
-hardee
-harderse
-hardi
-hardiman
-hardin
-harding
-hardison
-hardman
-hardwick
-hardy
-hardyal
-hardyck
-hardyman
-haren
-hareton
-hargadon
-hargreav
-hargrove
-hargrow
-hari
-harianto
-harihara
-hariman
-harinder
-harish
-harishan
-harker
-harkness
-harlan
-harland
-harlen
-harlene
-harles
-harless
-harley
-harli
-harlie
-harlin
-harm
-harman
-harmeet
-harmi
-harmon
-harmonia
-harmonie
-harmony
-harms
-harn
-harold
-haroon
-harootun
-haroun
-haroutou
-harp
-harpal
-harpe
-harper
-harpreet
-harrawoo
-harrell
-harri
-harrie
-harriet
-harriett
-harringt
-harriot
-harriott
-harris
-harrison
-harrod
-harron
-harry
-harsch
-harshad
-harsham
-harshava
-harshfie
-hart
-harte
-hartell
-harter
-hartford
-hartgrov
-hartin
-hartkopf
-hartland
-hartleb
-hartley
-hartling
-hartman
-hartmann
-hartmut
-hartney
-hartsell
-hartwell
-harty
-hartzel
-haruko
-harv
-harvard
-harvey
-harville
-harvison
-harwell
-harwerth
-harwilll
-harwood
-hasan
-hasbrouc
-hasegawa
-hasen
-hasham
-hasheem
-hashem
-hashemi
-hashim
-hashimot
-haskel
-haskell
-haskins
-haslach
-hasler
-haslett
-hasmukhb
-hasnain
-hassan
-hassenkl
-hassey
-hassnzah
-hassold
-haste
-hasted
-hastic
-hastie
-hastings
-hasty
-hata
-hatcher
-hatchett
-hately
-hatfield
-hathaway
-hatridge
-hattar
-hatten
-hatti
-hattie
-hattingh
-hatty
-hatz
-hatzenbi
-hau
-haubert
-hauck
-hauersto
-haufe
-hauge
-haughey
-haughwou
-haugrud
-haupt
-haurie
-hause
-hauser
-hautanen
-havelock
-haveman
-haven
-haverkam
-haverty
-havis
-hawes
-hawi
-hawk
-hawken
-hawker
-hawkes
-hawkin
-hawkins
-hawley
-hawryluk
-hawrysh
-hawryszk
-hawthorn
-hayden
-haydock
-haydon
-haydt
-hayes
-hayley
-haylock
-hayman
-haynes
-haynor
-hayward
-haywood
-hayyim
-haze
-hazel
-hazeldin
-hazell
-hazelrig
-hazelton
-hazem
-hazen
-hazenboo
-hazlett
-hdbright
-hdi
-he
-heald
-healey
-heall
-health-s
-healy
-heaney
-hearn
-hearnden
-hearst
-heath
-heather
-heaton
-hebbar
-hebe
-hebert
-heckbert
-heckman
-hector
-heda
-hedda
-heddell
-heddi
-heddie
-heddy
-hedi
-hedin
-hedke
-hedman
-hedrich
-hedrick
-hedvig
-hedvige
-hedwig
-hedwiga
-hedy
-hee
-heeralal
-heeten
-hefferna
-heffner
-hegarty
-hegelian
-hehn-sch
-heida
-heide
-heidebre
-heidepri
-heidi
-heidie
-heighton
-heike
-heikkila
-heile
-heilig
-heiliger
-heilsnis
-hein
-heindric
-heinen
-heinjus
-heinke
-heino
-heinonen
-heinrich
-heinrick
-heinrik
-heinz
-heinzing
-heinzman
-heisler
-heitmann
-hekel
-heki
-helaina
-helaine
-heldenbr
-heleen
-helem
-helen
-helen-el
-helena
-helene
-heleneli
-helenka
-helfrick
-helga
-helge
-helgelan
-helio
-helkaa
-hella
-hellberg
-hellen
-heller
-hellerst
-helli
-hellmut
-helluva
-hellyer
-helma
-helms
-helmut
-helmuth
-helmy
-heloise
-helpb
-helpline
-helsa
-helseth
-helstab
-helton
-helwege
-helyn
-hemant
-hembrick
-hemens-d
-hemme
-hemmerle
-hemphill
-hempinst
-hempstea
-henao
-hench
-henderso
-hendra
-hendren
-hendrick
-hendrik
-hendrika
-hendriks
-hendry
-hendryck
-hendy
-henein
-heng
-hengameh
-hengda
-hengevel
-hengl
-hengst
-henk
-henk smi
-henka
-henley
-henline
-henneber
-hennebur
-hennelly
-hennessy
-hennie
-henninge
-hennon
-hennriet
-henny
-henri
-henrie
-henrieta
-henriett
-henrik
-henrika
-henrikse
-henry
-henryett
-hensen
-henshaw
-hensley
-henson
-henstock
-henthorn
-hepburn
-hephziba
-heping
-heppell
-heppes
-hera
-herak
-herb
-herbel
-herberge
-herbers
-herbert
-herbie
-herby
-herc
-hercule
-hercules
-herculie
-here's t
-heredia
-heribert
-hering
-herlihy
-herling
-herm
-hermack
-herman
-hermann
-hermann-
-hermanns
-hermes
-hermia
-hermie
-hermien
-hermina
-hermine
-herminia
-hermione
-hermon
-hermy
-hernan
-hernande
-hernando
-herndon
-hernek
-herner
-herng-je
-herngjen
-hernon
-hernzlia
-herod
-herold
-heroux
-herr
-herrage
-herralio
-herre
-herren
-herrera
-herrick
-herring
-herringt
-herriott
-herrmann
-herron
-herronal
-herryjan
-hersch
-herschel
-herscovi
-hersee
-hersh
-hershber
-hershel
-herskovi
-herta
-hertha
-hertler
-hertzog
-herve
-hervey
-herzig
-hesche
-hesham
-hesk
-hesketh
-heslop
-hess
-hesse
-hester
-hesther
-hestia
-hetti
-hettie
-hetty
-hetzel
-heung
-heunis
-heurich
-hew
-hewage
-hewe
-hewer
-hewet
-hewett
-hewie
-hewitt
-hewlet
-hews
-heybroek
-heydon
-heyer
-heynen
-heys
-heystrae
-heyward
-heywood
-hi
-hiawatha
-hibberd
-hibler
-hichem
-hickerso
-hickey
-hickin
-hickman
-hickman-
-hickox
-hicks
-hidaka
-hideki
-hideo
-hiebsch
-hien
-hienz
-hieronym
-hiers
-higginbo
-higgins
-higham
-highet
-highsmit
-hight
-hightowe
-higuchi
-hijab
-hikita
-hil
-hilaire
-hilario
-hilarius
-hilary
-hilberma
-hilbert
-hilbig
-hilda
-hildagar
-hilde
-hildebra
-hildegaa
-hildegar
-hilder
-hildum
-hildy
-hilfinge
-hill
-hilla
-hillard
-hillary
-hillel
-hiller
-hillery
-hilliard
-hilliary
-hillidge
-hillie
-hillier
-hillring
-hills
-hillson
-hilly
-hillyer
-hilmi
-hils
-hilton
-hiltz
-hilwa
-himanshu
-himawan
-himraj
-hin-wai
-hincher
-hinchey
-hinchley
-hinda
-hindle
-hinds
-hindson
-hine
-hiner
-hines
-hing
-hing-fai
-hingtgen
-hink
-hinkel
-hinkins
-hinkle
-hinojosa
-hinsdale
-hinshaw
-hinson
-hinton
-hinton-s
-hinz
-hinze
-hipp
-hippert
-hipson
-hirakawa
-hiraki
-hiram
-hirayama
-hiren
-hirofumi
-hirohama
-hiroki
-hiroko
-hiromi
-hiromu
-hironaga
-hirooki
-hirose
-hiroshi
-hirotaka
-hiroto
-hirotosh
-hiroyuki
-hirsch
-hirshman
-hisaki
-hiscoe
-hiscott
-hisham
-hishchak
-hisko
-hislop
-hitchcoc
-hitching
-hite
-hitler
-hitoshi
-hiusser
-hively
-hixon
-hixson
-hjartars
-hjorth
-hlady
-hlausche
-hlinka
-hm
-hnidek
-ho
-ho-mu
-hoa
-hoa-van
-hoadley
-hoag
-hoagland
-hoang
-hoare
-hobard
-hobart
-hobbs
-hoben
-hobesh
-hobey
-hobgood
-hobie
-hobin
-hoch
-hochbaum
-hochberg
-hock
-hockaday
-hockster
-hoctor
-hocutt
-hodder
-hoddinot
-hodedo
-hodge
-hodgens
-hodges
-hodgins
-hodgkin
-hodgkiss
-hodgson
-hoebart
-hoeg
-hoehling
-hoehn
-hoek
-hoeksma
-hoekstra
-hoeler
-hoelsche
-hoequist
-hoes
-hoferek
-hoffelt
-hoffman
-hoffmann
-hoffmeis
-hoffpaui
-hoffsted
-hofmann
-hofmeist
-hofstede
-hofstett
-hogan
-hogeboom
-hogg
-hoggan
-hoggatt
-hogue
-hohmeyer
-hohn
-hoi-kin
-hojjat
-holberry
-holbrook
-holcomb
-holcombe
-holcroft
-hold of
-holdaway
-holden
-holder
-holdren
-holesing
-holinski
-hollack
-holland
-hollande
-hollands
-hollbach
-hollen
-hollenba
-hollenbe
-hollenst
-holleran
-holley
-holli
-holliday
-hollie
-hollings
-hollingt
-hollingw
-hollis
-holliste
-holloway
-hollran
-holly
-holly-an
-hollyann
-holm
-holman
-holmans
-holmer
-holmes
-holmquis
-holness
-holsclaw
-holst
-holt
-holterma
-holthaus
-holton
-holtz
-holtze
-holvey
-holy
-holz
-hom
-homa
-homan
-homayoon
-homayoun
-homer
-homere
-homerus
-homonick
-homu
-hon
-hon-kong
-hon-son
-honbarri
-honda
-honey
-honeycut
-hong
-hong-che
-hong-yuh
-hongchen
-hongtao
-hongyuh
-hongzhi
-honkakan
-honmun
-honor
-honoria
-honson
-honzo
-hoog
-hooi-lee
-hooker
-hooks
-hoon
-hooper
-hoorman
-hooshang
-hooton
-hoover
-hopcroft
-hope
-hopf
-hopkin
-hopkins
-hopkinso
-hopley
-hoppenwo
-hopper
-hopson
-hoptoad
-hoque
-hor
-hor-lam
-horace
-horacio
-horak
-horalek
-horatia
-horatio
-horatius
-horban
-hord
-hore
-horemans
-horgan
-horianop
-horkoff
-hormoz
-hornacek
-hornbeck
-hornbeek
-hornburg
-horne
-horng
-horngdar
-horning
-hornung
-horowitz
-horsfiel
-horst
-horstman
-hort
-horten
-hortense
-hortensi
-horton
-horus
-horvath
-horwitz
-horwood
-hosang
-hosanna
-hoscheid
-hoseok
-hoshi
-hosier
-hoskin
-hosking
-hoskins
-hosneld
-hossein
-hosseini
-hot
-hotline
-hotlist
-hotson
-hotta
-houde
-houdini
-houghton
-houk
-houle
-houn
-hounsell
-houssam
-houssein
-houston
-hoverman
-hovey
-hovinga
-how
-how-kee
-howald
-howard
-howarth
-howat
-howden
-howe
-howe-pat
-howekamp
-howell
-howerton
-howes
-howey
-howie
-howlett
-howley
-howorth
-howse
-hoxie
-hoy
-hoyer
-hoyt
-hpldt
-hpone
-hq
-hqs
-hr
-hrdata
-hrenyk
-hrinfo
-hrubik
-hruby
-hrushowy
-hruska
-hrvatin
-hsi
-hsi-ho
-hsiang
-hsiao
-hsiao-ch
-hsiao-we
-hsiao-yu
-hsiaochi
-hsiaosu
-hsiaowei
-hsiaoyun
-hsieh
-hsien
-hsiho
-hsin
-hsin-li
-hsin-shi
-hsing
-hsing-ju
-hsinli
-hsiung
-hsketh
-hspice
-hsu
-hsuan
-hsueh
-htd
-hu
-hua
-hua-yuan
-huai
-huan
-huan-yu
-huanbo
-huang
-huasheng
-huashi
-huay-yon
-huayuan
-huayyong
-hubal
-hubbard
-hubbell
-hube
-huber
-huberman
-hubers
-hubert
-huberto
-hubey
-hubie
-hubley
-huboi
-hudai
-hudak
-huddlest
-hudecek
-hudepohl
-hudgins
-hudson
-hudy
-hudyma
-huel-she
-huelshen
-huelsman
-hueneman
-huerta
-huestis
-huether
-huetu
-huey
-huey-kuo
-hueykuo
-hufana
-huffman
-hugel
-huggins
-hugh
-hughes
-hughes-c
-hughey
-hughie
-hughson
-hugibert
-hugo
-hugues
-huguette
-huguin
-huhn
-hui
-hui-chau
-hui-neng
-huib
-huichaun
-huifang
-huineng
-huiqi
-huitt
-huizhao
-hukam
-hulda
-hulen
-hulett
-huligang
-hulk
-hulme
-hulst
-hultgren
-hulversh
-hulze
-humbert
-humberto
-humboldt
-hume
-humenik
-humenuk
-humes
-humfrey
-humfrid
-humfried
-humiston
-hummel
-hummerst
-humphrey
-humphrie
-hundries
-huneault
-hunfredo
-hung
-hung-kan
-hung-win
-hungkai
-hungkang
-hungle
-hungquoc
-hungwing
-hunike
-hunnicut
-hunsberg
-hunsucke
-hunt
-hunter
-huntingt
-huntlee
-huntley
-huo-yen
-huong
-huor
-huot
-huoyen
-hupe
-huppert
-hurd
-huret
-hurf
-hurlee
-hurleigh
-hurley
-hurman
-hurst
-hurtado
-hurteau
-hurtubis
-hurwitz
-husain
-husam
-husarewy
-husein
-hussain
-hussam
-hussein
-husser
-hussey
-hussien
-hustin
-huston
-huszar
-huszarik
-hutchers
-hutchin
-hutching
-hutchins
-hutchiso
-hutson
-hutt
-hutter
-hutton
-huub
-huuliem
-huxley
-huy
-huyen
-huynh
-huyvan
-huzur
-hvezda
-hwa
-hwajin
-hwan
-hwang
-hwayong
-hwei-lin
-hy
-hyacinth
-hyatt
-hydar
-hyde
-hyen
-hyer
-hyerle
-hyers
-hyjek
-hylaride
-hyman
-hymie
-hynda
-hyndman
-hynek
-hyong-ju
-hyongjun
-hyonil
-hyoungju
-hyperspa
-hyrne
-hysler
-hyslop
-hyte
-hyun
-hyunchul
-hyung
-i-chao
-i-ching
-iacoviel
-iacovo
-iago
-iain
-ian
-ianace
-iannotti
-iannozzi
-iantaffi
-ianthe
-iaquinto
-iarocci
-ibach
-ibarra
-ibbie
-ibby
-ibntas
-ibrahim
-ibsen
-iburg
-ic
-iceman
-ichabod
-ichao
-iching
-ichiro
-ichizen
-icy
-icylyn
-id
-ida
-idalia
-idalina
-idaline
-ide
-idell
-idelle
-idette
-idris
-idt
-idus
-ie
-iem
-ientile
-iezzi
-if anyon
-ifact
-ifill
-iftekhar
-ifti
-igarashi
-iggie
-igglesde
-iggy
-ignace
-ignacio
-ignacius
-ignatius
-ignaz
-ignazio
-igor
-iguchi
-igusa
-ihnat
-ihor
-ijaz
-ijff
-ike
-ikeda
-ikey
-ikotin
-ikram
-ikuo
-ilaire
-ilan
-ilana
-ilario
-ilda
-ileana
-ileane
-ilene
-ilic
-ilise
-ilk
-ilka
-illa
-illamchi
-illidge
-illinois
-ilmberge
-ilona
-ilovich
-ilowski
-ilsa
-ilse
-ilsup
-ilwhan
-ilya
-ilyas
-ilyess
-ilysa
-ilyse
-ilyssa
-ima
-iman
-imbemba
-imelda
-imhof
-imi
-immanuel
-imming
-imogen
-imogene
-imojean
-impaglia
-imran
-imre
-imtaz
-imtiaz
-in-beum
-in-cheol
-in-hwan
-ina
-inam
-inamulla
-inan
-inanc
-inbeum
-ince
-incheol
-incze
-ind
-indahl
-indar
-independ
-inderjit
-indiana
-indianaj
-indira
-indra
-indy
-ineke
-ines
-inesita
-inessa
-inez
-info
-info-man
-infocent
-ing
-inga
-ingaberg
-ingaborg
-ingamar
-ingar
-inge
-ingeberg
-ingeborg
-ingelber
-ingell
-ingemar
-inger
-ingersol
-ingie
-ingle
-ingleber
-ingles
-ingling
-inglis
-ingmar
-ingo
-ingra
-ingram
-ingres
-ingrey
-ingrid
-ingrim
-ingunna
-ingvar
-inho
-inhulsen
-inhwan
-inigo
-inm
-inman
-inna
-innchyn
-innes
-inness
-innis
-inniss
-innocent
-inoue
-inquire
-inrig
-inscoe
-insp
-inspecti
-instal
-installe
-integ
-integrat
-intemann
-interact
-interfac
-intihar
-intplan
-intune
-inyoung
-ioan
-ioana
-ioannes
-ioannidi
-ioannis
-ioannou
-iocca
-iocntrl
-iola
-iolande
-iolanthe
-iona
-ione
-iorgo
-iorgos
-iormina
-iosep
-ioui
-ip
-ipadmin
-ipokrati
-ippolito
-iqbal
-ira
-iradj
-iraj
-irani
-irby
-irc
-ircbellc
-irccar
-ircinter
-ircmarke
-ircmer
-ircmtl
-ircstand
-irean
-ireland
-irena
-irene
-irfan
-irias
-iribarre
-irice
-irick
-irina
-iris
-irish
-irissou
-irita
-irma
-irv
-irvin
-irvine
-irving
-irwin
-irwinn
-is a cat
-isa
-isaac
-isaacs
-isaak
-isabeau
-isabel
-isabelit
-isabell
-isabella
-isabelle
-isac
-isacco
-isador
-isadora
-isadore
-isahella
-isaia
-isaiah
-isak
-isami
-isbister
-iseabal
-isenor
-isensee
-isert
-isfan
-ishak
-ishan
-ishee
-isherwoo
-ishii
-ishikida
-ishimoto
-isiahi
-isidor
-isidora
-isidore
-isidoro
-isidro
-isin
-isip
-isis
-iskandar
-iskender
-iskra
-isl
-islam
-isley
-ismael
-ismail
-isobel
-isoft
-isolde
-israel
-issa
-issam
-issi
-issiah
-issie
-issy
-itac
-itah
-italo
-italus
-itaru
-itas
-itaya
-itch
-iteam
-iteke
-ito
-its-eng
-iu
-iva
-ivan
-ivancevi
-ivancic
-ivanhoe
-ivanoff
-ivanyi
-ivar
-ive
-iver
-ivers
-iversen
-iverson
-ives
-ivett
-ivette
-ivey
-ivie
-ivo
-ivona
-ivonne
-ivor
-ivory
-ivy
-iwan
-iwanyk
-iwashita
-iwona
-iws
-iyad
-iyengar
-iyer
-iyun
-izaak
-izabel
-izak
-izbinsky
-izchak
-izique
-izora
-izumi
-izuru
-izzat
-izzo
-izzotti
-izzy
-j-franco
-jaakkola
-jaan
-jabbari
-jabez
-jabir
-jablonsk
-jabreen
-jacalyn
-jacek
-jacenta
-jachym
-jacinda
-jacinta
-jacintha
-jacinthe
-jack
-jackelyn
-jacki
-jackie
-jacklin
-jacklyn
-jackman
-jackquel
-jackson
-jacky
-jackye
-jaclin
-jaclyn
-jacob
-jacobo
-jacobs
-jacobsen
-jacobson
-jacque
-jacqueli
-jacquely
-jacquene
-jacques
-jacquett
-jacqui
-jacquie
-jacynth
-jacynthe
-jada
-jade
-jadwiga
-jae
-jae-koo
-jae-whan
-jaekoo
-jaenen
-jaewhang
-jaffer
-jag
-jagan
-jagat
-jagath
-jagatic
-jagdev
-jagdish
-jager
-jagernau
-jagjeet
-jagjit
-jagla
-jago
-jagodzin
-jagriti
-jags
-jahangir
-jahromi
-jai
-jaijeet
-jaikne
-jailyn
-jaime
-jaimie
-jaimin
-jain
-jaine
-jak
-jakab
-jakabffy
-jakb
-jake
-jakeman
-jaki
-jakie
-jakim
-jakob
-jakola
-jakstys
-jakubows
-jalaie
-jalal
-jalali
-jalaliza
-jalbert
-jalilvan
-jama
-jamaal
-jamal
-jamaly
-jaman
-jamel
-jamensky
-jamer
-james
-james_mi
-jamesett
-jameson
-jamesy
-jamey
-jami
-jamie
-jamieson
-jamil
-jamilah
-jamill
-jamima
-jamin
-jamison
-jammal
-jammie
-jammu
-jamnejad
-jamroz
-jamshed
-jamshid
-jamshidi
-jan
-jan-olof
-jan-robe
-jana
-janak
-janaki
-janaratn
-janaya
-janaye
-jancewic
-jancovic
-janczyn
-janda
-jande
-jandy
-jane
-janean
-janecka
-janeczka
-janeen
-janek
-janel
-janela
-janell
-janella
-janelle
-janene
-janenna
-janes
-janessa
-janet
-janeta
-janeth
-janetta
-janette
-janeva
-janey
-jang
-jang-hsu
-janghsue
-jani
-jania
-janice
-janick
-janie
-janifer
-janina
-janine
-janio
-janis
-janiszew
-janith
-janka
-janke
-jankowsk
-jann
-janna
-jannay
-jannel
-jannelle
-jannie
-janning
-janolof
-janos
-janot
-janovich
-janrober
-janseen
-jansen
-janson
-janssen
-jantz-le
-jantzi
-januario
-janusz
-jany
-jap
-japan
-japp
-jaquelin
-jaquelyn
-jaquenet
-jaques
-jaquith
-jarad
-jarboe
-jarchow
-jard
-jareb
-jared
-jarel
-jargon
-jarib
-jarid
-jarl
-jarlath
-jarmal
-jarman
-jarmo
-jarmoc
-jarmon
-jarmul
-jarnak
-jarrad
-jarred
-jarret
-jarrett
-jarrid
-jarrod
-jarvah
-jarvie
-jarvin
-jarvis
-jarzemsk
-jasbinde
-jase
-jasen
-jashvant
-jasmann
-jasmin
-jasmina
-jasmine
-jasny
-jason
-jasper
-jaspreet
-jasrotia
-jasti
-jastinde
-jasun
-jasver
-jaswal
-jatar
-jatin
-jatinder
-jau-min
-jau-yau
-jaumin
-jauvin
-jauyau
-java
-javad
-javallas
-javar
-javed
-javier
-javor
-jawad
-jawaid
-jawana
-jawanda
-jawor
-jaworski
-jaworsky
-jay
-jaya
-jayakuma
-jayamann
-jayant
-jayanta
-jayavant
-jaye
-jayendra
-jayesh
-jayjay
-jayme
-jaymee
-jaymie
-jayn
-jayne
-jaynell
-jaynie
-jayshree
-jayson
-jazanosk
-jazmin
-jcbach
-jcst
-jdavie
-jderek
-jean
-jean-ber
-jean-cla
-jean-den
-jean-fra
-jean-guy
-jean-jac
-jean-lou
-jean-luc
-jean-mar
-jean-mic
-jean-nor
-jean-pau
-jean-pie
-jean-rob
-jean-roc
-jean-yve
-jeana
-jeane
-jeanelle
-jeanes
-jeanette
-jeanhee
-jeanice
-jeanie
-jeanine
-jeanloui
-jeanna
-jeanne
-jeannett
-jeannie
-jeannine
-jeannot
-jeany
-jeavons
-jecho
-jed
-jedd
-jeddy
-jedediah
-jedidiah
-jedrysia
-jee
-jee-howe
-jeff
-jefferey
-jefferso
-jeffery
-jeffie
-jeffrey
-jeffreys
-jeffries
-jeffry
-jeffy
-jegland
-jehanna
-jehovah
-jehu
-jelen
-jelene
-jeleniew
-jelinek
-jelske
-jem
-jemczyk
-jemie
-jemima
-jemimah
-jemmie
-jemmy
-jen
-jen-chen
-jen-hua
-jena
-jenchen
-jenda
-jenelle
-jeng
-jenhua
-jeni
-jenica
-jeniece
-jenifer
-jeniffer
-jenilee
-jenine
-jenkins
-jenkinso
-jenn
-jenna
-jennee
-jenner
-jenness
-jennette
-jenni
-jennica
-jennie
-jennifer
-jennilee
-jennine
-jennings
-jenny
-jeno
-jens
-jensen
-jensenwo
-jenson
-jeong
-jephthah
-jepson
-jer-huan
-jerad
-jerald
-jeralee
-jeramey
-jeramie
-jere
-jereme
-jeremiah
-jeremias
-jeremie
-jeremy
-jerhuang
-jeri
-jermain
-jermaine
-jermayne
-jernigan
-jeroen
-jerome
-jeromy
-jeronimo
-jeroski
-jerreld
-jerri
-jerrie
-jerrilee
-jerrilyn
-jerrine
-jerrold
-jerrome
-jerry
-jerrylee
-jervis
-jerzy
-jeska
-jesper
-jess
-jessa
-jessalin
-jessalyn
-jessamin
-jessamyn
-jesse
-jessee
-jesselyn
-jessey
-jesshope
-jessi
-jessica
-jessie
-jessika
-jessup
-jessy
-jester
-jesty
-jesus
-jet
-jeter
-jeth
-jethro
-jeurene
-jew
-jewel
-jewell
-jewelle
-jewels
-jewett
-jey
-jeyarara
-jezioran
-jhingran
-ji
-ji-chuu
-jia
-jia-wen
-jiak-kwa
-jiakkwan
-jian
-jianchen
-jiang
-jianli
-jiann
-jiann-ya
-jiannyan
-jianou
-jianqi
-jianxing
-jianye
-jianyun
-jiawen
-jiayi
-jiayuan
-jichuu
-jie-yong
-jiejie
-jiethye
-jieyong
-jihad
-jihan
-jihyun
-jiin-shu
-jiinshuh
-jilann
-jilisa
-jill
-jillana
-jillane
-jillayne
-jilleen
-jillene
-jilli
-jillian
-jillie
-jilly
-jim
-jimenez
-jiming
-jiminy
-jimmie
-jimmy
-jims
-jimson
-jin
-jin-ho
-jin-nan
-jin-song
-jin-yuan
-jin-yun
-jinann
-jinchao
-jindal
-jing
-jing-ru
-jingbai
-jinglun
-jingru
-jinho
-jinhua
-jinlun
-jinn-kue
-jinnan
-jinnkuen
-jinny
-jinsheng
-jinsong
-jinsoo
-jinyuan
-jiri
-jirina
-jiro
-jisang
-jisheng
-jitendra
-jiuhuai
-jivan
-jiyuan
-jiyue
-jo
-jo ann
-jo-ann
-jo-anne
-jo-marie
-joachim
-joachimp
-joan
-joana
-joane
-joanie
-joann
-joanna
-joannah
-joanne
-joannes
-joannidi
-joannie
-joannis
-joao
-joaquin
-job
-jobe
-jobey
-jobi
-jobie
-jobina
-joby
-jobye
-jobyna
-jocelin
-joceline
-jocelyn
-jocelyne
-jochem
-jochen
-jock
-jocko
-jodee
-jodi
-jodie
-jodine
-jodoin
-jodoin-s
-jody
-joe
-joeann
-joel
-joela
-joelie
-joell
-joella
-joelle
-joellen
-joelly
-joellyn
-joelynn
-joeph
-joerg
-joeri
-joete
-joey
-joffe
-johan
-johan am
-johan ch
-johan se
-johanama
-johanchr
-johann
-johanna
-johannah
-johanne
-johannes
-johannse
-johanseb
-johansen
-johanson
-johathan
-john
-john-jr
-john-pau
-john-sr
-johna
-johnath
-johnatha
-johnatho
-johnette
-johni
-johnna
-johnni
-johnnie
-johnny
-johns
-johnsen
-johnson
-johnsson
-johnston
-johny
-joice
-joiner
-joji
-jojo
-joke
-jolanda
-jole
-jolee
-joleen
-jolene
-joletta
-joli
-jolicoeu
-jolie
-jolin
-joline
-jolitz
-joll
-jolliffe
-joly
-jolyn
-jolynn
-jon
-jonah
-jonas
-jonathan
-jonathon
-jonczak
-jone
-jonell
-jonelle
-jones
-jong
-jong-chi
-jong-woe
-jongchih
-jonghun
-jonghyuk
-jongsun
-jongwoei
-jongwoo
-joni
-jonie
-jonis
-jonkheer
-jonson
-jonthan
-joo
-joo-euin
-joo-geok
-joon
-joong
-jooran
-jooyul
-joplin
-jordain
-jordan
-jordana
-jordanna
-jordi
-jordon
-jorey
-jorgan
-jorge
-jorgense
-jori
-jorie
-joron
-jorrie
-jorry
-jory
-jos
-josanne
-joscelin
-jose
-josee
-josef
-josefa
-josefina
-joseito
-joselito
-joseph
-josepha
-josephin
-josephs
-josey
-josh
-joshi
-joshia
-joshua
-joshuah
-josi
-josiah
-josiane
-josias
-josie
-josine
-josip
-joslin
-joson
-josselyn
-jossine
-josy
-joubert
-joudrey
-jourdain
-jourdan
-jovo
-jowett
-joy
-joya
-joyan
-joyann
-joyce
-joycelin
-joydeep
-joye
-joyner
-joyous
-jozef
-jozsef
-jr
-jsandye
-jsbach
-juan
-juana
-juanita
-juarez
-jubainvi
-jubb
-jubenvil
-jubinvil
-juby
-jud
-judah
-judas
-judd
-jude
-judge
-judi
-judie
-judith
-juditha
-judithre
-judon
-judy
-judye
-judyresn
-juergen
-juers
-jugandi
-juh-shiu
-juha
-juhan
-juhshiun
-jui
-jui-fen
-juieta
-juifen
-juile
-jukka
-julayne
-jule
-julee
-jules
-juli
-julia
-julian
-juliana
-juliane
-juliann
-julianna
-julianne
-julianto
-julie
-julieann
-julien
-julienne
-juliet
-julieta
-julietta
-juliette
-julina
-juline
-julio
-julissa
-julita
-julius
-jun
-jun-li
-junaid
-june
-juneau
-juneho
-junette
-jung
-jung-hua
-junghua
-jungmeis
-juni
-junia
-junie
-junina
-junk
-junkie
-junkin
-junli
-junmeng
-junzo
-juozas
-jurafsky
-jurek
-jurevis
-jurewicz
-jurg
-jurgen
-jurgens
-jurgutis
-juri
-jurman
-juscesak
-juskevic
-jussi
-justen
-justin
-justina
-justine
-justinia
-justinn
-justino
-justis
-justo
-justus
-jusuf
-jutta
-jwahar
-jyh-dong
-jyh-doug
-jyhdong
-jyhdoug
-jyoti
-jyun-che
-jyunchen
-jyuo
-kaare
-kabe
-kabel
-kaboliza
-kabuli
-kac
-kacey
-kacie
-kacor
-kacsor
-kacy
-kaczmare
-kaczmars
-kaczynsk
-kadah
-kadamani
-kaden
-kadiyala
-kadlecik
-kaefer
-kaehler
-kaela
-kaete
-kagan
-kah-ming
-kahaleel
-kahan
-kahhale
-kahhan
-kahil
-kahkonen
-kahlil
-kahn
-kahneman
-kahnert
-kahtasia
-kai
-kai-bor
-kai-ming
-kai-wah
-kai-wai
-kaia
-kaibor
-kaiching
-kaid
-kaidanne
-kaigler
-kaila
-kaile
-kaileen
-kailey
-kain
-kaine
-kaiser
-kaitlin
-kaitlyn
-kaitlynn
-kaiwah
-kaiwen
-kaj
-kaja
-kajeejit
-kaji
-kakalina
-kaki
-kakou
-kaksonen
-kakuta
-kala
-kalab
-kalai
-kalaiche
-kalair
-kalappa
-kalash
-kale
-kaleb
-kalechst
-kaleena
-kales
-kaley
-kali
-kalie
-kalil
-kalila
-kalina
-kalinda
-kalindi
-kaliski
-kalitzku
-kalle
-kallewar
-kalli
-kallio
-kally
-kalman
-kalnitsk
-kalogera
-kalpak
-kalpit
-kalra
-kalsey
-kalt
-kalugdan
-kaluzny
-kalvin
-kalwa
-kalwarow
-kalyan
-kalyani
-kalyn
-kam
-kam-hung
-kam-suen
-kamal
-kaman
-kamas
-kambhamp
-kambiz
-kamboh
-kameko
-kamel
-kamerson
-kamhung
-kamie
-kamil
-kamila
-kamilah
-kamillah
-kaminsky
-kamiya
-kamiyama
-kamlesh
-kammerer
-kamminga
-kamol
-kamoun
-kamran
-kamyar
-kamyszek
-kan
-kan-hung
-kana
-kanagend
-kanani
-kanata
-kanchit
-kandace
-kandappa
-kandi
-kandra
-kandy
-kane
-kaneko
-kaneshir
-kang
-kang-gil
-kang-nin
-kang-yua
-kangelis
-kangkun
-kangning
-kanhung
-kania
-kanies
-kanika
-kannan
-kannel
-kanneman
-kanno
-kansara
-kant
-kanthan
-kantor
-kanu
-kanungo
-kanwalji
-kanwar
-kanya
-kao
-kaoru
-kaoud
-kapadia
-kapatou
-kapella
-kapil
-kaplan
-kapp
-kappos
-kaps
-kapsa
-kapsch
-kapuscin
-kara
-kara-lyn
-karaali
-karademi
-karalee
-karalynn
-karam
-karan
-karass
-karattup
-karchevs
-kardomat
-kardos
-kare
-karee
-kareem
-karel
-karels
-karen
-karena
-karhunie
-kari
-karia
-kariann
-karibian
-karie
-karil
-karilynn
-karim
-karin
-karina
-karine
-kariotta
-karisa
-karissa
-karita
-karkotsk
-karl
-karla
-karlan
-karlee
-karleen
-karlen
-karlene
-karlens
-karlette
-karlie
-karlik
-karlis
-karloff
-karlon
-karlotta
-karlotte
-karlson
-karly
-karlyn
-karmali
-karmen
-karmous-
-karn
-karna
-karnazes
-karney
-karol
-karola
-karole
-karolefs
-karolien
-karolina
-karoline
-karoly
-karon
-karp
-karr
-karrah
-karrie
-karry
-karsan
-karsner
-karsz
-kartik
-kartikey
-karunara
-karwowsk
-kary
-karyl
-karylin
-karyn
-kas
-kasbia
-kasbow
-kasdorf
-kasey
-kashani-
-kashef
-kashima
-kashul
-kasifa
-kaspar
-kasparia
-kasper
-kasprzak
-kass
-kassam
-kassandr
-kassem
-kassey
-kassi
-kassia
-kassie
-kassissi
-kast
-kastelbe
-kasten
-kastner
-kaston
-kasumovi
-kat
-kata
-katalin
-katarina
-kataryna
-katcher
-katchmar
-kate
-katee
-katerina
-katerine
-katey
-kath
-katha
-katharin
-katharyn
-kathe
-katherin
-katheryn
-kathi
-kathie
-kathleen
-kathlin
-kathnels
-kathreri
-kathrine
-kathryn
-kathryne
-kathy
-kathyb
-kathye
-kati
-katibian
-katie
-katina
-katine
-katinka
-katja
-katleen
-katlin
-kato
-katrin
-katrina
-katrine
-katrinka
-katsoura
-katsumi
-katsunor
-katti
-kattie
-katuscha
-katusha
-katy
-katya
-katz
-katzenel
-kaudel
-kauffeld
-kauffman
-kaufman
-kaufmann
-kaunas
-kaura
-kaus
-kausche
-kaushik
-kavaler
-kavanagh
-kavid
-kavis
-kawa
-kawabata
-kawaguch
-kawahara
-kawakami
-kawamura
-kawashim
-kawauchi
-kay
-kaya
-kayaliog
-kayar
-kaycee
-kaye
-kayla
-kayle
-kaylee
-kayley
-kaylil
-kaylyn
-kayne
-kaypour
-kayser
-kayvan
-kaz
-kazem
-kazimier
-kazmierc
-kazue
-kazuhiko
-kazuhiro
-kazuhito
-kazuko
-kazunori
-kazuo
-kazuyuki
-kea
-keala
-kealey
-kean
-keane
-kearney
-kearns
-keary
-keast
-keates
-keating
-keaton
-keats
-kebede
-kechichi
-keck
-kedah
-kedron
-kee
-keef
-keefe
-keefer
-keegstra
-keehan
-keehn
-keelan
-keelby
-keeler
-keeley
-keelia
-keels
-keely
-keen
-keenan
-keene
-keene-mo
-keep
-keer
-kees
-keever
-keffer
-kehler
-kehoe
-kehr
-kei
-keifer
-keighley
-keilholz
-keilty
-keim
-kein
-keinosuk
-keir
-keiser
-keish
-keisuke
-keitel
-keith
-kejing
-kelbe
-kelbee
-kelby
-kelcey
-kelci
-kelcie
-kelcy
-keldon
-kele
-kelemen
-kelessog
-kelila
-kelin
-kelkar
-kell
-kelland
-kellby
-kelleher
-kellen
-keller
-kellerma
-kellett
-kelley
-kelleye
-kelli
-kellia
-kellie
-kellina
-kellogg
-kellsie
-kellum
-kelly
-kelly-er
-kellyann
-kellyeri
-kelner
-kelsay
-kelsch
-kelsey
-kelsi
-kelso
-kelsy
-keltouma
-kelvin
-kelwin
-kely
-kem
-kemal
-kember
-kemish
-kemkeng
-kemme
-kemp
-kempf
-kempffer
-kempler
-kemppain
-kempski
-kempster
-ken
-kenda
-kendal
-kendall
-kendel
-kendell
-kendi
-kendra
-kendre
-kendrick
-kenedi
-kenik
-kenji
-kenkel
-kenlan
-kenmir
-kenn
-kenna
-kennaday
-kennan
-kennard
-kennedy
-kenneth
-kennett
-kenney
-kennie
-kennith
-kennon
-kenny
-kenol
-kenon
-kensinge
-kent
-kenta
-kentaro
-kenton
-kenworth
-kenyon
-keogh
-kepekci
-kepler
-ker
-kera
-kerby
-kerensa
-kerfoot
-keri
-keriakos
-keriann
-kerianne
-kerith
-kerk
-kerley
-kerlovic
-kermie
-kermit
-kermy
-kernahan
-kernan
-kerner
-kernodle
-kerns
-kerr
-kerri
-kerri-an
-kerrie
-kerrill
-kerrin
-kerry
-kerschen
-kerschne
-kerstin
-kerwin
-kerwinn
-keseris
-keshab
-keshav
-kesler
-kesley
-keslie
-kesling
-kessel
-kessia
-kessiah
-kessing
-kessler
-kessley
-kestelma
-kester
-kestutis
-ketan
-ketao
-ketcham
-ketcheso
-ketchum
-ketkar
-ketley
-ketsler
-ketterer
-ketti
-kettie
-kettles
-ketty
-keung
-keuning
-kev
-kevan
-keven
-keveny
-kevin
-kevina
-kevon
-kevyn
-keyes
-keynes
-keys
-keyvan
-khac
-khachatr
-khadbai
-khai
-khalaf
-khaled
-khalid
-khalil
-khalilza
-khamdy
-khanh
-khanna
-khanvali
-khariton
-khatib
-khatod
-khatri
-khawar
-khedkar
-khesin
-khezri
-khieu
-khim
-khimasia
-kho
-khoa
-khodosh
-khoinguy
-khon
-khorami
-khorrama
-khosla
-khosravi
-khosro
-khosrow
-khouderc
-khoury
-khouzam
-khue
-khueh-ho
-khuehhoc
-khuon
-khurana
-khurshid
-khyra
-ki
-kiah
-kial
-kiala
-kiam
-kian
-kiang
-kibler
-kidd
-kiebel
-kiecksee
-kiefer
-kiel
-kiele
-kielstra
-kiely
-kiem
-kien
-kien-ngh
-kienan
-kiennghi
-kiens
-kieran
-kiernan
-kieron
-kiersten
-kiet
-kieunga
-kiger
-kigyos
-kihyen
-kijin
-kikelia
-kiki
-kikki
-kiko
-kikuchi
-kikuta
-kilbank
-kilburn
-kilby
-kilcoin
-kilcoyne
-kile
-kiley
-kilgore
-kilian
-killam
-killeen
-killen
-killer
-killian
-killie
-killy
-kilner
-kilpatri
-kilsaas
-kilzer
-kim
-kim-elee
-kim-minh
-kim-stac
-kim-tram
-kimball
-kimbarov
-kimbell
-kimberle
-kimberli
-kimberly
-kimble
-kimbo
-kimbra
-kimbrell
-kimbroug
-kimeleen
-kimi
-kimihiko
-kimiko
-kimio
-kimler
-kimm
-kimma
-kimme
-kimmett
-kimmi
-kimmie
-kimmo
-kimmy
-kimoto
-kimstace
-kimura
-kin
-kin-wai
-kin-yee
-kinahan
-kinamon
-kincaid
-kinch
-kindel
-kindem
-kindra
-king
-king-hau
-kingaby
-kingan
-kingdon
-kingrey
-kingsbur
-kingshot
-kingslan
-kingsley
-kingsly
-kingston
-kingzett
-kinh
-kinley
-kinman
-kinna
-kinnaird
-kinney
-kinnibur
-kinnie
-kinny
-kinos
-kinoshit
-kinrys
-kinsella
-kinsey
-kinsley
-kinsman
-kinson
-kinstley
-kinstry
-kip
-kipling
-kipnis
-kipp
-kippar
-kipper
-kippie
-kippy
-kira
-kirady
-kirbee
-kirbie
-kirby
-kirchner
-kirchoff
-kirfman
-kiri
-kirit
-kirk
-kirkby
-kirkenda
-kirkham
-kirkland
-kirkley
-kirkpatr
-kirkwood
-kirley
-kirn
-kirouac
-kirsi
-kirsten
-kirsteni
-kirsti
-kirstie
-kirstin
-kirstyn
-kirt
-kirtikum
-kish
-kishi
-kishor
-kishore
-kissee
-kissiah
-kissie
-kistner
-kit
-kita
-kitajima
-kitrick
-kitson
-kitt
-kitti
-kittie
-kittinge
-kitty
-kitzmill
-kivell
-kiwon
-kiyohara
-kiyoharu
-kiyoon
-kizzee
-kizzie
-kjeld
-kjell
-klaas
-klaassen
-klammer
-klamner
-klapper
-klapphol
-klara
-klarika
-klarrisa
-klashins
-klasky
-klassen
-klatchko
-klaudia
-klaudiny
-klaudt
-klaus
-klavkaln
-klazien
-klazina
-klebsch
-klein
-klemens
-klement
-kleon
-klepping
-kletchko
-klett
-kleynenb
-klier
-klimas
-kliment
-klimon
-kline
-kling
-klingspo
-klink
-klod
-klodt
-klosterm
-kloth
-klotz
-klowak
-klug
-kluger
-kluke
-klutts
-kmem
-knapp
-knappe
-knapper
-knapton
-knecht
-kneedler
-kneese
-kneeshaw
-kneisel
-knes-max
-kness
-knickerb
-knieps
-knighten
-knighton
-knio
-knipe
-knitl
-knittel
-knobeloc
-knobloch
-knorp
-knorr
-knouse
-knowles
-knox
-knudsen
-knut
-knute
-ko
-ko-yang
-koa
-koang
-koay
-kobayash
-kobeski
-kobiersk
-koblitz
-kobreek
-koch
-kochansk
-kochis
-kodmur
-kodnar
-kodsi
-kody
-koelbl
-koeller
-koellner
-koeman
-koen
-koenraad
-koens
-koerner
-kogan
-kogelnik
-kohalmi
-kohalmi-
-kohl
-kohler
-kohm
-kohn
-kohnhors
-kohut
-koichi
-koiste
-koji
-kok
-kok-khia
-kokkat
-koko
-kokoska
-kokosopo
-kolahi
-kolappa
-kolavenn
-kolb
-kolbe
-koldinge
-kolek
-kolenda
-kolesnik
-koleyni
-kolk
-kolkka
-kollen
-koller
-kollman
-kollmorg
-kolodiej
-kolodzie
-kolos
-kolovson
-kolski
-kolton
-koman
-komaromi
-komatsu
-komenda
-komorows
-konarski
-konda
-kondagun
-konforti
-kong
-kong-que
-koning
-konno
-konomis
-konrad
-konradi
-konstan
-konstanc
-konstant
-konstanz
-koo
-koohgoli
-koohi
-koolstra
-koolwine
-koonce
-koontz
-kooyoung
-kopala
-kopell
-kopfman
-kopke
-koprulu
-kora
-koral
-koralle
-koran @
-koray
-korbe
-korbel
-korda
-kordik
-kordon
-kordula
-kore
-korea
-korean
-korek
-korella
-koren
-koressa
-korest
-korey
-korf
-kori
-korie
-korn
-kornachu
-kornegay
-korney
-kornitze
-korpela
-korrie
-korry
-kort
-kortekaa
-kortje
-kory
-kos
-kosarski
-kosasih
-kosiorsk
-kositpai
-koskie
-koskinen
-koslowsk
-kosman
-kosnaski
-kosowan
-koss
-kostas
-kosten
-koster
-kostowsk
-kosturik
-kostyniu
-kot
-kotamart
-kotaro
-kotler
-kotval
-kotyk
-kou
-kou-yuan
-kouba
-kouhi
-kouichir
-kouidis
-kouji
-kouyuan
-kovac
-kovacs
-koval
-kovarik
-kovats
-koverzin
-kowal
-kowalcze
-kowalesk
-kowalkow
-kowallec
-kowalski
-kowalsky
-koyang
-kozak
-kozelj
-koziol
-kozlowsk
-kozsukan
-kozuch
-kozyra
-kpodzo
-krabicka
-kraehenb
-krajacic
-krajesky
-krakowet
-kramar
-kramer
-kranenbu
-krater
-kratz
-krauel
-kraus
-krausbar
-krause
-krautle
-krawchuk
-krawec
-kreiger
-kreimer
-krenn
-krenos
-kresl
-kretsch
-krick
-kridle
-krieg
-kriegler
-krienke
-krier
-kriko
-krikoria
-krinda
-kring
-kris
-krisa
-krisha
-krishan
-krishin
-krishink
-krishna
-krishnah
-krishnam
-krishnan
-krishnas
-krispin
-krissie
-krissy
-krista
-kristal
-kristan
-kriste
-kristel
-kristen
-kristi
-kristian
-kristie
-kristien
-kristin
-kristina
-kristine
-kristjan
-kristo
-kristofe
-kristoff
-kristofo
-kriston
-kristoph
-kristos
-kristy
-kristyn
-kriton
-krivossi
-kriz
-krodel
-kroeger
-krogh
-krol
-kroman
-kromer
-krone
-krotish
-krousgri
-krowlek
-krozser
-krten
-krueger
-krug
-kruger
-krull
-krummell
-krumwied
-kruse
-kruuseme
-kruziak
-krym
-krysia
-kryski
-krysko
-krysta
-krystal
-krystall
-krystle
-krystn
-krystyna
-krzyszto
-ktusn
-ku
-kuan
-kuang
-kuang-ts
-kubash
-kube
-kubik
-kubitsch
-kuchelme
-kuchinsk
-kuchta
-kucirek
-kuczynsk
-kudas
-kudrewat
-kue
-kuechler
-kuehn
-kuehne
-kuhfus
-kuhlkamp
-kuhn
-kuhns
-kui
-kui-soon
-kuivinen
-kujanpaa
-kulachan
-kuldip
-kulhy
-kulik
-kulikows
-kulinski
-kulkarni
-kulman
-kum
-kum-meng
-kumagai
-kumamoto
-kumar
-kumares
-kumi
-kummer
-kun
-kun-ming
-kundanma
-kundel
-kundert
-kunecke
-kung
-kung-chi
-kungchia
-kunie
-kunihiko
-kunitaka
-kuniyasu
-kunjal
-kunkel
-kunming
-kuntova
-kunz
-kunze
-kuo
-kuo-chua
-kuo-feng
-kuo-lian
-kuochuan
-kuofeng
-kuoliang
-kupe
-kupfer
-kupferma
-kupfersc
-kupidy
-kupitz
-kuracina
-kurash
-kurauchi
-kurczak
-kurdas
-kurdziel
-kure
-kureshy
-kurian
-kurio
-kurita
-kurniawa
-kurolapn
-kurose
-kurowski
-kursell
-kurt
-kurth
-kurtis
-kurtz
-kuruppil
-kuryliak
-kurylyk
-kus
-kusan
-kushan
-kushner
-kushnir
-kushwaha
-kushwind
-kusmider
-kusum
-kusumaka
-kuswara
-kusyk
-kutac
-kutch
-kutger
-kutschke
-kutten
-kuykenda
-kuzbary
-kuzemka
-kuzyk
-kuzz
-kvochak
-kwa
-kwak
-kwan
-kwang
-kwang-ch
-kwang-lu
-kwangchi
-kwangchu
-kwanglu
-kwangsoo
-kwant
-kwast
-kwee
-kwei
-kwei-san
-kwiatkow
-kwing
-kwissa
-kwock
-kwok
-kwok-cho
-kwok-kin
-kwok-lan
-kwok-san
-kwok-wa
-kwokchoi
-kwokkin
-kwoksang
-kwong
-ky
-kydd
-kye-hong
-kyehong
-kyeong
-kyla
-kyle
-kylen
-kyler
-kylie
-kylila
-kylo
-kylynn
-kym
-kynthia
-kyoko
-kyomun
-kyoon
-kyoung
-kyrie
-kyrstin
-kyu
-kyu-sung
-kyung
-kyungchu
-kyungyoo
-kyusung
-kyzer
-l'anglai
-l'ecuyer
-l'heureu
-l;urette
-la
-la verne
-laale
-lab
-laba
-labarge
-labauve
-labelle
-labenek
-laberge
-labfive
-labiche
-labonte
-labossie
-labrador
-labranch
-labrie
-labrinos
-labuhn
-lac
-lacasse
-lacee
-lacelle
-lacey
-lachambr
-lachance
-lachine
-lachowsk
-lachu
-lacie
-lackenba
-lackie
-lackmann
-lacombe
-lacosse
-lacoste
-lacroix
-lacy
-ladan
-ladasky
-ladd
-ladean
-ladell
-ladet
-ladonna
-ladouceu
-ladva
-ladymon
-laetitia
-lafarge
-lafargue
-lafata
-lafayett
-laferrie
-lafever
-lafferty
-laflamme
-lafleur
-lafontai
-laforge
-laframbo
-lafrance
-lagace
-lagache
-lagarde
-lagrande
-lagrange
-lahaie
-lahaye
-lahey
-lahlum
-lahteenm
-lai
-laidlaw
-laila
-laina
-laine
-lainesse
-lainey
-laing
-laird
-laitinen
-lajzerow
-laker
-lakhani
-lakhian
-lakier
-lakins
-lakoff
-lakshan
-lakshmi
-lakshmin
-lalani
-lali
-lalibert
-lalit
-lalitha
-lalka
-lally
-lalo
-lalonde
-lalu
-lamar
-lamarche
-lamarque
-lamarre
-lambert
-lambregt
-lamedica
-lamers
-lamey
-lamia
-lamirand
-lamm
-lammond
-lamond
-lamonde
-lamont
-lamontag
-lamoreux
-lamothe
-lamotte
-lamouche
-lamoureu
-lampe
-lampert
-lamphier
-lampman
-lamport
-lamy
-lan
-lana
-lanae
-lanava
-lancaste
-lance
-lancelot
-lanctot
-land
-landaver
-landay
-lande
-lander
-landers
-landis
-landman
-landon
-landriau
-landry
-lane
-lanette
-laney
-lang
-langdon
-lange
-langelie
-langenbe
-langer
-langett
-langevin
-langford
-langlais
-langley
-langlois
-langner
-langsdon
-langstaf
-langston
-langton
-lani
-lanie
-laniel
-lanier
-lanita
-lankford
-lanna
-lannan
-lanni
-lannie
-lanny
-lanoe
-lanoszka
-lanoue
-lanouett
-lans
-lansuppo
-lanteign
-lanthier
-lantos
-lantto
-lantz
-lanunix
-lanwan
-lanz
-lanzkron
-lao
-lap
-lapchak
-lapierre
-lapkin
-laplace
-laplante
-lapointe
-laporte
-lapostol
-lappan
-laprade
-lapre
-laprise
-lapsley
-laquinta
-lar
-lara
-larabie
-laraia
-laraine
-larche
-lareine
-larese
-lari
-larimer
-larin
-larina
-larine
-larisa
-larissa
-larivier
-lark
-larkin
-larkins
-larmour
-larn
-larner
-laroche
-larock
-larocque
-larose
-larribea
-larrigan
-larry
-lars
-larsen
-larson
-larstone
-larue
-laruffa
-larus
-larwill
-lary
-larysa
-laryssa
-las
-lasch
-laschuk
-laser
-laserjet
-lash
-lashansk
-lasher
-lashmit
-lashonda
-lask
-laskaris
-laskin
-laslo
-lasserre
-lassig
-lassiter
-lasson
-lassonde
-laster
-latashia
-latchfor
-latella
-laten
-latessa
-latha
-lathangu
-lathrop
-latia
-latif
-latin
-latisha
-latonia
-latonya
-latorre
-latour
-latreill
-latrena
-latrina
-lattanzi
-latulipp
-lau
-laubenhe
-lauderda
-laufer
-laugher
-laughlin
-laughrid
-laughton
-launce
-laura
-lauraine
-laural
-lauralee
-lauramae
-laure
-laureano
-lauree
-laureen
-laurel
-laurella
-lauren
-laurena
-laurence
-laurene
-laurens
-laurent
-lauretta
-laurette
-lauri
-lauria
-lauriann
-lauriaul
-laurice
-laurich
-laurie
-laurier
-laurilyn
-laurin
-laurine
-lauris
-lauristo
-lauritz
-laurna
-lauro
-laursen
-lauruhn
-laury
-lauryn
-lauson
-lauten
-lauther
-laux
-lauze
-lauzon
-lavagno
-lavallee
-lavar
-lavarnwa
-lavecchi
-laveda
-lavelle
-lavena
-lavergne
-laverna
-laverne
-lavers
-laverty
-lavictoi
-lavictor
-lavigne
-laville
-lavina
-lavinia
-lavinie
-laviolet
-lavoie
-lavonda
-lavorata
-law
-lawbaugh
-lawler
-lawless
-lawlis
-lawlor
-lawrence
-lawrie
-lawry
-laws
-lawson
-lawther
-lawton
-lay
-layanand
-layer
-layla
-layne
-layney
-layton
-laz
-lazar
-lazare
-lazaro
-lazarou
-lazarowi
-lazarus
-lazer
-lazlo
-lazure
-lazzara
-lcarrol
-le
-lea
-leader
-leads
-leafloor
-leah
-leahy
-leander
-leandra
-leang
-leann
-leanna
-leanne
-leanor
-leanora
-leaphear
-leary
-leatham
-leathers
-leaton
-leatrice
-leavell
-leaver
-leavitt
-lebaron
-lebars
-lebbie
-lebeau
-lebel
-leblanc
-leblond
-lebo
-lebon
-lecandro
-lecien
-leckie
-leclair
-leclaire
-leclerc
-lecompte
-lecours
-lecouteu
-leda
-ledamun
-leddy
-leder
-lederman
-ledet
-ledford
-ledinh
-ledou
-ledoux
-ledu
-leduc
-ledwell
-lee
-lee-anne
-leeann
-leeanne
-leecia
-leela
-leelah
-leeland
-leena
-leendert
-leenher
-leesa
-leese
-leeson
-leeuwen
-lefebvre
-lefevre
-leffler
-leftwich
-lefty
-legeny
-leger
-legg
-leggett
-legolas
-legra
-legrandv
-legris
-legros
-legrove
-legrow
-legs
-leguen
-lehar
-lehman
-lehmann
-lehrbaum
-lehtinen
-lehtovaa
-lei-see
-leia
-leiba
-leibich
-leibovit
-leibowit
-leiceste
-leicht
-leidenfr
-leiding
-leif
-leigh
-leigha
-leighann
-leighton
-leiker
-leil
-leila
-leilah
-leima
-lein
-leinen
-leisa
-leisha
-leistico
-leita
-leitch
-leite
-leith
-leitman
-leitner
-leitrick
-leiwe
-lek
-lela
-lelah
-leland
-lelia
-lem
-lemaire
-lemar
-lemay
-lemieux
-lemky
-lemley
-lemmie
-lemmy
-lemuel
-lemyre
-len
-lena
-lenard
-lenathen
-lenci
-lendon
-lenee
-lenee'
-lenehan
-lenelle
-lenette
-leney
-lengel
-lenhard
-leni
-lenin
-lenior
-lenir
-lenka
-lenna
-lennard
-lennart
-lennie
-lennig
-lenny
-leno
-lenora
-lenore
-lenox
-lentz
-leny
-lenz
-lenzi
-leo
-leo-miza
-leocadio
-leodora
-leoine
-leola
-leoline
-leon
-leona
-leonanie
-leonard
-leonardo
-leonas
-leone
-leonelle
-leonerd
-leong
-leonhard
-leonid
-leonida
-leonidas
-leonie
-leonor
-leonora
-leonore
-leontine
-leontyne
-leopold
-leora
-leoutsar
-leow
-lepage
-lepine
-lepore
-leppert
-lepreau
-lerch
-leres
-leroi
-leroux
-leroy
-les
-lesa
-lesco
-lescot
-leshia
-leshowit
-lesia
-lesley
-lesli
-leslie
-lesly
-lesmeris
-lesniak
-lesourd
-lesperan
-lessard
-lessin
-lester
-lesway
-lesya
-leta
-letarte
-letchwor
-letendre
-leth
-letha
-lethbrid
-lethebin
-lethia
-leticia
-letisha
-letitia
-letizia
-letourne
-letsome
-lett
-letta
-lettang
-letti
-lettie
-letty
-letulle
-leuenber
-leung
-leupold
-leuty
-lev
-levac
-levasseu
-leveille
-levent
-levere
-levert
-levesque
-levey
-levi
-levin
-levine
-levis
-levisky
-levitin
-levo
-levon
-levy
-lew
-lewandow
-lewek
-lewellen
-lewes
-lewie
-lewinski
-lewis
-lewiss
-lewright
-lex
-lexi
-lexie
-lexine
-lexis
-lexy
-ley
-leyden
-leydig
-leyla
-leyton
-lezlee
-lezley
-lezlie
-lheureux
-li
-li-ming
-li-xi
-lia
-liad
-lial
-liam
-lian
-lian-hon
-liana
-liane
-liang
-liangchi
-lianna
-lianne
-liao
-lias
-liason
-liaurel
-liaw
-lib
-libadmin
-libbey
-libbi
-libbie
-libby
-liber
-libor
-libov
-libraria
-licandro
-licata
-lication
-licerio
-licha
-licht
-lichtenb
-lichtens
-lichum
-lichun
-licia
-lida
-liddell
-liddle
-lidia
-lidio
-lidster
-lidstone
-liduine
-lieberma
-liebrech
-liedl
-lief
-liem
-lien
-lieneman
-lienhard
-liepa
-liesa
-liesbeth
-liese
-liesel
-liesemer
-liesenbe
-liesie
-liesl
-lieure
-lievaart
-liew
-lifshey
-lightfie
-lightfoo
-lighthal
-lighthis
-lightowl
-ligon
-ligurs
-lijphart
-likert
-likourgi
-lil
-lila
-lilah
-lilas
-lili
-lilia
-lilian
-liliana
-liliane
-lilias
-lilin
-lilith
-lilla
-lillenii
-lilli
-lillian
-lillie
-lillien
-lillis
-lilllie
-lilly
-lily
-lilyan
-limeina
-limerick
-limin
-liming
-lin
-lin-chan
-lin-e
-lin-ni
-lina
-linas
-linaugh
-linback
-linberg
-linc
-linchang
-lincoln
-lind
-linda
-linda-jo
-lindamoo
-lindberg
-lindell
-lindemul
-linden
-lindenla
-linder
-lindholm
-lindi
-lindie
-lindler
-lindon
-lindow
-lindquis
-lindsay
-lindsey
-lindstro
-lindsy
-lindt
-lindy
-line
-linea
-linebarg
-linegar
-lineham
-linell
-linet
-lineth
-linette
-linfield
-ling
-ling-hui
-ling-yu
-ling-yue
-ling-zho
-lingafel
-linghui
-lingyan
-lingyu
-linh
-link
-linke
-linklett
-linley
-linn
-linnea
-linnell
-linnet
-linni
-linnie
-lino
-linoel
-linsley
-linton
-linus
-linwood
-linzie
-linzy
-lion
-lionel
-lionello
-liou
-lipari
-lipe
-liping
-lippens
-lippman
-lipschut
-lipscomb
-lipski
-lipton
-lira
-lisa
-lisabeth
-lisah
-lisak
-lisandro
-lisbeth
-lisch
-lischyns
-lise
-lisee
-lisenchu
-lisetta
-lisette
-lish
-lisha
-lishe
-liskoff
-lisle
-liss-mon
-lissa
-lissi
-lissie
-lissmoni
-lissy
-list
-lister
-liston
-listonic
-lita
-litherla
-litt
-littau
-littlewo
-litva
-litz
-litzenbe
-liu
-liuka
-liv
-liva
-livas
-livek
-livengoo
-liverman
-livermor
-lives
-livezey
-livia
-livingst
-livinsto
-livio
-liviu
-livnah
-livshits
-livvie
-livvy
-livvyy
-livy
-liwana
-liwen
-lixi
-liyuan
-liyun
-liz
-liza
-lizabeth
-lizak
-lizbeth
-lizette
-lizz
-lizzi
-lizzie
-lizzy
-ljiljana
-ljilyana
-ljubicic
-llacuna
-llaguno
-llanos
-llewelly
-llopart
-lloyd
-llywelly
-lo
-loa
-loadbuil
-loader
-loadsum
-loan
-loarie
-loay
-lobasso
-lobaugh
-lobello
-lober
-lobianco
-lobin
-lobue
-loc
-locicero
-lock
-lockard
-locke
-locken
-lockett
-lockhart
-lockwood
-lococo
-lodesert
-lodovico
-loe
-loeffler
-loeiz
-loel
-loella
-loes
-loesje
-loewen
-loftis
-logan
-logaraja
-loggins
-loghry
-logntp
-logue
-loh
-lohoar
-loi
-loire
-lois
-loise
-loiseau
-loisel
-lojewski
-loke
-loker
-lola
-loleta
-lolita
-lollis
-lolly
-lombard
-lombardo
-lombardy
-lombrink
-lommen
-lon
-lon-chan
-lona
-lonald
-lonchan
-londhe
-london
-lonee
-lonergan
-long
-long-chu
-longbott
-longcham
-longchun
-longdist
-longfiel
-longhenr
-longo
-longpre
-longsong
-longtin
-lonhyn
-loni
-lonidas
-lonn
-lonna
-lonnard
-lonneke
-lonni
-lonnie
-lonnman
-lonny
-lonsdale
-loo
-loon
-loong
-loos
-looyen
-lope
-loper
-loperena
-lopes
-lopez
-lopiano
-lopinski
-loponen
-loquerci
-lora
-lora-lee
-lorain
-loraine
-loralee
-loralie
-loralyn
-lorance
-lorant
-lorcan
-lord
-loree
-loreen
-lorelei
-lorelle
-lorelynn
-loren
-lorena
-lorenc
-lorene
-lorens
-lorenz
-lorenza
-lorenzen
-lorenzo
-loreta
-loretta
-lorettal
-lorette
-lorfano
-lori
-loria
-lorianna
-lorianne
-lorie
-lorien
-lorilee
-lorilyn
-lorimer
-lorin
-lorincz
-lorinda
-lorine
-loring
-lorint
-loris
-lorita
-lorletha
-lorli
-lormor
-lorna
-lorne
-loro
-lorrain
-lorraine
-lorrayne
-lorrel
-lorri
-lorrie
-lorrin
-lorrine
-lorry
-lortie
-lory
-loryn
-los
-losfeld
-losier
-loso
-losses
-lotan
-lote
-lotfalia
-lotfi
-lothaire
-lothar
-lothario
-lotochin
-lott
-lotta
-lotte
-lotti
-lottie
-lotty
-lotz
-lou
-lou-hell
-louann
-loucel
-loudiadi
-louella
-lough
-loughery
-loughran
-loughrin
-louhelle
-louie
-louiqa
-louis
-louis-ph
-louis-re
-louisa
-louise
-louisett
-louissei
-louk
-louka
-loukas
-louladak
-lourdes
-loutitia
-loux
-lovas
-lovatt
-loveday
-lovegrov
-lovejoy
-lovekin
-lovelace
-loveland
-loveless
-lovell
-lovett
-lovin
-lovina
-lovitt
-lowder
-lowe
-lowell
-lowery
-lowietje
-lowman
-lowrance
-lowrie
-lowry
-lowther
-loxton
-loy
-loyd
-loydie
-loyer
-loyola
-loyst
-loza
-lozier
-lozinski
-lpo
-lrc
-lrcrich
-lrcrtp
-lsi
-lsiunix
-lu
-luan
-luann
-luanne
-lubliner
-lubna
-lubomir
-lubomyr
-luc
-luca
-lucais
-lucas
-lucco
-luce
-lucente
-lucey
-lucho
-luci
-lucia
-lucian
-luciana
-luciani
-luciano
-lucias
-lucie
-lucien
-lucienne
-lucifer
-lucila
-lucile
-lucilia
-lucille
-lucina
-lucinda
-lucine
-lucio
-lucita
-lucius
-lucking
-lucky
-lucretia
-lucy
-ludchen
-ludovico
-ludovika
-ludvig
-ludvikse
-ludwick
-ludwig
-lue
-luella
-luelle
-luen
-luetchfo
-luetke
-luettcha
-luff
-lugsdin
-lugwig
-luh-maan
-luhcs
-luhmaan
-lui
-luigi
-luin
-luis
-luisa
-luise
-luiza
-lujanka
-luk
-luk-shun
-lukas
-lukassen
-lukaszew
-luke
-luker
-lukers
-lukic
-lukie
-lukshis
-lukshun
-lula
-lulita
-lulu
-lum
-lum-wah
-lumley
-lumsden
-lun
-luna
-lund
-lunde
-lundhild
-lundstro
-lundy
-lunk
-lunn
-luoedora
-luoma
-luong
-lupatin
-lupher
-lupien
-luping
-luquire
-lura
-lurette
-luria
-lurleen
-lurlene
-lurline
-lusa
-luscombe
-lussier
-luszczek
-lutan
-lutero
-luther
-luthin
-lutz
-luu
-luuk
-luwemba
-luxford
-luying
-luyten
-luz
-luzarrag
-luzine
-ly
-ly-khanh
-lyall
-lychak
-lyda
-lydda-ju
-lydia
-lydie
-lydon
-lyell
-lyle
-lyliston
-lyman
-lyn
-lynda
-lyndal
-lynde
-lyndel
-lyndell
-lyndia
-lyndon
-lyndsay
-lyndsey
-lyndsie
-lyndy
-lyne
-lynea
-lynelle
-lynett
-lynetta
-lynette
-lynham
-lynn
-lynna
-lynne
-lynnea
-lynnell
-lynnelle
-lynnet
-lynnett
-lynnette
-lynsey
-lynton
-lynwood
-lyon
-lyons
-lyse
-lysinger
-lyssa
-lystad
-lystiuk
-lystuik
-lysy
-lytle
-lzrd
-maahs
-maaike
-maala
-maan
-maarten
-maas
-mab
-mabel
-mabelle
-mabes
-mable
-mabson
-mabuchi
-mac
-mac maid
-macadams
-macalik
-macarthu
-macaulay
-macbride
-maccallu
-maccarth
-macchius
-maccombi
-macconai
-maccorma
-macderma
-macdonal
-macdonel
-macdouga
-macdowal
-macduff
-mace
-macelwee
-macfarla
-macgilli
-macgrego
-mach
-machan
-machatti
-machika
-machnick
-maciej
-maciejew
-maciel
-macinnes
-macinnis
-macisaac
-maciver
-mack
-mackay
-mackel
-mackenzi
-mackey
-mackin
-mackinno
-macklem
-macklin
-mackzum
-maclaren
-maclauri
-maclean
-maclella
-maclenna
-macleod
-macmarti
-macmeeki
-macmilla
-macmulli
-macnaugh
-macneil
-macneill
-macnicol
-macoosh
-macphail
-macphers
-macpost
-macquist
-macrae
-macreyno
-macsuppo
-mada
-madalena
-madalene
-madalyn
-madan
-madani
-maddalen
-maddi
-maddie
-maddix
-maddox
-maddy
-madel
-madelain
-madelein
-madelena
-madelene
-madelin
-madelina
-madeline
-madella
-madelle
-madelon
-madelyn
-mader
-madge
-madgett
-madhav
-madhavan
-madhu
-madhukar
-madigan
-madill
-madisett
-madison
-madl
-madlen
-madlin
-mado
-madonna
-madras
-madsen
-maduri
-mady
-mae
-maegan
-maennlin
-maenpaa
-maeya
-mag
-magbee
-magda
-magdaia
-magdale
-magdalen
-magdi
-magdiel
-magdy
-mage
-maged
-magee
-mages
-maggee
-maggi
-maggie
-maggy
-maghsood
-maginley
-maglione
-magnan
-magnolia
-magnum
-magnuson
-magnusse
-magnusso
-magrath
-magri
-mags
-maguire
-mah
-mahaffee
-mahala
-mahalia
-mahaling
-mahbeer
-mahboob
-mahendra
-maher
-mahesh
-maheu
-maheux
-mahfouz
-mahibur
-mahiger
-mahin
-mahlen
-mahlig
-mahlon
-mahmood
-mahmoud
-mahmud
-mahmut
-mahn
-mahon
-mahonen
-mahoney
-mahoney-
-mahshad
-mai
-maia
-maible
-maid
-maidenhe
-maidens
-maidisn
-maidlab
-maidsir
-maidxpm
-maier
-maiga
-maighdil
-maijala
-maika
-maikawa
-maikhanh
-mail
-mailroom
-mainardi
-maine
-mainoo
-maint
-mainvill
-mainwari
-mair
-maire
-maisey
-maisie
-maison
-maisonne
-maitilde
-maitland
-maitreya
-majd
-maje
-majeed
-majek
-majella
-majernik
-majid
-majmudar
-major
-majors
-majumdar
-majury
-mak
-makam
-makarand
-makarenk
-makary
-makeda
-makiko
-makino
-makinson
-makohoni
-makoid
-makoto
-maksoud
-maksuta
-mal
-mala
-malachi
-malaclyp
-malaher
-malaika
-malaivon
-malam
-malani
-malanie
-malanos
-malavia
-malaysia
-malchy
-malcolm
-malden
-malec
-malee
-malek
-malena
-maleski
-malethia
-malgorza
-malgosia
-malhi
-malhotra
-malia
-maliepaa
-malik
-malina
-malinda
-malinde
-malisic
-maliski
-malissa
-malissia
-malizia
-malkani
-malkiewi
-malkinso
-mallari
-malle
-mallejac
-maller
-mallett
-mallik
-mallissa
-mallorie
-mallory
-malloy
-mallozzi
-malmqvis
-malone
-maloney
-malorie
-malory
-malott
-malta
-maltby
-maltese
-maludzin
-malus
-malva
-malvin
-malvina
-malynda
-malynne
-malynows
-malyszka
-malzahn
-mame
-mami
-mamie
-mamikuni
-mamoru
-mamoulid
-man
-man-fai
-manageme
-manager
-manahil
-manalac
-manami
-manas
-manavend
-manceau
-manchest
-mancini
-mand
-manda
-mandana
-mandayam
-mandel
-mandevil
-mandi
-mandie
-mandrusi
-mandruso
-mandy
-maneatis
-manek
-maness
-manette
-manfred
-manfredo
-mang
-mangione
-mangum
-manh
-manhatte
-mani
-manica
-manickam
-manijeh
-manilal
-manimozh
-maninder
-manish
-manitius
-manitsas
-manjari
-manjeri
-manjinde
-manjit
-manjrike
-mankowsk
-manley
-manli
-manly
-manmohan
-mann
-manna
-manner
-manners
-mannie
-manning
-mannino
-mannion
-manno
-manny
-mano
-manoel
-manoharm
-manoj
-manol
-manolios
-manolis
-manolo
-manon
-manou
-manouch
-manoukia
-mansbrid
-mansell
-manshih
-mansi
-manson
-mansour
-mansoura
-mansouri
-mansukha
-mansum
-mantell
-manto
-manuel
-manuela
-manus
-manuszak
-manverse
-manwarin
-manya
-mao
-maohua
-mapes
-mapile
-mapp
-mar
-mara
-marabel
-maracle
-maragoud
-marano
-marasco
-marasliy
-marc
-marc-and
-marc-ant
-marcanti
-marcanto
-marce
-marceau
-marcel
-marcela
-marcelia
-marcelis
-marcella
-marcelle
-marcelli
-marcello
-marcellu
-marcelo
-marcey
-march
-marchall
-marchand
-marchant
-marcheck
-marchell
-marchese
-marchett
-marci
-marcia
-marcie
-marcile
-marcilie
-marcille
-marciniu
-marcio
-marco
-marcom
-marconi
-marcos
-marcotte
-marcoux
-marcum
-marcus
-marcy
-mardi
-marea
-mareah
-marek
-marella
-maren
-marena
-marenger
-maressa
-marette
-marg
-marga
-margalit
-margalo
-margaret
-margarie
-margarit
-margaux
-marge
-margeaux
-margery
-marget
-margetso
-margette
-margheri
-margheti
-margi
-margie
-margit
-margitta
-margo
-margot
-margret
-margriet
-margueri
-margy
-marhta
-mari
-maria
-mariabel
-mariaele
-mariaisa
-mariam
-marian
-mariana
-mariani
-mariann
-marianna
-marianne
-maribel
-maribell
-maribeth
-marice
-maridel
-marie
-marie-an
-marie-je
-marie-jo
-marie-lu
-marie-na
-marieann
-mariejea
-marieka
-marieke
-mariel
-mariela
-mariele
-marielle
-mariesar
-mariet
-marietta
-mariette
-marigold
-marijke
-marijn
-marijo
-marika
-mariland
-marilee
-marilin
-marillin
-marily
-marilyn
-marilynn
-marin
-marina
-marinaro
-marineau
-marinett
-marinna
-marino
-marinos
-mario
-marion
-mariotti
-mariou
-mariquil
-maris
-marisa
-marisca
-marisela
-mariska
-marissa
-marit
-marita
-maritan
-maritsa
-maritza
-marius
-mariya
-mariza
-marj
-marja
-marjan
-marje
-marjean
-marjet
-marji
-marjie
-marjo
-marjoke
-marjolei
-marjorie
-marjory
-marjy
-mark
-markell
-markes
-marketa
-marketin
-markham
-markiewi
-markins
-markland
-markle
-markm
-markmeye
-marko
-markos
-markovic
-marks
-markus
-marla
-marlaine
-marlane
-marleah
-marleau
-marlee
-marlee-j
-marleejo
-marleen
-marlena
-marlene
-marley
-marlie
-marlies
-marlin
-marline
-marling
-marlo
-marloes
-marlon
-marlow
-marlowe
-marlsela
-marlyn
-marlyne
-marmaduk
-marmen
-marmillo
-marmion
-marna
-marne
-marneris
-marney
-marni
-marnia
-marnie
-marnix
-maroucho
-maroun
-marples
-marquart
-marquez
-marquita
-marr
-marra
-marrec
-marren
-marrett
-marriet
-marrilee
-marriott
-marris
-marrissa
-marron
-marrone
-marryann
-mars
-marscha
-marschew
-marsden
-marsh
-marsha
-marshal
-marshall
-marshaus
-marshman
-marsie
-marsiell
-marson
-marston
-mart
-marta
-martainn
-martel
-martell
-martelle
-marten
-martens
-martenso
-martenst
-martguer
-martha
-marthe
-marthena
-marti
-martica
-martie
-martijn
-martin
-martina
-martince
-martinci
-martine
-martinea
-martinez
-marting
-martino
-martins
-martinus
-martita
-marttine
-marturan
-marty
-martyn
-martynne
-marui
-marum
-maruszak
-maruszew
-marv
-marve
-marvel
-marvell
-marven
-marvette
-marvin
-marwan
-marwin
-marx
-mary
-mary-ann
-mary-ell
-mary-jan
-mary-jo
-mary-mic
-mary-pat
-marya
-maryak
-maryam
-maryann
-maryanna
-maryanne
-marybell
-marybeth
-maryelle
-maryjane
-maryjo
-marykate
-marykay
-maryl
-marylee
-marylin
-marylind
-marylou
-marylynn
-marymarg
-maryn
-maryrose
-marys
-marysa
-maryse
-marysue
-maryvonn
-marzella
-marzullo
-masa
-masahiro
-masako
-masales
-masamich
-masanao
-masanobu
-masao
-masapati
-masaru
-masciare
-masha
-mashura
-masika
-masini
-maskell
-maskery
-maslen
-maso
-mason
-masood
-masooda
-masotti
-masoud
-masse
-massengi
-massey
-massicot
-massimil
-massimo
-massinga
-masson
-massone
-massonne
-massoud
-massoudi
-massumi
-mastella
-mastenbr
-masterpl
-masters
-masterso
-mastrang
-mastroma
-mastrona
-masty
-mat
-mata
-mataga
-matalon
-matatall
-matelda
-mateo
-materkow
-materna
-mathe
-mather
-matheson
-mathew
-mathews
-mathewso
-mathian
-mathias
-mathieso
-mathieu
-mathilda
-mathilde
-mathis
-mathiue
-mathur
-mathurin
-mathus
-matias
-matibag
-matilda
-matilde
-matlock
-matney
-matrin
-matrundo
-mats
-matson
-matsubar
-matsugu
-matsunag
-matsushi
-matsuzak
-matsuzaw
-matt
-matteau
-matteo
-mattes
-matthaeu
-mattheus
-matthew
-matthews
-matthias
-matthieu
-matthiew
-matthus
-matti
-mattias
-mattie
-mattiuss
-mattiuz
-matton
-mattson
-matty
-matusik
-mau
-mau-pin
-mauck
-maud
-maudalis
-maude
-maudie
-maudrie
-maudy
-mauer
-mauldin
-maund
-mauney
-maunu
-maupin
-maura
-maure
-maureen
-maureene
-maurene
-maurer
-maurice
-mauricio
-maurie
-maurijn
-maurine
-maurino
-maurise
-maurita
-maurits
-maurizia
-maurizio
-mauro
-maury
-maveety
-mavis
-mavra
-mavrou
-mawani
-mawji
-mawst
-max
-maxey
-maxi
-maxie
-maxim
-maximili
-maximo
-maxin
-maxine
-maxseine
-maxsom
-maxwell
-maxy
-may
-maya
-mayaram
-mayasand
-maybee
-maybelle
-maycel
-maycock
-maye
-mayea
-mayenbur
-mayer
-mayes
-mayeul
-mayfield
-mayhugh
-mayi
-maylynn
-mayman
-maynard
-mayne
-maynes
-maynie
-maynord
-mayo
-mayor
-mayoux
-mayr
-mayr-ste
-mays
-mayumi
-mayya
-mazahir
-mazanji
-mazarick
-mazen
-mazey
-mazlack
-mazurek
-mazyar
-mazzei
-mbrose
-mc
-mc alpin
-mc ginn
-mcadam
-mcadams
-mcadorey
-mcafee
-mcalear
-mcaleer
-mcaliste
-mcallist
-mcallum
-mcandrew
-mcarthur
-mcateer
-mcaulay
-mcauliff
-mcbeth
-mcbrayne
-mcbride
-mcbroom
-mcbryan
-mccabe
-mccaffer
-mccaffit
-mccaffre
-mccaig
-mccain
-mccall
-mccalla
-mccallen
-mccallum
-mccampbe
-mccandle
-mccann
-mccarrel
-mccarrol
-mccarron
-mccarthy
-mccartin
-mccartne
-mccarty
-mccaughe
-mccauley
-mccaw
-mcclain
-mcclarre
-mcclary
-mcclean
-mccleery
-mcclella
-mcclendo
-mcclenno
-mcclinto
-mccloske
-mcclough
-mcclure
-mccluske
-mcclymon
-mccoll
-mccollam
-mccollum
-mccolman
-mccomb
-mccombs
-mcconagh
-mcconkey
-mcconnel
-mcconney
-mccord
-mccorkel
-mccorkle
-mccormac
-mccormic
-mccorquo
-mccoy
-mccoy-ca
-mccracke
-mccrain
-mccraney
-mccray
-mccready
-mccreano
-mccrear
-mccreath
-mccreesh
-mccrimmo
-mccuaig
-mccue
-mccullen
-mcculloc
-mccullog
-mccullou
-mccully
-mccune
-mccurdy
-mccusker
-mcdade
-mcdaniel
-mcdavitt
-mcdermot
-mcdevitt
-mcdonald
-mcdonnel
-mcdonoug
-mcdoom
-mcdougal
-mcdowall
-mcdowell
-mcduffie
-mcdunn
-mceacher
-mcelderr
-mcelhone
-mcelligo
-mcellist
-mcelrea
-mcelroy
-mcevoy
-mcewan
-mcewen
-mcewen-r
-mcfadden
-mcfall
-mcfarlan
-mcfeely
-mcgallia
-mcgarry
-mcgaughe
-mcgee
-mcgehee
-mcgeown
-mcghee
-mcgill
-mcgillic
-mcgillvr
-mcgilly
-mcginley
-mcginn
-mcglynn
-mcgonagl
-mcgoniga
-mcgorman
-mcgough
-mcgovern
-mcgowan
-mcgracha
-mcgrath
-mcgregor
-mcgruder
-mcguigan
-mcguinne
-mcguire
-mcgurn
-mchale
-mchan
-mcharg
-mchugh
-mcilrath
-mcilroy
-mcinerne
-mcinnis
-mcintee
-mcintire
-mcintomn
-mcintosh
-mcintyre
-mcisaac
-mciver
-mckay
-mckeage
-mckeague
-mckearne
-mckechni
-mckee
-mckeegan
-mckeen
-mckeigha
-mckeitha
-mckenna
-mckenney
-mckenzie
-mckeone
-mckeown
-mckerrow
-mckibben
-mckibbin
-mckibbon
-mckie
-mckillop
-mckinlay
-mckinley
-mckinney
-mckinnon
-mcknelly
-mcknight
-mckusick
-mclachla
-mclaren
-mclauchl
-mclaughl
-mclawhon
-mclawhor
-mclean
-mclellan
-mclemore
-mclenagh
-mclendon
-mclennan
-mcleod
-mcluskie
-mcmahan
-mcmahon
-mcmanis
-mcmann
-mcmannen
-mcmanus
-mcmaster
-mcmeegan
-mcmenami
-mcmichae
-mcmillan
-mcmillen
-mcmillia
-mcmillio
-mcminn
-mcmonagl
-mcmullen
-mcmullin
-mcmurray
-mcnab
-mcnabb
-mcnair
-mcnally
-mcnamara
-mcnamee
-mcnaught
-mcneal
-mcnealy
-mcneely
-mcneese
-mcneil
-mcneill
-mcneilly
-mcnerlan
-mcnerney
-mcnichol
-mcnicol
-mcniel
-mcnitt
-mcnulty
-mcphaden
-mcphail
-mcphee
-mcpherso
-mcquaid
-mcquaig
-mcquarri
-mcqueen
-mcrae
-mcrann
-mcready
-mcritchi
-mcronald
-mcruvie
-mcshane
-mcsheffr
-mcsorley
-mcsween
-mctaggar
-mctavish
-mctierna
-mcturner
-mcvay
-mcveety
-mcveigh
-mcvey
-mcvicar
-mcvicker
-mcwalter
-mcwaters
-mcwherte
-mcwhinne
-mcwhorte
-mcwilton
-mdhazali
-mduduzi
-me
-meachum
-mead
-meade
-meadows
-meads
-meagan
-meaghan
-meagher
-mealin
-meany
-meara
-measures
-mebine
-mechael
-meche
-mechelle
-mecher
-meckler
-meckley
-mecteau
-medefess
-medeiros
-medel
-meder
-medill
-medioni
-medlin
-medlock
-mednick
-medria
-meehan
-meeks
-meena
-meenaksh
-meer
-meera
-meerveld
-meese
-meeting
-meffe
-meg
-megan
-megen
-meggi
-meggie
-meggitt
-meggo
-meggy
-meghan
-meghani
-meghann
-megumi
-mehboob
-mehd
-mehdi
-mehelis
-mehetabe
-mehlhaff
-mehmet
-mehmud
-mehrdad
-mehrez
-mehrzad
-mehta
-mehul
-mei
-mei-jywa
-meier
-meijer
-meijywan
-meikle
-meilleur
-mein
-meining
-meir
-meiser
-meisner
-meissner
-mejdal
-mejia
-mejury
-mel
-mela
-melamie
-melana
-melani
-melania
-melanie
-melanson
-melantha
-melany
-melaura
-melba
-melberta
-melbourn
-meldia
-meldrum
-melecio
-meleg
-melek
-melesa
-meleski
-meleskie
-melessa
-meletios
-melfi
-melford
-melhem
-meli
-melicent
-melina
-melinda
-melinde
-melinie
-melisa
-melisand
-melisend
-melisent
-melissa
-melisse
-melita
-melitta
-melkild
-mella
-melli
-mellicen
-mellie
-mellisa
-mellisen
-mello
-melloney
-mellor
-melly
-melnyk
-melodee
-melodie
-melody
-meloling
-meloney
-melonie
-melony
-melosa
-melton
-melucci
-melva
-melvin
-melvina
-melvyn
-melynda
-men-kae
-menaker
-menard
-menasce
-menashi
-menashia
-mencer
-mendel
-mendelso
-mendez
-mendie
-mendolia
-mendonca
-mendorf
-mendoza
-mendy
-menechia
-menendez
-meng
-mengly
-menkae
-menke
-menna
-mennie
-menon
-menqiong
-mensch
-mensinka
-mentor
-menyhart
-menzel
-menzies
-mer
-merat
-merb
-mercedes
-mercer
-merci
-mercie
-mercier
-mercilin
-mercy
-merdia
-meredeth
-meredith
-merell
-merelyn
-meres
-mereu
-meriann
-meridel
-meridew
-meridian
-meridith
-meriel
-merilee
-meriline
-merill
-merilyn
-merinder
-meris
-merissa
-meriweth
-merizzi
-merkling
-merl
-merla
-merle
-merlin
-merlina
-merline
-mermelst
-merna
-merola
-merralee
-merrel
-merrett
-merrick
-merridie
-merrie
-merriell
-merrile
-merrilee
-merrili
-merrill
-merrills
-merrils
-merrily
-merrithe
-merritt
-merry
-merryman
-merrywea
-mersch
-mersey
-mersinge
-merton
-merunix
-merv
-mervin
-mervyn
-merwin
-merworth
-merwyn
-meryl
-merylene
-meseberg
-mesirov
-meskimen
-mesko
-mesquita
-message
-messer
-messeria
-messersc
-messick
-messier
-messinge
-mesut
-meszaros
-meta
-metcalf
-metcalfe
-metelski
-meter
-metheny
-metherel
-methi
-methiwal
-methot
-methul
-metin
-metler
-metraile
-metrics
-mettrey
-metyn
-metz
-metzger
-metzler
-meubus
-meunier
-mevis
-mewa
-meyer
-meyerink
-meyers
-meza
-mezzano
-mezzoius
-mfgeng
-mgmt
-mia
-miao
-miasek
-mic
-micaela
-micah
-micahel
-miceli
-micgael
-micha
-michael
-michael-
-michaela
-michaeli
-michaell
-michaels
-michaez
-michail
-michailo
-michal
-michale
-michalos
-michaud
-micheal
-micheil
-michel
-michele
-michelin
-michell
-michella
-michelle
-michels
-michelse
-michelso
-michelus
-michi
-michial
-michie
-michiel
-michigan
-michihir
-michiko
-michiya
-mick
-mickens
-mickey
-micki
-mickie
-micklos
-micky
-mico
-micro
-microfab
-micucci
-mid
-middlebr
-middleto
-midge
-midha
-miek
-mielke
-miello
-miep
-miernik
-miers
-mierwa
-mietek
-miezitis
-migdalia
-mignault
-mignon
-mignonne
-miguel
-miguela
-miguelit
-mihaela
-mihai
-mihail
-mihan
-mihara
-mihir
-mihm
-miho
-mihran
-mika
-mikael
-mikaela
-mike
-mikel
-mikelis
-mikeloni
-mikey
-mikhail
-miki
-mikie
-mikihito
-mikkel
-miklos
-miko
-mikol
-miksik
-mikulka
-mil
-mila
-milaknis
-milakovi
-milan
-milanfar
-milanovi
-milar
-milary
-milburn
-mildred
-mildrid
-mile
-milena
-miles
-milford
-milian
-milicent
-milind
-milinkov
-milissen
-milka
-mill
-millaire
-millar
-millard
-millen
-miller
-millero
-millerwo
-millette
-milletti
-milli
-millicen
-millie
-milligan
-millisen
-millo
-milloy
-mills
-millspau
-millward
-milly
-milman
-milmine
-milne
-milner
-milo
-milor
-milotte
-milou
-milstead
-milston
-milt
-miltenbu
-miltie
-milton
-miltos
-milty
-milutino
-milway
-milzie
-mim
-mimi
-mims
-min
-min-jho
-mina
-minai
-minakata
-minako
-minami
-minard
-minas
-mincey
-minck
-minda
-mindy
-minegish
-miner
-minerva
-minesh
-minetola
-minetta
-minette
-ming
-ming-cha
-ming-chu
-ming-hue
-ming-min
-ming-pin
-ming-tzo
-ming-yua
-mingchu
-minghuei
-minghwan
-mingpin
-mingtzon
-mingyuan
-minh
-minh-phu
-minhwi
-minichil
-minjho
-minkus
-minna
-minnamin
-minne
-minnesot
-minni
-minniche
-minnie
-minnnie
-minny
-minor
-minority
-minoru
-minos
-minshall
-minsky
-minta
-minter
-minthorn
-minyard
-minzhu
-miodrag
-miof mel
-mior
-miotla
-mips
-miquela
-miquette
-mir
-mira
-mirabel
-mirabell
-miran
-miranda
-mirande
-mirarchi
-mireiell
-mireille
-mirek
-mirella
-mirelle
-mirenda
-miriam
-miriamne
-mirian
-mirilla
-mirin
-mirjam
-mirko
-mirna
-miro
-miron
-miroslav
-miroslaw
-mirza
-mis
-misbah
-mischa
-misczak
-misha
-mishina
-misium
-miskelly
-misko
-misra
-miss
-missagh
-missaili
-missie
-misslitz
-missy
-mister
-misti
-mistry
-mistulof
-misty
-misutka
-mitalas
-mitch
-mitchael
-mitchel
-mitchell
-mitchels
-mitchler
-mitesh
-mitra
-mitrani
-mitrou
-mitsui
-mitsuko
-mitsuru
-mitsuter
-mittleid
-mitzi
-mivehchi
-miwa
-miwako
-miyuki
-mizerk
-mkpwent
-mkt
-mlacak
-mlcoch
-mmail
-mmdf
-mnason
-mo
-moataz
-moazzami
-mobasher
-mobley
-mocock
-modaffer
-modesta
-modestia
-modestin
-modestos
-modestou
-modesty
-modh
-modi
-modigh
-modl
-modotto
-modula-2
-modula2
-moe
-moebes
-moel
-moen
-moening
-moeschet
-moetteli
-moffatt
-moffet
-moffett
-mofina
-moghe
-moghis
-mogridge
-moh
-moh'd
-mohajeri
-mohamad
-mohamed
-mohammad
-mohammed
-mohan
-mohandas
-mohandis
-moharram
-mohd
-mohideen
-mohler
-mohr
-mohrmann
-mohsen
-moina
-moira
-moise
-moises
-moishe
-moiz
-moizer
-moja
-mojgani
-mojtaba
-mok
-mok-fung
-mokbel
-mokhtar
-mokros
-molani
-moledina
-moleski
-moll
-mollee
-mollerus
-molli
-mollie
-molloy
-molly
-molnar
-molochko
-moloney
-molson
-molyneux
-mombourq
-mommy
-momon
-momtahan
-mona
-monachel
-monaco
-monaghan
-monah
-monahan
-monardo
-moncef
-moncion
-monck
-moncur
-mondher
-mondor
-monet
-monette
-moneypen
-monforto
-monfre
-mong
-mong-tse
-mongo
-mongtsen
-moni
-monica
-moniek
-monika
-monino
-monique
-moniter
-monling
-monn
-monro
-monroe
-monson
-montag
-montague
-montaldo
-montanez
-montange
-montanin
-montcalm
-monte
-monteene
-monteggi
-monteiro
-montelli
-montero
-monteros
-montgome
-monti
-montijo
-montmore
-montor
-montoute
-montoya
-montreal
-montreui
-montsion
-montsko
-montuno
-monty
-mony
-monzo
-moo-youn
-mooder
-moogk
-mooken
-moomey
-moon
-moondog
-mooney
-moonistt
-moorcrof
-moore
-moore-vi
-moorefie
-moorer
-moores
-moorhous
-moosavi
-mora
-moraetes
-morais
-morales
-moran
-moray
-morcinel
-mord
-mordecai
-mordecha
-morden
-mordy
-morearty
-moreau
-moree
-moreen
-morehead
-morek
-moreland
-morelli
-morena
-moreno
-moreton
-morettin
-morey
-morgan
-morgan-c
-morgana
-morganic
-morganne
-morgen
-morglan
-morgun
-mori
-moria
-moriarty
-morie
-morimoto
-morin
-morini
-morino
-moris
-morishig
-morissa
-morisset
-moritz
-moriyama
-morlee
-morley
-morly
-morna
-morneau
-morocz
-moroney
-moroz
-morra
-morreale
-morrie
-morrin
-morris
-morrison
-morrisse
-morry
-morse
-morson
-mort
-morten
-morteza
-mortie
-mortimer
-morton
-morty
-moschopo
-mose
-moseby
-moselle
-moser
-moses
-mosetta
-moshe
-moshinsk
-moshiri
-moshtagh
-moshy
-mosis
-moskalik
-mosley
-moss
-mostafa
-mostovac
-mosur
-mot
-motashaw
-motasim
-motaz
-mote
-motoko
-mototsun
-mott
-motwani
-mou
-moua
-mouat
-moubarak
-mougy
-mouillau
-moulds
-moulsoff
-moulton
-mouna
-mounir
-mountfor
-moussa
-mousseau
-moussett
-moveline
-movies
-mowat
-mowbray
-mowle
-moxham
-moxley
-moxon
-moy
-moya
-moyano
-moyce
-moyenda
-moyer
-moyers
-moyes
-moyna
-moynihan
-moyoli
-moyra
-mozart
-mozek
-mozelesk
-mozelle
-mozes
-mraz
-mrozinsk
-mrugesh
-msg
-mshia
-mtcbase
-mtl
-mtlipadm
-mtnview
-mu-cheng
-mucci
-mucheng
-muchow
-mucklow
-mudd
-mudge
-mudie
-mudry
-muehle
-mueller
-muenster
-muffin
-mufi
-mufinell
-mufti
-mugniot
-muh-cher
-muhammad
-muhammed
-muhchern
-mui
-muinck
-muir
-muire
-muise
-mujahed
-mukai
-mukhar
-mukharji
-mukherje
-mukhopad
-mukul
-mukund
-mulder
-mulders
-muldoon
-mulero
-mulherka
-mulholla
-mullaly
-mullaney
-mullarne
-mullen
-muller
-mullett
-mullin
-mullinix
-mullins
-mulmuley
-mulot
-mulqueen
-mulroney
-multispe
-mulumba
-mulvie
-mumford
-mumma
-mummy-cr
-mun-choo
-mun-hang
-munaz
-munchoon
-munden
-mundi
-mundy
-muni
-munikoti
-munir
-muniz
-munjal
-munmro
-munn
-munna
-munns
-munro
-munroe
-munsey
-munson
-munter
-munz
-munzer
-muqarrab
-muradia
-muralidh
-murash
-murat
-murawski
-murchiso
-murdaugh
-murdeshw
-murdoch
-murdock
-mureil
-murial
-muriel
-murielle
-murison
-murnagha
-muro
-murock
-murph
-murphin
-murphy
-murphy-k
-murray
-murrell
-murrill
-murrin
-murris
-murry
-murson
-murtagh
-murtaza
-murthy
-murton
-murty
-murveit
-murvyn
-musa
-musca
-musclow
-muselik
-musen
-musgrove
-musick
-mussalle
-mussar
-musselwh
-musser
-mustafa
-mustapha
-mustillo
-mutcher
-muth
-muthuswa
-mutikain
-mutsuo
-muttaqi
-muus
-muzio
-muzz
-mwa
-my
-mya
-myatt
-myca
-mycah
-mychal
-myer
-myers
-myers-pi
-myhill
-mykitysh
-myla
-myles
-mylne
-mylo
-mymryk
-myong
-myoung
-myra
-myrah
-myranda
-myre
-myriam
-myrick
-myrilla
-myrillas
-myrle
-myrlene
-myrna
-myron
-myroon
-myrta
-myrthill
-myrtia
-myrtice
-myrtie
-myrtille
-myrtle
-myrvyn
-myrwyn
-mysore
-mystkows
-myung
-myunghee
-myungho
-nabeel
-nabeil
-nabil
-nabisco
-nabors
-nace
-nachtshe
-nachum
-nad
-nada
-nadav
-nadean
-nadeau
-nadeau-d
-nadeem
-nadeen
-nadel
-nader
-nadezhda
-nadi
-nadia
-nadim
-nadine
-nadir
-nadiya
-nadler
-nadolny
-nadon
-nady
-nadya
-nae-ming
-naem
-naeming
-nafezi
-nafsika
-nagai
-nagaraj
-nagaraja
-nagaratn
-nagarur
-nagel
-nagendra
-nagenthi
-nagle
-naguib
-nagy
-nagys
-nahabedi
-nahas
-nahata
-nahid
-nahmias
-nahornia
-nahum
-naile
-naim
-naima
-naimpall
-nair
-nairn
-naismith
-najafi
-naji
-najib
-nakagome
-nakamura
-nakano
-nakatsu
-nakhla
-nakhoul
-nakina
-nakonecz
-nalani
-naldrett
-nalin
-nall
-nallenga
-nam
-nam-kiet
-nam-soo
-namasiva
-nambride
-namdar
-nami
-namiki
-namont
-namrata
-nan
-nana
-nanamiya
-nananne
-nance
-nancee
-nancey
-nanci
-nancie
-nancy
-nancyjea
-nanda
-nandakum
-nandan
-nandi
-nandita
-nando
-nanete
-nanette
-nang
-nani
-nanice
-nanine
-nannette
-nanni
-nannie
-nanny
-nanon
-naohiko
-naoko
-naolu
-naoma
-naomi
-naor
-naoto
-naoum
-nap
-naparst
-napert
-naphan
-naphtali
-napier-w
-napke
-napoleon
-napper
-nappie
-nappy
-nara
-narasimh
-narayan
-narayana
-narciso
-narda
-nardiell
-naren
-narendra
-naresh
-nari
-narida
-nariko
-narinder
-naro
-narraway
-narrima
-narron
-narsimha
-nasato
-naser
-nash
-nashib
-nashif
-nashir
-nashvill
-nasir
-nason
-nass
-nasser
-nassoy
-nassr
-nasvin
-nat
-nata
-natal
-natala
-natale
-natalee
-natalia
-natalie
-natalina
-nataline
-nataliya
-nataly
-natalya
-nataniel
-nataraja
-natascha
-natasha
-natasja
-natassia
-natassja
-natchez
-nate
-nath
-nathalia
-nathalie
-nathan
-nathanae
-nathania
-nathanie
-nathanil
-nathoo
-national
-natiuk
-nativida
-natka
-natkin
-natraj
-natty
-natver
-natvidad
-naufal
-naugle
-naujokas
-naujoks
-nault
-nava
-naval
-navalta
-navaratn
-navarre
-navarro
-naveda
-naveed
-naveen
-navid
-navneet
-nawa
-nawaby
-nayan
-naybor
-naylor
-nayman
-nayneshk
-nayyer
-nazanin
-nazardad
-nazeh
-nazi
-nazib
-nazli
-nazman
-ncc
-ndububa
-ne-regio
-neal
-neala
-neale
-neall
-nealon
-nealson
-nealy
-neamtu
-neander
-nearing
-nearyrat
-neate
-neault
-nebel
-ned
-neda
-nedda
-nedderma
-neddie
-neddy
-nedi
-needham
-neefs
-neel
-neely
-neena
-neene
-neeraj
-neetu
-nefen
-neff
-negandhi
-negar
-neghabat
-negrich
-nehemiah
-nehring
-neibauer
-neider
-neidy
-neifert
-neil
-neila
-neile
-neill
-neilla
-neille
-neilly
-neils
-neilsen
-neilson
-neisius
-neitzel
-nekueey
-nel
-nelda
-nelia
-nelie
-nelken
-nell
-nelle
-nelleke
-nelli
-nellie
-nellis
-nelly
-nelon
-nels
-nelsen
-nelson
-nemec
-nemes
-nemeth
-nemirovs
-nenad
-neng-chu
-nengchun
-nentwich
-neoh
-nerby
-nereida
-nerem
-nerissa
-nerita
-nermana
-nero
-neron
-nert
-nerta
-nerte
-nerti
-nertie
-nerty
-nesbitt
-nesralla
-ness
-nessa
-nessi
-nessie
-nessman
-nessy
-nesta
-neste
-nester
-nestor
-netas
-netdbs
-netdev
-netherso
-netick
-netlink
-neto
-netta
-netteam
-netti
-nettie
-nettle
-nettles
-netto
-netty
-network-
-networkr
-networks
-netzke
-neubauer
-neudeck
-neufeld
-neuman
-neumann
-neumeist
-neureuth
-neuschwa
-neustift
-neusy
-nev
-neva
-nevardau
-nevein
-nevil
-nevile
-neville
-nevin
-nevins
-nevison
-nevrela
-nevsa
-new
-newberry
-newbold
-newby
-newcomb
-newcombe
-newell
-newham
-newhook
-newkirk
-newlab
-newland
-newman
-newnam
-newport
-news
-newsom
-newsome
-newton
-neyer
-neyman
-neyra
-neysa
-neywick
-nezm
-nezon
-ng
-nga
-ngai
-ngai-nga
-ngaingai
-ngan
-nghia
-ngina
-ngo
-ngoc
-ngocquyn
-nguy
-nguyen
-nguyen-t
-nguyet
-nha
-nhan
-nhat
-nhien
-nhut
-nial
-niall
-niamh
-nic
-nicandro
-nicas
-niccolls
-niccolo
-nichael
-nichol
-nicholas
-nichole
-nicholl
-nicholle
-nichols
-nicholso
-nici
-nick
-nickell
-nickells
-nickels
-nickerso
-nickey
-nicki
-nickie
-nickle
-nicklin
-nicko
-nickola
-nickolai
-nickolas
-nickolau
-nickonov
-nicky
-nico
-nicol
-nicola
-nicolai
-nicolais
-nicolaou
-nicolas
-nicole
-nicolea
-nicoles
-nicolett
-nicoli
-nicolina
-nicoline
-nicolis
-nicolle
-nicolo
-nicolopu
-nicosia
-nie
-niebudek
-niedelma
-niedens
-niedra
-niedzwie
-niek
-niel
-nield
-niels
-nielsen
-nielson
-niemi
-nien
-nien-hwa
-nienhwa
-niepmann
-niepokuj
-niergart
-nigam
-nigel
-nihar
-nijen
-nik
-nikaniki
-nike
-nikfarja
-niki
-nikifori
-nikiforu
-nikita
-nikki
-nikkie
-nikky
-niklas
-niko
-nikola
-nikolai
-nikolaos
-nikolas
-nikolaus
-nikolett
-nikolia
-nikolopo
-nikolos
-nikos
-nil
-nilakant
-niles
-nilesh
-nill
-niloofar
-nils
-nilson
-nilsson
-nima
-nimesh
-nimish
-nimmo
-nimr
-nimzod
-nina
-ninetta
-ninette
-ninety-o
-ning
-ninja
-ninnetta
-ninnette
-ninno
-ninon
-nipper
-nir
-niraj
-niranjan
-nirmal
-niro
-nirwan
-nisa
-nisan
-nisbet
-nischuk
-nishan
-nishida
-nishiguc
-nishihar
-nishimot
-nishimur
-nishioka
-nishith
-nishiwak
-nishiyam
-nishizak
-nissa
-nisse
-nissie
-nissy
-nita
-nital
-nitin
-nitschky
-nitza
-nitzhe
-nitzhye
-niu
-niven
-nix
-nixie
-nixon
-nixxon
-niz
-nizam
-nizamudd
-nizar
-nizman
-nj
-njo
-nnamdi
-nnamudi
-no
-noach
-noah
-noak
-noam
-noami
-nobe
-nobel
-nobes
-nobie
-noble
-nobuko
-nobuo
-nobutaka
-nobuto
-nobuyuki
-noby
-nock
-noddin
-node
-noe
-noel
-noelani
-noell
-noella
-noelle
-noellyn
-noelyn
-noemi
-noeschka
-noffke
-noguchi
-nokes
-nola
-nolan
-nolan-mo
-nolana
-noland
-nolen
-noles
-nolet
-nolie
-noll
-nollie
-nolly
-nolter
-nomi
-nomura
-nona
-nonah
-noname
-nong
-nongqian
-noni
-nonie
-nonkes
-nonna
-nonnah
-noone
-noorani
-noorbehe
-noorbhai
-nooshin
-nopi
-nora
-norah
-noralie
-noraly
-norbert
-norberto
-norbie
-norby
-norcal
-norczen
-nordskog
-nordstro
-norean
-noreen
-norel
-norena
-norene
-norfleet
-norgaard
-norikats
-norikazu
-noriko
-norina
-norine
-norio
-noris
-norm
-norma
-norman
-normand
-normandi
-norment
-normie
-normy
-norndon
-noronha
-norri
-norrie
-norris
-norry
-norstar
-north
-northam
-northcot
-northrop
-northrup
-norton
-norval
-norvie
-norvig
-norwood
-nosewort
-noslab
-nosov
-nostrada
-notley
-nou
-noubar
-nouira
-noujeim
-nour
-nouri
-nova
-novak
-novelia
-novene
-novia
-novisedl
-novo
-novorols
-novotny
-nowak
-nowell
-nowina-k
-nowlin
-noy
-noye
-noyes
-npi
-nss
-ntelpac
-ntinash
-ntlc
-ntpadmin
-ntprel
-nttest
-nuber
-nuetzi
-nugent
-number
-nunes
-nunez
-nung
-nunn
-nunnally
-nuno
-nunold
-nuntel
-nurettin
-nurhan
-nuri
-nuria
-nurly
-nurmi
-nuttall
-nuvit
-nyaguthi
-nyberg
-nyce
-nydia
-nye
-nyeita
-nyenhuis
-nyland
-nyquist
-nyre
-nys
-nyssa
-o karina
-o'brecht
-o'brian
-o'brien
-o'carrol
-o'colmai
-o'connel
-o'conner
-o'connor
-o'dacre
-o'dale
-o'dea
-o'dell
-o'dohert
-o'donnel
-o'donova
-o'dwyer
-o'farrel
-o'grady
-o'hagan
-o'hara
-o'hearn
-o'heocha
-o'higgin
-o'keefe
-o'keeffe
-o'kelly
-o'leary
-o'malley
-o'meara
-o'murchu
-o'neal
-o'neall
-o'neil
-o'neill
-o'regan
-o'reilly
-o'rourke
-o'shaugh
-o'shea
-o'sulliv
-o'toole
-o_kelly
-oakland
-oakley
-oaks
-oam
-oanes
-oanh
-oastler
-oates
-oaul
-obadiah
-obadias
-obed
-obeda
-obediah
-obeidat
-obenauf
-ober
-oberhamm
-obermeie
-obermeye
-obermyer
-oberon
-oberpril
-obidiah
-obie
-oblak
-obrecht
-obrien
-obrusnia
-oby
-ocampo
-ochman
-ochoa
-ochs
-ocone
-oconnor
-octavia
-octavio
-octavius
-odac
-odden
-ode
-odecki
-oded
-odegaard
-odele
-odelia
-odelinda
-odell
-odella
-odelle
-oden
-odessa
-odetta
-odette
-odey
-odgers
-odie
-odile
-odilia
-odille
-odo
-odum
-ody
-oedipal
-oedipus
-oertelt
-oesterre
-oestreic
-oetting
-oey
-ofcparm
-ofcparms
-ofelia
-ofella
-ofer
-offers
-ofilia
-ogan
-ogborn
-ogburn
-ogdan
-ogden
-ogdon
-ogilvie
-oglesby
-ogrodnik
-ogua
-oguz
-ohala
-ohandley
-ohara
-ohare
-ohashi
-ohio
-ohmaru
-ohmayer
-ohn
-ohsone
-oingres
-oivind
-ojala
-ojerholm
-oka
-okada
-okafo
-okai
-okamoto
-okan
-okay
-oke
-okey
-okon
-okrafka
-oksana
-okseniuk
-oktar
-okun
-okura
-okuyama
-okuzawa
-ola
-olag
-olav
-old
-older
-oldfield
-oldham
-oldright
-ole
-oleesa
-oleksysh
-olenka
-olenolin
-olesen
-olesko
-olga
-olia
-olimpia
-olin
-olinger
-olinyk
-olivares
-olive
-oliveira
-oliver
-olivero
-olivette
-olivia
-olivie
-olivier
-oliviero
-oliy
-olken
-ollie
-olliff
-olly
-olmstead
-olness
-olof
-olsen
-olsheski
-olson
-olszewsk
-olusola
-olva
-olvan
-olwen
-olympe
-olympia
-olympie
-olynyk
-oma
-oman
-omar
-omayma
-omer
-omerine
-omero
-omid
-omori
-omura
-omyeabor
-onassis
-onder
-ondovcik
-ondrea
-oneida
-oneto
-onette
-onfre
-onfroi
-ong
-onge
-onida
-onofredo
-onsitete
-onsy
-onufrak-
-onyshko
-ooi
-oona
-oorschot
-oost
-op
-opal
-opalina
-opaline
-opalski
-open
-oper
-operatio
-operator
-ophelia
-ophelie
-oplinger
-opperman
-ops
-opsplng
-optimiza
-opto
-opus
-ora
-oral
-oralee
-oralia
-oralie
-oralla
-oralle
-oran
-orazio
-orbadiah
-orca
-ord
-ordas
-orden
-orders
-ordog
-ordway
-oreffice
-oreilly
-orel
-orelee
-orelia
-orelie
-orella
-orelle
-oren
-orenzo
-orfano
-orford
-organiza
-orgren-s
-oriana
-orie
-orin
-orion
-orla
-orlan
-orland
-orlando
-orly
-orlyn
-orme
-ormesher
-ormsby
-ornburn
-ornelas
-orol
-oros
-orpheus
-orr
-orran
-orren
-orrin
-orsa
-orser
-orsini
-orsola
-orson
-ortensia
-orth
-ortiz
-orton
-orv
-orville
-orvin
-orwell
-oryal
-osada
-osadciw
-osama
-osami
-osatuik
-osbert
-osborn
-osborne
-osbourn
-osbourne
-osburn
-oscar
-osgood
-oshinski
-oshiro
-osiakwan
-osiris
-oskar
-oskorep
-oslund
-osman
-osmond
-osmund
-osofsky
-ossama
-ossie
-ostapiw
-ostarell
-ostaszew
-oster
-osterber
-osterhou
-osterman
-ostifich
-osvaldo
-oswald
-oswalt
-oswell
-otakar
-otani
-otec
-otes
-otfried
-otha
-othelia
-othella
-othello
-othilia
-othilie
-otho
-othon
-otis
-otmar
-otsuka
-ott
-ottawa
-ottco
-ottcsr
-otter
-ottilie
-otto
-ottoman
-ottosson
-ottowa
-oturakli
-otway
-oucharek
-oue
-ouellet
-ouellett
-ouimet
-ousterho
-outage
-outhwait
-outram
-ouzas
-ovans
-ovas
-overby
-overcash
-overdyke
-overton
-oviedo
-ovila
-owen
-owens
-owensby
-owsiak
-oxendine
-oyama
-oyung
-ozalp
-ozan
-ozay
-ozer
-ozersky
-oziemblo
-oziskend
-ozkan
-ozlem
-ozmizrak
-ozmore
-ozselcuk
-ozyetis
-ozzie
-ozzy
-paar
-pablo
-pac
-pace
-pacey
-pachal
-pacheco
-pachek
-pachner
-pachulsk
-pacific
-packager
-packard
-packston
-paco
-pacon
-pacorro
-paczek
-paczynsk
-paddie
-paddon
-paddy
-paden
-padget
-padgett
-padiath
-padilla
-padiou
-padma
-padmanab
-padraic
-padraig
-padriac
-paerio
-paes
-paetsch
-pafilis
-pagani
-page
-pageau
-paget
-pagi
-paglia
-pagliaru
-pai
-paialung
-paige
-paik
-pail
-paine
-painter
-painters
-pak
-pak-jong
-pak-kin
-pakkin
-paksi
-pakulski
-pal
-palacek
-palamar
-palasek
-palczuk
-palermo
-paley
-palfreym
-palidwor
-paliga
-palik
-paliwal
-pall
-pallab
-pallen
-palm
-palme
-palmer
-paloma
-palomar
-paluso
-pam
-pambianc
-pamela
-pamelina
-pamella
-pammi
-pammie
-pammy
-pamperin
-pan
-panacea
-panagiot
-pancewic
-panch
-panchen
-panchito
-panchmat
-pancho
-pancholy
-pandey
-pandolfo
-pandora
-pandrang
-pandya
-panek
-panesar
-pang-chu
-pangchun
-panger
-pangia
-panizzi
-pankaj
-panke
-pankesh
-pankhurs
-pankiw
-panko
-pankratz
-pannell
-panolil
-panos
-panosh
-pansie
-pansy
-pantages
-pantalon
-pantas
-pantelis
-panter
-panton
-panzer
-pao
-pao-ta
-paola
-paoletti
-paolina
-paolo
-paone
-paota
-papa
-papadopu
-papagena
-papageno
-papageor
-papahadj
-papajani
-papalits
-papanton
-paparell
-pape
-paper
-paperno
-papers
-papiez
-papineau
-papp
-pappas
-papper
-pappu
-paprocki
-paqs
-paquette
-paquin
-paquito
-par
-para
-paracha
-paradis
-paradise
-parasili
-pardeep
-pardi
-pardip
-pardo
-parekh
-paresh
-parham
-parhi
-parichay
-parihar
-parikh
-paris
-parise
-parisen
-parisi
-parisien
-park
-parkash
-parke
-parker
-parker-s
-parkes
-parkhill
-parkin
-parkins
-parkinso
-parks
-parkson
-parlett
-parmakse
-parman
-parmar
-parmente
-parmigia
-parminde
-parn
-parnas
-parnell
-parniani
-parnigon
-parow
-parr
-parra
-parrilli
-parrillo
-parris
-parrish
-parrish-
-parrnell
-parrott
-parry
-pars
-parsifal
-parsloe
-parsons
-part
-partap
-partello
-partha
-parthasa
-partick
-partin
-partlo
-parton
-partovi
-paruleka
-parveen
-parvin
-parviz
-paryag
-parypa
-pas
-pascael
-pascal
-pascale
-pascali
-pascas
-paschall
-pasher
-pashia
-pashmine
-pasiedb
-pasquale
-passier
-passin
-pasterna
-pastore
-pastorek
-pastuszo
-pasvar
-pat
-patacki
-patadm
-patch
-patchcor
-patches
-patchett
-patching
-patchit
-patchor
-patchsqa
-patcor
-pate
-patel
-paten
-patenaud
-paterson
-patey
-pathak
-patience
-patin
-patner
-pato
-patoka
-paton
-patoskie
-patra
-patriarc
-patric
-patrica
-patrice
-patrice-
-patricem
-patrici
-patricia
-patricio
-patrick
-patrizia
-patrizio
-patriziu
-patry
-patsy
-patt
-patte
-patten
-patterso
-patteson
-patti
-pattie
-pattin
-pattison
-patton
-pattra
-pattullo
-patty
-patwardh
-pau
-paul
-paula
-paulas
-paule
-paulett
-pauletta
-paulette
-pauley
-paulhus
-pauli
-paulich
-paulie
-paulien
-paulin
-paulina
-pauline
-pauling
-paulinus
-paulita
-paulk
-paulo
-paulovic
-paulus
-pauly
-paunins
-pautenis
-pavan
-pavel
-pavia
-pavitt
-pavla
-pavlic
-pavlov
-pavlovic
-pawel
-pawelchu
-pawlikow
-pawliw
-paxon
-paxton
-paye
-payette
-paylor
-payn
-payne
-paynter
-payroll
-payton
-pazos
-pbkim
-pbx
-pcboards
-pcbtools
-pcsuppor
-pcta
-pde
-pdesuppo
-peabody
-peacemak
-peach
-peacocke
-peadar
-peake
-pearce
-pearcy
-pearl
-pearla
-pearle
-pearline
-pearse
-pearson
-peart
-peate
-peaugh
-peavoy
-pebrook
-pecic
-peckel
-peckett
-peder
-pederson
-pedigo
-pedley
-pedneaul
-pedram
-pedriana
-pedro
-peebles
-peedin
-peerman
-peers
-peeters
-peets
-peg
-pegasus
-pegeen
-peggi
-peggie
-peggy
-pegler
-pehong
-pei-chie
-pei-ling
-peiling
-peirce
-peiser
-peixoto
-peleato
-pelegri
-pelissie
-pelkie
-pell
-pelland
-pellegri
-pelletie
-pellizza
-pellizze
-pelly
-pelosi
-pelot
-pelton
-peluso
-pelz
-pembroke
-pen
-pen-mi
-pen-min
-pena
-pena-fer
-penang
-pendergr
-pendhark
-pendleto
-penelopa
-penelope
-penfield
-peng
-peng-dav
-penland
-penmi
-penmin
-penn
-pennebak
-pennell
-penner
-penney
-penni
-pennie
-penninge
-penningt
-penny
-penrod
-penrose
-pension
-peon
-peoples
-pepc
-pepe
-pepi
-pepillo
-pepin
-pepita
-pepito
-pepler
-pepper
-pepple
-peptis
-per
-pera
-peralta
-perazzin
-perceval
-perchtho
-percival
-percy
-peregrin
-pereira
-perenyi
-perez
-perfetti
-peri
-peria
-pericak
-perice
-pericles
-perina
-perkin
-perkins
-perkinso
-perl
-perla
-perle
-perleber
-perlmutt
-pernell
-perng
-perona
-peroxra
-perras
-perrault
-perreaul
-perrella
-perren
-perri
-perrier
-perrin
-perrine
-perron
-perrotta
-perry
-perryman
-perryno
-persaud
-perschke
-persechi
-pershing
-persis
-personna
-peschke
-pesik
-pesold
-pestill
-pet
-peta
-petar
-pete
-peter
-peterman
-peters
-petersen
-peterson
-peterus
-petey
-petillio
-petr
-petra
-petrakia
-petras
-petre
-petrea
-petree
-petrescu
-petretta
-petrey
-petri
-petrick
-petrie
-petrina
-petrinac
-petro
-petronel
-petronia
-petronil
-petrovic
-petruck
-petrunew
-petrunka
-petschen
-petter
-pettinge
-pettitt
-petunia
-petzold
-pevec
-pevzner
-pewitt
-pey-kee
-peyman
-peyter
-peyton
-pezzoli
-pezzoni
-pezzullo
-pfeffer
-pfeilsch
-pfieffer
-pfifferl
-pfitzner
-pflughau
-phaedra
-phagan
-phaidra
-phair
-phal
-phalen
-phalpher
-pham
-phan
-pharr
-pharris
-phat
-phebe
-phedra
-phelan
-phelia
-phelps
-phifer
-phil
-philbeck
-philbert
-philion
-philip
-philipa
-philippa
-philippe
-philippi
-philippo
-philips
-philis
-phill
-phillida
-phillie
-phillip
-phillipe
-phillipp
-phillips
-phillis
-philly
-philomen
-philp
-phineas
-phip
-phipps
-phiroze
-phoebe
-phoenix
-phonenet
-phong
-phoung
-phu
-phuc
-phung
-phuoc
-phuong
-phuong-l
-phuongli
-phyl
-phylis
-phyllida
-phyllis
-phyllys
-phylys
-physical
-pi-yu
-pia
-piasecki
-piatt
-pic
-picard
-piche
-pichocki
-pick
-pickens
-pickett
-pickles
-piecaiti
-piecowye
-piel
-pien
-pier
-piercarl
-pierce
-piercey
-piercy
-pierette
-piero
-pieron
-pierosar
-pieroway
-pierre
-pierre-a
-pierre-h
-pierre-m
-pierre-y
-pierret
-pierrett
-pierrick
-piersol
-pierson
-piete
-pieter
-pietra
-pietrek
-pietro
-pietromo
-pietropa
-pietrzak
-piette
-pifko
-piggott
-piggy
-pighin
-pigniczk
-piitz
-pilar
-pilch
-pilcher
-pilip
-pilipchu
-pilkingt
-pillars
-pillman
-pillswor
-pilmoor
-pilon
-pilot
-pilote
-pilotte
-piltz
-pim
-pimentel
-pimisker
-pimpare
-pimsiree
-pinakin
-pinalez
-pinar
-pincas
-pinchas
-pincheir
-pinchen
-pincus
-pinder
-pindur
-pineau
-pinecres
-pineda
-pinel
-ping
-ping-cha
-ping-kon
-ping-she
-pingchar
-pingkai
-pingshen
-pinizzot
-pinkerto
-pinnegar
-pinney
-pino
-pinren
-pinsonne
-pintado
-pinto-lo
-pintwala
-piotr
-piotto
-pip
-piper
-piperni
-piperno
-pipit
-pipkins
-pippa
-pippert
-pippin
-pippo
-pipponzi
-pippy
-piqueras
-piraino
-pircher
-pires
-pirkey
-pirkle
-pirolli
-pirooz
-piroska
-pirzada
-pisani
-pisheng
-piske
-pissot
-pister
-pistilli
-pit
-pitawas
-pitcairn
-pitcavag
-pitcher
-pitre
-pitt
-pittam
-pittges
-pittman
-pittner
-pitton
-pitts
-pittsbur
-pituley
-pivert
-piwkowsk
-pixie
-piyasena
-piyathad
-piyu
-piyush
-pizzanel
-pizzarel
-pizzimen
-pkdcd
-pkg
-placido
-plaic
-plaisanc
-plaisant
-plambeck
-plamondo
-planas
-planche
-plantamu
-plante
-planthar
-planting
-plaskie
-plasse
-plastic
-plastina
-plater-z
-plato
-platt
-platthy
-platts
-playatun
-please d
-plenderl
-plett
-plevyak
-pleydon
-plmcoop
-ploeg
-ploof
-plotter
-plouffe
-plourde
-plsntp
-plssup
-plucinsk
-plummer
-pluto
-plyler
-po
-po-rong
-po-yi
-podlesna
-podmarof
-podolski
-poe
-poettcke
-poff
-poh-soon
-pohlmann
-poincare
-poindext
-pointner
-poirier
-poissant
-poisson
-pojanart
-pokinko
-pokrifca
-pokrywa
-pokusay
-polak
-polakows
-polanco
-polashoc
-polder
-poldi
-poleretz
-poley
-poliwoda
-polk
-polla
-pollack
-pollard
-pollie
-pollinzi
-pollux
-polly
-pollyann
-pols
-polsha
-polson
-poluchow
-polulack
-pom
-poma
-pomerlea
-pomeroy
-pommainv
-pompeo
-pomposel
-pon
-ponamgi
-ponthieu
-pontus
-poobah
-pooh
-pookie
-poole
-poon
-poorman
-popa
-popadick
-popcorn
-popel
-popela
-popescu
-popierai
-popoff
-popovich
-popovics
-popowicz
-popowycz
-popp
-poppa
-popper
-poppy
-porebski
-porecha
-porfirio
-porong
-port
-portelan
-porter
-porterfi
-portia
-portie
-portigal
-porting
-portis
-portwood
-porty
-portz
-pory
-posavad
-poseidon
-poshiu
-pospisil
-posta
-postavsk
-posthumu
-postleth
-postolek
-potamian
-potesta
-potkonja
-potocki
-potter
-pottle
-potts
-potvin
-pouhyet
-poul
-poulin
-pouliot
-poulos
-poulsen
-poulter
-poustchi
-powell
-power
-powers
-powlick
-pownall
-powney
-poyer
-poyi
-poyner
-poynting
-pozzi
-ppaul
-prab
-prabaddh
-prabhaka
-prabhu
-prabir
-prachaya
-pracht
-prada
-pradeep
-pradip
-pradnyan
-prado
-pradyumn
-praeuner
-prafula
-pragna
-prakash
-pramod
-prams
-pranav
-prang
-prasad
-prasada
-prasanna
-prashad
-prashant
-prashaw
-pratap
-pratapwa
-pratibha
-pratt
-prattico
-pravato
-praveen
-pravin
-praxis
-praysner
-prayson
-prchal
-precoda
-predel
-predon
-preece
-prelims
-prem
-pren
-prent
-prentice
-prentiss
-preo
-prescott
-presgrov
-presley
-presner
-presotto
-pressbur
-presson
-presti
-prestia
-prestipi
-preston
-preston-
-prestrud
-presutti
-preuss
-prevatt
-preville
-previn
-prevost
-prewitt
-pria
-pribhu
-price
-prichard
-pricing
-prickett
-pridgen
-priede
-priestle
-prikkel
-primeau
-prince
-pringle
-print
-printers
-printing
-prints
-printsup
-prinz
-priore
-pris
-prisca
-priscell
-priscill
-prissie
-pritchar
-prithvi
-priti
-prity
-privett
-priviter
-priya
-probert
-problems
-probs
-procacci
-procca
-procner
-procter
-prodmfg
-prodmgmt
-producti
-prof
-proffit
-prog
-program
-program-
-proj
-projects
-projofc
-prokes
-prokop
-prokopen
-promac
-propes
-prosise
-prosperi
-pross
-prosyk
-prototyp
-proudfoo
-proulx
-provenca
-provench
-pru
-prudence
-prudi
-prudy
-prue
-pruett
-pruitt
-prunier
-prupis
-prybyla
-pryce
-prymack
-pryor
-prystie
-pryszlak
-przewloc
-przybyci
-psce
-pseudony
-psklib
-psutka
-ptefs
-ptolemy
-publicat
-pubs
-puchala
-puckett
-puddingt
-pue-gilc
-puelma
-puent
-puett
-puetz
-puff
-pufpaff
-pugas
-pugh
-puglia
-pui-wah
-pujara
-pulak
-pulcher
-pulcine
-pulitzer
-pullan
-pullum
-pulver
-punch
-pundyk
-puneet
-pung
-punsalan
-puran
-purcell
-purchasi
-purdy
-purgerso
-puringto
-purnam
-purnell
-purnima
-purohit
-purposes
-purshott
-purson
-puryear
-pushelbe
-pusun
-pusztai
-putman
-putnam
-putnem
-puukila
-pye
-pyle
-pyles
-pyng
-pyong
-pyotr
-pyron
-python
-qadir
-qadri
-qainfo
-qainsp
-qi-de
-qide
-qihan
-qiming
-qin
-qing
-qing-hui
-qinghui
-qingyan
-qiuyun
-qizhong
-qu
-quabidur
-quality
-quan
-quane
-quang
-quang-tr
-quante
-quantril
-quarles
-quarterm
-quattruc
-quayle
-queenie
-quek
-quelch
-quennevi
-quensett
-quent
-quentin
-querenge
-querida
-queries
-quesnel
-questell
-quevillo
-quigley
-quijano
-quill
-quillan
-quilty
-quincey
-quincy
-quinhon
-quinlan
-quinn
-quinones
-quint
-quinta
-quintana
-quintero
-quintill
-quintin
-quintina
-quinton
-quintus
-quinz
-quite a
-quixote
-quizmast
-quoc
-quoc-vu
-quocanh
-quoi
-quon
-qureshi
-quyen
-quynh
-raab
-raaf
-raaflaub
-raanan
-rab
-rabadi
-rabaglia
-rabatich
-rabbi
-rabecs
-rabenste
-rabi
-rabiasz
-rabie
-rabin
-rabipour
-rabjohn
-rabon
-rabzel
-racette
-rachael
-rached
-rachel
-rachele
-rachelle
-rachmani
-racicot
-racine
-racioppi
-racz
-rad
-radames
-radcliff
-raddalgo
-raddie
-raddy
-radek
-radford
-radha
-radick
-radio
-radko
-radojici
-radomir
-radoslav
-radovnik
-radulovi
-radvanyi
-rae
-raeann
-raejean
-raf
-rafa
-rafael
-rafaela
-rafaelia
-rafaelit
-rafaelll
-rafaello
-rafe
-rafek
-raff
-raffaell
-raffarty
-rafferty
-raffi
-rafflin
-rafi
-rafik
-rafiq
-rafol
-rafols
-rafter
-raftery
-ragan
-ragbir
-ragde
-raghav
-raghava
-raghavan
-ragheb
-raghu
-raghunat
-raghuvir
-ragland
-raglin
-ragnar
-ragsdale
-ragu
-ragui
-raha
-rahal
-rahardja
-rahdar
-rahel
-rahimtoo
-rahm
-rahman
-rahmani
-rahmany
-rahmatal
-rahn
-rahrer
-rahul
-raicu
-raif
-raigwell
-raila
-railey
-raimondo
-raimund
-raimundo
-raina
-raine
-rainer
-raines
-rainey
-raing
-rainmake
-rains
-rainsfor
-raissian
-raiswell
-raj
-raja
-rajadasa
-rajagopa
-rajala
-rajan
-rajani
-rajanika
-rajapaks
-rajarshi
-rajat
-rajcher
-rajchgod
-rajchwal
-rajczi
-rajeev
-rajen
-rajendra
-rajesh
-rajeswar
-rajguru
-rajinder
-rajini
-rajiv
-raju
-rajwani
-rakeim
-rakel
-raker
-rakesh
-rakhal
-rakhuma
-rakochy
-rakotoma
-raleigh
-raley
-ralf
-rali
-ralina
-ralph
-ralston
-ram
-rama
-ramachan
-ramadoss
-ramage
-ramah
-ramakant
-ramakesa
-ramakr
-ramakris
-ramamoor
-raman
-ramana
-ramanamu
-ramanan
-ramanand
-ramanath
-ramani
-ramaprak
-ramarao
-ramaswam
-rambo
-rambow
-ramee
-ramesh
-ramey
-ramez
-rami
-ramin
-ramirez
-ramirez-
-ramiro
-ramiz
-ramkisso
-ramkumar
-ramlogan
-ramnarin
-ramneek
-ramnikla
-ramon
-ramona
-ramonda
-ramondt
-ramos
-rampaul
-rampino
-ramroop
-ramsaran
-ramsay
-ramsayer
-ramsden
-ramses
-ramsey
-ramseyer
-ramzi
-ramzy
-ran
-ran-joo
-rana
-ranahan
-ranald
-ranbir
-rance
-rancell
-rand
-randa
-randal
-randall
-randecke
-randee
-randel
-randell
-randene
-randhawa
-randhir
-randi
-randie
-randolf
-randolph
-randy
-ranea
-ranee
-ranette
-raney
-ranga
-rangan
-ranganad
-ranganat
-rangasam
-rangaswa
-rangchen
-rangel
-ranger
-rangooni
-rani
-rania
-ranice
-ranieri
-ranique
-ranjan
-ranjit
-rank
-rankin
-ranna
-rannells
-ranney
-ranoa
-ranoska
-ransell
-ransom
-ranson
-rantala
-ranvir
-rao
-raouf
-raoul
-raphael
-raphaela
-rappopor
-raquel
-raquela
-rasberry
-raschig
-rashed
-rashedi
-rashid
-rashid-a
-rashidah
-rashidi
-rashmi
-rasia
-rasla
-rasmus
-rasmusse
-rasselas
-rassell
-rastelli
-rastogi
-ratcliff
-rathbun
-rathnaku
-ratko
-ratnam
-ratnayak
-rattanap
-rattray
-ratz
-rau
-raud
-raudres
-rauen
-raul
-rausa
-rausch
-raven
-raves
-ravi
-ravid
-ravinder
-ravindra
-raviv
-ravji
-rawley
-rawnoi
-raxter
-ray
-rayan
-raychel
-raye
-rayl
-rayleigh
-rayment
-raymona
-raymond
-raymund
-rayna
-raynald
-raynard
-raynell
-rayner
-raynor
-rayshell
-raz
-razavi
-rccl
-rch
-rchisn
-rchlab
-rea
-read
-reade
-reader
-readling
-readme 3
-reagan
-reagen
-real
-realtime
-reamonn
-rean
-reates
-reaume
-reaves
-reavis
-reba
-rebbecca
-rebe
-rebeca
-rebecca
-rebecka
-rebeka
-rebekah
-rebekkah
-rebel
-rec
-recabarr
-receivin
-rechelle
-reckhard
-recktenw
-records
-recsnik
-recyclin
-red
-reda
-redbeard
-redd
-reddick
-reddigan
-redding
-reddingt
-reddy
-redfoot
-redford
-redgie
-redinbo
-redish
-redman
-redmond
-redshaw
-redway
-ree
-reeba
-reece
-reed
-reeder
-reena
-rees
-reese
-reeta
-reetz
-reeva
-reeve
-reeves
-refat
-refuerzo
-reg
-rega
-regan
-rege
-regen
-reggi
-reggie
-reggis
-reggy
-regier
-regimbal
-regina
-reginald
-reginaul
-regine
-reginia
-regis
-register
-regnier
-rego
-rehbein
-rehder
-rehel
-reich
-reichenb
-reiching
-reichman
-reichow
-reid
-reidar
-reidelbe
-reider
-reif
-reifschn
-reijerke
-reiko
-reilly
-reiman
-reimann
-reimburs
-rein
-reina
-reinald
-reinaldo
-reinboth
-reind
-reine
-reiner
-reinhard
-reinhold
-reinink
-reinke
-reinlie
-reinman
-reinold
-reinwald
-reis
-reiser
-reiss
-reist
-reiter
-reitfort
-reith
-reitling
-rejean
-rejeanne
-reka
-rekowski
-relation
-reller
-rem
-rembecki
-rembish
-remedios
-remers
-remi
-remillar
-remingto
-remitha
-remo
-remon
-remrey
-remson
-remus
-remy
-ren
-rena
-renado
-renae
-renaldo
-renard
-renata
-renate
-renato
-renaud
-renault
-rendell
-rendon
-rene
-rene-ala
-reneau
-renee
-renell
-renelle
-renema
-renette
-renfro
-renfroe
-renganat
-renie
-renita
-renken
-renmarie
-renner
-rennie
-rennolds
-renny
-reno
-renoir
-renold
-renton
-renu
-renwick
-repair
-repeta
-reportin
-reports
-requel
-requests
-research
-resende
-resnick
-ress
-ressner
-rester
-restore
-restrepo
-results
-resve
-reta
-retallac
-retallic
-retha
-rettie
-reube
-reuben
-reubens
-reuss
-reuven
-reva
-revah
-revelle
-revill
-revis
-revkah
-rewitzer
-rex
-rexford
-rexroad
-rey
-reyad
-reyaud
-reydman
-reyes
-reyna
-reynaldo
-reynard
-reynold
-reynolds
-reza
-rezaian
-rezansof
-rezneche
-reznick
-reznik
-rezzik
-rfa
-rfeynman
-rff
-rhattiga
-rhea
-rheal
-rheault
-rheaume
-rheba
-rheta
-rhett
-rhetta
-rhew
-rhiamon
-rhianna
-rhianon
-rhine
-rhoades
-rhoads
-rhoda
-rhodeniz
-rhodes
-rhodia
-rhodie
-rhodri
-rhody
-rhona
-rhonda
-rhough
-rhyndres
-rhys
-rhyu
-ri
-ria
-riad
-rialland
-riane
-riannon
-rianon
-riaz
-ribakovs
-ribaldo
-ribi
-ribordy
-ribot
-ric
-rica
-ricard
-ricardo
-ricca
-riccardo
-riccitel
-ricciuto
-rice
-rich
-richad
-richard
-richardo
-richards
-richart
-richelle
-richer
-richey
-richie
-richlark
-richman
-richmond
-richmoun
-richter
-richy
-rici
-rick
-rick-jan
-rickard
-rickborn
-rickel
-ricker
-rickert
-ricketso
-ricketts
-rickey
-ricki
-rickie
-rickjan
-rickrd
-ricks
-ricky
-rico
-ricoriki
-riddall
-ridder
-riddick
-rider
-ridge
-ridgeway
-ridgewel
-ridgway
-ridha
-ridley
-riebl
-ried
-riedel
-riehle
-riekie
-rieko
-rieni
-rigby
-rigdon
-rigel
-riggins
-riggs
-riggsbee
-righter
-rightmir
-rigobert
-rigsbee
-rigstad
-rijn
-rijos
-rijswijk
-rik
-riki
-rikki
-rikley
-riley
-rilla
-rima
-rimantas
-rimey
-riml
-rimmler
-rimsa
-rina
-rinaldo
-rinawi
-ring
-ringo
-rini
-rintala
-rintel
-rintoul
-rio
-riobard
-riopel
-riopelle
-riordan
-rios
-riou
-rioux
-rip
-ripa
-ripley
-risa
-risdal
-risher
-rishy-ma
-risko
-risler
-rist
-risto
-rita
-ritalynn
-ritchey
-ritchie
-ritenour
-rittenho
-ritter
-rittmann
-ritz
-ritza
-ritzmann
-riva
-rivaherr
-rivalee
-rivard
-rivera
-rivers
-rivest
-rivi
-rivkah
-rivy
-rix
-riyad
-riyaz
-rizal
-rizewisk
-rizk
-rizky
-rizwan
-rizzardi
-rizzo
-rizzuti
-rk
-rnashcro
-ro
-roana
-roanna
-roanne
-roarke
-rob
-robann
-robart
-robb
-robbert
-robbi
-robbie
-robbin
-robbins
-robby
-robbyn
-robeling
-robena
-robenia
-roberge
-robers
-roberson
-robert
-roberta
-roberto
-roberts
-robertso
-robieux
-robillar
-robin
-robina
-robinet
-robinett
-robinia
-robins
-robinson
-robinwil
-robitail
-robles
-robling
-robney
-robson
-robustne
-roby
-robyn
-rocco
-roch
-roche
-rochell
-rochella
-rochelle
-rocheste
-rochette
-rochon
-rocio
-rock
-rocke
-rockey
-rockford
-rockie
-rockley
-rockly
-rockwell
-rocky
-rod
-roda
-rodd
-roddick
-roddie
-roddy
-rodely
-roden
-rodenfel
-rodenhui
-rodent
-roderic
-roderich
-roderick
-roderigo
-rodge
-rodger
-rodgers
-rodgin
-rodi
-rodie
-rodina
-rodkey
-rodney
-rodolfo
-rodolph
-rodolphe
-rodrick
-rodrigo
-rodrigue
-rodrigus
-rodrique
-rodschat
-roe
-roebling
-roedel
-roehl
-roehrig
-roel
-roelof
-roelofs
-roemer
-roerick
-roesler
-roeten
-rog
-rogan
-rogelio
-roger
-rogerio
-rogers
-roget.wo
-rogge
-rogne
-rogness
-rognlie
-rogoff
-rogue
-rohal
-rohan
-rohe
-rohit
-rohtert
-roi
-roieh
-roig
-rois
-roithmai
-roj
-rojas
-rojer
-rok
-rokas
-roland
-rolande
-rolando
-roldan
-roleson
-roley
-rolf
-rolfe
-rolfes
-rolland
-rollie
-rollin
-rollins
-rollinso
-rollo
-rolls
-rolly
-rolnick
-rolph
-rolston
-roly
-rolyn
-roma
-romagnin
-romain
-roman
-romanchu
-romani
-romano
-romanows
-rombeek
-romberg
-rombough
-romeo
-romero
-romi
-romina
-rommel
-rommell
-romola
-romolo
-romona
-romonda
-romulus
-romy
-ron
-rona
-ronaald
-ronak
-ronald
-ronalda
-ronaldo
-ronalds
-ronaldso
-ronan
-ronda
-rondeau
-ronen
-ronendra
-roney
-rong
-rong-che
-rong-chi
-rong-jen
-rong-jwy
-rongchei
-ronghui
-rongjen
-rongjwyn
-roni-jea
-ronica
-ronitt
-ronkus
-ronn
-ronna
-ronneke
-ronni
-ronnica
-ronnie
-ronny
-roob
-roobbie
-roohy-la
-rooney
-roosevel
-root
-roots
-roozbeh
-roper
-roque
-rora
-rori
-rorie
-rorke
-rory
-ros
-rosa
-rosabel
-rosabell
-rosado
-rosaleen
-rosalia
-rosalie
-rosalind
-rosaline
-rosalyn
-rosalynd
-rosamond
-rosamund
-rosana
-rosanna
-rosanne
-rosario
-rosch
-rosche
-rosco
-roscoe
-rose
-roseann
-roseanna
-roseanne
-rosebud
-roseland
-roselia
-roselin
-roseline
-rosella
-roselle
-rosemari
-rosemary
-rosemond
-rosen
-rosenbau
-rosenber
-rosenblu
-rosendal
-rosene
-rosenfel
-rosenqui
-rosentha
-roser
-rosetta
-rosette
-rosewell
-rosey
-roshelle
-rosie
-rosien
-rosina
-rosita
-roski
-rosko
-roslyn
-rosmunda
-rospars
-ross
-ross-ada
-ross-ros
-rossanes
-rosser
-rossi
-rossie
-rossigno
-rossingt
-rosson
-rossy
-rosvick
-rosy
-roszko
-rotenber
-roth
-rothamel
-rothey
-rothwell
-rotondo
-rotzjean
-rouer
-rouhad
-rouleau
-roulez
-roundy
-roupen
-rourk
-rourke
-rous
-rousseau
-rousset
-roussier
-roussin
-roussy
-routhier
-routing
-rouvin
-row
-rowan
-rowatt
-rowe
-rowell
-rowen
-rowena
-rowhani
-rowland
-rowlands
-rowley
-rowney
-rowsell
-roxana
-roxane
-roxanna
-roxanne
-roxi
-roxie
-roxine
-roxy
-roy
-roya
-royal
-royall
-royals
-royce
-roychowd
-royden
-royer
-royle
-royster
-roz
-rozaini
-rozalia
-rozalie
-rozalin
-rozamond
-rozanna
-rozanne
-roze
-rozele
-rozella
-rozelle
-rozen
-rozett
-rozier
-rozin
-rozina
-rozon
-rozumna
-rriocard
-rtingres
-rtp
-rtpbuild
-rtprel
-rtprelb
-ru
-ruane
-ruaud
-ruban
-rubanovi
-rube
-ruben
-rubens
-rubenste
-rubetta
-rubi
-rubia
-rubie
-rubin
-rubina
-rubinfel
-rubinov
-rubinste
-rubio
-ruby
-ruchel
-ruchi
-ruck
-ruckman
-rud
-rudd
-ruddell
-ruddick
-ruddie
-ruddle
-ruddy
-rudell
-rudi
-rudiak
-rudich
-rudie
-rudiger
-rudin
-rudis
-rudisill
-rudolf
-rudolfo
-rudolph
-rudy
-rudyard
-rudzinsk
-rudzitis
-rueben
-ruecha
-ruediger
-ruel
-ruest
-ruetz
-ruey
-rufe
-ruffolo
-rufino
-rufus
-rugg
-ruggiero
-rui
-rui-tao
-rui-yuan
-ruigrok
-ruitao
-ruiz
-rumley
-rummans
-rummel
-rummell
-runciman
-rundle
-rundstei
-rungroj
-runkel
-runnels
-running
-runyon
-ruoh-chy
-ruohchyu
-rupa
-rupert
-ruperta
-ruperto
-rupnow
-rupp
-ruppert
-ruprecht
-ruqiang
-rurick
-rurik
-rusch
-ruschmei
-rushing
-rushmore
-rushton
-rusin
-ruspini
-russ
-russel
-russell
-russett
-rustie
-rustin
-rustu
-rusty
-rutger
-ruth
-ruthann
-ruthanne
-ruthart
-ruthe
-rutherfo
-ruthi
-ruthie
-ruthy
-rutland
-rutledge
-rutt
-ruttan
-rutter
-ruttger
-rutulis
-rutyna
-ruud
-ruy
-ruyant
-ruyle
-ruzicka
-ruzycki
-ryall
-ryals
-ryan
-ryann
-rybczyns
-rycca
-ryce
-rychlick
-ryde
-ryder
-rydhan
-ryerson
-rygwalsk
-rykwalde
-ryley
-rylott
-ryman
-rymkiewi
-rynders
-rynties
-ryohei
-ryon
-ryoung
-ryszard
-ryun
-rzepczyn
-sa'id
-saad
-saake
-saal
-saatciog
-saavedra
-saba
-sabadash
-sabah
-sabanaya
-sabat
-sabatell
-sabatini
-sabatino
-sabbagh
-saber
-saberi
-sabety
-sabiha
-sabin
-sabina
-sabine
-sabo
-sabol
-sabooria
-sabourin
-sabra
-sabri
-sabrina
-sabry
-sabuson
-sabzali
-sacarell
-sacchett
-sacha
-sachidul
-sachiko
-sachindr
-sachs
-sacks
-sacto
-sada
-sadan
-sadath
-sadegh
-sadeghi
-sadella
-sadie
-sadler
-sadorra
-sadowska
-sadoyama
-sadri
-sadroudi
-sadru
-sadye
-saed
-saeed
-saeid
-safaa
-safah
-safinia
-sagan
-sage
-sager
-sagers
-sagris
-saha
-sahay
-sahib
-sahinalp
-sahli
-saibal
-saibun
-said
-saidee
-saidzade
-saied
-saifalla
-saifulla
-saify
-saiid
-saikaley
-sails
-saini
-sainsbur
-saisho
-sait
-saito
-saitoh
-saiyed
-sakaguch
-sakai
-sakamaki
-sakauye
-sakus
-sal
-salada
-saladna
-salah
-salaidh
-salam
-salamon
-salapek
-salazar
-salb
-salcudea
-saldanha
-saleem
-saleh
-salehi
-salem
-salembie
-salemi
-sales
-salgado
-salhany
-salibi
-salim
-salim-ya
-salimi
-salina
-salinas
-salis
-salkilld
-salkini
-salkok
-salladay
-salle
-sallee
-sallehud
-salli
-sallie
-sally
-sallyann
-salmon
-saloma
-salome
-salomi
-salomo
-salomon
-salomone
-salsbery
-saltamar
-salter
-saltside
-salva
-salvador
-salvato
-salvator
-salvidor
-salvin
-salwa
-salyer
-salyniuk
-salzillo
-sam
-samac
-samalot
-saman
-samantha
-samara
-samaratu
-samaria
-samaroo
-sambar
-sambi
-sambo
-sameh
-samhaber
-sami
-samia
-samieian
-samir
-sammie
-sammon
-sammons
-sammy
-samora
-sampalea
-sampat
-sampath
-samples
-sampson
-sampson-
-samshixu
-samson
-samsonen
-samual
-samuel
-samuele
-samy
-sanaa
-sanabria
-sanae
-sanand
-sanborn
-sanche
-sanchez
-sancho
-sanda
-sandberg
-sandburg
-sande
-sandeep
-sandell
-sander
-sanders
-sanderso
-sandford
-sandhar
-sandhu
-sandhya
-sandi
-sandie
-sandifor
-sandip
-sandison
-sandiway
-sandler
-sandlfor
-sandner
-sandness
-sandor
-sandra
-sandre
-sandrine
-sandro
-sandrock
-sandy
-sandye
-sanford
-sanford-
-sang
-sang-mau
-sang-woo
-sangbong
-sangha
-sanghami
-sangho
-sangiova
-sangman
-sangwook
-sanh
-sanity
-sanja
-sanjay
-sanjeet
-sanjeev
-sanjib
-sanjiv
-sanjiva
-sanjoy
-sankey
-sanks
-sanoy
-sanramon
-sanschag
-sansom
-sanson
-sansone
-santa
-santabar
-santella
-santi
-santiago
-santiest
-santitor
-santo
-santos
-santosh
-sanzone
-sapena
-saphir
-sapphira
-sapphire
-saqib
-sara
-sara-ann
-saraann
-sarah
-sarajane
-saran
-saran-br
-sarangar
-sarasina
-sarath
-saravano
-sarawath
-sarbutt
-saree
-sarena
-sarene
-sarette
-sarge
-sargent
-sargeson
-sari
-sarin
-sarina
-sarine
-sarioglu
-sarita
-sarkari
-sarlos
-sarma
-sarna
-saroj
-sarracin
-sarrasin
-sarrazin
-sarsh
-sarson
-sartin
-sartiran
-sarto
-sartor
-sarubbi
-sasaki
-sascha
-sasha
-sashenka
-sashi
-sasinows
-sask
-saskia
-sasore
-sassan
-sassine
-sasson
-sastry
-saswata
-sathe
-sati
-satin
-satis
-satish
-satkamp
-satkunas
-sato
-satoh
-satoshi
-satta
-sattar
-satterfi
-sattler
-satya
-satyajit
-satyanar
-saucerma
-sauck
-sauder
-saudra
-sauer
-saul
-saulnier
-sauls
-saumitra
-saumure
-saumya
-sauncho
-saunder
-saunderc
-saunders
-saundra
-saungika
-sauprobo
-sauvagea
-sauve
-sauveur
-savadkou
-savanh
-savard
-savarimu
-savaryeg
-savina
-savino
-savita
-savo
-savoie
-savoj
-savoula
-saw
-sawada
-saward
-sawaya
-sawchuk
-sawczyn
-sawita
-sawsan
-sawyer
-sawyere
-sawyers
-sax
-saxe
-saxena
-saxon
-say
-sayar
-sayed
-sayeeda
-sayegh
-sayer
-sayers
-sayla
-sayre
-sayres
-scalabri
-scalera
-scales
-scammerh
-scamurra
-scandret
-scanga
-scanlan
-scanlon
-scapin
-scarboro
-scarbrou
-scarface
-scarffe
-scarlet
-scarlett
-scarrow
-scatena
-scates
-schaap
-schacham
-schachtl
-schack
-schadan
-schaefer
-schafer
-schaffel
-schaffer
-schallen
-schaller
-schallio
-schanck
-schank
-schanne
-scharf
-schartma
-schatzbe
-schauer
-schavo
-schavone
-schechtm
-scheck
-scheckle
-schecter
-schedule
-scheduli
-scheer
-scheffle
-scheible
-scheidt
-scheifel
-schejbal
-schell
-schellen
-schembri
-schemena
-schenck
-schendel
-schenk
-schenkel
-schepps
-scherbin
-scherer
-schermer
-scherzin
-schesvol
-scheuerm
-schick
-schieber
-schiefer
-schiegl
-schierba
-schill
-schiller
-schillin
-schiltz
-schinkel
-schipper
-schireso
-schirmer
-schirtzi
-schissel
-schittl
-schlacht
-schlagen
-schlange
-schledwi
-schlegel
-schlemme
-schlicht
-schloboh
-schluter
-schmadtk
-schmeder
-schmeing
-schmeler
-schmelze
-schmidt
-schmitig
-schmitt
-schmitz
-schmoe
-schnacke
-schnaith
-schneide
-schnell
-schnirer
-schnob
-schnupp
-schnurma
-schober
-schoch
-schoen
-schoener
-schoenfe
-schoenin
-schoenli
-schoettl
-schofiel
-scholes
-scholey
-scholman
-scholtz
-schonber
-schooley
-schopenh
-schousbo
-schouwen
-schrader
-schrag
-schrage
-schram
-schraner
-schrang
-schreibe
-schreier
-schreife
-schreine
-schrier
-schroede
-schroer
-schroff
-schruefe
-schrupp
-schrybur
-schubert
-schuck
-schucker
-schuddeb
-schuett
-schuette
-schuld
-schulte
-schultz
-schultze
-schulz
-schulze
-schumach
-schumann
-schuster
-schute
-schutte
-schutz
-schuyler
-schvan
-schwab
-schwader
-schwalba
-schwane
-schwante
-schwartz
-schwarz
-schwenk
-schyndel
-schyving
-scibek
-scif
-scissons
-scodras
-scomello
-sconzo
-scooter
-scorpio
-scorziel
-scot
-scott
-scotti
-scottie
-scottjop
-scottt
-scotty
-scournea
-scovell
-scovill
-scp
-scpbuild
-scpiivo
-scptest
-scrantom
-scrbacic
-screener
-scribner
-scrivens
-scroger
-scss
-scssdev
-scully
-scurlock
-scythia
-se
-seabrook
-seager
-seagle
-seagrave
-seagrove
-seahawk
-seale
-sealy
-seamster
-seamus
-sean
-seana
-seang
-seanna
-seany
-searl
-searle
-searles
-sears
-seatter
-seawell
-seay
-sebastia
-sebastie
-sebata
-sebeh
-sechang
-sechen
-sechrest
-secrest
-security
-seda
-sedat
-sedayao
-seddigh
-seddon
-sedigheh
-sedovic
-sedran
-see
-seeds
-seegobin
-seelaend
-seelan
-seeler
-seeley
-seema
-seenu
-seery
-sees
-seethara
-segal
-segars
-seggie
-seguin
-sehat
-sehgal
-sehinson
-sehmbey
-sehyo
-sei
-seidel
-seiden
-seidl
-seidman
-seifers
-seifert
-seifried
-seiji
-seiko
-seiler
-seiple
-seipue
-seitz
-seiz
-sej
-sek-ming
-seka
-sekar
-sekhar
-seki
-sekiguch
-sekming
-sekuler
-sela
-selbrede
-selby
-selchow
-selcuk
-seldon
-selena
-selene
-selent
-selestin
-selia
-selic
-selie
-selig
-selim
-selime
-selina
-selinda
-seline
-seliske
-selisker
-selkirk
-sella
-sellars
-selle
-sellers
-sellgren
-sellis
-sells
-sellwood
-selma
-selva
-selvaraj
-selwyn
-sembi
-semeniuk
-semenzat
-semerau
-semler
-semmens
-semmler
-semoon
-sena
-senad
-senderow
-sendyk
-senecal
-senese
-sengoba
-sengupta
-seniuk
-senng
-senser
-senten
-sentner
-sentovic
-senyildi
-senyshyn
-seob
-seoju
-seok
-seong
-seoul
-sepe
-sepesi
-sephira
-sepko
-serack
-serafin
-seraphin
-serapin
-serazzi
-serban
-serber
-serbin
-serbus
-serdar
-serduke
-seregely
-serena
-serene
-serethia
-serge
-sergeant
-sergei
-sergent
-sergey
-sergi
-sergio
-sergiu
-sergo
-seroka
-serour
-serraf
-serrano
-serre
-servais
-servance
-services
-servidio
-serville
-seshadri
-seshan
-seth
-sethi
-sethian
-setiawan
-seto
-setsuko
-settels
-setterfi
-settles
-seufert
-seumas
-seung
-seungbin
-seungchu
-seungjun
-seuss
-seven
-severin
-severina
-severn
-severns
-sevigny
-sevilla
-seville
-seward
-sewell
-sey-ping
-seyar
-seyed
-seyfolla
-seyma
-seymour
-sezer
-sfiroudi
-sforza
-sgorniko
-sguigna
-sha-wen
-shabatur
-shabbir
-shabo
-shacham
-shackelf
-shacklef
-shacklet
-shackley
-shaddock
-shadow
-shae
-shafer
-shaffer
-shafik
-shafiq
-shafique
-shahab
-shahan
-shahani
-shahen
-shahid
-shahram
-shahriar
-shahrin
-shahrokh
-shahrood
-shai
-shaib
-shaibal
-shaida
-shaila
-shailan
-shailen
-shailend
-shailesh
-shailin
-shaina
-shaine
-shaji
-shaker
-shakeri
-shakib
-shakil
-shakoor
-shakor
-shalizi
-shalla
-shalmon
-shalna
-shalne
-shalom
-shama
-shamblin
-shames
-shamim
-shamir
-shamji
-shams
-shamshad
-shamshir
-shamsia
-shamus
-shan
-shan-min
-shan-pin
-shana
-shanahan
-shanan
-shanda
-shandee
-shandeig
-shandie
-shandra
-shandy
-shane
-shaner
-shang
-shang-ti
-shangi
-shangtia
-shani
-shanie
-shankar
-shanlin
-shanmin
-shanna
-shannah
-shannan
-shannen
-shannon
-shanon
-shanping
-shanta
-shantee
-shanti
-shantz
-shao
-shao-she
-shaoshen
-shapcott
-shapin
-shapiro
-shapland
-shappir
-shara
-sharad
-sharada
-sharae
-sharai
-sharan
-sharee
-shari
-sharia
-sharif
-shariff
-sharissa
-sharity
-sharkey
-sharky
-sharl
-sharla
-sharleen
-sharlene
-sharline
-sharma
-sharman
-sharmila
-sharnoff
-sharon
-sharona
-sharone
-sharpe
-sharratt
-sharri
-sharron
-sharry
-shary
-sharyl
-sharyn
-shashank
-shashi
-shastri
-shastry
-shatter
-shattuck
-shau
-shaughan
-shaughn
-shaughne
-shaukat
-shaumil
-shaun
-shauna
-shaupoh
-shaver
-shaw
-shaw-yun
-shawen
-shawn
-shawna
-shawnee
-shawyune
-shay
-shay-pin
-shayanpo
-shayla
-shaylah
-shaylyn
-shaylynn
-shayna
-shayne
-shayping
-shea
-sheaffer
-shealy
-shean
-sheara
-shearer
-shearin
-shearman
-shears
-sheba
-shebanow
-shechtma
-shedd
-shedman
-sheehan
-sheela
-sheelagh
-sheelah
-sheena
-sheeree
-sheergar
-sheets
-sheff
-sheffey
-sheffie
-sheffiel
-sheffy
-sheidafa
-sheikh
-sheikna
-sheila
-sheila-k
-sheilah
-sheilaka
-sheileag
-shein
-shek
-shekar
-shekhar
-shekwan
-shel
-shela
-shelagh
-shelba
-shelbi
-shelby
-shelden
-sheldon
-shelegey
-shelia
-shell
-shelley
-shelli
-shellie
-shellin
-shellman
-shelly
-shellysh
-shelton
-shem
-shemwell
-shen
-shen-zhi
-shena
-sheng
-sheng-fu
-shengfu
-shengru
-shengwen
-shengwu
-shennan
-shep
-shepard
-shepherd
-sheppard
-shepperd
-sher
-sherali
-sherard
-sheraton
-sherban
-shere
-sheree
-sheremet
-sheri
-sheri-ly
-sheridan
-sherie
-sherif
-sherill
-sherilyn
-sherin
-sherk
-sherline
-sherlock
-sherm
-sherman
-shermie
-shermy
-sherona
-sherow
-sherra
-sherrard
-sherrel
-sherrell
-sherrer
-sherri
-sherrie
-sherrill
-sherrily
-sherry
-sherrye
-sherryl
-sherwan
-sherwin
-sherwood
-sherwyn
-sherwynd
-sherye
-sheryl
-sheth
-sheu
-sheung
-shew
-shewchen
-shi
-shi-qin
-shi-wei
-shiang-y
-shiangyi
-shiao-mi
-shiaomin
-shibahar
-shibata
-shibberu
-shibo
-shieff
-shieh
-shiel
-shiela
-shields
-shiell
-shier
-shiffer
-shiflett
-shigeaki
-shigeki
-shigemur
-shigenao
-shigeo
-shigeru
-shih
-shih-dar
-shih-hai
-shih-hsi
-shih-kua
-shih-tie
-shihhai
-shihhsiu
-shihkuan
-shihtien
-shik
-shikui
-shila
-shiley
-shilla
-shilling
-shimada
-shimandl
-shimiz
-shimizu
-shimshon
-shin-dug
-shina
-shinder
-shindug
-shing
-shing-ch
-shing-mi
-shingche
-shingler
-shingmin
-shinichi
-shinji
-shinjo
-shinobu
-shinohar
-shinzo
-shiou
-shipe
-shipp
-shippen
-shiqin
-shiquan
-shir
-shirai
-shiranth
-shiratsu
-shiraz
-shireen
-shireman
-shirene
-shirey
-shirin
-shirinlo
-shirish
-shirl
-shirlee
-shirleen
-shirlene
-shirley
-shirley-
-shirline
-shirman
-shiroshi
-shirriff
-shishakl
-shishido
-shiu
-shiu-lin
-shiuan
-shiue
-shiuling
-shiun
-shiung
-shiv
-shiva
-shivaji
-shivapra
-shivchar
-shivdars
-shivnan
-shiwei
-shixian
-shlomo
-shmoys
-shnay
-shnider
-sho
-shoaf
-shobana
-shockley
-shoeb
-shoemake
-shoens
-shoji
-sholom
-shon
-shona
-shonda
-shonka
-shonuck
-shoou-yu
-shoouyu
-shop
-shoppel
-shorgan
-shorwan
-shoshana
-shoshann
-shostak
-shou
-shou-che
-shou-mei
-shoucher
-shoulars
-shouli
-shoun
-shouresh
-showers
-shreve
-shriberg
-shrieves
-shripad
-shriram
-shtivelm
-shtulman
-shu
-shu-chen
-shu-gong
-shu-mei
-shuang
-shuangli
-shubaly
-shuchen
-shue
-shuechia
-shuen
-shugong
-shuichi
-shuji
-shukor
-shukster
-shuler
-shull
-shultz
-shum
-shuman
-shumate
-shumei
-shunfeng
-shung
-shunhui
-shunmuga
-shunro
-shuo
-shupe
-shuqing
-shurlock
-shurtlef
-shurwood
-shuster
-shusuke
-shute
-shutler
-shutoku
-shutterb
-shuvra
-shuyen
-shwed
-shwu-chy
-shwuchyn
-shya-yun
-shyam
-shyan
-shyh-chi
-shyhchin
-shylo
-shyoko
-shypski
-shyu
-si
-siamack
-siamak
-siana
-sianna
-siaw
-sib
-sibbet
-sibbie
-sibby
-sibeal
-sibel
-sibella
-sibelle
-sibiga
-sibilla
-sibincic
-sibley
-sibyl
-sibylla
-sibylle
-sicard
-sich
-sichao
-sickle
-sickler
-sicotte
-sid
-siddall
-siddell
-siddiqui
-sides
-sidhu
-sidnee
-sidney
-sidone
-sidoney
-sidonia
-sidonnie
-sidor
-sidorovs
-sieben
-sieber
-siefert
-siegal
-siegel
-siegfrie
-siegle
-siegmund
-siegurd
-siehl
-sieling
-siemens
-siemer
-sienggo
-siew
-siew-kia
-siewert
-sifer
-siffre
-sig
-sigda
-sigfrid
-sigfried
-siggy
-sigismon
-sigismun
-sigmon
-sigmund
-signe
-sigrid
-sigurd
-sigurdso
-sigut
-sigvard
-siham
-sihem
-sik-yin
-sika
-sikander
-sikes
-sikita
-sikri
-sil
-silang
-silas
-silburt
-sile
-sileas
-silgardo
-silianu
-silieff
-silins
-sills
-sils
-silva
-silvain
-silvan
-silvana
-silvano
-silvanus
-silverma
-silverst
-silverth
-silveste
-silvestr
-silvia
-silvie
-silvio
-silwer
-sim
-simaan
-simanski
-simard
-simard-n
-simcha
-simcoe
-simcox
-sime
-simen
-simeon
-simeone
-simhan
-simion
-simkin
-simler
-simmonds
-simmons
-simms
-simon
-simon-ch
-simon-pu
-simona
-simone
-simonett
-simonian
-simonne
-simonovi
-simons
-simonsen
-simpkin
-simpson
-simren
-sims
-simser
-simson
-simulati
-simzer
-sina
-sinanan
-sinasac
-sinchak
-sinchau
-sinclair
-sinclare
-sindee
-sing
-sing-pin
-singbeil
-singer
-singh
-singhal
-singham
-singires
-singyu
-sinh
-sinha
-sinkfiel
-sinkovit
-sinnett
-sinnott
-sinoyann
-sinyor
-siobhan
-siomalas
-siotong
-sioux
-siouxie
-siperco
-sipes
-siping
-sipple
-sir
-sirevici
-siripong
-sirojith
-sisely
-sisile
-sisk
-siso
-sissela
-sissie
-sissy
-sist
-sitar
-sitch
-sitler
-siu
-siu-kwok
-siu-ling
-siu-man
-siusan
-siv
-siva
-sivaji
-sivasoth
-siward
-sizto
-sj
-sjaak
-sjerps
-sjouke
-skaff
-skaftaso
-skaggs
-skalski
-skanes
-skaret
-skariex
-skedelsk
-skeeter
-skef
-skell
-skelly
-skene
-skeoch
-skerlak
-skerry
-skeuse
-skiba
-skiclub
-skillen
-skillman
-skinner
-skip
-skipp
-skipper
-skippie
-skippy
-skipton
-sklower
-skoberne
-skof
-skopliak
-skrebels
-skriverv
-skrobans
-skrobeck
-skruber
-skuce
-skuratow
-skwarok
-sky
-skye
-skylar
-skyler
-slaa
-slabaugh
-slaby
-slade
-sladek
-slagel
-slartiba
-slatteng
-slattery
-slautter
-slavin
-sldisk
-sleeman
-sleeth
-slempers
-slick
-slinkard
-slinowsk
-sliter
-sloan
-sloane
-slobin
-sloboda
-slobodia
-slobodri
-slonosky
-slotnick
-slozil
-sluis
-slunder
-slusser
-sly
-slyteris
-smale
-smalltal
-smallwoo
-smecca
-smedema
-smeenk
-smelters
-smerdell
-smerek
-smid
-smine
-smit
-smita
-smith
-smithdea
-smithson
-smits
-smitty
-smolin
-smook
-smoot
-smothers
-smrke
-smrke-su
-smuda
-smulders
-smyrl
-smyth
-smythe
-snair
-snapper
-snarr
-snead
-snedden
-snedeker
-snehal
-snelgrov
-snelling
-snider
-sniderma
-snipes
-snips
-snodgras
-snoke
-snorri
-snowden
-snuggs
-snyder
-soard
-sobchuk
-sobczak
-sobeck
-sobel
-sobiesia
-sobitha
-sobkow
-sobolak
-sobolews
-sobon
-sochovka
-socorrit
-socrates
-sodano
-soderber
-sodhi
-soebowo
-soegiono
-sofeya
-soffa
-sofia
-sofie
-sofoklis
-soh
-sohaib
-sohail
-sohal
-sohale
-sohayla
-sohier
-sohni
-sohns
-sohota
-soiffer
-soin
-sojka
-sojkowsk
-sokolows
-sokyrko
-sol
-solai
-solange
-soldera
-solheim
-soliman
-solita
-solkoff
-sollee
-sollie
-sollman
-solly
-solman
-solodko
-solomon
-solovay
-solski
-soman
-somani
-somenzi
-somera
-somers
-somerset
-somervil
-somisett
-sommer
-sommerdo
-sommerfe
-sompong
-somppi
-somsak
-son
-sonbol
-sondra
-sondueim
-song-cha
-song-ho
-songchar
-songho
-songnian
-sonhing
-sonia
-sonier
-sonja
-sonne
-sonni
-sonnie
-sonnnie
-sonny
-sono
-sonoda
-sonoe
-sonya
-soo
-sood
-soohong
-soohoo
-sook
-sookdeo
-sooley
-soong
-soonhoi
-sophey
-sophi
-sophia
-sophie
-sophroni
-sorathia
-sorbi
-sorcha
-soreanu
-soren
-sorensen
-soriano
-sorin
-sorkin
-soroker
-sorrel
-sorrell
-sorrenti
-sos
-sosa
-sosanna
-sossaman
-sotelo
-sotiriad
-sotiris
-soto
-sotos
-souba
-soucie
-soucy
-sougata
-souheil
-soulef
-soules
-soullier
-soumis
-soumitra
-sounya
-souphala
-sources
-souren
-sourin
-sourisse
-sourour
-sousa
-soussa
-southard
-souther
-southon
-southwor
-souza
-sova
-soweidan
-sowry
-soyeh
-soyland
-soyong
-soyster
-soyuer
-space
-spallin
-spann
-spannbau
-sparacio
-sparkes
-sparks
-sparksma
-sparky
-spass
-spaugh
-speakec
-speaker
-spearman
-spearpoi
-spears
-specs
-speedy
-speer
-speers
-speight
-spejewsk
-spence
-spencer
-spense
-spenser
-sperman
-spessot
-spicer
-spickelm
-spieker
-spieler
-spight
-spike
-spilchak
-spillane
-spily
-spindler
-spinelli
-spingola
-spinks
-spirakis
-spirkovs
-spiros
-spisak
-spitzer
-spivey
-splitt
-spohn
-spolar
-sponagle
-sponchia
-spooner
-spragg
-spraggin
-sprague
-sprandel
-sprayber
-spriggs
-spriging
-springth
-sprott
-sproul
-sproule
-sprouse
-spruell
-sprules
-sprunger
-spudboy
-spurlin
-spurlock
-spurway
-spy
-spyridon
-spyros
-squires
-squizzat
-sr
-srawan
-src
-sreedhar
-sri
-sridaran
-sridevi
-sridhar
-sridhara
-srihari
-srikanth
-srikrish
-srimurti
-srinath
-srini
-sriniuas
-srinivas
-sriram
-sriranja
-srirupa
-sriv
-srivasta
-srivatsa
-sroczyns
-ssi
-ssington
-st
-st-amour
-st-denis
-st-louis
-st-marti
-st-onge
-st-pierr
-st.
-st.clair
-st.denis
-st.germa
-st.jacqu
-st.john
-st.laure
-st.louis
-st.pierr
-st.vil
-st_james
-staats
-stabilit
-stace
-stacee
-stacey
-stach
-stachowi
-staci
-stacia
-stacie
-stackpol
-stacy
-stadelme
-stadler
-stafani
-staffard
-staffeld
-staffing
-stafford
-staford
-stagger
-staggs
-stagmier
-stahl
-stahly
-stainbac
-staley
-stalin
-stallabr
-stallcup
-stalling
-stalter
-stamboul
-stampfl
-stampley
-stamps
-stan
-stanciu
-stanczyk
-standard
-standel
-standen
-standfor
-standrin
-stanfiel
-stanford
-stange
-stanisla
-stanke
-stanleig
-stanley
-stanly
-stansber
-stansbur
-stansby
-stansell
-stansfie
-stanton
-stanulis
-stanwood
-stapenho
-staples
-star
-starbuck
-staring
-starkaus
-starkeba
-starkes
-starks
-starla
-starlene
-starlet
-starlin
-starnes
-starowic
-starr
-stars
-starsdps
-starzman
-stasaski
-stasiak
-stasney
-stastny
-stasyszy
-stat
-staten
-stateson
-statile
-statisti
-staton
-stavro
-stavros
-stayton
-stclair
-stctest
-stds
-ste
-ste-mari
-stearn
-stearne
-stearns
-stebbing
-steckley
-steede
-steele
-steelman
-steen
-steenbur
-steene
-steeves
-stefa
-stefan
-stefana
-stefanac
-stefania
-stefanie
-stefano
-steffane
-steffen
-steffens
-steffes
-steffey
-steffi
-steffie
-steffy
-stegall
-steggall
-stegman
-stegmuel
-stehen
-stehr
-steidel
-steiert
-steinar
-steinbac
-steinber
-steinhar
-steip
-stejskal
-steklasa
-stelcner
-stella
-stellita
-stellwag
-stemmler
-stender
-stennett
-stenson
-stensrud
-stepchuk
-steph
-stepha
-stephan
-stephana
-stephane
-stephani
-stephann
-stephans
-stephanu
-stephany
-stephe
-stephen
-stepheni
-stephens
-stephi
-stephie
-stephine
-stepler
-stepp
-steranka
-stercyk
-sterczyk
-sterescu
-stergios
-sterian
-sterling
-stern
-sterne
-stesha
-steski
-stetner
-stetson
-stetter
-stettner
-stevan
-stevana
-stevanov
-steve
-steven
-stevena
-stevens
-stevenso
-stevie
-stevy
-stew
-steward
-stewart
-stewart-
-sticklan
-sticpewi
-stiglitz
-stiles
-stillman
-stillwel
-stimler
-stina
-sting
-stinky
-stinson
-stinzian
-stirling
-stirrett
-stites
-stjohn
-stobaugh
-stock
-stocker
-stocks
-stockton
-stockwel
-stodart
-stoddard
-stoelzle
-stoevsky
-stoffels
-stoker
-stokes
-stokker
-stokoe
-stokoski
-stolzle
-ston
-stone
-stonebra
-stonehou
-stoner
-stonos
-stooke
-storace
-storelli
-storey
-storm
-stormi
-stormie
-stormy
-storrie
-story
-stotts
-stotz
-stouder
-stough
-stovall
-stover
-stowe
-stoyles
-strachan
-strackho
-strader
-straka
-strandbe
-strandlu
-strannem
-strasser
-stratfor
-stratton
-straub
-strauch
-strauss
-strautma
-strawczy
-strayhor
-streater
-streatfi
-streibel
-streight
-streng
-strickla
-strider
-strober
-strock
-stroemer
-strohmey
-strom
-stronski
-stropp
-stroud
-stroupe
-strube
-struble
-strucche
-strudwic
-struzyns
-stu
-stuart
-stubblef
-stubbs
-stuckey
-stude
-student
-studer
-stults
-stumpf
-sturdiva
-sture
-sturrock
-stutts
-su
-su-xin
-suany
-suarez
-suat
-subasing
-subhash
-subhashi
-subhi
-subhra
-subhrans
-subi
-subick
-subissat
-subitha
-submital
-subodh
-subra
-subraman
-subroto
-subsara
-subu
-sucha
-suchitra
-suchocki
-suda
-sudabeh
-sudan
-sudbey
-sudbury
-suddarth
-sudeep
-sudesh
-sudha
-sudhakar
-sudhir
-sudip
-sue
-sue-joe
-sue-may
-sueanne
-suejoe
-sueling
-suellen
-suen
-suer
-suess
-sufcak
-suffern
-sugandi
-sugarbro
-sugarman
-sugih
-sugihara
-suh
-suha
-suhail
-suharly
-suhas
-suilin
-suiping
-suitt
-sujay
-suk-ho
-suk-jae
-suk-yin
-sukey
-sukhendu
-sukho
-sukhwant
-suki
-sukjae
-sukku
-sukumar
-sula
-sulatyck
-sule
-sulewski
-suliguin
-sullivan
-sully
-sultan
-suman
-sumanth
-sumaryan
-sume
-sumi
-sumit
-sumitro
-summach
-summerli
-summers
-sumner
-sumpter
-sunatori
-sundar
-sundaram
-sundares
-sunderla
-sundra
-sung
-sung-cho
-sung-sup
-sungchin
-sungchon
-sunghae
-sungki
-sungkyoo
-sungsup
-sunil
-sunjay
-sunnie
-sunning
-sunny
-sunshine
-sunstrum
-suomela
-supervis
-support
-suprick
-supriya
-supriyo
-sura
-surazski
-surber
-surendra
-suresh
-suria
-surinder
-surowani
-surray
-surreau
-surridge
-sursal
-survey
-surya
-susan
-susana
-susanett
-susann
-susanna
-susannah
-susanne
-susanto
-susette
-susi
-susick
-susie
-susil
-sussie
-susumu
-susy
-sutardja
-sutarja
-sutarwal
-sutcliff
-suter
-sutera
-sutherla
-suthers
-sutija
-sutphen
-sutter
-sutterfi
-sutterli
-sutton
-suu
-suvanee
-suwala
-suwanawo
-suwandi
-suxin
-suyama
-suykens
-suyog
-suzan
-suzane
-suzann
-suzanna
-suzanne
-suzette
-suzi
-suzie
-suzuki
-suzy
-svalesen
-svante
-sven
-svend
-svenn-er
-svensson
-sventek
-svetlana
-svilans
-svm-bnrm
-svo
-svr
-swact
-swaden
-swails
-swaine
-swamy
-swandi
-swann
-swanson
-swanston
-swaranji
-swartz
-swazey
-swd
-swearing
-swee-joo
-sweeney
-sweetnam
-swen
-swenberg
-swensen
-swenson
-swepston
-swiat
-swiatkow
-swick
-swidersk
-swinamer
-swinburn
-swinkels
-swinks
-swinney
-swinson
-swinwood
-swisher
-switchin
-switzer
-swope
-swr
-swyer
-sy
-syal
-syamala
-sybil
-sybila
-sybilla
-sybille
-sybyl
-sycha
-syd
-sydel
-sydelle
-sydeman
-sydney
-sydnor
-sydor
-sydoryk
-syed
-sykes
-syl
-sylas
-sylva
-sylvain
-sylvan
-sylveste
-sylvestr
-sylvia
-sylvie
-sylvio
-sym
-syman
-symen
-symon
-symons
-syndra
-synful
-synness
-syposz
-syres
-syrett
-sys
-sysadmin
-sysint
-syssuppo
-systems
-systest
-syun
-syyed
-szabo
-szamosi
-szaplonc
-szaran
-szeto
-sziladi
-szkarlat
-szopinsk
-szot
-szpakows
-szpilfog
-sztein
-szuminsk
-szura
-szymansk
-szypulsk
-ta
-ta-sung
-tab
-tabaja
-tabalba
-tabatha
-tabb
-tabbatha
-tabbert
-tabbi
-tabbie
-tabbitha
-tabby
-taber
-tabina
-tabitha
-tabl
-tabler
-tables
-tabor
-tac
-tachih
-tacitus
-tad
-tadayuki
-tadd
-taddeo
-taddeusz
-taddio
-tadeas
-tadeo
-tades
-tadeusz
-tadevich
-tadge
-tadio
-tadlock
-tae
-tae-ho
-tae-hwan
-taeho
-taehwan
-taffy
-taggart
-taghizad
-tague
-tahamont
-tahani
-taharudd
-taheri
-tahir
-tahsin
-tai
-tai-jen
-tailinh
-tailor
-taina
-tait
-taite
-taiwana
-tajbakhs
-tak
-tak-wai
-takagi
-takahash
-takahisa
-takako
-takao
-takashi
-takashim
-takata
-takayuki
-takefman
-takehiko
-takeo
-takeshim
-takeuchi
-taki
-takis
-takiyana
-tal
-talbert
-talbot
-talbott
-talcott
-talevi
-talia
-talis
-tallett
-tallia
-tallie
-tallou
-tallulah
-tally
-talmont
-talmy
-talton
-talya
-talyah
-tam
-tamar
-tamara
-tamarah
-tamarell
-tamaresi
-tamarra
-tamas
-tamasi
-tamer
-tamera
-tami
-tamiko
-tamir
-tamma
-tammara
-tammaro
-tammi
-tammie
-tammy
-tamqrah
-tamra
-tamrazia
-tamura
-tan
-tan-atic
-tana
-tanaka
-tanchak
-tancordo
-tandberg
-tandi
-tandie
-tandiono
-tandiwe
-tandy
-tanferna
-tanglao
-tangren
-tanhya
-tani
-tania
-tanio
-tanir
-tanitans
-tanja
-tann
-tanner
-tanney
-tannie
-tanniere
-tanny
-tansy
-tanya
-tao
-tap
-tapani
-tape
-tapner
-tapp
-tappende
-tappert
-tapsell
-tara
-tarah
-tarak
-taralp
-taraneh
-tarant
-taranto
-taraschu
-tarasewi
-tardif
-tardiff
-tardioli
-tarek
-taren
-tareq
-targosky
-tarik
-tariq
-tarlamis
-tarle
-tarmi
-tarnai
-tarng
-taro
-tarof
-tarquini
-tarra
-tarrah
-tarrance
-tarrant
-tarsky
-tarte
-tarus
-tarver
-taryn
-taryna
-tas
-taschere
-tash
-tasha
-tasia
-taskforc
-taspatch
-tassi
-tasso
-tassy
-tasuk
-tasung
-tat
-tata
-tatangsu
-tatar
-tate
-tatemich
-tates
-tateyama
-tatiana
-tatiania
-tats
-tatsdocn
-tatsman
-tatsugaw
-tatsuya
-tattenba
-tatum
-tatyana
-tauberg
-taul
-tauna
-taurus
-tauscher
-tauvia
-tavana
-tavares
-taverner
-tavis
-tawauna
-tawfik
-tawnya
-tawsha
-taxashi
-tay
-tayeb
-tayfun
-taylor
-taylor-h
-tayyab
-tc
-tchangid
-tchir
-td
-tdr
-te-chih
-te-hsiu
-te-wei
-teacher
-teador
-teague
-team
-teasley
-tebbe
-tebinka
-tec
-tech
-techih
-technica
-technoso
-teck
-tecklenb
-ted
-tedd
-tedda
-teddi
-teddie
-teddy
-teder
-tedi
-tedie
-tedman
-tedmund
-tedra
-tedrick
-teed
-teena
-teerdhal
-teetwo
-teh
-tehchi
-tehsiu
-teichman
-teiichi
-tein-min
-teinmin
-teirtza
-teitelba
-tej
-tejada
-tejal
-tejani
-tel
-telco
-tele
-telecom
-telesis
-telex
-telfer
-telidis
-telke
-tello
-tellup
-telos
-telva
-temp
-temple
-temple-d
-templeto
-ten-huei
-tena
-tencer
-teng
-tenhuei
-teniola
-tenna
-tennant
-tenney
-tennyson
-teo
-teodoor
-teodor
-teodora
-teodoric
-teodoro
-tera
-terakado
-teran
-terangue
-terence
-terencio
-teresa
-terese
-teresina
-teresita
-teressa
-terez
-teri
-teriann
-terminal
-terneus
-terr
-terra
-terrade
-terrance
-terranel
-terranov
-terrel
-terrell
-terrence
-terresa
-terri
-terri-jo
-terri-le
-terrie
-terrijo
-terrilei
-terrill
-terry
-terrye
-terryl
-tersina
-teruko
-teruo
-teruyuki
-terwey
-terwilli
-terza
-terzian
-tesa
-tesch
-tesfagab
-tesfamar
-tesh
-tesla
-tess
-tessa
-tessi
-tessie
-tessier
-tessler
-tessty
-tessy
-testa
-testagc
-tester
-testing
-testingp
-testntmv
-testsds
-testtool
-tetrault
-tetreaul
-tetsukaz
-tetsumo
-tetsuo
-tetsuya
-tetsuyuk
-teufel
-tevlin
-tewksbur
-tex
-teymour
-thabet
-thac
-thach
-thacher
-thacker
-thad
-thaddeus
-thaddus
-thadeus
-thai
-thain
-thaine
-thais
-thaker
-thakor
-thakur
-thaler
-thalia
-tham
-thames
-thane
-thang
-thanh
-thanh-ha
-thanh-ho
-thanh-hu
-thanh-qu
-thanh-so
-thanh-ti
-thanos
-thao
-tharby
-tharring
-thatch
-thatcher
-thatte
-thaxter
-thaxton
-thayer
-thayne
-the
-the worl
-thea
-theadora
-thebault
-theda
-thedford
-thedora
-thedric
-thedrick
-thege
-theis
-thekla
-thelma
-theloose
-themann
-theo
-theobald
-theochar
-theodor
-theodora
-theodore
-theodori
-theodosi
-theofani
-theohari
-theologo
-theoret
-thera
-theresa
-therese
-theresin
-theresit
-theressa
-theriaul
-therien
-therine
-theriot
-theron
-therrien
-thersa
-thevenar
-thewalt
-thi
-thi-cuc
-thia
-thibaud
-thibault
-thibaut
-thibeaul
-thibert
-thibodea
-thibon
-thiebaut
-thieken
-thiel
-thiem
-thien
-thierry
-thiery
-thies
-thiessen
-thieu
-thifault
-thill
-thimothy
-thinh
-think
-thirugna
-this dir
-thisdel
-thisner
-thoai
-thoi
-thom
-thoma
-thomaier
-thomalla
-thomas
-thomasa
-thomasi
-thomasia
-thomasin
-thomason
-thomasse
-thomassi
-thombors
-thomey
-thomlins
-thompson
-thoms
-thomsen
-thomson
-thon
-thondanu
-thor
-thoreau
-thorin
-thorley
-thorman
-thorn
-thornber
-thornbur
-thorndik
-thorne
-thornie
-thornley
-thornton
-thorny
-thorpe
-thorsen
-thorslun
-thorson
-thorstei
-thorsten
-thorvald
-those
-threader
-thrift
-throgmor
-thu
-thuan
-thuesen
-thum
-thumm
-thuong
-thurgood
-thurley
-thurman
-thurstan
-thurston
-thuswald
-thuthuy
-thuy
-thyagara
-ti
-ti-cheng
-ti-jeun
-tian
-tianbao
-tiberghi
-tibi
-tibold
-tibor
-tice
-ticheng
-ticzon
-tidball
-tidd
-tidwell
-tiebold
-tiebout
-tiedeman
-tiefenth
-tiegs
-tien
-tien-bue
-tien-chi
-tiena
-tienbuen
-tienchie
-tienyow
-tierney
-tiertza
-tieu
-tiff
-tiffani
-tiffanie
-tiffany
-tiffi
-tiffie
-tiffy
-tigg
-tigger
-tigran
-tihanyi
-tiina
-tijeun
-tilak
-tilbenny
-tilda
-tilden
-tildi
-tildie
-tildy
-tiler
-tilk
-tille
-tiller
-tilley
-tillie
-tillman
-tilly
-tilmon
-tilson
-tilton
-tim
-timeshee
-timi
-timleck
-timler
-timm
-timmer
-timmerma
-timmi
-timmie
-timmins
-timmons
-timms
-timmy
-timo
-timofei
-timos
-timoteo
-timothea
-timothee
-timotheu
-timothy
-timpson
-tims
-timsit
-timtsche
-tin
-tina
-tine
-tineke
-tiner
-ting
-ting-shu
-ting-tin
-ting-yu
-tingshuo
-tingting
-tingyu
-tingyue
-tini
-tinney
-tino
-tintor
-tiny
-tio
-tiong-ho
-tip
-tiphani
-tiphanie
-tiphany
-tippett
-tipping
-tippy
-tipton
-tirrell
-tischhau
-tischler
-tisdale
-tisdall
-tiseo
-tish
-tisha
-titian
-tito
-titos
-titus
-tiu
-tiwari
-tiziano
-tjahjadi
-tjia
-tjiong
-tjoe
-tjong
-toan
-toastmas
-toba
-tobe
-tobey
-tobi
-tobiah
-tobias
-tobie
-tobin
-tobit
-toby
-tobye
-tod
-todaro
-todd
-toddi
-toddie
-toddy
-todloski
-todo
-todorovi
-toerless
-toews
-toft
-togasaki
-tognoni
-tohama
-toi
-toiboid
-toinette
-tolar
-toles
-toletzka
-tolgyess
-tolle
-tollefse
-tolson
-tolstoy
-toly
-tom
-toma
-tomacic
-tomack
-tomacruz
-tomar
-tomas
-tomasett
-tomasina
-tomasine
-tomaso
-tomassi
-tomasz
-tomaszew
-tombul
-tome
-tomes
-tomi
-tomkin
-tomlin
-tomlinso
-tommaso
-tommi
-tommie
-tommy
-tomochek
-tomohiro
-tomoyosh
-tompkins
-tomy
-tonelli
-toney
-tong
-tongder
-toni
-tonia
-tonie
-tonkovic
-tonnie
-tonny
-tonogai
-tonu
-tony
-tonya
-tonye
-tookey
-toolbox
-toole
-tooley
-toolroom
-tools
-toolset
-toomer
-toone
-toop
-toothman
-tootsie
-tooyserk
-toperzer
-topgun
-toplis
-topo
-topol
-topp
-tor
-torain
-torbert
-torcac
-tordocs
-tore
-torey
-tori
-torian
-torie
-toril
-torin
-tornes
-tornqvis
-torok
-torr
-torrance
-torre
-torrealb
-torrell
-torrence
-torrens
-torres
-torrey
-torrie
-torrin
-torry
-torsten
-torunn
-tory
-tosca
-toscano
-tosczak
-toshach
-toshachn
-toshi
-toshiaki
-toshihir
-toshinar
-toss
-tostenso
-tota
-totaro
-toth
-totino
-totman
-totten
-totti
-touati
-touchett
-toufic
-tougas
-toulson
-toupin
-tousigna
-toussain
-tova
-tovah
-tove
-towaij
-towers
-towill
-towler
-towles
-town
-towney
-townie
-townley
-towns
-townsel
-townsend
-townson
-towny
-towsley
-toyanne
-toyoji
-toyooka
-tprl
-trace
-tracee
-traces
-tracey
-tracey-m
-trachsel
-traci
-tracie
-tracy
-tracz
-trader
-trae
-trafford
-trahan
-trainer
-training
-trainor
-trajan
-tramar
-trame
-tran
-tranfagl
-trang
-transki
-translat
-tranter
-trasmund
-traugott
-traulich
-traut
-trautman
-travel-p
-travelpe
-traver
-travers
-travis
-travus
-traxler
-trayer
-traylor
-traynor
-trecia
-tredenni
-tredway
-treen
-trees
-trefor
-trefry
-trefts
-tregenza
-treisman
-trek @
-tremain
-tremaine
-tremayne
-tremblay
-tremewan
-trenna
-trent
-trentadu
-trenton
-tres
-tres-sup
-tresa
-trescha
-trese
-tresrch
-tressa
-trev
-trevar
-trever
-trevetha
-trevitt
-trevor
-trey
-tri
-trial
-triantap
-tricci
-tricia
-trickett
-tricord
-trieu
-trif
-trifiro
-triggian
-trijanto
-trimble
-trina
-trindy
-trinh
-trinidad
-trink
-trip
-tripier
-tripleho
-tripp
-tripps
-tris
-trish
-trisha
-trisic
-trisko
-trista
-tristam
-tristan
-tristano
-trittler
-tritton
-trivedi
-trix
-trixi
-trixie
-trixy
-trocchi
-trochu
-troesch
-trojak
-tromm
-trong
-tropea
-tropeano
-trotsky
-trotter
-trottier
-troubors
-troup
-trowbrid
-troy
-troyvoi
-trpisovs
-trstram
-tru-fu
-truchon
-truda
-trude
-trudel
-trudell
-trudey
-trudi
-trudie
-trudy
-truebloo
-truelove
-trueman
-truesdal
-truffer
-trujillo
-trula
-trull
-truls
-trumaine
-truman
-trumann
-trumble
-trung
-trungy
-trunley
-truong
-truran
-trussler
-trutsche
-truus
-tryfon
-trying
-tsai
-tsai-hun
-tsaihung
-tsakalis
-tsalikis
-tsang
-tsao
-tsay
-tschaja
-tschann
-tse
-tse-lian
-tseliang
-tseng
-tsenter
-tsern
-tsiakas
-tsing
-tsitsior
-tsitsons
-tso
-tsolas
-tsong-li
-tsonglia
-tsonos
-tsortos
-tsoucas
-tsugio
-tsui
-tsuji
-tsuk
-tsun-kuo
-tsun-yuk
-tsuneo
-tsung
-tsunkuo
-tsunoda
-tsunyuk
-tsuyoshi
-ttisuppo
-tu
-tuan
-tubb
-tuck
-tucker
-tuckie
-tucky
-tudo
-tudor
-tue
-tuen
-tuesday
-tuffo
-tufford
-tuhina
-tuhr
-tulga
-tulio
-tulip
-tulk
-tull
-tulley
-tullius
-tullo
-tully
-tun-lin
-tuna
-tunali
-tung
-tung-min
-tunghsin
-tungming
-tunon
-tuoi
-tuok
-tuong
-tupas
-tupling
-turbes
-turbyfil
-turchan
-turcot
-turcotte
-turgay
-turing
-turkeer
-turkey
-turki
-turkki
-turkovic
-turnbull
-turner
-turney
-turpin
-turrubia
-turunen
-turus
-tushar
-tussey
-tusting
-tutt
-tuttle
-tuxford
-tuyen
-tuyetphu
-twa
-twana
-twarog
-tweddle
-tweetie
-twidale
-twiggy
-twila
-twiss
-twitty
-twolan
-twx
-twyla
-twyman
-twynham
-twyver
-txp
-ty
-tyack
-tybalt
-tybi
-tybie
-tyda
-tye
-tyke
-tyler
-tymchuk
-tymon
-tymothy
-tynan
-tyndall
-tyne
-tyner
-typer
-tyra
-tyrance
-tyroler
-tyron
-tyronda
-tyrone
-tyrrell
-tyrus
-tyson
-tzanetea
-tzeng
-tzong-sh
-tzong-ya
-tzongshi
-tzongyan
-tzou
-tzuang
-tzung
-uae
-uathavik
-uberig
-uchida
-uchiyama
-udale
-udall
-uday
-udaya
-udayasek
-ude
-udell
-uecker
-ueda
-uehara
-ueyama
-uffner
-ufomadu
-ugo
-uguccion
-ugwa
-uhl
-uhley
-uhlhorn
-uhlig
-ukena
-ula
-ulberto
-ulf
-ulgen
-uli
-ulick
-ulises
-ulla
-ully
-ulric
-ulrica
-ulrich
-ulrick
-ulrika
-ulrikaum
-ulrike
-ultrason
-uludamar
-ulysses
-umakanta
-umakanth
-umberto
-umeeda
-umeh
-umeko
-umesh
-umetsu
-umphres
-una
-una-mae
-unabr.di
-underwoo
-unger
-unitt
-unix
-unixsupp
-unkefer
-unkles
-unreg
-unsoy
-unxlb
-upchurch
-updt
-upen
-uppal
-upshaw
-upton
-urata
-urbain
-urban
-urbanic
-urbano
-urbanowi
-urbanus
-urbashi
-urbick
-urbielew
-urbshas
-uresh
-uri
-uriah
-uriel
-urnes
-urow
-urquhart
-urs
-ursa
-ursala
-ursola
-urson
-ursula
-ursulina
-ursuline
-urwin
-us
-usa
-useng
-user
-usman
-usrouter
-uswrsd
-usyk
-uszynski
-uta
-utah
-utas
-utilla
-utpal
-utpala
-utsumi
-uunko
-uvieghar
-uyar
-vachel
-vacher
-vachiran
-vachon
-vaclav
-vaculik
-vadala
-vadali
-vadi
-vadim
-vafaie
-vaglio-l
-vahary
-vahdat
-vahe
-vahedi
-vahid
-vaid
-vail
-vaillanc
-vaillant
-vairavan
-vajentic
-vajih
-vakhshoo
-vakili
-val
-valaree
-valaria
-valcourt
-valda
-valdemar
-valdez
-vale
-valeda
-valencia
-valene
-valenka
-valenta
-valente
-valentia
-valentij
-valentik
-valentin
-valenzia
-valera
-valeria
-valerie
-valerien
-valerio
-valerius
-valery
-valerye
-valia
-valida
-valin
-valina
-valinda
-valiquet
-valiveti
-valko
-valkyrie
-valla
-vallath
-valle
-vallee
-vallejos
-vallenty
-vallet
-valli
-valliani
-vallie
-vallier
-valliere
-vallipur
-vallozzi
-vally
-valma
-valois
-valorie
-valry
-valvasor
-van
-van alph
-van alst
-van atta
-van bake
-van bent
-van coon
-van den
-van der
-van dyke
-van es
-van eyk
-van flee
-van gaal
-van hast
-van hols
-van hoy
-van huls
-van kast
-van kess
-van klin
-van late
-van leeu
-van loon
-van mans
-van mete
-van nest
-van oors
-van orde
-van phil
-van rijn
-van rijs
-van scho
-van schy
-van sick
-van terr
-van veen
-van vrou
-van weri
-van-king
-vanaman
-vanasse
-vance
-vanda
-vandagri
-vandenbe
-vandenbo
-vandenhe
-vandenki
-vanderbi
-vanderbo
-vanderbu
-vanderge
-vanderhe
-vanderho
-vanderpo
-vanderve
-vanderwe
-vandeval
-vandevan
-vandeven
-vandewat
-vandewou
-vandomme
-vandoorn
-vandusen
-vanessa
-vangaste
-vania
-vanity
-vankoote
-vanlaar
-vanliew
-vann
-vanna
-vanni
-vannie
-vanny
-vanpatte
-vanstaal
-vanstory
-vanta
-vanter
-vanwormh
-vanwyche
-vanya
-vanzella
-varady
-varaiya
-varano
-varda
-vardy
-varennes
-vargas
-vargo
-varia
-varkel
-varkey
-varley
-varmazis
-varsava
-vartanes
-varughes
-varujan
-vasan
-vasantha
-vasarhel
-vaserfir
-vasil
-vasile
-vasili
-vasiliad
-vasiliki
-vasilis
-vasilopo
-vasily
-vason
-vasoufz
-vassili
-vassilik
-vassilis
-vassily
-vassos
-vastine
-vasu
-vasudeva
-vaswani
-vaterlau
-vaters
-vaughan
-vaughn
-vavarout
-vavroch
-vawter
-vax
-vazirani
-vea
-veale
-veals
-veciana
-veck
-ved
-veda
-vedant
-veedell
-veen
-veena
-vega
-vehling
-veillett
-veilleux
-veit
-vejar
-veklerov
-veksler
-vela
-velasque
-vele
-veleta
-velez
-veljko
-vella
-velline
-vellino
-velma
-veloria
-veloz
-velsher
-velvet
-vempati
-ven
-venbakm
-vendette
-veneice
-veness
-veng
-venger
-venguswa
-venier
-venita
-venjohn
-venkat
-venkata
-venkatak
-venkatar
-venkates
-venkatra
-venne
-venner
-venning
-vennos
-ventrone
-ventura
-venturin
-venus
-vera
-veradis
-verardi
-verch
-verde
-verdi
-verdonse
-vere
-verena
-verene
-verge
-verghese
-vergil
-verheyde
-verhoeve
-verhotz
-veriee
-verifica
-verile
-verina
-verinder
-verine
-verkroos
-verla
-verlyn
-verma
-vermeesc
-vermette
-vern
-verna
-verne
-vernen
-verney
-vernice
-verniece
-vernita
-vernon
-vernor
-verona
-veronica
-veronika
-veronike
-veroniqu
-verreau
-verrenne
-verrilli
-versace
-versteeg
-vertolli
-verville
-veryl
-verzilli
-veselko
-vesna
-vespa
-vester
-vesterda
-vetil
-vetrano
-vetrie
-vetter
-vettese
-vevay
-vexler
-vey
-veyrat
-vezeau
-vezina
-vi
-viano
-viau
-viavant
-vibeke
-vic
-vice
-vicente
-vicheara
-vick
-vickers
-vicki
-vickie
-vicky
-victoir
-victor
-victoria
-vicuong
-vida
-vidaurri
-videa
-vidhyana
-vidmer
-vidovic
-vidovik
-viduya
-vidya
-viegas
-vieger
-viehweg
-vieillar
-vieira
-vieiro
-viens
-viera
-vieregge
-vigeant
-viitanie
-vijai
-vijay
-vijaya
-vijayala
-vijya
-vik
-vikas
-viki
-vikki
-vikky
-vikram
-vikrant
-viktor
-viktoria
-vilas
-vilayil
-vilhan
-vilhelm
-vilhelmi
-vilis
-villanue
-villarea
-villella
-villeneu
-vilma
-vilmanse
-vilok
-vilozny
-vimal
-vimi
-vin
-vina
-vinas
-vinay
-vince
-vincent
-vincente
-vincents
-vincenty
-vincenz
-vincenzo
-vineet
-vinet
-viney
-vinh
-vinita
-vinnell
-vinni
-vinnie
-vinny
-vino
-vinod
-vinson
-viola
-violante
-viole
-violet
-violeta
-violetta
-violette
-vipi
-vipul
-viqar
-virani
-virant
-virchick
-virge
-virgie
-virgil
-virgilio
-virgina
-virginia
-virginie
-virgoe
-viriato
-viriya
-virk
-virko
-visentin
-vish
-vishal
-vishwa
-visiting
-viskanta
-visockis
-vispi
-vispy
-visser
-vistlik
-visvanat
-viswa
-viswamit
-vita
-vitacco
-vitaglia
-vital
-vite
-vithit
-vitia
-vito
-vitoria
-vittoria
-vittorio
-viv
-viva
-viveca
-vivek
-vivi
-vivia
-vivian
-viviana
-viviane
-vivianna
-vivianne
-vivie
-vivien
-viviene
-vivienne
-vivier
-viviyan
-vivyan
-vivyanne
-vlad
-vladamir
-vladdy
-vladica
-vladimir
-vladisla
-vlado
-vlahos
-vlanin
-vm
-vmbackup
-vmchange
-vmcord
-vmsuppor
-vmxa
-vo
-voadmin
-vodicka
-voduc
-voelcker
-vogel
-vogt
-voight
-voitel
-volchegu
-volfe
-volk
-volker
-volkmann
-volkmer
-vollmer
-volz
-von
-von ende
-von semm
-von zube
-voncanno
-vonck
-vonderha
-vondersc
-vonderwe
-vonlehmd
-vonni
-vonnie
-vonny
-vonreich
-vony
-vonzant
-voort
-vopalens
-vopni
-voros
-vosberg
-vosburg
-voss
-vosu
-vosup
-voula
-vowels
-vrabel
-vradmin
-vrbetic
-vreugden
-vries
-vrinda
-vrouwerf
-vu
-vucinich
-vuhoan
-vuignier
-vuncanno
-vuong
-vuquoc
-vyachesl
-vyaragav
-vyas
-vyjayant
-vyky
-vyza
-wa
-waals
-wacheski
-wachtste
-wacker
-wada
-wadasing
-waddell
-wadden
-waddick
-waddingt
-wade
-wadkins
-wadswort
-waespe
-waeyen
-wagage
-wager
-wagers
-waggoner
-waghorne
-waghray
-wagle
-wagner
-wagoner
-wahab
-wahbe
-wahju
-wai
-wai-bun
-wai-chau
-wai-chin
-wai-fah
-wai-hung
-wai-leun
-wai-man
-waichi
-waid
-waidler
-waifah
-waigh
-waihung
-wain
-waines
-wainwrig
-waissman
-wait
-waite
-waiter
-waitman
-waja
-wakabaya
-wakako
-wake
-wakefiel
-wakeham
-wakim
-walas
-walbridg
-walburga
-walchli
-wald
-waldemar
-walden
-waldick
-waldie
-waldo
-waldon
-waldron
-wales
-waletzky
-walford
-walia
-walid
-walker
-walkins
-walkley
-walkowia
-wallace
-wallache
-wallaert
-wallas
-wallbank
-waller
-walles
-walley
-wallgren
-wallie
-wallis
-walliw
-walls
-wally
-waloff
-walpole
-walrand
-walrond
-walser
-walsh
-walston
-walt
-walta
-waltdisn
-walter
-walters
-walther
-walton
-waltraud
-waly
-walz
-wambsgan
-wamozart
-wan
-wanda
-wandel
-wandie
-wandis
-wandojo
-wandsche
-waneta
-wang
-wanids
-wannell
-wanner
-wans
-wanzeck
-war
-warburg
-warburto
-ward
-warde
-warden
-wardle
-wardrop
-ware
-wares
-warfel
-wargnier
-warin
-waring
-wark
-warkenti
-warner
-warnock
-warnow
-warrello
-warren
-warriner
-warshaws
-wartman
-warun
-warwick
-waschuk
-waserman
-wash
-washburn
-washingt
-wasim
-wasitova
-wasley
-wasmeier
-wassel
-wasserma
-wassim
-wasson
-wasylenk
-wasylyk
-wat
-watanabe
-watchmak
-watchorn
-waterhou
-waterman
-waters
-watford
-watkins
-watkinso
-watmore
-watson
-watters
-wattier
-watts
-watznaue
-waucheul
-waugh
-waverley
-waverly
-way
-waybrigh
-wayez
-waylan
-wayland
-waylen
-wayler
-waylin
-wayling
-waylon
-wayman
-waymon
-wayne
-waytowic
-weagle
-weakley
-wealch
-weare
-wease
-weatherl
-weathers
-weaver
-web
-webb
-webber
-weber
-webster
-weckwert
-weddell
-wee-lin
-wee-seng
-wee-thon
-weedmark
-weeks
-wefald
-wefers
-wegener
-weger
-wegner
-wegrowic
-wehara
-wei
-wei-i
-wei-kun
-wei-tsig
-wei-yih
-weibust
-weicheng
-weichung
-weidar
-weidenbo
-weidenfe
-weider
-weidinge
-weidner
-weiguang
-weiheng
-weihs
-weihsing
-weii
-weijia
-weijie
-weikang
-weikuang
-weikun
-weil
-weilin
-weimin
-weimong
-weinbend
-weinberg
-weiner
-weingart
-weinkauf
-weiping
-weirich
-weisenbe
-weiser
-weiss
-weist
-weitsig
-weitz
-weitzel
-weiyih
-welbie
-welby
-welch
-weldon
-welham
-welker
-wellard
-welling
-wells
-wellstoo
-welsch
-welsford
-welsh
-welten
-wemple
-wen
-wen-chie
-wen-hann
-wen-juin
-wen-kai
-wen-lian
-wen-miin
-wen-shan
-wenbin
-wenchien
-wenchih
-wenda
-wendall
-wendel
-wendelin
-wendell
-wendi
-wendi-st
-wendie
-wendista
-wendling
-wendong
-wendt
-wendy
-wendye
-weng
-wenham
-wenhann
-wenjuin
-wenliang
-wenmiin
-wennan
-wennerst
-wenona
-wenonah
-wensel
-wenshan
-wensley
-wentwort
-wentzcov
-wenxi
-wenyon
-wenzel
-wepf
-weppler
-werewolf
-werick
-weringh
-werling
-werner
-wernher
-wernik
-werth
-wertz
-wery
-wes
-wesenber
-wesley
-wesolosk
-wesolows
-wessel
-wessell
-wesselma
-wesselow
-wessels
-wessenbe
-west
-westbroo
-westcott
-wester
-westfall
-westgart
-westlake
-westleig
-westley
-westmore
-weston
-weston-d
-westphal
-westwood
-wetherbe
-wettelan
-wetzel
-wever
-weyand
-weylin
-wga
-whalen
-whaley
-whang
-whatley
-wheatley
-wheaton
-wheeler
-wheelock
-whei-may
-wheimay
-whelan
-whelpdal
-whetston
-whetzel
-whey
-whey-min
-wheyming
-whidden
-whinnery
-whipple
-whipps
-whirpool
-whirter
-whisenhu
-whiskin
-whisler
-whit
-whitaker
-whitby
-whitcomb
-whited
-whitefor
-whitehur
-whiteman
-whitesid
-whitfiel
-whitfill
-whitford
-whiting
-whitlock
-whitman
-whitmore
-whitney
-whitsell
-whitt
-whittake
-whittam
-whitten
-whittier
-whitting
-whitton
-whitty
-whitwam
-whitwell
-whitwort
-whoi
-whyte
-wiatt
-wichers
-wichman
-wicht
-wichterl
-wickes
-wickham
-wickie
-widdicom
-widdis
-widdowso
-widener
-widianto
-widows
-widrig
-widuch
-wiebe
-wiebren
-wiederho
-wiedman
-wiedmann
-wiegand
-wieland
-wiele
-wienert
-wiens
-wiercioc
-wierzba
-wieser
-wiesje
-wieslaw
-wieslawa
-wiest
-wigderso
-wiggin
-wiggins
-wiggs
-wight
-wigle
-wignall
-wikkerin
-wiklund
-wil
-wilbert
-wilbur
-wilburt
-wilby
-wilcox
-wilczews
-wilde
-wildeman
-wilden
-wilder
-wilderma
-wildgen
-wildman
-wildon
-wileen
-wilek
-wilemon
-wilen
-wilenius
-wilensky
-wiley
-wilf
-wilford
-wilfred
-wilfrid
-wilgosh
-wilhelm
-wilhelmi
-wilhelms
-wilhelmu
-wilhoit
-wilie
-wilke
-wilken
-wilkerso
-wilkes
-wilkie
-wilkin
-wilkins
-wilkinso
-wilko
-wilks
-will
-willa
-willabel
-willamin
-willard
-willcock
-willcox
-willdon
-willeke
-willekes
-willem
-willemij
-willemse
-willenbr
-willets
-willett
-willetta
-willette
-willey
-willhoff
-willi
-william
-williams
-willie
-willifor
-willis
-willison
-willmore
-willmott
-willough
-willow
-willson
-willy
-willyt
-wilma
-wilmar
-wilmer
-wilmette
-wilmont
-wilmore
-wilnai
-wilona
-wilone
-wilow
-wilsey
-wilson
-wilt
-wilton
-wiltz
-wimberle
-wimbush
-wimmer
-win
-win-chyi
-wina
-winchest
-winchyi
-winde
-windham
-windom
-windowin
-windsor
-windy
-winerman
-winfield
-winfred
-wing
-wing-ki
-wing-man
-wing-tai
-wingar
-wingard
-wingate
-wingfiel
-wingo
-wingrove
-wingtai
-wini
-winicki
-winifiel
-winifred
-winje
-winklema
-winkler
-winlow
-winn
-winna
-winnah
-winne
-winni
-winnie
-winnifre
-winningh
-winningt
-winnipeg
-winny
-winona
-winonah
-winsberg
-winsborr
-winsky
-winslow
-winstead
-winston
-winterbe
-winters
-winthrop
-wintour
-wippel
-wiring
-wirth
-wiseman
-wishewan
-wisniews
-wissinge
-wissler
-wit
-witchlow
-witham
-withrow
-witkowsk
-witney
-witold
-witort
-wits
-witt
-witte
-wittich
-wittie
-wittik
-wittman
-witty
-witzel
-witzman
-witzmann
-wladysla
-woan
-wobbrock
-woei-pen
-woelffel
-woessner
-woinsky
-wojciech
-wojcik
-wojdylo
-wojnar
-wojtecki
-wokoma
-wolczans
-wolf
-wolfe
-wolfenba
-wolff
-wolfgang
-wolfie
-wolfman
-wolford
-wolfs
-wolfson
-wolfy
-wolk
-woll
-woloshko
-wolowidn
-wolska
-wolski
-wolter
-womack
-womble
-won
-won-uk
-wonda
-wong
-wonuk
-wood
-woodall
-woodford
-woodhall
-woodie
-woodley
-woodlief
-woodline
-woodman
-woodrow
-woods
-woodson
-woodward
-woody
-woodyer
-wooff
-woojin
-wook
-wookie
-woolery
-wooley
-woollam
-woolley
-woolwine
-woon
-wooster
-wooten
-wooters
-wootton
-worden
-words fr
-words in
-working
-world.fa
-wormald
-worms
-worobey
-woroszcz
-worpell
-worrall
-worsley
-worth
-worthing
-worthy
-wortman
-wozniak
-wpms
-wracher
-wragg
-wray
-wren
-wrennie
-wriggles
-wright
-wrigley
-writing
-wrobel
-wroblews
-wruck
-wsadmin
-wsbackup
-wu
-wuan
-wueppelm
-wuertele
-wun
-wunderli
-wurtz
-wyant
-wyatan
-wyatt
-wyble
-wycoff
-wydra
-wye
-wykoff
-wylie
-wyllie
-wylma
-wylo
-wyman
-wymard
-wyn
-wyndham
-wynes
-wynn
-wynne
-wynnie
-wynny
-wyrstiuk
-wyss
-wytenbur
-wyzga-ta
-xantippe
-xavier
-xaviera
-xayaraj
-xena
-xenia
-xenophon
-xenos
-xerxes
-xever
-xi-nam
-xi-xian
-xian
-xiang-se
-xiangsen
-xianjie
-xiao
-xiao-min
-xiaobing
-xiaofei
-xiaofeng
-xiaoguan
-xiaohui
-xiaojing
-xiaolei
-xiaolin
-xiaolong
-xiaomei
-xiaoping
-xiaowen
-xiaoxia
-xie
-xila
-ximenes
-ximenez
-xin
-xingchao
-xingdong
-xinlin
-xinyi
-xiong
-xiqing
-xixian
-xmssuppo
-xnew
-xongxong
-xpm
-xpmbld
-xpmbuild
-xu
-xuan
-xuan-lie
-xuefeng
-xueling
-xumin
-xuong
-xylia
-xylina
-xymenes
-ya-shu
-yabe
-yach
-yadollah
-yaeger
-yael
-yafa
-yaghutie
-yahia
-yahyapou
-yakibchu
-yakimovi
-yakir
-yalcin
-yale
-yali
-yalonda
-yamada
-yamamoto
-yamaoka
-yamashit
-yamato
-yamaura
-yamin
-yan
-yan-shek
-yan-zhen
-yanagida
-yanan
-yanaton
-yance
-yancey
-yancy
-yandell
-yanjun
-yank
-yankee
-yann
-yanna
-yannick
-yannis
-yano
-yanosik
-yanshek
-yansun
-yao
-yao-nan
-yaonan
-yaphet
-yaping
-yarber
-yarbroug
-yard
-yardley
-yardy
-yarlanda
-yarnell
-yaron
-yarosh
-yaroslav
-yasar
-yaser
-yashu
-yasmeen
-yasmin
-yassa
-yassar
-yassin
-yasuaki
-yasuhiro
-yasuko
-yasumasa
-yasuo
-yasushi
-yasuura
-yate
-yates
-yatin
-yatish
-yau
-yau-fun
-yau-mun
-yau-wu
-yaumun
-yaung
-yauwu
-yavar
-yavuz
-yawar
-yazdani
-yazdi
-yc
-ye-sho
-yea-ping
-yeager
-yeal
-yeaping
-yearwood
-yeaton
-yechezke
-yeck
-yedema
-yee
-yee-ning
-yeh
-yehuda
-yehudi
-yehudit
-yeirnie
-yelena
-yelvingt
-yemuna
-yen
-yen-heng
-yen-jhy
-yen-meng
-yendall
-yeng
-yenheng
-yenilmez
-yenjhy
-yenmeng
-yenor
-yeo
-yeo-hoon
-yeocheol
-yeohoon
-yeong-ch
-yeong-eo
-yeongchy
-yeongeon
-yerga
-yerigan
-yerneni
-yesho
-yetta
-yettie
-yetty
-yetung
-yeun
-yeun-jyr
-yeung
-yeunjyr
-yevette
-yew-shin
-yewshing
-yezheng
-yezi
-yhu-tin
-yhutin
-yi
-yi-min
-yiannis
-yie-tarn
-yietarng
-yifei
-yigal
-yih
-yihban
-yihchih
-yii-mei
-yiimei
-yijean
-yikhon
-yiliang
-yim
-yimin
-ying
-ying-cdi
-yingcdi
-yishun
-yitan
-yiu-kong
-yiukong
-yixia
-yixin
-ylaine
-yll-chen
-yllcheng
-ynes
-ynez
-yngvar
-yoakum
-yock
-yoda
-yodha
-yoe
-yogesh
-yogeswar
-yogi
-yohe
-yokan
-yoke
-yoke-kee
-yokeley
-yoko
-yokono
-yokoono
-yolanda
-yolande
-yolane
-yolanthe
-yon-chun
-yonchun
-yong
-yong-hyu
-yongdong
-yonghyun
-yongil
-yongli
-yongxin
-yonhong
-yonik
-yonk
-yoo
-yoon
-yoon-mo
-yoonjung
-yoonmo
-yoonsik
-yoram
-yorgo
-yorgos
-york
-yorke
-yorker
-yoshi
-yoshiaki
-yoshihit
-yoshikaw
-yoshiko
-yoshimi
-yoshimit
-yoshinob
-yoshio
-yoshioka
-yoshiyam
-yosi
-yossaria
-yost
-yosuf
-you-lian
-youel
-youji
-youliang
-youlin
-youn
-youn-jun
-younan
-younes
-young
-young-ba
-young-il
-young-ju
-youngbai
-youngblo
-younger
-youngill
-younglov
-youngman
-youngqui
-youngs
-younjung
-younkin
-yount
-youping
-yousef
-yousefpo
-youssef
-yousuf
-youwen
-yovonnda
-yowell
-ysabel
-ytshak
-yu
-yu-chen
-yu-chian
-yu-chung
-yu-hung
-yu-kai
-yu-pei
-yu-wei
-yuan
-yuan-cha
-yuan-shi
-yuanchao
-yuanjian
-yuanshin
-yuchen
-yuchiang
-yuchong
-yudin
-yudy
-yue
-yue-min
-yue-shun
-yuechu
-yueh
-yueh-min
-yueh-shi
-yuehming
-yuehshio
-yuehwern
-yueli
-yuen
-yuen-pui
-yuenglin
-yueping
-yueshun
-yugang
-yuh-dauh
-yuh-jiun
-yuh-tai
-yuhanna
-yuhdauh
-yuhjiun
-yuhn
-yuhtai
-yuill
-yuji
-yujie
-yuk-wha
-yuke
-yukihiko
-yukiko
-yukinaga
-yukinobu
-yuklung
-yuko
-yuksel
-yukuo
-yul
-yule
-yulia
-yulma
-yum
-yuma
-yumi
-yumurtac
-yun
-yun-sun
-yundt
-yung
-yung-chi
-yung-chu
-yung-fu
-yung-pin
-yung-yu
-yungchia
-yungchun
-yungfu
-yunghuoy
-yungmuh
-yungping
-yungyu
-yunn-tzu
-yunntzu
-yunsun
-yuon-kua
-yuonkuan
-yupei
-yupin
-yurach
-yurchuk
-yuri
-yurik
-yussuf
-yuste
-yutaka
-yuting
-yuval
-yuwei
-yuyi
-yuyu
-yvan
-yves
-yvet
-yvette
-yvon
-yvonne
-yvor
-yzerman
-z-80
-z80
-zabek
-zabokrzy
-zabransk
-zabrina
-zaccari
-zaccaria
-zach
-zacharia
-zacharie
-zachary
-zacherie
-zachery
-zack
-zackaria
-zadeh
-zadorozn
-zadow
-zafar
-zafarano
-zafarull
-zafer
-zaga
-zagorsek
-zagorski
-zagrodne
-zahara
-zaharoff
-zaharych
-zahid
-zahir
-zahirul
-zahn
-zahnley
-zahra
-zaia
-zaid
-zaidi
-zaihua
-zainab
-zajac
-zak
-zaka
-zakai
-zakarow
-zaker
-zalameda
-zalcstei
-zalee
-zaleski
-zalite
-zaliznya
-zalman
-zalokar
-zaloker
-zalzale
-zaman
-zampino
-zan
-zanariah
-zander
-zandra
-zane
-zanet
-zaneta
-zanetti
-zanga
-zani
-zanni
-zantiris
-zapach
-zappe
-zara
-zaragoza
-zarah
-zarate
-zared
-zarella
-zaretsky
-zargham
-zaria
-zarkel
-zarla
-zarlenga
-zarrabia
-zarrin
-zatkovic
-zatti
-zattiero
-zatylny
-zauhar
-zauner
-zavadiuk
-zaven
-zawadka
-zaydan
-zazulak
-zbib
-zbignew
-zbigniew
-zbuda
-zdenek
-zdenka
-zdenko
-zea
-zeb
-zebadiah
-zebedee
-zebulen
-zebulon
-zecharia
-zed
-zedekiah
-zedrick
-zee
-zeggil
-zegray
-zehir-ch
-zehra
-zeidler
-zeiger
-zeigler
-zeilinge
-zeimet
-zein
-zeina
-zeisler
-zeitler
-zejing
-zeke
-zelda
-zelenka
-zelig
-zeljko
-zelko
-zeller
-zellers
-zelma
-zelsmann
-zelwer
-zemanek
-zen
-zena
-zenaida
-zenar
-zeng
-zenghong
-zenia
-zenisek
-zenkevic
-zenkner
-zenon
-zere
-zerk
-zero
-zerriffi
-zetterlu
-zetts
-zexiang
-zhang
-zhanna
-zhao
-zhaohong
-zhaoqi
-zhaoxu
-zhelka
-zhen
-zheng
-zhengyu
-zhilan
-zhishun
-zhiwei
-zhixin
-zhiyong
-zhong
-zhongde
-zhongfu
-zhongjin
-zhongqua
-zhongxia
-zhou
-zhuezhi
-zhuolin
-zi-ping
-zi-qiang
-zia
-ziad
-ziai
-zicheng
-ziebarth
-zieber
-ziegler
-ziehn
-zielinsk
-ziemba
-zigrand
-zilaie
-zilberst
-zilla
-zilvia
-zimmer
-zimmerer
-zimmerly
-zimmerma
-zina
-zinati
-zingale
-zingeler
-zinkie
-zinn
-zino
-ziomek
-zipcodes
-ziping
-zippora
-ziqiang
-zirko
-zissis
-zisu
-zita
-zitella
-zitko
-zito
-zitzmann
-ziva
-zivanovi
-zivilik
-zivkovic
-ziyi
-ziyou
-zlatin
-zlotnick
-znack
-zoe
-zoehner
-zoel
-zoellner
-zoenka
-zoerb
-zofia
-zohair
-zohar
-zohman
-zohreh
-zola
-zollie
-zollman
-zolly
-zolmer
-zoltan
-zonda
-zondra
-zone-chi
-zonechin
-zongyi
-zonker
-zonner
-zonnya
-zonoun
-zoppel
-zora
-zorah
-zoran
-zorana
-zoratti
-zorina
-zorine
-zork
-zorn
-zorony
-zorzi
-zottola
-zou
-zouheir
-zrobok
-zsa zsa
-zsazsa
-zubair
-zubans
-zuben
-zubricki
-zuccarel
-zuckerma
-zug
-zuhua
-zuk
-zukas
-zukosky
-zukovsky
-zulema
-zulfikar
-zumel
-zumhagen
-zumpf
-zunuzi
-zuranato
-zurawlev
-zureik
-zurl
-zuzana
-zvonar
-zwi
-zwick
-zwicker
-zwierzch
-zybala
-zyg
-zygmunt
-zylstra
+aaccf
+aalders
+aaren
+aarika
+aaron
+aartjan
+aasen
+ab
+abacus
+abadines
+abagael
+abagail
+abahri
+abasolo
+abazari
+abba
+abbai
+abbas
+abbatant
+abbate
+abbe
+abbey
+abbi
+abbie
+abbot
+abbott
+abby
+abbye
+abdalla
+abdallah
+abdel
+abdel-az
+abdel-ma
+abdel-ra
+abdel-sa
+abdelazi
+abdelmad
+abdelrah
+abdelran
+abdelsal
+abderrao
+abderraz
+abdi
+abdo
+abdollah
+abdolrah
+abdou
+abdrani
+abdul
+abdul-az
+abdul-ma
+abdul-no
+abdul-ra
+abdul-sa
+abdulazi
+abdulla
+abdullah
+abdulmad
+abdulrah
+abdulran
+abdulsal
+abdur
+abe
+abedi
+abel
+abelard
+abell
+abella
+abellera
+abello
+abelow
+abernath
+aberneth
+abeu
+abey
+abhay
+abhijit
+abi-aad
+abid
+abie
+abigael
+abigail
+abigale
+abike
+abner
+abou-arr
+abou-ezz
+aboul-ma
+aboussou
+abovyan
+abra
+abraham
+abrahan
+abrahim
+abram
+abramo
+abrams
+abran
+abrar
+absi
+abu
+abul
+access
+accounti
+acelvari
+achal
+achamma
+acharyya
+achcar
+achille
+achkar
+achmad
+ackaouy
+acker
+acklin
+ackwood
+acree
+acres
+acs
+action
+actionte
+acton
+aczel
+ad
+ada
+adah
+adahm
+adair
+adal
+adaline
+adam
+adamczyk
+adamkows
+adamo
+adamowic
+adams
+adamski
+adamson
+adamyk
+adan
+adara
+adcock
+adcox
+adda
+addetia
+addi
+addia
+addie
+addison
+addona
+addons
+addy
+ade
+adebayo
+adel
+adela
+adelaida
+adelaide
+adelbert
+adele
+adelheid
+adelia
+adelice
+adelina
+adelind
+adeline
+adella
+adelle
+adena
+adeney
+adeniyi
+aderhold
+adey
+adham
+adhem
+adi
+adiana
+adib
+adie
+adil
+adimari
+adina
+aditya
+adjangba
+adkinson
+adlai
+adler
+adlin
+admad
+admin
+admin-mt
+administ
+adnan
+adnane
+ado
+adolf
+adolfie
+adolph
+adolphe
+adolpho
+adolphus
+adora
+adore
+adoree
+adornato
+adorne
+adorno
+adrea
+adri
+adria
+adriaan
+adriaans
+adriaens
+adrian
+adriana
+adriane
+adrianna
+adrianne
+adriano
+adrie
+adrien
+adriena
+adriene
+adrienne
+adrion
+advance
+ae
+aeinstei
+aeriel
+aeriela
+aeriell
+aery
+afaq
+afif
+afke
+afkham
+afkham-e
+afo
+afton
+afzal
+ag
+agace
+agam
+agarwal
+agata
+agatha
+agathe
+agen
+agenia
+aggarwal
+aggi
+aggie
+aggregat
+aggy
+aghi
+aghili
+agily
+agna
+agnar
+agnella
+agnes
+agnese
+agnesse
+agneta
+agnew
+agnihotr
+agnola
+agostino
+agosto
+agretha
+aguiar
+aguie
+aguilar
+aguinsky
+aguirre
+aguistin
+aguste
+agustin
+ahad
+aharon
+ahbeng
+ahdieh
+ahlberg
+ahlers
+ahluwali
+ahmad
+ahmadi
+ahmed
+ahmet
+ahn
+ai-mei
+ai-tsung
+aida
+aidan
+aidarous
+aideen
+aiden
+aigneis
+aihua
+aija
+aiken
+aila
+ailbert
+aile
+ailee
+aileen
+ailene
+ailey
+aili
+ailina
+ailis
+ailsun
+ailyn
+aiman
+aime
+aimee
+aimei
+aimil
+aimone
+aindrea
+ainslee
+ainsley
+ainslie
+ainswort
+air
+aisha
+aitken
+aitsung
+ajay
+ajersch
+ajeya
+ajit
+ajmal
+ajoy
+akai
+akbar
+akbas
+akemi
+akens
+akers
+akhavan
+akhil
+akhtar
+akihiko
+akim
+akin
+akinniyi
+akio
+akira
+akita
+akkerman
+akram
+akrawi
+aksel
+akshay
+akyurekl
+al
+al bud
+al-basi
+al-tarab
+aladanga
+aladin
+alain
+alaine
+alair
+alameda
+alan
+alana
+alanah
+aland
+alane
+alanis
+alanna
+alano
+alanoly
+alanson
+alanturi
+alard
+alaric
+alary
+alasdair
+alastair
+alasteir
+alaster
+alavi
+alayne
+alb
+alba
+albea
+albeon
+alber
+alberik
+albers
+alberse
+albert
+alberta
+albertei
+albertin
+alberto
+alberts
+alberty
+albery
+albie
+albina
+albiston
+albrecht
+albright
+albritto
+albtenta
+alburger
+alcantar
+alcindor
+alcock
+alcott
+alden
+alderdic
+aldhizer
+aldin
+aldis
+aldo
+aldon
+aldous
+aldric
+aldrich
+aldridge
+aldus
+aldwin
+aldyn
+alec
+alecia
+aleda
+aleece
+aleen
+alegre
+aleinste
+alejandr
+alejoa
+aleke
+aleksand
+aleksic
+alena
+alene
+aleong
+alese
+alessand
+aleta
+alethea
+alev
+alex
+alexa
+alexan
+alexande
+alexandr
+alexei
+alexi
+alexia
+alexina
+alexine
+alexio
+alexis
+alexon
+alexson
+alf
+alfaro
+alfi
+alfie
+alfons
+alfonse
+alfonso
+alfonzo
+alford
+alfred
+alfreda
+alfredo
+alfy
+algernon
+algie
+algimant
+algood
+alguire
+ali
+alia
+alic
+alica
+alice
+alicea
+alicia
+alick
+alida
+alidia
+alidina
+alie
+alika
+alikee
+alikhan
+alina
+aline
+alink
+alioto
+alireza
+alis
+alisa
+alisande
+alisha
+alison
+alissa
+alistair
+alister
+alisun
+alix
+aliza
+alka
+alkarim
+alkire
+all the
+alla
+allahdin
+allahyar
+allam
+allaman
+allan
+allard
+allaway
+allaye-c
+allayne
+alleen
+allegra
+allen
+allene
+alles
+alleva
+alley
+alleyn
+alleyne
+allgood
+alli
+allianor
+allida
+allie
+allin
+allina
+allis
+allisan
+allison
+allissa
+allister
+allistir
+allix
+allman
+allsun
+allwork
+allx
+ally
+allyce
+allyn
+allys
+allyson
+alma
+almeda
+almeddah
+almena
+almendar
+almeria
+almerind
+almeta
+almira
+almire
+almon
+alms
+alnoor
+aloi
+aloin
+aloise
+aloisia
+alok
+alomari
+alon
+alonso
+alonzo
+alora
+aloysia
+aloysius
+alp
+alparsla
+alperovi
+alphard
+alphen
+alphonse
+alphonso
+alpine
+alred
+alric
+alsaleh
+alshabou
+alsop
+alspaugh
+alstine
+alston
+alswiti
+alta
+altadonn
+altay
+alteen
+altekar
+alten
+alternat
+althea
+altherr
+alting-m
+altman
+altmann
+alturing
+aluin
+aluino
+alva
+alvan
+alvarez
+alvaro
+alvean
+alvera
+alverta
+alvi
+alvie
+alvin
+alvina
+alvinia
+alvino
+alvira
+alvis
+alvy
+alwin
+alwyn
+aly
+alyce
+alyda
+alynn
+alyosha
+alyre
+alys
+alysa
+alyse
+alysia
+alyson
+alyss
+alyssa
+alzofon
+amabel
+amabelle
+amadeus
+amalea
+amalee
+amaleta
+amalia
+amalie
+amalita
+amalle
+amalu
+amand
+amanda
+amandi
+amandie
+amandip
+amando
+amandy
+amant
+amar
+amara
+amarendr
+amargo
+amarjit
+amarsi
+amarth
+amata
+amato
+amavisca
+ambach
+amber
+amberly
+amble
+ambler
+ambroise
+ambros
+ambrose
+ambrosi
+ambrosio
+ambrosiu
+ambur
+amby
+amda
+ame
+amedeo
+ameen
+amelia
+amelie
+amelina
+ameline
+amelita
+amelkar
+amenta
+america
+amerigo
+amery
+amgad
+ami
+amick
+amie
+amigo
+amii
+amil
+amin
+amina
+amini
+aminuddi
+aminzade
+amiot
+amir
+amit
+amitabh
+amitava
+amitie
+amity
+amiy
+amjad
+amlani
+ammamari
+ammar
+ammiel
+amnish
+amnon
+amol
+amorim
+amory
+amos
+amott
+amour
+amouzgar
+amparo
+amr
+amrik
+amril
+amrish
+amstutz
+amu
+amundsen
+amy
+amye
+an
+an-bin
+an-son
+ana
+anabal
+anabel
+anabella
+anabelle
+anader
+analiese
+analise
+anallese
+anallise
+anamary
+anand
+ananda
+anandaro
+ananmala
+anant
+ananth
+anantha
+ananyo
+anar
+anastasi
+anastass
+anatol
+anatola
+anatole
+anatoli
+anatollo
+anatoly
+anaya
+anbin
+ancel
+ancell
+anchia
+anconeta
+anctil
+anda
+andaree
+andee
+andeee
+ander
+anderea
+anderer
+anders
+andersen
+anderson
+anderton
+andi
+andie
+andiyono
+andonis
+andra
+andrade
+andras
+andrassy
+andre
+andrea
+andreana
+andreas
+andrease
+andreato
+andree
+andrei
+andrej
+andrejs
+andres
+andress
+andrew
+andrews
+andrey
+andria
+andriana
+andric
+andries
+andriett
+andris
+andromac
+andros
+andrukat
+andrus
+andrusia
+andruzzi
+andrzej
+andy
+aneeta
+aneko
+anestass
+anet
+anett
+anetta
+anette
+ange
+angel
+angela
+angelako
+angele
+angeles
+angeli
+angelia
+angelica
+angelico
+angelie
+angeliek
+angelika
+angelina
+angeline
+angeliqu
+angelita
+angell
+angelle
+angelo
+angerer
+angermey
+angie
+angil
+anglin
+angobald
+angus
+angustia
+angvall
+angy
+anh
+anhorn
+anhtuan
+ania
+anibal
+anica
+anika
+aniko
+anil
+anila
+anindita
+anirban
+anissa
+anita
+anitra
+aniya
+anja
+anjali
+anjanett
+anje
+anjela
+anjli
+anke
+anker
+anki
+ankie
+ankur
+anky
+ann
+ann-hoon
+ann-lorr
+ann-mari
+anna
+anna-dia
+anna-mar
+annab
+annabal
+annabel
+annabela
+annabell
+annable
+annadian
+annalea
+annalee
+annalies
+annalisa
+annalise
+annamari
+annamay
+annarbor
+annard
+annas
+anne
+anne mar
+anne-cor
+anne-lis
+anne-mar
+annecori
+anneke
+annelies
+annelise
+annemari
+annemie
+annet
+annetta
+annette
+anni
+annibale
+annice
+annick
+annie
+annika
+annis
+annise
+annissa
+annmaria
+annmarie
+annnora
+annora
+annunzia
+anny
+anolik
+anoop
+anouk
+anoushir
+ans
+ansar
+ansel
+ansell
+anselm
+anselma
+anshel
+ansley
+anson
+ansorger
+anstead
+anstett
+anstice
+ansys
+antai
+antanas
+antanina
+anthe
+anthea
+anthia
+anthiath
+anthonis
+anthony
+antin
+antinucc
+antkowia
+antle
+antoft
+antoine
+antoinet
+anton
+anton-ph
+antonare
+antone
+antonell
+antonett
+antoni
+antonia
+antonie
+antoniet
+antonin
+antonina
+antonino
+antonio
+antonios
+antonius
+antons
+antony
+antti
+antuan
+antworth
+anu
+anup
+anupam
+anurag
+anver
+anvradha
+anwar
+any
+anya
+anzarout
+anzures
+aoki
+aparicio
+aparna
+aphrodit
+api-ecm
+apiruksa
+apollo
+apostolo
+appell
+appenzel
+applebau
+applegar
+appleton
+appleyar
+applicat
+applicon
+appoloni
+appuglie
+apriel
+april
+aprilett
+aprill
+apryle
+apter
+apurba
+apurve
+ara
+arabadji
+arabel
+arabela
+arabele
+arabella
+arabelle
+aragon
+aragorn
+arai
+araldo
+aramideh
+arana
+arash
+aravamud
+arbel
+arbenz
+arbo
+arbuckle
+arch
+archaimb
+archamba
+archana
+archer
+archibal
+archibol
+archie
+archy
+arco
+arcouet
+ard
+arda
+ardath
+ardavan
+ardeen
+ardelia
+ardelis
+ardella
+ardelle
+arden
+ardene
+ardenia
+ardie
+ardiel
+ardine
+ardis
+ardisj
+ardith
+ardizone
+ardoin
+ardra
+ardyce
+ardys
+ardyth
+aref
+areg
+arel
+arellano
+arend
+arens
+ares
+aretha
+areu
+argento
+argyriou
+ari
+ariadne
+ariana
+arias
+aribindi
+aric
+aridatha
+arie
+ariel
+ariela
+ariella
+arielle
+arif
+arin
+arina
+arine
+ario
+aris
+aristide
+aristotl
+arjun
+arkady
+arkestei
+arko
+arlan
+arlana
+arlee
+arleen
+arlen
+arlena
+arlene
+arles
+arleta
+arlette
+arley
+arleyne
+arlie
+arliene
+arlin
+arlina
+arlinda
+arline
+arluene
+arly
+arlyn
+arlyne
+arman
+armand
+armande
+armando
+armbrust
+armelia
+armelle
+armenaki
+armenta
+armentro
+armes
+armida
+armijo
+armin
+armine
+armitage
+armolavi
+armour
+armstead
+armstron
+arn
+arnaldo
+arnauld
+arnav
+arne
+arnett
+arney
+arni
+arnie
+arnis
+arno
+arnold
+arnoldo
+arnon
+arnone
+arnott
+arnuad
+arny
+aroldo
+aron
+arona
+aronovic
+aronson
+aronstam
+arora
+arpin
+arpita
+arrgh
+arri
+arro
+arron
+arsavir
+arsena
+arsenaul
+arsene
+arseneau
+arshad
+art
+artair
+arte
+artemas
+artemis
+artemus
+arther
+arthur
+artie
+artiller
+arto
+artola
+arts
+artspssa
+artur
+arturo
+artus
+artuso
+arty
+artzer
+arul
+arumugam
+arun
+aruna
+arunacha
+arv
+arvid
+arvie
+arvin
+arvind
+arvy
+arwakhi
+arya
+aryavong
+aryn
+arzu
+asa
+asad
+asan
+asawa
+asbill
+asbjorn
+asce
+ascott
+asdel
+ase
+asfazado
+asghar
+asgharza
+ash
+ashalata
+ashar
+ashbee
+ashberry
+ashbey
+ashby
+ashdown
+ashely
+asher
+ashfaq
+ashford
+ashia
+ashien
+ashil
+ashima
+ashis
+ashla
+ashlan
+ashlee
+ashleigh
+ashlen
+ashley
+ashli
+ashlie
+ashlin
+ashly
+ashmore
+ashok
+ashoka
+ashrae
+ashraf
+ashruf
+ashton
+ashu
+ashurkof
+ashutosh
+ashwin
+ashwood-
+ashworth
+asia
+asif
+asing
+asistore
+askins
+askold
+asmar
+asme
+asnat
+asops
+asprer
+asquin
+assaad
+assaf
+asselin
+assenza
+assistan
+associat
+astaire
+astalos
+astle
+astley
+aston
+astor
+astorino
+astra
+astrid
+astrix
+aswini
+atalanta
+atalla
+atcheson
+atchison
+atef
+athalie
+athanasi
+athanass
+athar
+athena
+athene
+athony
+athwal
+atindra
+atique
+atkins
+atkinson
+atl
+atl-sale
+atlanta
+atlante
+atlantic
+atmane
+atoui
+atp
+atpco
+atprs
+atputhar
+atrc
+atsuo
+atsushi
+atta
+attaie
+attanasi
+attarchi
+attard
+attaway
+atte
+attenbor
+atteridg
+attfield
+attilio
+attilla
+atul
+atwater
+atwell
+atwell-b
+au
+au-yang
+au-yeung
+aube
+auberon
+aubert
+auberta
+aubin
+aubine
+aubree
+aubrette
+aubrey
+aubrie
+aubry
+aubuchon
+aucoin
+aud
+audet
+audette
+audi
+audie
+audivox
+audra
+audre
+audrean
+audrey
+audrie
+audrienn
+audry
+audrye
+audy
+auerbach
+augeri
+augie
+august
+augusta
+auguste
+augustin
+augusto
+augustus
+augy
+auker
+aula
+aulakh
+auld
+ault
+aumoine
+aundrea
+aunon
+aura
+aurea
+aurel
+aurelea
+aurelia
+aurelie
+aurelius
+auria
+aurie
+aurilia
+auriol
+aurlie
+auro
+auroora
+aurora
+aurore
+aurthur
+ausley
+austen
+austin
+austina
+austine
+australi
+auth
+auto
+auton
+autoquot
+auyeung
+ava
+avard
+avaz
+ave
+avedis
+aveline
+avellane
+averardo
+averell
+averett
+averette
+averil
+averill
+aversa
+avery
+averyl
+avictor
+avie
+avigdor
+avilez
+avinash
+avirett
+avis
+aviva
+avivah
+avra
+avram
+avril
+avrit
+avrom
+avtar
+awadalla
+awadia
+awan
+awano
+ax
+axberg
+axe
+axel
+ayako
+ayandeh
+ayao
+ayaz
+aybars
+ayda
+aydin
+ayers
+ayles
+aylmar
+aylmer
+aylwin
+aymer
+ayn
+ayodele
+ayotte
+ayoubzad
+ayoup
+ayrault
+ayre
+ayres
+ayscue
+ayse
+ayukawa
+aywie
+ayyuce
+azad
+azam
+azar
+azari
+azarshah
+azer
+azevedo
+azhar
+azim
+aziz
+azizuddi
+azmak
+azmeena
+azmina
+azra
+azuma
+azzuolo
+ba
+baab
+baader
+bab
+baba
+bababunm
+babak
+babalola
+babar
+babara
+babasaki
+babatund
+babb
+babbage
+babbette
+babbie
+babcock
+baber
+babette
+babin
+babineau
+babione
+babita
+babs
+babu
+baby
+babyak
+baccari
+bacchioc
+bacchus
+bacciagl
+bach
+bachecon
+bachelu
+bachewic
+bachitta
+bachmann
+bachner
+bachynsk
+backshal
+bacon
+baddeley
+badelt
+badenoch
+badger
+badjari
+badmingt
+badowski
+badri
+badza
+bae
+baenzige
+baer
+baerg
+baets
+bagetako
+bagg
+baggerma
+baghdadi
+bagi
+bagnato
+bagshaw
+bagwell
+baha
+bahaa
+bahadir
+baheya
+bahgat
+bahia
+bahl
+bahman
+bahoric
+bahram
+bail
+bailetti
+bailey
+bailie
+baillarg
+baillie
+bailloux
+baily
+bain
+bainer
+baines
+bains
+bainton
+baird
+bajada
+bajpeyi
+bakay
+bakel
+baker
+baker-gr
+bakhach
+bakkum
+bakoury
+bal
+balaban
+balabani
+balachan
+balaji
+balakris
+balanger
+balascak
+balasing
+balbir
+balcom
+bald
+balderst
+baldev
+baldock
+baldridg
+balduin
+baldwin
+bale
+bales
+balfour
+balgalvi
+baljinde
+balkenho
+balkisso
+ballanti
+ballard
+ballarte
+ballinge
+ballios
+ballou
+ballyk
+balmer
+balog
+balogh
+balraj
+balsas
+balser
+balter
+baltodan
+balutis
+balvinde
+balwinde
+bam
+bambach
+bambang
+bambi
+bambie
+bamby
+bame
+bamfo
+ban
+banaei
+bancroft
+bandel
+banens
+banerd
+banerjee
+banez
+banfalvi
+bang
+bangert
+bangia
+banh
+banigan
+banik
+bank
+bankhead
+banks
+banky
+bannai
+bannan
+bannard
+banniste
+bansal
+banu
+banville
+bao
+baominh
+baquero
+bar
+barabash
+baragar
+barakat
+baran
+barb
+barba
+barbabas
+barbabra
+barbara
+barbara-
+barbaraa
+barbary
+barbe
+barbeau
+barbee
+barberen
+barbette
+barbey
+barbi
+barbie
+barbour
+barbra
+barby
+barclay
+barcza
+bard
+barde
+bardsley
+bareham
+barel
+barenie
+barentse
+barfield
+barham
+bari
+baribeau
+baril
+baris
+barker
+barkhous
+barkley
+barkwill
+barlas
+barlow
+barn
+barnabas
+barnabe
+barnaby
+barnard
+barnebas
+barnes
+barnett
+barney
+barnhard
+barnhart
+barnhill
+barnhous
+barnicke
+barnie
+barnwell
+barny
+barolet
+baron
+barr
+barraclo
+barrass
+barrell
+barret
+barrett
+barreyre
+barri
+barrie
+barrient
+barriere
+barringt
+barrio
+barris
+barritt
+barron
+barrows
+barry
+barsch
+barsha
+barsky
+barsony
+barstow
+barszcze
+bart
+bartel
+barth
+barthel
+barthole
+bartholo
+bartie
+bartkows
+bartlet
+bartlett
+bartley
+bartolem
+bartolom
+bartoluc
+barton
+bartosze
+bartra
+bartram
+bartush
+barty
+bartz
+baruk
+barwikow
+bary
+baryram
+basa
+basco
+bascombe
+base
+basheer
+bashton
+bashyam
+basia
+basil
+basile
+basilio
+basilius
+basinger
+baskaran
+baskervi
+baskin
+basladyn
+basmadji
+basnett
+bason
+basrur
+bassam
+bassem
+basser
+bassett
+bassigna
+bassil
+basta
+bastani
+bastarac
+bastian
+bastien
+basu
+bat
+batcheld
+batchelo
+batchoun
+bateman
+bates
+batholom
+bathrick
+bathsheb
+batsheva
+batson
+battersb
+battersh
+battisto
+batura
+baudais
+baudoin
+bauer
+baughan
+baugnon
+baulch
+baum
+baumann
+baumberg
+baumert
+bautista
+bawek
+bawn
+bax
+baxie
+baxter
+baxy
+bay
+bayard
+bayer
+bayerkoh
+bayless
+bayley
+bayly
+bayne
+baynes
+bayno
+bayola
+bayrakta
+bays
+bazarjan
+bazemore
+bazerghi
+bazerman
+bazik
+baziuk
+bcs
+bcspatch
+bea
+beach
+beadley
+beagley
+beal
+beale
+beall
+bealle
+beals
+beana
+bear
+beardmor
+bearnard
+bears
+beasley
+beata
+beate
+beato
+beaton
+beatrice
+beatrisa
+beatrix
+beatriz
+beattie
+beattie-
+beatty
+beaty
+beau
+beaubien
+beaucair
+beauchai
+beaucham
+beauchem
+beaudet
+beaudett
+beaudin
+beaudoin
+beaudry
+beaufort
+beaule
+beaulieu
+beaumier
+beaumont
+beaupre
+beaurega
+beausejo
+beauvais
+beavingt
+beavis
+beb
+bebber
+bebe
+bebee
+becan
+becca
+bechara
+bechtel
+beck
+becka
+becke
+becker
+beckett
+beckham
+becki
+beckie
+beckman
+beckstea
+beckwith
+becky
+beconovi
+becquart
+bedard
+bede
+bedford
+bedi
+bedient
+bedlingt
+bednar
+bedoya
+bedrosia
+bee
+beebe
+beeby
+beecker
+beehler
+beekman
+beeman
+beerkens
+beers
+bees
+beeston
+beethove
+beeton
+befanis
+beffert
+beggs
+begley
+begum
+behdad
+behlen
+behler
+behm
+behnam
+behrens
+behroozi
+behrouz
+behzad
+beil
+beilin
+beilul
+beine
+beique
+beisel
+beitinja
+beitris
+bejar
+bekkedam
+bekki
+bektas
+bel
+bela
+belair
+belaire
+beland
+belanger
+belboul
+belcher
+belcourt
+belen
+belford
+belia
+belich
+belicia
+belinda
+belir
+belisle
+belissa
+belita
+belk
+bell
+bella
+bellanca
+belle
+bellefeu
+bellehum
+bellevil
+bellew
+belley
+bellina
+bellingt
+bellis
+bello
+bellosa
+belmont
+belohoub
+belrango
+belson
+belton
+beltran
+belva
+belvia
+belyaev
+belzile
+bemiller
+bemis
+ben
+ben-isha
+benabdal
+benasso
+benavide
+benay
+benchimo
+bencia
+benda
+bender
+bendick
+bendicty
+bendite
+bendix
+beneda
+benedek
+benedett
+benedick
+benedict
+benedikt
+benefiel
+benefits
+beneteau
+benetta
+benfield
+benge
+bengt
+bengtson
+benham
+beniamin
+beninger
+benita
+benito
+benjamen
+benjamin
+benjavan
+benjes
+benji
+benjie
+benjy
+benn
+bennatt
+benne
+bennefel
+benner
+bennesa
+bennet
+bennett
+benni
+bennie
+benning
+bennison
+benny
+benoit
+benoite
+benschop
+benski
+benson
+bent
+benthem
+benthin
+bentlee
+bentley
+bento
+benton
+benwell
+benyamin
+benyon
+benzick
+benzie
+beom-sah
+beomsahn
+beorn
+beowulf
+bep
+beppie
+ber
+beranger
+berek
+berenbac
+berenice
+berenz
+beresfor
+beresnik
+beret
+bereza
+bergado
+berger
+bergeron
+bergeson
+berget
+bergland
+bergman
+bergmann
+bergquis
+bergsma
+bergstro
+bergwerf
+berhane
+beriault
+berk
+berke
+berkeley
+berkie
+berkley
+berkly
+berknet
+berky
+berman
+bermel
+bern
+berna
+bernaden
+bernadet
+bernadin
+bernard
+bernardi
+bernardo
+bernarr
+bernd
+berndt
+berne
+berneche
+bernelle
+berneta
+bernete
+bernetta
+bernette
+bernhard
+berni
+bernice
+bernie
+berniece
+bernier
+berning
+bernita
+berno
+bernstei
+berny
+berri
+berrie
+berrin
+berrisfo
+berro
+berry
+berryhil
+bert
+berta
+berte
+berteau
+bertha
+berthe
+berthele
+berti
+bertie
+bertigno
+bertina
+bertine
+bertini
+bertolin
+berton
+bertram
+bertrand
+berty
+berube
+beryl
+beryle
+beshai
+besharah
+beshir
+besime
+besnier
+bess
+besse
+bessel
+bessell
+bessette
+bessey
+bessie
+besson
+bessuill
+bessy
+bestavro
+beswick
+betcher
+beth
+bethanne
+bethany
+bethena
+bethina
+bethune
+beton
+betsey
+betsill
+betsy
+betta
+bettadap
+bette
+bette-an
+betteann
+betterle
+betters
+betti
+bettie
+bettina
+bettine
+bettink
+betts
+betty
+betty-an
+bettye
+beulah
+beun
+beuren
+bev
+bevan
+beveridg
+beverie
+beverlee
+beverley
+beverlie
+beverly
+bevin
+bevingto
+bevis
+bevon
+bevvy
+bevyn
+beware.
+beygui
+beymer
+bezanson
+bezdel
+beznowsk
+bhagvat
+bhal
+bhandari
+bhanu
+bharadwa
+bharat
+bhardwaj
+bhasin
+bhaskar
+bhatia
+bhatt
+bhattach
+bhatti
+bhavani
+bhoday
+bhullar
+bhupendr
+bhupinde
+bhusan
+bi-jun
+bi-shiou
+biage
+bialek
+bialkeni
+biamonte
+bianca
+bianchi
+bianka
+biard
+bibbie
+bibby
+bibbye
+bibekana
+bibi
+bible
+bibr
+bice
+bickford
+bidc
+biddie
+biddy
+bidetti
+bidget
+bidyut
+biederma
+biegaj
+biel
+bielan
+bielat
+bielby
+bielecki
+bielejes
+bienek
+bienia
+bierbrie
+bierman
+biermann
+biersach
+bieszcza
+bigelow
+biggers
+biggerst
+biggs
+bigley
+bigras
+bihari
+bihl
+bijan
+bijjani
+bijman
+bijons
+bijun
+bil
+bilal
+bilanski
+bili
+bill
+billard
+billi
+billie
+billing
+billingh
+billotea
+billy
+billye
+bilodeau
+bilovus
+bilsboro
+bilton
+bimini
+bin
+bina
+binda
+binder
+bindi
+binette
+bing
+binggeli
+bingham
+bingley
+bingwu
+binh
+bink
+binkley
+binky
+binner
+binni
+binnie
+binningt
+binny
+bins
+biomecha
+biomed
+bipin
+biplab
+bir
+biray
+birch
+bird
+birdie
+birendra
+birgit
+birgitta
+birgitte
+birk
+birkett
+birks
+birkwood
+birmingh
+biron
+birtch
+bisad
+bisch
+bishiou
+bishwa
+bishya
+bismark
+biss
+bissegge
+bissette
+bisson
+bissonne
+biswa
+biswajit
+bitar
+bittenbe
+bittman
+bitton
+bivens
+bizga
+bjorklun
+bjorn
+bjornson
+blaauw
+blackard
+blackbur
+blacker
+blackley
+blackloc
+blackman
+blacksha
+blackshi
+blackwel
+blackwoo
+bladon
+blaikloc
+blaine
+blair
+blaire
+blais
+blaise
+blake
+blake-kn
+blakelee
+blakeley
+blakemor
+blakesle
+blakey
+blakkolb
+blalock
+blanca
+blanca-s
+blancasi
+blanch
+blancha
+blanchar
+blanche
+blanchet
+blanco-a
+blander
+blane
+blankens
+blann
+blaschuk
+blasine
+blasing
+blasko
+blatherw
+blatt
+blau
+blauer
+blaufus
+blaylock
+blayne
+blazejew
+blazek
+blazer
+bleile
+blenk
+blenkarn
+blesi
+blethen
+bleuer
+blevins
+blezard
+blidy
+blimkie
+blinn
+blinni
+blinnie
+blinny
+bliss
+blisse
+blissett
+blithe
+blodgett
+bloedon
+bloemker
+blois
+blomquis
+blondell
+blondie
+blondy
+bloodwor
+blostein
+blouin
+blount
+bluethne
+blum
+blumenfe
+blumer
+bluschke
+bly
+blyskal
+blyszcza
+blythe
+bmethods
+bnr
+bnrecad
+bnrinfo
+bnrlsi
+bnrsport
+bnrtor
+bo
+bo-ping
+boal
+boaman
+boarder
+boase
+boatwrig
+bob
+bobak
+bobar
+bobb
+bobbe
+bobbee
+bobbette
+bobbi
+bobbie
+bobbitt
+bobby
+bobbye
+bobette
+bobina
+bobine
+bobinett
+boccali
+bockaj
+bocklage
+bocservi
+boddevel
+boden
+bodford
+bodin
+bodkin
+bodnar
+bodo
+boeck
+boecke
+boehlke
+boehms
+boen
+boer
+boersma
+boeyen
+bogal
+bogart
+bogdan
+bogert
+bogey
+boggan
+boggia
+boggild
+boggs
+bogumill
+boguslaw
+bohacek
+bohanan
+bohannon
+bohdan
+bohn
+bohner
+bohyun
+boigie
+boileau
+boily
+boinnard
+bois
+boisseau
+boisset
+boisvert
+boivin
+bojeck
+bokanovi
+bokij
+bokish
+boland
+bolding
+bolduc
+boleda
+bolen
+boles
+bolgos
+bolio
+bolli
+bolly
+bolon
+bolouri
+bolsinge
+bolton
+bolzon
+bomba
+bombardi
+bommakan
+bommer
+bomstein
+bon
+bonahoom
+bond
+bondie
+bondon
+bonduran
+bondy
+bone
+bonfanti
+bongers
+boniface
+bonita
+bonn
+bonnar
+bonneau
+bonnee
+bonnefoy
+bonnell
+bonner
+bonnevil
+bonney
+bonni
+bonnibel
+bonnie
+bonnin
+bonny
+bono
+boocock
+booker
+booking
+bookings
+boon-sio
+boone
+boonie
+boonphet
+boonsion
+boony
+boorne
+boorse
+boos
+boose
+boot
+boote
+booth
+boothe
+boothroy
+bophal
+boping
+bopp
+boppana
+bor-wen
+bora
+boraie
+boray
+borcic
+bord
+bordage
+borden
+bordie
+bordin
+bordy
+borek
+borel
+borg
+borgia
+borha
+boris
+borivoje
+borkowic
+borman
+borodajl
+borojevi
+borosch
+borosh
+boroski
+boroughs
+borowiec
+borozny
+borrelli
+borsa
+borsato
+borson
+bortenst
+borthwic
+bortolus
+borum
+boruslaw
+borwen
+borza
+borzic
+bosch
+boschin
+boscio
+bosco
+bose
+bosiljev
+bosiljka
+bosko
+bosnich
+bosnyak
+bossa
+bossert
+bossett
+bossler
+bostelma
+bostock
+boswell
+boswick
+bosworth
+bosy
+bot
+bothwell
+bott
+botti
+botting
+bottis
+botto
+bottomle
+bottoms
+botyrius
+bouchard
+boucher
+boucouri
+boudin
+boudreau
+bouffard
+bouick
+boulais
+boulay
+bouleric
+boulos
+boult
+bounds
+bour
+bourahla
+bourbonn
+bourcier
+bourdeau
+bourdign
+bourdin
+bouret
+bourgaiz
+bourgaul
+bourget
+bourgon
+bourguig
+bourk
+bourke
+bourland
+bourlet
+bourne
+bouroncl
+bourque
+bourret
+bousfiel
+boutilie
+boutin
+boutniko
+boutot
+bovat
+bovee
+bovenize
+bovey
+bowab
+bowcock
+bowden
+bowen
+bowens
+bower
+bowers
+bowes
+bowick
+bowie
+bowler
+bowles
+bowling
+bowser
+bowyer
+boy
+boyachek
+boyajian
+boyce
+boycey
+boycie
+boyd
+boye
+boyea
+boyer
+boyes
+boylan
+boyle
+boynton
+boz
+bozeman
+bozicevi
+bqb
+braaksma
+brabant
+brabec
+bracewel
+brackin
+brackley
+bracy
+brad
+bradan
+bradbury
+bradd
+braddock
+braddy
+brade
+bradee
+braden
+bradford
+brading
+bradlee
+bradley
+bradlow
+bradly
+bradnels
+bradney
+bradshaw
+brady
+bradyhou
+bragado
+braganza
+bragg
+braginet
+braham
+brahim
+brahmana
+brahms
+brailey
+brain
+brait
+brajesh
+bram
+brambley
+bramlett
+bran
+brana
+branchau
+brand
+brandais
+brande
+brandea
+brandel
+branden
+brander
+brandi
+brandice
+brandie
+brandise
+brandon
+brandsen
+brandsta
+brandt
+brandtr
+brandvol
+brandy
+brandyn
+branham
+brann
+brannan
+brannen
+brannick
+brannon
+brans
+branscom
+brant
+brantley
+brar
+brashear
+brasingt
+brassard
+brassell
+brassem
+brasset
+brasunas
+brathwai
+bratten
+brauer
+brault
+braum
+braun
+braunsti
+braverma
+brawley
+brazeau
+breanne
+brear
+brearley
+breault
+brechtje
+bredeck
+bredfeld
+bree
+breedlov
+breena
+bregitte
+breglec
+brehm
+breisch
+breiten
+brekel
+brel
+bremner
+bren
+brena
+brend
+brenda
+brendan
+brenden
+brender
+brendin
+brendis
+brendon
+brenn
+brenna
+brennan
+brennand
+brennen
+brent
+brentley
+brenton
+breon
+brese
+bresee
+breslin
+bresnaha
+bresnan
+bress
+bret
+breton
+brett
+breuer
+brevard
+brew
+brewer
+brewster
+brewton
+bria
+brian
+briana
+brianna
+brianne
+briano
+briant
+briante
+briard
+brice
+brichett
+brickey
+brickman
+bride
+briden
+bridenst
+bridge
+bridgefo
+bridges
+bridget
+bridgett
+bridgman
+bridie
+brieda
+briel
+brien
+brier
+briere
+brierley
+brietta
+brig
+brigg
+briggs
+brigham
+brightwe
+brigid
+brigida
+brigit
+brigitta
+brigitte
+brina
+brind'am
+brindley
+briner
+briney
+bringhur
+brinklow
+brinkman
+brinn
+brinna
+brintnel
+brinton
+briny
+brion
+brisby
+briseboi
+brissett
+brisson
+brit
+brita
+britman
+britney
+britni
+britt
+britta
+brittain
+brittan
+brittane
+brittani
+brittany
+britte
+britteny
+brittne
+brittney
+brittni
+britto
+britton
+brivet
+brivins
+brkich
+brnaba
+brnaby
+broadfoo
+broadhea
+broadwel
+broberg
+broca
+brocato
+brock
+brockhou
+brockie
+brockleb
+brockman
+brockmey
+brocksch
+brocky
+brod
+broddie
+broddy
+broderic
+broderse
+brodfueh
+brodgen
+brodie
+brodman
+brodowsk
+brody
+brogden
+brogdon
+brogley
+brok
+brokaw
+brombal
+bromley
+bron
+bronec
+bronk
+bronnie
+bronny
+bronson
+brook
+brooke
+brooker
+brookes
+brookhar
+brookhou
+brooks
+brooksba
+broome
+brophy
+broschuk
+brose
+brossard
+brossela
+brosso
+brost
+brostrom
+broten
+brothers
+brothert
+brough
+broughto
+brouille
+broulik
+broussar
+broussea
+brouthil
+brouwer
+brovont
+brower
+brown-gi
+browne
+brownfie
+browning
+brownlee
+brownlie
+brownrid
+brox
+broyles
+brubaker
+bruce
+brucie
+bruder
+bruhl
+bruin
+bruis
+bruketa
+brule
+brum
+brummitt
+brummund
+brunato
+bruncati
+bruneau
+brunel
+brunelle
+bruner
+bruner-u
+brunet
+brungard
+brunhild
+brunke
+brunner
+brunner-
+bruno
+brunoni
+brunstin
+brunton
+brushey
+bruxvoor
+bry
+bryan
+bryana
+bryant
+bryanty
+bryce
+brydges
+brydon
+bryenton
+bryn
+bryna
+brynn
+brynna
+brynne
+bryon
+brys
+bryttan
+bse
+bubak
+bubel
+buccella
+bucci
+buchan
+buchanan
+buchko
+buck
+buckalew
+buckhoff
+buckie
+buckingh
+buckley
+bucklin
+buckman
+buckner
+bucky
+buczek
+bud
+buda
+budd
+buddie
+buddy
+buder
+budhram
+budi
+budihard
+budimiro
+bue
+buechner
+buehler
+buettgen
+buffam
+buffett
+buffy
+buford
+bugajska
+bugajski
+buggie
+buhler
+buhr
+buhrkuhl
+bui
+building
+buiron
+bujold
+buker
+bukowski
+bukta
+buky
+bulan
+bulanda
+bulbrook
+bulengo
+bulent
+buley
+bulger
+bulifant
+bulitka
+bulka
+bulkovsh
+bullard
+bullas
+bullen
+bulletin
+bullett
+bullinge
+bullion
+bulman
+bulmanis
+bulmer
+bulz
+bumgarne
+bumstead
+bunce
+bundschu
+bunker
+bunn
+bunner
+bunni
+bunnie
+bunny
+bunting
+buntrock
+bunzey
+buratyns
+burbage
+burbidge
+burcew
+burch
+burchat
+burchby
+burdett
+burdette
+burdick
+burega
+burek
+burg
+burge
+burger
+burgess
+burgette
+burgi
+burgin
+burgwell
+burk
+burkard
+burke
+burkepil
+burkert
+burkett
+burkey
+burkhard
+burl
+burleigh
+burleson
+burlie
+burnaby
+burnage
+burnard
+burness
+burnet
+burnett
+burnette
+burney
+burnie
+burns
+burnside
+burr
+burrell
+burrowes
+burrows
+burrus
+burruss
+burt
+burtie
+burton
+burty
+burwell
+busby
+buscagli
+buscarin
+busch
+busche
+buschelm
+bushell
+bushnell
+bushnik
+business
+buskard
+buske
+buskens
+busko
+bussewit
+bussey
+buster
+bustillo
+busuttil
+butch
+butcher
+butner
+butta
+butterfi
+butters
+buttrey
+butts
+butvich
+buxton
+buzz
+buzzell
+buzzy
+bvworks
+by don o
+bycenko
+byczko
+bydeley
+byer
+byers
+byeungwo
+byk
+bykowy
+bylina
+byoung
+byoungin
+byram
+byran
+byrann
+byrd
+byrgesen
+byrl
+byrle
+byrne
+byrnes
+byrom
+byron
+byung
+byungyon
+cabaniss
+cabi
+cabot
+cabral
+cabras
+cabrera
+caceres
+cacha
+cachero
+cacilia
+cacilie
+cad
+cadd
+caddric
+cadeau
+cadieux
+cadshare
+cadtools
+cady
+cadzow
+cae
+caesar
+caffrey
+caffry
+cagatay
+caglar
+caglayan
+cahill
+cahra
+cai
+caie
+cain
+caine
+caines
+cairisti
+cairns
+caison
+caitlin
+caitrin
+cakarevi
+cal
+calahorr
+calc
+calcote
+calder
+caldwell
+cale
+caleb
+caleta
+calhoun
+caliboso
+calica
+calida
+calis
+calistro
+calkins
+calla
+callagha
+callahan
+callan
+callanan
+callean
+calleja
+callende
+callery
+calley
+calli
+callida
+callie
+callos
+calloway
+cally
+calmejan
+calmenso
+calow
+caltride
+calumet
+calv
+calva
+calvary
+calvin
+calypso
+calzaros
+cam
+camacho
+camala
+camblin
+cambre
+camel
+camel-to
+camella
+camellia
+cameron
+camet
+camey
+cami
+camie
+camila
+camile
+camilla
+camille
+camilluc
+camino
+camirand
+cammi
+cammie
+cammy
+campagna
+campanel
+campara
+campbell
+campeau
+camplone
+campo
+campos
+canada
+canadian
+canavan
+cancela
+candace
+candee
+candelar
+candi
+candice
+candida
+candide
+candie
+candis
+candra
+candy
+canete
+canfield
+cang
+cann
+cannatar
+cano
+cantlie
+cantrell
+cantwell
+canuel
+canute
+capelle
+capes
+capindal
+caple
+caplinge
+capobian
+capostag
+capozzi
+capps
+capretta
+caprice
+captives
+caputo
+car
+cara
+caralie
+carandan
+carbajal
+carbonar
+carbone
+carboni
+carbonne
+carce
+cardella
+carden
+cardozo
+cards
+care
+career
+careers
+carella
+caren
+carena
+caresa
+caresani
+caressa
+caresse
+carevic
+carew
+carey
+cargill
+cargnell
+cari
+caria
+caridad
+carie
+carignan
+caril
+carilyn
+carin
+carina
+carine
+cariotta
+carisa
+carissa
+carita
+caritta
+cark
+carkner
+carl
+carla
+carlberg
+carldata
+carle
+carlean
+carlebac
+carlee
+carleen
+carlen
+carlene
+carleton
+carlett
+carley
+carli
+carlie
+carlin
+carlina
+carline
+carling
+carlis
+carlisle
+carlita
+carlo
+carlock
+carlos
+carlota
+carlotta
+carlsen
+carlson
+carlton
+carly
+carlye
+carlyle
+carlyn
+carlynn
+carlynne
+carm
+carma
+carmel
+carmela
+carmelia
+carmelin
+carmelit
+carmella
+carmelle
+carmelo
+carmen
+carmenci
+carmicha
+carmina
+carmine
+carmita
+carmody
+carmon
+carmona
+carnegie
+carney
+carnogur
+carny
+caro
+carol
+carol-je
+carola
+carolan
+carolann
+carole
+carolee
+carolien
+carolin
+carolina
+caroline
+caroljea
+carolle
+carolus
+carolyn
+carolyne
+carolynn
+caron
+carpenti
+carpool
+carr
+carran
+carranza
+carree
+carri
+carrie
+carriere
+carrillo
+carringt
+carrissa
+carrmtce
+carrol
+carroll
+carron
+carruthe
+carry
+carrye
+carson
+carsten
+carstens
+carswell
+cart
+carter
+cartohl
+carty
+carufel
+caruk
+caruso
+caruth
+carvalho
+carver
+cary
+caryl
+caryn
+cas
+casadont
+casalou
+casandra
+casanova
+casar
+casas
+cascarin
+case
+casey
+cash
+cashin
+casi
+casie
+casinovi
+caskey
+casler
+casnji
+casotto
+caspar
+casper
+casperso
+cass
+cassady
+cassandr
+cassar
+cassat
+cassaund
+cassese
+cassey
+cassi
+cassian
+cassidy
+cassie
+cassius
+casson
+cassondr
+cassy
+castaban
+castell
+castello
+casten
+castillo
+casto
+castongu
+castro
+castro-h
+castrono
+caswell
+cat
+catanach
+catarina
+cate
+caterina
+catering
+cath
+catha
+cathal
+catharin
+cathe
+cathee
+catherin
+catherwo
+cathi
+cathie
+cathleen
+cathlene
+cathrin
+cathrine
+cathryn
+cathy
+cathylee
+cati
+catie
+catina
+catja
+catlaina
+catlee
+catlett
+catlin
+cato
+caton
+catrina
+catriona
+catthoor
+caty
+cau
+cauchy
+caudill
+caudle
+cauthen
+cauthers
+cavan
+cavanagh
+cavanaug
+cavasin
+cavasso
+caves
+cavill
+cavin
+caviness
+cavnar
+cawley
+caye
+cayer-fl
+cayla
+cayless
+cayouett
+caz
+caza
+cazzie
+cbabbage
+cchaddie
+cecco
+cece
+cecelia
+cech
+cecil
+cecile
+ceciley
+cecilia
+cecilio
+cecilius
+cecilla
+cecily
+cecon
+ced
+cedric
+cefee
+cegelski
+ceil
+cele
+celene
+celesta
+celeste
+celestia
+celestin
+celestyn
+celia
+celie
+celina
+celinda
+celine
+celinka
+celisse
+celka
+celle
+cello
+cellucci
+celso
+celyne
+cemensky
+cen
+cencier
+centeno
+center
+centers
+centis
+centre
+cepero
+cepheus
+ceponis
+ceranic
+cerberus
+ceri
+ceriel
+cerny
+cervante
+cesar
+cesaratt
+cesare
+cesario
+cesaro
+cescon
+cesya
+cetraro
+cezary
+chaaban
+chaar
+chabane
+chabert
+chabrat
+chacko
+chacon
+chad
+chadd
+chaddha
+chaddie
+chaddock
+chaddy
+chadha
+chadrick
+chadwick
+chafin
+chafy
+chagnon
+chahal
+chahram
+chai
+chai-seo
+chaikows
+chaim
+chaiman
+chaimson
+chaintre
+chaisupa
+chak-hon
+chakraba
+chakrabo
+chakrava
+chalifou
+chalker
+challice
+chalmers
+chalton
+cham
+chamard
+chamayou
+chambers
+chamblis
+champath
+champion
+champsi
+chamsi
+chan
+chan-jiu
+chan-nan
+chance
+chancey
+chanchal
+chanchla
+chanco
+chand
+chanda
+chandal
+chandan
+chander
+chandler
+chandra
+chandrak
+chandran
+chandras
+chandru
+chane
+chang
+chang-hs
+changes
+changho
+changhsi
+chanh
+chanitr
+chanjiun
+channa
+channan
+channell
+channen
+chanonat
+chanpong
+chanshin
+chansik
+chantal
+chantall
+chantel
+chantell
+chao
+chao-pin
+chaoping
+chapa
+chapdela
+chapen
+chapin
+chapleau
+chaplin
+chapman
+chapmond
+chappell
+chappuis
+chaput
+char
+charangi
+charasse
+charbonn
+charchan
+chardon
+charee
+charene
+charest
+charette
+chari
+charil
+charin
+chariot
+charis
+charissa
+charisse
+charita
+charity
+charko
+charla
+charlean
+charlebo
+charleen
+charlena
+charlene
+charles
+charlesb
+charleto
+charley
+charlie
+charline
+charlino
+charlins
+charlot
+charlott
+charlsey
+charlton
+charly
+charmain
+charman
+charmane
+charmian
+charmine
+charmion
+charness
+charney
+charo
+charon
+charron
+charter
+chartier
+chartran
+charyl
+chas
+chasalow
+chase
+chasse
+chastity
+chatard
+chatchai
+chatel
+chatfiel
+chatha
+chatri
+chatterl
+chattert
+chattoe
+chattos
+chau
+chaudhar
+chaudhry
+chaudry
+chaug-mi
+chaugmin
+chauhan
+chaunce
+chauncey
+chaurasi
+chaurett
+chautems
+chauvin
+chavers
+chaves
+chavez
+chavis
+chawki
+chawla
+chaya
+chaz
+che
+chea
+cheal
+cheatham
+cheba
+checinsk
+checklan
+chee
+chee-yin
+chee-yon
+cheesema
+cheesman
+cheetham
+cheevers
+chel
+chellapp
+chelsae
+chelsea
+chelsey
+chelsie
+chelsy
+chem
+chen
+chen-che
+chen-chu
+chen-jun
+chen-msi
+chenard
+chenault
+chenchun
+chene
+cheney
+cheng
+cheng-do
+cheng-fo
+cheng-ho
+cheng-hu
+cheng-ts
+chengdon
+chengfoo
+chenghon
+chenghun
+chengtse
+chengwei
+chenier
+chenmsie
+chennett
+chenowet
+chenye
+cheol
+cheow-to
+cheowton
+chepregi
+cher
+chere
+cherenso
+cherey
+cheri
+cherian
+cheriann
+cherice
+cherida
+cherie
+cherilyn
+cherin
+cherise
+cherish
+cherkas
+cherlyn
+chern
+chernets
+cherng
+cherri
+cherrier
+cherrita
+cherry
+chertok
+chervena
+chery
+cherye
+cheryl
+ches
+cheshire
+chesley
+cheslie
+chesser
+chesteen
+chester
+chesterf
+cheston
+chet
+chetan
+cheuk
+cheung
+chev
+cheval
+chevalie
+chevarie
+chevy
+cheyenne
+chhabria
+chi
+chi-haw
+chi-ho
+chi-hua
+chi-hung
+chi-kai
+chi-keun
+chi-kwan
+chi-man
+chi-vien
+chi-wen
+chi-yin
+chi-yuan
+chia
+chia-hoa
+chia-hua
+chiabaut
+chiahoan
+chiahuan
+chiaki
+chiamvim
+chian
+chian-fo
+chianfon
+chiang
+chiang-h
+chianghu
+chiaoyun
+chiarell
+chiarra
+chiavaro
+chic
+chick
+chickie
+chickori
+chicky
+chico
+chie
+chief
+chieh
+chiem
+chien
+chien-ch
+chien-hs
+chien-hu
+chienche
+chienchi
+chienhsi
+chienhue
+chieu
+chih
+chih-chi
+chih-hsi
+chih-hua
+chih-tsa
+chihaw
+chihchia
+chihchie
+chihhsia
+chihhua
+chihtsai
+chihua
+chihung
+chiiwen
+chik
+chikai
+chilausk
+childerh
+childers
+childree
+childres
+childs
+chilibec
+chilton
+chima
+chin
+chin-ho
+chin-lin
+chin-shu
+chin-ten
+chin-wen
+chinfui
+ching
+ching-ch
+ching-en
+ching-fu
+ching-lo
+ching-ts
+ching-yu
+chingchy
+chingen
+chingfu
+chingtsu
+chingyun
+chinh
+chinhin
+chinho
+chiniwal
+chinlin
+chinn
+chinnery
+chinrung
+chinshu
+chinteng
+chinwen
+chiou
+chip
+chiquia
+chiquita
+chiracha
+chisholm
+chisolm
+chitkara
+chitnis
+chitra
+chityal
+chiu
+chiverto
+chiwen
+chiykows
+chiyo
+chiyuan
+chlo
+chloe
+chloette
+chloris
+chmara
+cho
+cho-kuen
+cho-lun
+chochon
+chocs
+chod
+choe
+chohan
+choi
+chojan
+chok
+cholet
+cholette
+cholewin
+chomik
+chona
+chonchan
+chong
+chong-ch
+chong-ke
+chong-la
+chongcha
+chongkeu
+choo
+choo-kan
+choon
+choon-li
+choong
+chopin
+chopowic
+chopra
+choptovy
+choquett
+chorley
+chorng
+chotkows
+chou
+choudhur
+chouhan
+chouinar
+chowhan
+choy
+choynows
+chriisto
+chris
+chrisman
+chrisoph
+chrisse
+chrissie
+chrissun
+chrissy
+christ
+christa
+christab
+christal
+christan
+christea
+christel
+christen
+christer
+christi
+christia
+christie
+christin
+christl
+christof
+christop
+christos
+christy
+christye
+christyn
+chrisy
+chronowi
+chrotoem
+chroust
+chruscie
+chrysa
+chrysant
+chrysler
+chrystal
+chryste
+chrystel
+chu
+chu-chay
+chu-chue
+chua
+chuah
+chuan
+chuan-hs
+chuang
+chuanhsi
+chubb
+chubby
+chucho
+chuchuen
+chuck
+chueh
+chuen
+chugha
+chui
+chuj
+chuk
+chukwuem
+chul
+chuming
+chummun
+chun
+chun-li
+chun-shi
+chun-yen
+chung
+chung-ch
+chung-kw
+chung-li
+chung-wo
+chung-yo
+chungen
+chungjen
+chungkwo
+chunglin
+chungpha
+chungsik
+chunkin
+chunlan
+chunli
+chunlin
+chunling
+chunmei
+chunmeng
+chunn
+chunshin
+chunyen
+chuong
+chuq
+churas
+churchil
+chwen
+chychrun
+chye
+chye-lia
+chytil
+cia
+ciampini
+cianci
+ciancibe
+ciaralli
+ciaran
+ciaschi
+ciccarel
+cicchino
+cicci
+cicek
+cicely
+cicero
+cicily
+ciel
+ciesiels
+cieslak
+cifelli
+cifersky
+cigay
+cilka
+cimarron
+cimino
+cimolai
+cinar
+cinda
+cindas
+cindee
+cindelyn
+cinderel
+cindi
+cindie
+cindra
+cindy
+cinicolo
+cinnamon
+cinq-mar
+ciocca
+ciochon
+cioffi
+ciolfi
+cipolla
+circe
+ciriaco
+cirillo
+cirilo
+ciro
+cirri
+cirstofo
+cirulli
+cis @ w
+cisco
+ciskowsk
+cisnews
+cissiee
+cissy
+citarell
+cities
+citrin
+cividino
+cizmar
+clacher
+claggett
+claiborn
+clair
+claire
+clairmon
+claise
+clampitt
+clancy
+clapham
+clapp
+clara
+clarabel
+clarance
+clare
+clarence
+claresta
+clareta
+claretta
+clarette
+clarey
+clari
+claribel
+clarice
+clarie
+clarinda
+clarine
+clarise
+clarissa
+clarisse
+clarita
+clark
+clark-st
+clarka
+clarke
+clarkson
+clary
+clason
+class
+classes
+claude
+claudell
+claudett
+claudia
+claudian
+claudie
+claudina
+claudine
+claudio
+claudius
+claus
+claveau
+claxton
+clay
+clayborn
+claybour
+claybroo
+clayson
+clayton
+clea
+cleary
+cleavlan
+cleere
+clegg
+clem
+clemence
+clemens
+clement
+clemente
+clementi
+clements
+clemie
+clemmie
+clemmons
+clemmy
+clendeni
+clenney
+clennito
+clentice
+cleo
+cleon
+cleopatr
+clerc
+clerissa
+clerkcla
+clerke
+cleroux
+clesson
+clestell
+cletis
+cleto
+cletus
+cleve
+clevelan
+clevey
+clevie
+clevon
+cliff
+clifford
+clifton
+clim
+clincket
+cline
+clinger
+clinkard
+clint
+clinteas
+clinton
+clio
+clippert
+clipsham
+clites
+clive
+clo
+clocklab
+cloe
+cloherty
+clooney
+cloris
+closson
+clost
+clotilda
+clough
+clouthie
+cloutier
+clovis
+clow
+cloyd
+cluett
+clusiau
+cly
+clyde
+clysdale
+clyve
+clywd
+cmet
+co
+co-op
+co-ordin
+coady
+coallier
+coathup
+coats
+cob
+cobaugh
+cobb
+cobban
+cobbie
+cobbold
+cobby
+coble
+cobley
+cobo
+cobran
+cocco
+cochran
+cochrane
+cockburn
+cockcrof
+cocke
+cockins
+cocos
+cocos-ar
+codack
+codata
+coddingt
+code
+codee
+coder
+codi
+codie
+codoc
+codringt
+cody
+coe
+coertnik
+coffey
+cogan
+cogdell
+coggins
+coghlan
+cogwell
+cohea
+cohen
+cohn
+cohn-sfe
+cohoe
+cohrs
+coila
+cointon
+coker
+cokol
+colagros
+colan
+colangel
+colanton
+colas
+colatta
+colbert
+colbourn
+colburn
+colby
+colclasu
+coldwell
+cole
+coleen
+colella
+coleman
+colene
+coles
+colet
+coletta
+colette
+coley
+colford
+colgan
+colin
+colina
+colinda
+collamer
+collamor
+collazo
+collecut
+colledge
+colleen
+collen
+collete
+collette
+collevec
+colley
+colli
+collie
+collier
+collin
+colline
+collins
+collis
+colly
+collyer
+colm
+colman
+coloads
+colonton
+colpitts
+colquett
+colquhou
+colquitt
+colston
+colter
+colterma
+colton
+colucci
+colver
+colvin
+colwell
+comay
+combaz
+combee
+combella
+combos
+combs
+comeau
+comley
+comm
+commazzi
+comments
+committe
+commons
+communic
+comp
+compton
+computin
+comstock
+comtois
+con
+conan
+conant
+conboy
+concetta
+concetti
+conchita
+concklin
+concordi
+conde
+condell
+condurel
+conerly
+coneybea
+cong
+congdon
+congress
+conistis
+conklin
+conley
+conlin
+conlon
+conn
+connell
+connelly
+conner
+conners
+conney
+conni
+connie
+connolly
+connor
+connors
+connors-
+conny
+conoly
+conrad
+conrade
+conrado
+conrath
+conroy
+consalve
+conservi
+consolat
+constabl
+constanc
+constant
+construc
+consuela
+consuelo
+consulta
+containi
+contardo
+conte
+contine
+contomic
+conway
+coochey
+coody
+coogan
+cooke
+cookie
+cooksey
+cooley
+coolidge
+coombs
+cooney
+coop
+cooper
+cooperma
+coord
+coordina
+coors
+copeland
+copello
+copeman
+copes
+coplesto
+copley
+copp
+coppedge
+coppins
+coqueugn
+cora
+corabel
+corabell
+corace
+coral
+coralie
+coraline
+coralyn
+corbeil
+corbet
+corbett
+corbie
+corbin
+corbitt
+corby
+corcoran
+cord
+cordelia
+cordelie
+cordell
+cordes
+cordey
+cordi
+cordie
+cordula
+cordy
+core
+coreen
+corella
+corena
+corenda
+corene
+coretta
+corette
+corey
+cori
+coriaty
+corie
+corilla
+corina
+corine
+corinna
+corinne
+coriss
+corissa
+corker
+corkey
+corkigan
+corkstow
+corkum
+corless
+corlett
+corley
+corliss
+corly
+cormac
+cormier
+cornall
+cornaro
+cornel
+cornela
+cornelia
+cornelis
+corneliu
+cornell
+cornelle
+corner
+corney
+cornie
+corny
+corpenin
+corpuz
+corr
+correa
+correia
+correna
+correy
+corri
+corriann
+corrie
+corrigan
+corrina
+corrine
+corrinne
+corritor
+corrivea
+corry
+corsale
+corse
+corson
+cort
+cortie
+cortland
+cortney
+corty
+corvo
+cory
+cos
+cosburn
+cosentin
+cosetta
+cosette
+cosgrove
+cosimo
+coslas
+cosme
+cosmo
+cosner
+cosola
+cossota
+costa
+costache
+costadim
+costandi
+costanti
+costanza
+costanzi
+costas
+costas-d
+coste
+costello
+costen
+cote
+cothran
+cotnam
+cotner
+cotten
+cottengi
+cotter
+cottingh
+cottrell
+cotugno
+cotuna
+coucopou
+couey
+coughran
+coules
+coulman
+coulombe
+coulson
+coulter
+coulterm
+count
+coupal
+coupland
+courches
+couron
+coursdev
+coursey
+coursol
+courson
+court
+courtadm
+courtena
+courtlan
+courtnay
+courtney
+courvill
+couse
+couser
+cousinea
+cousins
+coutelli
+coutinho
+couto
+coutu
+couture
+covach
+coverdal
+covey
+coviensk
+coville
+covingto
+cowan
+cowart
+cowell
+cowen
+cowick
+cowley
+cowling
+cowlisha
+cownie
+cowper
+coxall
+coxe
+coyle
+coyne
+cozart
+cozmo
+cozyn
+cozzi
+cpebach
+cpm
+cprs
+crabb
+crabe
+crabtree
+cracknel
+craddock
+crafton
+craggie
+craggs
+craggy
+craghead
+craib
+craig
+craig-du
+crain
+cramer
+cramm
+crampton
+crandall
+cranford
+cranston
+crapco
+crase
+craver
+crawford
+crawhall
+crawley
+crawshaw
+cray
+craycraf
+cre
+creamer
+crean
+creane
+creasey
+creasman
+creative
+credico
+credille
+creech
+creecy
+cregan
+creigh
+creight
+creighto
+cremer
+crepeau
+crerar
+creswell
+crews
+cribbs
+crichton
+crick
+crickard
+cricker
+cricket
+crigger
+crin
+crippen
+cripps
+cris
+crisler
+crissie
+crissy
+crista
+cristabe
+cristal
+cristen
+cristesc
+cristi
+cristian
+cristie
+cristin
+cristina
+cristine
+cristion
+cristoba
+cristofa
+cristy
+criswell
+critchle
+crittend
+crl.word
+crocker
+crockett
+crogie
+croiseti
+croix
+crolla
+cromer
+crommie
+crompton
+cromwell
+cronan
+cronin
+cronk
+cronkrig
+cronkwri
+crooks
+croom
+cropper
+crosby
+cross
+cross-as
+crossass
+crossley
+crosson
+crosswel
+croteau
+crothers
+crotty
+crowder
+crowe
+crowell
+crowle
+crowley
+croxall
+croxford
+crozier
+crucefix
+cruey
+cruicksh
+crumpton
+crusoe
+crutchfi
+cruz
+cruzado
+cryoelec
+crysta
+crystal
+crystalb
+crystie
+csaszar
+csenar
+csilla
+csite
+csma
+csop
+csr
+csreport
+csua
+ctas
+cthrine
+cuany
+cuauhtem
+cubical
+cubicle
+cucchiar
+cucci
+cuccia
+cucciole
+cucuzzel
+cuddihey
+cuddihy
+cuddy
+cuellar
+cuervo
+cuffle
+cuffling
+cuggy
+culberso
+culberts
+culbreth
+culham
+culkin
+cull
+cullan
+cullen
+culley
+cullie
+cullin
+culliphe
+cullum
+cully
+culmer
+culp
+culver
+culverho
+cummine
+cumming
+cummings
+cummins
+cumpston
+cunanan
+cung
+cunha-go
+cunningh
+cuong
+cuper
+cupid
+cupido
+curcio
+curley
+curmon
+curnow
+curr
+curran
+currer
+currey
+currie
+currier
+currin
+curry
+curt
+curtice
+curtin
+curtis
+curtt
+cusato
+cushing
+cushman
+cusick
+cusson
+custer
+custsupp
+cusumano
+cuthbert
+cuthill
+cutrufel
+cutter
+cuu
+cwirzen
+cy
+cyb
+cybil
+cybill
+cybotech
+cycelia
+cymbre
+cynde
+cyndi
+cyndia
+cyndie
+cyndy
+cynethia
+cynthea
+cynthia
+cynthie
+cynthy
+cynthya
+cyr
+cyril
+cyrill
+cyrille
+cyrillus
+cyrine
+cyros
+cyrus
+cytrynba
+czappa
+czarneck
+czeban
+czes
+czeslaw
+czychun
+d'ambros
+d'amico
+d'amour
+d'andrea
+d'angelo
+d'anjou
+d'anne
+d'antoni
+d'aoust
+d'arcy
+d'cruz
+d'ingian
+d'ippoli
+d'lima
+d'onofri
+d'orazio
+d'silva
+d'soto
+d'souza
+da
+da gama
+da silva
+da-shih
+daaboul
+dacal
+dace
+dacey
+dach
+dachelet
+dacia
+dacie
+dack
+dacre
+dacy
+dada
+dadalt
+dadang
+dade
+dadgar
+dadkhah
+dae
+daebum
+daedalus
+dael
+daena
+daesik
+daffi
+daffie
+daffy
+dafoe
+dag
+dagama
+dagenais
+dagert
+dages
+dagg
+dagley
+dagmar
+dagnall
+dagnaw
+dagny
+dagoulis
+dahai
+dahan
+dahi
+dahl
+dahlia
+dahlstro
+dai
+daigle
+daigneau
+daijavad
+daile
+dailey
+daimee
+dairin
+daisey
+daisi
+daisie
+daisy
+dajerlin
+dal
+dale
+dalenna
+dales
+daley
+dalia
+dalila
+dalip
+dalis
+dall
+dall'ost
+dallago
+dallaire
+dallal
+dallas
+dalli
+dallis
+dallon
+dalmard
+daloris
+dalrympl
+dalsiel
+dalston
+dalt
+dalton
+daly
+damara
+damaris
+dambenie
+dame
+damena
+damerji
+damian
+damiano
+damien
+damil
+damita
+damon
+damone
+dan
+dana
+danagher
+danai
+danbrook
+danchi
+dancy
+dando
+danduran
+dane
+danell
+danella
+daneshza
+danette
+danforth
+dangubic
+danh
+dani
+dania
+danial
+danica
+danice
+danie
+daniel
+daniela
+danielak
+daniele
+daniella
+danielle
+daniells
+daniels
+danika
+danila
+danilo
+danilowi
+daniluk
+danit
+danita
+danjean
+danker
+danko
+danling
+dann
+danna
+dannel
+danni
+dannie
+danny
+dannye
+dans
+danserea
+dante
+dantu
+dantzler
+dany
+danya
+danyelle
+danyette
+danzeise
+danzig
+dao
+daochuan
+daoud
+daoust
+daphene
+daphine
+daphna
+daphne
+daquano
+dar
+dar-der
+dara
+darb
+darbee
+darbie
+darby
+darcange
+darcee
+darcel
+darcey
+darci
+darcie
+darcy
+darda
+darden
+darder
+dare
+dareen
+darell
+darelle
+daren
+dares
+dari
+daria
+darian
+darice
+darill
+darin
+darina
+dario
+darius
+darko
+darla
+darleen
+darlene
+darline
+darlingt
+darlleen
+darn
+darnall
+darnel
+darnell
+darold
+daron
+darou
+darpa
+darr
+darrel
+darrell
+darrelle
+darren
+darrick
+darrimon
+darrin
+darroch
+darrol
+darrow
+darry
+darryl
+darsey
+darshan
+darshana
+darshi
+darsie
+daruius
+darveau
+darwen
+darwin
+darwyn
+darya
+daryl
+daryle
+daryn
+daryoosh
+daryoush
+das
+dasch
+dasd
+dasha
+dasharat
+dashih
+dasi
+dasie
+dasilva
+dasinger
+dasrath
+dassani
+dassie
+dasya
+dat
+data
+datacent
+datas
+datasupp
+datema
+dates
+datha
+datta
+dattalo
+dau
+daudin
+daugavie
+daughert
+daughtre
+daunais
+daune
+dauphina
+dautenha
+dauteriv
+dav
+davalo
+dave
+daveen
+daven
+daveta
+davey
+david
+david-ye
+davida
+davidde
+davide
+davidh
+davidovi
+davids
+davidson
+davie
+davies
+davin
+davina
+davinci
+davinder
+davine
+davis
+davison
+davita
+davon
+davor
+davy
+dawe
+dawit
+dawkins
+dawn
+dawna
+dawne
+dawson
+daya
+dayal
+dayberry
+dayle
+daymond
+dayna
+dayton
+db
+dba
+dbase
+dbs
+ddavid
+ddene
+ddocdb
+de
+de anda
+de baets
+de beaum
+de belen
+de boer
+de buda
+de cecco
+de chabe
+de cours
+de crist
+de eliza
+de grace
+de hoog
+de la
+de leon
+de los
+de marco
+de marti
+de muinc
+de salis
+de souza
+de toni
+de varen
+de vito
+de vries
+de wiele
+de wilto
+de witt
+de witte
+de-anna
+de-boer
+de-ying
+de_konin
+deacetis
+deadwile
+deagle
+deak
+deakin
+dealmeid
+dealto
+deames
+dean
+deana
+deanda
+deane
+deanm
+deann
+deanna
+deanne
+deans
+deanza
+dear
+dearaujo
+deardurf
+deason
+deathera
+deatrick
+deb
+debadeep
+debasish
+debassig
+debbi
+debbie
+debby
+debee
+debera
+debernar
+debi
+debkumar
+deblois
+debnam
+deboer
+deboor
+debor
+debora
+deborah
+debord
+debortol
+debra
+debrah
+debrun
+debrusk
+debs
+decacque
+decaire
+decapua
+decarie
+decasper
+decca
+decelles
+deciccio
+deck
+decker
+declan
+decleir
+decource
+decourcy
+decoursi
+deczky
+dedas
+dede
+dedie
+dedra
+deduk
+dee
+dee dee
+deeann
+deeanne
+deedee
+deek
+deena
+deep
+deepak
+deerdre
+deere
+deery
+deetta
+deevey
+deeyn
+defacend
+defalco
+defazio
+defilipp
+deford
+deforeit
+defrance
+defranch
+degan
+degen
+degenova
+degraauw
+degrandi
+deguines
+deguire
+dehaan
+dehghan
+dehlia
+dehner
+dehoff
+dehr
+deiadrel
+deibert
+deicher
+deidre
+deikman
+deina
+deininge
+deirdre
+deitera
+deitiker
+dejan
+dejongh
+dekai
+dekeyser
+del
+dela
+delaat
+delage
+delahay
+delainey
+delancey
+delaney
+delangis
+delano
+delargy
+delat
+delbert
+delbret
+delbridg
+delbrouc
+delcina
+delcine
+deleon
+delf
+delfin
+delfreda
+delgass
+delgross
+delia
+deligdis
+delila
+delilah
+delinda
+delisle
+deliva
+dell
+della
+delle
+delli
+dellinge
+delly
+delmar
+delmer
+delmor
+delmore
+delnaz
+delo
+delolmod
+delong
+delora
+delorenz
+delores
+deloria
+deloris
+delorme
+delphine
+delphini
+delroy
+deluca
+deluce
+deluco
+delvecch
+delzer
+demarco
+demarest
+demchuk
+dement
+demeo
+demers
+demet
+demeter
+demetra
+demetre
+demetri
+demetria
+demetric
+demetrio
+demetris
+demetriu
+demeulem
+demi
+demidenk
+demir
+demjen
+demmel
+demone
+demontlu
+demorest
+demorge
+demott
+demps
+dempsey
+dempster
+demren
+demuth
+den
+dena
+dendi
+dene
+denebeim
+deneen
+denemark
+denery
+denest
+denette
+deng
+deng-jyi
+dengjyi
+deni
+denice
+deniece
+denike
+denis
+denise
+denison
+deniz
+denley
+denman
+denmark
+denna
+dennen
+dennet
+denney
+denni
+dennie
+denning
+dennis
+dennison
+denno
+denny
+deno
+denomme
+denoon
+denter
+denton
+denver
+deny
+denys
+denyse
+denzil
+deog
+deok
+deol
+deonne
+depalma
+depeltea
+depew
+dephoure
+deployme
+depooter
+dept
+dept.
+der
+der-chan
+der-shen
+deraadt
+deraaf
+derby
+derbyshi
+derecki
+derek
+derenzo
+derganc
+deri
+derick
+derika
+derin
+derk
+derluen
+dermardi
+dermot
+derome
+derosa
+derose
+derosenr
+derrek
+derrett
+derrick
+derrik
+derril
+derron
+derry
+dersheng
+derward
+derwin
+dery
+deryck
+des
+desai
+desalis
+desantis
+desautel
+desch
+deschamp
+deschiff
+descotea
+descotes
+desdemon
+desgrose
+desharna
+desi
+design
+desilets
+desimone
+desirae
+desire
+desiree
+desiri
+desjardi
+desjarla
+deska
+deslande
+deslauri
+desmarai
+desmond
+desmund
+desoer
+desorbay
+desourdy
+despain
+despault
+despinic
+desplanq
+despres
+desroche
+desrosie
+dessain
+desser
+destech
+destefan
+destry
+detjens
+detlef
+detleff
+detlev
+detloff
+detra
+deugau
+deugo
+deutschm
+dev
+deva
+devadas
+devan
+devarenn
+devault
+deveau
+devel
+developm
+deven
+devenny
+devenyi
+devenyns
+devera
+devere
+devette
+devgon
+devi
+devices
+devin
+devina
+devincen
+devine
+devinne
+devland
+devlen
+devlin
+devon
+devondra
+devonna
+devonne
+devora
+devore
+devouges
+devreeze
+devy
+dew
+dewain
+dewart
+dewayne
+dewey
+dewi
+dewie
+dewit
+dewitt
+dewitte
+dex
+dexiang
+dexter
+deying
+deyirmen
+deyoung
+dezbah
+dezoete
+dg
+dhaliwal
+dhansukh
+dhanvind
+dhar
+dharam
+dharmara
+dharmawa
+dhaussy
+dhawal
+dheeraj
+dhillon
+dhinakar
+dhir
+dhiraj
+dhiren
+dhuga
+dhupar
+di
+di cosol
+di giamb
+di maso
+di millo
+di ninno
+dia-edin
+diaconu
+diahann
+dialout
+diamond
+dian
+diana
+diandra
+diane
+diane-ma
+dianemar
+diann
+dianna
+dianne
+diannne
+diarmid
+dias
+diaz
+dibenede
+dibler
+dicaprio
+dick
+dickard
+dickens
+dickerma
+dickerso
+dickeson
+dickford
+dickie
+dickinso
+dicks
+dicksie
+dickson
+dicky
+didani
+didar
+didi
+didier
+didio-du
+dido
+diduch
+didylows
+diec
+diederic
+diederik
+diedrich
+diee
+diego
+diekman
+diemel
+dien
+diena
+diener
+diep
+diepling
+dierdre
+diersch
+diesing
+dieter
+dietra
+dietrich
+dieu
+dieuwert
+difalco
+diffee
+diffie
+difilipp
+difrance
+digby
+digenova
+digiacom
+digilio
+dignam
+dijaili
+dijian
+diju
+dikaitis
+dikens
+dilallo
+dilan
+dilen
+dilip
+dilkie
+dill
+dillabou
+dillard
+dilley
+dillie
+dillingh
+dillon
+dillow
+dilly
+diloreto
+dilpreet
+dima
+dimarco
+dimarzo
+dimas
+dimetry
+dimillo
+dimitra
+dimitri
+dimitrio
+dimitry
+dimoueri
+dina
+dinaband
+dinah
+dinalic
+dincamps
+dineke
+dinesh
+dinges
+dingle
+dingley
+dingman
+dinh
+dinhtran
+dinkel
+dinker
+dinnervi
+dinneyla
+dinnie
+dinnin
+dinny
+dino
+dinsmore
+dinur
+diogo
+dion
+dione
+dionis
+dionisio
+dionne
+dionysia
+dionysiu
+dionysus
+dipace
+dipak
+dipasqua
+diperna
+dipierro
+dipietro
+dipper
+dirac
+diradmin
+dirbm
+dirck
+diretto
+dirienzo
+dirilten
+dirk
+dis
+disalvo
+discenza
+discours
+discover
+disessa
+disher
+dishong
+disisto
+disney
+dispatch
+dissinge
+distribu
+dita
+ditecco
+ditko
+dittburn
+divyesh
+dix
+dixie
+dixon
+djavaher
+djenana
+djordje
+djuan
+dmaac
+dmitri
+dms
+dmsdb
+dmsrtime
+dmuchals
+dnadoc
+dniren
+dnsproj
+do
+doak
+doan
+dobbing
+dobbins
+dobbs
+dobby
+doble
+dobransk
+dobrosla
+dobry
+doc
+docherty
+dockendo
+doctorjo
+document
+doczy
+doda
+dodd
+dodds
+dode
+dodgson
+dodi
+dodie
+dodier
+dodman
+dodson
+dody
+doe
+doemer
+doerfel
+doerksen
+doernber
+doerr
+doggett
+dohan
+doherty
+doi
+doig
+doing
+dokken
+dokuzogu
+dolan
+dolezal
+dolf
+dolginof
+dolgov
+doliska
+doll
+dolley
+dolli
+dollie
+dolly
+dolores
+dolorita
+dolph
+dolson
+dom
+domains
+domanico
+domas
+dombrosk
+domenic
+domenick
+domenico
+domeniga
+dominado
+domine
+dominga
+domingo
+domingue
+domini
+dominic
+dominica
+dominick
+dominik
+dominiqu
+dommety
+don
+dona
+donaghue
+donahee
+donahue
+donak
+donal
+donald
+donaldso
+donall
+donalt
+donator
+donaugh
+donavon
+doncaste
+doncell
+donegan
+donelan
+donella
+donelle
+donetta
+dong
+dong-ik
+dong-moo
+dong-pyo
+dongik
+dongmoon
+dongpyo
+donia
+donica
+donielle
+donis
+donita
+donkers
+donleyco
+donlon
+donn
+donna
+donnajea
+donnamar
+donne
+donnell
+donnelly
+donner
+donnette
+donni
+donnice
+donnie
+donny
+donoghue
+donohoe
+donohue
+donovan
+dood
+doodeman
+dooley
+doolin
+doolittl
+door
+doortje
+dora
+doraine
+dorais
+doraiswa
+doralia
+doralie
+doralin
+doralyn
+doralynn
+doran
+doray
+dordari
+dorden
+dore
+doreen
+dorelia
+dorella
+dorelle
+dorena
+dorene
+doretta
+dorette
+dorey
+dori
+doria
+dorian
+dorianne
+dorice
+dorie
+dorin
+dorine
+dorion
+dorion-m
+doriot
+doris
+doris-ha
+dorisa
+dorise
+dorit
+dorita
+dormer
+dorn
+dornback
+doro
+dorolice
+dorolisa
+dorotea
+doroteya
+dorothea
+dorothee
+dorothy
+dorotich
+dorr
+dorra
+dorree
+dorreen
+dorrell
+dorri
+dorrie
+dorris
+dorronso
+dorry
+dorsey
+dorthea
+dorthy
+dorval
+dory
+dosanjh
+dosenbac
+doshi
+dosi
+doskas
+dosref
+doss
+dost
+dot
+dotan
+doti
+dotsey
+dotson
+dotti
+dottie
+dottin
+dotty
+doublesi
+doucet
+doucette
+doud
+douet
+doug
+dougall
+doughert
+doughty
+dougie
+douglas
+douglass
+dougy
+dourley
+douville
+dov
+dovel
+dover
+dovydait
+dow
+dowd
+dowding
+dowdy
+dowell
+dower
+dowjones
+dowker
+dowling
+downer
+downes
+downey
+downing
+downs
+dowse
+dowser
+doy
+doyle
+doyon
+dpierre
+dpn
+dpnbuild
+dpnis
+dpnlab
+dpnq&a
+dpp
+dpu
+dr.jones
+dr.seuss
+drabek
+drachman
+draco
+dracula
+draffin
+dragan
+dragana
+dragert
+dragnea
+drago
+draier
+drakage
+drake
+drako
+drane
+dransfie
+draper
+drappel
+draves
+dray
+drayton
+dre
+dreddy
+dredi
+dreisbac
+drenan
+drennan
+drescher
+dresel
+dresser
+dressler
+drew
+drewes
+drexel
+dreyfus
+dreyfuss
+driedger
+drieka
+drinnan
+driscoll
+drissel
+driver
+drjones
+drobnik
+drolet
+dromgool
+drona
+drop-box
+dropin
+droste
+drouin
+drseuss
+dru
+drubld
+druci
+drucie
+drucill
+drucy
+drud
+drudy
+drugi
+drugs
+drumhell
+drumm
+drummer
+drummond
+drusi
+drusie
+drusilla
+drusy
+druzeta
+drwiega
+dryer
+dryfoos
+drynan
+du berge
+du-tuan
+duan
+duane
+dube
+dubeau
+dubee
+dubey
+dubman
+dubois
+dubose
+dubreck
+dubreuil
+dubroff
+dubroy
+dubuc
+duc
+duchaine
+ducharme
+duchesne
+ducic
+dud
+duda
+dudas
+dude
+dudgeon
+dudley
+dueck
+duenas
+duensing
+dueppen
+duer
+duff
+duffie
+duffin
+duffney
+dufford
+duffy
+dufloth
+dufour
+dufresne
+dugal
+dugald
+dugar
+dugas
+duggan
+duguay
+duisman
+duke
+dukes
+dukey
+dukie
+duky
+dula
+dulaney
+dulce
+dulcea
+dulci
+dulcia
+dulciana
+dulcie
+dulcine
+dulcinea
+dulcy
+dulin
+duljit
+dulmage
+dulsea
+dulude
+dumais
+dumas
+dummer
+dumont
+dumouche
+dumps
+dun
+dunajski
+dunbar
+dunc
+duncan
+duncan-s
+dundin
+dunfield
+dung
+dungan
+dunham
+dunik
+dunkelma
+dunker
+dunlap
+dunlay
+dunlop
+dunmore
+dunn
+dunne
+dunnett
+dunning
+dunningh
+dunnion
+dunphy
+dunsmore
+dunson
+dunstan
+duong
+dupaul
+duplacey
+duplan
+dupont
+dupras
+dupre
+dupree
+dupuis
+dupuis-m
+dupuy
+duquette
+dur
+durali
+duran
+durand
+durant
+durantay
+durante
+durham
+durie
+durling
+durnford
+durose
+durousse
+durovic
+durrell
+dursse
+durward
+duryonna
+dusan
+dusko
+dusomos
+duster
+dusty
+dutch
+dutcher
+duthie
+dutil
+dutt
+dutta
+duvarci
+duxbury
+duy
+duyck
+dvm
+dvs
+dwain
+dwaine
+dwayne
+dwight
+dwyer
+dyan
+dyana
+dyane
+dyann
+dyanna
+dyanne
+dyba
+dybenko
+dyck
+dyckman
+dyess
+dyke
+dylan
+dyment
+dyna
+dynah
+dynie
+dyrdahl
+dysart
+dyson
+dziamba
+dziawa
+dziemian
+dzioba
+dzulkarn
+dzung
+eachelle
+eada
+eades
+eadie
+eadith
+eadmund
+eagle
+eagles
+eakes
+eakins
+eal
+ealasaid
+eales
+eamon
+eamonn
+eansor
+earl
+earle
+earlene
+earles
+earley
+earlie
+earline
+early
+earnest
+earnhard
+earnie
+earps
+eartha
+earvin
+easaw
+eason
+easson
+easter
+easterli
+eastick
+eastland
+eastman
+easton
+eastreg
+eastus
+eastwood
+eaton
+eaves
+eb
+eba
+ebara
+ebata
+ebba
+ebbingha
+eben
+ebeneser
+ebenezer
+eberhard
+eberle
+eberlin
+ebert
+eberto
+ebonee
+ebony
+ebrahim
+eby
+echols
+eckardt
+ecker
+eckert
+eckhart
+eckler
+ecklund
+eckstein
+ecocafe
+econ
+ecroyd
+ed
+eda
+edan
+edd
+eddi
+eddie
+eddins
+eddisfor
+eddy
+ede
+edee
+edel
+edeline
+edelman
+eden
+eder
+edey
+edgar
+edgard
+edgardo
+edgette
+edgreen
+edi
+edie
+edif
+edik
+edin
+edison
+edistix
+edita
+edith
+editha
+edithe
+ediva
+edkins
+edlene
+edlin
+edmison
+edmon
+edmond
+edmonds
+edmondso
+edmonton
+edmund
+edmundo
+edmunds
+edmx
+edmxtest
+edna
+edouard
+edric
+edsel
+eduard
+eduardo
+educatio
+eduino
+edvard
+edward
+edwards
+edwige
+edwin
+edwina
+edwins
+edy
+edyta
+edyth
+edythe
+efdal
+effie
+efland
+efrain
+efrem
+efren
+efron
+efstrati
+efthim
+efthimio
+eftychio
+egan
+egashira
+egbert
+egdorf
+egerman
+eggebraa
+eggers
+eggersgl
+eggleton
+egional
+egli
+egne
+egner
+egon
+egor
+ehab
+ehi
+ehlers
+ehninger
+ehrenfri
+ehrenhol
+ehrlich
+ehrlichm
+eicher
+eide
+eierstoc
+eiji
+eike
+eiki
+eiko
+eileen
+eilis
+eimer
+eimile
+einarsso
+einersen
+einstein
+einwohne
+eirena
+eirik
+eisele
+eisen
+eisenach
+eisenber
+eisenhar
+eisler
+eisner
+eisnor
+eiswirth
+eitner
+ekaterin
+ekiert
+el
+el-am
+el-gueba
+el-hawar
+el-torky
+eladio
+elaina
+elaine
+elam
+elana
+elane
+elayne
+elbert
+elberta
+elbertin
+elbeze
+elbi
+elchakie
+elda
+elden
+eldin
+eldon
+eldoris
+eldredge
+eldreth
+eldridge
+eleanor
+eleanora
+eleanore
+elec
+electra
+electric
+electron
+eleen
+elefteri
+elefther
+elena
+elene
+eleni
+elenore
+eleonora
+eleonore
+elery
+eleta
+elex
+eley
+elfie
+elfreda
+elfredia
+elfrida
+elfrieda
+elga
+elgar
+elgie
+elgin
+elhage
+elhamahm
+elhamy
+eli
+elia
+elianora
+elianore
+elias
+elicia
+elie
+eliezer
+elihu
+elijah
+elin
+eline
+elinor
+elinore
+elio
+eliot
+elisa
+elisabet
+elise
+eliseo
+elisha
+elissa
+elita
+eliud
+eliza
+elizabet
+elizalde
+elka
+elkaim
+elke
+elkhayat
+elkind
+elkingto
+elkins
+elks
+ella
+ellacott
+elladine
+ellary
+elle
+elledge
+elleke
+ellement
+ellen
+ellene
+ellens
+eller
+ellerey
+ellerman
+ellery
+ellette
+elli
+ellie
+ellinger
+ellingto
+elliot
+elliott
+ellis
+ellison
+ellissa
+ello
+ellryne
+ellswert
+ellswort
+ellul
+ellwood
+elly
+ellyn
+ellynn
+elmar
+elmer
+elmira
+elmo
+elmore
+elms
+elna
+elnar
+elnora
+elnore
+eloisa
+eloise
+elonore
+elora
+elpida
+elroy
+els
+elsa
+elsbeth
+else
+elset
+elsey
+elsi
+elsie
+elsing
+elsinore
+elson
+elspeth
+elston
+elsworth
+elsy
+elting
+elton
+eluned
+elva
+elvera
+elvert
+elvin
+elvina
+elvira
+elvis
+elvyn
+elwin
+elwira
+elwood
+elwyn
+ely
+elyn
+elyse
+elysee
+elysha
+elysia
+elyssa
+elza
+elzbieta
+elzer
+em
+ema
+emad
+emalee
+emalia
+emami
+emanatia
+emanuel
+emanuele
+emdin-sp
+emelda
+emelen
+emelia
+emelina
+emeline
+emelita
+emelyne
+emer
+emera
+emerick
+emerson
+emery
+emesh
+emhart
+emig
+emil
+emilda
+emile
+emilee
+emili
+emilia
+emilie
+emilien
+emiline
+emilio
+emilios
+emily
+emlen
+emlyn
+emlynn
+emlynne
+emma
+emmalee
+emmaline
+emmalyn
+emmalynn
+emmanuel
+emmeline
+emmell
+emmerich
+emmersto
+emmert
+emmery
+emmet
+emmett
+emmey
+emmi
+emmie
+emmit
+emmons
+emmott
+emmy
+emmye
+emogene
+emond
+emory
+emowilli
+emp
+empdb
+employee
+emr
+emran
+emrick
+emro
+emyle
+emylee
+emysta
+encomend
+endang
+ende
+endenbur
+enderle
+enders
+enderton
+endicott
+endless
+endot
+endrys
+endsley
+enet
+eng
+eng-sion
+engbert
+engel
+engelber
+engelbre
+engelhar
+engin
+engineer
+england
+englande
+engle
+engleber
+englebri
+engleman
+englert
+english
+engman
+engr
+engracia
+engsiong
+engtv
+enid
+enis
+ennis
+enno
+enns
+enoch
+enos
+enrica
+enrichet
+enrico
+enrika
+enrique
+enriquet
+ensign
+ensing
+ensminge
+ensor
+enstone
+entwistl
+enver
+environm
+envoy
+enzo
+eoin
+eolanda
+eolande
+eow
+eperjesy
+ephraim
+ephrayim
+ephrem
+eppensti
+epperson
+eppich
+epplett
+epps
+eprom
+epstein
+epting
+eran
+erasmus
+erastus
+erbach
+erbilgin
+erda
+erdem
+erdinc
+erek
+erena
+erfani
+ergle
+erguven
+erh-huan
+erhard
+erhart
+erhhuan
+eric
+erica
+erich
+ericha
+erichsen
+erick
+ericka
+erickson
+erics
+ericsson
+erie
+erik
+erika
+eriks
+eriksson
+erin
+erina
+erine
+erinn
+erinna
+erkan
+erkel
+erl
+erland
+erle
+erlene
+erler
+erling
+erma
+ermanno
+ermarkar
+ermengar
+ermentru
+ermey
+ermin
+ermina
+erminia
+erminie
+ermo
+erna
+ernaline
+ernest
+ernesta
+ernestin
+ernesto
+ernestus
+ernie
+erning
+ernst
+erny
+eroler
+eros
+errchend
+errick
+errol
+erroll
+ersch
+ersil
+erskine
+ertan
+ertha
+ertl
+erv
+ervi
+ervin
+erwei
+erwin
+erwing
+eryn
+erzsebet
+es
+esam
+esc
+esch
+eschen
+escher
+escherma
+escobedo
+escobido
+escutin
+esdras
+esgate
+esguerra
+eshelman
+eshghi
+esi
+esite
+eskew
+eskiciog
+eskildse
+esko
+eslambol
+esler
+esliger
+esma
+esmail
+esmaili
+esmaria
+esme
+esmerald
+esmond
+esparza
+espenson
+espinosa
+espinoza
+esposito
+espuna
+esra
+esry
+essa
+essam
+esselbac
+esser
+essery
+essie
+essig
+esson
+essy
+esta
+estabroo
+este
+esteban
+estegham
+estel
+estele
+estell
+estella
+estelle
+estep
+ester
+estes
+estevam
+estevan
+estey
+esther
+estrella
+estrelli
+estridge
+eswara
+etan
+etas
+etchieso
+etemad
+eteminan
+ethan
+ethe
+ethel
+ethelber
+ethelda
+ethelin
+ethelind
+etheline
+ethelred
+ethelyn
+ethier
+ethingto
+ethnolog
+ethyl
+etienne
+etoh
+etta
+etten
+etti
+ettie
+ettore
+ettridge
+ettson
+etty
+etu
+etzell
+eu
+eubanks
+euclid
+eudora
+euell
+eugen
+eugene
+eugenia
+eugenie
+eugenio
+eugenius
+eugine
+eula
+eulalie
+euler
+eunchae
+eung
+euni
+eunice
+eunji
+euphemia
+eustace
+eustacia
+eustis
+euy-soo
+euysoo
+euysung
+ev
+eva
+evaleen
+evalyn
+evan
+evandro
+evangeli
+evangelo
+evania
+evanne
+evans
+evanston
+eve
+eveleen
+eveleigh
+evelien
+evelin
+evelina
+eveline
+evely
+evelyn
+evelyne
+even
+evenson
+events
+everard
+evered
+everett
+everette
+everitt
+evers
+evert
+evette
+evey
+evia
+evie
+evin
+evita
+evon
+evona
+evonne
+evraire
+evren
+evvie
+evvy
+evy
+evyn
+ewald
+ewan
+ewanchyn
+eward
+ewart
+ewasyshy
+ewell
+ewen
+ewing
+exner
+ext
+eyde
+eydie
+eyers
+eyk
+ezechiel
+ezekiel
+ezella
+ezequiel
+eziechie
+ezmerald
+ezra
+ezri
+ezzat
+fab
+fabe
+fabella
+faber
+fabian
+fabiano
+fabien
+fabienne
+fabijani
+fabio
+fabris
+fabrizio
+fabry
+facchett
+facility
+fadel
+fadhel
+fadi
+fadj
+fadlalla
+fady
+fadzilah
+fae
+faez
+fafa
+fafara
+fagan
+fagg
+fagin
+fahey
+fahim
+fahrenth
+fahy
+fai
+faina
+fainaru
+fainecos
+faiq
+fair
+fairclou
+fairfax
+fairfiel
+fairleig
+fairless
+fairlie
+fairman
+fairy
+faisal
+faison
+fait
+faith
+faiz
+faizal
+fajardo
+falaki
+falardea
+falbee
+falcao
+falconer
+faletti
+faley
+falicov
+falito
+falke
+falkenst
+falkner
+fallah
+fallahi
+falletti
+fallis
+fallon
+fallows
+falquero
+falt
+faltens
+fambroug
+familiad
+famke
+fan
+fanchett
+fanchi
+fanchon
+fancie
+fancy
+fanechka
+fang
+fangio
+fani
+fania
+fann
+fanner
+fanni
+fannie
+fanny
+fansher
+fantauzz
+fanthome
+fanty
+fanus
+fanya
+faou
+far
+fara
+faraday
+farag
+farago
+farah
+farahvas
+faramarz
+farand
+farant
+fares
+fargis
+fargo
+farhad
+farhan
+farhang
+farhat
+farias
+fariba
+fariborz
+farica
+farid
+faris
+farlay
+farlee
+farleigh
+farley
+farlie
+farly
+farmer
+farn
+farnham
+farnjeng
+farnswor
+farnum
+farokh
+farooa
+farooq
+farouk
+farquhar
+farr
+farra
+farrah
+farrand
+farranto
+farrel
+farrell
+farren
+farringt
+farris
+farrokh
+farronat
+farrow
+farrukh
+farshid
+faruk
+faruque
+farzad
+farzin
+fasken
+fast
+fastfeat
+fastmer
+fastone
+fastowl
+fastpack
+fataneh
+fater
+fatholla
+fatica
+fatima
+fattarus
+fattouh
+faubert
+faucette
+faucher
+faulhabe
+faulkner
+faun
+faunie
+faust
+faustina
+faustine
+fausto
+faustus
+favell
+favreau
+favrot
+fawaz
+fawcett
+fawn
+fawne
+fawnia
+fax
+fay
+fayanne
+faydra
+faye
+fayette
+fayez
+fayina
+fayma
+fayre
+fayth
+faythe
+faz
+fazel
+fearless
+featherm
+feddeman
+fedderse
+feder
+federica
+federico
+federiko
+fedora
+fedoruk
+fedyk
+fee
+feeley
+feeney
+fehr
+fei
+fei-wen
+fei-yin
+feil
+feild
+feisal
+feist
+feitel
+feith
+feiwen
+fekade
+fekri
+felczak
+feld
+feldberg
+felder
+feldman
+felecia
+felfli
+felic
+felicdad
+felice
+felicett
+felicia
+felicio
+felicity
+felicle
+felike
+feliks
+felipa
+felipe
+felisha
+felita
+felix
+feliza
+felizio
+felli
+fellman
+felske
+feltman
+felton
+femke
+fenati
+fender
+fenelia
+fenez
+feng
+fenlason
+fenn
+fennell
+fenner
+fennesse
+fenton
+fenwick
+feodor
+feodora
+fequiere
+ferba
+ferd
+ferdie
+ferdinan
+ferdy
+feregyha
+fereidoo
+ferelith
+ferenc
+ference
+ferenz
+fererro
+fergus
+ferguson
+fergusso
+feridoun
+ferland
+fermat
+fermi
+fermoyle
+fern
+fernald
+fernan
+fernand
+fernanda
+fernande
+fernandi
+fernando
+ferne
+ferner
+ferrao
+ferrara
+ferraro
+ferree
+ferreira
+ferrel
+ferrell
+ferrer
+ferrero
+ferriera
+ferrin
+ferris
+ferriss
+ferro
+ferruzzi
+ferstl
+fetterma
+fetting
+fetzko
+feutlins
+fevre-re
+fey
+feyen
+feynman
+fi-john
+fiann
+fianna
+fiaz
+ficco
+ficici
+ficken
+ficker
+fickes
+fidel
+fidela
+fidelia
+fidelio
+fidelity
+fidole
+fiegel
+fieke
+field
+fielden
+fielding
+fields
+fieldsup
+fierthal
+fiest
+fifi
+fifield
+fifine
+figura
+fijohn
+fikis
+fikre
+fil
+filbert
+filberte
+filberto
+fildey
+filer
+files
+files ar
+filia
+filibert
+filide
+filion
+filip
+filippa
+filippi
+filippo
+filis
+filkins
+fillmore
+filmer
+filmore
+filpus
+filson
+fima
+fin
+fina
+finak
+finance
+finane
+finckler
+findlay
+findley
+finkhels
+finlay
+finlayso
+finley
+finn
+finnegan
+finnerty
+finney
+finnie
+finnigha
+finnon
+fintan
+finucane
+finzel
+fiona
+fionan
+fionna
+fionnula
+fiore
+fiorenze
+fiorile
+firas
+firat
+firdaus
+firerobi
+firment
+firtos
+fischer
+fischett
+fischler
+fiset
+fisette
+fishenco
+fisher
+fishkin
+fishman
+fisico
+fisopn
+fisprod
+fiszman
+fitch
+fiteny
+fitness
+fitz
+fitzgera
+fitzgibb
+fitzpatr
+fitzroy
+fitzsimm
+fixsen
+flach
+flagg
+flaherty
+flanagan
+flanders
+flann
+flanner
+flansbur
+flatley
+fleet
+fleig
+fleische
+fleishma
+flem
+fleming
+flemming
+fleskes
+fletch
+fletcher
+fleuchau
+fleugel
+fleur
+fleurett
+fleurima
+fleury
+flewelli
+flexo
+flicking
+flin
+flindall
+flinn
+flint
+flintall
+flo
+floch
+flook
+flookes
+flor
+flora
+florance
+florante
+flore
+florella
+florence
+florenci
+florenti
+florenza
+flores
+florescu
+florette
+florez
+flori
+floria
+florian
+florida
+florie
+florina
+florinda
+florine
+floris
+florjanc
+florri
+florrie
+florry
+flory
+flossi
+flossie
+flossy
+flounder
+flowers
+floyd
+floysvik
+flss
+fludgate
+flueckin
+fluet
+fluney
+flury
+fluty
+flying
+flynn
+foad
+fobert
+focht
+focsanea
+focus
+fodell
+foderaro
+foeppel
+foessl
+foest
+fogelson
+foght
+fogle
+fogleman
+fok
+folashad
+foldes
+foley
+follett
+follick
+follmer
+folwell
+fon
+fondacar
+fong
+fonnie
+fons
+fonsie
+fontaine
+fontana
+fontanil
+fontanin
+fony
+fonz
+fonzie
+foods
+foong
+foos
+forbes
+forbrich
+forbs
+ford
+forden
+fordham
+forecast
+foreman
+forese
+forest
+forester
+forgeron
+forghani
+forgues
+forland
+formagie
+forno
+forouhar
+forrest
+forreste
+forrette
+forslund
+forst
+forster
+forsythe
+fortes
+fortier
+fortman
+fortner
+foss
+foster
+fothergi
+fotini
+fouad
+foubert
+foucault
+fouchard
+fougere
+fouillar
+fouke
+fouletie
+foulkes
+four
+fouret
+fourier
+fourkas
+fournel
+fourney
+fournier
+fouts
+fowler
+fowler-h
+fowles
+fowlkes
+fowlston
+fox
+foxworth
+fpsched
+fqa
+fraanky
+fradette
+fragnito
+fraley
+fralick
+fralix
+frampton
+fran
+franc
+france
+francene
+frances
+francesc
+francese
+franchot
+francic
+francine
+francis
+francisc
+francisk
+francisp
+franckli
+franckly
+francky
+franco
+francoeu
+francois
+francyne
+frangoul
+franics
+frank
+franka
+frankcom
+frankenb
+franki
+frankie
+frankle
+franklin
+franklyn
+frankos
+franks
+franky
+franni
+frannie
+franny
+frans
+fransis
+fransisc
+frantise
+frants
+frantz
+franz
+franza
+franze
+franzen
+franzky
+franzwa
+frape
+frasco
+fraser
+frasier
+frasquit
+fraties
+frayda
+fraze
+frazer
+frazier
+fred
+freda
+freddi
+freddie
+freddy
+fredek
+fredelia
+fredenbu
+frederic
+frederig
+frederik
+frederiq
+fredette
+fredi
+fredia
+fredimos
+fredine
+fredra
+fredric
+fredrick
+fredrika
+fredriks
+free
+freeburn
+freedman
+freek
+freeland
+freeley
+freeman
+freemand
+freemon
+freeth
+freiberg
+freida
+freimark
+freire
+freiwald
+freixe
+freksa
+fremont
+french
+frendo
+frenette
+freno
+fretz
+freud
+frey
+freya
+freyermu
+freyler
+frezzo
+fricker
+fricks
+fridel
+frie
+frieda
+friedber
+frieder
+friederi
+friedl
+friedlan
+friedman
+friedric
+frierson
+friesen
+frinel
+frink
+frisa
+frischkn
+frischli
+frisk
+friton
+fritz
+fritzie
+frizado
+frobel
+froberg
+frobishe
+frodsham
+froehlic
+froncek
+frondozo
+fronsee_
+fross
+frosst
+froud
+froukje
+frucci
+fruehauf
+frumerie
+fruscia
+fryar
+frydach
+frydman
+fryer
+fscocos
+fssup
+ftpsites
+fu
+fu-sheng
+fu-shin
+fu-zong
+fuchs
+fucito
+fugen
+fujii
+fujimaki
+fujimoto
+fujiwara
+fukui
+fukumoto
+fukunaga
+fulford
+fulk
+fulkerso
+fullager
+fuller
+fullmer
+fullum
+fulmer
+fulton
+fulvia
+fumerton
+fumio
+funamoto
+funderbu
+fung
+funston
+fuping
+fuqua
+furdoonj
+furgerso
+furlin
+furlow
+furmania
+furnas
+furrukh
+furst
+furuta
+fusca
+fusheng
+fuson
+fussell
+fuzal
+fuzong
+fwp
+fwpas
+fwpco
+fwpreg
+fwptools
+fyfe
+fysh
+fyske
+gaal
+gabato
+gabbai
+gabbard
+gabbey
+gabbi
+gabbie
+gabby
+gabe
+gabey
+gabi
+gabie
+gaboury
+gabriel
+gabriela
+gabriele
+gabriell
+gabrila
+gaby
+gach
+gaconnie
+gadbois
+gadher
+gadouchi
+gadsby
+gadzinow
+gae
+gaebel
+gael
+gaelan
+gaertner
+gaetan
+gaetanin
+gaetano
+gaffney
+gafford
+gaftea
+gagan
+gage
+gagne
+gagnier
+gagnon
+gahan
+gahir
+gahlot
+gahn
+gahr
+gahunia
+gaiarsa
+gaiger
+gail
+gaile
+gailya
+gaime
+gainer
+gaines
+gaiotti
+gaiser
+gaitan
+gaither
+gajendra
+gajewski
+gajowiak
+gal
+galanaki
+galasso
+galbrait
+galdwin
+gale
+gale
+galen
+galewski
+galina
+galipeau
+gallaghe
+gallais
+gallard
+gallegos
+gallenbe
+galligan
+gallinge
+gallion
+gallman
+gallo
+gallops
+gallouzi
+galloway
+galluzzi
+galois
+galt
+galvan
+galven
+galvez
+galvin
+gama
+gamal
+gamaleld
+gamaliel
+gamarnik
+gambrell
+gamelin
+gammage
+gamsa
+gan
+ganadry
+ganapath
+gandhi
+gane
+ganesan
+ganesh
+ganeshku
+gangnes
+gangotra
+ganguly
+gani
+gann
+ganness
+gannett
+gannie
+gannon
+gannot
+ganny
+gans
+gant
+gantt
+gapp
+gar
+gara
+garald
+garamvol
+garan
+garand
+garay
+garbis
+garbish
+garcia
+garcia-l
+garcia-m
+gard
+gardener
+gardie
+gardiner
+gardner
+gardy
+gare
+garee
+gareis
+garek
+gareth
+garey
+garfield
+garg
+garguilo
+gargul
+gargulak
+garik
+garinger
+garito
+garland
+garmon
+garneau
+garner
+garnet
+garnett
+garnette
+garney
+garo
+garold
+garp
+garrard
+garrek
+garret
+garreth
+garrett
+garrick
+garrik
+garrot
+garrott
+garry
+garth
+gartley
+gartshor
+garv
+garvey
+garvin
+garvy
+garwin
+garwood
+gary
+gascho
+gascon
+gasikows
+gaskins
+gaspar
+gaspard
+gasparo
+gasparot
+gasper
+gass
+gast
+gaston
+gasul
+gateau
+gateley
+gater
+gates
+gateway
+gatka
+gattrell
+gau-rong
+gaube
+gaudet
+gaudet-m
+gaudon
+gaudreau
+gaughan
+gaul
+gaulle
+gault
+gaultier
+gaunsezl
+gaurong
+gause
+gauss
+gautam
+gauthier
+gav
+gavan
+gaven
+gavens
+gavidia
+gavilluc
+gavin
+gavra
+gavriel
+gavriell
+gawain
+gawargy
+gawdan
+gawen
+gawronsk
+gawtrey
+gay
+gaye
+gayel
+gayelord
+gayl
+gayla
+gayle
+gayleen
+gaylene
+gayler
+gaylor
+gaylord
+gayman
+gaynor
+gayronza
+gazala
+gazier
+gazo
+gdowik
+ge
+geadah
+gean
+gearalt
+gearard
+geary
+gebhardt
+gebhart
+gebrael
+gedas
+geddes
+gedeon
+gedman
+gedra
+gedye
+gee
+gee-meng
+geer
+geert
+geesman
+geeta
+geetha
+geety
+gehm
+gehr
+gehring
+geiger
+geir
+geisler
+geksong
+gelais
+geldrez
+gelinas
+gell
+geller
+gelling
+gelo
+gelya
+gemmill
+gen
+gena
+genae
+gendre
+gendron
+gene
+geneau
+general
+generalc
+generato
+genet
+geneva
+geneviev
+genevra
+genga
+genge
+genia
+genie
+genna
+gennaro
+genni
+gennie
+gennifer
+genny
+geno
+genova
+genovera
+genovise
+genowefa
+gentes
+gentzler
+genvieve
+geoff
+geoffrey
+geoffrio
+geoffry
+georas
+geordie
+georg
+georgann
+george
+georgean
+georgena
+georges
+georgesc
+georgeta
+georgett
+georghio
+georgi
+georgia
+georgian
+georgie
+georgina
+georgine
+georgio
+georgiou
+georgy
+ger
+gera
+gerald
+geralda
+geraldin
+geralene
+gerard
+gerardja
+gerardo
+gerassim
+gerbec
+gerben
+gerber
+gerda
+gerek
+gerenser
+gergen
+gerhard
+gerhardi
+gerhardt
+gerhart
+geri
+gerianna
+gerianne
+gerick
+gerik
+gerladin
+gerlich
+gerlinsk
+gerlt
+germ
+germain
+germaine
+germana
+germano
+germayne
+germe
+gernot
+gerome
+gerrard
+gerri
+gerrie
+gerrilee
+gerrit
+gerritse
+gerry
+gershwin
+gerstmar
+gert
+gerta
+gerth
+gerti
+gertie
+gertridg
+gertrud
+gertruda
+gertrude
+gertrudi
+gerty
+gervais
+gervaise
+gery
+gerynowi
+gesine
+gesino
+gessford
+getchell
+getoor
+gettys
+geuder
+gewell
+geyer
+geza
+ghadisha
+ghaemi
+ghaemian
+ghaffari
+ghandi
+ghanem
+ghangurd
+ghani
+ghantous
+ghartey
+ghasemia
+ghassan
+ghassem
+ghatta
+ghazi
+gheciu
+ghelardu
+gheorghe
+gherardo
+ghidali
+ghislain
+ghobad
+gholamre
+ghorashy
+ghosh
+ghossein
+ghulam
+ghulati
+gia
+giacinta
+giacobo
+giacomo
+giacopo
+giallo
+giamatte
+giambatt
+giambera
+giampaol
+gian
+giana
+giandome
+giang
+giani
+gianina
+gianna
+gianni
+giao
+giap
+giarritt
+giavani
+gib
+gibb
+gibbie
+gibbins
+gibbons
+gibbs
+gibby
+gibeault
+giblin
+gibson
+gidaro
+gideon
+gidget
+gie-ming
+giekes
+gieming
+gierka
+giertych
+giesbrec
+gieschen
+giese
+giff
+giffard
+giffer
+giffie
+gifford
+giffy
+giggey
+gigi
+giguere
+gigus
+gihan
+gihyun
+gil
+gilbert
+gilberta
+gilberte
+gilberti
+gilberto
+gilberts
+gilburt
+gilchris
+gilda
+gilemett
+giles
+giliham
+gill
+gillan
+gillard
+gille
+gillelan
+gilles
+gillespi
+gillespy
+gillet
+gillette
+gilli
+gilliam
+gillian
+gilliard
+gillie
+gillies
+gillig
+gilligan
+gillilan
+gillis
+gillon
+gillot
+gillstro
+gilly
+gilmore
+gilmour
+gilstorf
+gimon
+gin
+gina
+ginelle
+ginest
+ginette
+ginetto
+ginevra
+ginger
+gingeric
+gingold
+gingras
+gingrich
+gini
+ginn
+ginni
+ginnie
+ginnifer
+ginny
+gino
+ginsberg
+gint
+gintaras
+ginzburg
+gio
+gioffre
+gionet
+giordano
+giorgi
+giorgia
+giorgio
+giorgos
+giotis
+giovanna
+giovanni
+giovinaz
+gipsy
+giralda
+giraldo
+girard
+giraud
+girgis
+giri
+giridhar
+girish
+girotti
+girouard
+giroux
+girvan
+gisbert
+gisela
+giselber
+gisele
+gisella
+giselle
+gita
+gittins
+giuditta
+giuhat
+giulia
+giuliani
+giuliett
+giulio
+giuntini
+giuseppe
+giustina
+giustino
+giusto
+gize
+gizela
+glad
+gladi
+gladstei
+gladys
+glancey
+glanfiel
+glaros
+glasa
+glaser
+glasgow
+glass
+glasser
+glast
+glaszcza
+glazer
+gleason
+gleda
+gleditsc
+glembosk
+glen
+glenda
+glenden
+glendon
+glenine
+glenn
+glenna
+glennie
+glennis
+glew
+glickman
+glidewel
+glinka
+glinski
+glofches
+glori
+gloria
+gloriana
+gloriane
+glornia
+glory
+glover
+glowa
+glucksma
+glymph
+glyn
+glynda
+glynis
+glynn
+glynnis
+gnaeding
+gnni
+go
+goangshi
+goatcher
+goba
+gobeil
+gobeli
+goble
+gockel
+godard
+godart
+godcharl
+goddard
+goddart
+godden
+goddette
+godfree
+godfrey
+godfry
+godin
+godina
+godish
+godiva
+godley
+godlingt
+godo
+godowsky
+godse
+godsoe
+godwin
+goei
+goel
+goell
+goeltzen
+goerss
+goertz
+goertzen
+goethe
+goetz
+goff
+gofron
+goggin
+goh
+goheen
+goin
+goins
+gokal
+gokul
+gokul-ch
+golari
+golas
+golaszew
+golczews
+golda
+goldarin
+goldberg
+goldenbe
+goldenso
+golder
+goldfiel
+goldi
+goldia
+goldie
+goldina
+goldman
+goldmann
+goldner
+goldschm
+goldstei
+goldthor
+goldwyn
+goldy
+golia
+goliss
+golka
+goller
+gollu
+golshan
+gombos
+gomes
+gomez
+gomm
+gong-lia
+gonglian
+goniotak
+gonsalve
+gonzaga
+gonzales
+gonzalez
+gonzalo
+goober
+gooch
+goodbar
+goode
+gooderha
+goodfell
+goodier
+goodinso
+goodman
+goodner
+goodridg
+goodrow
+goodson
+goodwin
+goofy
+goold
+gooley
+goos
+gopal
+gopaul
+gope
+gopisett
+goran
+gorasia
+goraud
+gorberg
+gord
+gordan
+gorde
+gorden
+gordie
+gording
+gordon
+gordy
+gorenflo
+gores
+gorfine
+gorham
+gorhum
+goricane
+goridkov
+goring
+gorius
+gorlick
+gorman
+gorsky
+gorton
+gorzocos
+goska
+goss
+gosselin
+gosset
+gostania
+goswick
+goszczyn
+gotch
+gotchall
+goth
+gothard
+gothart
+gottfrie
+gottlieb
+gottscha
+gottstei
+gou-don
+goudon
+goudreau
+gougeon
+gough
+gouhara
+goukon
+gould
+gouldson
+goulet
+goulette
+goulfine
+goupil
+gourley
+goutam
+govind
+govindan
+govindar
+govindas
+gow-jen
+gowan
+gowda
+gowens
+gower
+gowin
+gowjen
+gowl
+gowland
+goyal
+goyer
+goyette
+goza
+gozani
+gozen
+grabner
+grabowsk
+grace
+gracen
+gracey
+gracia
+gracie
+graciela
+gracinda
+gracomda
+gradeigh
+grader
+gradey
+grading
+grads
+grady
+graehme
+graeme
+graessle
+graff
+grafton
+graham
+graibe
+graig
+grainger
+gram
+graman
+grame
+gramiak
+gran
+granado
+granata
+grandboi
+grande
+grandmas
+grandump
+grandy
+granfiel
+grange
+granger
+granic
+granner
+grannie
+granny
+grant
+grantham
+granthem
+grantley
+granvill
+graphics
+grasman
+grason
+grassman
+grata
+gratia
+gratiana
+gratton
+grau
+grauer
+grausso
+gravelle
+gravely
+graver
+graves
+gravitt
+gravitte
+grawberg
+gray
+graybill
+grayce
+graydon
+grayson
+grazia
+graziano
+grazzini
+greaney
+greatest
+greaver
+greaves
+grebil
+grebner
+greco
+greeley
+greenber
+greene
+greenfie
+greenlee
+greenstr
+greenway
+greer
+greet
+greg
+gregaric
+greger
+gregg
+gregge
+greggory
+grego
+gregoire
+gregoor
+gregor
+gregor-p
+gregorio
+gregoriu
+gregorsk
+gregory
+grelck
+grenier
+grenon
+grenvill
+greszczu
+gret
+greta
+gretal
+gretchen
+grete
+gretel
+grethel
+gretna
+gretta
+grevelin
+grevy
+grewal
+grey
+greytock
+gribbon
+gribbons
+grier
+griet
+grietje
+griff
+griffie
+griffin
+griffioe
+griffith
+griffy
+grigg
+griggs
+grignon
+grigsby
+grillmey
+grills
+grimble
+grimes
+grimm
+grimmell
+grimshaw
+grimsley
+griner
+grinham
+grinnell
+gris
+griselda
+grisoni
+grissel
+grissom
+griswold
+gritton
+grixti
+griz
+groce
+grochau
+grodecki
+groetsem
+groff
+grogan
+grohovsk
+groleau
+grona
+grondin
+gronwall
+grooms
+grootenb
+gros
+grosh
+grosjean
+grosman
+grosse
+grossman
+grossutt
+groth
+groulx
+grove
+grover
+groves
+grovesti
+growden
+growler
+gruau
+grubbs
+gruber
+grueneic
+grueng
+gruenhag
+grund
+gruska
+gruszczy
+gryder
+grzegore
+grzegorz
+grzesik
+gsite
+gu
+guajardo
+gualteri
+guan
+guanglia
+guangyou
+guanyun
+guarez
+guarino
+guarnera
+guatto
+guay
+gubbins
+gubenco
+gucer
+guciz
+gudgeon
+gudrun
+guendole
+guenette
+guenever
+guenna
+guenther
+guercion
+guerette
+guerin
+guerrero
+guerrier
+guertin
+guests
+guevara
+guglielm
+gui
+guido
+guignon
+guilbaul
+guilbert
+guilford
+guilfoyl
+guillaum
+guillema
+guilleme
+guillerm
+guillet
+guillory
+guilmett
+guimond
+guin
+guindi
+guindon
+guinever
+guinn
+guinna
+guinnane
+guiqing
+guirguis
+guisler
+guitard
+guitaris
+gulbrand
+gulick
+gulis
+gulko
+gullekso
+gultekin
+gulvin
+gumb
+gumbley
+gummadi
+gumperz
+gun
+gunadhi
+gunar
+gunars
+gunaseke
+gunawan
+gundecha
+gunderse
+gunderso
+gundes
+gundlach
+gundry
+guner
+gunfer
+gung
+gungor
+gunilla
+gunkel
+gunn
+gunnar
+gunnells
+gunner
+gunshor
+guntar
+guntekin
+gunter
+gunther
+guntvedt
+guo
+guo-jie
+guo-qian
+guoben
+guochun
+guojie
+guoming
+gupta
+gupton
+gur-arie
+gurash
+gurchara
+gurdip
+gure
+gurer
+gurevitc
+gurgenci
+gurica
+gurjinde
+gurjit
+gurley
+gurmeet
+gurnam
+gurney
+gursahan
+gurshara
+gursin
+gurvinde
+gus
+gusella
+guss
+gussi
+gussie
+gussy
+gusta
+gustaf
+gustafso
+gustafss
+gustav
+gustave
+gustavo
+gustavus
+gusti
+gustie
+gustlin
+gusty
+gutcher
+gutermut
+guth
+guthrey
+guthrie
+guthro
+guthry
+gutierre
+guttman
+guty
+gutzmann
+guy
+guy-arbo
+guylain
+guylaine
+guyot
+guzman
+gwen
+gwenda
+gwendole
+gwendoli
+gwendoly
+gweneth
+gwenette
+gwenneth
+gwenni
+gwennie
+gwenny
+gwennyth
+gwenora
+gwenore
+gwo-chun
+gwo-hsin
+gwochung
+gwohsing
+gwyn
+gwyneth
+gwynith
+gwynne
+gyenes
+gyeongbe
+gyger
+gylys
+gyoung
+gypsy
+gysel
+gyula
+gyurcsak
+gyurcsik
+gzl
+ha
+haack
+haaksman
+haas
+habeeb
+habel
+habelrih
+haber
+haberman
+habert
+habib
+hachador
+hache
+hachelle
+hachey
+hack-hoo
+hacker
+hackett
+hacking
+had
+hadaway
+haddad
+hadden
+haddow
+hadel
+hadi
+hadiraha
+hadlee
+hadleigh
+hadley
+hadria
+hadrian
+hady
+hadziome
+hae-won
+haerle
+haertel
+haether
+haewon
+hafedh
+hafeezah
+hafermal
+hafiz
+hafleigh
+hagan
+hagar
+hage
+hagen
+hagenbuc
+hager
+hagerty
+hagewood
+haggar
+haggart
+haggarty
+haggerty
+hagglund
+haghighi
+hagley
+hagstrom
+hagwood
+hahn
+hai
+hai-ning
+hai-ping
+hai-shun
+haibo
+haifang
+haig
+haigh
+hailee
+hailes
+hailey
+haily
+haim
+haimson
+hainer
+haines
+haining
+hainline
+haiping
+haire
+hairil
+haishung
+hak-lay
+hakala
+hakan
+hakansso
+hakeem
+hakim
+haklay
+hal
+hala
+halbedel
+halbert
+hale
+haleigh
+halejak
+halet
+halette
+haley
+half
+halford
+hali
+halicki
+halie
+halimeda
+halina
+hall
+hallamas
+hallenbe
+haller
+hallett
+halley
+halli
+hallie
+halligan
+halliwil
+hallman
+hallsy
+hally
+halovani
+halpenny
+halpern
+halpin
+halsey
+halstead
+halsy
+haluk
+halula
+ham
+hamachi
+hamavand
+hambali
+hambone
+hamdy
+hameed
+hamel
+hamelin
+hamid
+hamidi
+hamil
+hamilton
+hamish
+hamlen
+hamlett
+hamlin
+hamliton
+hammad
+hammel
+hammerli
+hammerme
+hammond
+hammonds
+hamner
+hamnet
+hamori
+hamoui
+hampel
+hampshir
+hampson
+hampton
+hamra
+hamsa
+hamzeh
+han
+han-chie
+han-co
+han-fei
+han-tak
+han-van
+hana
+hanan
+hanchieh
+hanco
+hancock
+handel
+handfort
+handley
+handoko
+handschy
+hane
+hanel
+haney
+hanfei
+hanford
+hang-ton
+hangbok
+hanger
+hangup
+hanh
+hanham
+hanhb
+hanhua
+hani
+haningto
+hanja
+hank
+hankins
+hanlan
+hanley
+hann
+hanna
+hannah
+hanneke
+hanneman
+hanni
+hannibal
+hannible
+hannie
+hannis
+hanns
+hannula
+hanny
+hanrahan
+hans
+hans-pet
+hansen
+hanser
+hansiain
+hanson
+hanspete
+hansquin
+hansraj
+hansson
+hantak
+hanzel
+hanzlice
+hao
+hao-nhie
+hao-yung
+haonhien
+haoyung
+happy
+harabedi
+harada
+haralamb
+harald
+harapiak
+harbert
+harbord
+harbottl
+harbour
+harcourt
+hardage
+hardcast
+hardee
+harderse
+hardi
+hardiman
+hardin
+harding
+hardison
+hardman
+hardwick
+hardy
+hardyal
+hardyck
+hardyman
+haren
+hareton
+hargadon
+hargreav
+hargrove
+hargrow
+hari
+harianto
+harihara
+hariman
+harinder
+harish
+harishan
+harker
+harkness
+harlan
+harland
+harlen
+harlene
+harles
+harless
+harley
+harli
+harlie
+harlin
+harm
+harman
+harmeet
+harmi
+harmon
+harmonia
+harmonie
+harmony
+harms
+harn
+harold
+haroon
+harootun
+haroun
+haroutou
+harp
+harpal
+harpe
+harper
+harpreet
+harrawoo
+harrell
+harri
+harrie
+harriet
+harriett
+harringt
+harriot
+harriott
+harris
+harrison
+harrod
+harron
+harry
+harsch
+harshad
+harsham
+harshava
+harshfie
+hart
+harte
+hartell
+harter
+hartford
+hartgrov
+hartin
+hartkopf
+hartland
+hartleb
+hartley
+hartling
+hartman
+hartmann
+hartmut
+hartney
+hartsell
+hartwell
+harty
+hartzel
+haruko
+harv
+harvard
+harvey
+harville
+harvison
+harwell
+harwerth
+harwilll
+harwood
+hasan
+hasbrouc
+hasegawa
+hasen
+hasham
+hasheem
+hashem
+hashemi
+hashim
+hashimot
+haskel
+haskell
+haskins
+haslach
+hasler
+haslett
+hasmukhb
+hasnain
+hassan
+hassenkl
+hassey
+hassnzah
+hassold
+haste
+hasted
+hastic
+hastie
+hastings
+hasty
+hata
+hatcher
+hatchett
+hately
+hatfield
+hathaway
+hatridge
+hattar
+hatten
+hatti
+hattie
+hattingh
+hatty
+hatz
+hatzenbi
+hau
+haubert
+hauck
+hauersto
+haufe
+hauge
+haughey
+haughwou
+haugrud
+haupt
+haurie
+hause
+hauser
+hautanen
+havelock
+haveman
+haven
+haverkam
+haverty
+havis
+hawes
+hawi
+hawk
+hawken
+hawker
+hawkes
+hawkin
+hawkins
+hawley
+hawryluk
+hawrysh
+hawryszk
+hawthorn
+hayden
+haydock
+haydon
+haydt
+hayes
+hayley
+haylock
+hayman
+haynes
+haynor
+hayward
+haywood
+hayyim
+haze
+hazel
+hazeldin
+hazell
+hazelrig
+hazelton
+hazem
+hazen
+hazenboo
+hazlett
+hdbright
+hdi
+he
+heald
+healey
+heall
+health-s
+healy
+heaney
+hearn
+hearnden
+hearst
+heath
+heather
+heaton
+hebbar
+hebe
+hebert
+heckbert
+heckman
+hector
+heda
+hedda
+heddell
+heddi
+heddie
+heddy
+hedi
+hedin
+hedke
+hedman
+hedrich
+hedrick
+hedvig
+hedvige
+hedwig
+hedwiga
+hedy
+hee
+heeralal
+heeten
+hefferna
+heffner
+hegarty
+hegelian
+hehn-sch
+heida
+heide
+heidebre
+heidepri
+heidi
+heidie
+heighton
+heike
+heikkila
+heile
+heilig
+heiliger
+heilsnis
+hein
+heindric
+heinen
+heinjus
+heinke
+heino
+heinonen
+heinrich
+heinrick
+heinrik
+heinz
+heinzing
+heinzman
+heisler
+heitmann
+hekel
+heki
+helaina
+helaine
+heldenbr
+heleen
+helem
+helen
+helen-el
+helena
+helene
+heleneli
+helenka
+helfrick
+helga
+helge
+helgelan
+helio
+helkaa
+hella
+hellberg
+hellen
+heller
+hellerst
+helli
+hellmut
+helluva
+hellyer
+helma
+helms
+helmut
+helmuth
+helmy
+heloise
+helpb
+helpline
+helsa
+helseth
+helstab
+helton
+helwege
+helyn
+hemant
+hembrick
+hemens-d
+hemme
+hemmerle
+hemphill
+hempinst
+hempstea
+henao
+hench
+henderso
+hendra
+hendren
+hendrick
+hendrik
+hendrika
+hendriks
+hendry
+hendryck
+hendy
+henein
+heng
+hengameh
+hengda
+hengevel
+hengl
+hengst
+henk
+henk smi
+henka
+henley
+henline
+henneber
+hennebur
+hennelly
+hennessy
+hennie
+henninge
+hennon
+hennriet
+henny
+henri
+henrie
+henrieta
+henriett
+henrik
+henrika
+henrikse
+henry
+henryett
+hensen
+henshaw
+hensley
+henson
+henstock
+henthorn
+hepburn
+hephziba
+heping
+heppell
+heppes
+hera
+herak
+herb
+herbel
+herberge
+herbers
+herbert
+herbie
+herby
+herc
+hercule
+hercules
+herculie
+here's t
+heredia
+heribert
+hering
+herlihy
+herling
+herm
+hermack
+herman
+hermann
+hermann-
+hermanns
+hermes
+hermia
+hermie
+hermien
+hermina
+hermine
+herminia
+hermione
+hermon
+hermy
+hernan
+hernande
+hernando
+herndon
+hernek
+herner
+herng-je
+herngjen
+hernon
+hernzlia
+herod
+herold
+heroux
+herr
+herrage
+herralio
+herre
+herren
+herrera
+herrick
+herring
+herringt
+herriott
+herrmann
+herron
+herronal
+herryjan
+hersch
+herschel
+herscovi
+hersee
+hersh
+hershber
+hershel
+herskovi
+herta
+hertha
+hertler
+hertzog
+herve
+hervey
+herzig
+hesche
+hesham
+hesk
+hesketh
+heslop
+hess
+hesse
+hester
+hesther
+hestia
+hetti
+hettie
+hetty
+hetzel
+heung
+heunis
+heurich
+hew
+hewage
+hewe
+hewer
+hewet
+hewett
+hewie
+hewitt
+hewlet
+hews
+heybroek
+heydon
+heyer
+heynen
+heys
+heystrae
+heyward
+heywood
+hi
+hiawatha
+hibberd
+hibler
+hichem
+hickerso
+hickey
+hickin
+hickman
+hickman-
+hickox
+hicks
+hidaka
+hideki
+hideo
+hiebsch
+hien
+hienz
+hieronym
+hiers
+higginbo
+higgins
+higham
+highet
+highsmit
+hight
+hightowe
+higuchi
+hijab
+hikita
+hil
+hilaire
+hilario
+hilarius
+hilary
+hilberma
+hilbert
+hilbig
+hilda
+hildagar
+hilde
+hildebra
+hildegaa
+hildegar
+hilder
+hildum
+hildy
+hilfinge
+hill
+hilla
+hillard
+hillary
+hillel
+hiller
+hillery
+hilliard
+hilliary
+hillidge
+hillie
+hillier
+hillring
+hills
+hillson
+hilly
+hillyer
+hilmi
+hils
+hilton
+hiltz
+hilwa
+himanshu
+himawan
+himraj
+hin-wai
+hincher
+hinchey
+hinchley
+hinda
+hindle
+hinds
+hindson
+hine
+hiner
+hines
+hing
+hing-fai
+hingtgen
+hink
+hinkel
+hinkins
+hinkle
+hinojosa
+hinsdale
+hinshaw
+hinson
+hinton
+hinton-s
+hinz
+hinze
+hipp
+hippert
+hipson
+hirakawa
+hiraki
+hiram
+hirayama
+hiren
+hirofumi
+hirohama
+hiroki
+hiroko
+hiromi
+hiromu
+hironaga
+hirooki
+hirose
+hiroshi
+hirotaka
+hiroto
+hirotosh
+hiroyuki
+hirsch
+hirshman
+hisaki
+hiscoe
+hiscott
+hisham
+hishchak
+hisko
+hislop
+hitchcoc
+hitching
+hite
+hitler
+hitoshi
+hiusser
+hively
+hixon
+hixson
+hjartars
+hjorth
+hlady
+hlausche
+hlinka
+hm
+hnidek
+ho
+ho-mu
+hoa
+hoa-van
+hoadley
+hoag
+hoagland
+hoang
+hoare
+hobard
+hobart
+hobbs
+hoben
+hobesh
+hobey
+hobgood
+hobie
+hobin
+hoch
+hochbaum
+hochberg
+hock
+hockaday
+hockster
+hoctor
+hocutt
+hodder
+hoddinot
+hodedo
+hodge
+hodgens
+hodges
+hodgins
+hodgkin
+hodgkiss
+hodgson
+hoebart
+hoeg
+hoehling
+hoehn
+hoek
+hoeksma
+hoekstra
+hoeler
+hoelsche
+hoequist
+hoes
+hoferek
+hoffelt
+hoffman
+hoffmann
+hoffmeis
+hoffpaui
+hoffsted
+hofmann
+hofmeist
+hofstede
+hofstett
+hogan
+hogeboom
+hogg
+hoggan
+hoggatt
+hogue
+hohmeyer
+hohn
+hoi-kin
+hojjat
+holberry
+holbrook
+holcomb
+holcombe
+holcroft
+hold of
+holdaway
+holden
+holder
+holdren
+holesing
+holinski
+hollack
+holland
+hollande
+hollands
+hollbach
+hollen
+hollenba
+hollenbe
+hollenst
+holleran
+holley
+holli
+holliday
+hollie
+hollings
+hollingt
+hollingw
+hollis
+holliste
+holloway
+hollran
+holly
+holly-an
+hollyann
+holm
+holman
+holmans
+holmer
+holmes
+holmquis
+holness
+holsclaw
+holst
+holt
+holterma
+holthaus
+holton
+holtz
+holtze
+holvey
+holy
+holz
+hom
+homa
+homan
+homayoon
+homayoun
+homer
+homere
+homerus
+homonick
+homu
+hon
+hon-kong
+hon-son
+honbarri
+honda
+honey
+honeycut
+hong
+hong-che
+hong-yuh
+hongchen
+hongtao
+hongyuh
+hongzhi
+honkakan
+honmun
+honor
+honoria
+honson
+honzo
+hoog
+hooi-lee
+hooker
+hooks
+hoon
+hooper
+hoorman
+hooshang
+hooton
+hoover
+hopcroft
+hope
+hopf
+hopkin
+hopkins
+hopkinso
+hopley
+hoppenwo
+hopper
+hopson
+hoptoad
+hoque
+hor
+hor-lam
+horace
+horacio
+horak
+horalek
+horatia
+horatio
+horatius
+horban
+hord
+hore
+horemans
+horgan
+horianop
+horkoff
+hormoz
+hornacek
+hornbeck
+hornbeek
+hornburg
+horne
+horng
+horngdar
+horning
+hornung
+horowitz
+horsfiel
+horst
+horstman
+hort
+horten
+hortense
+hortensi
+horton
+horus
+horvath
+horwitz
+horwood
+hosang
+hosanna
+hoscheid
+hoseok
+hoshi
+hosier
+hoskin
+hosking
+hoskins
+hosneld
+hossein
+hosseini
+hot
+hotline
+hotlist
+hotson
+hotta
+houde
+houdini
+houghton
+houk
+houle
+houn
+hounsell
+houssam
+houssein
+houston
+hoverman
+hovey
+hovinga
+how
+how-kee
+howald
+howard
+howarth
+howat
+howden
+howe
+howe-pat
+howekamp
+howell
+howerton
+howes
+howey
+howie
+howlett
+howley
+howorth
+howse
+hoxie
+hoy
+hoyer
+hoyt
+hpldt
+hpone
+hq
+hqs
+hr
+hrdata
+hrenyk
+hrinfo
+hrubik
+hruby
+hrushowy
+hruska
+hrvatin
+hsi
+hsi-ho
+hsiang
+hsiao
+hsiao-ch
+hsiao-we
+hsiao-yu
+hsiaochi
+hsiaosu
+hsiaowei
+hsiaoyun
+hsieh
+hsien
+hsiho
+hsin
+hsin-li
+hsin-shi
+hsing
+hsing-ju
+hsinli
+hsiung
+hsketh
+hspice
+hsu
+hsuan
+hsueh
+htd
+hu
+hua
+hua-yuan
+huai
+huan
+huan-yu
+huanbo
+huang
+huasheng
+huashi
+huay-yon
+huayuan
+huayyong
+hubal
+hubbard
+hubbell
+hube
+huber
+huberman
+hubers
+hubert
+huberto
+hubey
+hubie
+hubley
+huboi
+hudai
+hudak
+huddlest
+hudecek
+hudepohl
+hudgins
+hudson
+hudy
+hudyma
+huel-she
+huelshen
+huelsman
+hueneman
+huerta
+huestis
+huether
+huetu
+huey
+huey-kuo
+hueykuo
+hufana
+huffman
+hugel
+huggins
+hugh
+hughes
+hughes-c
+hughey
+hughie
+hughson
+hugibert
+hugo
+hugues
+huguette
+huguin
+huhn
+hui
+hui-chau
+hui-neng
+huib
+huichaun
+huifang
+huineng
+huiqi
+huitt
+huizhao
+hukam
+hulda
+hulen
+hulett
+huligang
+hulk
+hulme
+hulst
+hultgren
+hulversh
+hulze
+humbert
+humberto
+humboldt
+hume
+humenik
+humenuk
+humes
+humfrey
+humfrid
+humfried
+humiston
+hummel
+hummerst
+humphrey
+humphrie
+hundries
+huneault
+hunfredo
+hung
+hung-kan
+hung-win
+hungkai
+hungkang
+hungle
+hungquoc
+hungwing
+hunike
+hunnicut
+hunsberg
+hunsucke
+hunt
+hunter
+huntingt
+huntlee
+huntley
+huo-yen
+huong
+huor
+huot
+huoyen
+hupe
+huppert
+hurd
+huret
+hurf
+hurlee
+hurleigh
+hurley
+hurman
+hurst
+hurtado
+hurteau
+hurtubis
+hurwitz
+husain
+husam
+husarewy
+husein
+hussain
+hussam
+hussein
+husser
+hussey
+hussien
+hustin
+huston
+huszar
+huszarik
+hutchers
+hutchin
+hutching
+hutchins
+hutchiso
+hutson
+hutt
+hutter
+hutton
+huub
+huuliem
+huxley
+huy
+huyen
+huynh
+huyvan
+huzur
+hvezda
+hwa
+hwajin
+hwan
+hwang
+hwayong
+hwei-lin
+hy
+hyacinth
+hyatt
+hydar
+hyde
+hyen
+hyer
+hyerle
+hyers
+hyjek
+hylaride
+hyman
+hymie
+hynda
+hyndman
+hynek
+hyong-ju
+hyongjun
+hyonil
+hyoungju
+hyperspa
+hyrne
+hysler
+hyslop
+hyte
+hyun
+hyunchul
+hyung
+i-chao
+i-ching
+iacoviel
+iacovo
+iago
+iain
+ian
+ianace
+iannotti
+iannozzi
+iantaffi
+ianthe
+iaquinto
+iarocci
+ibach
+ibarra
+ibbie
+ibby
+ibntas
+ibrahim
+ibsen
+iburg
+ic
+iceman
+ichabod
+ichao
+iching
+ichiro
+ichizen
+icy
+icylyn
+id
+ida
+idalia
+idalina
+idaline
+ide
+idell
+idelle
+idette
+idris
+idt
+idus
+ie
+iem
+ientile
+iezzi
+if anyon
+ifact
+ifill
+iftekhar
+ifti
+igarashi
+iggie
+igglesde
+iggy
+ignace
+ignacio
+ignacius
+ignatius
+ignaz
+ignazio
+igor
+iguchi
+igusa
+ihnat
+ihor
+ijaz
+ijff
+ike
+ikeda
+ikey
+ikotin
+ikram
+ikuo
+ilaire
+ilan
+ilana
+ilario
+ilda
+ileana
+ileane
+ilene
+ilic
+ilise
+ilk
+ilka
+illa
+illamchi
+illidge
+illinois
+ilmberge
+ilona
+ilovich
+ilowski
+ilsa
+ilse
+ilsup
+ilwhan
+ilya
+ilyas
+ilyess
+ilysa
+ilyse
+ilyssa
+ima
+iman
+imbemba
+imelda
+imhof
+imi
+immanuel
+imming
+imogen
+imogene
+imojean
+impaglia
+imran
+imre
+imtaz
+imtiaz
+in-beum
+in-cheol
+in-hwan
+ina
+inam
+inamulla
+inan
+inanc
+inbeum
+ince
+incheol
+incze
+ind
+indahl
+indar
+independ
+inderjit
+indiana
+indianaj
+indira
+indra
+indy
+ineke
+ines
+inesita
+inessa
+inez
+info
+info-man
+infocent
+ing
+inga
+ingaberg
+ingaborg
+ingamar
+ingar
+inge
+ingeberg
+ingeborg
+ingelber
+ingell
+ingemar
+inger
+ingersol
+ingie
+ingle
+ingleber
+ingles
+ingling
+inglis
+ingmar
+ingo
+ingra
+ingram
+ingres
+ingrey
+ingrid
+ingrim
+ingunna
+ingvar
+inho
+inhulsen
+inhwan
+inigo
+inm
+inman
+inna
+innchyn
+innes
+inness
+innis
+inniss
+innocent
+inoue
+inquire
+inrig
+inscoe
+insp
+inspecti
+instal
+installe
+integ
+integrat
+intemann
+interact
+interfac
+intihar
+intplan
+intune
+inyoung
+ioan
+ioana
+ioannes
+ioannidi
+ioannis
+ioannou
+iocca
+iocntrl
+iola
+iolande
+iolanthe
+iona
+ione
+iorgo
+iorgos
+iormina
+iosep
+ioui
+ip
+ipadmin
+ipokrati
+ippolito
+iqbal
+ira
+iradj
+iraj
+irani
+irby
+irc
+ircbellc
+irccar
+ircinter
+ircmarke
+ircmer
+ircmtl
+ircstand
+irean
+ireland
+irena
+irene
+irfan
+irias
+iribarre
+irice
+irick
+irina
+iris
+irish
+irissou
+irita
+irma
+irv
+irvin
+irvine
+irving
+irwin
+irwinn
+is a cat
+isa
+isaac
+isaacs
+isaak
+isabeau
+isabel
+isabelit
+isabell
+isabella
+isabelle
+isac
+isacco
+isador
+isadora
+isadore
+isahella
+isaia
+isaiah
+isak
+isami
+isbister
+iseabal
+isenor
+isensee
+isert
+isfan
+ishak
+ishan
+ishee
+isherwoo
+ishii
+ishikida
+ishimoto
+isiahi
+isidor
+isidora
+isidore
+isidoro
+isidro
+isin
+isip
+isis
+iskandar
+iskender
+iskra
+isl
+islam
+isley
+ismael
+ismail
+isobel
+isoft
+isolde
+israel
+issa
+issam
+issi
+issiah
+issie
+issy
+itac
+itah
+italo
+italus
+itaru
+itas
+itaya
+itch
+iteam
+iteke
+ito
+its-eng
+iu
+iva
+ivan
+ivancevi
+ivancic
+ivanhoe
+ivanoff
+ivanyi
+ivar
+ive
+iver
+ivers
+iversen
+iverson
+ives
+ivett
+ivette
+ivey
+ivie
+ivo
+ivona
+ivonne
+ivor
+ivory
+ivy
+iwan
+iwanyk
+iwashita
+iwona
+iws
+iyad
+iyengar
+iyer
+iyun
+izaak
+izabel
+izak
+izbinsky
+izchak
+izique
+izora
+izumi
+izuru
+izzat
+izzo
+izzotti
+izzy
+j-franco
+jaakkola
+jaan
+jabbari
+jabez
+jabir
+jablonsk
+jabreen
+jacalyn
+jacek
+jacenta
+jachym
+jacinda
+jacinta
+jacintha
+jacinthe
+jack
+jackelyn
+jacki
+jackie
+jacklin
+jacklyn
+jackman
+jackquel
+jackson
+jacky
+jackye
+jaclin
+jaclyn
+jacob
+jacobo
+jacobs
+jacobsen
+jacobson
+jacque
+jacqueli
+jacquely
+jacquene
+jacques
+jacquett
+jacqui
+jacquie
+jacynth
+jacynthe
+jada
+jade
+jadwiga
+jae
+jae-koo
+jae-whan
+jaekoo
+jaenen
+jaewhang
+jaffer
+jag
+jagan
+jagat
+jagath
+jagatic
+jagdev
+jagdish
+jager
+jagernau
+jagjeet
+jagjit
+jagla
+jago
+jagodzin
+jagriti
+jags
+jahangir
+jahromi
+jai
+jaijeet
+jaikne
+jailyn
+jaime
+jaimie
+jaimin
+jain
+jaine
+jak
+jakab
+jakabffy
+jakb
+jake
+jakeman
+jaki
+jakie
+jakim
+jakob
+jakola
+jakstys
+jakubows
+jalaie
+jalal
+jalali
+jalaliza
+jalbert
+jalilvan
+jama
+jamaal
+jamal
+jamaly
+jaman
+jamel
+jamensky
+jamer
+james
+james_mi
+jamesett
+jameson
+jamesy
+jamey
+jami
+jamie
+jamieson
+jamil
+jamilah
+jamill
+jamima
+jamin
+jamison
+jammal
+jammie
+jammu
+jamnejad
+jamroz
+jamshed
+jamshid
+jamshidi
+jan
+jan-olof
+jan-robe
+jana
+janak
+janaki
+janaratn
+janaya
+janaye
+jancewic
+jancovic
+janczyn
+janda
+jande
+jandy
+jane
+janean
+janecka
+janeczka
+janeen
+janek
+janel
+janela
+janell
+janella
+janelle
+janene
+janenna
+janes
+janessa
+janet
+janeta
+janeth
+janetta
+janette
+janeva
+janey
+jang
+jang-hsu
+janghsue
+jani
+jania
+janice
+janick
+janie
+janifer
+janina
+janine
+janio
+janis
+janiszew
+janith
+janka
+janke
+jankowsk
+jann
+janna
+jannay
+jannel
+jannelle
+jannie
+janning
+janolof
+janos
+janot
+janovich
+janrober
+janseen
+jansen
+janson
+janssen
+jantz-le
+jantzi
+januario
+janusz
+jany
+jap
+japan
+japp
+jaquelin
+jaquelyn
+jaquenet
+jaques
+jaquith
+jarad
+jarboe
+jarchow
+jard
+jareb
+jared
+jarel
+jargon
+jarib
+jarid
+jarl
+jarlath
+jarmal
+jarman
+jarmo
+jarmoc
+jarmon
+jarmul
+jarnak
+jarrad
+jarred
+jarret
+jarrett
+jarrid
+jarrod
+jarvah
+jarvie
+jarvin
+jarvis
+jarzemsk
+jasbinde
+jase
+jasen
+jashvant
+jasmann
+jasmin
+jasmina
+jasmine
+jasny
+jason
+jasper
+jaspreet
+jasrotia
+jasti
+jastinde
+jasun
+jasver
+jaswal
+jatar
+jatin
+jatinder
+jau-min
+jau-yau
+jaumin
+jauvin
+jauyau
+java
+javad
+javallas
+javar
+javed
+javier
+javor
+jawad
+jawaid
+jawana
+jawanda
+jawor
+jaworski
+jaworsky
+jay
+jaya
+jayakuma
+jayamann
+jayant
+jayanta
+jayavant
+jaye
+jayendra
+jayesh
+jayjay
+jayme
+jaymee
+jaymie
+jayn
+jayne
+jaynell
+jaynie
+jayshree
+jayson
+jazanosk
+jazmin
+jcbach
+jcst
+jdavie
+jderek
+jean
+jean-ber
+jean-cla
+jean-den
+jean-fra
+jean-guy
+jean-jac
+jean-lou
+jean-luc
+jean-mar
+jean-mic
+jean-nor
+jean-pau
+jean-pie
+jean-rob
+jean-roc
+jean-yve
+jeana
+jeane
+jeanelle
+jeanes
+jeanette
+jeanhee
+jeanice
+jeanie
+jeanine
+jeanloui
+jeanna
+jeanne
+jeannett
+jeannie
+jeannine
+jeannot
+jeany
+jeavons
+jecho
+jed
+jedd
+jeddy
+jedediah
+jedidiah
+jedrysia
+jee
+jee-howe
+jeff
+jefferey
+jefferso
+jeffery
+jeffie
+jeffrey
+jeffreys
+jeffries
+jeffry
+jeffy
+jegland
+jehanna
+jehovah
+jehu
+jelen
+jelene
+jeleniew
+jelinek
+jelske
+jem
+jemczyk
+jemie
+jemima
+jemimah
+jemmie
+jemmy
+jen
+jen-chen
+jen-hua
+jena
+jenchen
+jenda
+jenelle
+jeng
+jenhua
+jeni
+jenica
+jeniece
+jenifer
+jeniffer
+jenilee
+jenine
+jenkins
+jenkinso
+jenn
+jenna
+jennee
+jenner
+jenness
+jennette
+jenni
+jennica
+jennie
+jennifer
+jennilee
+jennine
+jennings
+jenny
+jeno
+jens
+jensen
+jensenwo
+jenson
+jeong
+jephthah
+jepson
+jer-huan
+jerad
+jerald
+jeralee
+jeramey
+jeramie
+jere
+jereme
+jeremiah
+jeremias
+jeremie
+jeremy
+jerhuang
+jeri
+jermain
+jermaine
+jermayne
+jernigan
+jeroen
+jerome
+jeromy
+jeronimo
+jeroski
+jerreld
+jerri
+jerrie
+jerrilee
+jerrilyn
+jerrine
+jerrold
+jerrome
+jerry
+jerrylee
+jervis
+jerzy
+jeska
+jesper
+jess
+jessa
+jessalin
+jessalyn
+jessamin
+jessamyn
+jesse
+jessee
+jesselyn
+jessey
+jesshope
+jessi
+jessica
+jessie
+jessika
+jessup
+jessy
+jester
+jesty
+jesus
+jet
+jeter
+jeth
+jethro
+jeurene
+jew
+jewel
+jewell
+jewelle
+jewels
+jewett
+jey
+jeyarara
+jezioran
+jhingran
+ji
+ji-chuu
+jia
+jia-wen
+jiak-kwa
+jiakkwan
+jian
+jianchen
+jiang
+jianli
+jiann
+jiann-ya
+jiannyan
+jianou
+jianqi
+jianxing
+jianye
+jianyun
+jiawen
+jiayi
+jiayuan
+jichuu
+jie-yong
+jiejie
+jiethye
+jieyong
+jihad
+jihan
+jihyun
+jiin-shu
+jiinshuh
+jilann
+jilisa
+jill
+jillana
+jillane
+jillayne
+jilleen
+jillene
+jilli
+jillian
+jillie
+jilly
+jim
+jimenez
+jiming
+jiminy
+jimmie
+jimmy
+jims
+jimson
+jin
+jin-ho
+jin-nan
+jin-song
+jin-yuan
+jin-yun
+jinann
+jinchao
+jindal
+jing
+jing-ru
+jingbai
+jinglun
+jingru
+jinho
+jinhua
+jinlun
+jinn-kue
+jinnan
+jinnkuen
+jinny
+jinsheng
+jinsong
+jinsoo
+jinyuan
+jiri
+jirina
+jiro
+jisang
+jisheng
+jitendra
+jiuhuai
+jivan
+jiyuan
+jiyue
+jo
+jo ann
+jo-ann
+jo-anne
+jo-marie
+joachim
+joachimp
+joan
+joana
+joane
+joanie
+joann
+joanna
+joannah
+joanne
+joannes
+joannidi
+joannie
+joannis
+joao
+joaquin
+job
+jobe
+jobey
+jobi
+jobie
+jobina
+joby
+jobye
+jobyna
+jocelin
+joceline
+jocelyn
+jocelyne
+jochem
+jochen
+jock
+jocko
+jodee
+jodi
+jodie
+jodine
+jodoin
+jodoin-s
+jody
+joe
+joeann
+joel
+joela
+joelie
+joell
+joella
+joelle
+joellen
+joelly
+joellyn
+joelynn
+joeph
+joerg
+joeri
+joete
+joey
+joffe
+johan
+johan am
+johan ch
+johan se
+johanama
+johanchr
+johann
+johanna
+johannah
+johanne
+johannes
+johannse
+johanseb
+johansen
+johanson
+johathan
+john
+john-jr
+john-pau
+john-sr
+johna
+johnath
+johnatha
+johnatho
+johnette
+johni
+johnna
+johnni
+johnnie
+johnny
+johns
+johnsen
+johnson
+johnsson
+johnston
+johny
+joice
+joiner
+joji
+jojo
+joke
+jolanda
+jole
+jolee
+joleen
+jolene
+joletta
+joli
+jolicoeu
+jolie
+jolin
+joline
+jolitz
+joll
+jolliffe
+joly
+jolyn
+jolynn
+jon
+jonah
+jonas
+jonathan
+jonathon
+jonczak
+jone
+jonell
+jonelle
+jones
+jong
+jong-chi
+jong-woe
+jongchih
+jonghun
+jonghyuk
+jongsun
+jongwoei
+jongwoo
+joni
+jonie
+jonis
+jonkheer
+jonson
+jonthan
+joo
+joo-euin
+joo-geok
+joon
+joong
+jooran
+jooyul
+joplin
+jordain
+jordan
+jordana
+jordanna
+jordi
+jordon
+jorey
+jorgan
+jorge
+jorgense
+jori
+jorie
+joron
+jorrie
+jorry
+jory
+jos
+josanne
+joscelin
+jose
+josee
+josef
+josefa
+josefina
+joseito
+joselito
+joseph
+josepha
+josephin
+josephs
+josey
+josh
+joshi
+joshia
+joshua
+joshuah
+josi
+josiah
+josiane
+josias
+josie
+josine
+josip
+joslin
+joson
+josselyn
+jossine
+josy
+joubert
+joudrey
+jourdain
+jourdan
+jovo
+jowett
+joy
+joya
+joyan
+joyann
+joyce
+joycelin
+joydeep
+joye
+joyner
+joyous
+jozef
+jozsef
+jr
+jsandye
+jsbach
+juan
+juana
+juanita
+juarez
+jubainvi
+jubb
+jubenvil
+jubinvil
+juby
+jud
+judah
+judas
+judd
+jude
+judge
+judi
+judie
+judith
+juditha
+judithre
+judon
+judy
+judye
+judyresn
+juergen
+juers
+jugandi
+juh-shiu
+juha
+juhan
+juhshiun
+jui
+jui-fen
+juieta
+juifen
+juile
+jukka
+julayne
+jule
+julee
+jules
+juli
+julia
+julian
+juliana
+juliane
+juliann
+julianna
+julianne
+julianto
+julie
+julieann
+julien
+julienne
+juliet
+julieta
+julietta
+juliette
+julina
+juline
+julio
+julissa
+julita
+julius
+jun
+jun-li
+junaid
+june
+juneau
+juneho
+junette
+jung
+jung-hua
+junghua
+jungmeis
+juni
+junia
+junie
+junina
+junk
+junkie
+junkin
+junli
+junmeng
+junzo
+juozas
+jurafsky
+jurek
+jurevis
+jurewicz
+jurg
+jurgen
+jurgens
+jurgutis
+juri
+jurman
+juscesak
+juskevic
+jussi
+justen
+justin
+justina
+justine
+justinia
+justinn
+justino
+justis
+justo
+justus
+jusuf
+jutta
+jwahar
+jyh-dong
+jyh-doug
+jyhdong
+jyhdoug
+jyoti
+jyun-che
+jyunchen
+jyuo
+kaare
+kabe
+kabel
+kaboliza
+kabuli
+kac
+kacey
+kacie
+kacor
+kacsor
+kacy
+kaczmare
+kaczmars
+kaczynsk
+kadah
+kadamani
+kaden
+kadiyala
+kadlecik
+kaefer
+kaehler
+kaela
+kaete
+kagan
+kah-ming
+kahaleel
+kahan
+kahhale
+kahhan
+kahil
+kahkonen
+kahlil
+kahn
+kahneman
+kahnert
+kahtasia
+kai
+kai-bor
+kai-ming
+kai-wah
+kai-wai
+kaia
+kaibor
+kaiching
+kaid
+kaidanne
+kaigler
+kaila
+kaile
+kaileen
+kailey
+kain
+kaine
+kaiser
+kaitlin
+kaitlyn
+kaitlynn
+kaiwah
+kaiwen
+kaj
+kaja
+kajeejit
+kaji
+kakalina
+kaki
+kakou
+kaksonen
+kakuta
+kala
+kalab
+kalai
+kalaiche
+kalair
+kalappa
+kalash
+kale
+kaleb
+kalechst
+kaleena
+kales
+kaley
+kali
+kalie
+kalil
+kalila
+kalina
+kalinda
+kalindi
+kaliski
+kalitzku
+kalle
+kallewar
+kalli
+kallio
+kally
+kalman
+kalnitsk
+kalogera
+kalpak
+kalpit
+kalra
+kalsey
+kalt
+kalugdan
+kaluzny
+kalvin
+kalwa
+kalwarow
+kalyan
+kalyani
+kalyn
+kam
+kam-hung
+kam-suen
+kamal
+kaman
+kamas
+kambhamp
+kambiz
+kamboh
+kameko
+kamel
+kamerson
+kamhung
+kamie
+kamil
+kamila
+kamilah
+kamillah
+kaminsky
+kamiya
+kamiyama
+kamlesh
+kammerer
+kamminga
+kamol
+kamoun
+kamran
+kamyar
+kamyszek
+kan
+kan-hung
+kana
+kanagend
+kanani
+kanata
+kanchit
+kandace
+kandappa
+kandi
+kandra
+kandy
+kane
+kaneko
+kaneshir
+kang
+kang-gil
+kang-nin
+kang-yua
+kangelis
+kangkun
+kangning
+kanhung
+kania
+kanies
+kanika
+kannan
+kannel
+kanneman
+kanno
+kansara
+kant
+kanthan
+kantor
+kanu
+kanungo
+kanwalji
+kanwar
+kanya
+kao
+kaoru
+kaoud
+kapadia
+kapatou
+kapella
+kapil
+kaplan
+kapp
+kappos
+kaps
+kapsa
+kapsch
+kapuscin
+kara
+kara-lyn
+karaali
+karademi
+karalee
+karalynn
+karam
+karan
+karass
+karattup
+karchevs
+kardomat
+kardos
+kare
+karee
+kareem
+karel
+karels
+karen
+karena
+karhunie
+kari
+karia
+kariann
+karibian
+karie
+karil
+karilynn
+karim
+karin
+karina
+karine
+kariotta
+karisa
+karissa
+karita
+karkotsk
+karl
+karla
+karlan
+karlee
+karleen
+karlen
+karlene
+karlens
+karlette
+karlie
+karlik
+karlis
+karloff
+karlon
+karlotta
+karlotte
+karlson
+karly
+karlyn
+karmali
+karmen
+karmous-
+karn
+karna
+karnazes
+karney
+karol
+karola
+karole
+karolefs
+karolien
+karolina
+karoline
+karoly
+karon
+karp
+karr
+karrah
+karrie
+karry
+karsan
+karsner
+karsz
+kartik
+kartikey
+karunara
+karwowsk
+kary
+karyl
+karylin
+karyn
+kas
+kasbia
+kasbow
+kasdorf
+kasey
+kashani-
+kashef
+kashima
+kashul
+kasifa
+kaspar
+kasparia
+kasper
+kasprzak
+kass
+kassam
+kassandr
+kassem
+kassey
+kassi
+kassia
+kassie
+kassissi
+kast
+kastelbe
+kasten
+kastner
+kaston
+kasumovi
+kat
+kata
+katalin
+katarina
+kataryna
+katcher
+katchmar
+kate
+katee
+katerina
+katerine
+katey
+kath
+katha
+katharin
+katharyn
+kathe
+katherin
+katheryn
+kathi
+kathie
+kathleen
+kathlin
+kathnels
+kathreri
+kathrine
+kathryn
+kathryne
+kathy
+kathyb
+kathye
+kati
+katibian
+katie
+katina
+katine
+katinka
+katja
+katleen
+katlin
+kato
+katrin
+katrina
+katrine
+katrinka
+katsoura
+katsumi
+katsunor
+katti
+kattie
+katuscha
+katusha
+katy
+katya
+katz
+katzenel
+kaudel
+kauffeld
+kauffman
+kaufman
+kaufmann
+kaunas
+kaura
+kaus
+kausche
+kaushik
+kavaler
+kavanagh
+kavid
+kavis
+kawa
+kawabata
+kawaguch
+kawahara
+kawakami
+kawamura
+kawashim
+kawauchi
+kay
+kaya
+kayaliog
+kayar
+kaycee
+kaye
+kayla
+kayle
+kaylee
+kayley
+kaylil
+kaylyn
+kayne
+kaypour
+kayser
+kayvan
+kaz
+kazem
+kazimier
+kazmierc
+kazue
+kazuhiko
+kazuhiro
+kazuhito
+kazuko
+kazunori
+kazuo
+kazuyuki
+kea
+keala
+kealey
+kean
+keane
+kearney
+kearns
+keary
+keast
+keates
+keating
+keaton
+keats
+kebede
+kechichi
+keck
+kedah
+kedron
+kee
+keef
+keefe
+keefer
+keegstra
+keehan
+keehn
+keelan
+keelby
+keeler
+keeley
+keelia
+keels
+keely
+keen
+keenan
+keene
+keene-mo
+keep
+keer
+kees
+keever
+keffer
+kehler
+kehoe
+kehr
+kei
+keifer
+keighley
+keilholz
+keilty
+keim
+kein
+keinosuk
+keir
+keiser
+keish
+keisuke
+keitel
+keith
+kejing
+kelbe
+kelbee
+kelby
+kelcey
+kelci
+kelcie
+kelcy
+keldon
+kele
+kelemen
+kelessog
+kelila
+kelin
+kelkar
+kell
+kelland
+kellby
+kelleher
+kellen
+keller
+kellerma
+kellett
+kelley
+kelleye
+kelli
+kellia
+kellie
+kellina
+kellogg
+kellsie
+kellum
+kelly
+kelly-er
+kellyann
+kellyeri
+kelner
+kelsay
+kelsch
+kelsey
+kelsi
+kelso
+kelsy
+keltouma
+kelvin
+kelwin
+kely
+kem
+kemal
+kember
+kemish
+kemkeng
+kemme
+kemp
+kempf
+kempffer
+kempler
+kemppain
+kempski
+kempster
+ken
+kenda
+kendal
+kendall
+kendel
+kendell
+kendi
+kendra
+kendre
+kendrick
+kenedi
+kenik
+kenji
+kenkel
+kenlan
+kenmir
+kenn
+kenna
+kennaday
+kennan
+kennard
+kennedy
+kenneth
+kennett
+kenney
+kennie
+kennith
+kennon
+kenny
+kenol
+kenon
+kensinge
+kent
+kenta
+kentaro
+kenton
+kenworth
+kenyon
+keogh
+kepekci
+kepler
+ker
+kera
+kerby
+kerensa
+kerfoot
+keri
+keriakos
+keriann
+kerianne
+kerith
+kerk
+kerley
+kerlovic
+kermie
+kermit
+kermy
+kernahan
+kernan
+kerner
+kernodle
+kerns
+kerr
+kerri
+kerri-an
+kerrie
+kerrill
+kerrin
+kerry
+kerschen
+kerschne
+kerstin
+kerwin
+kerwinn
+keseris
+keshab
+keshav
+kesler
+kesley
+keslie
+kesling
+kessel
+kessia
+kessiah
+kessing
+kessler
+kessley
+kestelma
+kester
+kestutis
+ketan
+ketao
+ketcham
+ketcheso
+ketchum
+ketkar
+ketley
+ketsler
+ketterer
+ketti
+kettie
+kettles
+ketty
+keung
+keuning
+kev
+kevan
+keven
+keveny
+kevin
+kevina
+kevon
+kevyn
+keyes
+keynes
+keys
+keyvan
+khac
+khachatr
+khadbai
+khai
+khalaf
+khaled
+khalid
+khalil
+khalilza
+khamdy
+khanh
+khanna
+khanvali
+khariton
+khatib
+khatod
+khatri
+khawar
+khedkar
+khesin
+khezri
+khieu
+khim
+khimasia
+kho
+khoa
+khodosh
+khoinguy
+khon
+khorami
+khorrama
+khosla
+khosravi
+khosro
+khosrow
+khouderc
+khoury
+khouzam
+khue
+khueh-ho
+khuehhoc
+khuon
+khurana
+khurshid
+khyra
+ki
+kiah
+kial
+kiala
+kiam
+kian
+kiang
+kibler
+kidd
+kiebel
+kiecksee
+kiefer
+kiel
+kiele
+kielstra
+kiely
+kiem
+kien
+kien-ngh
+kienan
+kiennghi
+kiens
+kieran
+kiernan
+kieron
+kiersten
+kiet
+kieunga
+kiger
+kigyos
+kihyen
+kijin
+kikelia
+kiki
+kikki
+kiko
+kikuchi
+kikuta
+kilbank
+kilburn
+kilby
+kilcoin
+kilcoyne
+kile
+kiley
+kilgore
+kilian
+killam
+killeen
+killen
+killer
+killian
+killie
+killy
+kilner
+kilpatri
+kilsaas
+kilzer
+kim
+kim-elee
+kim-minh
+kim-stac
+kim-tram
+kimball
+kimbarov
+kimbell
+kimberle
+kimberli
+kimberly
+kimble
+kimbo
+kimbra
+kimbrell
+kimbroug
+kimeleen
+kimi
+kimihiko
+kimiko
+kimio
+kimler
+kimm
+kimma
+kimme
+kimmett
+kimmi
+kimmie
+kimmo
+kimmy
+kimoto
+kimstace
+kimura
+kin
+kin-wai
+kin-yee
+kinahan
+kinamon
+kincaid
+kinch
+kindel
+kindem
+kindra
+king
+king-hau
+kingaby
+kingan
+kingdon
+kingrey
+kingsbur
+kingshot
+kingslan
+kingsley
+kingsly
+kingston
+kingzett
+kinh
+kinley
+kinman
+kinna
+kinnaird
+kinney
+kinnibur
+kinnie
+kinny
+kinos
+kinoshit
+kinrys
+kinsella
+kinsey
+kinsley
+kinsman
+kinson
+kinstley
+kinstry
+kip
+kipling
+kipnis
+kipp
+kippar
+kipper
+kippie
+kippy
+kira
+kirady
+kirbee
+kirbie
+kirby
+kirchner
+kirchoff
+kirfman
+kiri
+kirit
+kirk
+kirkby
+kirkenda
+kirkham
+kirkland
+kirkley
+kirkpatr
+kirkwood
+kirley
+kirn
+kirouac
+kirsi
+kirsten
+kirsteni
+kirsti
+kirstie
+kirstin
+kirstyn
+kirt
+kirtikum
+kish
+kishi
+kishor
+kishore
+kissee
+kissiah
+kissie
+kistner
+kit
+kita
+kitajima
+kitrick
+kitson
+kitt
+kitti
+kittie
+kittinge
+kitty
+kitzmill
+kivell
+kiwon
+kiyohara
+kiyoharu
+kiyoon
+kizzee
+kizzie
+kjeld
+kjell
+klaas
+klaassen
+klammer
+klamner
+klapper
+klapphol
+klara
+klarika
+klarrisa
+klashins
+klasky
+klassen
+klatchko
+klaudia
+klaudiny
+klaudt
+klaus
+klavkaln
+klazien
+klazina
+klebsch
+klein
+klemens
+klement
+kleon
+klepping
+kletchko
+klett
+kleynenb
+klier
+klimas
+kliment
+klimon
+kline
+kling
+klingspo
+klink
+klod
+klodt
+klosterm
+kloth
+klotz
+klowak
+klug
+kluger
+kluke
+klutts
+kmem
+knapp
+knappe
+knapper
+knapton
+knecht
+kneedler
+kneese
+kneeshaw
+kneisel
+knes-max
+kness
+knickerb
+knieps
+knighten
+knighton
+knio
+knipe
+knitl
+knittel
+knobeloc
+knobloch
+knorp
+knorr
+knouse
+knowles
+knox
+knudsen
+knut
+knute
+ko
+ko-yang
+koa
+koang
+koay
+kobayash
+kobeski
+kobiersk
+koblitz
+kobreek
+koch
+kochansk
+kochis
+kodmur
+kodnar
+kodsi
+kody
+koelbl
+koeller
+koellner
+koeman
+koen
+koenraad
+koens
+koerner
+kogan
+kogelnik
+kohalmi
+kohalmi-
+kohl
+kohler
+kohm
+kohn
+kohnhors
+kohut
+koichi
+koiste
+koji
+kok
+kok-khia
+kokkat
+koko
+kokoska
+kokosopo
+kolahi
+kolappa
+kolavenn
+kolb
+kolbe
+koldinge
+kolek
+kolenda
+kolesnik
+koleyni
+kolk
+kolkka
+kollen
+koller
+kollman
+kollmorg
+kolodiej
+kolodzie
+kolos
+kolovson
+kolski
+kolton
+koman
+komaromi
+komatsu
+komenda
+komorows
+konarski
+konda
+kondagun
+konforti
+kong
+kong-que
+koning
+konno
+konomis
+konrad
+konradi
+konstan
+konstanc
+konstant
+konstanz
+koo
+koohgoli
+koohi
+koolstra
+koolwine
+koonce
+koontz
+kooyoung
+kopala
+kopell
+kopfman
+kopke
+koprulu
+kora
+koral
+koralle
+koran @
+koray
+korbe
+korbel
+korda
+kordik
+kordon
+kordula
+kore
+korea
+korean
+korek
+korella
+koren
+koressa
+korest
+korey
+korf
+kori
+korie
+korn
+kornachu
+kornegay
+korney
+kornitze
+korpela
+korrie
+korry
+kort
+kortekaa
+kortje
+kory
+kos
+kosarski
+kosasih
+kosiorsk
+kositpai
+koskie
+koskinen
+koslowsk
+kosman
+kosnaski
+kosowan
+koss
+kostas
+kosten
+koster
+kostowsk
+kosturik
+kostyniu
+kot
+kotamart
+kotaro
+kotler
+kotval
+kotyk
+kou
+kou-yuan
+kouba
+kouhi
+kouichir
+kouidis
+kouji
+kouyuan
+kovac
+kovacs
+koval
+kovarik
+kovats
+koverzin
+kowal
+kowalcze
+kowalesk
+kowalkow
+kowallec
+kowalski
+kowalsky
+koyang
+kozak
+kozelj
+koziol
+kozlowsk
+kozsukan
+kozuch
+kozyra
+kpodzo
+krabicka
+kraehenb
+krajacic
+krajesky
+krakowet
+kramar
+kramer
+kranenbu
+krater
+kratz
+krauel
+kraus
+krausbar
+krause
+krautle
+krawchuk
+krawec
+kreiger
+kreimer
+krenn
+krenos
+kresl
+kretsch
+krick
+kridle
+krieg
+kriegler
+krienke
+krier
+kriko
+krikoria
+krinda
+kring
+kris
+krisa
+krisha
+krishan
+krishin
+krishink
+krishna
+krishnah
+krishnam
+krishnan
+krishnas
+krispin
+krissie
+krissy
+krista
+kristal
+kristan
+kriste
+kristel
+kristen
+kristi
+kristian
+kristie
+kristien
+kristin
+kristina
+kristine
+kristjan
+kristo
+kristofe
+kristoff
+kristofo
+kriston
+kristoph
+kristos
+kristy
+kristyn
+kriton
+krivossi
+kriz
+krodel
+kroeger
+krogh
+krol
+kroman
+kromer
+krone
+krotish
+krousgri
+krowlek
+krozser
+krten
+krueger
+krug
+kruger
+krull
+krummell
+krumwied
+kruse
+kruuseme
+kruziak
+krym
+krysia
+kryski
+krysko
+krysta
+krystal
+krystall
+krystle
+krystn
+krystyna
+krzyszto
+ktusn
+ku
+kuan
+kuang
+kuang-ts
+kubash
+kube
+kubik
+kubitsch
+kuchelme
+kuchinsk
+kuchta
+kucirek
+kuczynsk
+kudas
+kudrewat
+kue
+kuechler
+kuehn
+kuehne
+kuhfus
+kuhlkamp
+kuhn
+kuhns
+kui
+kui-soon
+kuivinen
+kujanpaa
+kulachan
+kuldip
+kulhy
+kulik
+kulikows
+kulinski
+kulkarni
+kulman
+kum
+kum-meng
+kumagai
+kumamoto
+kumar
+kumares
+kumi
+kummer
+kun
+kun-ming
+kundanma
+kundel
+kundert
+kunecke
+kung
+kung-chi
+kungchia
+kunie
+kunihiko
+kunitaka
+kuniyasu
+kunjal
+kunkel
+kunming
+kuntova
+kunz
+kunze
+kuo
+kuo-chua
+kuo-feng
+kuo-lian
+kuochuan
+kuofeng
+kuoliang
+kupe
+kupfer
+kupferma
+kupfersc
+kupidy
+kupitz
+kuracina
+kurash
+kurauchi
+kurczak
+kurdas
+kurdziel
+kure
+kureshy
+kurian
+kurio
+kurita
+kurniawa
+kurolapn
+kurose
+kurowski
+kursell
+kurt
+kurth
+kurtis
+kurtz
+kuruppil
+kuryliak
+kurylyk
+kus
+kusan
+kushan
+kushner
+kushnir
+kushwaha
+kushwind
+kusmider
+kusum
+kusumaka
+kuswara
+kusyk
+kutac
+kutch
+kutger
+kutschke
+kutten
+kuykenda
+kuzbary
+kuzemka
+kuzyk
+kuzz
+kvochak
+kwa
+kwak
+kwan
+kwang
+kwang-ch
+kwang-lu
+kwangchi
+kwangchu
+kwanglu
+kwangsoo
+kwant
+kwast
+kwee
+kwei
+kwei-san
+kwiatkow
+kwing
+kwissa
+kwock
+kwok
+kwok-cho
+kwok-kin
+kwok-lan
+kwok-san
+kwok-wa
+kwokchoi
+kwokkin
+kwoksang
+kwong
+ky
+kydd
+kye-hong
+kyehong
+kyeong
+kyla
+kyle
+kylen
+kyler
+kylie
+kylila
+kylo
+kylynn
+kym
+kynthia
+kyoko
+kyomun
+kyoon
+kyoung
+kyrie
+kyrstin
+kyu
+kyu-sung
+kyung
+kyungchu
+kyungyoo
+kyusung
+kyzer
+l'anglai
+l'ecuyer
+l'heureu
+l;urette
+la
+la verne
+laale
+lab
+laba
+labarge
+labauve
+labelle
+labenek
+laberge
+labfive
+labiche
+labonte
+labossie
+labrador
+labranch
+labrie
+labrinos
+labuhn
+lac
+lacasse
+lacee
+lacelle
+lacey
+lachambr
+lachance
+lachine
+lachowsk
+lachu
+lacie
+lackenba
+lackie
+lackmann
+lacombe
+lacosse
+lacoste
+lacroix
+lacy
+ladan
+ladasky
+ladd
+ladean
+ladell
+ladet
+ladonna
+ladouceu
+ladva
+ladymon
+laetitia
+lafarge
+lafargue
+lafata
+lafayett
+laferrie
+lafever
+lafferty
+laflamme
+lafleur
+lafontai
+laforge
+laframbo
+lafrance
+lagace
+lagache
+lagarde
+lagrande
+lagrange
+lahaie
+lahaye
+lahey
+lahlum
+lahteenm
+lai
+laidlaw
+laila
+laina
+laine
+lainesse
+lainey
+laing
+laird
+laitinen
+lajzerow
+laker
+lakhani
+lakhian
+lakier
+lakins
+lakoff
+lakshan
+lakshmi
+lakshmin
+lalani
+lali
+lalibert
+lalit
+lalitha
+lalka
+lally
+lalo
+lalonde
+lalu
+lamar
+lamarche
+lamarque
+lamarre
+lambert
+lambregt
+lamedica
+lamers
+lamey
+lamia
+lamirand
+lamm
+lammond
+lamond
+lamonde
+lamont
+lamontag
+lamoreux
+lamothe
+lamotte
+lamouche
+lamoureu
+lampe
+lampert
+lamphier
+lampman
+lamport
+lamy
+lan
+lana
+lanae
+lanava
+lancaste
+lance
+lancelot
+lanctot
+land
+landaver
+landay
+lande
+lander
+landers
+landis
+landman
+landon
+landriau
+landry
+lane
+lanette
+laney
+lang
+langdon
+lange
+langelie
+langenbe
+langer
+langett
+langevin
+langford
+langlais
+langley
+langlois
+langner
+langsdon
+langstaf
+langston
+langton
+lani
+lanie
+laniel
+lanier
+lanita
+lankford
+lanna
+lannan
+lanni
+lannie
+lanny
+lanoe
+lanoszka
+lanoue
+lanouett
+lans
+lansuppo
+lanteign
+lanthier
+lantos
+lantto
+lantz
+lanunix
+lanwan
+lanz
+lanzkron
+lao
+lap
+lapchak
+lapierre
+lapkin
+laplace
+laplante
+lapointe
+laporte
+lapostol
+lappan
+laprade
+lapre
+laprise
+lapsley
+laquinta
+lar
+lara
+larabie
+laraia
+laraine
+larche
+lareine
+larese
+lari
+larimer
+larin
+larina
+larine
+larisa
+larissa
+larivier
+lark
+larkin
+larkins
+larmour
+larn
+larner
+laroche
+larock
+larocque
+larose
+larribea
+larrigan
+larry
+lars
+larsen
+larson
+larstone
+larue
+laruffa
+larus
+larwill
+lary
+larysa
+laryssa
+las
+lasch
+laschuk
+laser
+laserjet
+lash
+lashansk
+lasher
+lashmit
+lashonda
+lask
+laskaris
+laskin
+laslo
+lasserre
+lassig
+lassiter
+lasson
+lassonde
+laster
+latashia
+latchfor
+latella
+laten
+latessa
+latha
+lathangu
+lathrop
+latia
+latif
+latin
+latisha
+latonia
+latonya
+latorre
+latour
+latreill
+latrena
+latrina
+lattanzi
+latulipp
+lau
+laubenhe
+lauderda
+laufer
+laugher
+laughlin
+laughrid
+laughton
+launce
+laura
+lauraine
+laural
+lauralee
+lauramae
+laure
+laureano
+lauree
+laureen
+laurel
+laurella
+lauren
+laurena
+laurence
+laurene
+laurens
+laurent
+lauretta
+laurette
+lauri
+lauria
+lauriann
+lauriaul
+laurice
+laurich
+laurie
+laurier
+laurilyn
+laurin
+laurine
+lauris
+lauristo
+lauritz
+laurna
+lauro
+laursen
+lauruhn
+laury
+lauryn
+lauson
+lauten
+lauther
+laux
+lauze
+lauzon
+lavagno
+lavallee
+lavar
+lavarnwa
+lavecchi
+laveda
+lavelle
+lavena
+lavergne
+laverna
+laverne
+lavers
+laverty
+lavictoi
+lavictor
+lavigne
+laville
+lavina
+lavinia
+lavinie
+laviolet
+lavoie
+lavonda
+lavorata
+law
+lawbaugh
+lawler
+lawless
+lawlis
+lawlor
+lawrence
+lawrie
+lawry
+laws
+lawson
+lawther
+lawton
+lay
+layanand
+layer
+layla
+layne
+layney
+layton
+laz
+lazar
+lazare
+lazaro
+lazarou
+lazarowi
+lazarus
+lazer
+lazlo
+lazure
+lazzara
+lcarrol
+le
+lea
+leader
+leads
+leafloor
+leah
+leahy
+leander
+leandra
+leang
+leann
+leanna
+leanne
+leanor
+leanora
+leaphear
+leary
+leatham
+leathers
+leaton
+leatrice
+leavell
+leaver
+leavitt
+lebaron
+lebars
+lebbie
+lebeau
+lebel
+leblanc
+leblond
+lebo
+lebon
+lecandro
+lecien
+leckie
+leclair
+leclaire
+leclerc
+lecompte
+lecours
+lecouteu
+leda
+ledamun
+leddy
+leder
+lederman
+ledet
+ledford
+ledinh
+ledou
+ledoux
+ledu
+leduc
+ledwell
+lee
+lee-anne
+leeann
+leeanne
+leecia
+leela
+leelah
+leeland
+leena
+leendert
+leenher
+leesa
+leese
+leeson
+leeuwen
+lefebvre
+lefevre
+leffler
+leftwich
+lefty
+legeny
+leger
+legg
+leggett
+legolas
+legra
+legrandv
+legris
+legros
+legrove
+legrow
+legs
+leguen
+lehar
+lehman
+lehmann
+lehrbaum
+lehtinen
+lehtovaa
+lei-see
+leia
+leiba
+leibich
+leibovit
+leibowit
+leiceste
+leicht
+leidenfr
+leiding
+leif
+leigh
+leigha
+leighann
+leighton
+leiker
+leil
+leila
+leilah
+leima
+lein
+leinen
+leisa
+leisha
+leistico
+leita
+leitch
+leite
+leith
+leitman
+leitner
+leitrick
+leiwe
+lek
+lela
+lelah
+leland
+lelia
+lem
+lemaire
+lemar
+lemay
+lemieux
+lemky
+lemley
+lemmie
+lemmy
+lemuel
+lemyre
+len
+lena
+lenard
+lenathen
+lenci
+lendon
+lenee
+lenee'
+lenehan
+lenelle
+lenette
+leney
+lengel
+lenhard
+leni
+lenin
+lenior
+lenir
+lenka
+lenna
+lennard
+lennart
+lennie
+lennig
+lenny
+leno
+lenora
+lenore
+lenox
+lentz
+leny
+lenz
+lenzi
+leo
+leo-miza
+leocadio
+leodora
+leoine
+leola
+leoline
+leon
+leona
+leonanie
+leonard
+leonardo
+leonas
+leone
+leonelle
+leonerd
+leong
+leonhard
+leonid
+leonida
+leonidas
+leonie
+leonor
+leonora
+leonore
+leontine
+leontyne
+leopold
+leora
+leoutsar
+leow
+lepage
+lepine
+lepore
+leppert
+lepreau
+lerch
+leres
+leroi
+leroux
+leroy
+les
+lesa
+lesco
+lescot
+leshia
+leshowit
+lesia
+lesley
+lesli
+leslie
+lesly
+lesmeris
+lesniak
+lesourd
+lesperan
+lessard
+lessin
+lester
+lesway
+lesya
+leta
+letarte
+letchwor
+letendre
+leth
+letha
+lethbrid
+lethebin
+lethia
+leticia
+letisha
+letitia
+letizia
+letourne
+letsome
+lett
+letta
+lettang
+letti
+lettie
+letty
+letulle
+leuenber
+leung
+leupold
+leuty
+lev
+levac
+levasseu
+leveille
+levent
+levere
+levert
+levesque
+levey
+levi
+levin
+levine
+levis
+levisky
+levitin
+levo
+levon
+levy
+lew
+lewandow
+lewek
+lewellen
+lewes
+lewie
+lewinski
+lewis
+lewiss
+lewright
+lex
+lexi
+lexie
+lexine
+lexis
+lexy
+ley
+leyden
+leydig
+leyla
+leyton
+lezlee
+lezley
+lezlie
+lheureux
+li
+li-ming
+li-xi
+lia
+liad
+lial
+liam
+lian
+lian-hon
+liana
+liane
+liang
+liangchi
+lianna
+lianne
+liao
+lias
+liason
+liaurel
+liaw
+lib
+libadmin
+libbey
+libbi
+libbie
+libby
+liber
+libor
+libov
+libraria
+licandro
+licata
+lication
+licerio
+licha
+licht
+lichtenb
+lichtens
+lichum
+lichun
+licia
+lida
+liddell
+liddle
+lidia
+lidio
+lidster
+lidstone
+liduine
+lieberma
+liebrech
+liedl
+lief
+liem
+lien
+lieneman
+lienhard
+liepa
+liesa
+liesbeth
+liese
+liesel
+liesemer
+liesenbe
+liesie
+liesl
+lieure
+lievaart
+liew
+lifshey
+lightfie
+lightfoo
+lighthal
+lighthis
+lightowl
+ligon
+ligurs
+lijphart
+likert
+likourgi
+lil
+lila
+lilah
+lilas
+lili
+lilia
+lilian
+liliana
+liliane
+lilias
+lilin
+lilith
+lilla
+lillenii
+lilli
+lillian
+lillie
+lillien
+lillis
+lilllie
+lilly
+lily
+lilyan
+limeina
+limerick
+limin
+liming
+lin
+lin-chan
+lin-e
+lin-ni
+lina
+linas
+linaugh
+linback
+linberg
+linc
+linchang
+lincoln
+lind
+linda
+linda-jo
+lindamoo
+lindberg
+lindell
+lindemul
+linden
+lindenla
+linder
+lindholm
+lindi
+lindie
+lindler
+lindon
+lindow
+lindquis
+lindsay
+lindsey
+lindstro
+lindsy
+lindt
+lindy
+line
+linea
+linebarg
+linegar
+lineham
+linell
+linet
+lineth
+linette
+linfield
+ling
+ling-hui
+ling-yu
+ling-yue
+ling-zho
+lingafel
+linghui
+lingyan
+lingyu
+linh
+link
+linke
+linklett
+linley
+linn
+linnea
+linnell
+linnet
+linni
+linnie
+lino
+linoel
+linsley
+linton
+linus
+linwood
+linzie
+linzy
+lion
+lionel
+lionello
+liou
+lipari
+lipe
+liping
+lippens
+lippman
+lipschut
+lipscomb
+lipski
+lipton
+lira
+lisa
+lisabeth
+lisah
+lisak
+lisandro
+lisbeth
+lisch
+lischyns
+lise
+lisee
+lisenchu
+lisetta
+lisette
+lish
+lisha
+lishe
+liskoff
+lisle
+liss-mon
+lissa
+lissi
+lissie
+lissmoni
+lissy
+list
+lister
+liston
+listonic
+lita
+litherla
+litt
+littau
+littlewo
+litva
+litz
+litzenbe
+liu
+liuka
+liv
+liva
+livas
+livek
+livengoo
+liverman
+livermor
+lives
+livezey
+livia
+livingst
+livinsto
+livio
+liviu
+livnah
+livshits
+livvie
+livvy
+livvyy
+livy
+liwana
+liwen
+lixi
+liyuan
+liyun
+liz
+liza
+lizabeth
+lizak
+lizbeth
+lizette
+lizz
+lizzi
+lizzie
+lizzy
+ljiljana
+ljilyana
+ljubicic
+llacuna
+llaguno
+llanos
+llewelly
+llopart
+lloyd
+llywelly
+lo
+loa
+loadbuil
+loader
+loadsum
+loan
+loarie
+loay
+lobasso
+lobaugh
+lobello
+lober
+lobianco
+lobin
+lobue
+loc
+locicero
+lock
+lockard
+locke
+locken
+lockett
+lockhart
+lockwood
+lococo
+lodesert
+lodovico
+loe
+loeffler
+loeiz
+loel
+loella
+loes
+loesje
+loewen
+loftis
+logan
+logaraja
+loggins
+loghry
+logntp
+logue
+loh
+lohoar
+loi
+loire
+lois
+loise
+loiseau
+loisel
+lojewski
+loke
+loker
+lola
+loleta
+lolita
+lollis
+lolly
+lombard
+lombardo
+lombardy
+lombrink
+lommen
+lon
+lon-chan
+lona
+lonald
+lonchan
+londhe
+london
+lonee
+lonergan
+long
+long-chu
+longbott
+longcham
+longchun
+longdist
+longfiel
+longhenr
+longo
+longpre
+longsong
+longtin
+lonhyn
+loni
+lonidas
+lonn
+lonna
+lonnard
+lonneke
+lonni
+lonnie
+lonnman
+lonny
+lonsdale
+loo
+loon
+loong
+loos
+looyen
+lope
+loper
+loperena
+lopes
+lopez
+lopiano
+lopinski
+loponen
+loquerci
+lora
+lora-lee
+lorain
+loraine
+loralee
+loralie
+loralyn
+lorance
+lorant
+lorcan
+lord
+loree
+loreen
+lorelei
+lorelle
+lorelynn
+loren
+lorena
+lorenc
+lorene
+lorens
+lorenz
+lorenza
+lorenzen
+lorenzo
+loreta
+loretta
+lorettal
+lorette
+lorfano
+lori
+loria
+lorianna
+lorianne
+lorie
+lorien
+lorilee
+lorilyn
+lorimer
+lorin
+lorincz
+lorinda
+lorine
+loring
+lorint
+loris
+lorita
+lorletha
+lorli
+lormor
+lorna
+lorne
+loro
+lorrain
+lorraine
+lorrayne
+lorrel
+lorri
+lorrie
+lorrin
+lorrine
+lorry
+lortie
+lory
+loryn
+los
+losfeld
+losier
+loso
+losses
+lotan
+lote
+lotfalia
+lotfi
+lothaire
+lothar
+lothario
+lotochin
+lott
+lotta
+lotte
+lotti
+lottie
+lotty
+lotz
+lou
+lou-hell
+louann
+loucel
+loudiadi
+louella
+lough
+loughery
+loughran
+loughrin
+louhelle
+louie
+louiqa
+louis
+louis-ph
+louis-re
+louisa
+louise
+louisett
+louissei
+louk
+louka
+loukas
+louladak
+lourdes
+loutitia
+loux
+lovas
+lovatt
+loveday
+lovegrov
+lovejoy
+lovekin
+lovelace
+loveland
+loveless
+lovell
+lovett
+lovin
+lovina
+lovitt
+lowder
+lowe
+lowell
+lowery
+lowietje
+lowman
+lowrance
+lowrie
+lowry
+lowther
+loxton
+loy
+loyd
+loydie
+loyer
+loyola
+loyst
+loza
+lozier
+lozinski
+lpo
+lrc
+lrcrich
+lrcrtp
+lsi
+lsiunix
+lu
+luan
+luann
+luanne
+lubliner
+lubna
+lubomir
+lubomyr
+luc
+luca
+lucais
+lucas
+lucco
+luce
+lucente
+lucey
+lucho
+luci
+lucia
+lucian
+luciana
+luciani
+luciano
+lucias
+lucie
+lucien
+lucienne
+lucifer
+lucila
+lucile
+lucilia
+lucille
+lucina
+lucinda
+lucine
+lucio
+lucita
+lucius
+lucking
+lucky
+lucretia
+lucy
+ludchen
+ludovico
+ludovika
+ludvig
+ludvikse
+ludwick
+ludwig
+lue
+luella
+luelle
+luen
+luetchfo
+luetke
+luettcha
+luff
+lugsdin
+lugwig
+luh-maan
+luhcs
+luhmaan
+lui
+luigi
+luin
+luis
+luisa
+luise
+luiza
+lujanka
+luk
+luk-shun
+lukas
+lukassen
+lukaszew
+luke
+luker
+lukers
+lukic
+lukie
+lukshis
+lukshun
+lula
+lulita
+lulu
+lum
+lum-wah
+lumley
+lumsden
+lun
+luna
+lund
+lunde
+lundhild
+lundstro
+lundy
+lunk
+lunn
+luoedora
+luoma
+luong
+lupatin
+lupher
+lupien
+luping
+luquire
+lura
+lurette
+luria
+lurleen
+lurlene
+lurline
+lusa
+luscombe
+lussier
+luszczek
+lutan
+lutero
+luther
+luthin
+lutz
+luu
+luuk
+luwemba
+luxford
+luying
+luyten
+luz
+luzarrag
+luzine
+ly
+ly-khanh
+lyall
+lychak
+lyda
+lydda-ju
+lydia
+lydie
+lydon
+lyell
+lyle
+lyliston
+lyman
+lyn
+lynda
+lyndal
+lynde
+lyndel
+lyndell
+lyndia
+lyndon
+lyndsay
+lyndsey
+lyndsie
+lyndy
+lyne
+lynea
+lynelle
+lynett
+lynetta
+lynette
+lynham
+lynn
+lynna
+lynne
+lynnea
+lynnell
+lynnelle
+lynnet
+lynnett
+lynnette
+lynsey
+lynton
+lynwood
+lyon
+lyons
+lyse
+lysinger
+lyssa
+lystad
+lystiuk
+lystuik
+lysy
+lytle
+lzrd
+maahs
+maaike
+maala
+maan
+maarten
+maas
+mab
+mabel
+mabelle
+mabes
+mable
+mabson
+mabuchi
+mac
+mac maid
+macadams
+macalik
+macarthu
+macaulay
+macbride
+maccallu
+maccarth
+macchius
+maccombi
+macconai
+maccorma
+macderma
+macdonal
+macdonel
+macdouga
+macdowal
+macduff
+mace
+macelwee
+macfarla
+macgilli
+macgrego
+mach
+machan
+machatti
+machika
+machnick
+maciej
+maciejew
+maciel
+macinnes
+macinnis
+macisaac
+maciver
+mack
+mackay
+mackel
+mackenzi
+mackey
+mackin
+mackinno
+macklem
+macklin
+mackzum
+maclaren
+maclauri
+maclean
+maclella
+maclenna
+macleod
+macmarti
+macmeeki
+macmilla
+macmulli
+macnaugh
+macneil
+macneill
+macnicol
+macoosh
+macphail
+macphers
+macpost
+macquist
+macrae
+macreyno
+macsuppo
+mada
+madalena
+madalene
+madalyn
+madan
+madani
+maddalen
+maddi
+maddie
+maddix
+maddox
+maddy
+madel
+madelain
+madelein
+madelena
+madelene
+madelin
+madelina
+madeline
+madella
+madelle
+madelon
+madelyn
+mader
+madge
+madgett
+madhav
+madhavan
+madhu
+madhukar
+madigan
+madill
+madisett
+madison
+madl
+madlen
+madlin
+mado
+madonna
+madras
+madsen
+maduri
+mady
+mae
+maegan
+maennlin
+maenpaa
+maeya
+mag
+magbee
+magda
+magdaia
+magdale
+magdalen
+magdi
+magdiel
+magdy
+mage
+maged
+magee
+mages
+maggee
+maggi
+maggie
+maggy
+maghsood
+maginley
+maglione
+magnan
+magnolia
+magnum
+magnuson
+magnusse
+magnusso
+magrath
+magri
+mags
+maguire
+mah
+mahaffee
+mahala
+mahalia
+mahaling
+mahbeer
+mahboob
+mahendra
+maher
+mahesh
+maheu
+maheux
+mahfouz
+mahibur
+mahiger
+mahin
+mahlen
+mahlig
+mahlon
+mahmood
+mahmoud
+mahmud
+mahmut
+mahn
+mahon
+mahonen
+mahoney
+mahoney-
+mahshad
+mai
+maia
+maible
+maid
+maidenhe
+maidens
+maidisn
+maidlab
+maidsir
+maidxpm
+maier
+maiga
+maighdil
+maijala
+maika
+maikawa
+maikhanh
+mail
+mailroom
+mainardi
+maine
+mainoo
+maint
+mainvill
+mainwari
+mair
+maire
+maisey
+maisie
+maison
+maisonne
+maitilde
+maitland
+maitreya
+majd
+maje
+majeed
+majek
+majella
+majernik
+majid
+majmudar
+major
+majors
+majumdar
+majury
+mak
+makam
+makarand
+makarenk
+makary
+makeda
+makiko
+makino
+makinson
+makohoni
+makoid
+makoto
+maksoud
+maksuta
+mal
+mala
+malachi
+malaclyp
+malaher
+malaika
+malaivon
+malam
+malani
+malanie
+malanos
+malavia
+malaysia
+malchy
+malcolm
+malden
+malec
+malee
+malek
+malena
+maleski
+malethia
+malgorza
+malgosia
+malhi
+malhotra
+malia
+maliepaa
+malik
+malina
+malinda
+malinde
+malisic
+maliski
+malissa
+malissia
+malizia
+malkani
+malkiewi
+malkinso
+mallari
+malle
+mallejac
+maller
+mallett
+mallik
+mallissa
+mallorie
+mallory
+malloy
+mallozzi
+malmqvis
+malone
+maloney
+malorie
+malory
+malott
+malta
+maltby
+maltese
+maludzin
+malus
+malva
+malvin
+malvina
+malynda
+malynne
+malynows
+malyszka
+malzahn
+mame
+mami
+mamie
+mamikuni
+mamoru
+mamoulid
+man
+man-fai
+manageme
+manager
+manahil
+manalac
+manami
+manas
+manavend
+manceau
+manchest
+mancini
+mand
+manda
+mandana
+mandayam
+mandel
+mandevil
+mandi
+mandie
+mandrusi
+mandruso
+mandy
+maneatis
+manek
+maness
+manette
+manfred
+manfredo
+mang
+mangione
+mangum
+manh
+manhatte
+mani
+manica
+manickam
+manijeh
+manilal
+manimozh
+maninder
+manish
+manitius
+manitsas
+manjari
+manjeri
+manjinde
+manjit
+manjrike
+mankowsk
+manley
+manli
+manly
+manmohan
+mann
+manna
+manner
+manners
+mannie
+manning
+mannino
+mannion
+manno
+manny
+mano
+manoel
+manoharm
+manoj
+manol
+manolios
+manolis
+manolo
+manon
+manou
+manouch
+manoukia
+mansbrid
+mansell
+manshih
+mansi
+manson
+mansour
+mansoura
+mansouri
+mansukha
+mansum
+mantell
+manto
+manuel
+manuela
+manus
+manuszak
+manverse
+manwarin
+manya
+mao
+maohua
+mapes
+mapile
+mapp
+mar
+mara
+marabel
+maracle
+maragoud
+marano
+marasco
+marasliy
+marc
+marc-and
+marc-ant
+marcanti
+marcanto
+marce
+marceau
+marcel
+marcela
+marcelia
+marcelis
+marcella
+marcelle
+marcelli
+marcello
+marcellu
+marcelo
+marcey
+march
+marchall
+marchand
+marchant
+marcheck
+marchell
+marchese
+marchett
+marci
+marcia
+marcie
+marcile
+marcilie
+marcille
+marciniu
+marcio
+marco
+marcom
+marconi
+marcos
+marcotte
+marcoux
+marcum
+marcus
+marcy
+mardi
+marea
+mareah
+marek
+marella
+maren
+marena
+marenger
+maressa
+marette
+marg
+marga
+margalit
+margalo
+margaret
+margarie
+margarit
+margaux
+marge
+margeaux
+margery
+marget
+margetso
+margette
+margheri
+margheti
+margi
+margie
+margit
+margitta
+margo
+margot
+margret
+margriet
+margueri
+margy
+marhta
+mari
+maria
+mariabel
+mariaele
+mariaisa
+mariam
+marian
+mariana
+mariani
+mariann
+marianna
+marianne
+maribel
+maribell
+maribeth
+marice
+maridel
+marie
+marie-an
+marie-je
+marie-jo
+marie-lu
+marie-na
+marieann
+mariejea
+marieka
+marieke
+mariel
+mariela
+mariele
+marielle
+mariesar
+mariet
+marietta
+mariette
+marigold
+marijke
+marijn
+marijo
+marika
+mariland
+marilee
+marilin
+marillin
+marily
+marilyn
+marilynn
+marin
+marina
+marinaro
+marineau
+marinett
+marinna
+marino
+marinos
+mario
+marion
+mariotti
+mariou
+mariquil
+maris
+marisa
+marisca
+marisela
+mariska
+marissa
+marit
+marita
+maritan
+maritsa
+maritza
+marius
+mariya
+mariza
+marj
+marja
+marjan
+marje
+marjean
+marjet
+marji
+marjie
+marjo
+marjoke
+marjolei
+marjorie
+marjory
+marjy
+mark
+markell
+markes
+marketa
+marketin
+markham
+markiewi
+markins
+markland
+markle
+markm
+markmeye
+marko
+markos
+markovic
+marks
+markus
+marla
+marlaine
+marlane
+marleah
+marleau
+marlee
+marlee-j
+marleejo
+marleen
+marlena
+marlene
+marley
+marlie
+marlies
+marlin
+marline
+marling
+marlo
+marloes
+marlon
+marlow
+marlowe
+marlsela
+marlyn
+marlyne
+marmaduk
+marmen
+marmillo
+marmion
+marna
+marne
+marneris
+marney
+marni
+marnia
+marnie
+marnix
+maroucho
+maroun
+marples
+marquart
+marquez
+marquita
+marr
+marra
+marrec
+marren
+marrett
+marriet
+marrilee
+marriott
+marris
+marrissa
+marron
+marrone
+marryann
+mars
+marscha
+marschew
+marsden
+marsh
+marsha
+marshal
+marshall
+marshaus
+marshman
+marsie
+marsiell
+marson
+marston
+mart
+marta
+martainn
+martel
+martell
+martelle
+marten
+martens
+martenso
+martenst
+martguer
+martha
+marthe
+marthena
+marti
+martica
+martie
+martijn
+martin
+martina
+martince
+martinci
+martine
+martinea
+martinez
+marting
+martino
+martins
+martinus
+martita
+marttine
+marturan
+marty
+martyn
+martynne
+marui
+marum
+maruszak
+maruszew
+marv
+marve
+marvel
+marvell
+marven
+marvette
+marvin
+marwan
+marwin
+marx
+mary
+mary-ann
+mary-ell
+mary-jan
+mary-jo
+mary-mic
+mary-pat
+marya
+maryak
+maryam
+maryann
+maryanna
+maryanne
+marybell
+marybeth
+maryelle
+maryjane
+maryjo
+marykate
+marykay
+maryl
+marylee
+marylin
+marylind
+marylou
+marylynn
+marymarg
+maryn
+maryrose
+marys
+marysa
+maryse
+marysue
+maryvonn
+marzella
+marzullo
+masa
+masahiro
+masako
+masales
+masamich
+masanao
+masanobu
+masao
+masapati
+masaru
+masciare
+masha
+mashura
+masika
+masini
+maskell
+maskery
+maslen
+maso
+mason
+masood
+masooda
+masotti
+masoud
+masse
+massengi
+massey
+massicot
+massimil
+massimo
+massinga
+masson
+massone
+massonne
+massoud
+massoudi
+massumi
+mastella
+mastenbr
+masterpl
+masters
+masterso
+mastrang
+mastroma
+mastrona
+masty
+mat
+mata
+mataga
+matalon
+matatall
+matelda
+mateo
+materkow
+materna
+mathe
+mather
+matheson
+mathew
+mathews
+mathewso
+mathian
+mathias
+mathieso
+mathieu
+mathilda
+mathilde
+mathis
+mathiue
+mathur
+mathurin
+mathus
+matias
+matibag
+matilda
+matilde
+matlock
+matney
+matrin
+matrundo
+mats
+matson
+matsubar
+matsugu
+matsunag
+matsushi
+matsuzak
+matsuzaw
+matt
+matteau
+matteo
+mattes
+matthaeu
+mattheus
+matthew
+matthews
+matthias
+matthieu
+matthiew
+matthus
+matti
+mattias
+mattie
+mattiuss
+mattiuz
+matton
+mattson
+matty
+matusik
+mau
+mau-pin
+mauck
+maud
+maudalis
+maude
+maudie
+maudrie
+maudy
+mauer
+mauldin
+maund
+mauney
+maunu
+maupin
+maura
+maure
+maureen
+maureene
+maurene
+maurer
+maurice
+mauricio
+maurie
+maurijn
+maurine
+maurino
+maurise
+maurita
+maurits
+maurizia
+maurizio
+mauro
+maury
+maveety
+mavis
+mavra
+mavrou
+mawani
+mawji
+mawst
+max
+maxey
+maxi
+maxie
+maxim
+maximili
+maximo
+maxin
+maxine
+maxseine
+maxsom
+maxwell
+maxy
+may
+maya
+mayaram
+mayasand
+maybee
+maybelle
+maycel
+maycock
+maye
+mayea
+mayenbur
+mayer
+mayes
+mayeul
+mayfield
+mayhugh
+mayi
+maylynn
+mayman
+maynard
+mayne
+maynes
+maynie
+maynord
+mayo
+mayor
+mayoux
+mayr
+mayr-ste
+mays
+mayumi
+mayya
+mazahir
+mazanji
+mazarick
+mazen
+mazey
+mazlack
+mazurek
+mazyar
+mazzei
+mbrose
+mc
+mc alpin
+mc ginn
+mcadam
+mcadams
+mcadorey
+mcafee
+mcalear
+mcaleer
+mcaliste
+mcallist
+mcallum
+mcandrew
+mcarthur
+mcateer
+mcaulay
+mcauliff
+mcbeth
+mcbrayne
+mcbride
+mcbroom
+mcbryan
+mccabe
+mccaffer
+mccaffit
+mccaffre
+mccaig
+mccain
+mccall
+mccalla
+mccallen
+mccallum
+mccampbe
+mccandle
+mccann
+mccarrel
+mccarrol
+mccarron
+mccarthy
+mccartin
+mccartne
+mccarty
+mccaughe
+mccauley
+mccaw
+mcclain
+mcclarre
+mcclary
+mcclean
+mccleery
+mcclella
+mcclendo
+mcclenno
+mcclinto
+mccloske
+mcclough
+mcclure
+mccluske
+mcclymon
+mccoll
+mccollam
+mccollum
+mccolman
+mccomb
+mccombs
+mcconagh
+mcconkey
+mcconnel
+mcconney
+mccord
+mccorkel
+mccorkle
+mccormac
+mccormic
+mccorquo
+mccoy
+mccoy-ca
+mccracke
+mccrain
+mccraney
+mccray
+mccready
+mccreano
+mccrear
+mccreath
+mccreesh
+mccrimmo
+mccuaig
+mccue
+mccullen
+mcculloc
+mccullog
+mccullou
+mccully
+mccune
+mccurdy
+mccusker
+mcdade
+mcdaniel
+mcdavitt
+mcdermot
+mcdevitt
+mcdonald
+mcdonnel
+mcdonoug
+mcdoom
+mcdougal
+mcdowall
+mcdowell
+mcduffie
+mcdunn
+mceacher
+mcelderr
+mcelhone
+mcelligo
+mcellist
+mcelrea
+mcelroy
+mcevoy
+mcewan
+mcewen
+mcewen-r
+mcfadden
+mcfall
+mcfarlan
+mcfeely
+mcgallia
+mcgarry
+mcgaughe
+mcgee
+mcgehee
+mcgeown
+mcghee
+mcgill
+mcgillic
+mcgillvr
+mcgilly
+mcginley
+mcginn
+mcglynn
+mcgonagl
+mcgoniga
+mcgorman
+mcgough
+mcgovern
+mcgowan
+mcgracha
+mcgrath
+mcgregor
+mcgruder
+mcguigan
+mcguinne
+mcguire
+mcgurn
+mchale
+mchan
+mcharg
+mchugh
+mcilrath
+mcilroy
+mcinerne
+mcinnis
+mcintee
+mcintire
+mcintomn
+mcintosh
+mcintyre
+mcisaac
+mciver
+mckay
+mckeage
+mckeague
+mckearne
+mckechni
+mckee
+mckeegan
+mckeen
+mckeigha
+mckeitha
+mckenna
+mckenney
+mckenzie
+mckeone
+mckeown
+mckerrow
+mckibben
+mckibbin
+mckibbon
+mckie
+mckillop
+mckinlay
+mckinley
+mckinney
+mckinnon
+mcknelly
+mcknight
+mckusick
+mclachla
+mclaren
+mclauchl
+mclaughl
+mclawhon
+mclawhor
+mclean
+mclellan
+mclemore
+mclenagh
+mclendon
+mclennan
+mcleod
+mcluskie
+mcmahan
+mcmahon
+mcmanis
+mcmann
+mcmannen
+mcmanus
+mcmaster
+mcmeegan
+mcmenami
+mcmichae
+mcmillan
+mcmillen
+mcmillia
+mcmillio
+mcminn
+mcmonagl
+mcmullen
+mcmullin
+mcmurray
+mcnab
+mcnabb
+mcnair
+mcnally
+mcnamara
+mcnamee
+mcnaught
+mcneal
+mcnealy
+mcneely
+mcneese
+mcneil
+mcneill
+mcneilly
+mcnerlan
+mcnerney
+mcnichol
+mcnicol
+mcniel
+mcnitt
+mcnulty
+mcphaden
+mcphail
+mcphee
+mcpherso
+mcquaid
+mcquaig
+mcquarri
+mcqueen
+mcrae
+mcrann
+mcready
+mcritchi
+mcronald
+mcruvie
+mcshane
+mcsheffr
+mcsorley
+mcsween
+mctaggar
+mctavish
+mctierna
+mcturner
+mcvay
+mcveety
+mcveigh
+mcvey
+mcvicar
+mcvicker
+mcwalter
+mcwaters
+mcwherte
+mcwhinne
+mcwhorte
+mcwilton
+mdhazali
+mduduzi
+me
+meachum
+mead
+meade
+meadows
+meads
+meagan
+meaghan
+meagher
+mealin
+meany
+meara
+measures
+mebine
+mechael
+meche
+mechelle
+mecher
+meckler
+meckley
+mecteau
+medefess
+medeiros
+medel
+meder
+medill
+medioni
+medlin
+medlock
+mednick
+medria
+meehan
+meeks
+meena
+meenaksh
+meer
+meera
+meerveld
+meese
+meeting
+meffe
+meg
+megan
+megen
+meggi
+meggie
+meggitt
+meggo
+meggy
+meghan
+meghani
+meghann
+megumi
+mehboob
+mehd
+mehdi
+mehelis
+mehetabe
+mehlhaff
+mehmet
+mehmud
+mehrdad
+mehrez
+mehrzad
+mehta
+mehul
+mei
+mei-jywa
+meier
+meijer
+meijywan
+meikle
+meilleur
+mein
+meining
+meir
+meiser
+meisner
+meissner
+mejdal
+mejia
+mejury
+mel
+mela
+melamie
+melana
+melani
+melania
+melanie
+melanson
+melantha
+melany
+melaura
+melba
+melberta
+melbourn
+meldia
+meldrum
+melecio
+meleg
+melek
+melesa
+meleski
+meleskie
+melessa
+meletios
+melfi
+melford
+melhem
+meli
+melicent
+melina
+melinda
+melinde
+melinie
+melisa
+melisand
+melisend
+melisent
+melissa
+melisse
+melita
+melitta
+melkild
+mella
+melli
+mellicen
+mellie
+mellisa
+mellisen
+mello
+melloney
+mellor
+melly
+melnyk
+melodee
+melodie
+melody
+meloling
+meloney
+melonie
+melony
+melosa
+melton
+melucci
+melva
+melvin
+melvina
+melvyn
+melynda
+men-kae
+menaker
+menard
+menasce
+menashi
+menashia
+mencer
+mendel
+mendelso
+mendez
+mendie
+mendolia
+mendonca
+mendorf
+mendoza
+mendy
+menechia
+menendez
+meng
+mengly
+menkae
+menke
+menna
+mennie
+menon
+menqiong
+mensch
+mensinka
+mentor
+menyhart
+menzel
+menzies
+mer
+merat
+merb
+mercedes
+mercer
+merci
+mercie
+mercier
+mercilin
+mercy
+merdia
+meredeth
+meredith
+merell
+merelyn
+meres
+mereu
+meriann
+meridel
+meridew
+meridian
+meridith
+meriel
+merilee
+meriline
+merill
+merilyn
+merinder
+meris
+merissa
+meriweth
+merizzi
+merkling
+merl
+merla
+merle
+merlin
+merlina
+merline
+mermelst
+merna
+merola
+merralee
+merrel
+merrett
+merrick
+merridie
+merrie
+merriell
+merrile
+merrilee
+merrili
+merrill
+merrills
+merrils
+merrily
+merrithe
+merritt
+merry
+merryman
+merrywea
+mersch
+mersey
+mersinge
+merton
+merunix
+merv
+mervin
+mervyn
+merwin
+merworth
+merwyn
+meryl
+merylene
+meseberg
+mesirov
+meskimen
+mesko
+mesquita
+message
+messer
+messeria
+messersc
+messick
+messier
+messinge
+mesut
+meszaros
+meta
+metcalf
+metcalfe
+metelski
+meter
+metheny
+metherel
+methi
+methiwal
+methot
+methul
+metin
+metler
+metraile
+metrics
+mettrey
+metyn
+metz
+metzger
+metzler
+meubus
+meunier
+mevis
+mewa
+meyer
+meyerink
+meyers
+meza
+mezzano
+mezzoius
+mfgeng
+mgmt
+mia
+miao
+miasek
+mic
+micaela
+micah
+micahel
+miceli
+micgael
+micha
+michael
+michael-
+michaela
+michaeli
+michaell
+michaels
+michaez
+michail
+michailo
+michal
+michale
+michalos
+michaud
+micheal
+micheil
+michel
+michele
+michelin
+michell
+michella
+michelle
+michels
+michelse
+michelso
+michelus
+michi
+michial
+michie
+michiel
+michigan
+michihir
+michiko
+michiya
+mick
+mickens
+mickey
+micki
+mickie
+micklos
+micky
+mico
+micro
+microfab
+micucci
+mid
+middlebr
+middleto
+midge
+midha
+miek
+mielke
+miello
+miep
+miernik
+miers
+mierwa
+mietek
+miezitis
+migdalia
+mignault
+mignon
+mignonne
+miguel
+miguela
+miguelit
+mihaela
+mihai
+mihail
+mihan
+mihara
+mihir
+mihm
+miho
+mihran
+mika
+mikael
+mikaela
+mike
+mikel
+mikelis
+mikeloni
+mikey
+mikhail
+miki
+mikie
+mikihito
+mikkel
+miklos
+miko
+mikol
+miksik
+mikulka
+mil
+mila
+milaknis
+milakovi
+milan
+milanfar
+milanovi
+milar
+milary
+milburn
+mildred
+mildrid
+mile
+milena
+miles
+milford
+milian
+milicent
+milind
+milinkov
+milissen
+milka
+mill
+millaire
+millar
+millard
+millen
+miller
+millero
+millerwo
+millette
+milletti
+milli
+millicen
+millie
+milligan
+millisen
+millo
+milloy
+mills
+millspau
+millward
+milly
+milman
+milmine
+milne
+milner
+milo
+milor
+milotte
+milou
+milstead
+milston
+milt
+miltenbu
+miltie
+milton
+miltos
+milty
+milutino
+milway
+milzie
+mim
+mimi
+mims
+min
+min-jho
+mina
+minai
+minakata
+minako
+minami
+minard
+minas
+mincey
+minck
+minda
+mindy
+minegish
+miner
+minerva
+minesh
+minetola
+minetta
+minette
+ming
+ming-cha
+ming-chu
+ming-hue
+ming-min
+ming-pin
+ming-tzo
+ming-yua
+mingchu
+minghuei
+minghwan
+mingpin
+mingtzon
+mingyuan
+minh
+minh-phu
+minhwi
+minichil
+minjho
+minkus
+minna
+minnamin
+minne
+minnesot
+minni
+minniche
+minnie
+minnnie
+minny
+minor
+minority
+minoru
+minos
+minshall
+minsky
+minta
+minter
+minthorn
+minyard
+minzhu
+miodrag
+miof mel
+mior
+miotla
+mips
+miquela
+miquette
+mir
+mira
+mirabel
+mirabell
+miran
+miranda
+mirande
+mirarchi
+mireiell
+mireille
+mirek
+mirella
+mirelle
+mirenda
+miriam
+miriamne
+mirian
+mirilla
+mirin
+mirjam
+mirko
+mirna
+miro
+miron
+miroslav
+miroslaw
+mirza
+mis
+misbah
+mischa
+misczak
+misha
+mishina
+misium
+miskelly
+misko
+misra
+miss
+missagh
+missaili
+missie
+misslitz
+missy
+mister
+misti
+mistry
+mistulof
+misty
+misutka
+mitalas
+mitch
+mitchael
+mitchel
+mitchell
+mitchels
+mitchler
+mitesh
+mitra
+mitrani
+mitrou
+mitsui
+mitsuko
+mitsuru
+mitsuter
+mittleid
+mitzi
+mivehchi
+miwa
+miwako
+miyuki
+mizerk
+mkpwent
+mkt
+mlacak
+mlcoch
+mmail
+mmdf
+mnason
+mo
+moataz
+moazzami
+mobasher
+mobley
+mocock
+modaffer
+modesta
+modestia
+modestin
+modestos
+modestou
+modesty
+modh
+modi
+modigh
+modl
+modotto
+modula-2
+modula2
+moe
+moebes
+moel
+moen
+moening
+moeschet
+moetteli
+moffatt
+moffet
+moffett
+mofina
+moghe
+moghis
+mogridge
+moh
+moh'd
+mohajeri
+mohamad
+mohamed
+mohammad
+mohammed
+mohan
+mohandas
+mohandis
+moharram
+mohd
+mohideen
+mohler
+mohr
+mohrmann
+mohsen
+moina
+moira
+moise
+moises
+moishe
+moiz
+moizer
+moja
+mojgani
+mojtaba
+mok
+mok-fung
+mokbel
+mokhtar
+mokros
+molani
+moledina
+moleski
+moll
+mollee
+mollerus
+molli
+mollie
+molloy
+molly
+molnar
+molochko
+moloney
+molson
+molyneux
+mombourq
+mommy
+momon
+momtahan
+mona
+monachel
+monaco
+monaghan
+monah
+monahan
+monardo
+moncef
+moncion
+monck
+moncur
+mondher
+mondor
+monet
+monette
+moneypen
+monforto
+monfre
+mong
+mong-tse
+mongo
+mongtsen
+moni
+monica
+moniek
+monika
+monino
+monique
+moniter
+monling
+monn
+monro
+monroe
+monson
+montag
+montague
+montaldo
+montanez
+montange
+montanin
+montcalm
+monte
+monteene
+monteggi
+monteiro
+montelli
+montero
+monteros
+montgome
+monti
+montijo
+montmore
+montor
+montoute
+montoya
+montreal
+montreui
+montsion
+montsko
+montuno
+monty
+mony
+monzo
+moo-youn
+mooder
+moogk
+mooken
+moomey
+moon
+moondog
+mooney
+moonistt
+moorcrof
+moore
+moore-vi
+moorefie
+moorer
+moores
+moorhous
+moosavi
+mora
+moraetes
+morais
+morales
+moran
+moray
+morcinel
+mord
+mordecai
+mordecha
+morden
+mordy
+morearty
+moreau
+moree
+moreen
+morehead
+morek
+moreland
+morelli
+morena
+moreno
+moreton
+morettin
+morey
+morgan
+morgan-c
+morgana
+morganic
+morganne
+morgen
+morglan
+morgun
+mori
+moria
+moriarty
+morie
+morimoto
+morin
+morini
+morino
+moris
+morishig
+morissa
+morisset
+moritz
+moriyama
+morlee
+morley
+morly
+morna
+morneau
+morocz
+moroney
+moroz
+morra
+morreale
+morrie
+morrin
+morris
+morrison
+morrisse
+morry
+morse
+morson
+mort
+morten
+morteza
+mortie
+mortimer
+morton
+morty
+moschopo
+mose
+moseby
+moselle
+moser
+moses
+mosetta
+moshe
+moshinsk
+moshiri
+moshtagh
+moshy
+mosis
+moskalik
+mosley
+moss
+mostafa
+mostovac
+mosur
+mot
+motashaw
+motasim
+motaz
+mote
+motoko
+mototsun
+mott
+motwani
+mou
+moua
+mouat
+moubarak
+mougy
+mouillau
+moulds
+moulsoff
+moulton
+mouna
+mounir
+mountfor
+moussa
+mousseau
+moussett
+moveline
+movies
+mowat
+mowbray
+mowle
+moxham
+moxley
+moxon
+moy
+moya
+moyano
+moyce
+moyenda
+moyer
+moyers
+moyes
+moyna
+moynihan
+moyoli
+moyra
+mozart
+mozek
+mozelesk
+mozelle
+mozes
+mraz
+mrozinsk
+mrugesh
+msg
+mshia
+mtcbase
+mtl
+mtlipadm
+mtnview
+mu-cheng
+mucci
+mucheng
+muchow
+mucklow
+mudd
+mudge
+mudie
+mudry
+muehle
+mueller
+muenster
+muffin
+mufi
+mufinell
+mufti
+mugniot
+muh-cher
+muhammad
+muhammed
+muhchern
+mui
+muinck
+muir
+muire
+muise
+mujahed
+mukai
+mukhar
+mukharji
+mukherje
+mukhopad
+mukul
+mukund
+mulder
+mulders
+muldoon
+mulero
+mulherka
+mulholla
+mullaly
+mullaney
+mullarne
+mullen
+muller
+mullett
+mullin
+mullinix
+mullins
+mulmuley
+mulot
+mulqueen
+mulroney
+multispe
+mulumba
+mulvie
+mumford
+mumma
+mummy-cr
+mun-choo
+mun-hang
+munaz
+munchoon
+munden
+mundi
+mundy
+muni
+munikoti
+munir
+muniz
+munjal
+munmro
+munn
+munna
+munns
+munro
+munroe
+munsey
+munson
+munter
+munz
+munzer
+muqarrab
+muradia
+muralidh
+murash
+murat
+murawski
+murchiso
+murdaugh
+murdeshw
+murdoch
+murdock
+mureil
+murial
+muriel
+murielle
+murison
+murnagha
+muro
+murock
+murph
+murphin
+murphy
+murphy-k
+murray
+murrell
+murrill
+murrin
+murris
+murry
+murson
+murtagh
+murtaza
+murthy
+murton
+murty
+murveit
+murvyn
+musa
+musca
+musclow
+muselik
+musen
+musgrove
+musick
+mussalle
+mussar
+musselwh
+musser
+mustafa
+mustapha
+mustillo
+mutcher
+muth
+muthuswa
+mutikain
+mutsuo
+muttaqi
+muus
+muzio
+muzz
+mwa
+my
+mya
+myatt
+myca
+mycah
+mychal
+myer
+myers
+myers-pi
+myhill
+mykitysh
+myla
+myles
+mylne
+mylo
+mymryk
+myong
+myoung
+myra
+myrah
+myranda
+myre
+myriam
+myrick
+myrilla
+myrillas
+myrle
+myrlene
+myrna
+myron
+myroon
+myrta
+myrthill
+myrtia
+myrtice
+myrtie
+myrtille
+myrtle
+myrvyn
+myrwyn
+mysore
+mystkows
+myung
+myunghee
+myungho
+nabeel
+nabeil
+nabil
+nabisco
+nabors
+nace
+nachtshe
+nachum
+nad
+nada
+nadav
+nadean
+nadeau
+nadeau-d
+nadeem
+nadeen
+nadel
+nader
+nadezhda
+nadi
+nadia
+nadim
+nadine
+nadir
+nadiya
+nadler
+nadolny
+nadon
+nady
+nadya
+nae-ming
+naem
+naeming
+nafezi
+nafsika
+nagai
+nagaraj
+nagaraja
+nagaratn
+nagarur
+nagel
+nagendra
+nagenthi
+nagle
+naguib
+nagy
+nagys
+nahabedi
+nahas
+nahata
+nahid
+nahmias
+nahornia
+nahum
+naile
+naim
+naima
+naimpall
+nair
+nairn
+naismith
+najafi
+naji
+najib
+nakagome
+nakamura
+nakano
+nakatsu
+nakhla
+nakhoul
+nakina
+nakonecz
+nalani
+naldrett
+nalin
+nall
+nallenga
+nam
+nam-kiet
+nam-soo
+namasiva
+nambride
+namdar
+nami
+namiki
+namont
+namrata
+nan
+nana
+nanamiya
+nananne
+nance
+nancee
+nancey
+nanci
+nancie
+nancy
+nancyjea
+nanda
+nandakum
+nandan
+nandi
+nandita
+nando
+nanete
+nanette
+nang
+nani
+nanice
+nanine
+nannette
+nanni
+nannie
+nanny
+nanon
+naohiko
+naoko
+naolu
+naoma
+naomi
+naor
+naoto
+naoum
+nap
+naparst
+napert
+naphan
+naphtali
+napier-w
+napke
+napoleon
+napper
+nappie
+nappy
+nara
+narasimh
+narayan
+narayana
+narciso
+narda
+nardiell
+naren
+narendra
+naresh
+nari
+narida
+nariko
+narinder
+naro
+narraway
+narrima
+narron
+narsimha
+nasato
+naser
+nash
+nashib
+nashif
+nashir
+nashvill
+nasir
+nason
+nass
+nasser
+nassoy
+nassr
+nasvin
+nat
+nata
+natal
+natala
+natale
+natalee
+natalia
+natalie
+natalina
+nataline
+nataliya
+nataly
+natalya
+nataniel
+nataraja
+natascha
+natasha
+natasja
+natassia
+natassja
+natchez
+nate
+nath
+nathalia
+nathalie
+nathan
+nathanae
+nathania
+nathanie
+nathanil
+nathoo
+national
+natiuk
+nativida
+natka
+natkin
+natraj
+natty
+natver
+natvidad
+naufal
+naugle
+naujokas
+naujoks
+nault
+nava
+naval
+navalta
+navaratn
+navarre
+navarro
+naveda
+naveed
+naveen
+navid
+navneet
+nawa
+nawaby
+nayan
+naybor
+naylor
+nayman
+nayneshk
+nayyer
+nazanin
+nazardad
+nazeh
+nazi
+nazib
+nazli
+nazman
+ncc
+ndububa
+ne-regio
+neal
+neala
+neale
+neall
+nealon
+nealson
+nealy
+neamtu
+neander
+nearing
+nearyrat
+neate
+neault
+nebel
+ned
+neda
+nedda
+nedderma
+neddie
+neddy
+nedi
+needham
+neefs
+neel
+neely
+neena
+neene
+neeraj
+neetu
+nefen
+neff
+negandhi
+negar
+neghabat
+negrich
+nehemiah
+nehring
+neibauer
+neider
+neidy
+neifert
+neil
+neila
+neile
+neill
+neilla
+neille
+neilly
+neils
+neilsen
+neilson
+neisius
+neitzel
+nekueey
+nel
+nelda
+nelia
+nelie
+nelken
+nell
+nelle
+nelleke
+nelli
+nellie
+nellis
+nelly
+nelon
+nels
+nelsen
+nelson
+nemec
+nemes
+nemeth
+nemirovs
+nenad
+neng-chu
+nengchun
+nentwich
+neoh
+nerby
+nereida
+nerem
+nerissa
+nerita
+nermana
+nero
+neron
+nert
+nerta
+nerte
+nerti
+nertie
+nerty
+nesbitt
+nesralla
+ness
+nessa
+nessi
+nessie
+nessman
+nessy
+nesta
+neste
+nester
+nestor
+netas
+netdbs
+netdev
+netherso
+netick
+netlink
+neto
+netta
+netteam
+netti
+nettie
+nettle
+nettles
+netto
+netty
+network-
+networkr
+networks
+netzke
+neubauer
+neudeck
+neufeld
+neuman
+neumann
+neumeist
+neureuth
+neuschwa
+neustift
+neusy
+nev
+neva
+nevardau
+nevein
+nevil
+nevile
+neville
+nevin
+nevins
+nevison
+nevrela
+nevsa
+new
+newberry
+newbold
+newby
+newcomb
+newcombe
+newell
+newham
+newhook
+newkirk
+newlab
+newland
+newman
+newnam
+newport
+news
+newsom
+newsome
+newton
+neyer
+neyman
+neyra
+neysa
+neywick
+nezm
+nezon
+ng
+nga
+ngai
+ngai-nga
+ngaingai
+ngan
+nghia
+ngina
+ngo
+ngoc
+ngocquyn
+nguy
+nguyen
+nguyen-t
+nguyet
+nha
+nhan
+nhat
+nhien
+nhut
+nial
+niall
+niamh
+nic
+nicandro
+nicas
+niccolls
+niccolo
+nichael
+nichol
+nicholas
+nichole
+nicholl
+nicholle
+nichols
+nicholso
+nici
+nick
+nickell
+nickells
+nickels
+nickerso
+nickey
+nicki
+nickie
+nickle
+nicklin
+nicko
+nickola
+nickolai
+nickolas
+nickolau
+nickonov
+nicky
+nico
+nicol
+nicola
+nicolai
+nicolais
+nicolaou
+nicolas
+nicole
+nicolea
+nicoles
+nicolett
+nicoli
+nicolina
+nicoline
+nicolis
+nicolle
+nicolo
+nicolopu
+nicosia
+nie
+niebudek
+niedelma
+niedens
+niedra
+niedzwie
+niek
+niel
+nield
+niels
+nielsen
+nielson
+niemi
+nien
+nien-hwa
+nienhwa
+niepmann
+niepokuj
+niergart
+nigam
+nigel
+nihar
+nijen
+nik
+nikaniki
+nike
+nikfarja
+niki
+nikifori
+nikiforu
+nikita
+nikki
+nikkie
+nikky
+niklas
+niko
+nikola
+nikolai
+nikolaos
+nikolas
+nikolaus
+nikolett
+nikolia
+nikolopo
+nikolos
+nikos
+nil
+nilakant
+niles
+nilesh
+nill
+niloofar
+nils
+nilson
+nilsson
+nima
+nimesh
+nimish
+nimmo
+nimr
+nimzod
+nina
+ninetta
+ninette
+ninety-o
+ning
+ninja
+ninnetta
+ninnette
+ninno
+ninon
+nipper
+nir
+niraj
+niranjan
+nirmal
+niro
+nirwan
+nisa
+nisan
+nisbet
+nischuk
+nishan
+nishida
+nishiguc
+nishihar
+nishimot
+nishimur
+nishioka
+nishith
+nishiwak
+nishiyam
+nishizak
+nissa
+nisse
+nissie
+nissy
+nita
+nital
+nitin
+nitschky
+nitza
+nitzhe
+nitzhye
+niu
+niven
+nix
+nixie
+nixon
+nixxon
+niz
+nizam
+nizamudd
+nizar
+nizman
+nj
+njo
+nnamdi
+nnamudi
+no
+noach
+noah
+noak
+noam
+noami
+nobe
+nobel
+nobes
+nobie
+noble
+nobuko
+nobuo
+nobutaka
+nobuto
+nobuyuki
+noby
+nock
+noddin
+node
+noe
+noel
+noelani
+noell
+noella
+noelle
+noellyn
+noelyn
+noemi
+noeschka
+noffke
+noguchi
+nokes
+nola
+nolan
+nolan-mo
+nolana
+noland
+nolen
+noles
+nolet
+nolie
+noll
+nollie
+nolly
+nolter
+nomi
+nomura
+nona
+nonah
+noname
+nong
+nongqian
+noni
+nonie
+nonkes
+nonna
+nonnah
+noone
+noorani
+noorbehe
+noorbhai
+nooshin
+nopi
+nora
+norah
+noralie
+noraly
+norbert
+norberto
+norbie
+norby
+norcal
+norczen
+nordskog
+nordstro
+norean
+noreen
+norel
+norena
+norene
+norfleet
+norgaard
+norikats
+norikazu
+noriko
+norina
+norine
+norio
+noris
+norm
+norma
+norman
+normand
+normandi
+norment
+normie
+normy
+norndon
+noronha
+norri
+norrie
+norris
+norry
+norstar
+north
+northam
+northcot
+northrop
+northrup
+norton
+norval
+norvie
+norvig
+norwood
+nosewort
+noslab
+nosov
+nostrada
+notley
+nou
+noubar
+nouira
+noujeim
+nour
+nouri
+nova
+novak
+novelia
+novene
+novia
+novisedl
+novo
+novorols
+novotny
+nowak
+nowell
+nowina-k
+nowlin
+noy
+noye
+noyes
+npi
+nss
+ntelpac
+ntinash
+ntlc
+ntpadmin
+ntprel
+nttest
+nuber
+nuetzi
+nugent
+number
+nunes
+nunez
+nung
+nunn
+nunnally
+nuno
+nunold
+nuntel
+nurettin
+nurhan
+nuri
+nuria
+nurly
+nurmi
+nuttall
+nuvit
+nyaguthi
+nyberg
+nyce
+nydia
+nye
+nyeita
+nyenhuis
+nyland
+nyquist
+nyre
+nys
+nyssa
+o karina
+o'brecht
+o'brian
+o'brien
+o'carrol
+o'colmai
+o'connel
+o'conner
+o'connor
+o'dacre
+o'dale
+o'dea
+o'dell
+o'dohert
+o'donnel
+o'donova
+o'dwyer
+o'farrel
+o'grady
+o'hagan
+o'hara
+o'hearn
+o'heocha
+o'higgin
+o'keefe
+o'keeffe
+o'kelly
+o'leary
+o'malley
+o'meara
+o'murchu
+o'neal
+o'neall
+o'neil
+o'neill
+o'regan
+o'reilly
+o'rourke
+o'shaugh
+o'shea
+o'sulliv
+o'toole
+o_kelly
+oakland
+oakley
+oaks
+oam
+oanes
+oanh
+oastler
+oates
+oaul
+obadiah
+obadias
+obed
+obeda
+obediah
+obeidat
+obenauf
+ober
+oberhamm
+obermeie
+obermeye
+obermyer
+oberon
+oberpril
+obidiah
+obie
+oblak
+obrecht
+obrien
+obrusnia
+oby
+ocampo
+ochman
+ochoa
+ochs
+ocone
+oconnor
+octavia
+octavio
+octavius
+odac
+odden
+ode
+odecki
+oded
+odegaard
+odele
+odelia
+odelinda
+odell
+odella
+odelle
+oden
+odessa
+odetta
+odette
+odey
+odgers
+odie
+odile
+odilia
+odille
+odo
+odum
+ody
+oedipal
+oedipus
+oertelt
+oesterre
+oestreic
+oetting
+oey
+ofcparm
+ofcparms
+ofelia
+ofella
+ofer
+offers
+ofilia
+ogan
+ogborn
+ogburn
+ogdan
+ogden
+ogdon
+ogilvie
+oglesby
+ogrodnik
+ogua
+oguz
+ohala
+ohandley
+ohara
+ohare
+ohashi
+ohio
+ohmaru
+ohmayer
+ohn
+ohsone
+oingres
+oivind
+ojala
+ojerholm
+oka
+okada
+okafo
+okai
+okamoto
+okan
+okay
+oke
+okey
+okon
+okrafka
+oksana
+okseniuk
+oktar
+okun
+okura
+okuyama
+okuzawa
+ola
+olag
+olav
+old
+older
+oldfield
+oldham
+oldright
+ole
+oleesa
+oleksysh
+olenka
+olenolin
+olesen
+olesko
+olga
+olia
+olimpia
+olin
+olinger
+olinyk
+olivares
+olive
+oliveira
+oliver
+olivero
+olivette
+olivia
+olivie
+olivier
+oliviero
+oliy
+olken
+ollie
+olliff
+olly
+olmstead
+olness
+olof
+olsen
+olsheski
+olson
+olszewsk
+olusola
+olva
+olvan
+olwen
+olympe
+olympia
+olympie
+olynyk
+oma
+oman
+omar
+omayma
+omer
+omerine
+omero
+omid
+omori
+omura
+omyeabor
+onassis
+onder
+ondovcik
+ondrea
+oneida
+oneto
+onette
+onfre
+onfroi
+ong
+onge
+onida
+onofredo
+onsitete
+onsy
+onufrak-
+onyshko
+ooi
+oona
+oorschot
+oost
+op
+opal
+opalina
+opaline
+opalski
+open
+oper
+operatio
+operator
+ophelia
+ophelie
+oplinger
+opperman
+ops
+opsplng
+optimiza
+opto
+opus
+ora
+oral
+oralee
+oralia
+oralie
+oralla
+oralle
+oran
+orazio
+orbadiah
+orca
+ord
+ordas
+orden
+orders
+ordog
+ordway
+oreffice
+oreilly
+orel
+orelee
+orelia
+orelie
+orella
+orelle
+oren
+orenzo
+orfano
+orford
+organiza
+orgren-s
+oriana
+orie
+orin
+orion
+orla
+orlan
+orland
+orlando
+orly
+orlyn
+orme
+ormesher
+ormsby
+ornburn
+ornelas
+orol
+oros
+orpheus
+orr
+orran
+orren
+orrin
+orsa
+orser
+orsini
+orsola
+orson
+ortensia
+orth
+ortiz
+orton
+orv
+orville
+orvin
+orwell
+oryal
+osada
+osadciw
+osama
+osami
+osatuik
+osbert
+osborn
+osborne
+osbourn
+osbourne
+osburn
+oscar
+osgood
+oshinski
+oshiro
+osiakwan
+osiris
+oskar
+oskorep
+oslund
+osman
+osmond
+osmund
+osofsky
+ossama
+ossie
+ostapiw
+ostarell
+ostaszew
+oster
+osterber
+osterhou
+osterman
+ostifich
+osvaldo
+oswald
+oswalt
+oswell
+otakar
+otani
+otec
+otes
+otfried
+otha
+othelia
+othella
+othello
+othilia
+othilie
+otho
+othon
+otis
+otmar
+otsuka
+ott
+ottawa
+ottco
+ottcsr
+otter
+ottilie
+otto
+ottoman
+ottosson
+ottowa
+oturakli
+otway
+oucharek
+oue
+ouellet
+ouellett
+ouimet
+ousterho
+outage
+outhwait
+outram
+ouzas
+ovans
+ovas
+overby
+overcash
+overdyke
+overton
+oviedo
+ovila
+owen
+owens
+owensby
+owsiak
+oxendine
+oyama
+oyung
+ozalp
+ozan
+ozay
+ozer
+ozersky
+oziemblo
+oziskend
+ozkan
+ozlem
+ozmizrak
+ozmore
+ozselcuk
+ozyetis
+ozzie
+ozzy
+paar
+pablo
+pac
+pace
+pacey
+pachal
+pacheco
+pachek
+pachner
+pachulsk
+pacific
+packager
+packard
+packston
+paco
+pacon
+pacorro
+paczek
+paczynsk
+paddie
+paddon
+paddy
+paden
+padget
+padgett
+padiath
+padilla
+padiou
+padma
+padmanab
+padraic
+padraig
+padriac
+paerio
+paes
+paetsch
+pafilis
+pagani
+page
+pageau
+paget
+pagi
+paglia
+pagliaru
+pai
+paialung
+paige
+paik
+pail
+paine
+painter
+painters
+pak
+pak-jong
+pak-kin
+pakkin
+paksi
+pakulski
+pal
+palacek
+palamar
+palasek
+palczuk
+palermo
+paley
+palfreym
+palidwor
+paliga
+palik
+paliwal
+pall
+pallab
+pallen
+palm
+palme
+palmer
+paloma
+palomar
+paluso
+pam
+pambianc
+pamela
+pamelina
+pamella
+pammi
+pammie
+pammy
+pamperin
+pan
+panacea
+panagiot
+pancewic
+panch
+panchen
+panchito
+panchmat
+pancho
+pancholy
+pandey
+pandolfo
+pandora
+pandrang
+pandya
+panek
+panesar
+pang-chu
+pangchun
+panger
+pangia
+panizzi
+pankaj
+panke
+pankesh
+pankhurs
+pankiw
+panko
+pankratz
+pannell
+panolil
+panos
+panosh
+pansie
+pansy
+pantages
+pantalon
+pantas
+pantelis
+panter
+panton
+panzer
+pao
+pao-ta
+paola
+paoletti
+paolina
+paolo
+paone
+paota
+papa
+papadopu
+papagena
+papageno
+papageor
+papahadj
+papajani
+papalits
+papanton
+paparell
+pape
+paper
+paperno
+papers
+papiez
+papineau
+papp
+pappas
+papper
+pappu
+paprocki
+paqs
+paquette
+paquin
+paquito
+par
+para
+paracha
+paradis
+paradise
+parasili
+pardeep
+pardi
+pardip
+pardo
+parekh
+paresh
+parham
+parhi
+parichay
+parihar
+parikh
+paris
+parise
+parisen
+parisi
+parisien
+park
+parkash
+parke
+parker
+parker-s
+parkes
+parkhill
+parkin
+parkins
+parkinso
+parks
+parkson
+parlett
+parmakse
+parman
+parmar
+parmente
+parmigia
+parminde
+parn
+parnas
+parnell
+parniani
+parnigon
+parow
+parr
+parra
+parrilli
+parrillo
+parris
+parrish
+parrish-
+parrnell
+parrott
+parry
+pars
+parsifal
+parsloe
+parsons
+part
+partap
+partello
+partha
+parthasa
+partick
+partin
+partlo
+parton
+partovi
+paruleka
+parveen
+parvin
+parviz
+paryag
+parypa
+pas
+pascael
+pascal
+pascale
+pascali
+pascas
+paschall
+pasher
+pashia
+pashmine
+pasiedb
+pasquale
+passier
+passin
+pasterna
+pastore
+pastorek
+pastuszo
+pasvar
+pat
+patacki
+patadm
+patch
+patchcor
+patches
+patchett
+patching
+patchit
+patchor
+patchsqa
+patcor
+pate
+patel
+paten
+patenaud
+paterson
+patey
+pathak
+patience
+patin
+patner
+pato
+patoka
+paton
+patoskie
+patra
+patriarc
+patric
+patrica
+patrice
+patrice-
+patricem
+patrici
+patricia
+patricio
+patrick
+patrizia
+patrizio
+patriziu
+patry
+patsy
+patt
+patte
+patten
+patterso
+patteson
+patti
+pattie
+pattin
+pattison
+patton
+pattra
+pattullo
+patty
+patwardh
+pau
+paul
+paula
+paulas
+paule
+paulett
+pauletta
+paulette
+pauley
+paulhus
+pauli
+paulich
+paulie
+paulien
+paulin
+paulina
+pauline
+pauling
+paulinus
+paulita
+paulk
+paulo
+paulovic
+paulus
+pauly
+paunins
+pautenis
+pavan
+pavel
+pavia
+pavitt
+pavla
+pavlic
+pavlov
+pavlovic
+pawel
+pawelchu
+pawlikow
+pawliw
+paxon
+paxton
+paye
+payette
+paylor
+payn
+payne
+paynter
+payroll
+payton
+pazos
+pbkim
+pbx
+pcboards
+pcbtools
+pcsuppor
+pcta
+pde
+pdesuppo
+peabody
+peacemak
+peach
+peacocke
+peadar
+peake
+pearce
+pearcy
+pearl
+pearla
+pearle
+pearline
+pearse
+pearson
+peart
+peate
+peaugh
+peavoy
+pebrook
+pecic
+peckel
+peckett
+peder
+pederson
+pedigo
+pedley
+pedneaul
+pedram
+pedriana
+pedro
+peebles
+peedin
+peerman
+peers
+peeters
+peets
+peg
+pegasus
+pegeen
+peggi
+peggie
+peggy
+pegler
+pehong
+pei-chie
+pei-ling
+peiling
+peirce
+peiser
+peixoto
+peleato
+pelegri
+pelissie
+pelkie
+pell
+pelland
+pellegri
+pelletie
+pellizza
+pellizze
+pelly
+pelosi
+pelot
+pelton
+peluso
+pelz
+pembroke
+pen
+pen-mi
+pen-min
+pena
+pena-fer
+penang
+pendergr
+pendhark
+pendleto
+penelopa
+penelope
+penfield
+peng
+peng-dav
+penland
+penmi
+penmin
+penn
+pennebak
+pennell
+penner
+penney
+penni
+pennie
+penninge
+penningt
+penny
+penrod
+penrose
+pension
+peon
+peoples
+pepc
+pepe
+pepi
+pepillo
+pepin
+pepita
+pepito
+pepler
+pepper
+pepple
+peptis
+per
+pera
+peralta
+perazzin
+perceval
+perchtho
+percival
+percy
+peregrin
+pereira
+perenyi
+perez
+perfetti
+peri
+peria
+pericak
+perice
+pericles
+perina
+perkin
+perkins
+perkinso
+perl
+perla
+perle
+perleber
+perlmutt
+pernell
+perng
+perona
+peroxra
+perras
+perrault
+perreaul
+perrella
+perren
+perri
+perrier
+perrin
+perrine
+perron
+perrotta
+perry
+perryman
+perryno
+persaud
+perschke
+persechi
+pershing
+persis
+personna
+peschke
+pesik
+pesold
+pestill
+pet
+peta
+petar
+pete
+peter
+peterman
+peters
+petersen
+peterson
+peterus
+petey
+petillio
+petr
+petra
+petrakia
+petras
+petre
+petrea
+petree
+petrescu
+petretta
+petrey
+petri
+petrick
+petrie
+petrina
+petrinac
+petro
+petronel
+petronia
+petronil
+petrovic
+petruck
+petrunew
+petrunka
+petschen
+petter
+pettinge
+pettitt
+petunia
+petzold
+pevec
+pevzner
+pewitt
+pey-kee
+peyman
+peyter
+peyton
+pezzoli
+pezzoni
+pezzullo
+pfeffer
+pfeilsch
+pfieffer
+pfifferl
+pfitzner
+pflughau
+phaedra
+phagan
+phaidra
+phair
+phal
+phalen
+phalpher
+pham
+phan
+pharr
+pharris
+phat
+phebe
+phedra
+phelan
+phelia
+phelps
+phifer
+phil
+philbeck
+philbert
+philion
+philip
+philipa
+philippa
+philippe
+philippi
+philippo
+philips
+philis
+phill
+phillida
+phillie
+phillip
+phillipe
+phillipp
+phillips
+phillis
+philly
+philomen
+philp
+phineas
+phip
+phipps
+phiroze
+phoebe
+phoenix
+phonenet
+phong
+phoung
+phu
+phuc
+phung
+phuoc
+phuong
+phuong-l
+phuongli
+phyl
+phylis
+phyllida
+phyllis
+phyllys
+phylys
+physical
+pi-yu
+pia
+piasecki
+piatt
+pic
+picard
+piche
+pichocki
+pick
+pickens
+pickett
+pickles
+piecaiti
+piecowye
+piel
+pien
+pier
+piercarl
+pierce
+piercey
+piercy
+pierette
+piero
+pieron
+pierosar
+pieroway
+pierre
+pierre-a
+pierre-h
+pierre-m
+pierre-y
+pierret
+pierrett
+pierrick
+piersol
+pierson
+piete
+pieter
+pietra
+pietrek
+pietro
+pietromo
+pietropa
+pietrzak
+piette
+pifko
+piggott
+piggy
+pighin
+pigniczk
+piitz
+pilar
+pilch
+pilcher
+pilip
+pilipchu
+pilkingt
+pillars
+pillman
+pillswor
+pilmoor
+pilon
+pilot
+pilote
+pilotte
+piltz
+pim
+pimentel
+pimisker
+pimpare
+pimsiree
+pinakin
+pinalez
+pinar
+pincas
+pinchas
+pincheir
+pinchen
+pincus
+pinder
+pindur
+pineau
+pinecres
+pineda
+pinel
+ping
+ping-cha
+ping-kon
+ping-she
+pingchar
+pingkai
+pingshen
+pinizzot
+pinkerto
+pinnegar
+pinney
+pino
+pinren
+pinsonne
+pintado
+pinto-lo
+pintwala
+piotr
+piotto
+pip
+piper
+piperni
+piperno
+pipit
+pipkins
+pippa
+pippert
+pippin
+pippo
+pipponzi
+pippy
+piqueras
+piraino
+pircher
+pires
+pirkey
+pirkle
+pirolli
+pirooz
+piroska
+pirzada
+pisani
+pisheng
+piske
+pissot
+pister
+pistilli
+pit
+pitawas
+pitcairn
+pitcavag
+pitcher
+pitre
+pitt
+pittam
+pittges
+pittman
+pittner
+pitton
+pitts
+pittsbur
+pituley
+pivert
+piwkowsk
+pixie
+piyasena
+piyathad
+piyu
+piyush
+pizzanel
+pizzarel
+pizzimen
+pkdcd
+pkg
+placido
+plaic
+plaisanc
+plaisant
+plambeck
+plamondo
+planas
+planche
+plantamu
+plante
+planthar
+planting
+plaskie
+plasse
+plastic
+plastina
+plater-z
+plato
+platt
+platthy
+platts
+playatun
+please d
+plenderl
+plett
+plevyak
+pleydon
+plmcoop
+ploeg
+ploof
+plotter
+plouffe
+plourde
+plsntp
+plssup
+plucinsk
+plummer
+pluto
+plyler
+po
+po-rong
+po-yi
+podlesna
+podmarof
+podolski
+poe
+poettcke
+poff
+poh-soon
+pohlmann
+poincare
+poindext
+pointner
+poirier
+poissant
+poisson
+pojanart
+pokinko
+pokrifca
+pokrywa
+pokusay
+polak
+polakows
+polanco
+polashoc
+polder
+poldi
+poleretz
+poley
+poliwoda
+polk
+polla
+pollack
+pollard
+pollie
+pollinzi
+pollux
+polly
+pollyann
+pols
+polsha
+polson
+poluchow
+polulack
+pom
+poma
+pomerlea
+pomeroy
+pommainv
+pompeo
+pomposel
+pon
+ponamgi
+ponthieu
+pontus
+poobah
+pooh
+pookie
+poole
+poon
+poorman
+popa
+popadick
+popcorn
+popel
+popela
+popescu
+popierai
+popoff
+popovich
+popovics
+popowicz
+popowycz
+popp
+poppa
+popper
+poppy
+porebski
+porecha
+porfirio
+porong
+port
+portelan
+porter
+porterfi
+portia
+portie
+portigal
+porting
+portis
+portwood
+porty
+portz
+pory
+posavad
+poseidon
+poshiu
+pospisil
+posta
+postavsk
+posthumu
+postleth
+postolek
+potamian
+potesta
+potkonja
+potocki
+potter
+pottle
+potts
+potvin
+pouhyet
+poul
+poulin
+pouliot
+poulos
+poulsen
+poulter
+poustchi
+powell
+power
+powers
+powlick
+pownall
+powney
+poyer
+poyi
+poyner
+poynting
+pozzi
+ppaul
+prab
+prabaddh
+prabhaka
+prabhu
+prabir
+prachaya
+pracht
+prada
+pradeep
+pradip
+pradnyan
+prado
+pradyumn
+praeuner
+prafula
+pragna
+prakash
+pramod
+prams
+pranav
+prang
+prasad
+prasada
+prasanna
+prashad
+prashant
+prashaw
+pratap
+pratapwa
+pratibha
+pratt
+prattico
+pravato
+praveen
+pravin
+praxis
+praysner
+prayson
+prchal
+precoda
+predel
+predon
+preece
+prelims
+prem
+pren
+prent
+prentice
+prentiss
+preo
+prescott
+presgrov
+presley
+presner
+presotto
+pressbur
+presson
+presti
+prestia
+prestipi
+preston
+preston-
+prestrud
+presutti
+preuss
+prevatt
+preville
+previn
+prevost
+prewitt
+pria
+pribhu
+price
+prichard
+pricing
+prickett
+pridgen
+priede
+priestle
+prikkel
+primeau
+prince
+pringle
+print
+printers
+printing
+prints
+printsup
+prinz
+priore
+pris
+prisca
+priscell
+priscill
+prissie
+pritchar
+prithvi
+priti
+prity
+privett
+priviter
+priya
+probert
+problems
+probs
+procacci
+procca
+procner
+procter
+prodmfg
+prodmgmt
+producti
+prof
+proffit
+prog
+program
+program-
+proj
+projects
+projofc
+prokes
+prokop
+prokopen
+promac
+propes
+prosise
+prosperi
+pross
+prosyk
+prototyp
+proudfoo
+proulx
+provenca
+provench
+pru
+prudence
+prudi
+prudy
+prue
+pruett
+pruitt
+prunier
+prupis
+prybyla
+pryce
+prymack
+pryor
+prystie
+pryszlak
+przewloc
+przybyci
+psce
+pseudony
+psklib
+psutka
+ptefs
+ptolemy
+publicat
+pubs
+puchala
+puckett
+puddingt
+pue-gilc
+puelma
+puent
+puett
+puetz
+puff
+pufpaff
+pugas
+pugh
+puglia
+pui-wah
+pujara
+pulak
+pulcher
+pulcine
+pulitzer
+pullan
+pullum
+pulver
+punch
+pundyk
+puneet
+pung
+punsalan
+puran
+purcell
+purchasi
+purdy
+purgerso
+puringto
+purnam
+purnell
+purnima
+purohit
+purposes
+purshott
+purson
+puryear
+pushelbe
+pusun
+pusztai
+putman
+putnam
+putnem
+puukila
+pye
+pyle
+pyles
+pyng
+pyong
+pyotr
+pyron
+python
+qadir
+qadri
+qainfo
+qainsp
+qi-de
+qide
+qihan
+qiming
+qin
+qing
+qing-hui
+qinghui
+qingyan
+qiuyun
+qizhong
+qu
+quabidur
+quality
+quan
+quane
+quang
+quang-tr
+quante
+quantril
+quarles
+quarterm
+quattruc
+quayle
+queenie
+quek
+quelch
+quennevi
+quensett
+quent
+quentin
+querenge
+querida
+queries
+quesnel
+questell
+quevillo
+quigley
+quijano
+quill
+quillan
+quilty
+quincey
+quincy
+quinhon
+quinlan
+quinn
+quinones
+quint
+quinta
+quintana
+quintero
+quintill
+quintin
+quintina
+quinton
+quintus
+quinz
+quite a
+quixote
+quizmast
+quoc
+quoc-vu
+quocanh
+quoi
+quon
+qureshi
+quyen
+quynh
+raab
+raaf
+raaflaub
+raanan
+rab
+rabadi
+rabaglia
+rabatich
+rabbi
+rabecs
+rabenste
+rabi
+rabiasz
+rabie
+rabin
+rabipour
+rabjohn
+rabon
+rabzel
+racette
+rachael
+rached
+rachel
+rachele
+rachelle
+rachmani
+racicot
+racine
+racioppi
+racz
+rad
+radames
+radcliff
+raddalgo
+raddie
+raddy
+radek
+radford
+radha
+radick
+radio
+radko
+radojici
+radomir
+radoslav
+radovnik
+radulovi
+radvanyi
+rae
+raeann
+raejean
+raf
+rafa
+rafael
+rafaela
+rafaelia
+rafaelit
+rafaelll
+rafaello
+rafe
+rafek
+raff
+raffaell
+raffarty
+rafferty
+raffi
+rafflin
+rafi
+rafik
+rafiq
+rafol
+rafols
+rafter
+raftery
+ragan
+ragbir
+ragde
+raghav
+raghava
+raghavan
+ragheb
+raghu
+raghunat
+raghuvir
+ragland
+raglin
+ragnar
+ragsdale
+ragu
+ragui
+raha
+rahal
+rahardja
+rahdar
+rahel
+rahimtoo
+rahm
+rahman
+rahmani
+rahmany
+rahmatal
+rahn
+rahrer
+rahul
+raicu
+raif
+raigwell
+raila
+railey
+raimondo
+raimund
+raimundo
+raina
+raine
+rainer
+raines
+rainey
+raing
+rainmake
+rains
+rainsfor
+raissian
+raiswell
+raj
+raja
+rajadasa
+rajagopa
+rajala
+rajan
+rajani
+rajanika
+rajapaks
+rajarshi
+rajat
+rajcher
+rajchgod
+rajchwal
+rajczi
+rajeev
+rajen
+rajendra
+rajesh
+rajeswar
+rajguru
+rajinder
+rajini
+rajiv
+raju
+rajwani
+rakeim
+rakel
+raker
+rakesh
+rakhal
+rakhuma
+rakochy
+rakotoma
+raleigh
+raley
+ralf
+rali
+ralina
+ralph
+ralston
+ram
+rama
+ramachan
+ramadoss
+ramage
+ramah
+ramakant
+ramakesa
+ramakr
+ramakris
+ramamoor
+raman
+ramana
+ramanamu
+ramanan
+ramanand
+ramanath
+ramani
+ramaprak
+ramarao
+ramaswam
+rambo
+rambow
+ramee
+ramesh
+ramey
+ramez
+rami
+ramin
+ramirez
+ramirez-
+ramiro
+ramiz
+ramkisso
+ramkumar
+ramlogan
+ramnarin
+ramneek
+ramnikla
+ramon
+ramona
+ramonda
+ramondt
+ramos
+rampaul
+rampino
+ramroop
+ramsaran
+ramsay
+ramsayer
+ramsden
+ramses
+ramsey
+ramseyer
+ramzi
+ramzy
+ran
+ran-joo
+rana
+ranahan
+ranald
+ranbir
+rance
+rancell
+rand
+randa
+randal
+randall
+randecke
+randee
+randel
+randell
+randene
+randhawa
+randhir
+randi
+randie
+randolf
+randolph
+randy
+ranea
+ranee
+ranette
+raney
+ranga
+rangan
+ranganad
+ranganat
+rangasam
+rangaswa
+rangchen
+rangel
+ranger
+rangooni
+rani
+rania
+ranice
+ranieri
+ranique
+ranjan
+ranjit
+rank
+rankin
+ranna
+rannells
+ranney
+ranoa
+ranoska
+ransell
+ransom
+ranson
+rantala
+ranvir
+rao
+raouf
+raoul
+raphael
+raphaela
+rappopor
+raquel
+raquela
+rasberry
+raschig
+rashed
+rashedi
+rashid
+rashid-a
+rashidah
+rashidi
+rashmi
+rasia
+rasla
+rasmus
+rasmusse
+rasselas
+rassell
+rastelli
+rastogi
+ratcliff
+rathbun
+rathnaku
+ratko
+ratnam
+ratnayak
+rattanap
+rattray
+ratz
+rau
+raud
+raudres
+rauen
+raul
+rausa
+rausch
+raven
+raves
+ravi
+ravid
+ravinder
+ravindra
+raviv
+ravji
+rawley
+rawnoi
+raxter
+ray
+rayan
+raychel
+raye
+rayl
+rayleigh
+rayment
+raymona
+raymond
+raymund
+rayna
+raynald
+raynard
+raynell
+rayner
+raynor
+rayshell
+raz
+razavi
+rccl
+rch
+rchisn
+rchlab
+rea
+read
+reade
+reader
+readling
+readme 3
+reagan
+reagen
+real
+realtime
+reamonn
+rean
+reates
+reaume
+reaves
+reavis
+reba
+rebbecca
+rebe
+rebeca
+rebecca
+rebecka
+rebeka
+rebekah
+rebekkah
+rebel
+rec
+recabarr
+receivin
+rechelle
+reckhard
+recktenw
+records
+recsnik
+recyclin
+red
+reda
+redbeard
+redd
+reddick
+reddigan
+redding
+reddingt
+reddy
+redfoot
+redford
+redgie
+redinbo
+redish
+redman
+redmond
+redshaw
+redway
+ree
+reeba
+reece
+reed
+reeder
+reena
+rees
+reese
+reeta
+reetz
+reeva
+reeve
+reeves
+refat
+refuerzo
+reg
+rega
+regan
+rege
+regen
+reggi
+reggie
+reggis
+reggy
+regier
+regimbal
+regina
+reginald
+reginaul
+regine
+reginia
+regis
+register
+regnier
+rego
+rehbein
+rehder
+rehel
+reich
+reichenb
+reiching
+reichman
+reichow
+reid
+reidar
+reidelbe
+reider
+reif
+reifschn
+reijerke
+reiko
+reilly
+reiman
+reimann
+reimburs
+rein
+reina
+reinald
+reinaldo
+reinboth
+reind
+reine
+reiner
+reinhard
+reinhold
+reinink
+reinke
+reinlie
+reinman
+reinold
+reinwald
+reis
+reiser
+reiss
+reist
+reiter
+reitfort
+reith
+reitling
+rejean
+rejeanne
+reka
+rekowski
+relation
+reller
+rem
+rembecki
+rembish
+remedios
+remers
+remi
+remillar
+remingto
+remitha
+remo
+remon
+remrey
+remson
+remus
+remy
+ren
+rena
+renado
+renae
+renaldo
+renard
+renata
+renate
+renato
+renaud
+renault
+rendell
+rendon
+rene
+rene-ala
+reneau
+renee
+renell
+renelle
+renema
+renette
+renfro
+renfroe
+renganat
+renie
+renita
+renken
+renmarie
+renner
+rennie
+rennolds
+renny
+reno
+renoir
+renold
+renton
+renu
+renwick
+repair
+repeta
+reportin
+reports
+requel
+requests
+research
+resende
+resnick
+ress
+ressner
+rester
+restore
+restrepo
+results
+resve
+reta
+retallac
+retallic
+retha
+rettie
+reube
+reuben
+reubens
+reuss
+reuven
+reva
+revah
+revelle
+revill
+revis
+revkah
+rewitzer
+rex
+rexford
+rexroad
+rey
+reyad
+reyaud
+reydman
+reyes
+reyna
+reynaldo
+reynard
+reynold
+reynolds
+reza
+rezaian
+rezansof
+rezneche
+reznick
+reznik
+rezzik
+rfa
+rfeynman
+rff
+rhattiga
+rhea
+rheal
+rheault
+rheaume
+rheba
+rheta
+rhett
+rhetta
+rhew
+rhiamon
+rhianna
+rhianon
+rhine
+rhoades
+rhoads
+rhoda
+rhodeniz
+rhodes
+rhodia
+rhodie
+rhodri
+rhody
+rhona
+rhonda
+rhough
+rhyndres
+rhys
+rhyu
+ri
+ria
+riad
+rialland
+riane
+riannon
+rianon
+riaz
+ribakovs
+ribaldo
+ribi
+ribordy
+ribot
+ric
+rica
+ricard
+ricardo
+ricca
+riccardo
+riccitel
+ricciuto
+rice
+rich
+richad
+richard
+richardo
+richards
+richart
+richelle
+richer
+richey
+richie
+richlark
+richman
+richmond
+richmoun
+richter
+richy
+rici
+rick
+rick-jan
+rickard
+rickborn
+rickel
+ricker
+rickert
+ricketso
+ricketts
+rickey
+ricki
+rickie
+rickjan
+rickrd
+ricks
+ricky
+rico
+ricoriki
+riddall
+ridder
+riddick
+rider
+ridge
+ridgeway
+ridgewel
+ridgway
+ridha
+ridley
+riebl
+ried
+riedel
+riehle
+riekie
+rieko
+rieni
+rigby
+rigdon
+rigel
+riggins
+riggs
+riggsbee
+righter
+rightmir
+rigobert
+rigsbee
+rigstad
+rijn
+rijos
+rijswijk
+rik
+riki
+rikki
+rikley
+riley
+rilla
+rima
+rimantas
+rimey
+riml
+rimmler
+rimsa
+rina
+rinaldo
+rinawi
+ring
+ringo
+rini
+rintala
+rintel
+rintoul
+rio
+riobard
+riopel
+riopelle
+riordan
+rios
+riou
+rioux
+rip
+ripa
+ripley
+risa
+risdal
+risher
+rishy-ma
+risko
+risler
+rist
+risto
+rita
+ritalynn
+ritchey
+ritchie
+ritenour
+rittenho
+ritter
+rittmann
+ritz
+ritza
+ritzmann
+riva
+rivaherr
+rivalee
+rivard
+rivera
+rivers
+rivest
+rivi
+rivkah
+rivy
+rix
+riyad
+riyaz
+rizal
+rizewisk
+rizk
+rizky
+rizwan
+rizzardi
+rizzo
+rizzuti
+rk
+rnashcro
+ro
+roana
+roanna
+roanne
+roarke
+rob
+robann
+robart
+robb
+robbert
+robbi
+robbie
+robbin
+robbins
+robby
+robbyn
+robeling
+robena
+robenia
+roberge
+robers
+roberson
+robert
+roberta
+roberto
+roberts
+robertso
+robieux
+robillar
+robin
+robina
+robinet
+robinett
+robinia
+robins
+robinson
+robinwil
+robitail
+robles
+robling
+robney
+robson
+robustne
+roby
+robyn
+rocco
+roch
+roche
+rochell
+rochella
+rochelle
+rocheste
+rochette
+rochon
+rocio
+rock
+rocke
+rockey
+rockford
+rockie
+rockley
+rockly
+rockwell
+rocky
+rod
+roda
+rodd
+roddick
+roddie
+roddy
+rodely
+roden
+rodenfel
+rodenhui
+rodent
+roderic
+roderich
+roderick
+roderigo
+rodge
+rodger
+rodgers
+rodgin
+rodi
+rodie
+rodina
+rodkey
+rodney
+rodolfo
+rodolph
+rodolphe
+rodrick
+rodrigo
+rodrigue
+rodrigus
+rodrique
+rodschat
+roe
+roebling
+roedel
+roehl
+roehrig
+roel
+roelof
+roelofs
+roemer
+roerick
+roesler
+roeten
+rog
+rogan
+rogelio
+roger
+rogerio
+rogers
+roget.wo
+rogge
+rogne
+rogness
+rognlie
+rogoff
+rogue
+rohal
+rohan
+rohe
+rohit
+rohtert
+roi
+roieh
+roig
+rois
+roithmai
+roj
+rojas
+rojer
+rok
+rokas
+roland
+rolande
+rolando
+roldan
+roleson
+roley
+rolf
+rolfe
+rolfes
+rolland
+rollie
+rollin
+rollins
+rollinso
+rollo
+rolls
+rolly
+rolnick
+rolph
+rolston
+roly
+rolyn
+roma
+romagnin
+romain
+roman
+romanchu
+romani
+romano
+romanows
+rombeek
+romberg
+rombough
+romeo
+romero
+romi
+romina
+rommel
+rommell
+romola
+romolo
+romona
+romonda
+romulus
+romy
+ron
+rona
+ronaald
+ronak
+ronald
+ronalda
+ronaldo
+ronalds
+ronaldso
+ronan
+ronda
+rondeau
+ronen
+ronendra
+roney
+rong
+rong-che
+rong-chi
+rong-jen
+rong-jwy
+rongchei
+ronghui
+rongjen
+rongjwyn
+roni-jea
+ronica
+ronitt
+ronkus
+ronn
+ronna
+ronneke
+ronni
+ronnica
+ronnie
+ronny
+roob
+roobbie
+roohy-la
+rooney
+roosevel
+root
+roots
+roozbeh
+roper
+roque
+rora
+rori
+rorie
+rorke
+rory
+ros
+rosa
+rosabel
+rosabell
+rosado
+rosaleen
+rosalia
+rosalie
+rosalind
+rosaline
+rosalyn
+rosalynd
+rosamond
+rosamund
+rosana
+rosanna
+rosanne
+rosario
+rosch
+rosche
+rosco
+roscoe
+rose
+roseann
+roseanna
+roseanne
+rosebud
+roseland
+roselia
+roselin
+roseline
+rosella
+roselle
+rosemari
+rosemary
+rosemond
+rosen
+rosenbau
+rosenber
+rosenblu
+rosendal
+rosene
+rosenfel
+rosenqui
+rosentha
+roser
+rosetta
+rosette
+rosewell
+rosey
+roshelle
+rosie
+rosien
+rosina
+rosita
+roski
+rosko
+roslyn
+rosmunda
+rospars
+ross
+ross-ada
+ross-ros
+rossanes
+rosser
+rossi
+rossie
+rossigno
+rossingt
+rosson
+rossy
+rosvick
+rosy
+roszko
+rotenber
+roth
+rothamel
+rothey
+rothwell
+rotondo
+rotzjean
+rouer
+rouhad
+rouleau
+roulez
+roundy
+roupen
+rourk
+rourke
+rous
+rousseau
+rousset
+roussier
+roussin
+roussy
+routhier
+routing
+rouvin
+row
+rowan
+rowatt
+rowe
+rowell
+rowen
+rowena
+rowhani
+rowland
+rowlands
+rowley
+rowney
+rowsell
+roxana
+roxane
+roxanna
+roxanne
+roxi
+roxie
+roxine
+roxy
+roy
+roya
+royal
+royall
+royals
+royce
+roychowd
+royden
+royer
+royle
+royster
+roz
+rozaini
+rozalia
+rozalie
+rozalin
+rozamond
+rozanna
+rozanne
+roze
+rozele
+rozella
+rozelle
+rozen
+rozett
+rozier
+rozin
+rozina
+rozon
+rozumna
+rriocard
+rtingres
+rtp
+rtpbuild
+rtprel
+rtprelb
+ru
+ruane
+ruaud
+ruban
+rubanovi
+rube
+ruben
+rubens
+rubenste
+rubetta
+rubi
+rubia
+rubie
+rubin
+rubina
+rubinfel
+rubinov
+rubinste
+rubio
+ruby
+ruchel
+ruchi
+ruck
+ruckman
+rud
+rudd
+ruddell
+ruddick
+ruddie
+ruddle
+ruddy
+rudell
+rudi
+rudiak
+rudich
+rudie
+rudiger
+rudin
+rudis
+rudisill
+rudolf
+rudolfo
+rudolph
+rudy
+rudyard
+rudzinsk
+rudzitis
+rueben
+ruecha
+ruediger
+ruel
+ruest
+ruetz
+ruey
+rufe
+ruffolo
+rufino
+rufus
+rugg
+ruggiero
+rui
+rui-tao
+rui-yuan
+ruigrok
+ruitao
+ruiz
+rumley
+rummans
+rummel
+rummell
+runciman
+rundle
+rundstei
+rungroj
+runkel
+runnels
+running
+runyon
+ruoh-chy
+ruohchyu
+rupa
+rupert
+ruperta
+ruperto
+rupnow
+rupp
+ruppert
+ruprecht
+ruqiang
+rurick
+rurik
+rusch
+ruschmei
+rushing
+rushmore
+rushton
+rusin
+ruspini
+russ
+russel
+russell
+russett
+rustie
+rustin
+rustu
+rusty
+rutger
+ruth
+ruthann
+ruthanne
+ruthart
+ruthe
+rutherfo
+ruthi
+ruthie
+ruthy
+rutland
+rutledge
+rutt
+ruttan
+rutter
+ruttger
+rutulis
+rutyna
+ruud
+ruy
+ruyant
+ruyle
+ruzicka
+ruzycki
+ryall
+ryals
+ryan
+ryann
+rybczyns
+rycca
+ryce
+rychlick
+ryde
+ryder
+rydhan
+ryerson
+rygwalsk
+rykwalde
+ryley
+rylott
+ryman
+rymkiewi
+rynders
+rynties
+ryohei
+ryon
+ryoung
+ryszard
+ryun
+rzepczyn
+sa'id
+saad
+saake
+saal
+saatciog
+saavedra
+saba
+sabadash
+sabah
+sabanaya
+sabat
+sabatell
+sabatini
+sabatino
+sabbagh
+saber
+saberi
+sabety
+sabiha
+sabin
+sabina
+sabine
+sabo
+sabol
+sabooria
+sabourin
+sabra
+sabri
+sabrina
+sabry
+sabuson
+sabzali
+sacarell
+sacchett
+sacha
+sachidul
+sachiko
+sachindr
+sachs
+sacks
+sacto
+sada
+sadan
+sadath
+sadegh
+sadeghi
+sadella
+sadie
+sadler
+sadorra
+sadowska
+sadoyama
+sadri
+sadroudi
+sadru
+sadye
+saed
+saeed
+saeid
+safaa
+safah
+safinia
+sagan
+sage
+sager
+sagers
+sagris
+saha
+sahay
+sahib
+sahinalp
+sahli
+saibal
+saibun
+said
+saidee
+saidzade
+saied
+saifalla
+saifulla
+saify
+saiid
+saikaley
+sails
+saini
+sainsbur
+saisho
+sait
+saito
+saitoh
+saiyed
+sakaguch
+sakai
+sakamaki
+sakauye
+sakus
+sal
+salada
+saladna
+salah
+salaidh
+salam
+salamon
+salapek
+salazar
+salb
+salcudea
+saldanha
+saleem
+saleh
+salehi
+salem
+salembie
+salemi
+sales
+salgado
+salhany
+salibi
+salim
+salim-ya
+salimi
+salina
+salinas
+salis
+salkilld
+salkini
+salkok
+salladay
+salle
+sallee
+sallehud
+salli
+sallie
+sally
+sallyann
+salmon
+saloma
+salome
+salomi
+salomo
+salomon
+salomone
+salsbery
+saltamar
+salter
+saltside
+salva
+salvador
+salvato
+salvator
+salvidor
+salvin
+salwa
+salyer
+salyniuk
+salzillo
+sam
+samac
+samalot
+saman
+samantha
+samara
+samaratu
+samaria
+samaroo
+sambar
+sambi
+sambo
+sameh
+samhaber
+sami
+samia
+samieian
+samir
+sammie
+sammon
+sammons
+sammy
+samora
+sampalea
+sampat
+sampath
+samples
+sampson
+sampson-
+samshixu
+samson
+samsonen
+samual
+samuel
+samuele
+samy
+sanaa
+sanabria
+sanae
+sanand
+sanborn
+sanche
+sanchez
+sancho
+sanda
+sandberg
+sandburg
+sande
+sandeep
+sandell
+sander
+sanders
+sanderso
+sandford
+sandhar
+sandhu
+sandhya
+sandi
+sandie
+sandifor
+sandip
+sandison
+sandiway
+sandler
+sandlfor
+sandner
+sandness
+sandor
+sandra
+sandre
+sandrine
+sandro
+sandrock
+sandy
+sandye
+sanford
+sanford-
+sang
+sang-mau
+sang-woo
+sangbong
+sangha
+sanghami
+sangho
+sangiova
+sangman
+sangwook
+sanh
+sanity
+sanja
+sanjay
+sanjeet
+sanjeev
+sanjib
+sanjiv
+sanjiva
+sanjoy
+sankey
+sanks
+sanoy
+sanramon
+sanschag
+sansom
+sanson
+sansone
+santa
+santabar
+santella
+santi
+santiago
+santiest
+santitor
+santo
+santos
+santosh
+sanzone
+sapena
+saphir
+sapphira
+sapphire
+saqib
+sara
+sara-ann
+saraann
+sarah
+sarajane
+saran
+saran-br
+sarangar
+sarasina
+sarath
+saravano
+sarawath
+sarbutt
+saree
+sarena
+sarene
+sarette
+sarge
+sargent
+sargeson
+sari
+sarin
+sarina
+sarine
+sarioglu
+sarita
+sarkari
+sarlos
+sarma
+sarna
+saroj
+sarracin
+sarrasin
+sarrazin
+sarsh
+sarson
+sartin
+sartiran
+sarto
+sartor
+sarubbi
+sasaki
+sascha
+sasha
+sashenka
+sashi
+sasinows
+sask
+saskia
+sasore
+sassan
+sassine
+sasson
+sastry
+saswata
+sathe
+sati
+satin
+satis
+satish
+satkamp
+satkunas
+sato
+satoh
+satoshi
+satta
+sattar
+satterfi
+sattler
+satya
+satyajit
+satyanar
+saucerma
+sauck
+sauder
+saudra
+sauer
+saul
+saulnier
+sauls
+saumitra
+saumure
+saumya
+sauncho
+saunder
+saunderc
+saunders
+saundra
+saungika
+sauprobo
+sauvagea
+sauve
+sauveur
+savadkou
+savanh
+savard
+savarimu
+savaryeg
+savina
+savino
+savita
+savo
+savoie
+savoj
+savoula
+saw
+sawada
+saward
+sawaya
+sawchuk
+sawczyn
+sawita
+sawsan
+sawyer
+sawyere
+sawyers
+sax
+saxe
+saxena
+saxon
+say
+sayar
+sayed
+sayeeda
+sayegh
+sayer
+sayers
+sayla
+sayre
+sayres
+scalabri
+scalera
+scales
+scammerh
+scamurra
+scandret
+scanga
+scanlan
+scanlon
+scapin
+scarboro
+scarbrou
+scarface
+scarffe
+scarlet
+scarlett
+scarrow
+scatena
+scates
+schaap
+schacham
+schachtl
+schack
+schadan
+schaefer
+schafer
+schaffel
+schaffer
+schallen
+schaller
+schallio
+schanck
+schank
+schanne
+scharf
+schartma
+schatzbe
+schauer
+schavo
+schavone
+schechtm
+scheck
+scheckle
+schecter
+schedule
+scheduli
+scheer
+scheffle
+scheible
+scheidt
+scheifel
+schejbal
+schell
+schellen
+schembri
+schemena
+schenck
+schendel
+schenk
+schenkel
+schepps
+scherbin
+scherer
+schermer
+scherzin
+schesvol
+scheuerm
+schick
+schieber
+schiefer
+schiegl
+schierba
+schill
+schiller
+schillin
+schiltz
+schinkel
+schipper
+schireso
+schirmer
+schirtzi
+schissel
+schittl
+schlacht
+schlagen
+schlange
+schledwi
+schlegel
+schlemme
+schlicht
+schloboh
+schluter
+schmadtk
+schmeder
+schmeing
+schmeler
+schmelze
+schmidt
+schmitig
+schmitt
+schmitz
+schmoe
+schnacke
+schnaith
+schneide
+schnell
+schnirer
+schnob
+schnupp
+schnurma
+schober
+schoch
+schoen
+schoener
+schoenfe
+schoenin
+schoenli
+schoettl
+schofiel
+scholes
+scholey
+scholman
+scholtz
+schonber
+schooley
+schopenh
+schousbo
+schouwen
+schrader
+schrag
+schrage
+schram
+schraner
+schrang
+schreibe
+schreier
+schreife
+schreine
+schrier
+schroede
+schroer
+schroff
+schruefe
+schrupp
+schrybur
+schubert
+schuck
+schucker
+schuddeb
+schuett
+schuette
+schuld
+schulte
+schultz
+schultze
+schulz
+schulze
+schumach
+schumann
+schuster
+schute
+schutte
+schutz
+schuyler
+schvan
+schwab
+schwader
+schwalba
+schwane
+schwante
+schwartz
+schwarz
+schwenk
+schyndel
+schyving
+scibek
+scif
+scissons
+scodras
+scomello
+sconzo
+scooter
+scorpio
+scorziel
+scot
+scott
+scotti
+scottie
+scottjop
+scottt
+scotty
+scournea
+scovell
+scovill
+scp
+scpbuild
+scpiivo
+scptest
+scrantom
+scrbacic
+screener
+scribner
+scrivens
+scroger
+scss
+scssdev
+scully
+scurlock
+scythia
+se
+seabrook
+seager
+seagle
+seagrave
+seagrove
+seahawk
+seale
+sealy
+seamster
+seamus
+sean
+seana
+seang
+seanna
+seany
+searl
+searle
+searles
+sears
+seatter
+seawell
+seay
+sebastia
+sebastie
+sebata
+sebeh
+sechang
+sechen
+sechrest
+secrest
+security
+seda
+sedat
+sedayao
+seddigh
+seddon
+sedigheh
+sedovic
+sedran
+see
+seeds
+seegobin
+seelaend
+seelan
+seeler
+seeley
+seema
+seenu
+seery
+sees
+seethara
+segal
+segars
+seggie
+seguin
+sehat
+sehgal
+sehinson
+sehmbey
+sehyo
+sei
+seidel
+seiden
+seidl
+seidman
+seifers
+seifert
+seifried
+seiji
+seiko
+seiler
+seiple
+seipue
+seitz
+seiz
+sej
+sek-ming
+seka
+sekar
+sekhar
+seki
+sekiguch
+sekming
+sekuler
+sela
+selbrede
+selby
+selchow
+selcuk
+seldon
+selena
+selene
+selent
+selestin
+selia
+selic
+selie
+selig
+selim
+selime
+selina
+selinda
+seline
+seliske
+selisker
+selkirk
+sella
+sellars
+selle
+sellers
+sellgren
+sellis
+sells
+sellwood
+selma
+selva
+selvaraj
+selwyn
+sembi
+semeniuk
+semenzat
+semerau
+semler
+semmens
+semmler
+semoon
+sena
+senad
+senderow
+sendyk
+senecal
+senese
+sengoba
+sengupta
+seniuk
+senng
+senser
+senten
+sentner
+sentovic
+senyildi
+senyshyn
+seob
+seoju
+seok
+seong
+seoul
+sepe
+sepesi
+sephira
+sepko
+serack
+serafin
+seraphin
+serapin
+serazzi
+serban
+serber
+serbin
+serbus
+serdar
+serduke
+seregely
+serena
+serene
+serethia
+serge
+sergeant
+sergei
+sergent
+sergey
+sergi
+sergio
+sergiu
+sergo
+seroka
+serour
+serraf
+serrano
+serre
+servais
+servance
+services
+servidio
+serville
+seshadri
+seshan
+seth
+sethi
+sethian
+setiawan
+seto
+setsuko
+settels
+setterfi
+settles
+seufert
+seumas
+seung
+seungbin
+seungchu
+seungjun
+seuss
+seven
+severin
+severina
+severn
+severns
+sevigny
+sevilla
+seville
+seward
+sewell
+sey-ping
+seyar
+seyed
+seyfolla
+seyma
+seymour
+sezer
+sfiroudi
+sforza
+sgorniko
+sguigna
+sha-wen
+shabatur
+shabbir
+shabo
+shacham
+shackelf
+shacklef
+shacklet
+shackley
+shaddock
+shadow
+shae
+shafer
+shaffer
+shafik
+shafiq
+shafique
+shahab
+shahan
+shahani
+shahen
+shahid
+shahram
+shahriar
+shahrin
+shahrokh
+shahrood
+shai
+shaib
+shaibal
+shaida
+shaila
+shailan
+shailen
+shailend
+shailesh
+shailin
+shaina
+shaine
+shaji
+shaker
+shakeri
+shakib
+shakil
+shakoor
+shakor
+shalizi
+shalla
+shalmon
+shalna
+shalne
+shalom
+shama
+shamblin
+shames
+shamim
+shamir
+shamji
+shams
+shamshad
+shamshir
+shamsia
+shamus
+shan
+shan-min
+shan-pin
+shana
+shanahan
+shanan
+shanda
+shandee
+shandeig
+shandie
+shandra
+shandy
+shane
+shaner
+shang
+shang-ti
+shangi
+shangtia
+shani
+shanie
+shankar
+shanlin
+shanmin
+shanna
+shannah
+shannan
+shannen
+shannon
+shanon
+shanping
+shanta
+shantee
+shanti
+shantz
+shao
+shao-she
+shaoshen
+shapcott
+shapin
+shapiro
+shapland
+shappir
+shara
+sharad
+sharada
+sharae
+sharai
+sharan
+sharee
+shari
+sharia
+sharif
+shariff
+sharissa
+sharity
+sharkey
+sharky
+sharl
+sharla
+sharleen
+sharlene
+sharline
+sharma
+sharman
+sharmila
+sharnoff
+sharon
+sharona
+sharone
+sharpe
+sharratt
+sharri
+sharron
+sharry
+shary
+sharyl
+sharyn
+shashank
+shashi
+shastri
+shastry
+shatter
+shattuck
+shau
+shaughan
+shaughn
+shaughne
+shaukat
+shaumil
+shaun
+shauna
+shaupoh
+shaver
+shaw
+shaw-yun
+shawen
+shawn
+shawna
+shawnee
+shawyune
+shay
+shay-pin
+shayanpo
+shayla
+shaylah
+shaylyn
+shaylynn
+shayna
+shayne
+shayping
+shea
+sheaffer
+shealy
+shean
+sheara
+shearer
+shearin
+shearman
+shears
+sheba
+shebanow
+shechtma
+shedd
+shedman
+sheehan
+sheela
+sheelagh
+sheelah
+sheena
+sheeree
+sheergar
+sheets
+sheff
+sheffey
+sheffie
+sheffiel
+sheffy
+sheidafa
+sheikh
+sheikna
+sheila
+sheila-k
+sheilah
+sheilaka
+sheileag
+shein
+shek
+shekar
+shekhar
+shekwan
+shel
+shela
+shelagh
+shelba
+shelbi
+shelby
+shelden
+sheldon
+shelegey
+shelia
+shell
+shelley
+shelli
+shellie
+shellin
+shellman
+shelly
+shellysh
+shelton
+shem
+shemwell
+shen
+shen-zhi
+shena
+sheng
+sheng-fu
+shengfu
+shengru
+shengwen
+shengwu
+shennan
+shep
+shepard
+shepherd
+sheppard
+shepperd
+sher
+sherali
+sherard
+sheraton
+sherban
+shere
+sheree
+sheremet
+sheri
+sheri-ly
+sheridan
+sherie
+sherif
+sherill
+sherilyn
+sherin
+sherk
+sherline
+sherlock
+sherm
+sherman
+shermie
+shermy
+sherona
+sherow
+sherra
+sherrard
+sherrel
+sherrell
+sherrer
+sherri
+sherrie
+sherrill
+sherrily
+sherry
+sherrye
+sherryl
+sherwan
+sherwin
+sherwood
+sherwyn
+sherwynd
+sherye
+sheryl
+sheth
+sheu
+sheung
+shew
+shewchen
+shi
+shi-qin
+shi-wei
+shiang-y
+shiangyi
+shiao-mi
+shiaomin
+shibahar
+shibata
+shibberu
+shibo
+shieff
+shieh
+shiel
+shiela
+shields
+shiell
+shier
+shiffer
+shiflett
+shigeaki
+shigeki
+shigemur
+shigenao
+shigeo
+shigeru
+shih
+shih-dar
+shih-hai
+shih-hsi
+shih-kua
+shih-tie
+shihhai
+shihhsiu
+shihkuan
+shihtien
+shik
+shikui
+shila
+shiley
+shilla
+shilling
+shimada
+shimandl
+shimiz
+shimizu
+shimshon
+shin-dug
+shina
+shinder
+shindug
+shing
+shing-ch
+shing-mi
+shingche
+shingler
+shingmin
+shinichi
+shinji
+shinjo
+shinobu
+shinohar
+shinzo
+shiou
+shipe
+shipp
+shippen
+shiqin
+shiquan
+shir
+shirai
+shiranth
+shiratsu
+shiraz
+shireen
+shireman
+shirene
+shirey
+shirin
+shirinlo
+shirish
+shirl
+shirlee
+shirleen
+shirlene
+shirley
+shirley-
+shirline
+shirman
+shiroshi
+shirriff
+shishakl
+shishido
+shiu
+shiu-lin
+shiuan
+shiue
+shiuling
+shiun
+shiung
+shiv
+shiva
+shivaji
+shivapra
+shivchar
+shivdars
+shivnan
+shiwei
+shixian
+shlomo
+shmoys
+shnay
+shnider
+sho
+shoaf
+shobana
+shockley
+shoeb
+shoemake
+shoens
+shoji
+sholom
+shon
+shona
+shonda
+shonka
+shonuck
+shoou-yu
+shoouyu
+shop
+shoppel
+shorgan
+shorwan
+shoshana
+shoshann
+shostak
+shou
+shou-che
+shou-mei
+shoucher
+shoulars
+shouli
+shoun
+shouresh
+showers
+shreve
+shriberg
+shrieves
+shripad
+shriram
+shtivelm
+shtulman
+shu
+shu-chen
+shu-gong
+shu-mei
+shuang
+shuangli
+shubaly
+shuchen
+shue
+shuechia
+shuen
+shugong
+shuichi
+shuji
+shukor
+shukster
+shuler
+shull
+shultz
+shum
+shuman
+shumate
+shumei
+shunfeng
+shung
+shunhui
+shunmuga
+shunro
+shuo
+shupe
+shuqing
+shurlock
+shurtlef
+shurwood
+shuster
+shusuke
+shute
+shutler
+shutoku
+shutterb
+shuvra
+shuyen
+shwed
+shwu-chy
+shwuchyn
+shya-yun
+shyam
+shyan
+shyh-chi
+shyhchin
+shylo
+shyoko
+shypski
+shyu
+si
+siamack
+siamak
+siana
+sianna
+siaw
+sib
+sibbet
+sibbie
+sibby
+sibeal
+sibel
+sibella
+sibelle
+sibiga
+sibilla
+sibincic
+sibley
+sibyl
+sibylla
+sibylle
+sicard
+sich
+sichao
+sickle
+sickler
+sicotte
+sid
+siddall
+siddell
+siddiqui
+sides
+sidhu
+sidnee
+sidney
+sidone
+sidoney
+sidonia
+sidonnie
+sidor
+sidorovs
+sieben
+sieber
+siefert
+siegal
+siegel
+siegfrie
+siegle
+siegmund
+siegurd
+siehl
+sieling
+siemens
+siemer
+sienggo
+siew
+siew-kia
+siewert
+sifer
+siffre
+sig
+sigda
+sigfrid
+sigfried
+siggy
+sigismon
+sigismun
+sigmon
+sigmund
+signe
+sigrid
+sigurd
+sigurdso
+sigut
+sigvard
+siham
+sihem
+sik-yin
+sika
+sikander
+sikes
+sikita
+sikri
+sil
+silang
+silas
+silburt
+sile
+sileas
+silgardo
+silianu
+silieff
+silins
+sills
+sils
+silva
+silvain
+silvan
+silvana
+silvano
+silvanus
+silverma
+silverst
+silverth
+silveste
+silvestr
+silvia
+silvie
+silvio
+silwer
+sim
+simaan
+simanski
+simard
+simard-n
+simcha
+simcoe
+simcox
+sime
+simen
+simeon
+simeone
+simhan
+simion
+simkin
+simler
+simmonds
+simmons
+simms
+simon
+simon-ch
+simon-pu
+simona
+simone
+simonett
+simonian
+simonne
+simonovi
+simons
+simonsen
+simpkin
+simpson
+simren
+sims
+simser
+simson
+simulati
+simzer
+sina
+sinanan
+sinasac
+sinchak
+sinchau
+sinclair
+sinclare
+sindee
+sing
+sing-pin
+singbeil
+singer
+singh
+singhal
+singham
+singires
+singyu
+sinh
+sinha
+sinkfiel
+sinkovit
+sinnett
+sinnott
+sinoyann
+sinyor
+siobhan
+siomalas
+siotong
+sioux
+siouxie
+siperco
+sipes
+siping
+sipple
+sir
+sirevici
+siripong
+sirojith
+sisely
+sisile
+sisk
+siso
+sissela
+sissie
+sissy
+sist
+sitar
+sitch
+sitler
+siu
+siu-kwok
+siu-ling
+siu-man
+siusan
+siv
+siva
+sivaji
+sivasoth
+siward
+sizto
+sj
+sjaak
+sjerps
+sjouke
+skaff
+skaftaso
+skaggs
+skalski
+skanes
+skaret
+skariex
+skedelsk
+skeeter
+skef
+skell
+skelly
+skene
+skeoch
+skerlak
+skerry
+skeuse
+skiba
+skiclub
+skillen
+skillman
+skinner
+skip
+skipp
+skipper
+skippie
+skippy
+skipton
+sklower
+skoberne
+skof
+skopliak
+skrebels
+skriverv
+skrobans
+skrobeck
+skruber
+skuce
+skuratow
+skwarok
+sky
+skye
+skylar
+skyler
+slaa
+slabaugh
+slaby
+slade
+sladek
+slagel
+slartiba
+slatteng
+slattery
+slautter
+slavin
+sldisk
+sleeman
+sleeth
+slempers
+slick
+slinkard
+slinowsk
+sliter
+sloan
+sloane
+slobin
+sloboda
+slobodia
+slobodri
+slonosky
+slotnick
+slozil
+sluis
+slunder
+slusser
+sly
+slyteris
+smale
+smalltal
+smallwoo
+smecca
+smedema
+smeenk
+smelters
+smerdell
+smerek
+smid
+smine
+smit
+smita
+smith
+smithdea
+smithson
+smits
+smitty
+smolin
+smook
+smoot
+smothers
+smrke
+smrke-su
+smuda
+smulders
+smyrl
+smyth
+smythe
+snair
+snapper
+snarr
+snead
+snedden
+snedeker
+snehal
+snelgrov
+snelling
+snider
+sniderma
+snipes
+snips
+snodgras
+snoke
+snorri
+snowden
+snuggs
+snyder
+soard
+sobchuk
+sobczak
+sobeck
+sobel
+sobiesia
+sobitha
+sobkow
+sobolak
+sobolews
+sobon
+sochovka
+socorrit
+socrates
+sodano
+soderber
+sodhi
+soebowo
+soegiono
+sofeya
+soffa
+sofia
+sofie
+sofoklis
+soh
+sohaib
+sohail
+sohal
+sohale
+sohayla
+sohier
+sohni
+sohns
+sohota
+soiffer
+soin
+sojka
+sojkowsk
+sokolows
+sokyrko
+sol
+solai
+solange
+soldera
+solheim
+soliman
+solita
+solkoff
+sollee
+sollie
+sollman
+solly
+solman
+solodko
+solomon
+solovay
+solski
+soman
+somani
+somenzi
+somera
+somers
+somerset
+somervil
+somisett
+sommer
+sommerdo
+sommerfe
+sompong
+somppi
+somsak
+son
+sonbol
+sondra
+sondueim
+song-cha
+song-ho
+songchar
+songho
+songnian
+sonhing
+sonia
+sonier
+sonja
+sonne
+sonni
+sonnie
+sonnnie
+sonny
+sono
+sonoda
+sonoe
+sonya
+soo
+sood
+soohong
+soohoo
+sook
+sookdeo
+sooley
+soong
+soonhoi
+sophey
+sophi
+sophia
+sophie
+sophroni
+sorathia
+sorbi
+sorcha
+soreanu
+soren
+sorensen
+soriano
+sorin
+sorkin
+soroker
+sorrel
+sorrell
+sorrenti
+sos
+sosa
+sosanna
+sossaman
+sotelo
+sotiriad
+sotiris
+soto
+sotos
+souba
+soucie
+soucy
+sougata
+souheil
+soulef
+soules
+soullier
+soumis
+soumitra
+sounya
+souphala
+sources
+souren
+sourin
+sourisse
+sourour
+sousa
+soussa
+southard
+souther
+southon
+southwor
+souza
+sova
+soweidan
+sowry
+soyeh
+soyland
+soyong
+soyster
+soyuer
+space
+spallin
+spann
+spannbau
+sparacio
+sparkes
+sparks
+sparksma
+sparky
+spass
+spaugh
+speakec
+speaker
+spearman
+spearpoi
+spears
+specs
+speedy
+speer
+speers
+speight
+spejewsk
+spence
+spencer
+spense
+spenser
+sperman
+spessot
+spicer
+spickelm
+spieker
+spieler
+spight
+spike
+spilchak
+spillane
+spily
+spindler
+spinelli
+spingola
+spinks
+spirakis
+spirkovs
+spiros
+spisak
+spitzer
+spivey
+splitt
+spohn
+spolar
+sponagle
+sponchia
+spooner
+spragg
+spraggin
+sprague
+sprandel
+sprayber
+spriggs
+spriging
+springth
+sprott
+sproul
+sproule
+sprouse
+spruell
+sprules
+sprunger
+spudboy
+spurlin
+spurlock
+spurway
+spy
+spyridon
+spyros
+squires
+squizzat
+sr
+srawan
+src
+sreedhar
+sri
+sridaran
+sridevi
+sridhar
+sridhara
+srihari
+srikanth
+srikrish
+srimurti
+srinath
+srini
+sriniuas
+srinivas
+sriram
+sriranja
+srirupa
+sriv
+srivasta
+srivatsa
+sroczyns
+ssi
+ssington
+st
+st-amour
+st-denis
+st-louis
+st-marti
+st-onge
+st-pierr
+st.
+st.clair
+st.denis
+st.germa
+st.jacqu
+st.john
+st.laure
+st.louis
+st.pierr
+st.vil
+st_james
+staats
+stabilit
+stace
+stacee
+stacey
+stach
+stachowi
+staci
+stacia
+stacie
+stackpol
+stacy
+stadelme
+stadler
+stafani
+staffard
+staffeld
+staffing
+stafford
+staford
+stagger
+staggs
+stagmier
+stahl
+stahly
+stainbac
+staley
+stalin
+stallabr
+stallcup
+stalling
+stalter
+stamboul
+stampfl
+stampley
+stamps
+stan
+stanciu
+stanczyk
+standard
+standel
+standen
+standfor
+standrin
+stanfiel
+stanford
+stange
+stanisla
+stanke
+stanleig
+stanley
+stanly
+stansber
+stansbur
+stansby
+stansell
+stansfie
+stanton
+stanulis
+stanwood
+stapenho
+staples
+star
+starbuck
+staring
+starkaus
+starkeba
+starkes
+starks
+starla
+starlene
+starlet
+starlin
+starnes
+starowic
+starr
+stars
+starsdps
+starzman
+stasaski
+stasiak
+stasney
+stastny
+stasyszy
+stat
+staten
+stateson
+statile
+statisti
+staton
+stavro
+stavros
+stayton
+stclair
+stctest
+stds
+ste
+ste-mari
+stearn
+stearne
+stearns
+stebbing
+steckley
+steede
+steele
+steelman
+steen
+steenbur
+steene
+steeves
+stefa
+stefan
+stefana
+stefanac
+stefania
+stefanie
+stefano
+steffane
+steffen
+steffens
+steffes
+steffey
+steffi
+steffie
+steffy
+stegall
+steggall
+stegman
+stegmuel
+stehen
+stehr
+steidel
+steiert
+steinar
+steinbac
+steinber
+steinhar
+steip
+stejskal
+steklasa
+stelcner
+stella
+stellita
+stellwag
+stemmler
+stender
+stennett
+stenson
+stensrud
+stepchuk
+steph
+stepha
+stephan
+stephana
+stephane
+stephani
+stephann
+stephans
+stephanu
+stephany
+stephe
+stephen
+stepheni
+stephens
+stephi
+stephie
+stephine
+stepler
+stepp
+steranka
+stercyk
+sterczyk
+sterescu
+stergios
+sterian
+sterling
+stern
+sterne
+stesha
+steski
+stetner
+stetson
+stetter
+stettner
+stevan
+stevana
+stevanov
+steve
+steven
+stevena
+stevens
+stevenso
+stevie
+stevy
+stew
+steward
+stewart
+stewart-
+sticklan
+sticpewi
+stiglitz
+stiles
+stillman
+stillwel
+stimler
+stina
+sting
+stinky
+stinson
+stinzian
+stirling
+stirrett
+stites
+stjohn
+stobaugh
+stock
+stocker
+stocks
+stockton
+stockwel
+stodart
+stoddard
+stoelzle
+stoevsky
+stoffels
+stoker
+stokes
+stokker
+stokoe
+stokoski
+stolzle
+ston
+stone
+stonebra
+stonehou
+stoner
+stonos
+stooke
+storace
+storelli
+storey
+storm
+stormi
+stormie
+stormy
+storrie
+story
+stotts
+stotz
+stouder
+stough
+stovall
+stover
+stowe
+stoyles
+strachan
+strackho
+strader
+straka
+strandbe
+strandlu
+strannem
+strasser
+stratfor
+stratton
+straub
+strauch
+strauss
+strautma
+strawczy
+strayhor
+streater
+streatfi
+streibel
+streight
+streng
+strickla
+strider
+strober
+strock
+stroemer
+strohmey
+strom
+stronski
+stropp
+stroud
+stroupe
+strube
+struble
+strucche
+strudwic
+struzyns
+stu
+stuart
+stubblef
+stubbs
+stuckey
+stude
+student
+studer
+stults
+stumpf
+sturdiva
+sture
+sturrock
+stutts
+su
+su-xin
+suany
+suarez
+suat
+subasing
+subhash
+subhashi
+subhi
+subhra
+subhrans
+subi
+subick
+subissat
+subitha
+submital
+subodh
+subra
+subraman
+subroto
+subsara
+subu
+sucha
+suchitra
+suchocki
+suda
+sudabeh
+sudan
+sudbey
+sudbury
+suddarth
+sudeep
+sudesh
+sudha
+sudhakar
+sudhir
+sudip
+sue
+sue-joe
+sue-may
+sueanne
+suejoe
+sueling
+suellen
+suen
+suer
+suess
+sufcak
+suffern
+sugandi
+sugarbro
+sugarman
+sugih
+sugihara
+suh
+suha
+suhail
+suharly
+suhas
+suilin
+suiping
+suitt
+sujay
+suk-ho
+suk-jae
+suk-yin
+sukey
+sukhendu
+sukho
+sukhwant
+suki
+sukjae
+sukku
+sukumar
+sula
+sulatyck
+sule
+sulewski
+suliguin
+sullivan
+sully
+sultan
+suman
+sumanth
+sumaryan
+sume
+sumi
+sumit
+sumitro
+summach
+summerli
+summers
+sumner
+sumpter
+sunatori
+sundar
+sundaram
+sundares
+sunderla
+sundra
+sung
+sung-cho
+sung-sup
+sungchin
+sungchon
+sunghae
+sungki
+sungkyoo
+sungsup
+sunil
+sunjay
+sunnie
+sunning
+sunny
+sunshine
+sunstrum
+suomela
+supervis
+support
+suprick
+supriya
+supriyo
+sura
+surazski
+surber
+surendra
+suresh
+suria
+surinder
+surowani
+surray
+surreau
+surridge
+sursal
+survey
+surya
+susan
+susana
+susanett
+susann
+susanna
+susannah
+susanne
+susanto
+susette
+susi
+susick
+susie
+susil
+sussie
+susumu
+susy
+sutardja
+sutarja
+sutarwal
+sutcliff
+suter
+sutera
+sutherla
+suthers
+sutija
+sutphen
+sutter
+sutterfi
+sutterli
+sutton
+suu
+suvanee
+suwala
+suwanawo
+suwandi
+suxin
+suyama
+suykens
+suyog
+suzan
+suzane
+suzann
+suzanna
+suzanne
+suzette
+suzi
+suzie
+suzuki
+suzy
+svalesen
+svante
+sven
+svend
+svenn-er
+svensson
+sventek
+svetlana
+svilans
+svm-bnrm
+svo
+svr
+swact
+swaden
+swails
+swaine
+swamy
+swandi
+swann
+swanson
+swanston
+swaranji
+swartz
+swazey
+swd
+swearing
+swee-joo
+sweeney
+sweetnam
+swen
+swenberg
+swensen
+swenson
+swepston
+swiat
+swiatkow
+swick
+swidersk
+swinamer
+swinburn
+swinkels
+swinks
+swinney
+swinson
+swinwood
+swisher
+switchin
+switzer
+swope
+swr
+swyer
+sy
+syal
+syamala
+sybil
+sybila
+sybilla
+sybille
+sybyl
+sycha
+syd
+sydel
+sydelle
+sydeman
+sydney
+sydnor
+sydor
+sydoryk
+syed
+sykes
+syl
+sylas
+sylva
+sylvain
+sylvan
+sylveste
+sylvestr
+sylvia
+sylvie
+sylvio
+sym
+syman
+symen
+symon
+symons
+syndra
+synful
+synness
+syposz
+syres
+syrett
+sys
+sysadmin
+sysint
+syssuppo
+systems
+systest
+syun
+syyed
+szabo
+szamosi
+szaplonc
+szaran
+szeto
+sziladi
+szkarlat
+szopinsk
+szot
+szpakows
+szpilfog
+sztein
+szuminsk
+szura
+szymansk
+szypulsk
+ta
+ta-sung
+tab
+tabaja
+tabalba
+tabatha
+tabb
+tabbatha
+tabbert
+tabbi
+tabbie
+tabbitha
+tabby
+taber
+tabina
+tabitha
+tabl
+tabler
+tables
+tabor
+tac
+tachih
+tacitus
+tad
+tadayuki
+tadd
+taddeo
+taddeusz
+taddio
+tadeas
+tadeo
+tades
+tadeusz
+tadevich
+tadge
+tadio
+tadlock
+tae
+tae-ho
+tae-hwan
+taeho
+taehwan
+taffy
+taggart
+taghizad
+tague
+tahamont
+tahani
+taharudd
+taheri
+tahir
+tahsin
+tai
+tai-jen
+tailinh
+tailor
+taina
+tait
+taite
+taiwana
+tajbakhs
+tak
+tak-wai
+takagi
+takahash
+takahisa
+takako
+takao
+takashi
+takashim
+takata
+takayuki
+takefman
+takehiko
+takeo
+takeshim
+takeuchi
+taki
+takis
+takiyana
+tal
+talbert
+talbot
+talbott
+talcott
+talevi
+talia
+talis
+tallett
+tallia
+tallie
+tallou
+tallulah
+tally
+talmont
+talmy
+talton
+talya
+talyah
+tam
+tamar
+tamara
+tamarah
+tamarell
+tamaresi
+tamarra
+tamas
+tamasi
+tamer
+tamera
+tami
+tamiko
+tamir
+tamma
+tammara
+tammaro
+tammi
+tammie
+tammy
+tamqrah
+tamra
+tamrazia
+tamura
+tan
+tan-atic
+tana
+tanaka
+tanchak
+tancordo
+tandberg
+tandi
+tandie
+tandiono
+tandiwe
+tandy
+tanferna
+tanglao
+tangren
+tanhya
+tani
+tania
+tanio
+tanir
+tanitans
+tanja
+tann
+tanner
+tanney
+tannie
+tanniere
+tanny
+tansy
+tanya
+tao
+tap
+tapani
+tape
+tapner
+tapp
+tappende
+tappert
+tapsell
+tara
+tarah
+tarak
+taralp
+taraneh
+tarant
+taranto
+taraschu
+tarasewi
+tardif
+tardiff
+tardioli
+tarek
+taren
+tareq
+targosky
+tarik
+tariq
+tarlamis
+tarle
+tarmi
+tarnai
+tarng
+taro
+tarof
+tarquini
+tarra
+tarrah
+tarrance
+tarrant
+tarsky
+tarte
+tarus
+tarver
+taryn
+taryna
+tas
+taschere
+tash
+tasha
+tasia
+taskforc
+taspatch
+tassi
+tasso
+tassy
+tasuk
+tasung
+tat
+tata
+tatangsu
+tatar
+tate
+tatemich
+tates
+tateyama
+tatiana
+tatiania
+tats
+tatsdocn
+tatsman
+tatsugaw
+tatsuya
+tattenba
+tatum
+tatyana
+tauberg
+taul
+tauna
+taurus
+tauscher
+tauvia
+tavana
+tavares
+taverner
+tavis
+tawauna
+tawfik
+tawnya
+tawsha
+taxashi
+tay
+tayeb
+tayfun
+taylor
+taylor-h
+tayyab
+tc
+tchangid
+tchir
+td
+tdr
+te-chih
+te-hsiu
+te-wei
+teacher
+teador
+teague
+team
+teasley
+tebbe
+tebinka
+tec
+tech
+techih
+technica
+technoso
+teck
+tecklenb
+ted
+tedd
+tedda
+teddi
+teddie
+teddy
+teder
+tedi
+tedie
+tedman
+tedmund
+tedra
+tedrick
+teed
+teena
+teerdhal
+teetwo
+teh
+tehchi
+tehsiu
+teichman
+teiichi
+tein-min
+teinmin
+teirtza
+teitelba
+tej
+tejada
+tejal
+tejani
+tel
+telco
+tele
+telecom
+telesis
+telex
+telfer
+telidis
+telke
+tello
+tellup
+telos
+telva
+temp
+temple
+temple-d
+templeto
+ten-huei
+tena
+tencer
+teng
+tenhuei
+teniola
+tenna
+tennant
+tenney
+tennyson
+teo
+teodoor
+teodor
+teodora
+teodoric
+teodoro
+tera
+terakado
+teran
+terangue
+terence
+terencio
+teresa
+terese
+teresina
+teresita
+teressa
+terez
+teri
+teriann
+terminal
+terneus
+terr
+terra
+terrade
+terrance
+terranel
+terranov
+terrel
+terrell
+terrence
+terresa
+terri
+terri-jo
+terri-le
+terrie
+terrijo
+terrilei
+terrill
+terry
+terrye
+terryl
+tersina
+teruko
+teruo
+teruyuki
+terwey
+terwilli
+terza
+terzian
+tesa
+tesch
+tesfagab
+tesfamar
+tesh
+tesla
+tess
+tessa
+tessi
+tessie
+tessier
+tessler
+tessty
+tessy
+testa
+testagc
+tester
+testing
+testingp
+testntmv
+testsds
+testtool
+tetrault
+tetreaul
+tetsukaz
+tetsumo
+tetsuo
+tetsuya
+tetsuyuk
+teufel
+tevlin
+tewksbur
+tex
+teymour
+thabet
+thac
+thach
+thacher
+thacker
+thad
+thaddeus
+thaddus
+thadeus
+thai
+thain
+thaine
+thais
+thaker
+thakor
+thakur
+thaler
+thalia
+tham
+thames
+thane
+thang
+thanh
+thanh-ha
+thanh-ho
+thanh-hu
+thanh-qu
+thanh-so
+thanh-ti
+thanos
+thao
+tharby
+tharring
+thatch
+thatcher
+thatte
+thaxter
+thaxton
+thayer
+thayne
+the
+the worl
+thea
+theadora
+thebault
+theda
+thedford
+thedora
+thedric
+thedrick
+thege
+theis
+thekla
+thelma
+theloose
+themann
+theo
+theobald
+theochar
+theodor
+theodora
+theodore
+theodori
+theodosi
+theofani
+theohari
+theologo
+theoret
+thera
+theresa
+therese
+theresin
+theresit
+theressa
+theriaul
+therien
+therine
+theriot
+theron
+therrien
+thersa
+thevenar
+thewalt
+thi
+thi-cuc
+thia
+thibaud
+thibault
+thibaut
+thibeaul
+thibert
+thibodea
+thibon
+thiebaut
+thieken
+thiel
+thiem
+thien
+thierry
+thiery
+thies
+thiessen
+thieu
+thifault
+thill
+thimothy
+thinh
+think
+thirugna
+this dir
+thisdel
+thisner
+thoai
+thoi
+thom
+thoma
+thomaier
+thomalla
+thomas
+thomasa
+thomasi
+thomasia
+thomasin
+thomason
+thomasse
+thomassi
+thombors
+thomey
+thomlins
+thompson
+thoms
+thomsen
+thomson
+thon
+thondanu
+thor
+thoreau
+thorin
+thorley
+thorman
+thorn
+thornber
+thornbur
+thorndik
+thorne
+thornie
+thornley
+thornton
+thorny
+thorpe
+thorsen
+thorslun
+thorson
+thorstei
+thorsten
+thorvald
+those
+threader
+thrift
+throgmor
+thu
+thuan
+thuesen
+thum
+thumm
+thuong
+thurgood
+thurley
+thurman
+thurstan
+thurston
+thuswald
+thuthuy
+thuy
+thyagara
+ti
+ti-cheng
+ti-jeun
+tian
+tianbao
+tiberghi
+tibi
+tibold
+tibor
+tice
+ticheng
+ticzon
+tidball
+tidd
+tidwell
+tiebold
+tiebout
+tiedeman
+tiefenth
+tiegs
+tien
+tien-bue
+tien-chi
+tiena
+tienbuen
+tienchie
+tienyow
+tierney
+tiertza
+tieu
+tiff
+tiffani
+tiffanie
+tiffany
+tiffi
+tiffie
+tiffy
+tigg
+tigger
+tigran
+tihanyi
+tiina
+tijeun
+tilak
+tilbenny
+tilda
+tilden
+tildi
+tildie
+tildy
+tiler
+tilk
+tille
+tiller
+tilley
+tillie
+tillman
+tilly
+tilmon
+tilson
+tilton
+tim
+timeshee
+timi
+timleck
+timler
+timm
+timmer
+timmerma
+timmi
+timmie
+timmins
+timmons
+timms
+timmy
+timo
+timofei
+timos
+timoteo
+timothea
+timothee
+timotheu
+timothy
+timpson
+tims
+timsit
+timtsche
+tin
+tina
+tine
+tineke
+tiner
+ting
+ting-shu
+ting-tin
+ting-yu
+tingshuo
+tingting
+tingyu
+tingyue
+tini
+tinney
+tino
+tintor
+tiny
+tio
+tiong-ho
+tip
+tiphani
+tiphanie
+tiphany
+tippett
+tipping
+tippy
+tipton
+tirrell
+tischhau
+tischler
+tisdale
+tisdall
+tiseo
+tish
+tisha
+titian
+tito
+titos
+titus
+tiu
+tiwari
+tiziano
+tjahjadi
+tjia
+tjiong
+tjoe
+tjong
+toan
+toastmas
+toba
+tobe
+tobey
+tobi
+tobiah
+tobias
+tobie
+tobin
+tobit
+toby
+tobye
+tod
+todaro
+todd
+toddi
+toddie
+toddy
+todloski
+todo
+todorovi
+toerless
+toews
+toft
+togasaki
+tognoni
+tohama
+toi
+toiboid
+toinette
+tolar
+toles
+toletzka
+tolgyess
+tolle
+tollefse
+tolson
+tolstoy
+toly
+tom
+toma
+tomacic
+tomack
+tomacruz
+tomar
+tomas
+tomasett
+tomasina
+tomasine
+tomaso
+tomassi
+tomasz
+tomaszew
+tombul
+tome
+tomes
+tomi
+tomkin
+tomlin
+tomlinso
+tommaso
+tommi
+tommie
+tommy
+tomochek
+tomohiro
+tomoyosh
+tompkins
+tomy
+tonelli
+toney
+tong
+tongder
+toni
+tonia
+tonie
+tonkovic
+tonnie
+tonny
+tonogai
+tonu
+tony
+tonya
+tonye
+tookey
+toolbox
+toole
+tooley
+toolroom
+tools
+toolset
+toomer
+toone
+toop
+toothman
+tootsie
+tooyserk
+toperzer
+topgun
+toplis
+topo
+topol
+topp
+tor
+torain
+torbert
+torcac
+tordocs
+tore
+torey
+tori
+torian
+torie
+toril
+torin
+tornes
+tornqvis
+torok
+torr
+torrance
+torre
+torrealb
+torrell
+torrence
+torrens
+torres
+torrey
+torrie
+torrin
+torry
+torsten
+torunn
+tory
+tosca
+toscano
+tosczak
+toshach
+toshachn
+toshi
+toshiaki
+toshihir
+toshinar
+toss
+tostenso
+tota
+totaro
+toth
+totino
+totman
+totten
+totti
+touati
+touchett
+toufic
+tougas
+toulson
+toupin
+tousigna
+toussain
+tova
+tovah
+tove
+towaij
+towers
+towill
+towler
+towles
+town
+towney
+townie
+townley
+towns
+townsel
+townsend
+townson
+towny
+towsley
+toyanne
+toyoji
+toyooka
+tprl
+trace
+tracee
+traces
+tracey
+tracey-m
+trachsel
+traci
+tracie
+tracy
+tracz
+trader
+trae
+trafford
+trahan
+trainer
+training
+trainor
+trajan
+tramar
+trame
+tran
+tranfagl
+trang
+transki
+translat
+tranter
+trasmund
+traugott
+traulich
+traut
+trautman
+travel-p
+travelpe
+traver
+travers
+travis
+travus
+traxler
+trayer
+traylor
+traynor
+trecia
+tredenni
+tredway
+treen
+trees
+trefor
+trefry
+trefts
+tregenza
+treisman
+trek @
+tremain
+tremaine
+tremayne
+tremblay
+tremewan
+trenna
+trent
+trentadu
+trenton
+tres
+tres-sup
+tresa
+trescha
+trese
+tresrch
+tressa
+trev
+trevar
+trever
+trevetha
+trevitt
+trevor
+trey
+tri
+trial
+triantap
+tricci
+tricia
+trickett
+tricord
+trieu
+trif
+trifiro
+triggian
+trijanto
+trimble
+trina
+trindy
+trinh
+trinidad
+trink
+trip
+tripier
+tripleho
+tripp
+tripps
+tris
+trish
+trisha
+trisic
+trisko
+trista
+tristam
+tristan
+tristano
+trittler
+tritton
+trivedi
+trix
+trixi
+trixie
+trixy
+trocchi
+trochu
+troesch
+trojak
+tromm
+trong
+tropea
+tropeano
+trotsky
+trotter
+trottier
+troubors
+troup
+trowbrid
+troy
+troyvoi
+trpisovs
+trstram
+tru-fu
+truchon
+truda
+trude
+trudel
+trudell
+trudey
+trudi
+trudie
+trudy
+truebloo
+truelove
+trueman
+truesdal
+truffer
+trujillo
+trula
+trull
+truls
+trumaine
+truman
+trumann
+trumble
+trung
+trungy
+trunley
+truong
+truran
+trussler
+trutsche
+truus
+tryfon
+trying
+tsai
+tsai-hun
+tsaihung
+tsakalis
+tsalikis
+tsang
+tsao
+tsay
+tschaja
+tschann
+tse
+tse-lian
+tseliang
+tseng
+tsenter
+tsern
+tsiakas
+tsing
+tsitsior
+tsitsons
+tso
+tsolas
+tsong-li
+tsonglia
+tsonos
+tsortos
+tsoucas
+tsugio
+tsui
+tsuji
+tsuk
+tsun-kuo
+tsun-yuk
+tsuneo
+tsung
+tsunkuo
+tsunoda
+tsunyuk
+tsuyoshi
+ttisuppo
+tu
+tuan
+tubb
+tuck
+tucker
+tuckie
+tucky
+tudo
+tudor
+tue
+tuen
+tuesday
+tuffo
+tufford
+tuhina
+tuhr
+tulga
+tulio
+tulip
+tulk
+tull
+tulley
+tullius
+tullo
+tully
+tun-lin
+tuna
+tunali
+tung
+tung-min
+tunghsin
+tungming
+tunon
+tuoi
+tuok
+tuong
+tupas
+tupling
+turbes
+turbyfil
+turchan
+turcot
+turcotte
+turgay
+turing
+turkeer
+turkey
+turki
+turkki
+turkovic
+turnbull
+turner
+turney
+turpin
+turrubia
+turunen
+turus
+tushar
+tussey
+tusting
+tutt
+tuttle
+tuxford
+tuyen
+tuyetphu
+twa
+twana
+twarog
+tweddle
+tweetie
+twidale
+twiggy
+twila
+twiss
+twitty
+twolan
+twx
+twyla
+twyman
+twynham
+twyver
+txp
+ty
+tyack
+tybalt
+tybi
+tybie
+tyda
+tye
+tyke
+tyler
+tymchuk
+tymon
+tymothy
+tynan
+tyndall
+tyne
+tyner
+typer
+tyra
+tyrance
+tyroler
+tyron
+tyronda
+tyrone
+tyrrell
+tyrus
+tyson
+tzanetea
+tzeng
+tzong-sh
+tzong-ya
+tzongshi
+tzongyan
+tzou
+tzuang
+tzung
+uae
+uathavik
+uberig
+uchida
+uchiyama
+udale
+udall
+uday
+udaya
+udayasek
+ude
+udell
+uecker
+ueda
+uehara
+ueyama
+uffner
+ufomadu
+ugo
+uguccion
+ugwa
+uhl
+uhley
+uhlhorn
+uhlig
+ukena
+ula
+ulberto
+ulf
+ulgen
+uli
+ulick
+ulises
+ulla
+ully
+ulric
+ulrica
+ulrich
+ulrick
+ulrika
+ulrikaum
+ulrike
+ultrason
+uludamar
+ulysses
+umakanta
+umakanth
+umberto
+umeeda
+umeh
+umeko
+umesh
+umetsu
+umphres
+una
+una-mae
+unabr.di
+underwoo
+unger
+unitt
+unix
+unixsupp
+unkefer
+unkles
+unreg
+unsoy
+unxlb
+upchurch
+updt
+upen
+uppal
+upshaw
+upton
+urata
+urbain
+urban
+urbanic
+urbano
+urbanowi
+urbanus
+urbashi
+urbick
+urbielew
+urbshas
+uresh
+uri
+uriah
+uriel
+urnes
+urow
+urquhart
+urs
+ursa
+ursala
+ursola
+urson
+ursula
+ursulina
+ursuline
+urwin
+us
+usa
+useng
+user
+usman
+usrouter
+uswrsd
+usyk
+uszynski
+uta
+utah
+utas
+utilla
+utpal
+utpala
+utsumi
+uunko
+uvieghar
+uyar
+vachel
+vacher
+vachiran
+vachon
+vaclav
+vaculik
+vadala
+vadali
+vadi
+vadim
+vafaie
+vaglio-l
+vahary
+vahdat
+vahe
+vahedi
+vahid
+vaid
+vail
+vaillanc
+vaillant
+vairavan
+vajentic
+vajih
+vakhshoo
+vakili
+val
+valaree
+valaria
+valcourt
+valda
+valdemar
+valdez
+vale
+valeda
+valencia
+valene
+valenka
+valenta
+valente
+valentia
+valentij
+valentik
+valentin
+valenzia
+valera
+valeria
+valerie
+valerien
+valerio
+valerius
+valery
+valerye
+valia
+valida
+valin
+valina
+valinda
+valiquet
+valiveti
+valko
+valkyrie
+valla
+vallath
+valle
+vallee
+vallejos
+vallenty
+vallet
+valli
+valliani
+vallie
+vallier
+valliere
+vallipur
+vallozzi
+vally
+valma
+valois
+valorie
+valry
+valvasor
+van
+van alph
+van alst
+van atta
+van bake
+van bent
+van coon
+van den
+van der
+van dyke
+van es
+van eyk
+van flee
+van gaal
+van hast
+van hols
+van hoy
+van huls
+van kast
+van kess
+van klin
+van late
+van leeu
+van loon
+van mans
+van mete
+van nest
+van oors
+van orde
+van phil
+van rijn
+van rijs
+van scho
+van schy
+van sick
+van terr
+van veen
+van vrou
+van weri
+van-king
+vanaman
+vanasse
+vance
+vanda
+vandagri
+vandenbe
+vandenbo
+vandenhe
+vandenki
+vanderbi
+vanderbo
+vanderbu
+vanderge
+vanderhe
+vanderho
+vanderpo
+vanderve
+vanderwe
+vandeval
+vandevan
+vandeven
+vandewat
+vandewou
+vandomme
+vandoorn
+vandusen
+vanessa
+vangaste
+vania
+vanity
+vankoote
+vanlaar
+vanliew
+vann
+vanna
+vanni
+vannie
+vanny
+vanpatte
+vanstaal
+vanstory
+vanta
+vanter
+vanwormh
+vanwyche
+vanya
+vanzella
+varady
+varaiya
+varano
+varda
+vardy
+varennes
+vargas
+vargo
+varia
+varkel
+varkey
+varley
+varmazis
+varsava
+vartanes
+varughes
+varujan
+vasan
+vasantha
+vasarhel
+vaserfir
+vasil
+vasile
+vasili
+vasiliad
+vasiliki
+vasilis
+vasilopo
+vasily
+vason
+vasoufz
+vassili
+vassilik
+vassilis
+vassily
+vassos
+vastine
+vasu
+vasudeva
+vaswani
+vaterlau
+vaters
+vaughan
+vaughn
+vavarout
+vavroch
+vawter
+vax
+vazirani
+vea
+veale
+veals
+veciana
+veck
+ved
+veda
+vedant
+veedell
+veen
+veena
+vega
+vehling
+veillett
+veilleux
+veit
+vejar
+veklerov
+veksler
+vela
+velasque
+vele
+veleta
+velez
+veljko
+vella
+velline
+vellino
+velma
+veloria
+veloz
+velsher
+velvet
+vempati
+ven
+venbakm
+vendette
+veneice
+veness
+veng
+venger
+venguswa
+venier
+venita
+venjohn
+venkat
+venkata
+venkatak
+venkatar
+venkates
+venkatra
+venne
+venner
+venning
+vennos
+ventrone
+ventura
+venturin
+venus
+vera
+veradis
+verardi
+verch
+verde
+verdi
+verdonse
+vere
+verena
+verene
+verge
+verghese
+vergil
+verheyde
+verhoeve
+verhotz
+veriee
+verifica
+verile
+verina
+verinder
+verine
+verkroos
+verla
+verlyn
+verma
+vermeesc
+vermette
+vern
+verna
+verne
+vernen
+verney
+vernice
+verniece
+vernita
+vernon
+vernor
+verona
+veronica
+veronika
+veronike
+veroniqu
+verreau
+verrenne
+verrilli
+versace
+versteeg
+vertolli
+verville
+veryl
+verzilli
+veselko
+vesna
+vespa
+vester
+vesterda
+vetil
+vetrano
+vetrie
+vetter
+vettese
+vevay
+vexler
+vey
+veyrat
+vezeau
+vezina
+vi
+viano
+viau
+viavant
+vibeke
+vic
+vice
+vicente
+vicheara
+vick
+vickers
+vicki
+vickie
+vicky
+victoir
+victor
+victoria
+vicuong
+vida
+vidaurri
+videa
+vidhyana
+vidmer
+vidovic
+vidovik
+viduya
+vidya
+viegas
+vieger
+viehweg
+vieillar
+vieira
+vieiro
+viens
+viera
+vieregge
+vigeant
+viitanie
+vijai
+vijay
+vijaya
+vijayala
+vijya
+vik
+vikas
+viki
+vikki
+vikky
+vikram
+vikrant
+viktor
+viktoria
+vilas
+vilayil
+vilhan
+vilhelm
+vilhelmi
+vilis
+villanue
+villarea
+villella
+villeneu
+vilma
+vilmanse
+vilok
+vilozny
+vimal
+vimi
+vin
+vina
+vinas
+vinay
+vince
+vincent
+vincente
+vincents
+vincenty
+vincenz
+vincenzo
+vineet
+vinet
+viney
+vinh
+vinita
+vinnell
+vinni
+vinnie
+vinny
+vino
+vinod
+vinson
+viola
+violante
+viole
+violet
+violeta
+violetta
+violette
+vipi
+vipul
+viqar
+virani
+virant
+virchick
+virge
+virgie
+virgil
+virgilio
+virgina
+virginia
+virginie
+virgoe
+viriato
+viriya
+virk
+virko
+visentin
+vish
+vishal
+vishwa
+visiting
+viskanta
+visockis
+vispi
+vispy
+visser
+vistlik
+visvanat
+viswa
+viswamit
+vita
+vitacco
+vitaglia
+vital
+vite
+vithit
+vitia
+vito
+vitoria
+vittoria
+vittorio
+viv
+viva
+viveca
+vivek
+vivi
+vivia
+vivian
+viviana
+viviane
+vivianna
+vivianne
+vivie
+vivien
+viviene
+vivienne
+vivier
+viviyan
+vivyan
+vivyanne
+vlad
+vladamir
+vladdy
+vladica
+vladimir
+vladisla
+vlado
+vlahos
+vlanin
+vm
+vmbackup
+vmchange
+vmcord
+vmsuppor
+vmxa
+vo
+voadmin
+vodicka
+voduc
+voelcker
+vogel
+vogt
+voight
+voitel
+volchegu
+volfe
+volk
+volker
+volkmann
+volkmer
+vollmer
+volz
+von
+von ende
+von semm
+von zube
+voncanno
+vonck
+vonderha
+vondersc
+vonderwe
+vonlehmd
+vonni
+vonnie
+vonny
+vonreich
+vony
+vonzant
+voort
+vopalens
+vopni
+voros
+vosberg
+vosburg
+voss
+vosu
+vosup
+voula
+vowels
+vrabel
+vradmin
+vrbetic
+vreugden
+vries
+vrinda
+vrouwerf
+vu
+vucinich
+vuhoan
+vuignier
+vuncanno
+vuong
+vuquoc
+vyachesl
+vyaragav
+vyas
+vyjayant
+vyky
+vyza
+wa
+waals
+wacheski
+wachtste
+wacker
+wada
+wadasing
+waddell
+wadden
+waddick
+waddingt
+wade
+wadkins
+wadswort
+waespe
+waeyen
+wagage
+wager
+wagers
+waggoner
+waghorne
+waghray
+wagle
+wagner
+wagoner
+wahab
+wahbe
+wahju
+wai
+wai-bun
+wai-chau
+wai-chin
+wai-fah
+wai-hung
+wai-leun
+wai-man
+waichi
+waid
+waidler
+waifah
+waigh
+waihung
+wain
+waines
+wainwrig
+waissman
+wait
+waite
+waiter
+waitman
+waja
+wakabaya
+wakako
+wake
+wakefiel
+wakeham
+wakim
+walas
+walbridg
+walburga
+walchli
+wald
+waldemar
+walden
+waldick
+waldie
+waldo
+waldon
+waldron
+wales
+waletzky
+walford
+walia
+walid
+walker
+walkins
+walkley
+walkowia
+wallace
+wallache
+wallaert
+wallas
+wallbank
+waller
+walles
+walley
+wallgren
+wallie
+wallis
+walliw
+walls
+wally
+waloff
+walpole
+walrand
+walrond
+walser
+walsh
+walston
+walt
+walta
+waltdisn
+walter
+walters
+walther
+walton
+waltraud
+waly
+walz
+wambsgan
+wamozart
+wan
+wanda
+wandel
+wandie
+wandis
+wandojo
+wandsche
+waneta
+wang
+wanids
+wannell
+wanner
+wans
+wanzeck
+war
+warburg
+warburto
+ward
+warde
+warden
+wardle
+wardrop
+ware
+wares
+warfel
+wargnier
+warin
+waring
+wark
+warkenti
+warner
+warnock
+warnow
+warrello
+warren
+warriner
+warshaws
+wartman
+warun
+warwick
+waschuk
+waserman
+wash
+washburn
+washingt
+wasim
+wasitova
+wasley
+wasmeier
+wassel
+wasserma
+wassim
+wasson
+wasylenk
+wasylyk
+wat
+watanabe
+watchmak
+watchorn
+waterhou
+waterman
+waters
+watford
+watkins
+watkinso
+watmore
+watson
+watters
+wattier
+watts
+watznaue
+waucheul
+waugh
+waverley
+waverly
+way
+waybrigh
+wayez
+waylan
+wayland
+waylen
+wayler
+waylin
+wayling
+waylon
+wayman
+waymon
+wayne
+waytowic
+weagle
+weakley
+wealch
+weare
+wease
+weatherl
+weathers
+weaver
+web
+webb
+webber
+weber
+webster
+weckwert
+weddell
+wee-lin
+wee-seng
+wee-thon
+weedmark
+weeks
+wefald
+wefers
+wegener
+weger
+wegner
+wegrowic
+wehara
+wei
+wei-i
+wei-kun
+wei-tsig
+wei-yih
+weibust
+weicheng
+weichung
+weidar
+weidenbo
+weidenfe
+weider
+weidinge
+weidner
+weiguang
+weiheng
+weihs
+weihsing
+weii
+weijia
+weijie
+weikang
+weikuang
+weikun
+weil
+weilin
+weimin
+weimong
+weinbend
+weinberg
+weiner
+weingart
+weinkauf
+weiping
+weirich
+weisenbe
+weiser
+weiss
+weist
+weitsig
+weitz
+weitzel
+weiyih
+welbie
+welby
+welch
+weldon
+welham
+welker
+wellard
+welling
+wells
+wellstoo
+welsch
+welsford
+welsh
+welten
+wemple
+wen
+wen-chie
+wen-hann
+wen-juin
+wen-kai
+wen-lian
+wen-miin
+wen-shan
+wenbin
+wenchien
+wenchih
+wenda
+wendall
+wendel
+wendelin
+wendell
+wendi
+wendi-st
+wendie
+wendista
+wendling
+wendong
+wendt
+wendy
+wendye
+weng
+wenham
+wenhann
+wenjuin
+wenliang
+wenmiin
+wennan
+wennerst
+wenona
+wenonah
+wensel
+wenshan
+wensley
+wentwort
+wentzcov
+wenxi
+wenyon
+wenzel
+wepf
+weppler
+werewolf
+werick
+weringh
+werling
+werner
+wernher
+wernik
+werth
+wertz
+wery
+wes
+wesenber
+wesley
+wesolosk
+wesolows
+wessel
+wessell
+wesselma
+wesselow
+wessels
+wessenbe
+west
+westbroo
+westcott
+wester
+westfall
+westgart
+westlake
+westleig
+westley
+westmore
+weston
+weston-d
+westphal
+westwood
+wetherbe
+wettelan
+wetzel
+wever
+weyand
+weylin
+wga
+whalen
+whaley
+whang
+whatley
+wheatley
+wheaton
+wheeler
+wheelock
+whei-may
+wheimay
+whelan
+whelpdal
+whetston
+whetzel
+whey
+whey-min
+wheyming
+whidden
+whinnery
+whipple
+whipps
+whirpool
+whirter
+whisenhu
+whiskin
+whisler
+whit
+whitaker
+whitby
+whitcomb
+whited
+whitefor
+whitehur
+whiteman
+whitesid
+whitfiel
+whitfill
+whitford
+whiting
+whitlock
+whitman
+whitmore
+whitney
+whitsell
+whitt
+whittake
+whittam
+whitten
+whittier
+whitting
+whitton
+whitty
+whitwam
+whitwell
+whitwort
+whoi
+whyte
+wiatt
+wichers
+wichman
+wicht
+wichterl
+wickes
+wickham
+wickie
+widdicom
+widdis
+widdowso
+widener
+widianto
+widows
+widrig
+widuch
+wiebe
+wiebren
+wiederho
+wiedman
+wiedmann
+wiegand
+wieland
+wiele
+wienert
+wiens
+wiercioc
+wierzba
+wieser
+wiesje
+wieslaw
+wieslawa
+wiest
+wigderso
+wiggin
+wiggins
+wiggs
+wight
+wigle
+wignall
+wikkerin
+wiklund
+wil
+wilbert
+wilbur
+wilburt
+wilby
+wilcox
+wilczews
+wilde
+wildeman
+wilden
+wilder
+wilderma
+wildgen
+wildman
+wildon
+wileen
+wilek
+wilemon
+wilen
+wilenius
+wilensky
+wiley
+wilf
+wilford
+wilfred
+wilfrid
+wilgosh
+wilhelm
+wilhelmi
+wilhelms
+wilhelmu
+wilhoit
+wilie
+wilke
+wilken
+wilkerso
+wilkes
+wilkie
+wilkin
+wilkins
+wilkinso
+wilko
+wilks
+will
+willa
+willabel
+willamin
+willard
+willcock
+willcox
+willdon
+willeke
+willekes
+willem
+willemij
+willemse
+willenbr
+willets
+willett
+willetta
+willette
+willey
+willhoff
+willi
+william
+williams
+willie
+willifor
+willis
+willison
+willmore
+willmott
+willough
+willow
+willson
+willy
+willyt
+wilma
+wilmar
+wilmer
+wilmette
+wilmont
+wilmore
+wilnai
+wilona
+wilone
+wilow
+wilsey
+wilson
+wilt
+wilton
+wiltz
+wimberle
+wimbush
+wimmer
+win
+win-chyi
+wina
+winchest
+winchyi
+winde
+windham
+windom
+windowin
+windsor
+windy
+winerman
+winfield
+winfred
+wing
+wing-ki
+wing-man
+wing-tai
+wingar
+wingard
+wingate
+wingfiel
+wingo
+wingrove
+wingtai
+wini
+winicki
+winifiel
+winifred
+winje
+winklema
+winkler
+winlow
+winn
+winna
+winnah
+winne
+winni
+winnie
+winnifre
+winningh
+winningt
+winnipeg
+winny
+winona
+winonah
+winsberg
+winsborr
+winsky
+winslow
+winstead
+winston
+winterbe
+winters
+winthrop
+wintour
+wippel
+wiring
+wirth
+wiseman
+wishewan
+wisniews
+wissinge
+wissler
+wit
+witchlow
+witham
+withrow
+witkowsk
+witney
+witold
+witort
+wits
+witt
+witte
+wittich
+wittie
+wittik
+wittman
+witty
+witzel
+witzman
+witzmann
+wladysla
+woan
+wobbrock
+woei-pen
+woelffel
+woessner
+woinsky
+wojciech
+wojcik
+wojdylo
+wojnar
+wojtecki
+wokoma
+wolczans
+wolf
+wolfe
+wolfenba
+wolff
+wolfgang
+wolfie
+wolfman
+wolford
+wolfs
+wolfson
+wolfy
+wolk
+woll
+woloshko
+wolowidn
+wolska
+wolski
+wolter
+womack
+womble
+won
+won-uk
+wonda
+wong
+wonuk
+wood
+woodall
+woodford
+woodhall
+woodie
+woodley
+woodlief
+woodline
+woodman
+woodrow
+woods
+woodson
+woodward
+woody
+woodyer
+wooff
+woojin
+wook
+wookie
+woolery
+wooley
+woollam
+woolley
+woolwine
+woon
+wooster
+wooten
+wooters
+wootton
+worden
+words fr
+words in
+working
+world.fa
+wormald
+worms
+worobey
+woroszcz
+worpell
+worrall
+worsley
+worth
+worthing
+worthy
+wortman
+wozniak
+wpms
+wracher
+wragg
+wray
+wren
+wrennie
+wriggles
+wright
+wrigley
+writing
+wrobel
+wroblews
+wruck
+wsadmin
+wsbackup
+wu
+wuan
+wueppelm
+wuertele
+wun
+wunderli
+wurtz
+wyant
+wyatan
+wyatt
+wyble
+wycoff
+wydra
+wye
+wykoff
+wylie
+wyllie
+wylma
+wylo
+wyman
+wymard
+wyn
+wyndham
+wynes
+wynn
+wynne
+wynnie
+wynny
+wyrstiuk
+wyss
+wytenbur
+wyzga-ta
+xantippe
+xavier
+xaviera
+xayaraj
+xena
+xenia
+xenophon
+xenos
+xerxes
+xever
+xi-nam
+xi-xian
+xian
+xiang-se
+xiangsen
+xianjie
+xiao
+xiao-min
+xiaobing
+xiaofei
+xiaofeng
+xiaoguan
+xiaohui
+xiaojing
+xiaolei
+xiaolin
+xiaolong
+xiaomei
+xiaoping
+xiaowen
+xiaoxia
+xie
+xila
+ximenes
+ximenez
+xin
+xingchao
+xingdong
+xinlin
+xinyi
+xiong
+xiqing
+xixian
+xmssuppo
+xnew
+xongxong
+xpm
+xpmbld
+xpmbuild
+xu
+xuan
+xuan-lie
+xuefeng
+xueling
+xumin
+xuong
+xylia
+xylina
+xymenes
+ya-shu
+yabe
+yach
+yadollah
+yaeger
+yael
+yafa
+yaghutie
+yahia
+yahyapou
+yakibchu
+yakimovi
+yakir
+yalcin
+yale
+yali
+yalonda
+yamada
+yamamoto
+yamaoka
+yamashit
+yamato
+yamaura
+yamin
+yan
+yan-shek
+yan-zhen
+yanagida
+yanan
+yanaton
+yance
+yancey
+yancy
+yandell
+yanjun
+yank
+yankee
+yann
+yanna
+yannick
+yannis
+yano
+yanosik
+yanshek
+yansun
+yao
+yao-nan
+yaonan
+yaphet
+yaping
+yarber
+yarbroug
+yard
+yardley
+yardy
+yarlanda
+yarnell
+yaron
+yarosh
+yaroslav
+yasar
+yaser
+yashu
+yasmeen
+yasmin
+yassa
+yassar
+yassin
+yasuaki
+yasuhiro
+yasuko
+yasumasa
+yasuo
+yasushi
+yasuura
+yate
+yates
+yatin
+yatish
+yau
+yau-fun
+yau-mun
+yau-wu
+yaumun
+yaung
+yauwu
+yavar
+yavuz
+yawar
+yazdani
+yazdi
+yc
+ye-sho
+yea-ping
+yeager
+yeal
+yeaping
+yearwood
+yeaton
+yechezke
+yeck
+yedema
+yee
+yee-ning
+yeh
+yehuda
+yehudi
+yehudit
+yeirnie
+yelena
+yelvingt
+yemuna
+yen
+yen-heng
+yen-jhy
+yen-meng
+yendall
+yeng
+yenheng
+yenilmez
+yenjhy
+yenmeng
+yenor
+yeo
+yeo-hoon
+yeocheol
+yeohoon
+yeong-ch
+yeong-eo
+yeongchy
+yeongeon
+yerga
+yerigan
+yerneni
+yesho
+yetta
+yettie
+yetty
+yetung
+yeun
+yeun-jyr
+yeung
+yeunjyr
+yevette
+yew-shin
+yewshing
+yezheng
+yezi
+yhu-tin
+yhutin
+yi
+yi-min
+yiannis
+yie-tarn
+yietarng
+yifei
+yigal
+yih
+yihban
+yihchih
+yii-mei
+yiimei
+yijean
+yikhon
+yiliang
+yim
+yimin
+ying
+ying-cdi
+yingcdi
+yishun
+yitan
+yiu-kong
+yiukong
+yixia
+yixin
+ylaine
+yll-chen
+yllcheng
+ynes
+ynez
+yngvar
+yoakum
+yock
+yoda
+yodha
+yoe
+yogesh
+yogeswar
+yogi
+yohe
+yokan
+yoke
+yoke-kee
+yokeley
+yoko
+yokono
+yokoono
+yolanda
+yolande
+yolane
+yolanthe
+yon-chun
+yonchun
+yong
+yong-hyu
+yongdong
+yonghyun
+yongil
+yongli
+yongxin
+yonhong
+yonik
+yonk
+yoo
+yoon
+yoon-mo
+yoonjung
+yoonmo
+yoonsik
+yoram
+yorgo
+yorgos
+york
+yorke
+yorker
+yoshi
+yoshiaki
+yoshihit
+yoshikaw
+yoshiko
+yoshimi
+yoshimit
+yoshinob
+yoshio
+yoshioka
+yoshiyam
+yosi
+yossaria
+yost
+yosuf
+you-lian
+youel
+youji
+youliang
+youlin
+youn
+youn-jun
+younan
+younes
+young
+young-ba
+young-il
+young-ju
+youngbai
+youngblo
+younger
+youngill
+younglov
+youngman
+youngqui
+youngs
+younjung
+younkin
+yount
+youping
+yousef
+yousefpo
+youssef
+yousuf
+youwen
+yovonnda
+yowell
+ysabel
+ytshak
+yu
+yu-chen
+yu-chian
+yu-chung
+yu-hung
+yu-kai
+yu-pei
+yu-wei
+yuan
+yuan-cha
+yuan-shi
+yuanchao
+yuanjian
+yuanshin
+yuchen
+yuchiang
+yuchong
+yudin
+yudy
+yue
+yue-min
+yue-shun
+yuechu
+yueh
+yueh-min
+yueh-shi
+yuehming
+yuehshio
+yuehwern
+yueli
+yuen
+yuen-pui
+yuenglin
+yueping
+yueshun
+yugang
+yuh-dauh
+yuh-jiun
+yuh-tai
+yuhanna
+yuhdauh
+yuhjiun
+yuhn
+yuhtai
+yuill
+yuji
+yujie
+yuk-wha
+yuke
+yukihiko
+yukiko
+yukinaga
+yukinobu
+yuklung
+yuko
+yuksel
+yukuo
+yul
+yule
+yulia
+yulma
+yum
+yuma
+yumi
+yumurtac
+yun
+yun-sun
+yundt
+yung
+yung-chi
+yung-chu
+yung-fu
+yung-pin
+yung-yu
+yungchia
+yungchun
+yungfu
+yunghuoy
+yungmuh
+yungping
+yungyu
+yunn-tzu
+yunntzu
+yunsun
+yuon-kua
+yuonkuan
+yupei
+yupin
+yurach
+yurchuk
+yuri
+yurik
+yussuf
+yuste
+yutaka
+yuting
+yuval
+yuwei
+yuyi
+yuyu
+yvan
+yves
+yvet
+yvette
+yvon
+yvonne
+yvor
+yzerman
+z-80
+z80
+zabek
+zabokrzy
+zabransk
+zabrina
+zaccari
+zaccaria
+zach
+zacharia
+zacharie
+zachary
+zacherie
+zachery
+zack
+zackaria
+zadeh
+zadorozn
+zadow
+zafar
+zafarano
+zafarull
+zafer
+zaga
+zagorsek
+zagorski
+zagrodne
+zahara
+zaharoff
+zaharych
+zahid
+zahir
+zahirul
+zahn
+zahnley
+zahra
+zaia
+zaid
+zaidi
+zaihua
+zainab
+zajac
+zak
+zaka
+zakai
+zakarow
+zaker
+zalameda
+zalcstei
+zalee
+zaleski
+zalite
+zaliznya
+zalman
+zalokar
+zaloker
+zalzale
+zaman
+zampino
+zan
+zanariah
+zander
+zandra
+zane
+zanet
+zaneta
+zanetti
+zanga
+zani
+zanni
+zantiris
+zapach
+zappe
+zara
+zaragoza
+zarah
+zarate
+zared
+zarella
+zaretsky
+zargham
+zaria
+zarkel
+zarla
+zarlenga
+zarrabia
+zarrin
+zatkovic
+zatti
+zattiero
+zatylny
+zauhar
+zauner
+zavadiuk
+zaven
+zawadka
+zaydan
+zazulak
+zbib
+zbignew
+zbigniew
+zbuda
+zdenek
+zdenka
+zdenko
+zea
+zeb
+zebadiah
+zebedee
+zebulen
+zebulon
+zecharia
+zed
+zedekiah
+zedrick
+zee
+zeggil
+zegray
+zehir-ch
+zehra
+zeidler
+zeiger
+zeigler
+zeilinge
+zeimet
+zein
+zeina
+zeisler
+zeitler
+zejing
+zeke
+zelda
+zelenka
+zelig
+zeljko
+zelko
+zeller
+zellers
+zelma
+zelsmann
+zelwer
+zemanek
+zen
+zena
+zenaida
+zenar
+zeng
+zenghong
+zenia
+zenisek
+zenkevic
+zenkner
+zenon
+zere
+zerk
+zero
+zerriffi
+zetterlu
+zetts
+zexiang
+zhang
+zhanna
+zhao
+zhaohong
+zhaoqi
+zhaoxu
+zhelka
+zhen
+zheng
+zhengyu
+zhilan
+zhishun
+zhiwei
+zhixin
+zhiyong
+zhong
+zhongde
+zhongfu
+zhongjin
+zhongqua
+zhongxia
+zhou
+zhuezhi
+zhuolin
+zi-ping
+zi-qiang
+zia
+ziad
+ziai
+zicheng
+ziebarth
+zieber
+ziegler
+ziehn
+zielinsk
+ziemba
+zigrand
+zilaie
+zilberst
+zilla
+zilvia
+zimmer
+zimmerer
+zimmerly
+zimmerma
+zina
+zinati
+zingale
+zingeler
+zinkie
+zinn
+zino
+ziomek
+zipcodes
+ziping
+zippora
+ziqiang
+zirko
+zissis
+zisu
+zita
+zitella
+zitko
+zito
+zitzmann
+ziva
+zivanovi
+zivilik
+zivkovic
+ziyi
+ziyou
+zlatin
+zlotnick
+znack
+zoe
+zoehner
+zoel
+zoellner
+zoenka
+zoerb
+zofia
+zohair
+zohar
+zohman
+zohreh
+zola
+zollie
+zollman
+zolly
+zolmer
+zoltan
+zonda
+zondra
+zone-chi
+zonechin
+zongyi
+zonker
+zonner
+zonnya
+zonoun
+zoppel
+zora
+zorah
+zoran
+zorana
+zoratti
+zorina
+zorine
+zork
+zorn
+zorony
+zorzi
+zottola
+zou
+zouheir
+zrobok
+zsa zsa
+zsazsa
+zubair
+zubans
+zuben
+zubricki
+zuccarel
+zuckerma
+zug
+zuhua
+zuk
+zukas
+zukosky
+zukovsky
+zulema
+zulfikar
+zumel
+zumhagen
+zumpf
+zunuzi
+zuranato
+zurawlev
+zureik
+zurl
+zuzana
+zvonar
+zwi
+zwick
+zwicker
+zwierzch
+zybala
+zyg
+zygmunt
+zylstra
zywiel
\ No newline at end of file
diff --git a/examples/basefilter/README.rst b/examples/base_filters/README.rst
similarity index 90%
rename from examples/basefilter/README.rst
rename to examples/base_filters/README.rst
index cdbe6b494a..7dd4cddfef 100644
--- a/examples/basefilter/README.rst
+++ b/examples/base_filters/README.rst
@@ -19,6 +19,5 @@ Their passwords are 'password'
Run it::
- $ export FLASK_APP=app/__init__.py
$ flask fab create-admin
$ flask run
diff --git a/examples/base_filters/app/__init__.py b/examples/base_filters/app/__init__.py
new file mode 100644
index 0000000000..e0f9e22f37
--- /dev/null
+++ b/examples/base_filters/app/__init__.py
@@ -0,0 +1,23 @@
+from flask import Flask
+
+from .views import ContactModelView, GroupModelView
+from .extensions import appbuilder
+
+
+def create_app() -> Flask:
+ app = Flask(__name__)
+ app.config.from_object("config")
+ with app.app_context():
+ appbuilder.init_app(app)
+ appbuilder.add_view(
+ GroupModelView,
+ "List Groups",
+ icon="fa-folder-open-o",
+ category="Contacts",
+ category_icon="fa-envelope",
+ )
+ appbuilder.add_separator("Contacts")
+ appbuilder.add_view(
+ ContactModelView, "List Contacts", icon="fa-envelope", category="Contacts"
+ )
+ return app
diff --git a/examples/base_filters/app/extensions.py b/examples/base_filters/app/extensions.py
new file mode 100644
index 0000000000..cda8f08716
--- /dev/null
+++ b/examples/base_filters/app/extensions.py
@@ -0,0 +1,4 @@
+from flask_appbuilder import AppBuilder
+
+
+appbuilder = AppBuilder()
diff --git a/examples/basefilter/app/models.py b/examples/base_filters/app/models.py
similarity index 100%
rename from examples/basefilter/app/models.py
rename to examples/base_filters/app/models.py
diff --git a/examples/basefilter/app/translations/pt/LC_MESSAGES/messages.mo b/examples/base_filters/app/translations/pt/LC_MESSAGES/messages.mo
similarity index 100%
rename from examples/basefilter/app/translations/pt/LC_MESSAGES/messages.mo
rename to examples/base_filters/app/translations/pt/LC_MESSAGES/messages.mo
diff --git a/examples/basefilter/app/translations/pt/LC_MESSAGES/messages.po b/examples/base_filters/app/translations/pt/LC_MESSAGES/messages.po
similarity index 100%
rename from examples/basefilter/app/translations/pt/LC_MESSAGES/messages.po
rename to examples/base_filters/app/translations/pt/LC_MESSAGES/messages.po
diff --git a/examples/basefilter/app/views.py b/examples/base_filters/app/views.py
similarity index 76%
rename from examples/basefilter/app/views.py
rename to examples/base_filters/app/views.py
index d29f36d535..e4af3ca7aa 100644
--- a/examples/basefilter/app/views.py
+++ b/examples/base_filters/app/views.py
@@ -3,7 +3,6 @@
from flask_appbuilder.models.sqla.filters import FilterEqualFunction
from flask_appbuilder.models.sqla.interface import SQLAInterface
-from . import appbuilder, db
from .models import Contact, ContactGroup
@@ -45,17 +44,3 @@ class ContactModelView(ModelView):
class GroupModelView(ModelView):
datamodel = SQLAInterface(ContactGroup)
related_views = [ContactModelView]
-
-
-db.create_all()
-appbuilder.add_view(
- GroupModelView,
- "List Groups",
- icon="fa-folder-open-o",
- category="Contacts",
- category_icon="fa-envelope",
-)
-appbuilder.add_separator("Contacts")
-appbuilder.add_view(
- ContactModelView, "List Contacts", icon="fa-envelope", category="Contacts"
-)
diff --git a/examples/basefilter/babel/babel.cfg b/examples/base_filters/babel/babel.cfg
similarity index 100%
rename from examples/basefilter/babel/babel.cfg
rename to examples/base_filters/babel/babel.cfg
diff --git a/examples/basefilter/babel/messages.pot b/examples/base_filters/babel/messages.pot
similarity index 100%
rename from examples/basefilter/babel/messages.pot
rename to examples/base_filters/babel/messages.pot
diff --git a/examples/basefilter/config.py b/examples/base_filters/config.py
similarity index 100%
rename from examples/basefilter/config.py
rename to examples/base_filters/config.py
diff --git a/examples/base_filters/testdata.py b/examples/base_filters/testdata.py
new file mode 100644
index 0000000000..fadd946d87
--- /dev/null
+++ b/examples/base_filters/testdata.py
@@ -0,0 +1,98 @@
+from datetime import datetime
+import logging
+import random
+
+from flask_appbuilder.extensions import db
+from app import appbuilder, create_app
+from app.models import Contact, ContactGroup, Gender
+
+log = logging.getLogger(__name__)
+
+
+app = create_app()
+
+
+def get_random_name(names_list, size=1):
+ name_lst = [
+ names_list[random.randrange(0, len(names_list))].decode("utf-8").capitalize()
+ for i in range(0, size)
+ ]
+ return " ".join(name_lst)
+
+
+def upsert_test_data():
+ role_admin = appbuilder.sm.find_role(appbuilder.sm.auth_role_admin)
+ user1 = appbuilder.sm.add_user(
+ "user1", "user1", "test", "user1@fab.org", role_admin, "password"
+ )
+ user2 = appbuilder.sm.add_user(
+ "user2", "user2", "test", "user2@fab.org", role_admin, "password"
+ )
+ user3 = appbuilder.sm.add_user(
+ "user3", "user3", "test", "user3@fab.org", role_admin, "password"
+ )
+
+ try:
+ db.session.add(ContactGroup(name="Friends"))
+ db.session.add(ContactGroup(name="Family"))
+ db.session.add(ContactGroup(name="Work"))
+ db.session.commit()
+ except Exception as e:
+ log.error("Group creation error: %s", e)
+ db.session.rollback()
+ exit(1)
+
+ try:
+ db.session.add(Gender(name="Male"))
+ db.session.add(Gender(name="Female"))
+ db.session.commit()
+ except Exception as e:
+ log.error("Gender creation error: %s", e)
+ db.session.rollback()
+ exit(1)
+
+ f = open("NAMES.DIC", "rb")
+ names_list = [x.strip() for x in f.readlines()]
+
+ f.close()
+
+ j = 1
+ for i in range(1, 100):
+ c = Contact()
+ c.name = get_random_name(names_list, random.randrange(2, 6))
+ c.address = "Street " + names_list[random.randrange(0, len(names_list))].decode(
+ "utf-8"
+ )
+ c.personal_phone = random.randrange(1111111, 9999999)
+ c.personal_celphone = random.randrange(1111111, 9999999)
+ c.contact_group_id = random.randrange(1, 4)
+ c.gender_id = random.randrange(1, 3)
+ year = random.choice(range(1900, 2012))
+ month = random.choice(range(1, 12))
+ day = random.choice(range(1, 28))
+ c.birthday = datetime(year, month, day)
+ c.changed_on = datetime.now()
+ c.created_on = datetime.now()
+ if j == 1:
+ j += 1
+ _user = user1
+ elif j == 2:
+ j += 1
+ _user = user2
+ else:
+ j = 1
+ _user = user3
+ c.created_by = _user
+ c.changed_by = _user
+
+ db.session.add(c)
+ try:
+ db.session.commit()
+ print("inserted", c)
+ except Exception as e:
+ log.error("Contact creation error: %s", e)
+ db.session.rollback()
+
+
+with app.app_context():
+ upsert_test_data()
diff --git a/examples/basefilter/app/__init__.py b/examples/basefilter/app/__init__.py
deleted file mode 100644
index 1a5aed6b8c..0000000000
--- a/examples/basefilter/app/__init__.py
+++ /dev/null
@@ -1,15 +0,0 @@
-import logging
-
-from flask import Flask
-from flask_appbuilder import AppBuilder, SQLA
-
-
-logging.basicConfig(format="%(asctime)s:%(levelname)s:%(name)s:%(message)s")
-logging.getLogger().setLevel(logging.DEBUG)
-
-app = Flask(__name__)
-app.config.from_object("config")
-db = SQLA(app)
-appbuilder = AppBuilder(app, db.session)
-
-from . import models, views # noqa
diff --git a/examples/basefilter/testdata.py b/examples/basefilter/testdata.py
deleted file mode 100644
index 08ee3798e8..0000000000
--- a/examples/basefilter/testdata.py
+++ /dev/null
@@ -1,89 +0,0 @@
-from datetime import datetime
-import logging
-import random
-
-from app import appbuilder, db
-from app.models import Contact, ContactGroup, Gender
-
-log = logging.getLogger(__name__)
-
-
-def get_random_name(names_list, size=1):
- name_lst = [
- names_list[random.randrange(0, len(names_list))].decode("utf-8").capitalize()
- for i in range(0, size)
- ]
- return " ".join(name_lst)
-
-
-role_admin = appbuilder.sm.find_role(appbuilder.sm.auth_role_admin)
-user1 = appbuilder.sm.add_user(
- "user1", "user1", "test", "user1@fab.org", role_admin, "password"
-)
-user2 = appbuilder.sm.add_user(
- "user2", "user2", "test", "user2@fab.org", role_admin, "password"
-)
-user3 = appbuilder.sm.add_user(
- "user3", "user3", "test", "user3@fab.org", role_admin, "password"
-)
-
-try:
- db.session.add(ContactGroup(name="Friends"))
- db.session.add(ContactGroup(name="Family"))
- db.session.add(ContactGroup(name="Work"))
- db.session.commit()
-except Exception as e:
- log.error("Group creation error: %s", e)
- db.session.rollback()
- exit(1)
-
-try:
- db.session.add(Gender(name="Male"))
- db.session.add(Gender(name="Female"))
- db.session.commit()
-except Exception as e:
- log.error("Gender creation error: %s", e)
- db.session.rollback()
- exit(1)
-
-f = open("NAMES.DIC", "rb")
-names_list = [x.strip() for x in f.readlines()]
-
-f.close()
-
-j = 1
-for i in range(1, 100):
- c = Contact()
- c.name = get_random_name(names_list, random.randrange(2, 6))
- c.address = "Street " + names_list[random.randrange(0, len(names_list))].decode(
- "utf-8"
- )
- c.personal_phone = random.randrange(1111111, 9999999)
- c.personal_celphone = random.randrange(1111111, 9999999)
- c.contact_group_id = random.randrange(1, 4)
- c.gender_id = random.randrange(1, 3)
- year = random.choice(range(1900, 2012))
- month = random.choice(range(1, 12))
- day = random.choice(range(1, 28))
- c.birthday = datetime(year, month, day)
- c.changed_on = datetime.now()
- c.created_on = datetime.now()
- if j == 1:
- j += 1
- _user = user1
- elif j == 2:
- j += 1
- _user = user2
- else:
- j = 1
- _user = user3
- c.created_by = _user
- c.changed_by = _user
-
- db.session.add(c)
- try:
- db.session.commit()
- print("inserted", c)
- except Exception as e:
- log.error("Contact creation error: %s", e)
- db.session.rollback()
diff --git a/examples/composite_keys/README.rst b/examples/composite_keys/README.rst
index 961625afae..f0de512026 100644
--- a/examples/composite_keys/README.rst
+++ b/examples/composite_keys/README.rst
@@ -9,7 +9,6 @@ Insert test data::
Run it::
- $ export FLASK_APP=app/__init__.py
$ flask fab create-admin
$ flask run
diff --git a/examples/composite_keys/app/__init__.py b/examples/composite_keys/app/__init__.py
index 1a5aed6b8c..d1426188e1 100644
--- a/examples/composite_keys/app/__init__.py
+++ b/examples/composite_keys/app/__init__.py
@@ -1,15 +1,36 @@
-import logging
-
from flask import Flask
-from flask_appbuilder import AppBuilder, SQLA
+from .views import ItemModelView, RackModelView, InventoryModelView, DatacenterModelView
+from .extensions import appbuilder
-logging.basicConfig(format="%(asctime)s:%(levelname)s:%(name)s:%(message)s")
-logging.getLogger().setLevel(logging.DEBUG)
-app = Flask(__name__)
-app.config.from_object("config")
-db = SQLA(app)
-appbuilder = AppBuilder(app, db.session)
+def create_app() -> Flask:
+ app = Flask(__name__)
+ app.config.from_object("config")
+ with app.app_context():
+ appbuilder.init_app(app)
+ appbuilder.add_view(
+ DatacenterModelView,
+ "List Datacenters",
+ icon="fa-folder-open-o",
+ category="Datacenters",
+ category_icon="fa-envelope",
+ )
+ appbuilder.add_view(
+ RackModelView, "List Racks", icon="fa-envelope", category="Datacenters"
+ )
+ appbuilder.add_view(
+ ItemModelView,
+ "List Items",
+ icon="fa-folder-open-o",
+ category="Datacenters",
+ category_icon="fa-envelope",
+ )
+ appbuilder.add_view(
+ InventoryModelView,
+ "List Inventory",
+ icon="fa-envelope",
+ category="Datacenters",
+ )
-from . import models, views # noqa
+ return app
diff --git a/examples/composite_keys/app/extensions.py b/examples/composite_keys/app/extensions.py
new file mode 100644
index 0000000000..cda8f08716
--- /dev/null
+++ b/examples/composite_keys/app/extensions.py
@@ -0,0 +1,4 @@
+from flask_appbuilder import AppBuilder
+
+
+appbuilder = AppBuilder()
diff --git a/examples/composite_keys/app/models.py b/examples/composite_keys/app/models.py
index cb28f1677a..9a5585112d 100644
--- a/examples/composite_keys/app/models.py
+++ b/examples/composite_keys/app/models.py
@@ -1,5 +1,6 @@
import datetime
+from flask_sqlalchemy.model import NameMixin
from flask_appbuilder import Model
from sqlalchemy import Column, ForeignKey, Integer, String
from sqlalchemy.orm import relationship
@@ -7,7 +8,7 @@
mindate = datetime.date(datetime.MINYEAR, 1, 1)
-class Item(Model):
+class Item(NameMixin, Model):
id = Column(Integer, primary_key=True)
serial_number = Column(String, unique=True)
model = Column(String(150), nullable=False)
@@ -16,7 +17,7 @@ def __repr__(self):
return "%s (%s)" % (self.model, self.serial_number)
-class Datacenter(Model):
+class Datacenter(NameMixin, Model):
id = Column(Integer, primary_key=True)
name = Column(String(150), unique=True, nullable=False)
address = Column(String(564))
@@ -25,7 +26,7 @@ def __repr__(self):
return self.name
-class Rack(Model):
+class Rack(NameMixin, Model):
num = Column(Integer, primary_key=True)
datacenter_id = Column(
Integer, ForeignKey("datacenter.id"), primary_key=True, nullable=False
@@ -36,7 +37,7 @@ def __repr__(self):
return "%d-%s" % (self.num, self.datacenter)
-class Inventory(Model):
+class Inventory(NameMixin, Model):
item_id = Column(Integer, ForeignKey("item.id"), primary_key=True, nullable=False)
item = relationship("Item")
rack_num = Column(Integer, ForeignKey("rack.num"), primary_key=True, nullable=False)
diff --git a/examples/composite_keys/app/views.py b/examples/composite_keys/app/views.py
index 1bb762dd81..2c16c4546a 100644
--- a/examples/composite_keys/app/views.py
+++ b/examples/composite_keys/app/views.py
@@ -1,7 +1,5 @@
from flask_appbuilder import ModelView
from flask_appbuilder.models.sqla.interface import SQLAInterface
-
-from . import appbuilder, db
from .models import Datacenter, Inventory, Item, Rack
@@ -38,26 +36,3 @@ class DatacenterModelView(ModelView):
related_views = [RackModelView]
show_template = "appbuilder/general/model/show_cascade.html"
edit_template = "appbuilder/general/model/edit_cascade.html"
-
-
-db.create_all()
-appbuilder.add_view(
- DatacenterModelView,
- "List Datacenters",
- icon="fa-folder-open-o",
- category="Datacenters",
- category_icon="fa-envelope",
-)
-appbuilder.add_view(
- RackModelView, "List Racks", icon="fa-envelope", category="Datacenters"
-)
-appbuilder.add_view(
- ItemModelView,
- "List Items",
- icon="fa-folder-open-o",
- category="Datacenters",
- category_icon="fa-envelope",
-)
-appbuilder.add_view(
- InventoryModelView, "List Inventory", icon="fa-envelope", category="Datacenters"
-)
diff --git a/examples/composite_keys/testdata.py b/examples/composite_keys/testdata.py
index 853e48d885..b828782de9 100644
--- a/examples/composite_keys/testdata.py
+++ b/examples/composite_keys/testdata.py
@@ -1,9 +1,9 @@
import logging
-from app import db
-from app.models import Inventory, Datacenter, Rack, Item
+from app import create_app
+from app.models import Datacenter, Rack, Item
+from flask_appbuilder.extensions import db
import random
import string
-from datetime import datetime
log = logging.getLogger(__name__)
@@ -16,6 +16,8 @@
datacenters = list()
+app = create_app()
+
def get_random_name(names_list, size=1):
return names_list[random.randrange(0, len(names_list))]
@@ -25,33 +27,38 @@ def serial_generator(size=6, chars=string.ascii_uppercase + string.digits):
return "".join(random.choice(chars) for _ in range(size))
-for city in cities:
- datacenter = Datacenter()
- datacenter.name = "DC %s" % city
- datacenter.address = city
- datacenters.append(datacenter)
- db.session.add(datacenter)
- log.info(datacenter)
- try:
- db.session.commit()
- for num in range(1, DC_RACK_MAX):
- rack = Rack()
- rack.num = num
- rack.datacenter = datacenter
- db.session.add(rack)
-
- except Exception as e:
- log.error("Creating Datacenter: %s", e)
- db.session.rollback()
-
-for i in range(1, ITEM_MAX):
- item = Item()
- item.serial_number = serial_generator()
- item.model = get_random_name(models)
- db.session.add(item)
- log.info(item)
- try:
- db.session.commit()
- except Exception as e:
- log.error("Creating Item: %s", e)
- db.session.rollback()
+def upsert_test_data():
+ for city in cities:
+ datacenter = Datacenter()
+ datacenter.name = "DC %s" % city
+ datacenter.address = city
+ datacenters.append(datacenter)
+ db.session.add(datacenter)
+ log.info(datacenter)
+ try:
+ db.session.commit()
+ for num in range(1, DC_RACK_MAX):
+ rack = Rack()
+ rack.num = num
+ rack.datacenter = datacenter
+ db.session.add(rack)
+
+ except Exception as e:
+ log.error("Creating Datacenter: %s", e)
+ db.session.rollback()
+
+ for i in range(1, ITEM_MAX):
+ item = Item()
+ item.serial_number = serial_generator()
+ item.model = get_random_name(models)
+ db.session.add(item)
+ log.info(item)
+ try:
+ db.session.commit()
+ except Exception as e:
+ log.error("Creating Item: %s", e)
+ db.session.rollback()
+
+
+with app.app_context():
+ upsert_test_data()
diff --git a/examples/crud_rest_api/README.rst b/examples/crud_rest_api/README.rst
index 12d3c7d620..c046f74197 100644
--- a/examples/crud_rest_api/README.rst
+++ b/examples/crud_rest_api/README.rst
@@ -9,7 +9,6 @@ Insert test data::
Run it::
- $ export FLASK_APP=app/__init__.py
$ flask fab create-admin
$ flask run
diff --git a/examples/crud_rest_api/app/__init__.py b/examples/crud_rest_api/app/__init__.py
index 67cd8d1b8f..a620923a22 100644
--- a/examples/crud_rest_api/app/__init__.py
+++ b/examples/crud_rest_api/app/__init__.py
@@ -1,14 +1,32 @@
-import logging
-
from flask import Flask
-from flask_appbuilder import AppBuilder, SQLA
-logging.basicConfig(format="%(asctime)s:%(levelname)s:%(name)s:%(message)s")
-logging.getLogger().setLevel(logging.DEBUG)
+from flask_appbuilder.extensions import db
+from .api import GreetingApi, ContactModelApi, GroupModelApi, ModelOMParentApi, ContactGroupModelView, ContactGroupTagModelView
+from .extensions import appbuilder
-app = Flask(__name__)
-app.config.from_object("config")
-db = SQLA(app)
-appbuilder = AppBuilder(app, db.session)
-from . import models, api # noqa
+def create_app() -> Flask:
+ app = Flask(__name__)
+ app.config.from_object("config")
+ with app.app_context():
+ appbuilder.init_app(app)
+ db.create_all()
+ appbuilder.add_api(GreetingApi)
+ appbuilder.add_api(ContactModelApi)
+ appbuilder.add_api(GroupModelApi)
+ appbuilder.add_api(ModelOMParentApi)
+ appbuilder.add_view(
+ ContactGroupModelView,
+ "List Contact Groups",
+ icon="fa-folder-open-o",
+ category="Contacts",
+ category_icon="fa-envelope",
+ )
+ appbuilder.add_view(
+ ContactGroupTagModelView,
+ "List Contact Group Tags",
+ icon="fa-folder-open-o",
+ category="Contacts",
+ category_icon="fa-envelope",
+ )
+ return app
diff --git a/examples/crud_rest_api/app/api.py b/examples/crud_rest_api/app/api.py
index 7eea760656..872b17b8aa 100644
--- a/examples/crud_rest_api/app/api.py
+++ b/examples/crud_rest_api/app/api.py
@@ -1,20 +1,27 @@
-from flask_appbuilder import ModelRestApi
+from flask_appbuilder import ModelRestApi, ModelView
from flask_appbuilder.api import BaseApi, expose
from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_appbuilder.models.filters import BaseFilter
-from sqlalchemy import or_
-
-from . import appbuilder, db
-from .models import Contact, ContactGroup, ModelOMParent
from marshmallow import fields, Schema
+from sqlalchemy import or_
-
-db.create_all()
+from .models import Contact, ContactGroup, ModelOMParent, ContactGroupTag
class GreetingsResponseSchema(Schema):
message = fields.String()
+class ContactGroupModelView(ModelView):
+ datamodel = SQLAInterface(ContactGroup)
+ list_columns = ["name", "created_by.first_name", "tags"]
+ add_columns = ["name", "tags"]
+ edit_columns = ["name", "tags"]
+
+class ContactGroupTagModelView(ModelView):
+ datamodel = SQLAInterface(ContactGroupTag)
+ add_columns = ["name"]
+ edit_columns = ["name"]
+ list_columns = ["name"]
class GreetingApi(BaseApi):
resource_name = "greeting"
@@ -41,9 +48,6 @@ def greeting(self):
return self.response(200, message="Hello")
-appbuilder.add_api(GreetingApi)
-
-
class CustomFilter(BaseFilter):
name = "Custom Filter"
arg_name = "opr"
@@ -58,28 +62,20 @@ class ContactModelApi(ModelRestApi):
resource_name = "contact"
datamodel = SQLAInterface(Contact)
allow_browser_login = True
-
+ list_columns = ["id", "name", "contact_group.id"]
search_filters = {"name": [CustomFilter]}
openapi_spec_methods = {
"get_list": {"get": {"description": "Get all contacts, filter and pagination"}}
}
-appbuilder.add_api(ContactModelApi)
-
-
class GroupModelApi(ModelRestApi):
resource_name = "group"
datamodel = SQLAInterface(ContactGroup)
allow_browser_login = True
-
-
-appbuilder.add_api(GroupModelApi)
+ list_columns = ["name", "tags.name", "created_by.first_name", "created_by.username"]
class ModelOMParentApi(ModelRestApi):
allow_browser_login = True
datamodel = SQLAInterface(ModelOMParent)
-
-
-appbuilder.add_api(ModelOMParentApi)
diff --git a/examples/crud_rest_api/app/extensions.py b/examples/crud_rest_api/app/extensions.py
new file mode 100644
index 0000000000..38bfe9965e
--- /dev/null
+++ b/examples/crud_rest_api/app/extensions.py
@@ -0,0 +1,3 @@
+from flask_appbuilder import AppBuilder
+
+appbuilder = AppBuilder()
diff --git a/examples/crud_rest_api/app/models.py b/examples/crud_rest_api/app/models.py
index c2e3af0151..867cfd05d7 100644
--- a/examples/crud_rest_api/app/models.py
+++ b/examples/crud_rest_api/app/models.py
@@ -1,21 +1,44 @@
import datetime
import enum
+from typing import Optional, List
from flask_appbuilder import Model
-from sqlalchemy import Column, Date, ForeignKey, Integer, String, Enum
-from sqlalchemy.orm import relationship, backref
+from flask_appbuilder.models.mixins import AuditMixin
+from sqlalchemy import Column, Date, ForeignKey, Integer, String, Enum, Table
+from sqlalchemy.orm import relationship, backref, Mapped, mapped_column
+
mindate = datetime.date(datetime.MINYEAR, 1, 1)
-class ContactGroup(Model):
- id = Column(Integer, primary_key=True)
- name = Column(String(50), unique=True, nullable=False)
+class ContactGroup(AuditMixin, Model):
+ id: Mapped[int] = mapped_column(Integer, primary_key=True)
+ name: Mapped[str] = mapped_column(String(50), unique=True, nullable=False)
def __repr__(self):
return self.name
+class ContactGroupTag(Model):
+ id: Mapped[int] = mapped_column(Integer, primary_key=True)
+ name: Mapped[str] = mapped_column(String(150), unique=True, nullable=False)
+ group_id: Mapped[Optional[int]] = mapped_column(
+ Integer, ForeignKey("contact_group.id"), nullable=True
+ )
+ groups: Mapped[List[ContactGroup]] = relationship(
+ ContactGroup,
+ backref=backref("tags"),
+ secondary="group_tag_association"
+ )
+
+# Association Table for N-N Relationship
+group_tag_association = Table(
+ 'group_tag_association',
+ Model.metadata,
+ Column('group_id', Integer, ForeignKey('contact_group.id')),
+ Column('tag_id', Integer, ForeignKey('contact_group_tag.id'))
+)
+
class Gender(enum.Enum):
Female = 1
Male = 2
diff --git a/examples/crud_rest_api/testdata.py b/examples/crud_rest_api/testdata.py
index aca4055d3d..aaf85d2ddd 100644
--- a/examples/crud_rest_api/testdata.py
+++ b/examples/crud_rest_api/testdata.py
@@ -2,11 +2,13 @@
import logging
import random
-from app import db
+from app import db, create_app
from app.models import Contact, ContactGroup, Gender, ModelOMParent, ModelOMChild
log = logging.getLogger(__name__)
+app = create_app()
+
def get_random_name(names_list, size=1):
name_lst = [
@@ -16,68 +18,71 @@ def get_random_name(names_list, size=1):
return " ".join(name_lst)
-try:
- db.session.query(Contact).delete()
- db.session.query(ContactGroup).delete()
- db.session.commit()
-except Exception:
- db.session.rollback()
-
-try:
- groups = []
- groups.append(ContactGroup(name="Friends"))
- groups.append(ContactGroup(name="Family"))
- groups.append(ContactGroup(name="Work"))
- db.session.add(groups[0])
- db.session.add(groups[1])
- db.session.add(groups[2])
- print(groups[0].id)
- db.session.commit()
-except Exception as e:
- log.error("Creating Groups: %s", e)
- db.session.rollback()
-
+def upsert_test_data():
+ try:
+ db.session.query(Contact).delete()
+ db.session.query(ContactGroup).delete()
+ db.session.commit()
+ except Exception:
+ db.session.rollback()
-model_oo_parents = list()
-for i in range(20):
- model = ModelOMParent()
- model.field_string = f"text{i}"
- db.session.add(model)
- db.session.commit()
- model_oo_parents.append(model)
+ try:
+ groups = []
+ groups.append(ContactGroup(name="Friends"))
+ groups.append(ContactGroup(name="Family"))
+ groups.append(ContactGroup(name="Work"))
+ db.session.add(groups[0])
+ db.session.add(groups[1])
+ db.session.add(groups[2])
+ print(groups[0].id)
+ db.session.commit()
+ except Exception as e:
+ log.error("Creating Groups: %s", e)
+ db.session.rollback()
-for i in range(20):
- for j in range(1, 4):
- model = ModelOMChild()
- model.field_string = f"text{i}.{j}"
- model.parent = model_oo_parents[i]
+ model_oo_parents = list()
+ for i in range(20):
+ model = ModelOMParent()
+ model.field_string = f"text{i}"
db.session.add(model)
db.session.commit()
+ model_oo_parents.append(model)
+ for i in range(20):
+ for j in range(1, 4):
+ model = ModelOMChild()
+ model.field_string = f"text{i}.{j}"
+ model.parent = model_oo_parents[i]
+ db.session.add(model)
+ db.session.commit()
-f = open("NAMES.DIC", "rb")
-names_list = [x.strip() for x in f.readlines()]
+ f = open("NAMES.DIC", "rb")
+ names_list = [x.strip() for x in f.readlines()]
-f.close()
+ f.close()
-for i in range(1, 1000):
- c = Contact()
- c.name = get_random_name(names_list, random.randrange(2, 6))
- c.address = "Street " + names_list[random.randrange(0, len(names_list))].decode(
- "utf-8"
- )
- c.personal_phone = random.randrange(1111111, 9999999)
- c.personal_celphone = random.randrange(1111111, 9999999)
- c.contact_group = groups[random.randrange(0, 3)]
- c.gender = random.choice(list(Gender))
- year = random.choice(range(1900, 2012))
- month = random.choice(range(1, 12))
- day = random.choice(range(1, 28))
- c.birthday = datetime(year, month, day)
- db.session.add(c)
- try:
- db.session.commit()
- print("inserted", c)
- except Exception as e:
- log.error("Creating Contact: %s", e)
- db.session.rollback()
+ for i in range(1, 1000):
+ c = Contact()
+ c.name = get_random_name(names_list, random.randrange(2, 6))
+ c.address = "Street " + names_list[random.randrange(0, len(names_list))].decode(
+ "utf-8"
+ )
+ c.personal_phone = random.randrange(1111111, 9999999)
+ c.personal_celphone = random.randrange(1111111, 9999999)
+ c.contact_group = groups[random.randrange(0, 3)]
+ c.gender = random.choice(list(Gender))
+ year = random.choice(range(1900, 2012))
+ month = random.choice(range(1, 12))
+ day = random.choice(range(1, 28))
+ c.birthday = datetime(year, month, day)
+ db.session.add(c)
+ try:
+ db.session.commit()
+ print("inserted", c)
+ except Exception as e:
+ log.error("Creating Contact: %s", e)
+ db.session.rollback()
+
+
+with app.app_context():
+ upsert_test_data()
diff --git a/examples/dash/README.rst b/examples/dash/README.rst
deleted file mode 100644
index fbebbe313e..0000000000
--- a/examples/dash/README.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-Dash embedded in FAB
------------------------
-
-Example of Dash embedded under flask-appbuilder
-
-thanks to @jimmybow (https://github.com/jimmybow/Flask_template_auth_with_Dash) for the inspiration
-
-
-Run it::
-
- $ export FLASK_APP=app/__init__.py
- $ flask fab create-admin
- $ flask run
diff --git a/examples/dash/app/Dashboard/Dash_App1.py b/examples/dash/app/Dashboard/Dash_App1.py
deleted file mode 100644
index e68d9ac642..0000000000
--- a/examples/dash/app/Dashboard/Dash_App1.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-Created on Sun Jul 8 10:39:33 2018
-
-@author: jimmybow
-"""
-from dash import Dash
-from dash.dependencies import Input, State, Output
-from .Dash_fun import apply_layout_with_auth, load_object, save_object
-import dash_core_components as dcc
-import dash_html_components as html
-
-url_base = "/dash/app1/"
-
-layout = html.Div(
- [html.Div("This is dash app1"), html.Br(), dcc.Input(id="input_text"), html.Br(), html.Br(), html.Div(id="target")]
-)
-
-
-def Add_Dash(server, appbuilder):
- app = Dash(server=server, url_base_pathname=url_base)
- apply_layout_with_auth(app, layout, appbuilder)
-
- @app.callback(Output("target", "children"), [Input("input_text", "value")])
- def callback_fun(value):
- return "your input is {}".format(value)
-
- return app.server
diff --git a/examples/dash/app/Dashboard/Dash_App2.py b/examples/dash/app/Dashboard/Dash_App2.py
deleted file mode 100644
index 2edb01ea2b..0000000000
--- a/examples/dash/app/Dashboard/Dash_App2.py
+++ /dev/null
@@ -1,41 +0,0 @@
-from datetime import datetime as dt
-
-from dash import Dash
-
-import dash_core_components as dcc
-import dash_html_components as html
-import pandas_datareader as pdr
-from dash.dependencies import Input
-from dash.dependencies import Output
-from .Dash_fun import apply_layout_with_auth, load_object, save_object
-
-url_base = "/dash/app2/"
-
-layout = html.Div(
- [
- html.H1("Stock Tickers"),
- dcc.Dropdown(
- id="my-dropdown",
- options=[
- {"label": "Coke", "value": "COKE"},
- {"label": "Tesla", "value": "TSLA"},
- {"label": "Apple", "value": "AAPL"},
- ],
- value="COKE",
- ),
- dcc.Graph(id="my-graph"),
- ],
- style={"width": "500"},
-)
-
-
-def Add_Dash(server, appbuilder):
- app = Dash(server=server, url_base_pathname=url_base)
- apply_layout_with_auth(app, layout, appbuilder)
-
- @app.callback(Output("my-graph", "figure"), [Input("my-dropdown", "value")])
- def update_graph(selected_dropdown_value):
- df = pdr.get_data_yahoo(selected_dropdown_value, start=dt(2017, 1, 1), end=dt.now())
- return {"data": [{"x": df.index, "y": df.Close}], "layout": {"margin": {"l": 40, "r": 0, "t": 20, "b": 30}}}
-
- return app.server
diff --git a/examples/dash/app/Dashboard/Dash_fun.py b/examples/dash/app/Dashboard/Dash_fun.py
deleted file mode 100644
index b188fb0e66..0000000000
--- a/examples/dash/app/Dashboard/Dash_fun.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-Created on Fri Jan 25 22:34:51 2019
-
-@author: jimmybow
-"""
-
-from datetime import datetime, timedelta
-from flask_login import current_user
-from flask import redirect, has_app_context
-import dash_html_components as html
-import dash_core_components as dcc
-import pandas as pd
-import uuid
-import os
-import pickle
-
-
-def save_object(obj, session_id, name):
- os.makedirs("Dir_Store", exist_ok=True)
- file = "Dir_Store/{}_{}".format(session_id, name)
- pickle.dump(obj, open(file, "wb"))
-
-
-def load_object(session_id, name):
- file = "Dir_Store/{}_{}".format(session_id, name)
- obj = pickle.load(open(file, "rb"))
- os.remove(file)
- return obj
-
-
-def clean_Dir_Store():
- if os.path.isdir("Dir_Store"):
- file_list = pd.Series("Dir_Store/" + i for i in os.listdir("Dir_Store"))
- mt = file_list.apply(lambda x: datetime.fromtimestamp(os.path.getmtime(x))).astype(str)
- for i in file_list[mt < str(datetime.now() - timedelta(hours=3))]:
- os.remove(i)
-
-
-def apply_layout_with_auth(app, layout, appbuilder):
- def serve_layout():
- if current_user and current_user.is_authenticated:
- session_id = str(uuid.uuid4())
- clean_Dir_Store()
- return html.Div([html.Div(session_id, id="session_id", style={"display": "none"}), layout])
- loginurl = None
- if has_app_context():
- return dcc.Location(pathname=appbuilder.get_url_for_login, id="")
- return None
-
- app.config.suppress_callback_exceptions = True
- app.layout = serve_layout
diff --git a/examples/dash/app/Dashboard/__init__.py b/examples/dash/app/Dashboard/__init__.py
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/examples/dash/app/__init__.py b/examples/dash/app/__init__.py
deleted file mode 100644
index cb9441b33f..0000000000
--- a/examples/dash/app/__init__.py
+++ /dev/null
@@ -1,21 +0,0 @@
-import logging
-
-from flask import Flask
-from flask_appbuilder import AppBuilder, SQLA
-from .Dashboard import Dash_App1, Dash_App2
-
-"""
- Logging configuration
-"""
-logging.basicConfig(format="%(asctime)s:%(levelname)s:%(name)s:%(message)s")
-logging.getLogger().setLevel(logging.DEBUG)
-
-
-app = Flask(__name__)
-app.config.from_object("config")
-db = SQLA(app)
-appbuilder = AppBuilder(app, db.session)
-app = Dash_App1.Add_Dash(app, appbuilder)
-app = Dash_App2.Add_Dash(app, appbuilder)
-
-from . import views # noqa
diff --git a/examples/dash/app/templates/dash.html b/examples/dash/app/templates/dash.html
deleted file mode 100644
index b54a3521f4..0000000000
--- a/examples/dash/app/templates/dash.html
+++ /dev/null
@@ -1,22 +0,0 @@
-{% extends "appbuilder/baselayout.html" %}
-{% block head_css %}
-{{ super() }}
-
-{% endblock %}
-{% block content %}
-
-{% endblock %}
\ No newline at end of file
diff --git a/examples/dash/app/views.py b/examples/dash/app/views.py
deleted file mode 100644
index 6735727e30..0000000000
--- a/examples/dash/app/views.py
+++ /dev/null
@@ -1,36 +0,0 @@
-from flask_appbuilder.baseviews import BaseView
-from flask_appbuilder import expose, has_access
-from .Dashboard import Dash_App1, Dash_App2
-
-from . import appbuilder
-
-
-class MyDashAppCallBack(BaseView):
- route_base = "/"
-
- @has_access
- @expose("/dashboard_callback/")
- def methoddash(self):
- print("dash")
- return self.render_template("dash.html", dash_url=Dash_App1.url_base, appbuilder=appbuilder)
-
-
-appbuilder.add_view_no_menu(MyDashAppCallBack())
-appbuilder.add_link(
- "Dashboard Callback", href="/dashboard_callback/", icon="fa-list", category="Dash Demo", category_icon="fa-list"
-)
-
-
-class MyDashAppGraph(BaseView):
- route_base = "/"
-
- @has_access
- @expose("/dashboard_graph/")
- def methoddash(self):
- return self.render_template("dash.html", dash_url=Dash_App2.url_base, appbuilder=appbuilder)
-
-
-appbuilder.add_view_no_menu(MyDashAppGraph())
-appbuilder.add_link(
- "Dashboard Graph", href="/dashboard_graph/", icon="fa-list", category="Dash Demo", category_icon="fa-list"
-)
diff --git a/examples/dash/babel/babel.cfg b/examples/dash/babel/babel.cfg
deleted file mode 100644
index 70e23ac634..0000000000
--- a/examples/dash/babel/babel.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-[python: **.py]
-[jinja2: **/templates/**.html]
-encoding = utf-8
diff --git a/examples/dash/babel/messages.pot b/examples/dash/babel/messages.pot
deleted file mode 100644
index 8b13789179..0000000000
--- a/examples/dash/babel/messages.pot
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/examples/dash/config.py b/examples/dash/config.py
deleted file mode 100644
index c9c9245105..0000000000
--- a/examples/dash/config.py
+++ /dev/null
@@ -1,57 +0,0 @@
-import os
-
-basedir = os.path.abspath(os.path.dirname(__file__))
-
-CSRF_ENABLED = True
-SECRET_KEY = "\2\1thisismyscretkey\1\2\e\y\y\h"
-
-OPENID_PROVIDERS = [
- {"name": "Google", "url": "https://www.google.com/accounts/o8/id"},
- {"name": "Yahoo", "url": "https://me.yahoo.com"},
- {"name": "AOL", "url": "http://openid.aol.com/"},
- {"name": "Flickr", "url": "http://www.flickr.com/"},
- {"name": "MyOpenID", "url": "https://www.myopenid.com"},
-]
-
-SQLALCHEMY_DATABASE_URI = "sqlite:///" + os.path.join(basedir, "app.db")
-# SQLALCHEMY_DATABASE_URI = 'mysql://myapp@localhost/myapp'
-# SQLALCHEMY_DATABASE_URI = 'postgresql://root:password@localhost/myapp'
-BABEL_DEFAULT_LOCALE = "en"
-
-
-# ------------------------------
-# GLOBALS FOR APP Builder
-# ------------------------------
-BABEL_DEFAULT_LOCALE = "en"
-BABEL_DEFAULT_FOLDER = "translations"
-LANGUAGES = {
- "en": {"flag": "gb", "name": "English"},
- "pt": {"flag": "pt", "name": "Portuguese"},
- "es": {"flag": "es", "name": "Spanish"},
- "de": {"flag": "de", "name": "German"},
- "zh": {"flag": "cn", "name": "Chinese"},
- "ru": {"flag": "ru", "name": "Russian"},
-}
-
-
-UPLOAD_FOLDER = basedir + "/app/static/uploads/"
-IMG_UPLOAD_FOLDER = basedir + "/app/static/uploads/"
-IMG_UPLOAD_URL = "/static/uploads/"
-AUTH_TYPE = 1
-AUTH_ROLE_ADMIN = "Admin"
-AUTH_ROLE_PUBLIC = "Public"
-# APP_NAME = "My App Name"
-# APP_ICON = "static/img/logo.jpg"
-APP_THEME = "" # default
-# APP_THEME = "cerulean.css"
-# APP_THEME = "amelia.css"
-# APP_THEME = "cosmo.css"
-# APP_THEME = "cyborg.css"
-# APP_THEME = "flatly.css"
-# APP_THEME = "journal.css"
-# APP_THEME = "readable.css"
-# APP_THEME = "simplex.css"
-# APP_THEME = "slate.css"
-# APP_THEME = "spacelab.css"
-# APP_THEME = "united.css"
-# APP_THEME = "yeti.css"
diff --git a/examples/dash/run.py b/examples/dash/run.py
deleted file mode 100644
index cd78bc086f..0000000000
--- a/examples/dash/run.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from app import app
-
-app.run(host="0.0.0.0", port=8080, debug=True)
diff --git a/examples/employees/app/__init__.py b/examples/employees/app/__init__.py
index ed6d2bb742..2b878c4791 100644
--- a/examples/employees/app/__init__.py
+++ b/examples/employees/app/__init__.py
@@ -1,27 +1,40 @@
import logging
from flask import Flask
-from flask_appbuilder import AppBuilder, SQLA
-from sqlalchemy import event
-from sqlalchemy.engine import Engine
-
from .security import MySecurityManager
+from .views import (
+ DepartmentView,
+ EmployeeView,
+ FunctionView,
+ EmployeeHistoryView,
+ BenefitView,
+)
+from .extensions import appbuilder
+
logging.basicConfig(format="%(asctime)s:%(levelname)s:%(name)s:%(message)s")
logging.getLogger().setLevel(logging.DEBUG)
-app = Flask(__name__)
-app.config.from_object("config")
-db = SQLA(app)
-appbuilder = AppBuilder(app, db.session, security_manager_class=MySecurityManager)
-
-
-@event.listens_for(Engine, "connect")
-def set_sqlite_pragma(dbapi_connection, connection_record):
- cursor = dbapi_connection.cursor()
- cursor.execute("PRAGMA foreign_keys=ON")
- cursor.close()
-
-
-from . import models, views # noqa
+def create_app() -> Flask:
+ app = Flask(__name__)
+ app.config.from_object("config")
+ with app.app_context():
+ appbuilder.init_app(app)
+
+ appbuilder.add_view_no_menu(EmployeeHistoryView, "EmployeeHistoryView")
+ appbuilder.add_view(
+ EmployeeView, "Employees", icon="fa-folder-open-o", category="Company"
+ )
+ appbuilder.add_separator("Company")
+ appbuilder.add_view(
+ DepartmentView, "Departments", icon="fa-folder-open-o", category="Company"
+ )
+ appbuilder.add_view(
+ FunctionView, "Functions", icon="fa-folder-open-o", category="Company"
+ )
+ appbuilder.add_view(
+ BenefitView, "Benefits", icon="fa-folder-open-o", category="Company"
+ )
+
+ return app
diff --git a/examples/employees/app/extensions.py b/examples/employees/app/extensions.py
new file mode 100644
index 0000000000..a88f9d1767
--- /dev/null
+++ b/examples/employees/app/extensions.py
@@ -0,0 +1,6 @@
+from flask_appbuilder import AppBuilder
+
+from . import MySecurityManager
+
+
+appbuilder = AppBuilder(security_manager_class=MySecurityManager)
diff --git a/examples/employees/app/views.py b/examples/employees/app/views.py
index 420272d9b4..5dc9eb121c 100644
--- a/examples/employees/app/views.py
+++ b/examples/employees/app/views.py
@@ -1,9 +1,9 @@
from flask_appbuilder import ModelView
+from flask_appbuilder.extensions import db
from flask_appbuilder.fields import QuerySelectField
from flask_appbuilder.fieldwidgets import Select2Widget
from flask_appbuilder.models.sqla.interface import SQLAInterface
-from . import appbuilder, db
from .models import Benefit, Department, Employee, EmployeeHistory, Function
@@ -49,21 +49,3 @@ class BenefitView(ModelView):
edit_columns = ["name"]
show_columns = ["name"]
list_columns = ["name"]
-
-
-db.create_all()
-
-appbuilder.add_view_no_menu(EmployeeHistoryView, "EmployeeHistoryView")
-appbuilder.add_view(
- EmployeeView, "Employees", icon="fa-folder-open-o", category="Company"
-)
-appbuilder.add_separator("Company")
-appbuilder.add_view(
- DepartmentView, "Departments", icon="fa-folder-open-o", category="Company"
-)
-appbuilder.add_view(
- FunctionView, "Functions", icon="fa-folder-open-o", category="Company"
-)
-appbuilder.add_view(
- BenefitView, "Benefits", icon="fa-folder-open-o", category="Company"
-)
diff --git a/examples/enums/app/__init__.py b/examples/enums/app/__init__.py
index 1a5aed6b8c..0553eb4db2 100644
--- a/examples/enums/app/__init__.py
+++ b/examples/enums/app/__init__.py
@@ -1,15 +1,42 @@
import logging
from flask import Flask
-from flask_appbuilder import AppBuilder, SQLA
+from .views import (
+ ContactModelView,
+ GroupModelView,
+ ContactChartView,
+ ContactTimeChartView,
+)
+from .extensions import appbuilder
logging.basicConfig(format="%(asctime)s:%(levelname)s:%(name)s:%(message)s")
logging.getLogger().setLevel(logging.DEBUG)
-app = Flask(__name__)
-app.config.from_object("config")
-db = SQLA(app)
-appbuilder = AppBuilder(app, db.session)
-from . import models, views # noqa
+def create_app() -> Flask:
+ app = Flask(__name__)
+ app.config.from_object("config")
+ with app.app_context():
+ appbuilder.init_app(app)
+ appbuilder.add_view(
+ GroupModelView,
+ "List Groups",
+ icon="fa-folder-open-o",
+ category="Contacts",
+ category_icon="fa-envelope",
+ )
+ appbuilder.add_view(
+ ContactModelView, "List Contacts", icon="fa-envelope", category="Contacts"
+ )
+ appbuilder.add_separator("Contacts")
+ appbuilder.add_view(
+ ContactChartView, "Contacts Chart", icon="fa-dashboard", category="Contacts"
+ )
+ appbuilder.add_view(
+ ContactTimeChartView,
+ "Contacts Birth Chart",
+ icon="fa-dashboard",
+ category="Contacts",
+ )
+ return app
diff --git a/examples/enums/app/extensions.py b/examples/enums/app/extensions.py
new file mode 100644
index 0000000000..cda8f08716
--- /dev/null
+++ b/examples/enums/app/extensions.py
@@ -0,0 +1,4 @@
+from flask_appbuilder import AppBuilder
+
+
+appbuilder = AppBuilder()
diff --git a/examples/enums/app/views.py b/examples/enums/app/views.py
index ed04f03fff..6fb4abfab0 100644
--- a/examples/enums/app/views.py
+++ b/examples/enums/app/views.py
@@ -5,8 +5,6 @@
from flask_appbuilder.models.group import aggregate_count
from flask_appbuilder.models.sqla.interface import SQLAInterface
-
-from . import appbuilder, db
from .models import Contact, ContactGroup
@@ -108,26 +106,3 @@ class ContactTimeChartView(GroupByChartView):
"series": [(aggregate_count, "group")],
},
]
-
-
-db.create_all()
-appbuilder.add_view(
- GroupModelView,
- "List Groups",
- icon="fa-folder-open-o",
- category="Contacts",
- category_icon="fa-envelope",
-)
-appbuilder.add_view(
- ContactModelView, "List Contacts", icon="fa-envelope", category="Contacts"
-)
-appbuilder.add_separator("Contacts")
-appbuilder.add_view(
- ContactChartView, "Contacts Chart", icon="fa-dashboard", category="Contacts"
-)
-appbuilder.add_view(
- ContactTimeChartView,
- "Contacts Birth Chart",
- icon="fa-dashboard",
- category="Contacts",
-)
diff --git a/examples/enums/testdata.py b/examples/enums/testdata.py
index ba12b11542..442a593c18 100644
--- a/examples/enums/testdata.py
+++ b/examples/enums/testdata.py
@@ -2,11 +2,14 @@
import logging
import random
-from app import db
+from flask_appbuilder.extensions import db
+from app import create_app
from app.models import Contact, ContactGroup
log = logging.getLogger(__name__)
+app = create_app()
+
def get_random_name(names_list, size=1):
name_lst = [
@@ -16,52 +19,57 @@ def get_random_name(names_list, size=1):
return " ".join(name_lst)
-try:
- db.session.query(Contact).delete()
- db.session.query(ContactGroup).delete()
- db.session.commit()
-except Exception:
- db.session.rollback()
-
-try:
- groups = list()
- groups.append(ContactGroup(name="Friends"))
- groups.append(ContactGroup(name="Family"))
- groups.append(ContactGroup(name="Work"))
- db.session.add(groups[0])
- db.session.add(groups[1])
- db.session.add(groups[2])
- print(groups[0].id)
- db.session.commit()
-except Exception as e:
- log.error("Creating Groups: %s", e)
- db.session.rollback()
-
-
-f = open("NAMES.DIC", "rb")
-names_list = [x.strip() for x in f.readlines()]
-
-f.close()
-gender = ["Male", "Female"]
+def upsert_test_data():
+ try:
+ db.session.query(Contact).delete()
+ db.session.query(ContactGroup).delete()
+ db.session.commit()
+ except Exception:
+ db.session.rollback()
-for i in range(1, 1000):
- c = Contact()
- c.name = get_random_name(names_list, random.randrange(2, 6))
- c.address = "Street " + names_list[random.randrange(0, len(names_list))].decode(
- "utf-8"
- )
- c.gender = gender[random.randrange(0, len(gender))]
- c.personal_phone = random.randrange(1111111, 9999999)
- c.personal_celphone = random.randrange(1111111, 9999999)
- c.contact_group = groups[random.randrange(0, 3)]
- year = random.choice(range(1900, 2012))
- month = random.choice(range(1, 12))
- day = random.choice(range(1, 28))
- c.birthday = datetime(year, month, day)
- db.session.add(c)
try:
+ groups = list()
+ groups.append(ContactGroup(name="Friends"))
+ groups.append(ContactGroup(name="Family"))
+ groups.append(ContactGroup(name="Work"))
+ db.session.add(groups[0])
+ db.session.add(groups[1])
+ db.session.add(groups[2])
+ print(groups[0].id)
db.session.commit()
- print("inserted", c)
except Exception as e:
- log.error("Creating Contact: %s", e)
+ log.error("Creating Groups: %s", e)
db.session.rollback()
+
+ f = open("NAMES.DIC", "rb")
+ names_list = [x.strip() for x in f.readlines()]
+
+ f.close()
+ gender = ["Male", "Female"]
+
+ for i in range(1, 1000):
+ c = Contact()
+ c.name = get_random_name(names_list, random.randrange(2, 6))
+ c.address = "Street " + names_list[random.randrange(0, len(names_list))].decode(
+ "utf-8"
+ )
+ c.gender = gender[random.randrange(0, len(gender))]
+ c.personal_phone = random.randrange(1111111, 9999999)
+ c.personal_celphone = random.randrange(1111111, 9999999)
+ c.contact_group = groups[random.randrange(0, 3)]
+ year = random.choice(range(1900, 2012))
+ month = random.choice(range(1, 12))
+ day = random.choice(range(1, 28))
+ c.birthday = datetime(year, month, day)
+ db.session.add(c)
+ try:
+ db.session.commit()
+ print("inserted", c)
+ except Exception as e:
+ log.error("Creating Contact: %s", e)
+ db.session.rollback()
+
+
+if __name__ == "__main__":
+ with app.app_context():
+ upsert_test_data()
diff --git a/examples/extendsecurity/app/__init__.py b/examples/extendsecurity/app/__init__.py
index bd7170b7d8..12248f5a43 100644
--- a/examples/extendsecurity/app/__init__.py
+++ b/examples/extendsecurity/app/__init__.py
@@ -1,22 +1,31 @@
import logging
from flask import Flask
-from flask_appbuilder import AppBuilder, SQLA
+
+from .extensions import appbuilder
+from .views import ContactModelView, GroupModelView, CompanyModelView
+
logging.basicConfig(format="%(asctime)s:%(levelname)s:%(name)s:%(message)s")
logging.getLogger().setLevel(logging.DEBUG)
-db = SQLA()
-appbuilder = AppBuilder()
-
-def create_app(config):
+def create_app():
app = Flask(__name__)
with app.app_context():
- app.config.from_object(config)
- db.init_app(app)
- appbuilder.init_app(app, db.session)
- from . import views # noqa
+ app.config.from_object("config")
+ appbuilder.init_app(app)
+ appbuilder.add_view(
+ ContactModelView, "List Contacts", icon="fa-envelope", category="Contacts"
+ )
+ appbuilder.add_separator("Contacts")
+ appbuilder.add_view(
+ GroupModelView,
+ "List Groups",
+ icon="fa-folder-open-o",
+ category="Contacts",
+ category_icon="fa-envelope",
+ )
+ appbuilder.add_view(CompanyModelView, "Companys", icon="fa-folder-open-o")
- appbuilder.post_init()
return app
diff --git a/examples/extendsecurity/app/extensions.py b/examples/extendsecurity/app/extensions.py
new file mode 100644
index 0000000000..cda8f08716
--- /dev/null
+++ b/examples/extendsecurity/app/extensions.py
@@ -0,0 +1,4 @@
+from flask_appbuilder import AppBuilder
+
+
+appbuilder = AppBuilder()
diff --git a/examples/extendsecurity/app/models.py b/examples/extendsecurity/app/models.py
index 71f98608f4..79be7efe27 100644
--- a/examples/extendsecurity/app/models.py
+++ b/examples/extendsecurity/app/models.py
@@ -24,6 +24,11 @@ class MyUser(User):
company_id = Column(Integer, ForeignKey("company.id"), nullable=True)
company = relationship("Company")
+ __mapper_args__ = {
+ "polymorphic_identity": "ab_user",
+ 'with_polymorphic': '*'
+ }
+
class ContactGroup(Model):
id = Column(Integer, primary_key=True)
diff --git a/examples/extendsecurity/app/sec_views.py b/examples/extendsecurity/app/sec_views.py
index 01fdae83e1..bca4dbcbfc 100644
--- a/examples/extendsecurity/app/sec_views.py
+++ b/examples/extendsecurity/app/sec_views.py
@@ -4,9 +4,9 @@
class MyUserDBModelView(UserDBModelView):
"""
- View that add DB specifics to User view.
- Override to implement your own custom view.
- Then override userdbmodelview property on SecurityManager
+ View that add DB specifics to User view.
+ Override to implement your own custom view.
+ Then override userdbmodelview property on SecurityManager
"""
show_fieldsets = [
diff --git a/examples/extendsecurity/app/views.py b/examples/extendsecurity/app/views.py
index de48b9b8aa..0bf9de8956 100644
--- a/examples/extendsecurity/app/views.py
+++ b/examples/extendsecurity/app/views.py
@@ -42,28 +42,10 @@ class ContactModelView(ModelView):
base_filters = [["created_by.company", FilterEqualFunction, get_user_company]]
-appbuilder.add_view(
- ContactModelView, "List Contacts", icon="fa-envelope", category="Contacts"
-)
-appbuilder.add_separator("Contacts")
-
-
class GroupModelView(ModelView):
datamodel = SQLAInterface(ContactGroup)
related_views = [ContactModelView]
-appbuilder.add_view(
- GroupModelView,
- "List Groups",
- icon="fa-folder-open-o",
- category="Contacts",
- category_icon="fa-envelope",
-)
-
-
class CompanyModelView(ModelView):
datamodel = SQLAInterface(Company)
-
-
-appbuilder.add_view(CompanyModelView, "Companys", icon="fa-folder-open-o")
diff --git a/examples/extendsecurity/config.py b/examples/extendsecurity/config.py
index d2ad3edbce..f5bf932280 100644
--- a/examples/extendsecurity/config.py
+++ b/examples/extendsecurity/config.py
@@ -5,21 +5,13 @@
CSRF_ENABLED = True
SECRET_KEY = "\2\1thisismyscretkey\1\2\e\y\y\h"
-OPENID_PROVIDERS = [
- {"name": "Google", "url": "https://www.google.com/accounts/o8/id"},
- {"name": "Yahoo", "url": "https://me.yahoo.com"},
- {"name": "AOL", "url": "http://openid.aol.com/"},
- {"name": "Flickr", "url": "http://www.flickr.com/"},
- {"name": "MyOpenID", "url": "https://www.myopenid.com"},
-]
-
SQLALCHEMY_DATABASE_URI = "sqlite:///" + os.path.join(basedir, "app.db")
# SQLALCHEMY_DATABASE_URI = 'mysql://root:password@localhost/quickhowto'
# SQLALCHEMY_DATABASE_URI = 'postgresql://scott:tiger@localhost:5432/myapp'
# SQLALCHEMY_ECHO = True
FAB_SECURITY_MANAGER_CLASS = "app.sec.MySecurityManager"
-FAB_UPDATE_PERMS = False
+FAB_UPDATE_PERMS = True
BABEL_DEFAULT_LOCALE = "en"
BABEL_DEFAULT_FOLDER = "translations"
diff --git a/examples/extendsecurity/testdata.py b/examples/extendsecurity/testdata.py
index 6d2c7518a4..d99a1089b8 100644
--- a/examples/extendsecurity/testdata.py
+++ b/examples/extendsecurity/testdata.py
@@ -2,13 +2,17 @@
import logging
import random
-from app import appbuilder, db, create_app
+from flask_appbuilder.extensions import db
+
+from app import create_app
+from app.extensions import appbuilder
from app.models import ContactGroup, Gender, Contact, Company
log = logging.getLogger(__name__)
+
def get_random_name(names_list, size=1):
name_lst = [
names_list[random.randrange(0, len(names_list))].decode("utf-8").capitalize()
@@ -17,97 +21,100 @@ def get_random_name(names_list, size=1):
return " ".join(name_lst)
-app = create_app("config")
-app.app_context().push()
+app = create_app()
-company1 = Company(name="Company 1")
-company2 = Company(name="Company 2")
-try:
- db.session.add(company1)
- db.session.add(company2)
- db.session.commit()
-except Exception as e:
- log.error("Group creation error: %s", e)
- db.session.rollback()
- exit(1)
-
-
-role_admin = appbuilder.sm.find_role(appbuilder.sm.auth_role_admin)
-
-user1 = appbuilder.sm.add_user(
- "user1_company1", "user1", "test", "user1@company1.com", role_admin, "password"
-)
-user2 = appbuilder.sm.add_user(
- "user1_company2", "user1", "test", "user1@company2.com", role_admin, "password"
-)
-user3 = appbuilder.sm.add_user(
- "user2_company2", "user2", "test", "user2@company2.com", role_admin, "password"
-)
-user1.company = company1
-user2.company = company2
-user3.company = company2
-db.session.merge(user1)
-db.session.merge(user2)
-db.session.merge(user3)
-db.session.commit()
-
-try:
- db.session.add(ContactGroup(name="Friends"))
- db.session.add(ContactGroup(name="Family"))
- db.session.add(ContactGroup(name="Work"))
- db.session.commit()
-except Exception as e:
- log.error("Group creation error: %s", e)
- db.session.rollback()
- exit(1)
-
-try:
- db.session.add(Gender(name="Male"))
- db.session.add(Gender(name="Female"))
- db.session.commit()
-except Exception as e:
- log.error("Gender creation error: %s", e)
- db.session.rollback()
- exit(1)
-
-f = open("NAMES.DIC", "rb")
-names_list = [x.strip() for x in f.readlines()]
-
-f.close()
-
-j = 1
-for i in range(1, 100):
- c = Contact()
- c.name = get_random_name(names_list, random.randrange(2, 6))
- c.address = "Street " + names_list[random.randrange(0, len(names_list))].decode(
- "utf-8"
+def upsert_test_data():
+ company1 = Company(name="Company 1")
+ company2 = Company(name="Company 2")
+ try:
+ db.session.add(company1)
+ db.session.add(company2)
+ db.session.commit()
+ except Exception as e:
+ log.error("Group creation error: %s", e)
+ db.session.rollback()
+ exit(1)
+
+
+ role_admin = appbuilder.sm.find_role(appbuilder.sm.auth_role_admin)
+
+ user1 = appbuilder.sm.add_user(
+ "user1_company1", "user1", "test", "user1@company1.com", role_admin, "password"
+ )
+ user2 = appbuilder.sm.add_user(
+ "user1_company2", "user1", "test", "user1@company2.com", role_admin, "password"
+ )
+ user3 = appbuilder.sm.add_user(
+ "user2_company2", "user2", "test", "user2@company2.com", role_admin, "password"
)
- c.personal_phone = random.randrange(1111111, 9999999)
- c.personal_celphone = random.randrange(1111111, 9999999)
- c.contact_group_id = random.randrange(1, 4)
- c.gender_id = random.randrange(1, 3)
- year = random.choice(range(1900, 2012))
- month = random.choice(range(1, 12))
- day = random.choice(range(1, 28))
- c.birthday = datetime(year, month, day)
- c.changed_on = datetime.now()
- c.created_on = datetime.now()
- if j == 1:
- j += 1
- _user = user1
- elif j == 2:
- j += 1
- _user = user2
- else:
- j = 1
- _user = user3
- c.created_by = _user
- c.changed_by = _user
-
- db.session.add(c)
+ user1.company = company1
+ user2.company = company2
+ user3.company = company2
+ db.session.merge(user1)
+ db.session.merge(user2)
+ db.session.merge(user3)
+ db.session.commit()
+
+ try:
+ db.session.add(ContactGroup(name="Friends"))
+ db.session.add(ContactGroup(name="Family"))
+ db.session.add(ContactGroup(name="Work"))
+ db.session.commit()
+ except Exception as e:
+ log.error("Group creation error: %s", e)
+ db.session.rollback()
+ exit(1)
+
try:
+ db.session.add(Gender(name="Male"))
+ db.session.add(Gender(name="Female"))
db.session.commit()
- print("inserted", c)
except Exception as e:
- log.error("Contact creation error: %s", e)
+ log.error("Gender creation error: %s", e)
db.session.rollback()
+ exit(1)
+
+ f = open("NAMES.DIC", "rb")
+ names_list = [x.strip() for x in f.readlines()]
+
+ f.close()
+
+ j = 1
+ for i in range(1, 100):
+ c = Contact()
+ c.name = get_random_name(names_list, random.randrange(2, 6))
+ c.address = "Street " + names_list[random.randrange(0, len(names_list))].decode(
+ "utf-8"
+ )
+ c.personal_phone = random.randrange(1111111, 9999999)
+ c.personal_celphone = random.randrange(1111111, 9999999)
+ c.contact_group_id = random.randrange(1, 4)
+ c.gender_id = random.randrange(1, 3)
+ year = random.choice(range(1900, 2012))
+ month = random.choice(range(1, 12))
+ day = random.choice(range(1, 28))
+ c.birthday = datetime(year, month, day)
+ c.changed_on = datetime.now()
+ c.created_on = datetime.now()
+ if j == 1:
+ j += 1
+ _user = user1
+ elif j == 2:
+ j += 1
+ _user = user2
+ else:
+ j = 1
+ _user = user3
+ c.created_by = _user
+ c.changed_by = _user
+
+ db.session.add(c)
+ try:
+ db.session.commit()
+ print("inserted", c)
+ except Exception as e:
+ log.error("Contact creation error: %s", e)
+ db.session.rollback()
+
+with app.app_context():
+ upsert_test_data()
diff --git a/examples/factoryapp/NAMES.DIC b/examples/factoryapp/NAMES.DIC
deleted file mode 100644
index b7266ad644..0000000000
--- a/examples/factoryapp/NAMES.DIC
+++ /dev/null
@@ -1,27607 +0,0 @@
-aaccf
-aalders
-aaren
-aarika
-aaron
-aartjan
-aasen
-ab
-abacus
-abadines
-abagael
-abagail
-abahri
-abasolo
-abazari
-abba
-abbai
-abbas
-abbatant
-abbate
-abbe
-abbey
-abbi
-abbie
-abbot
-abbott
-abby
-abbye
-abdalla
-abdallah
-abdel
-abdel-az
-abdel-ma
-abdel-ra
-abdel-sa
-abdelazi
-abdelmad
-abdelrah
-abdelran
-abdelsal
-abderrao
-abderraz
-abdi
-abdo
-abdollah
-abdolrah
-abdou
-abdrani
-abdul
-abdul-az
-abdul-ma
-abdul-no
-abdul-ra
-abdul-sa
-abdulazi
-abdulla
-abdullah
-abdulmad
-abdulrah
-abdulran
-abdulsal
-abdur
-abe
-abedi
-abel
-abelard
-abell
-abella
-abellera
-abello
-abelow
-abernath
-aberneth
-abeu
-abey
-abhay
-abhijit
-abi-aad
-abid
-abie
-abigael
-abigail
-abigale
-abike
-abner
-abou-arr
-abou-ezz
-aboul-ma
-aboussou
-abovyan
-abra
-abraham
-abrahan
-abrahim
-abram
-abramo
-abrams
-abran
-abrar
-absi
-abu
-abul
-access
-accounti
-acelvari
-achal
-achamma
-acharyya
-achcar
-achille
-achkar
-achmad
-ackaouy
-acker
-acklin
-ackwood
-acree
-acres
-acs
-action
-actionte
-acton
-aczel
-ad
-ada
-adah
-adahm
-adair
-adal
-adaline
-adam
-adamczyk
-adamkows
-adamo
-adamowic
-adams
-adamski
-adamson
-adamyk
-adan
-adara
-adcock
-adcox
-adda
-addetia
-addi
-addia
-addie
-addison
-addona
-addons
-addy
-ade
-adebayo
-adel
-adela
-adelaida
-adelaide
-adelbert
-adele
-adelheid
-adelia
-adelice
-adelina
-adelind
-adeline
-adella
-adelle
-adena
-adeney
-adeniyi
-aderhold
-adey
-adham
-adhem
-adi
-adiana
-adib
-adie
-adil
-adimari
-adina
-aditya
-adjangba
-adkinson
-adlai
-adler
-adlin
-admad
-admin
-admin-mt
-administ
-adnan
-adnane
-ado
-adolf
-adolfie
-adolph
-adolphe
-adolpho
-adolphus
-adora
-adore
-adoree
-adornato
-adorne
-adorno
-adrea
-adri
-adria
-adriaan
-adriaans
-adriaens
-adrian
-adriana
-adriane
-adrianna
-adrianne
-adriano
-adrie
-adrien
-adriena
-adriene
-adrienne
-adrion
-advance
-ae
-aeinstei
-aeriel
-aeriela
-aeriell
-aery
-afaq
-afif
-afke
-afkham
-afkham-e
-afo
-afton
-afzal
-ag
-agace
-agam
-agarwal
-agata
-agatha
-agathe
-agen
-agenia
-aggarwal
-aggi
-aggie
-aggregat
-aggy
-aghi
-aghili
-agily
-agna
-agnar
-agnella
-agnes
-agnese
-agnesse
-agneta
-agnew
-agnihotr
-agnola
-agostino
-agosto
-agretha
-aguiar
-aguie
-aguilar
-aguinsky
-aguirre
-aguistin
-aguste
-agustin
-ahad
-aharon
-ahbeng
-ahdieh
-ahlberg
-ahlers
-ahluwali
-ahmad
-ahmadi
-ahmed
-ahmet
-ahn
-ai-mei
-ai-tsung
-aida
-aidan
-aidarous
-aideen
-aiden
-aigneis
-aihua
-aija
-aiken
-aila
-ailbert
-aile
-ailee
-aileen
-ailene
-ailey
-aili
-ailina
-ailis
-ailsun
-ailyn
-aiman
-aime
-aimee
-aimei
-aimil
-aimone
-aindrea
-ainslee
-ainsley
-ainslie
-ainswort
-air
-aisha
-aitken
-aitsung
-ajay
-ajersch
-ajeya
-ajit
-ajmal
-ajoy
-akai
-akbar
-akbas
-akemi
-akens
-akers
-akhavan
-akhil
-akhtar
-akihiko
-akim
-akin
-akinniyi
-akio
-akira
-akita
-akkerman
-akram
-akrawi
-aksel
-akshay
-akyurekl
-al
-al bud
-al-basi
-al-tarab
-aladanga
-aladin
-alain
-alaine
-alair
-alameda
-alan
-alana
-alanah
-aland
-alane
-alanis
-alanna
-alano
-alanoly
-alanson
-alanturi
-alard
-alaric
-alary
-alasdair
-alastair
-alasteir
-alaster
-alavi
-alayne
-alb
-alba
-albea
-albeon
-alber
-alberik
-albers
-alberse
-albert
-alberta
-albertei
-albertin
-alberto
-alberts
-alberty
-albery
-albie
-albina
-albiston
-albrecht
-albright
-albritto
-albtenta
-alburger
-alcantar
-alcindor
-alcock
-alcott
-alden
-alderdic
-aldhizer
-aldin
-aldis
-aldo
-aldon
-aldous
-aldric
-aldrich
-aldridge
-aldus
-aldwin
-aldyn
-alec
-alecia
-aleda
-aleece
-aleen
-alegre
-aleinste
-alejandr
-alejoa
-aleke
-aleksand
-aleksic
-alena
-alene
-aleong
-alese
-alessand
-aleta
-alethea
-alev
-alex
-alexa
-alexan
-alexande
-alexandr
-alexei
-alexi
-alexia
-alexina
-alexine
-alexio
-alexis
-alexon
-alexson
-alf
-alfaro
-alfi
-alfie
-alfons
-alfonse
-alfonso
-alfonzo
-alford
-alfred
-alfreda
-alfredo
-alfy
-algernon
-algie
-algimant
-algood
-alguire
-ali
-alia
-alic
-alica
-alice
-alicea
-alicia
-alick
-alida
-alidia
-alidina
-alie
-alika
-alikee
-alikhan
-alina
-aline
-alink
-alioto
-alireza
-alis
-alisa
-alisande
-alisha
-alison
-alissa
-alistair
-alister
-alisun
-alix
-aliza
-alka
-alkarim
-alkire
-all the
-alla
-allahdin
-allahyar
-allam
-allaman
-allan
-allard
-allaway
-allaye-c
-allayne
-alleen
-allegra
-allen
-allene
-alles
-alleva
-alley
-alleyn
-alleyne
-allgood
-alli
-allianor
-allida
-allie
-allin
-allina
-allis
-allisan
-allison
-allissa
-allister
-allistir
-allix
-allman
-allsun
-allwork
-allx
-ally
-allyce
-allyn
-allys
-allyson
-alma
-almeda
-almeddah
-almena
-almendar
-almeria
-almerind
-almeta
-almira
-almire
-almon
-alms
-alnoor
-aloi
-aloin
-aloise
-aloisia
-alok
-alomari
-alon
-alonso
-alonzo
-alora
-aloysia
-aloysius
-alp
-alparsla
-alperovi
-alphard
-alphen
-alphonse
-alphonso
-alpine
-alred
-alric
-alsaleh
-alshabou
-alsop
-alspaugh
-alstine
-alston
-alswiti
-alta
-altadonn
-altay
-alteen
-altekar
-alten
-alternat
-althea
-altherr
-alting-m
-altman
-altmann
-alturing
-aluin
-aluino
-alva
-alvan
-alvarez
-alvaro
-alvean
-alvera
-alverta
-alvi
-alvie
-alvin
-alvina
-alvinia
-alvino
-alvira
-alvis
-alvy
-alwin
-alwyn
-aly
-alyce
-alyda
-alynn
-alyosha
-alyre
-alys
-alysa
-alyse
-alysia
-alyson
-alyss
-alyssa
-alzofon
-amabel
-amabelle
-amadeus
-amalea
-amalee
-amaleta
-amalia
-amalie
-amalita
-amalle
-amalu
-amand
-amanda
-amandi
-amandie
-amandip
-amando
-amandy
-amant
-amar
-amara
-amarendr
-amargo
-amarjit
-amarsi
-amarth
-amata
-amato
-amavisca
-ambach
-amber
-amberly
-amble
-ambler
-ambroise
-ambros
-ambrose
-ambrosi
-ambrosio
-ambrosiu
-ambur
-amby
-amda
-ame
-amedeo
-ameen
-amelia
-amelie
-amelina
-ameline
-amelita
-amelkar
-amenta
-america
-amerigo
-amery
-amgad
-ami
-amick
-amie
-amigo
-amii
-amil
-amin
-amina
-amini
-aminuddi
-aminzade
-amiot
-amir
-amit
-amitabh
-amitava
-amitie
-amity
-amiy
-amjad
-amlani
-ammamari
-ammar
-ammiel
-amnish
-amnon
-amol
-amorim
-amory
-amos
-amott
-amour
-amouzgar
-amparo
-amr
-amrik
-amril
-amrish
-amstutz
-amu
-amundsen
-amy
-amye
-an
-an-bin
-an-son
-ana
-anabal
-anabel
-anabella
-anabelle
-anader
-analiese
-analise
-anallese
-anallise
-anamary
-anand
-ananda
-anandaro
-ananmala
-anant
-ananth
-anantha
-ananyo
-anar
-anastasi
-anastass
-anatol
-anatola
-anatole
-anatoli
-anatollo
-anatoly
-anaya
-anbin
-ancel
-ancell
-anchia
-anconeta
-anctil
-anda
-andaree
-andee
-andeee
-ander
-anderea
-anderer
-anders
-andersen
-anderson
-anderton
-andi
-andie
-andiyono
-andonis
-andra
-andrade
-andras
-andrassy
-andre
-andrea
-andreana
-andreas
-andrease
-andreato
-andree
-andrei
-andrej
-andrejs
-andres
-andress
-andrew
-andrews
-andrey
-andria
-andriana
-andric
-andries
-andriett
-andris
-andromac
-andros
-andrukat
-andrus
-andrusia
-andruzzi
-andrzej
-andy
-aneeta
-aneko
-anestass
-anet
-anett
-anetta
-anette
-ange
-angel
-angela
-angelako
-angele
-angeles
-angeli
-angelia
-angelica
-angelico
-angelie
-angeliek
-angelika
-angelina
-angeline
-angeliqu
-angelita
-angell
-angelle
-angelo
-angerer
-angermey
-angie
-angil
-anglin
-angobald
-angus
-angustia
-angvall
-angy
-anh
-anhorn
-anhtuan
-ania
-anibal
-anica
-anika
-aniko
-anil
-anila
-anindita
-anirban
-anissa
-anita
-anitra
-aniya
-anja
-anjali
-anjanett
-anje
-anjela
-anjli
-anke
-anker
-anki
-ankie
-ankur
-anky
-ann
-ann-hoon
-ann-lorr
-ann-mari
-anna
-anna-dia
-anna-mar
-annab
-annabal
-annabel
-annabela
-annabell
-annable
-annadian
-annalea
-annalee
-annalies
-annalisa
-annalise
-annamari
-annamay
-annarbor
-annard
-annas
-anne
-anne mar
-anne-cor
-anne-lis
-anne-mar
-annecori
-anneke
-annelies
-annelise
-annemari
-annemie
-annet
-annetta
-annette
-anni
-annibale
-annice
-annick
-annie
-annika
-annis
-annise
-annissa
-annmaria
-annmarie
-annnora
-annora
-annunzia
-anny
-anolik
-anoop
-anouk
-anoushir
-ans
-ansar
-ansel
-ansell
-anselm
-anselma
-anshel
-ansley
-anson
-ansorger
-anstead
-anstett
-anstice
-ansys
-antai
-antanas
-antanina
-anthe
-anthea
-anthia
-anthiath
-anthonis
-anthony
-antin
-antinucc
-antkowia
-antle
-antoft
-antoine
-antoinet
-anton
-anton-ph
-antonare
-antone
-antonell
-antonett
-antoni
-antonia
-antonie
-antoniet
-antonin
-antonina
-antonino
-antonio
-antonios
-antonius
-antons
-antony
-antti
-antuan
-antworth
-anu
-anup
-anupam
-anurag
-anver
-anvradha
-anwar
-any
-anya
-anzarout
-anzures
-aoki
-aparicio
-aparna
-aphrodit
-api-ecm
-apiruksa
-apollo
-apostolo
-appell
-appenzel
-applebau
-applegar
-appleton
-appleyar
-applicat
-applicon
-appoloni
-appuglie
-apriel
-april
-aprilett
-aprill
-apryle
-apter
-apurba
-apurve
-ara
-arabadji
-arabel
-arabela
-arabele
-arabella
-arabelle
-aragon
-aragorn
-arai
-araldo
-aramideh
-arana
-arash
-aravamud
-arbel
-arbenz
-arbo
-arbuckle
-arch
-archaimb
-archamba
-archana
-archer
-archibal
-archibol
-archie
-archy
-arco
-arcouet
-ard
-arda
-ardath
-ardavan
-ardeen
-ardelia
-ardelis
-ardella
-ardelle
-arden
-ardene
-ardenia
-ardie
-ardiel
-ardine
-ardis
-ardisj
-ardith
-ardizone
-ardoin
-ardra
-ardyce
-ardys
-ardyth
-aref
-areg
-arel
-arellano
-arend
-arens
-ares
-aretha
-areu
-argento
-argyriou
-ari
-ariadne
-ariana
-arias
-aribindi
-aric
-aridatha
-arie
-ariel
-ariela
-ariella
-arielle
-arif
-arin
-arina
-arine
-ario
-aris
-aristide
-aristotl
-arjun
-arkady
-arkestei
-arko
-arlan
-arlana
-arlee
-arleen
-arlen
-arlena
-arlene
-arles
-arleta
-arlette
-arley
-arleyne
-arlie
-arliene
-arlin
-arlina
-arlinda
-arline
-arluene
-arly
-arlyn
-arlyne
-arman
-armand
-armande
-armando
-armbrust
-armelia
-armelle
-armenaki
-armenta
-armentro
-armes
-armida
-armijo
-armin
-armine
-armitage
-armolavi
-armour
-armstead
-armstron
-arn
-arnaldo
-arnauld
-arnav
-arne
-arnett
-arney
-arni
-arnie
-arnis
-arno
-arnold
-arnoldo
-arnon
-arnone
-arnott
-arnuad
-arny
-aroldo
-aron
-arona
-aronovic
-aronson
-aronstam
-arora
-arpin
-arpita
-arrgh
-arri
-arro
-arron
-arsavir
-arsena
-arsenaul
-arsene
-arseneau
-arshad
-art
-artair
-arte
-artemas
-artemis
-artemus
-arther
-arthur
-artie
-artiller
-arto
-artola
-arts
-artspssa
-artur
-arturo
-artus
-artuso
-arty
-artzer
-arul
-arumugam
-arun
-aruna
-arunacha
-arv
-arvid
-arvie
-arvin
-arvind
-arvy
-arwakhi
-arya
-aryavong
-aryn
-arzu
-asa
-asad
-asan
-asawa
-asbill
-asbjorn
-asce
-ascott
-asdel
-ase
-asfazado
-asghar
-asgharza
-ash
-ashalata
-ashar
-ashbee
-ashberry
-ashbey
-ashby
-ashdown
-ashely
-asher
-ashfaq
-ashford
-ashia
-ashien
-ashil
-ashima
-ashis
-ashla
-ashlan
-ashlee
-ashleigh
-ashlen
-ashley
-ashli
-ashlie
-ashlin
-ashly
-ashmore
-ashok
-ashoka
-ashrae
-ashraf
-ashruf
-ashton
-ashu
-ashurkof
-ashutosh
-ashwin
-ashwood-
-ashworth
-asia
-asif
-asing
-asistore
-askins
-askold
-asmar
-asme
-asnat
-asops
-asprer
-asquin
-assaad
-assaf
-asselin
-assenza
-assistan
-associat
-astaire
-astalos
-astle
-astley
-aston
-astor
-astorino
-astra
-astrid
-astrix
-aswini
-atalanta
-atalla
-atcheson
-atchison
-atef
-athalie
-athanasi
-athanass
-athar
-athena
-athene
-athony
-athwal
-atindra
-atique
-atkins
-atkinson
-atl
-atl-sale
-atlanta
-atlante
-atlantic
-atmane
-atoui
-atp
-atpco
-atprs
-atputhar
-atrc
-atsuo
-atsushi
-atta
-attaie
-attanasi
-attarchi
-attard
-attaway
-atte
-attenbor
-atteridg
-attfield
-attilio
-attilla
-atul
-atwater
-atwell
-atwell-b
-au
-au-yang
-au-yeung
-aube
-auberon
-aubert
-auberta
-aubin
-aubine
-aubree
-aubrette
-aubrey
-aubrie
-aubry
-aubuchon
-aucoin
-aud
-audet
-audette
-audi
-audie
-audivox
-audra
-audre
-audrean
-audrey
-audrie
-audrienn
-audry
-audrye
-audy
-auerbach
-augeri
-augie
-august
-augusta
-auguste
-augustin
-augusto
-augustus
-augy
-auker
-aula
-aulakh
-auld
-ault
-aumoine
-aundrea
-aunon
-aura
-aurea
-aurel
-aurelea
-aurelia
-aurelie
-aurelius
-auria
-aurie
-aurilia
-auriol
-aurlie
-auro
-auroora
-aurora
-aurore
-aurthur
-ausley
-austen
-austin
-austina
-austine
-australi
-auth
-auto
-auton
-autoquot
-auyeung
-ava
-avard
-avaz
-ave
-avedis
-aveline
-avellane
-averardo
-averell
-averett
-averette
-averil
-averill
-aversa
-avery
-averyl
-avictor
-avie
-avigdor
-avilez
-avinash
-avirett
-avis
-aviva
-avivah
-avra
-avram
-avril
-avrit
-avrom
-avtar
-awadalla
-awadia
-awan
-awano
-ax
-axberg
-axe
-axel
-ayako
-ayandeh
-ayao
-ayaz
-aybars
-ayda
-aydin
-ayers
-ayles
-aylmar
-aylmer
-aylwin
-aymer
-ayn
-ayodele
-ayotte
-ayoubzad
-ayoup
-ayrault
-ayre
-ayres
-ayscue
-ayse
-ayukawa
-aywie
-ayyuce
-azad
-azam
-azar
-azari
-azarshah
-azer
-azevedo
-azhar
-azim
-aziz
-azizuddi
-azmak
-azmeena
-azmina
-azra
-azuma
-azzuolo
-ba
-baab
-baader
-bab
-baba
-bababunm
-babak
-babalola
-babar
-babara
-babasaki
-babatund
-babb
-babbage
-babbette
-babbie
-babcock
-baber
-babette
-babin
-babineau
-babione
-babita
-babs
-babu
-baby
-babyak
-baccari
-bacchioc
-bacchus
-bacciagl
-bach
-bachecon
-bachelu
-bachewic
-bachitta
-bachmann
-bachner
-bachynsk
-backshal
-bacon
-baddeley
-badelt
-badenoch
-badger
-badjari
-badmingt
-badowski
-badri
-badza
-bae
-baenzige
-baer
-baerg
-baets
-bagetako
-bagg
-baggerma
-baghdadi
-bagi
-bagnato
-bagshaw
-bagwell
-baha
-bahaa
-bahadir
-baheya
-bahgat
-bahia
-bahl
-bahman
-bahoric
-bahram
-bail
-bailetti
-bailey
-bailie
-baillarg
-baillie
-bailloux
-baily
-bain
-bainer
-baines
-bains
-bainton
-baird
-bajada
-bajpeyi
-bakay
-bakel
-baker
-baker-gr
-bakhach
-bakkum
-bakoury
-bal
-balaban
-balabani
-balachan
-balaji
-balakris
-balanger
-balascak
-balasing
-balbir
-balcom
-bald
-balderst
-baldev
-baldock
-baldridg
-balduin
-baldwin
-bale
-bales
-balfour
-balgalvi
-baljinde
-balkenho
-balkisso
-ballanti
-ballard
-ballarte
-ballinge
-ballios
-ballou
-ballyk
-balmer
-balog
-balogh
-balraj
-balsas
-balser
-balter
-baltodan
-balutis
-balvinde
-balwinde
-bam
-bambach
-bambang
-bambi
-bambie
-bamby
-bame
-bamfo
-ban
-banaei
-bancroft
-bandel
-banens
-banerd
-banerjee
-banez
-banfalvi
-bang
-bangert
-bangia
-banh
-banigan
-banik
-bank
-bankhead
-banks
-banky
-bannai
-bannan
-bannard
-banniste
-bansal
-banu
-banville
-bao
-baominh
-baquero
-bar
-barabash
-baragar
-barakat
-baran
-barb
-barba
-barbabas
-barbabra
-barbara
-barbara-
-barbaraa
-barbary
-barbe
-barbeau
-barbee
-barberen
-barbette
-barbey
-barbi
-barbie
-barbour
-barbra
-barby
-barclay
-barcza
-bard
-barde
-bardsley
-bareham
-barel
-barenie
-barentse
-barfield
-barham
-bari
-baribeau
-baril
-baris
-barker
-barkhous
-barkley
-barkwill
-barlas
-barlow
-barn
-barnabas
-barnabe
-barnaby
-barnard
-barnebas
-barnes
-barnett
-barney
-barnhard
-barnhart
-barnhill
-barnhous
-barnicke
-barnie
-barnwell
-barny
-barolet
-baron
-barr
-barraclo
-barrass
-barrell
-barret
-barrett
-barreyre
-barri
-barrie
-barrient
-barriere
-barringt
-barrio
-barris
-barritt
-barron
-barrows
-barry
-barsch
-barsha
-barsky
-barsony
-barstow
-barszcze
-bart
-bartel
-barth
-barthel
-barthole
-bartholo
-bartie
-bartkows
-bartlet
-bartlett
-bartley
-bartolem
-bartolom
-bartoluc
-barton
-bartosze
-bartra
-bartram
-bartush
-barty
-bartz
-baruk
-barwikow
-bary
-baryram
-basa
-basco
-bascombe
-base
-basheer
-bashton
-bashyam
-basia
-basil
-basile
-basilio
-basilius
-basinger
-baskaran
-baskervi
-baskin
-basladyn
-basmadji
-basnett
-bason
-basrur
-bassam
-bassem
-basser
-bassett
-bassigna
-bassil
-basta
-bastani
-bastarac
-bastian
-bastien
-basu
-bat
-batcheld
-batchelo
-batchoun
-bateman
-bates
-batholom
-bathrick
-bathsheb
-batsheva
-batson
-battersb
-battersh
-battisto
-batura
-baudais
-baudoin
-bauer
-baughan
-baugnon
-baulch
-baum
-baumann
-baumberg
-baumert
-bautista
-bawek
-bawn
-bax
-baxie
-baxter
-baxy
-bay
-bayard
-bayer
-bayerkoh
-bayless
-bayley
-bayly
-bayne
-baynes
-bayno
-bayola
-bayrakta
-bays
-bazarjan
-bazemore
-bazerghi
-bazerman
-bazik
-baziuk
-bcs
-bcspatch
-bea
-beach
-beadley
-beagley
-beal
-beale
-beall
-bealle
-beals
-beana
-bear
-beardmor
-bearnard
-bears
-beasley
-beata
-beate
-beato
-beaton
-beatrice
-beatrisa
-beatrix
-beatriz
-beattie
-beattie-
-beatty
-beaty
-beau
-beaubien
-beaucair
-beauchai
-beaucham
-beauchem
-beaudet
-beaudett
-beaudin
-beaudoin
-beaudry
-beaufort
-beaule
-beaulieu
-beaumier
-beaumont
-beaupre
-beaurega
-beausejo
-beauvais
-beavingt
-beavis
-beb
-bebber
-bebe
-bebee
-becan
-becca
-bechara
-bechtel
-beck
-becka
-becke
-becker
-beckett
-beckham
-becki
-beckie
-beckman
-beckstea
-beckwith
-becky
-beconovi
-becquart
-bedard
-bede
-bedford
-bedi
-bedient
-bedlingt
-bednar
-bedoya
-bedrosia
-bee
-beebe
-beeby
-beecker
-beehler
-beekman
-beeman
-beerkens
-beers
-bees
-beeston
-beethove
-beeton
-befanis
-beffert
-beggs
-begley
-begum
-behdad
-behlen
-behler
-behm
-behnam
-behrens
-behroozi
-behrouz
-behzad
-beil
-beilin
-beilul
-beine
-beique
-beisel
-beitinja
-beitris
-bejar
-bekkedam
-bekki
-bektas
-bel
-bela
-belair
-belaire
-beland
-belanger
-belboul
-belcher
-belcourt
-belen
-belford
-belia
-belich
-belicia
-belinda
-belir
-belisle
-belissa
-belita
-belk
-bell
-bella
-bellanca
-belle
-bellefeu
-bellehum
-bellevil
-bellew
-belley
-bellina
-bellingt
-bellis
-bello
-bellosa
-belmont
-belohoub
-belrango
-belson
-belton
-beltran
-belva
-belvia
-belyaev
-belzile
-bemiller
-bemis
-ben
-ben-isha
-benabdal
-benasso
-benavide
-benay
-benchimo
-bencia
-benda
-bender
-bendick
-bendicty
-bendite
-bendix
-beneda
-benedek
-benedett
-benedick
-benedict
-benedikt
-benefiel
-benefits
-beneteau
-benetta
-benfield
-benge
-bengt
-bengtson
-benham
-beniamin
-beninger
-benita
-benito
-benjamen
-benjamin
-benjavan
-benjes
-benji
-benjie
-benjy
-benn
-bennatt
-benne
-bennefel
-benner
-bennesa
-bennet
-bennett
-benni
-bennie
-benning
-bennison
-benny
-benoit
-benoite
-benschop
-benski
-benson
-bent
-benthem
-benthin
-bentlee
-bentley
-bento
-benton
-benwell
-benyamin
-benyon
-benzick
-benzie
-beom-sah
-beomsahn
-beorn
-beowulf
-bep
-beppie
-ber
-beranger
-berek
-berenbac
-berenice
-berenz
-beresfor
-beresnik
-beret
-bereza
-bergado
-berger
-bergeron
-bergeson
-berget
-bergland
-bergman
-bergmann
-bergquis
-bergsma
-bergstro
-bergwerf
-berhane
-beriault
-berk
-berke
-berkeley
-berkie
-berkley
-berkly
-berknet
-berky
-berman
-bermel
-bern
-berna
-bernaden
-bernadet
-bernadin
-bernard
-bernardi
-bernardo
-bernarr
-bernd
-berndt
-berne
-berneche
-bernelle
-berneta
-bernete
-bernetta
-bernette
-bernhard
-berni
-bernice
-bernie
-berniece
-bernier
-berning
-bernita
-berno
-bernstei
-berny
-berri
-berrie
-berrin
-berrisfo
-berro
-berry
-berryhil
-bert
-berta
-berte
-berteau
-bertha
-berthe
-berthele
-berti
-bertie
-bertigno
-bertina
-bertine
-bertini
-bertolin
-berton
-bertram
-bertrand
-berty
-berube
-beryl
-beryle
-beshai
-besharah
-beshir
-besime
-besnier
-bess
-besse
-bessel
-bessell
-bessette
-bessey
-bessie
-besson
-bessuill
-bessy
-bestavro
-beswick
-betcher
-beth
-bethanne
-bethany
-bethena
-bethina
-bethune
-beton
-betsey
-betsill
-betsy
-betta
-bettadap
-bette
-bette-an
-betteann
-betterle
-betters
-betti
-bettie
-bettina
-bettine
-bettink
-betts
-betty
-betty-an
-bettye
-beulah
-beun
-beuren
-bev
-bevan
-beveridg
-beverie
-beverlee
-beverley
-beverlie
-beverly
-bevin
-bevingto
-bevis
-bevon
-bevvy
-bevyn
-beware.
-beygui
-beymer
-bezanson
-bezdel
-beznowsk
-bhagvat
-bhal
-bhandari
-bhanu
-bharadwa
-bharat
-bhardwaj
-bhasin
-bhaskar
-bhatia
-bhatt
-bhattach
-bhatti
-bhavani
-bhoday
-bhullar
-bhupendr
-bhupinde
-bhusan
-bi-jun
-bi-shiou
-biage
-bialek
-bialkeni
-biamonte
-bianca
-bianchi
-bianka
-biard
-bibbie
-bibby
-bibbye
-bibekana
-bibi
-bible
-bibr
-bice
-bickford
-bidc
-biddie
-biddy
-bidetti
-bidget
-bidyut
-biederma
-biegaj
-biel
-bielan
-bielat
-bielby
-bielecki
-bielejes
-bienek
-bienia
-bierbrie
-bierman
-biermann
-biersach
-bieszcza
-bigelow
-biggers
-biggerst
-biggs
-bigley
-bigras
-bihari
-bihl
-bijan
-bijjani
-bijman
-bijons
-bijun
-bil
-bilal
-bilanski
-bili
-bill
-billard
-billi
-billie
-billing
-billingh
-billotea
-billy
-billye
-bilodeau
-bilovus
-bilsboro
-bilton
-bimini
-bin
-bina
-binda
-binder
-bindi
-binette
-bing
-binggeli
-bingham
-bingley
-bingwu
-binh
-bink
-binkley
-binky
-binner
-binni
-binnie
-binningt
-binny
-bins
-biomecha
-biomed
-bipin
-biplab
-bir
-biray
-birch
-bird
-birdie
-birendra
-birgit
-birgitta
-birgitte
-birk
-birkett
-birks
-birkwood
-birmingh
-biron
-birtch
-bisad
-bisch
-bishiou
-bishwa
-bishya
-bismark
-biss
-bissegge
-bissette
-bisson
-bissonne
-biswa
-biswajit
-bitar
-bittenbe
-bittman
-bitton
-bivens
-bizga
-bjorklun
-bjorn
-bjornson
-blaauw
-blackard
-blackbur
-blacker
-blackley
-blackloc
-blackman
-blacksha
-blackshi
-blackwel
-blackwoo
-bladon
-blaikloc
-blaine
-blair
-blaire
-blais
-blaise
-blake
-blake-kn
-blakelee
-blakeley
-blakemor
-blakesle
-blakey
-blakkolb
-blalock
-blanca
-blanca-s
-blancasi
-blanch
-blancha
-blanchar
-blanche
-blanchet
-blanco-a
-blander
-blane
-blankens
-blann
-blaschuk
-blasine
-blasing
-blasko
-blatherw
-blatt
-blau
-blauer
-blaufus
-blaylock
-blayne
-blazejew
-blazek
-blazer
-bleile
-blenk
-blenkarn
-blesi
-blethen
-bleuer
-blevins
-blezard
-blidy
-blimkie
-blinn
-blinni
-blinnie
-blinny
-bliss
-blisse
-blissett
-blithe
-blodgett
-bloedon
-bloemker
-blois
-blomquis
-blondell
-blondie
-blondy
-bloodwor
-blostein
-blouin
-blount
-bluethne
-blum
-blumenfe
-blumer
-bluschke
-bly
-blyskal
-blyszcza
-blythe
-bmethods
-bnr
-bnrecad
-bnrinfo
-bnrlsi
-bnrsport
-bnrtor
-bo
-bo-ping
-boal
-boaman
-boarder
-boase
-boatwrig
-bob
-bobak
-bobar
-bobb
-bobbe
-bobbee
-bobbette
-bobbi
-bobbie
-bobbitt
-bobby
-bobbye
-bobette
-bobina
-bobine
-bobinett
-boccali
-bockaj
-bocklage
-bocservi
-boddevel
-boden
-bodford
-bodin
-bodkin
-bodnar
-bodo
-boeck
-boecke
-boehlke
-boehms
-boen
-boer
-boersma
-boeyen
-bogal
-bogart
-bogdan
-bogert
-bogey
-boggan
-boggia
-boggild
-boggs
-bogumill
-boguslaw
-bohacek
-bohanan
-bohannon
-bohdan
-bohn
-bohner
-bohyun
-boigie
-boileau
-boily
-boinnard
-bois
-boisseau
-boisset
-boisvert
-boivin
-bojeck
-bokanovi
-bokij
-bokish
-boland
-bolding
-bolduc
-boleda
-bolen
-boles
-bolgos
-bolio
-bolli
-bolly
-bolon
-bolouri
-bolsinge
-bolton
-bolzon
-bomba
-bombardi
-bommakan
-bommer
-bomstein
-bon
-bonahoom
-bond
-bondie
-bondon
-bonduran
-bondy
-bone
-bonfanti
-bongers
-boniface
-bonita
-bonn
-bonnar
-bonneau
-bonnee
-bonnefoy
-bonnell
-bonner
-bonnevil
-bonney
-bonni
-bonnibel
-bonnie
-bonnin
-bonny
-bono
-boocock
-booker
-booking
-bookings
-boon-sio
-boone
-boonie
-boonphet
-boonsion
-boony
-boorne
-boorse
-boos
-boose
-boot
-boote
-booth
-boothe
-boothroy
-bophal
-boping
-bopp
-boppana
-bor-wen
-bora
-boraie
-boray
-borcic
-bord
-bordage
-borden
-bordie
-bordin
-bordy
-borek
-borel
-borg
-borgia
-borha
-boris
-borivoje
-borkowic
-borman
-borodajl
-borojevi
-borosch
-borosh
-boroski
-boroughs
-borowiec
-borozny
-borrelli
-borsa
-borsato
-borson
-bortenst
-borthwic
-bortolus
-borum
-boruslaw
-borwen
-borza
-borzic
-bosch
-boschin
-boscio
-bosco
-bose
-bosiljev
-bosiljka
-bosko
-bosnich
-bosnyak
-bossa
-bossert
-bossett
-bossler
-bostelma
-bostock
-boswell
-boswick
-bosworth
-bosy
-bot
-bothwell
-bott
-botti
-botting
-bottis
-botto
-bottomle
-bottoms
-botyrius
-bouchard
-boucher
-boucouri
-boudin
-boudreau
-bouffard
-bouick
-boulais
-boulay
-bouleric
-boulos
-boult
-bounds
-bour
-bourahla
-bourbonn
-bourcier
-bourdeau
-bourdign
-bourdin
-bouret
-bourgaiz
-bourgaul
-bourget
-bourgon
-bourguig
-bourk
-bourke
-bourland
-bourlet
-bourne
-bouroncl
-bourque
-bourret
-bousfiel
-boutilie
-boutin
-boutniko
-boutot
-bovat
-bovee
-bovenize
-bovey
-bowab
-bowcock
-bowden
-bowen
-bowens
-bower
-bowers
-bowes
-bowick
-bowie
-bowler
-bowles
-bowling
-bowser
-bowyer
-boy
-boyachek
-boyajian
-boyce
-boycey
-boycie
-boyd
-boye
-boyea
-boyer
-boyes
-boylan
-boyle
-boynton
-boz
-bozeman
-bozicevi
-bqb
-braaksma
-brabant
-brabec
-bracewel
-brackin
-brackley
-bracy
-brad
-bradan
-bradbury
-bradd
-braddock
-braddy
-brade
-bradee
-braden
-bradford
-brading
-bradlee
-bradley
-bradlow
-bradly
-bradnels
-bradney
-bradshaw
-brady
-bradyhou
-bragado
-braganza
-bragg
-braginet
-braham
-brahim
-brahmana
-brahms
-brailey
-brain
-brait
-brajesh
-bram
-brambley
-bramlett
-bran
-brana
-branchau
-brand
-brandais
-brande
-brandea
-brandel
-branden
-brander
-brandi
-brandice
-brandie
-brandise
-brandon
-brandsen
-brandsta
-brandt
-brandtr
-brandvol
-brandy
-brandyn
-branham
-brann
-brannan
-brannen
-brannick
-brannon
-brans
-branscom
-brant
-brantley
-brar
-brashear
-brasingt
-brassard
-brassell
-brassem
-brasset
-brasunas
-brathwai
-bratten
-brauer
-brault
-braum
-braun
-braunsti
-braverma
-brawley
-brazeau
-breanne
-brear
-brearley
-breault
-brechtje
-bredeck
-bredfeld
-bree
-breedlov
-breena
-bregitte
-breglec
-brehm
-breisch
-breiten
-brekel
-brel
-bremner
-bren
-brena
-brend
-brenda
-brendan
-brenden
-brender
-brendin
-brendis
-brendon
-brenn
-brenna
-brennan
-brennand
-brennen
-brent
-brentley
-brenton
-breon
-brese
-bresee
-breslin
-bresnaha
-bresnan
-bress
-bret
-breton
-brett
-breuer
-brevard
-brew
-brewer
-brewster
-brewton
-bria
-brian
-briana
-brianna
-brianne
-briano
-briant
-briante
-briard
-brice
-brichett
-brickey
-brickman
-bride
-briden
-bridenst
-bridge
-bridgefo
-bridges
-bridget
-bridgett
-bridgman
-bridie
-brieda
-briel
-brien
-brier
-briere
-brierley
-brietta
-brig
-brigg
-briggs
-brigham
-brightwe
-brigid
-brigida
-brigit
-brigitta
-brigitte
-brina
-brind'am
-brindley
-briner
-briney
-bringhur
-brinklow
-brinkman
-brinn
-brinna
-brintnel
-brinton
-briny
-brion
-brisby
-briseboi
-brissett
-brisson
-brit
-brita
-britman
-britney
-britni
-britt
-britta
-brittain
-brittan
-brittane
-brittani
-brittany
-britte
-britteny
-brittne
-brittney
-brittni
-britto
-britton
-brivet
-brivins
-brkich
-brnaba
-brnaby
-broadfoo
-broadhea
-broadwel
-broberg
-broca
-brocato
-brock
-brockhou
-brockie
-brockleb
-brockman
-brockmey
-brocksch
-brocky
-brod
-broddie
-broddy
-broderic
-broderse
-brodfueh
-brodgen
-brodie
-brodman
-brodowsk
-brody
-brogden
-brogdon
-brogley
-brok
-brokaw
-brombal
-bromley
-bron
-bronec
-bronk
-bronnie
-bronny
-bronson
-brook
-brooke
-brooker
-brookes
-brookhar
-brookhou
-brooks
-brooksba
-broome
-brophy
-broschuk
-brose
-brossard
-brossela
-brosso
-brost
-brostrom
-broten
-brothers
-brothert
-brough
-broughto
-brouille
-broulik
-broussar
-broussea
-brouthil
-brouwer
-brovont
-brower
-brown-gi
-browne
-brownfie
-browning
-brownlee
-brownlie
-brownrid
-brox
-broyles
-brubaker
-bruce
-brucie
-bruder
-bruhl
-bruin
-bruis
-bruketa
-brule
-brum
-brummitt
-brummund
-brunato
-bruncati
-bruneau
-brunel
-brunelle
-bruner
-bruner-u
-brunet
-brungard
-brunhild
-brunke
-brunner
-brunner-
-bruno
-brunoni
-brunstin
-brunton
-brushey
-bruxvoor
-bry
-bryan
-bryana
-bryant
-bryanty
-bryce
-brydges
-brydon
-bryenton
-bryn
-bryna
-brynn
-brynna
-brynne
-bryon
-brys
-bryttan
-bse
-bubak
-bubel
-buccella
-bucci
-buchan
-buchanan
-buchko
-buck
-buckalew
-buckhoff
-buckie
-buckingh
-buckley
-bucklin
-buckman
-buckner
-bucky
-buczek
-bud
-buda
-budd
-buddie
-buddy
-buder
-budhram
-budi
-budihard
-budimiro
-bue
-buechner
-buehler
-buettgen
-buffam
-buffett
-buffy
-buford
-bugajska
-bugajski
-buggie
-buhler
-buhr
-buhrkuhl
-bui
-building
-buiron
-bujold
-buker
-bukowski
-bukta
-buky
-bulan
-bulanda
-bulbrook
-bulengo
-bulent
-buley
-bulger
-bulifant
-bulitka
-bulka
-bulkovsh
-bullard
-bullas
-bullen
-bulletin
-bullett
-bullinge
-bullion
-bulman
-bulmanis
-bulmer
-bulz
-bumgarne
-bumstead
-bunce
-bundschu
-bunker
-bunn
-bunner
-bunni
-bunnie
-bunny
-bunting
-buntrock
-bunzey
-buratyns
-burbage
-burbidge
-burcew
-burch
-burchat
-burchby
-burdett
-burdette
-burdick
-burega
-burek
-burg
-burge
-burger
-burgess
-burgette
-burgi
-burgin
-burgwell
-burk
-burkard
-burke
-burkepil
-burkert
-burkett
-burkey
-burkhard
-burl
-burleigh
-burleson
-burlie
-burnaby
-burnage
-burnard
-burness
-burnet
-burnett
-burnette
-burney
-burnie
-burns
-burnside
-burr
-burrell
-burrowes
-burrows
-burrus
-burruss
-burt
-burtie
-burton
-burty
-burwell
-busby
-buscagli
-buscarin
-busch
-busche
-buschelm
-bushell
-bushnell
-bushnik
-business
-buskard
-buske
-buskens
-busko
-bussewit
-bussey
-buster
-bustillo
-busuttil
-butch
-butcher
-butner
-butta
-butterfi
-butters
-buttrey
-butts
-butvich
-buxton
-buzz
-buzzell
-buzzy
-bvworks
-by don o
-bycenko
-byczko
-bydeley
-byer
-byers
-byeungwo
-byk
-bykowy
-bylina
-byoung
-byoungin
-byram
-byran
-byrann
-byrd
-byrgesen
-byrl
-byrle
-byrne
-byrnes
-byrom
-byron
-byung
-byungyon
-cabaniss
-cabi
-cabot
-cabral
-cabras
-cabrera
-caceres
-cacha
-cachero
-cacilia
-cacilie
-cad
-cadd
-caddric
-cadeau
-cadieux
-cadshare
-cadtools
-cady
-cadzow
-cae
-caesar
-caffrey
-caffry
-cagatay
-caglar
-caglayan
-cahill
-cahra
-cai
-caie
-cain
-caine
-caines
-cairisti
-cairns
-caison
-caitlin
-caitrin
-cakarevi
-cal
-calahorr
-calc
-calcote
-calder
-caldwell
-cale
-caleb
-caleta
-calhoun
-caliboso
-calica
-calida
-calis
-calistro
-calkins
-calla
-callagha
-callahan
-callan
-callanan
-callean
-calleja
-callende
-callery
-calley
-calli
-callida
-callie
-callos
-calloway
-cally
-calmejan
-calmenso
-calow
-caltride
-calumet
-calv
-calva
-calvary
-calvin
-calypso
-calzaros
-cam
-camacho
-camala
-camblin
-cambre
-camel
-camel-to
-camella
-camellia
-cameron
-camet
-camey
-cami
-camie
-camila
-camile
-camilla
-camille
-camilluc
-camino
-camirand
-cammi
-cammie
-cammy
-campagna
-campanel
-campara
-campbell
-campeau
-camplone
-campo
-campos
-canada
-canadian
-canavan
-cancela
-candace
-candee
-candelar
-candi
-candice
-candida
-candide
-candie
-candis
-candra
-candy
-canete
-canfield
-cang
-cann
-cannatar
-cano
-cantlie
-cantrell
-cantwell
-canuel
-canute
-capelle
-capes
-capindal
-caple
-caplinge
-capobian
-capostag
-capozzi
-capps
-capretta
-caprice
-captives
-caputo
-car
-cara
-caralie
-carandan
-carbajal
-carbonar
-carbone
-carboni
-carbonne
-carce
-cardella
-carden
-cardozo
-cards
-care
-career
-careers
-carella
-caren
-carena
-caresa
-caresani
-caressa
-caresse
-carevic
-carew
-carey
-cargill
-cargnell
-cari
-caria
-caridad
-carie
-carignan
-caril
-carilyn
-carin
-carina
-carine
-cariotta
-carisa
-carissa
-carita
-caritta
-cark
-carkner
-carl
-carla
-carlberg
-carldata
-carle
-carlean
-carlebac
-carlee
-carleen
-carlen
-carlene
-carleton
-carlett
-carley
-carli
-carlie
-carlin
-carlina
-carline
-carling
-carlis
-carlisle
-carlita
-carlo
-carlock
-carlos
-carlota
-carlotta
-carlsen
-carlson
-carlton
-carly
-carlye
-carlyle
-carlyn
-carlynn
-carlynne
-carm
-carma
-carmel
-carmela
-carmelia
-carmelin
-carmelit
-carmella
-carmelle
-carmelo
-carmen
-carmenci
-carmicha
-carmina
-carmine
-carmita
-carmody
-carmon
-carmona
-carnegie
-carney
-carnogur
-carny
-caro
-carol
-carol-je
-carola
-carolan
-carolann
-carole
-carolee
-carolien
-carolin
-carolina
-caroline
-caroljea
-carolle
-carolus
-carolyn
-carolyne
-carolynn
-caron
-carpenti
-carpool
-carr
-carran
-carranza
-carree
-carri
-carrie
-carriere
-carrillo
-carringt
-carrissa
-carrmtce
-carrol
-carroll
-carron
-carruthe
-carry
-carrye
-carson
-carsten
-carstens
-carswell
-cart
-carter
-cartohl
-carty
-carufel
-caruk
-caruso
-caruth
-carvalho
-carver
-cary
-caryl
-caryn
-cas
-casadont
-casalou
-casandra
-casanova
-casar
-casas
-cascarin
-case
-casey
-cash
-cashin
-casi
-casie
-casinovi
-caskey
-casler
-casnji
-casotto
-caspar
-casper
-casperso
-cass
-cassady
-cassandr
-cassar
-cassat
-cassaund
-cassese
-cassey
-cassi
-cassian
-cassidy
-cassie
-cassius
-casson
-cassondr
-cassy
-castaban
-castell
-castello
-casten
-castillo
-casto
-castongu
-castro
-castro-h
-castrono
-caswell
-cat
-catanach
-catarina
-cate
-caterina
-catering
-cath
-catha
-cathal
-catharin
-cathe
-cathee
-catherin
-catherwo
-cathi
-cathie
-cathleen
-cathlene
-cathrin
-cathrine
-cathryn
-cathy
-cathylee
-cati
-catie
-catina
-catja
-catlaina
-catlee
-catlett
-catlin
-cato
-caton
-catrina
-catriona
-catthoor
-caty
-cau
-cauchy
-caudill
-caudle
-cauthen
-cauthers
-cavan
-cavanagh
-cavanaug
-cavasin
-cavasso
-caves
-cavill
-cavin
-caviness
-cavnar
-cawley
-caye
-cayer-fl
-cayla
-cayless
-cayouett
-caz
-caza
-cazzie
-cbabbage
-cchaddie
-cecco
-cece
-cecelia
-cech
-cecil
-cecile
-ceciley
-cecilia
-cecilio
-cecilius
-cecilla
-cecily
-cecon
-ced
-cedric
-cefee
-cegelski
-ceil
-cele
-celene
-celesta
-celeste
-celestia
-celestin
-celestyn
-celia
-celie
-celina
-celinda
-celine
-celinka
-celisse
-celka
-celle
-cello
-cellucci
-celso
-celyne
-cemensky
-cen
-cencier
-centeno
-center
-centers
-centis
-centre
-cepero
-cepheus
-ceponis
-ceranic
-cerberus
-ceri
-ceriel
-cerny
-cervante
-cesar
-cesaratt
-cesare
-cesario
-cesaro
-cescon
-cesya
-cetraro
-cezary
-chaaban
-chaar
-chabane
-chabert
-chabrat
-chacko
-chacon
-chad
-chadd
-chaddha
-chaddie
-chaddock
-chaddy
-chadha
-chadrick
-chadwick
-chafin
-chafy
-chagnon
-chahal
-chahram
-chai
-chai-seo
-chaikows
-chaim
-chaiman
-chaimson
-chaintre
-chaisupa
-chak-hon
-chakraba
-chakrabo
-chakrava
-chalifou
-chalker
-challice
-chalmers
-chalton
-cham
-chamard
-chamayou
-chambers
-chamblis
-champath
-champion
-champsi
-chamsi
-chan
-chan-jiu
-chan-nan
-chance
-chancey
-chanchal
-chanchla
-chanco
-chand
-chanda
-chandal
-chandan
-chander
-chandler
-chandra
-chandrak
-chandran
-chandras
-chandru
-chane
-chang
-chang-hs
-changes
-changho
-changhsi
-chanh
-chanitr
-chanjiun
-channa
-channan
-channell
-channen
-chanonat
-chanpong
-chanshin
-chansik
-chantal
-chantall
-chantel
-chantell
-chao
-chao-pin
-chaoping
-chapa
-chapdela
-chapen
-chapin
-chapleau
-chaplin
-chapman
-chapmond
-chappell
-chappuis
-chaput
-char
-charangi
-charasse
-charbonn
-charchan
-chardon
-charee
-charene
-charest
-charette
-chari
-charil
-charin
-chariot
-charis
-charissa
-charisse
-charita
-charity
-charko
-charla
-charlean
-charlebo
-charleen
-charlena
-charlene
-charles
-charlesb
-charleto
-charley
-charlie
-charline
-charlino
-charlins
-charlot
-charlott
-charlsey
-charlton
-charly
-charmain
-charman
-charmane
-charmian
-charmine
-charmion
-charness
-charney
-charo
-charon
-charron
-charter
-chartier
-chartran
-charyl
-chas
-chasalow
-chase
-chasse
-chastity
-chatard
-chatchai
-chatel
-chatfiel
-chatha
-chatri
-chatterl
-chattert
-chattoe
-chattos
-chau
-chaudhar
-chaudhry
-chaudry
-chaug-mi
-chaugmin
-chauhan
-chaunce
-chauncey
-chaurasi
-chaurett
-chautems
-chauvin
-chavers
-chaves
-chavez
-chavis
-chawki
-chawla
-chaya
-chaz
-che
-chea
-cheal
-cheatham
-cheba
-checinsk
-checklan
-chee
-chee-yin
-chee-yon
-cheesema
-cheesman
-cheetham
-cheevers
-chel
-chellapp
-chelsae
-chelsea
-chelsey
-chelsie
-chelsy
-chem
-chen
-chen-che
-chen-chu
-chen-jun
-chen-msi
-chenard
-chenault
-chenchun
-chene
-cheney
-cheng
-cheng-do
-cheng-fo
-cheng-ho
-cheng-hu
-cheng-ts
-chengdon
-chengfoo
-chenghon
-chenghun
-chengtse
-chengwei
-chenier
-chenmsie
-chennett
-chenowet
-chenye
-cheol
-cheow-to
-cheowton
-chepregi
-cher
-chere
-cherenso
-cherey
-cheri
-cherian
-cheriann
-cherice
-cherida
-cherie
-cherilyn
-cherin
-cherise
-cherish
-cherkas
-cherlyn
-chern
-chernets
-cherng
-cherri
-cherrier
-cherrita
-cherry
-chertok
-chervena
-chery
-cherye
-cheryl
-ches
-cheshire
-chesley
-cheslie
-chesser
-chesteen
-chester
-chesterf
-cheston
-chet
-chetan
-cheuk
-cheung
-chev
-cheval
-chevalie
-chevarie
-chevy
-cheyenne
-chhabria
-chi
-chi-haw
-chi-ho
-chi-hua
-chi-hung
-chi-kai
-chi-keun
-chi-kwan
-chi-man
-chi-vien
-chi-wen
-chi-yin
-chi-yuan
-chia
-chia-hoa
-chia-hua
-chiabaut
-chiahoan
-chiahuan
-chiaki
-chiamvim
-chian
-chian-fo
-chianfon
-chiang
-chiang-h
-chianghu
-chiaoyun
-chiarell
-chiarra
-chiavaro
-chic
-chick
-chickie
-chickori
-chicky
-chico
-chie
-chief
-chieh
-chiem
-chien
-chien-ch
-chien-hs
-chien-hu
-chienche
-chienchi
-chienhsi
-chienhue
-chieu
-chih
-chih-chi
-chih-hsi
-chih-hua
-chih-tsa
-chihaw
-chihchia
-chihchie
-chihhsia
-chihhua
-chihtsai
-chihua
-chihung
-chiiwen
-chik
-chikai
-chilausk
-childerh
-childers
-childree
-childres
-childs
-chilibec
-chilton
-chima
-chin
-chin-ho
-chin-lin
-chin-shu
-chin-ten
-chin-wen
-chinfui
-ching
-ching-ch
-ching-en
-ching-fu
-ching-lo
-ching-ts
-ching-yu
-chingchy
-chingen
-chingfu
-chingtsu
-chingyun
-chinh
-chinhin
-chinho
-chiniwal
-chinlin
-chinn
-chinnery
-chinrung
-chinshu
-chinteng
-chinwen
-chiou
-chip
-chiquia
-chiquita
-chiracha
-chisholm
-chisolm
-chitkara
-chitnis
-chitra
-chityal
-chiu
-chiverto
-chiwen
-chiykows
-chiyo
-chiyuan
-chlo
-chloe
-chloette
-chloris
-chmara
-cho
-cho-kuen
-cho-lun
-chochon
-chocs
-chod
-choe
-chohan
-choi
-chojan
-chok
-cholet
-cholette
-cholewin
-chomik
-chona
-chonchan
-chong
-chong-ch
-chong-ke
-chong-la
-chongcha
-chongkeu
-choo
-choo-kan
-choon
-choon-li
-choong
-chopin
-chopowic
-chopra
-choptovy
-choquett
-chorley
-chorng
-chotkows
-chou
-choudhur
-chouhan
-chouinar
-chowhan
-choy
-choynows
-chriisto
-chris
-chrisman
-chrisoph
-chrisse
-chrissie
-chrissun
-chrissy
-christ
-christa
-christab
-christal
-christan
-christea
-christel
-christen
-christer
-christi
-christia
-christie
-christin
-christl
-christof
-christop
-christos
-christy
-christye
-christyn
-chrisy
-chronowi
-chrotoem
-chroust
-chruscie
-chrysa
-chrysant
-chrysler
-chrystal
-chryste
-chrystel
-chu
-chu-chay
-chu-chue
-chua
-chuah
-chuan
-chuan-hs
-chuang
-chuanhsi
-chubb
-chubby
-chucho
-chuchuen
-chuck
-chueh
-chuen
-chugha
-chui
-chuj
-chuk
-chukwuem
-chul
-chuming
-chummun
-chun
-chun-li
-chun-shi
-chun-yen
-chung
-chung-ch
-chung-kw
-chung-li
-chung-wo
-chung-yo
-chungen
-chungjen
-chungkwo
-chunglin
-chungpha
-chungsik
-chunkin
-chunlan
-chunli
-chunlin
-chunling
-chunmei
-chunmeng
-chunn
-chunshin
-chunyen
-chuong
-chuq
-churas
-churchil
-chwen
-chychrun
-chye
-chye-lia
-chytil
-cia
-ciampini
-cianci
-ciancibe
-ciaralli
-ciaran
-ciaschi
-ciccarel
-cicchino
-cicci
-cicek
-cicely
-cicero
-cicily
-ciel
-ciesiels
-cieslak
-cifelli
-cifersky
-cigay
-cilka
-cimarron
-cimino
-cimolai
-cinar
-cinda
-cindas
-cindee
-cindelyn
-cinderel
-cindi
-cindie
-cindra
-cindy
-cinicolo
-cinnamon
-cinq-mar
-ciocca
-ciochon
-cioffi
-ciolfi
-cipolla
-circe
-ciriaco
-cirillo
-cirilo
-ciro
-cirri
-cirstofo
-cirulli
-cis @ w
-cisco
-ciskowsk
-cisnews
-cissiee
-cissy
-citarell
-cities
-citrin
-cividino
-cizmar
-clacher
-claggett
-claiborn
-clair
-claire
-clairmon
-claise
-clampitt
-clancy
-clapham
-clapp
-clara
-clarabel
-clarance
-clare
-clarence
-claresta
-clareta
-claretta
-clarette
-clarey
-clari
-claribel
-clarice
-clarie
-clarinda
-clarine
-clarise
-clarissa
-clarisse
-clarita
-clark
-clark-st
-clarka
-clarke
-clarkson
-clary
-clason
-class
-classes
-claude
-claudell
-claudett
-claudia
-claudian
-claudie
-claudina
-claudine
-claudio
-claudius
-claus
-claveau
-claxton
-clay
-clayborn
-claybour
-claybroo
-clayson
-clayton
-clea
-cleary
-cleavlan
-cleere
-clegg
-clem
-clemence
-clemens
-clement
-clemente
-clementi
-clements
-clemie
-clemmie
-clemmons
-clemmy
-clendeni
-clenney
-clennito
-clentice
-cleo
-cleon
-cleopatr
-clerc
-clerissa
-clerkcla
-clerke
-cleroux
-clesson
-clestell
-cletis
-cleto
-cletus
-cleve
-clevelan
-clevey
-clevie
-clevon
-cliff
-clifford
-clifton
-clim
-clincket
-cline
-clinger
-clinkard
-clint
-clinteas
-clinton
-clio
-clippert
-clipsham
-clites
-clive
-clo
-clocklab
-cloe
-cloherty
-clooney
-cloris
-closson
-clost
-clotilda
-clough
-clouthie
-cloutier
-clovis
-clow
-cloyd
-cluett
-clusiau
-cly
-clyde
-clysdale
-clyve
-clywd
-cmet
-co
-co-op
-co-ordin
-coady
-coallier
-coathup
-coats
-cob
-cobaugh
-cobb
-cobban
-cobbie
-cobbold
-cobby
-coble
-cobley
-cobo
-cobran
-cocco
-cochran
-cochrane
-cockburn
-cockcrof
-cocke
-cockins
-cocos
-cocos-ar
-codack
-codata
-coddingt
-code
-codee
-coder
-codi
-codie
-codoc
-codringt
-cody
-coe
-coertnik
-coffey
-cogan
-cogdell
-coggins
-coghlan
-cogwell
-cohea
-cohen
-cohn
-cohn-sfe
-cohoe
-cohrs
-coila
-cointon
-coker
-cokol
-colagros
-colan
-colangel
-colanton
-colas
-colatta
-colbert
-colbourn
-colburn
-colby
-colclasu
-coldwell
-cole
-coleen
-colella
-coleman
-colene
-coles
-colet
-coletta
-colette
-coley
-colford
-colgan
-colin
-colina
-colinda
-collamer
-collamor
-collazo
-collecut
-colledge
-colleen
-collen
-collete
-collette
-collevec
-colley
-colli
-collie
-collier
-collin
-colline
-collins
-collis
-colly
-collyer
-colm
-colman
-coloads
-colonton
-colpitts
-colquett
-colquhou
-colquitt
-colston
-colter
-colterma
-colton
-colucci
-colver
-colvin
-colwell
-comay
-combaz
-combee
-combella
-combos
-combs
-comeau
-comley
-comm
-commazzi
-comments
-committe
-commons
-communic
-comp
-compton
-computin
-comstock
-comtois
-con
-conan
-conant
-conboy
-concetta
-concetti
-conchita
-concklin
-concordi
-conde
-condell
-condurel
-conerly
-coneybea
-cong
-congdon
-congress
-conistis
-conklin
-conley
-conlin
-conlon
-conn
-connell
-connelly
-conner
-conners
-conney
-conni
-connie
-connolly
-connor
-connors
-connors-
-conny
-conoly
-conrad
-conrade
-conrado
-conrath
-conroy
-consalve
-conservi
-consolat
-constabl
-constanc
-constant
-construc
-consuela
-consuelo
-consulta
-containi
-contardo
-conte
-contine
-contomic
-conway
-coochey
-coody
-coogan
-cooke
-cookie
-cooksey
-cooley
-coolidge
-coombs
-cooney
-coop
-cooper
-cooperma
-coord
-coordina
-coors
-copeland
-copello
-copeman
-copes
-coplesto
-copley
-copp
-coppedge
-coppins
-coqueugn
-cora
-corabel
-corabell
-corace
-coral
-coralie
-coraline
-coralyn
-corbeil
-corbet
-corbett
-corbie
-corbin
-corbitt
-corby
-corcoran
-cord
-cordelia
-cordelie
-cordell
-cordes
-cordey
-cordi
-cordie
-cordula
-cordy
-core
-coreen
-corella
-corena
-corenda
-corene
-coretta
-corette
-corey
-cori
-coriaty
-corie
-corilla
-corina
-corine
-corinna
-corinne
-coriss
-corissa
-corker
-corkey
-corkigan
-corkstow
-corkum
-corless
-corlett
-corley
-corliss
-corly
-cormac
-cormier
-cornall
-cornaro
-cornel
-cornela
-cornelia
-cornelis
-corneliu
-cornell
-cornelle
-corner
-corney
-cornie
-corny
-corpenin
-corpuz
-corr
-correa
-correia
-correna
-correy
-corri
-corriann
-corrie
-corrigan
-corrina
-corrine
-corrinne
-corritor
-corrivea
-corry
-corsale
-corse
-corson
-cort
-cortie
-cortland
-cortney
-corty
-corvo
-cory
-cos
-cosburn
-cosentin
-cosetta
-cosette
-cosgrove
-cosimo
-coslas
-cosme
-cosmo
-cosner
-cosola
-cossota
-costa
-costache
-costadim
-costandi
-costanti
-costanza
-costanzi
-costas
-costas-d
-coste
-costello
-costen
-cote
-cothran
-cotnam
-cotner
-cotten
-cottengi
-cotter
-cottingh
-cottrell
-cotugno
-cotuna
-coucopou
-couey
-coughran
-coules
-coulman
-coulombe
-coulson
-coulter
-coulterm
-count
-coupal
-coupland
-courches
-couron
-coursdev
-coursey
-coursol
-courson
-court
-courtadm
-courtena
-courtlan
-courtnay
-courtney
-courvill
-couse
-couser
-cousinea
-cousins
-coutelli
-coutinho
-couto
-coutu
-couture
-covach
-coverdal
-covey
-coviensk
-coville
-covingto
-cowan
-cowart
-cowell
-cowen
-cowick
-cowley
-cowling
-cowlisha
-cownie
-cowper
-coxall
-coxe
-coyle
-coyne
-cozart
-cozmo
-cozyn
-cozzi
-cpebach
-cpm
-cprs
-crabb
-crabe
-crabtree
-cracknel
-craddock
-crafton
-craggie
-craggs
-craggy
-craghead
-craib
-craig
-craig-du
-crain
-cramer
-cramm
-crampton
-crandall
-cranford
-cranston
-crapco
-crase
-craver
-crawford
-crawhall
-crawley
-crawshaw
-cray
-craycraf
-cre
-creamer
-crean
-creane
-creasey
-creasman
-creative
-credico
-credille
-creech
-creecy
-cregan
-creigh
-creight
-creighto
-cremer
-crepeau
-crerar
-creswell
-crews
-cribbs
-crichton
-crick
-crickard
-cricker
-cricket
-crigger
-crin
-crippen
-cripps
-cris
-crisler
-crissie
-crissy
-crista
-cristabe
-cristal
-cristen
-cristesc
-cristi
-cristian
-cristie
-cristin
-cristina
-cristine
-cristion
-cristoba
-cristofa
-cristy
-criswell
-critchle
-crittend
-crl.word
-crocker
-crockett
-crogie
-croiseti
-croix
-crolla
-cromer
-crommie
-crompton
-cromwell
-cronan
-cronin
-cronk
-cronkrig
-cronkwri
-crooks
-croom
-cropper
-crosby
-cross
-cross-as
-crossass
-crossley
-crosson
-crosswel
-croteau
-crothers
-crotty
-crowder
-crowe
-crowell
-crowle
-crowley
-croxall
-croxford
-crozier
-crucefix
-cruey
-cruicksh
-crumpton
-crusoe
-crutchfi
-cruz
-cruzado
-cryoelec
-crysta
-crystal
-crystalb
-crystie
-csaszar
-csenar
-csilla
-csite
-csma
-csop
-csr
-csreport
-csua
-ctas
-cthrine
-cuany
-cuauhtem
-cubical
-cubicle
-cucchiar
-cucci
-cuccia
-cucciole
-cucuzzel
-cuddihey
-cuddihy
-cuddy
-cuellar
-cuervo
-cuffle
-cuffling
-cuggy
-culberso
-culberts
-culbreth
-culham
-culkin
-cull
-cullan
-cullen
-culley
-cullie
-cullin
-culliphe
-cullum
-cully
-culmer
-culp
-culver
-culverho
-cummine
-cumming
-cummings
-cummins
-cumpston
-cunanan
-cung
-cunha-go
-cunningh
-cuong
-cuper
-cupid
-cupido
-curcio
-curley
-curmon
-curnow
-curr
-curran
-currer
-currey
-currie
-currier
-currin
-curry
-curt
-curtice
-curtin
-curtis
-curtt
-cusato
-cushing
-cushman
-cusick
-cusson
-custer
-custsupp
-cusumano
-cuthbert
-cuthill
-cutrufel
-cutter
-cuu
-cwirzen
-cy
-cyb
-cybil
-cybill
-cybotech
-cycelia
-cymbre
-cynde
-cyndi
-cyndia
-cyndie
-cyndy
-cynethia
-cynthea
-cynthia
-cynthie
-cynthy
-cynthya
-cyr
-cyril
-cyrill
-cyrille
-cyrillus
-cyrine
-cyros
-cyrus
-cytrynba
-czappa
-czarneck
-czeban
-czes
-czeslaw
-czychun
-d'ambros
-d'amico
-d'amour
-d'andrea
-d'angelo
-d'anjou
-d'anne
-d'antoni
-d'aoust
-d'arcy
-d'cruz
-d'ingian
-d'ippoli
-d'lima
-d'onofri
-d'orazio
-d'silva
-d'soto
-d'souza
-da
-da gama
-da silva
-da-shih
-daaboul
-dacal
-dace
-dacey
-dach
-dachelet
-dacia
-dacie
-dack
-dacre
-dacy
-dada
-dadalt
-dadang
-dade
-dadgar
-dadkhah
-dae
-daebum
-daedalus
-dael
-daena
-daesik
-daffi
-daffie
-daffy
-dafoe
-dag
-dagama
-dagenais
-dagert
-dages
-dagg
-dagley
-dagmar
-dagnall
-dagnaw
-dagny
-dagoulis
-dahai
-dahan
-dahi
-dahl
-dahlia
-dahlstro
-dai
-daigle
-daigneau
-daijavad
-daile
-dailey
-daimee
-dairin
-daisey
-daisi
-daisie
-daisy
-dajerlin
-dal
-dale
-dalenna
-dales
-daley
-dalia
-dalila
-dalip
-dalis
-dall
-dall'ost
-dallago
-dallaire
-dallal
-dallas
-dalli
-dallis
-dallon
-dalmard
-daloris
-dalrympl
-dalsiel
-dalston
-dalt
-dalton
-daly
-damara
-damaris
-dambenie
-dame
-damena
-damerji
-damian
-damiano
-damien
-damil
-damita
-damon
-damone
-dan
-dana
-danagher
-danai
-danbrook
-danchi
-dancy
-dando
-danduran
-dane
-danell
-danella
-daneshza
-danette
-danforth
-dangubic
-danh
-dani
-dania
-danial
-danica
-danice
-danie
-daniel
-daniela
-danielak
-daniele
-daniella
-danielle
-daniells
-daniels
-danika
-danila
-danilo
-danilowi
-daniluk
-danit
-danita
-danjean
-danker
-danko
-danling
-dann
-danna
-dannel
-danni
-dannie
-danny
-dannye
-dans
-danserea
-dante
-dantu
-dantzler
-dany
-danya
-danyelle
-danyette
-danzeise
-danzig
-dao
-daochuan
-daoud
-daoust
-daphene
-daphine
-daphna
-daphne
-daquano
-dar
-dar-der
-dara
-darb
-darbee
-darbie
-darby
-darcange
-darcee
-darcel
-darcey
-darci
-darcie
-darcy
-darda
-darden
-darder
-dare
-dareen
-darell
-darelle
-daren
-dares
-dari
-daria
-darian
-darice
-darill
-darin
-darina
-dario
-darius
-darko
-darla
-darleen
-darlene
-darline
-darlingt
-darlleen
-darn
-darnall
-darnel
-darnell
-darold
-daron
-darou
-darpa
-darr
-darrel
-darrell
-darrelle
-darren
-darrick
-darrimon
-darrin
-darroch
-darrol
-darrow
-darry
-darryl
-darsey
-darshan
-darshana
-darshi
-darsie
-daruius
-darveau
-darwen
-darwin
-darwyn
-darya
-daryl
-daryle
-daryn
-daryoosh
-daryoush
-das
-dasch
-dasd
-dasha
-dasharat
-dashih
-dasi
-dasie
-dasilva
-dasinger
-dasrath
-dassani
-dassie
-dasya
-dat
-data
-datacent
-datas
-datasupp
-datema
-dates
-datha
-datta
-dattalo
-dau
-daudin
-daugavie
-daughert
-daughtre
-daunais
-daune
-dauphina
-dautenha
-dauteriv
-dav
-davalo
-dave
-daveen
-daven
-daveta
-davey
-david
-david-ye
-davida
-davidde
-davide
-davidh
-davidovi
-davids
-davidson
-davie
-davies
-davin
-davina
-davinci
-davinder
-davine
-davis
-davison
-davita
-davon
-davor
-davy
-dawe
-dawit
-dawkins
-dawn
-dawna
-dawne
-dawson
-daya
-dayal
-dayberry
-dayle
-daymond
-dayna
-dayton
-db
-dba
-dbase
-dbs
-ddavid
-ddene
-ddocdb
-de
-de anda
-de baets
-de beaum
-de belen
-de boer
-de buda
-de cecco
-de chabe
-de cours
-de crist
-de eliza
-de grace
-de hoog
-de la
-de leon
-de los
-de marco
-de marti
-de muinc
-de salis
-de souza
-de toni
-de varen
-de vito
-de vries
-de wiele
-de wilto
-de witt
-de witte
-de-anna
-de-boer
-de-ying
-de_konin
-deacetis
-deadwile
-deagle
-deak
-deakin
-dealmeid
-dealto
-deames
-dean
-deana
-deanda
-deane
-deanm
-deann
-deanna
-deanne
-deans
-deanza
-dear
-dearaujo
-deardurf
-deason
-deathera
-deatrick
-deb
-debadeep
-debasish
-debassig
-debbi
-debbie
-debby
-debee
-debera
-debernar
-debi
-debkumar
-deblois
-debnam
-deboer
-deboor
-debor
-debora
-deborah
-debord
-debortol
-debra
-debrah
-debrun
-debrusk
-debs
-decacque
-decaire
-decapua
-decarie
-decasper
-decca
-decelles
-deciccio
-deck
-decker
-declan
-decleir
-decource
-decourcy
-decoursi
-deczky
-dedas
-dede
-dedie
-dedra
-deduk
-dee
-dee dee
-deeann
-deeanne
-deedee
-deek
-deena
-deep
-deepak
-deerdre
-deere
-deery
-deetta
-deevey
-deeyn
-defacend
-defalco
-defazio
-defilipp
-deford
-deforeit
-defrance
-defranch
-degan
-degen
-degenova
-degraauw
-degrandi
-deguines
-deguire
-dehaan
-dehghan
-dehlia
-dehner
-dehoff
-dehr
-deiadrel
-deibert
-deicher
-deidre
-deikman
-deina
-deininge
-deirdre
-deitera
-deitiker
-dejan
-dejongh
-dekai
-dekeyser
-del
-dela
-delaat
-delage
-delahay
-delainey
-delancey
-delaney
-delangis
-delano
-delargy
-delat
-delbert
-delbret
-delbridg
-delbrouc
-delcina
-delcine
-deleon
-delf
-delfin
-delfreda
-delgass
-delgross
-delia
-deligdis
-delila
-delilah
-delinda
-delisle
-deliva
-dell
-della
-delle
-delli
-dellinge
-delly
-delmar
-delmer
-delmor
-delmore
-delnaz
-delo
-delolmod
-delong
-delora
-delorenz
-delores
-deloria
-deloris
-delorme
-delphine
-delphini
-delroy
-deluca
-deluce
-deluco
-delvecch
-delzer
-demarco
-demarest
-demchuk
-dement
-demeo
-demers
-demet
-demeter
-demetra
-demetre
-demetri
-demetria
-demetric
-demetrio
-demetris
-demetriu
-demeulem
-demi
-demidenk
-demir
-demjen
-demmel
-demone
-demontlu
-demorest
-demorge
-demott
-demps
-dempsey
-dempster
-demren
-demuth
-den
-dena
-dendi
-dene
-denebeim
-deneen
-denemark
-denery
-denest
-denette
-deng
-deng-jyi
-dengjyi
-deni
-denice
-deniece
-denike
-denis
-denise
-denison
-deniz
-denley
-denman
-denmark
-denna
-dennen
-dennet
-denney
-denni
-dennie
-denning
-dennis
-dennison
-denno
-denny
-deno
-denomme
-denoon
-denter
-denton
-denver
-deny
-denys
-denyse
-denzil
-deog
-deok
-deol
-deonne
-depalma
-depeltea
-depew
-dephoure
-deployme
-depooter
-dept
-dept.
-der
-der-chan
-der-shen
-deraadt
-deraaf
-derby
-derbyshi
-derecki
-derek
-derenzo
-derganc
-deri
-derick
-derika
-derin
-derk
-derluen
-dermardi
-dermot
-derome
-derosa
-derose
-derosenr
-derrek
-derrett
-derrick
-derrik
-derril
-derron
-derry
-dersheng
-derward
-derwin
-dery
-deryck
-des
-desai
-desalis
-desantis
-desautel
-desch
-deschamp
-deschiff
-descotea
-descotes
-desdemon
-desgrose
-desharna
-desi
-design
-desilets
-desimone
-desirae
-desire
-desiree
-desiri
-desjardi
-desjarla
-deska
-deslande
-deslauri
-desmarai
-desmond
-desmund
-desoer
-desorbay
-desourdy
-despain
-despault
-despinic
-desplanq
-despres
-desroche
-desrosie
-dessain
-desser
-destech
-destefan
-destry
-detjens
-detlef
-detleff
-detlev
-detloff
-detra
-deugau
-deugo
-deutschm
-dev
-deva
-devadas
-devan
-devarenn
-devault
-deveau
-devel
-developm
-deven
-devenny
-devenyi
-devenyns
-devera
-devere
-devette
-devgon
-devi
-devices
-devin
-devina
-devincen
-devine
-devinne
-devland
-devlen
-devlin
-devon
-devondra
-devonna
-devonne
-devora
-devore
-devouges
-devreeze
-devy
-dew
-dewain
-dewart
-dewayne
-dewey
-dewi
-dewie
-dewit
-dewitt
-dewitte
-dex
-dexiang
-dexter
-deying
-deyirmen
-deyoung
-dezbah
-dezoete
-dg
-dhaliwal
-dhansukh
-dhanvind
-dhar
-dharam
-dharmara
-dharmawa
-dhaussy
-dhawal
-dheeraj
-dhillon
-dhinakar
-dhir
-dhiraj
-dhiren
-dhuga
-dhupar
-di
-di cosol
-di giamb
-di maso
-di millo
-di ninno
-dia-edin
-diaconu
-diahann
-dialout
-diamond
-dian
-diana
-diandra
-diane
-diane-ma
-dianemar
-diann
-dianna
-dianne
-diannne
-diarmid
-dias
-diaz
-dibenede
-dibler
-dicaprio
-dick
-dickard
-dickens
-dickerma
-dickerso
-dickeson
-dickford
-dickie
-dickinso
-dicks
-dicksie
-dickson
-dicky
-didani
-didar
-didi
-didier
-didio-du
-dido
-diduch
-didylows
-diec
-diederic
-diederik
-diedrich
-diee
-diego
-diekman
-diemel
-dien
-diena
-diener
-diep
-diepling
-dierdre
-diersch
-diesing
-dieter
-dietra
-dietrich
-dieu
-dieuwert
-difalco
-diffee
-diffie
-difilipp
-difrance
-digby
-digenova
-digiacom
-digilio
-dignam
-dijaili
-dijian
-diju
-dikaitis
-dikens
-dilallo
-dilan
-dilen
-dilip
-dilkie
-dill
-dillabou
-dillard
-dilley
-dillie
-dillingh
-dillon
-dillow
-dilly
-diloreto
-dilpreet
-dima
-dimarco
-dimarzo
-dimas
-dimetry
-dimillo
-dimitra
-dimitri
-dimitrio
-dimitry
-dimoueri
-dina
-dinaband
-dinah
-dinalic
-dincamps
-dineke
-dinesh
-dinges
-dingle
-dingley
-dingman
-dinh
-dinhtran
-dinkel
-dinker
-dinnervi
-dinneyla
-dinnie
-dinnin
-dinny
-dino
-dinsmore
-dinur
-diogo
-dion
-dione
-dionis
-dionisio
-dionne
-dionysia
-dionysiu
-dionysus
-dipace
-dipak
-dipasqua
-diperna
-dipierro
-dipietro
-dipper
-dirac
-diradmin
-dirbm
-dirck
-diretto
-dirienzo
-dirilten
-dirk
-dis
-disalvo
-discenza
-discours
-discover
-disessa
-disher
-dishong
-disisto
-disney
-dispatch
-dissinge
-distribu
-dita
-ditecco
-ditko
-dittburn
-divyesh
-dix
-dixie
-dixon
-djavaher
-djenana
-djordje
-djuan
-dmaac
-dmitri
-dms
-dmsdb
-dmsrtime
-dmuchals
-dnadoc
-dniren
-dnsproj
-do
-doak
-doan
-dobbing
-dobbins
-dobbs
-dobby
-doble
-dobransk
-dobrosla
-dobry
-doc
-docherty
-dockendo
-doctorjo
-document
-doczy
-doda
-dodd
-dodds
-dode
-dodgson
-dodi
-dodie
-dodier
-dodman
-dodson
-dody
-doe
-doemer
-doerfel
-doerksen
-doernber
-doerr
-doggett
-dohan
-doherty
-doi
-doig
-doing
-dokken
-dokuzogu
-dolan
-dolezal
-dolf
-dolginof
-dolgov
-doliska
-doll
-dolley
-dolli
-dollie
-dolly
-dolores
-dolorita
-dolph
-dolson
-dom
-domains
-domanico
-domas
-dombrosk
-domenic
-domenick
-domenico
-domeniga
-dominado
-domine
-dominga
-domingo
-domingue
-domini
-dominic
-dominica
-dominick
-dominik
-dominiqu
-dommety
-don
-dona
-donaghue
-donahee
-donahue
-donak
-donal
-donald
-donaldso
-donall
-donalt
-donator
-donaugh
-donavon
-doncaste
-doncell
-donegan
-donelan
-donella
-donelle
-donetta
-dong
-dong-ik
-dong-moo
-dong-pyo
-dongik
-dongmoon
-dongpyo
-donia
-donica
-donielle
-donis
-donita
-donkers
-donleyco
-donlon
-donn
-donna
-donnajea
-donnamar
-donne
-donnell
-donnelly
-donner
-donnette
-donni
-donnice
-donnie
-donny
-donoghue
-donohoe
-donohue
-donovan
-dood
-doodeman
-dooley
-doolin
-doolittl
-door
-doortje
-dora
-doraine
-dorais
-doraiswa
-doralia
-doralie
-doralin
-doralyn
-doralynn
-doran
-doray
-dordari
-dorden
-dore
-doreen
-dorelia
-dorella
-dorelle
-dorena
-dorene
-doretta
-dorette
-dorey
-dori
-doria
-dorian
-dorianne
-dorice
-dorie
-dorin
-dorine
-dorion
-dorion-m
-doriot
-doris
-doris-ha
-dorisa
-dorise
-dorit
-dorita
-dormer
-dorn
-dornback
-doro
-dorolice
-dorolisa
-dorotea
-doroteya
-dorothea
-dorothee
-dorothy
-dorotich
-dorr
-dorra
-dorree
-dorreen
-dorrell
-dorri
-dorrie
-dorris
-dorronso
-dorry
-dorsey
-dorthea
-dorthy
-dorval
-dory
-dosanjh
-dosenbac
-doshi
-dosi
-doskas
-dosref
-doss
-dost
-dot
-dotan
-doti
-dotsey
-dotson
-dotti
-dottie
-dottin
-dotty
-doublesi
-doucet
-doucette
-doud
-douet
-doug
-dougall
-doughert
-doughty
-dougie
-douglas
-douglass
-dougy
-dourley
-douville
-dov
-dovel
-dover
-dovydait
-dow
-dowd
-dowding
-dowdy
-dowell
-dower
-dowjones
-dowker
-dowling
-downer
-downes
-downey
-downing
-downs
-dowse
-dowser
-doy
-doyle
-doyon
-dpierre
-dpn
-dpnbuild
-dpnis
-dpnlab
-dpnq&a
-dpp
-dpu
-dr.jones
-dr.seuss
-drabek
-drachman
-draco
-dracula
-draffin
-dragan
-dragana
-dragert
-dragnea
-drago
-draier
-drakage
-drake
-drako
-drane
-dransfie
-draper
-drappel
-draves
-dray
-drayton
-dre
-dreddy
-dredi
-dreisbac
-drenan
-drennan
-drescher
-dresel
-dresser
-dressler
-drew
-drewes
-drexel
-dreyfus
-dreyfuss
-driedger
-drieka
-drinnan
-driscoll
-drissel
-driver
-drjones
-drobnik
-drolet
-dromgool
-drona
-drop-box
-dropin
-droste
-drouin
-drseuss
-dru
-drubld
-druci
-drucie
-drucill
-drucy
-drud
-drudy
-drugi
-drugs
-drumhell
-drumm
-drummer
-drummond
-drusi
-drusie
-drusilla
-drusy
-druzeta
-drwiega
-dryer
-dryfoos
-drynan
-du berge
-du-tuan
-duan
-duane
-dube
-dubeau
-dubee
-dubey
-dubman
-dubois
-dubose
-dubreck
-dubreuil
-dubroff
-dubroy
-dubuc
-duc
-duchaine
-ducharme
-duchesne
-ducic
-dud
-duda
-dudas
-dude
-dudgeon
-dudley
-dueck
-duenas
-duensing
-dueppen
-duer
-duff
-duffie
-duffin
-duffney
-dufford
-duffy
-dufloth
-dufour
-dufresne
-dugal
-dugald
-dugar
-dugas
-duggan
-duguay
-duisman
-duke
-dukes
-dukey
-dukie
-duky
-dula
-dulaney
-dulce
-dulcea
-dulci
-dulcia
-dulciana
-dulcie
-dulcine
-dulcinea
-dulcy
-dulin
-duljit
-dulmage
-dulsea
-dulude
-dumais
-dumas
-dummer
-dumont
-dumouche
-dumps
-dun
-dunajski
-dunbar
-dunc
-duncan
-duncan-s
-dundin
-dunfield
-dung
-dungan
-dunham
-dunik
-dunkelma
-dunker
-dunlap
-dunlay
-dunlop
-dunmore
-dunn
-dunne
-dunnett
-dunning
-dunningh
-dunnion
-dunphy
-dunsmore
-dunson
-dunstan
-duong
-dupaul
-duplacey
-duplan
-dupont
-dupras
-dupre
-dupree
-dupuis
-dupuis-m
-dupuy
-duquette
-dur
-durali
-duran
-durand
-durant
-durantay
-durante
-durham
-durie
-durling
-durnford
-durose
-durousse
-durovic
-durrell
-dursse
-durward
-duryonna
-dusan
-dusko
-dusomos
-duster
-dusty
-dutch
-dutcher
-duthie
-dutil
-dutt
-dutta
-duvarci
-duxbury
-duy
-duyck
-dvm
-dvs
-dwain
-dwaine
-dwayne
-dwight
-dwyer
-dyan
-dyana
-dyane
-dyann
-dyanna
-dyanne
-dyba
-dybenko
-dyck
-dyckman
-dyess
-dyke
-dylan
-dyment
-dyna
-dynah
-dynie
-dyrdahl
-dysart
-dyson
-dziamba
-dziawa
-dziemian
-dzioba
-dzulkarn
-dzung
-eachelle
-eada
-eades
-eadie
-eadith
-eadmund
-eagle
-eagles
-eakes
-eakins
-eal
-ealasaid
-eales
-eamon
-eamonn
-eansor
-earl
-earle
-earlene
-earles
-earley
-earlie
-earline
-early
-earnest
-earnhard
-earnie
-earps
-eartha
-earvin
-easaw
-eason
-easson
-easter
-easterli
-eastick
-eastland
-eastman
-easton
-eastreg
-eastus
-eastwood
-eaton
-eaves
-eb
-eba
-ebara
-ebata
-ebba
-ebbingha
-eben
-ebeneser
-ebenezer
-eberhard
-eberle
-eberlin
-ebert
-eberto
-ebonee
-ebony
-ebrahim
-eby
-echols
-eckardt
-ecker
-eckert
-eckhart
-eckler
-ecklund
-eckstein
-ecocafe
-econ
-ecroyd
-ed
-eda
-edan
-edd
-eddi
-eddie
-eddins
-eddisfor
-eddy
-ede
-edee
-edel
-edeline
-edelman
-eden
-eder
-edey
-edgar
-edgard
-edgardo
-edgette
-edgreen
-edi
-edie
-edif
-edik
-edin
-edison
-edistix
-edita
-edith
-editha
-edithe
-ediva
-edkins
-edlene
-edlin
-edmison
-edmon
-edmond
-edmonds
-edmondso
-edmonton
-edmund
-edmundo
-edmunds
-edmx
-edmxtest
-edna
-edouard
-edric
-edsel
-eduard
-eduardo
-educatio
-eduino
-edvard
-edward
-edwards
-edwige
-edwin
-edwina
-edwins
-edy
-edyta
-edyth
-edythe
-efdal
-effie
-efland
-efrain
-efrem
-efren
-efron
-efstrati
-efthim
-efthimio
-eftychio
-egan
-egashira
-egbert
-egdorf
-egerman
-eggebraa
-eggers
-eggersgl
-eggleton
-egional
-egli
-egne
-egner
-egon
-egor
-ehab
-ehi
-ehlers
-ehninger
-ehrenfri
-ehrenhol
-ehrlich
-ehrlichm
-eicher
-eide
-eierstoc
-eiji
-eike
-eiki
-eiko
-eileen
-eilis
-eimer
-eimile
-einarsso
-einersen
-einstein
-einwohne
-eirena
-eirik
-eisele
-eisen
-eisenach
-eisenber
-eisenhar
-eisler
-eisner
-eisnor
-eiswirth
-eitner
-ekaterin
-ekiert
-el
-el-am
-el-gueba
-el-hawar
-el-torky
-eladio
-elaina
-elaine
-elam
-elana
-elane
-elayne
-elbert
-elberta
-elbertin
-elbeze
-elbi
-elchakie
-elda
-elden
-eldin
-eldon
-eldoris
-eldredge
-eldreth
-eldridge
-eleanor
-eleanora
-eleanore
-elec
-electra
-electric
-electron
-eleen
-elefteri
-elefther
-elena
-elene
-eleni
-elenore
-eleonora
-eleonore
-elery
-eleta
-elex
-eley
-elfie
-elfreda
-elfredia
-elfrida
-elfrieda
-elga
-elgar
-elgie
-elgin
-elhage
-elhamahm
-elhamy
-eli
-elia
-elianora
-elianore
-elias
-elicia
-elie
-eliezer
-elihu
-elijah
-elin
-eline
-elinor
-elinore
-elio
-eliot
-elisa
-elisabet
-elise
-eliseo
-elisha
-elissa
-elita
-eliud
-eliza
-elizabet
-elizalde
-elka
-elkaim
-elke
-elkhayat
-elkind
-elkingto
-elkins
-elks
-ella
-ellacott
-elladine
-ellary
-elle
-elledge
-elleke
-ellement
-ellen
-ellene
-ellens
-eller
-ellerey
-ellerman
-ellery
-ellette
-elli
-ellie
-ellinger
-ellingto
-elliot
-elliott
-ellis
-ellison
-ellissa
-ello
-ellryne
-ellswert
-ellswort
-ellul
-ellwood
-elly
-ellyn
-ellynn
-elmar
-elmer
-elmira
-elmo
-elmore
-elms
-elna
-elnar
-elnora
-elnore
-eloisa
-eloise
-elonore
-elora
-elpida
-elroy
-els
-elsa
-elsbeth
-else
-elset
-elsey
-elsi
-elsie
-elsing
-elsinore
-elson
-elspeth
-elston
-elsworth
-elsy
-elting
-elton
-eluned
-elva
-elvera
-elvert
-elvin
-elvina
-elvira
-elvis
-elvyn
-elwin
-elwira
-elwood
-elwyn
-ely
-elyn
-elyse
-elysee
-elysha
-elysia
-elyssa
-elza
-elzbieta
-elzer
-em
-ema
-emad
-emalee
-emalia
-emami
-emanatia
-emanuel
-emanuele
-emdin-sp
-emelda
-emelen
-emelia
-emelina
-emeline
-emelita
-emelyne
-emer
-emera
-emerick
-emerson
-emery
-emesh
-emhart
-emig
-emil
-emilda
-emile
-emilee
-emili
-emilia
-emilie
-emilien
-emiline
-emilio
-emilios
-emily
-emlen
-emlyn
-emlynn
-emlynne
-emma
-emmalee
-emmaline
-emmalyn
-emmalynn
-emmanuel
-emmeline
-emmell
-emmerich
-emmersto
-emmert
-emmery
-emmet
-emmett
-emmey
-emmi
-emmie
-emmit
-emmons
-emmott
-emmy
-emmye
-emogene
-emond
-emory
-emowilli
-emp
-empdb
-employee
-emr
-emran
-emrick
-emro
-emyle
-emylee
-emysta
-encomend
-endang
-ende
-endenbur
-enderle
-enders
-enderton
-endicott
-endless
-endot
-endrys
-endsley
-enet
-eng
-eng-sion
-engbert
-engel
-engelber
-engelbre
-engelhar
-engin
-engineer
-england
-englande
-engle
-engleber
-englebri
-engleman
-englert
-english
-engman
-engr
-engracia
-engsiong
-engtv
-enid
-enis
-ennis
-enno
-enns
-enoch
-enos
-enrica
-enrichet
-enrico
-enrika
-enrique
-enriquet
-ensign
-ensing
-ensminge
-ensor
-enstone
-entwistl
-enver
-environm
-envoy
-enzo
-eoin
-eolanda
-eolande
-eow
-eperjesy
-ephraim
-ephrayim
-ephrem
-eppensti
-epperson
-eppich
-epplett
-epps
-eprom
-epstein
-epting
-eran
-erasmus
-erastus
-erbach
-erbilgin
-erda
-erdem
-erdinc
-erek
-erena
-erfani
-ergle
-erguven
-erh-huan
-erhard
-erhart
-erhhuan
-eric
-erica
-erich
-ericha
-erichsen
-erick
-ericka
-erickson
-erics
-ericsson
-erie
-erik
-erika
-eriks
-eriksson
-erin
-erina
-erine
-erinn
-erinna
-erkan
-erkel
-erl
-erland
-erle
-erlene
-erler
-erling
-erma
-ermanno
-ermarkar
-ermengar
-ermentru
-ermey
-ermin
-ermina
-erminia
-erminie
-ermo
-erna
-ernaline
-ernest
-ernesta
-ernestin
-ernesto
-ernestus
-ernie
-erning
-ernst
-erny
-eroler
-eros
-errchend
-errick
-errol
-erroll
-ersch
-ersil
-erskine
-ertan
-ertha
-ertl
-erv
-ervi
-ervin
-erwei
-erwin
-erwing
-eryn
-erzsebet
-es
-esam
-esc
-esch
-eschen
-escher
-escherma
-escobedo
-escobido
-escutin
-esdras
-esgate
-esguerra
-eshelman
-eshghi
-esi
-esite
-eskew
-eskiciog
-eskildse
-esko
-eslambol
-esler
-esliger
-esma
-esmail
-esmaili
-esmaria
-esme
-esmerald
-esmond
-esparza
-espenson
-espinosa
-espinoza
-esposito
-espuna
-esra
-esry
-essa
-essam
-esselbac
-esser
-essery
-essie
-essig
-esson
-essy
-esta
-estabroo
-este
-esteban
-estegham
-estel
-estele
-estell
-estella
-estelle
-estep
-ester
-estes
-estevam
-estevan
-estey
-esther
-estrella
-estrelli
-estridge
-eswara
-etan
-etas
-etchieso
-etemad
-eteminan
-ethan
-ethe
-ethel
-ethelber
-ethelda
-ethelin
-ethelind
-etheline
-ethelred
-ethelyn
-ethier
-ethingto
-ethnolog
-ethyl
-etienne
-etoh
-etta
-etten
-etti
-ettie
-ettore
-ettridge
-ettson
-etty
-etu
-etzell
-eu
-eubanks
-euclid
-eudora
-euell
-eugen
-eugene
-eugenia
-eugenie
-eugenio
-eugenius
-eugine
-eula
-eulalie
-euler
-eunchae
-eung
-euni
-eunice
-eunji
-euphemia
-eustace
-eustacia
-eustis
-euy-soo
-euysoo
-euysung
-ev
-eva
-evaleen
-evalyn
-evan
-evandro
-evangeli
-evangelo
-evania
-evanne
-evans
-evanston
-eve
-eveleen
-eveleigh
-evelien
-evelin
-evelina
-eveline
-evely
-evelyn
-evelyne
-even
-evenson
-events
-everard
-evered
-everett
-everette
-everitt
-evers
-evert
-evette
-evey
-evia
-evie
-evin
-evita
-evon
-evona
-evonne
-evraire
-evren
-evvie
-evvy
-evy
-evyn
-ewald
-ewan
-ewanchyn
-eward
-ewart
-ewasyshy
-ewell
-ewen
-ewing
-exner
-ext
-eyde
-eydie
-eyers
-eyk
-ezechiel
-ezekiel
-ezella
-ezequiel
-eziechie
-ezmerald
-ezra
-ezri
-ezzat
-fab
-fabe
-fabella
-faber
-fabian
-fabiano
-fabien
-fabienne
-fabijani
-fabio
-fabris
-fabrizio
-fabry
-facchett
-facility
-fadel
-fadhel
-fadi
-fadj
-fadlalla
-fady
-fadzilah
-fae
-faez
-fafa
-fafara
-fagan
-fagg
-fagin
-fahey
-fahim
-fahrenth
-fahy
-fai
-faina
-fainaru
-fainecos
-faiq
-fair
-fairclou
-fairfax
-fairfiel
-fairleig
-fairless
-fairlie
-fairman
-fairy
-faisal
-faison
-fait
-faith
-faiz
-faizal
-fajardo
-falaki
-falardea
-falbee
-falcao
-falconer
-faletti
-faley
-falicov
-falito
-falke
-falkenst
-falkner
-fallah
-fallahi
-falletti
-fallis
-fallon
-fallows
-falquero
-falt
-faltens
-fambroug
-familiad
-famke
-fan
-fanchett
-fanchi
-fanchon
-fancie
-fancy
-fanechka
-fang
-fangio
-fani
-fania
-fann
-fanner
-fanni
-fannie
-fanny
-fansher
-fantauzz
-fanthome
-fanty
-fanus
-fanya
-faou
-far
-fara
-faraday
-farag
-farago
-farah
-farahvas
-faramarz
-farand
-farant
-fares
-fargis
-fargo
-farhad
-farhan
-farhang
-farhat
-farias
-fariba
-fariborz
-farica
-farid
-faris
-farlay
-farlee
-farleigh
-farley
-farlie
-farly
-farmer
-farn
-farnham
-farnjeng
-farnswor
-farnum
-farokh
-farooa
-farooq
-farouk
-farquhar
-farr
-farra
-farrah
-farrand
-farranto
-farrel
-farrell
-farren
-farringt
-farris
-farrokh
-farronat
-farrow
-farrukh
-farshid
-faruk
-faruque
-farzad
-farzin
-fasken
-fast
-fastfeat
-fastmer
-fastone
-fastowl
-fastpack
-fataneh
-fater
-fatholla
-fatica
-fatima
-fattarus
-fattouh
-faubert
-faucette
-faucher
-faulhabe
-faulkner
-faun
-faunie
-faust
-faustina
-faustine
-fausto
-faustus
-favell
-favreau
-favrot
-fawaz
-fawcett
-fawn
-fawne
-fawnia
-fax
-fay
-fayanne
-faydra
-faye
-fayette
-fayez
-fayina
-fayma
-fayre
-fayth
-faythe
-faz
-fazel
-fearless
-featherm
-feddeman
-fedderse
-feder
-federica
-federico
-federiko
-fedora
-fedoruk
-fedyk
-fee
-feeley
-feeney
-fehr
-fei
-fei-wen
-fei-yin
-feil
-feild
-feisal
-feist
-feitel
-feith
-feiwen
-fekade
-fekri
-felczak
-feld
-feldberg
-felder
-feldman
-felecia
-felfli
-felic
-felicdad
-felice
-felicett
-felicia
-felicio
-felicity
-felicle
-felike
-feliks
-felipa
-felipe
-felisha
-felita
-felix
-feliza
-felizio
-felli
-fellman
-felske
-feltman
-felton
-femke
-fenati
-fender
-fenelia
-fenez
-feng
-fenlason
-fenn
-fennell
-fenner
-fennesse
-fenton
-fenwick
-feodor
-feodora
-fequiere
-ferba
-ferd
-ferdie
-ferdinan
-ferdy
-feregyha
-fereidoo
-ferelith
-ferenc
-ference
-ferenz
-fererro
-fergus
-ferguson
-fergusso
-feridoun
-ferland
-fermat
-fermi
-fermoyle
-fern
-fernald
-fernan
-fernand
-fernanda
-fernande
-fernandi
-fernando
-ferne
-ferner
-ferrao
-ferrara
-ferraro
-ferree
-ferreira
-ferrel
-ferrell
-ferrer
-ferrero
-ferriera
-ferrin
-ferris
-ferriss
-ferro
-ferruzzi
-ferstl
-fetterma
-fetting
-fetzko
-feutlins
-fevre-re
-fey
-feyen
-feynman
-fi-john
-fiann
-fianna
-fiaz
-ficco
-ficici
-ficken
-ficker
-fickes
-fidel
-fidela
-fidelia
-fidelio
-fidelity
-fidole
-fiegel
-fieke
-field
-fielden
-fielding
-fields
-fieldsup
-fierthal
-fiest
-fifi
-fifield
-fifine
-figura
-fijohn
-fikis
-fikre
-fil
-filbert
-filberte
-filberto
-fildey
-filer
-files
-files ar
-filia
-filibert
-filide
-filion
-filip
-filippa
-filippi
-filippo
-filis
-filkins
-fillmore
-filmer
-filmore
-filpus
-filson
-fima
-fin
-fina
-finak
-finance
-finane
-finckler
-findlay
-findley
-finkhels
-finlay
-finlayso
-finley
-finn
-finnegan
-finnerty
-finney
-finnie
-finnigha
-finnon
-fintan
-finucane
-finzel
-fiona
-fionan
-fionna
-fionnula
-fiore
-fiorenze
-fiorile
-firas
-firat
-firdaus
-firerobi
-firment
-firtos
-fischer
-fischett
-fischler
-fiset
-fisette
-fishenco
-fisher
-fishkin
-fishman
-fisico
-fisopn
-fisprod
-fiszman
-fitch
-fiteny
-fitness
-fitz
-fitzgera
-fitzgibb
-fitzpatr
-fitzroy
-fitzsimm
-fixsen
-flach
-flagg
-flaherty
-flanagan
-flanders
-flann
-flanner
-flansbur
-flatley
-fleet
-fleig
-fleische
-fleishma
-flem
-fleming
-flemming
-fleskes
-fletch
-fletcher
-fleuchau
-fleugel
-fleur
-fleurett
-fleurima
-fleury
-flewelli
-flexo
-flicking
-flin
-flindall
-flinn
-flint
-flintall
-flo
-floch
-flook
-flookes
-flor
-flora
-florance
-florante
-flore
-florella
-florence
-florenci
-florenti
-florenza
-flores
-florescu
-florette
-florez
-flori
-floria
-florian
-florida
-florie
-florina
-florinda
-florine
-floris
-florjanc
-florri
-florrie
-florry
-flory
-flossi
-flossie
-flossy
-flounder
-flowers
-floyd
-floysvik
-flss
-fludgate
-flueckin
-fluet
-fluney
-flury
-fluty
-flying
-flynn
-foad
-fobert
-focht
-focsanea
-focus
-fodell
-foderaro
-foeppel
-foessl
-foest
-fogelson
-foght
-fogle
-fogleman
-fok
-folashad
-foldes
-foley
-follett
-follick
-follmer
-folwell
-fon
-fondacar
-fong
-fonnie
-fons
-fonsie
-fontaine
-fontana
-fontanil
-fontanin
-fony
-fonz
-fonzie
-foods
-foong
-foos
-forbes
-forbrich
-forbs
-ford
-forden
-fordham
-forecast
-foreman
-forese
-forest
-forester
-forgeron
-forghani
-forgues
-forland
-formagie
-forno
-forouhar
-forrest
-forreste
-forrette
-forslund
-forst
-forster
-forsythe
-fortes
-fortier
-fortman
-fortner
-foss
-foster
-fothergi
-fotini
-fouad
-foubert
-foucault
-fouchard
-fougere
-fouillar
-fouke
-fouletie
-foulkes
-four
-fouret
-fourier
-fourkas
-fournel
-fourney
-fournier
-fouts
-fowler
-fowler-h
-fowles
-fowlkes
-fowlston
-fox
-foxworth
-fpsched
-fqa
-fraanky
-fradette
-fragnito
-fraley
-fralick
-fralix
-frampton
-fran
-franc
-france
-francene
-frances
-francesc
-francese
-franchot
-francic
-francine
-francis
-francisc
-francisk
-francisp
-franckli
-franckly
-francky
-franco
-francoeu
-francois
-francyne
-frangoul
-franics
-frank
-franka
-frankcom
-frankenb
-franki
-frankie
-frankle
-franklin
-franklyn
-frankos
-franks
-franky
-franni
-frannie
-franny
-frans
-fransis
-fransisc
-frantise
-frants
-frantz
-franz
-franza
-franze
-franzen
-franzky
-franzwa
-frape
-frasco
-fraser
-frasier
-frasquit
-fraties
-frayda
-fraze
-frazer
-frazier
-fred
-freda
-freddi
-freddie
-freddy
-fredek
-fredelia
-fredenbu
-frederic
-frederig
-frederik
-frederiq
-fredette
-fredi
-fredia
-fredimos
-fredine
-fredra
-fredric
-fredrick
-fredrika
-fredriks
-free
-freeburn
-freedman
-freek
-freeland
-freeley
-freeman
-freemand
-freemon
-freeth
-freiberg
-freida
-freimark
-freire
-freiwald
-freixe
-freksa
-fremont
-french
-frendo
-frenette
-freno
-fretz
-freud
-frey
-freya
-freyermu
-freyler
-frezzo
-fricker
-fricks
-fridel
-frie
-frieda
-friedber
-frieder
-friederi
-friedl
-friedlan
-friedman
-friedric
-frierson
-friesen
-frinel
-frink
-frisa
-frischkn
-frischli
-frisk
-friton
-fritz
-fritzie
-frizado
-frobel
-froberg
-frobishe
-frodsham
-froehlic
-froncek
-frondozo
-fronsee_
-fross
-frosst
-froud
-froukje
-frucci
-fruehauf
-frumerie
-fruscia
-fryar
-frydach
-frydman
-fryer
-fscocos
-fssup
-ftpsites
-fu
-fu-sheng
-fu-shin
-fu-zong
-fuchs
-fucito
-fugen
-fujii
-fujimaki
-fujimoto
-fujiwara
-fukui
-fukumoto
-fukunaga
-fulford
-fulk
-fulkerso
-fullager
-fuller
-fullmer
-fullum
-fulmer
-fulton
-fulvia
-fumerton
-fumio
-funamoto
-funderbu
-fung
-funston
-fuping
-fuqua
-furdoonj
-furgerso
-furlin
-furlow
-furmania
-furnas
-furrukh
-furst
-furuta
-fusca
-fusheng
-fuson
-fussell
-fuzal
-fuzong
-fwp
-fwpas
-fwpco
-fwpreg
-fwptools
-fyfe
-fysh
-fyske
-gaal
-gabato
-gabbai
-gabbard
-gabbey
-gabbi
-gabbie
-gabby
-gabe
-gabey
-gabi
-gabie
-gaboury
-gabriel
-gabriela
-gabriele
-gabriell
-gabrila
-gaby
-gach
-gaconnie
-gadbois
-gadher
-gadouchi
-gadsby
-gadzinow
-gae
-gaebel
-gael
-gaelan
-gaertner
-gaetan
-gaetanin
-gaetano
-gaffney
-gafford
-gaftea
-gagan
-gage
-gagne
-gagnier
-gagnon
-gahan
-gahir
-gahlot
-gahn
-gahr
-gahunia
-gaiarsa
-gaiger
-gail
-gaile
-gailya
-gaime
-gainer
-gaines
-gaiotti
-gaiser
-gaitan
-gaither
-gajendra
-gajewski
-gajowiak
-gal
-galanaki
-galasso
-galbrait
-galdwin
-gale
-gale
-galen
-galewski
-galina
-galipeau
-gallaghe
-gallais
-gallard
-gallegos
-gallenbe
-galligan
-gallinge
-gallion
-gallman
-gallo
-gallops
-gallouzi
-galloway
-galluzzi
-galois
-galt
-galvan
-galven
-galvez
-galvin
-gama
-gamal
-gamaleld
-gamaliel
-gamarnik
-gambrell
-gamelin
-gammage
-gamsa
-gan
-ganadry
-ganapath
-gandhi
-gane
-ganesan
-ganesh
-ganeshku
-gangnes
-gangotra
-ganguly
-gani
-gann
-ganness
-gannett
-gannie
-gannon
-gannot
-ganny
-gans
-gant
-gantt
-gapp
-gar
-gara
-garald
-garamvol
-garan
-garand
-garay
-garbis
-garbish
-garcia
-garcia-l
-garcia-m
-gard
-gardener
-gardie
-gardiner
-gardner
-gardy
-gare
-garee
-gareis
-garek
-gareth
-garey
-garfield
-garg
-garguilo
-gargul
-gargulak
-garik
-garinger
-garito
-garland
-garmon
-garneau
-garner
-garnet
-garnett
-garnette
-garney
-garo
-garold
-garp
-garrard
-garrek
-garret
-garreth
-garrett
-garrick
-garrik
-garrot
-garrott
-garry
-garth
-gartley
-gartshor
-garv
-garvey
-garvin
-garvy
-garwin
-garwood
-gary
-gascho
-gascon
-gasikows
-gaskins
-gaspar
-gaspard
-gasparo
-gasparot
-gasper
-gass
-gast
-gaston
-gasul
-gateau
-gateley
-gater
-gates
-gateway
-gatka
-gattrell
-gau-rong
-gaube
-gaudet
-gaudet-m
-gaudon
-gaudreau
-gaughan
-gaul
-gaulle
-gault
-gaultier
-gaunsezl
-gaurong
-gause
-gauss
-gautam
-gauthier
-gav
-gavan
-gaven
-gavens
-gavidia
-gavilluc
-gavin
-gavra
-gavriel
-gavriell
-gawain
-gawargy
-gawdan
-gawen
-gawronsk
-gawtrey
-gay
-gaye
-gayel
-gayelord
-gayl
-gayla
-gayle
-gayleen
-gaylene
-gayler
-gaylor
-gaylord
-gayman
-gaynor
-gayronza
-gazala
-gazier
-gazo
-gdowik
-ge
-geadah
-gean
-gearalt
-gearard
-geary
-gebhardt
-gebhart
-gebrael
-gedas
-geddes
-gedeon
-gedman
-gedra
-gedye
-gee
-gee-meng
-geer
-geert
-geesman
-geeta
-geetha
-geety
-gehm
-gehr
-gehring
-geiger
-geir
-geisler
-geksong
-gelais
-geldrez
-gelinas
-gell
-geller
-gelling
-gelo
-gelya
-gemmill
-gen
-gena
-genae
-gendre
-gendron
-gene
-geneau
-general
-generalc
-generato
-genet
-geneva
-geneviev
-genevra
-genga
-genge
-genia
-genie
-genna
-gennaro
-genni
-gennie
-gennifer
-genny
-geno
-genova
-genovera
-genovise
-genowefa
-gentes
-gentzler
-genvieve
-geoff
-geoffrey
-geoffrio
-geoffry
-georas
-geordie
-georg
-georgann
-george
-georgean
-georgena
-georges
-georgesc
-georgeta
-georgett
-georghio
-georgi
-georgia
-georgian
-georgie
-georgina
-georgine
-georgio
-georgiou
-georgy
-ger
-gera
-gerald
-geralda
-geraldin
-geralene
-gerard
-gerardja
-gerardo
-gerassim
-gerbec
-gerben
-gerber
-gerda
-gerek
-gerenser
-gergen
-gerhard
-gerhardi
-gerhardt
-gerhart
-geri
-gerianna
-gerianne
-gerick
-gerik
-gerladin
-gerlich
-gerlinsk
-gerlt
-germ
-germain
-germaine
-germana
-germano
-germayne
-germe
-gernot
-gerome
-gerrard
-gerri
-gerrie
-gerrilee
-gerrit
-gerritse
-gerry
-gershwin
-gerstmar
-gert
-gerta
-gerth
-gerti
-gertie
-gertridg
-gertrud
-gertruda
-gertrude
-gertrudi
-gerty
-gervais
-gervaise
-gery
-gerynowi
-gesine
-gesino
-gessford
-getchell
-getoor
-gettys
-geuder
-gewell
-geyer
-geza
-ghadisha
-ghaemi
-ghaemian
-ghaffari
-ghandi
-ghanem
-ghangurd
-ghani
-ghantous
-ghartey
-ghasemia
-ghassan
-ghassem
-ghatta
-ghazi
-gheciu
-ghelardu
-gheorghe
-gherardo
-ghidali
-ghislain
-ghobad
-gholamre
-ghorashy
-ghosh
-ghossein
-ghulam
-ghulati
-gia
-giacinta
-giacobo
-giacomo
-giacopo
-giallo
-giamatte
-giambatt
-giambera
-giampaol
-gian
-giana
-giandome
-giang
-giani
-gianina
-gianna
-gianni
-giao
-giap
-giarritt
-giavani
-gib
-gibb
-gibbie
-gibbins
-gibbons
-gibbs
-gibby
-gibeault
-giblin
-gibson
-gidaro
-gideon
-gidget
-gie-ming
-giekes
-gieming
-gierka
-giertych
-giesbrec
-gieschen
-giese
-giff
-giffard
-giffer
-giffie
-gifford
-giffy
-giggey
-gigi
-giguere
-gigus
-gihan
-gihyun
-gil
-gilbert
-gilberta
-gilberte
-gilberti
-gilberto
-gilberts
-gilburt
-gilchris
-gilda
-gilemett
-giles
-giliham
-gill
-gillan
-gillard
-gille
-gillelan
-gilles
-gillespi
-gillespy
-gillet
-gillette
-gilli
-gilliam
-gillian
-gilliard
-gillie
-gillies
-gillig
-gilligan
-gillilan
-gillis
-gillon
-gillot
-gillstro
-gilly
-gilmore
-gilmour
-gilstorf
-gimon
-gin
-gina
-ginelle
-ginest
-ginette
-ginetto
-ginevra
-ginger
-gingeric
-gingold
-gingras
-gingrich
-gini
-ginn
-ginni
-ginnie
-ginnifer
-ginny
-gino
-ginsberg
-gint
-gintaras
-ginzburg
-gio
-gioffre
-gionet
-giordano
-giorgi
-giorgia
-giorgio
-giorgos
-giotis
-giovanna
-giovanni
-giovinaz
-gipsy
-giralda
-giraldo
-girard
-giraud
-girgis
-giri
-giridhar
-girish
-girotti
-girouard
-giroux
-girvan
-gisbert
-gisela
-giselber
-gisele
-gisella
-giselle
-gita
-gittins
-giuditta
-giuhat
-giulia
-giuliani
-giuliett
-giulio
-giuntini
-giuseppe
-giustina
-giustino
-giusto
-gize
-gizela
-glad
-gladi
-gladstei
-gladys
-glancey
-glanfiel
-glaros
-glasa
-glaser
-glasgow
-glass
-glasser
-glast
-glaszcza
-glazer
-gleason
-gleda
-gleditsc
-glembosk
-glen
-glenda
-glenden
-glendon
-glenine
-glenn
-glenna
-glennie
-glennis
-glew
-glickman
-glidewel
-glinka
-glinski
-glofches
-glori
-gloria
-gloriana
-gloriane
-glornia
-glory
-glover
-glowa
-glucksma
-glymph
-glyn
-glynda
-glynis
-glynn
-glynnis
-gnaeding
-gnni
-go
-goangshi
-goatcher
-goba
-gobeil
-gobeli
-goble
-gockel
-godard
-godart
-godcharl
-goddard
-goddart
-godden
-goddette
-godfree
-godfrey
-godfry
-godin
-godina
-godish
-godiva
-godley
-godlingt
-godo
-godowsky
-godse
-godsoe
-godwin
-goei
-goel
-goell
-goeltzen
-goerss
-goertz
-goertzen
-goethe
-goetz
-goff
-gofron
-goggin
-goh
-goheen
-goin
-goins
-gokal
-gokul
-gokul-ch
-golari
-golas
-golaszew
-golczews
-golda
-goldarin
-goldberg
-goldenbe
-goldenso
-golder
-goldfiel
-goldi
-goldia
-goldie
-goldina
-goldman
-goldmann
-goldner
-goldschm
-goldstei
-goldthor
-goldwyn
-goldy
-golia
-goliss
-golka
-goller
-gollu
-golshan
-gombos
-gomes
-gomez
-gomm
-gong-lia
-gonglian
-goniotak
-gonsalve
-gonzaga
-gonzales
-gonzalez
-gonzalo
-goober
-gooch
-goodbar
-goode
-gooderha
-goodfell
-goodier
-goodinso
-goodman
-goodner
-goodridg
-goodrow
-goodson
-goodwin
-goofy
-goold
-gooley
-goos
-gopal
-gopaul
-gope
-gopisett
-goran
-gorasia
-goraud
-gorberg
-gord
-gordan
-gorde
-gorden
-gordie
-gording
-gordon
-gordy
-gorenflo
-gores
-gorfine
-gorham
-gorhum
-goricane
-goridkov
-goring
-gorius
-gorlick
-gorman
-gorsky
-gorton
-gorzocos
-goska
-goss
-gosselin
-gosset
-gostania
-goswick
-goszczyn
-gotch
-gotchall
-goth
-gothard
-gothart
-gottfrie
-gottlieb
-gottscha
-gottstei
-gou-don
-goudon
-goudreau
-gougeon
-gough
-gouhara
-goukon
-gould
-gouldson
-goulet
-goulette
-goulfine
-goupil
-gourley
-goutam
-govind
-govindan
-govindar
-govindas
-gow-jen
-gowan
-gowda
-gowens
-gower
-gowin
-gowjen
-gowl
-gowland
-goyal
-goyer
-goyette
-goza
-gozani
-gozen
-grabner
-grabowsk
-grace
-gracen
-gracey
-gracia
-gracie
-graciela
-gracinda
-gracomda
-gradeigh
-grader
-gradey
-grading
-grads
-grady
-graehme
-graeme
-graessle
-graff
-grafton
-graham
-graibe
-graig
-grainger
-gram
-graman
-grame
-gramiak
-gran
-granado
-granata
-grandboi
-grande
-grandmas
-grandump
-grandy
-granfiel
-grange
-granger
-granic
-granner
-grannie
-granny
-grant
-grantham
-granthem
-grantley
-granvill
-graphics
-grasman
-grason
-grassman
-grata
-gratia
-gratiana
-gratton
-grau
-grauer
-grausso
-gravelle
-gravely
-graver
-graves
-gravitt
-gravitte
-grawberg
-gray
-graybill
-grayce
-graydon
-grayson
-grazia
-graziano
-grazzini
-greaney
-greatest
-greaver
-greaves
-grebil
-grebner
-greco
-greeley
-greenber
-greene
-greenfie
-greenlee
-greenstr
-greenway
-greer
-greet
-greg
-gregaric
-greger
-gregg
-gregge
-greggory
-grego
-gregoire
-gregoor
-gregor
-gregor-p
-gregorio
-gregoriu
-gregorsk
-gregory
-grelck
-grenier
-grenon
-grenvill
-greszczu
-gret
-greta
-gretal
-gretchen
-grete
-gretel
-grethel
-gretna
-gretta
-grevelin
-grevy
-grewal
-grey
-greytock
-gribbon
-gribbons
-grier
-griet
-grietje
-griff
-griffie
-griffin
-griffioe
-griffith
-griffy
-grigg
-griggs
-grignon
-grigsby
-grillmey
-grills
-grimble
-grimes
-grimm
-grimmell
-grimshaw
-grimsley
-griner
-grinham
-grinnell
-gris
-griselda
-grisoni
-grissel
-grissom
-griswold
-gritton
-grixti
-griz
-groce
-grochau
-grodecki
-groetsem
-groff
-grogan
-grohovsk
-groleau
-grona
-grondin
-gronwall
-grooms
-grootenb
-gros
-grosh
-grosjean
-grosman
-grosse
-grossman
-grossutt
-groth
-groulx
-grove
-grover
-groves
-grovesti
-growden
-growler
-gruau
-grubbs
-gruber
-grueneic
-grueng
-gruenhag
-grund
-gruska
-gruszczy
-gryder
-grzegore
-grzegorz
-grzesik
-gsite
-gu
-guajardo
-gualteri
-guan
-guanglia
-guangyou
-guanyun
-guarez
-guarino
-guarnera
-guatto
-guay
-gubbins
-gubenco
-gucer
-guciz
-gudgeon
-gudrun
-guendole
-guenette
-guenever
-guenna
-guenther
-guercion
-guerette
-guerin
-guerrero
-guerrier
-guertin
-guests
-guevara
-guglielm
-gui
-guido
-guignon
-guilbaul
-guilbert
-guilford
-guilfoyl
-guillaum
-guillema
-guilleme
-guillerm
-guillet
-guillory
-guilmett
-guimond
-guin
-guindi
-guindon
-guinever
-guinn
-guinna
-guinnane
-guiqing
-guirguis
-guisler
-guitard
-guitaris
-gulbrand
-gulick
-gulis
-gulko
-gullekso
-gultekin
-gulvin
-gumb
-gumbley
-gummadi
-gumperz
-gun
-gunadhi
-gunar
-gunars
-gunaseke
-gunawan
-gundecha
-gunderse
-gunderso
-gundes
-gundlach
-gundry
-guner
-gunfer
-gung
-gungor
-gunilla
-gunkel
-gunn
-gunnar
-gunnells
-gunner
-gunshor
-guntar
-guntekin
-gunter
-gunther
-guntvedt
-guo
-guo-jie
-guo-qian
-guoben
-guochun
-guojie
-guoming
-gupta
-gupton
-gur-arie
-gurash
-gurchara
-gurdip
-gure
-gurer
-gurevitc
-gurgenci
-gurica
-gurjinde
-gurjit
-gurley
-gurmeet
-gurnam
-gurney
-gursahan
-gurshara
-gursin
-gurvinde
-gus
-gusella
-guss
-gussi
-gussie
-gussy
-gusta
-gustaf
-gustafso
-gustafss
-gustav
-gustave
-gustavo
-gustavus
-gusti
-gustie
-gustlin
-gusty
-gutcher
-gutermut
-guth
-guthrey
-guthrie
-guthro
-guthry
-gutierre
-guttman
-guty
-gutzmann
-guy
-guy-arbo
-guylain
-guylaine
-guyot
-guzman
-gwen
-gwenda
-gwendole
-gwendoli
-gwendoly
-gweneth
-gwenette
-gwenneth
-gwenni
-gwennie
-gwenny
-gwennyth
-gwenora
-gwenore
-gwo-chun
-gwo-hsin
-gwochung
-gwohsing
-gwyn
-gwyneth
-gwynith
-gwynne
-gyenes
-gyeongbe
-gyger
-gylys
-gyoung
-gypsy
-gysel
-gyula
-gyurcsak
-gyurcsik
-gzl
-ha
-haack
-haaksman
-haas
-habeeb
-habel
-habelrih
-haber
-haberman
-habert
-habib
-hachador
-hache
-hachelle
-hachey
-hack-hoo
-hacker
-hackett
-hacking
-had
-hadaway
-haddad
-hadden
-haddow
-hadel
-hadi
-hadiraha
-hadlee
-hadleigh
-hadley
-hadria
-hadrian
-hady
-hadziome
-hae-won
-haerle
-haertel
-haether
-haewon
-hafedh
-hafeezah
-hafermal
-hafiz
-hafleigh
-hagan
-hagar
-hage
-hagen
-hagenbuc
-hager
-hagerty
-hagewood
-haggar
-haggart
-haggarty
-haggerty
-hagglund
-haghighi
-hagley
-hagstrom
-hagwood
-hahn
-hai
-hai-ning
-hai-ping
-hai-shun
-haibo
-haifang
-haig
-haigh
-hailee
-hailes
-hailey
-haily
-haim
-haimson
-hainer
-haines
-haining
-hainline
-haiping
-haire
-hairil
-haishung
-hak-lay
-hakala
-hakan
-hakansso
-hakeem
-hakim
-haklay
-hal
-hala
-halbedel
-halbert
-hale
-haleigh
-halejak
-halet
-halette
-haley
-half
-halford
-hali
-halicki
-halie
-halimeda
-halina
-hall
-hallamas
-hallenbe
-haller
-hallett
-halley
-halli
-hallie
-halligan
-halliwil
-hallman
-hallsy
-hally
-halovani
-halpenny
-halpern
-halpin
-halsey
-halstead
-halsy
-haluk
-halula
-ham
-hamachi
-hamavand
-hambali
-hambone
-hamdy
-hameed
-hamel
-hamelin
-hamid
-hamidi
-hamil
-hamilton
-hamish
-hamlen
-hamlett
-hamlin
-hamliton
-hammad
-hammel
-hammerli
-hammerme
-hammond
-hammonds
-hamner
-hamnet
-hamori
-hamoui
-hampel
-hampshir
-hampson
-hampton
-hamra
-hamsa
-hamzeh
-han
-han-chie
-han-co
-han-fei
-han-tak
-han-van
-hana
-hanan
-hanchieh
-hanco
-hancock
-handel
-handfort
-handley
-handoko
-handschy
-hane
-hanel
-haney
-hanfei
-hanford
-hang-ton
-hangbok
-hanger
-hangup
-hanh
-hanham
-hanhb
-hanhua
-hani
-haningto
-hanja
-hank
-hankins
-hanlan
-hanley
-hann
-hanna
-hannah
-hanneke
-hanneman
-hanni
-hannibal
-hannible
-hannie
-hannis
-hanns
-hannula
-hanny
-hanrahan
-hans
-hans-pet
-hansen
-hanser
-hansiain
-hanson
-hanspete
-hansquin
-hansraj
-hansson
-hantak
-hanzel
-hanzlice
-hao
-hao-nhie
-hao-yung
-haonhien
-haoyung
-happy
-harabedi
-harada
-haralamb
-harald
-harapiak
-harbert
-harbord
-harbottl
-harbour
-harcourt
-hardage
-hardcast
-hardee
-harderse
-hardi
-hardiman
-hardin
-harding
-hardison
-hardman
-hardwick
-hardy
-hardyal
-hardyck
-hardyman
-haren
-hareton
-hargadon
-hargreav
-hargrove
-hargrow
-hari
-harianto
-harihara
-hariman
-harinder
-harish
-harishan
-harker
-harkness
-harlan
-harland
-harlen
-harlene
-harles
-harless
-harley
-harli
-harlie
-harlin
-harm
-harman
-harmeet
-harmi
-harmon
-harmonia
-harmonie
-harmony
-harms
-harn
-harold
-haroon
-harootun
-haroun
-haroutou
-harp
-harpal
-harpe
-harper
-harpreet
-harrawoo
-harrell
-harri
-harrie
-harriet
-harriett
-harringt
-harriot
-harriott
-harris
-harrison
-harrod
-harron
-harry
-harsch
-harshad
-harsham
-harshava
-harshfie
-hart
-harte
-hartell
-harter
-hartford
-hartgrov
-hartin
-hartkopf
-hartland
-hartleb
-hartley
-hartling
-hartman
-hartmann
-hartmut
-hartney
-hartsell
-hartwell
-harty
-hartzel
-haruko
-harv
-harvard
-harvey
-harville
-harvison
-harwell
-harwerth
-harwilll
-harwood
-hasan
-hasbrouc
-hasegawa
-hasen
-hasham
-hasheem
-hashem
-hashemi
-hashim
-hashimot
-haskel
-haskell
-haskins
-haslach
-hasler
-haslett
-hasmukhb
-hasnain
-hassan
-hassenkl
-hassey
-hassnzah
-hassold
-haste
-hasted
-hastic
-hastie
-hastings
-hasty
-hata
-hatcher
-hatchett
-hately
-hatfield
-hathaway
-hatridge
-hattar
-hatten
-hatti
-hattie
-hattingh
-hatty
-hatz
-hatzenbi
-hau
-haubert
-hauck
-hauersto
-haufe
-hauge
-haughey
-haughwou
-haugrud
-haupt
-haurie
-hause
-hauser
-hautanen
-havelock
-haveman
-haven
-haverkam
-haverty
-havis
-hawes
-hawi
-hawk
-hawken
-hawker
-hawkes
-hawkin
-hawkins
-hawley
-hawryluk
-hawrysh
-hawryszk
-hawthorn
-hayden
-haydock
-haydon
-haydt
-hayes
-hayley
-haylock
-hayman
-haynes
-haynor
-hayward
-haywood
-hayyim
-haze
-hazel
-hazeldin
-hazell
-hazelrig
-hazelton
-hazem
-hazen
-hazenboo
-hazlett
-hdbright
-hdi
-he
-heald
-healey
-heall
-health-s
-healy
-heaney
-hearn
-hearnden
-hearst
-heath
-heather
-heaton
-hebbar
-hebe
-hebert
-heckbert
-heckman
-hector
-heda
-hedda
-heddell
-heddi
-heddie
-heddy
-hedi
-hedin
-hedke
-hedman
-hedrich
-hedrick
-hedvig
-hedvige
-hedwig
-hedwiga
-hedy
-hee
-heeralal
-heeten
-hefferna
-heffner
-hegarty
-hegelian
-hehn-sch
-heida
-heide
-heidebre
-heidepri
-heidi
-heidie
-heighton
-heike
-heikkila
-heile
-heilig
-heiliger
-heilsnis
-hein
-heindric
-heinen
-heinjus
-heinke
-heino
-heinonen
-heinrich
-heinrick
-heinrik
-heinz
-heinzing
-heinzman
-heisler
-heitmann
-hekel
-heki
-helaina
-helaine
-heldenbr
-heleen
-helem
-helen
-helen-el
-helena
-helene
-heleneli
-helenka
-helfrick
-helga
-helge
-helgelan
-helio
-helkaa
-hella
-hellberg
-hellen
-heller
-hellerst
-helli
-hellmut
-helluva
-hellyer
-helma
-helms
-helmut
-helmuth
-helmy
-heloise
-helpb
-helpline
-helsa
-helseth
-helstab
-helton
-helwege
-helyn
-hemant
-hembrick
-hemens-d
-hemme
-hemmerle
-hemphill
-hempinst
-hempstea
-henao
-hench
-henderso
-hendra
-hendren
-hendrick
-hendrik
-hendrika
-hendriks
-hendry
-hendryck
-hendy
-henein
-heng
-hengameh
-hengda
-hengevel
-hengl
-hengst
-henk
-henk smi
-henka
-henley
-henline
-henneber
-hennebur
-hennelly
-hennessy
-hennie
-henninge
-hennon
-hennriet
-henny
-henri
-henrie
-henrieta
-henriett
-henrik
-henrika
-henrikse
-henry
-henryett
-hensen
-henshaw
-hensley
-henson
-henstock
-henthorn
-hepburn
-hephziba
-heping
-heppell
-heppes
-hera
-herak
-herb
-herbel
-herberge
-herbers
-herbert
-herbie
-herby
-herc
-hercule
-hercules
-herculie
-here's t
-heredia
-heribert
-hering
-herlihy
-herling
-herm
-hermack
-herman
-hermann
-hermann-
-hermanns
-hermes
-hermia
-hermie
-hermien
-hermina
-hermine
-herminia
-hermione
-hermon
-hermy
-hernan
-hernande
-hernando
-herndon
-hernek
-herner
-herng-je
-herngjen
-hernon
-hernzlia
-herod
-herold
-heroux
-herr
-herrage
-herralio
-herre
-herren
-herrera
-herrick
-herring
-herringt
-herriott
-herrmann
-herron
-herronal
-herryjan
-hersch
-herschel
-herscovi
-hersee
-hersh
-hershber
-hershel
-herskovi
-herta
-hertha
-hertler
-hertzog
-herve
-hervey
-herzig
-hesche
-hesham
-hesk
-hesketh
-heslop
-hess
-hesse
-hester
-hesther
-hestia
-hetti
-hettie
-hetty
-hetzel
-heung
-heunis
-heurich
-hew
-hewage
-hewe
-hewer
-hewet
-hewett
-hewie
-hewitt
-hewlet
-hews
-heybroek
-heydon
-heyer
-heynen
-heys
-heystrae
-heyward
-heywood
-hi
-hiawatha
-hibberd
-hibler
-hichem
-hickerso
-hickey
-hickin
-hickman
-hickman-
-hickox
-hicks
-hidaka
-hideki
-hideo
-hiebsch
-hien
-hienz
-hieronym
-hiers
-higginbo
-higgins
-higham
-highet
-highsmit
-hight
-hightowe
-higuchi
-hijab
-hikita
-hil
-hilaire
-hilario
-hilarius
-hilary
-hilberma
-hilbert
-hilbig
-hilda
-hildagar
-hilde
-hildebra
-hildegaa
-hildegar
-hilder
-hildum
-hildy
-hilfinge
-hill
-hilla
-hillard
-hillary
-hillel
-hiller
-hillery
-hilliard
-hilliary
-hillidge
-hillie
-hillier
-hillring
-hills
-hillson
-hilly
-hillyer
-hilmi
-hils
-hilton
-hiltz
-hilwa
-himanshu
-himawan
-himraj
-hin-wai
-hincher
-hinchey
-hinchley
-hinda
-hindle
-hinds
-hindson
-hine
-hiner
-hines
-hing
-hing-fai
-hingtgen
-hink
-hinkel
-hinkins
-hinkle
-hinojosa
-hinsdale
-hinshaw
-hinson
-hinton
-hinton-s
-hinz
-hinze
-hipp
-hippert
-hipson
-hirakawa
-hiraki
-hiram
-hirayama
-hiren
-hirofumi
-hirohama
-hiroki
-hiroko
-hiromi
-hiromu
-hironaga
-hirooki
-hirose
-hiroshi
-hirotaka
-hiroto
-hirotosh
-hiroyuki
-hirsch
-hirshman
-hisaki
-hiscoe
-hiscott
-hisham
-hishchak
-hisko
-hislop
-hitchcoc
-hitching
-hite
-hitler
-hitoshi
-hiusser
-hively
-hixon
-hixson
-hjartars
-hjorth
-hlady
-hlausche
-hlinka
-hm
-hnidek
-ho
-ho-mu
-hoa
-hoa-van
-hoadley
-hoag
-hoagland
-hoang
-hoare
-hobard
-hobart
-hobbs
-hoben
-hobesh
-hobey
-hobgood
-hobie
-hobin
-hoch
-hochbaum
-hochberg
-hock
-hockaday
-hockster
-hoctor
-hocutt
-hodder
-hoddinot
-hodedo
-hodge
-hodgens
-hodges
-hodgins
-hodgkin
-hodgkiss
-hodgson
-hoebart
-hoeg
-hoehling
-hoehn
-hoek
-hoeksma
-hoekstra
-hoeler
-hoelsche
-hoequist
-hoes
-hoferek
-hoffelt
-hoffman
-hoffmann
-hoffmeis
-hoffpaui
-hoffsted
-hofmann
-hofmeist
-hofstede
-hofstett
-hogan
-hogeboom
-hogg
-hoggan
-hoggatt
-hogue
-hohmeyer
-hohn
-hoi-kin
-hojjat
-holberry
-holbrook
-holcomb
-holcombe
-holcroft
-hold of
-holdaway
-holden
-holder
-holdren
-holesing
-holinski
-hollack
-holland
-hollande
-hollands
-hollbach
-hollen
-hollenba
-hollenbe
-hollenst
-holleran
-holley
-holli
-holliday
-hollie
-hollings
-hollingt
-hollingw
-hollis
-holliste
-holloway
-hollran
-holly
-holly-an
-hollyann
-holm
-holman
-holmans
-holmer
-holmes
-holmquis
-holness
-holsclaw
-holst
-holt
-holterma
-holthaus
-holton
-holtz
-holtze
-holvey
-holy
-holz
-hom
-homa
-homan
-homayoon
-homayoun
-homer
-homere
-homerus
-homonick
-homu
-hon
-hon-kong
-hon-son
-honbarri
-honda
-honey
-honeycut
-hong
-hong-che
-hong-yuh
-hongchen
-hongtao
-hongyuh
-hongzhi
-honkakan
-honmun
-honor
-honoria
-honson
-honzo
-hoog
-hooi-lee
-hooker
-hooks
-hoon
-hooper
-hoorman
-hooshang
-hooton
-hoover
-hopcroft
-hope
-hopf
-hopkin
-hopkins
-hopkinso
-hopley
-hoppenwo
-hopper
-hopson
-hoptoad
-hoque
-hor
-hor-lam
-horace
-horacio
-horak
-horalek
-horatia
-horatio
-horatius
-horban
-hord
-hore
-horemans
-horgan
-horianop
-horkoff
-hormoz
-hornacek
-hornbeck
-hornbeek
-hornburg
-horne
-horng
-horngdar
-horning
-hornung
-horowitz
-horsfiel
-horst
-horstman
-hort
-horten
-hortense
-hortensi
-horton
-horus
-horvath
-horwitz
-horwood
-hosang
-hosanna
-hoscheid
-hoseok
-hoshi
-hosier
-hoskin
-hosking
-hoskins
-hosneld
-hossein
-hosseini
-hot
-hotline
-hotlist
-hotson
-hotta
-houde
-houdini
-houghton
-houk
-houle
-houn
-hounsell
-houssam
-houssein
-houston
-hoverman
-hovey
-hovinga
-how
-how-kee
-howald
-howard
-howarth
-howat
-howden
-howe
-howe-pat
-howekamp
-howell
-howerton
-howes
-howey
-howie
-howlett
-howley
-howorth
-howse
-hoxie
-hoy
-hoyer
-hoyt
-hpldt
-hpone
-hq
-hqs
-hr
-hrdata
-hrenyk
-hrinfo
-hrubik
-hruby
-hrushowy
-hruska
-hrvatin
-hsi
-hsi-ho
-hsiang
-hsiao
-hsiao-ch
-hsiao-we
-hsiao-yu
-hsiaochi
-hsiaosu
-hsiaowei
-hsiaoyun
-hsieh
-hsien
-hsiho
-hsin
-hsin-li
-hsin-shi
-hsing
-hsing-ju
-hsinli
-hsiung
-hsketh
-hspice
-hsu
-hsuan
-hsueh
-htd
-hu
-hua
-hua-yuan
-huai
-huan
-huan-yu
-huanbo
-huang
-huasheng
-huashi
-huay-yon
-huayuan
-huayyong
-hubal
-hubbard
-hubbell
-hube
-huber
-huberman
-hubers
-hubert
-huberto
-hubey
-hubie
-hubley
-huboi
-hudai
-hudak
-huddlest
-hudecek
-hudepohl
-hudgins
-hudson
-hudy
-hudyma
-huel-she
-huelshen
-huelsman
-hueneman
-huerta
-huestis
-huether
-huetu
-huey
-huey-kuo
-hueykuo
-hufana
-huffman
-hugel
-huggins
-hugh
-hughes
-hughes-c
-hughey
-hughie
-hughson
-hugibert
-hugo
-hugues
-huguette
-huguin
-huhn
-hui
-hui-chau
-hui-neng
-huib
-huichaun
-huifang
-huineng
-huiqi
-huitt
-huizhao
-hukam
-hulda
-hulen
-hulett
-huligang
-hulk
-hulme
-hulst
-hultgren
-hulversh
-hulze
-humbert
-humberto
-humboldt
-hume
-humenik
-humenuk
-humes
-humfrey
-humfrid
-humfried
-humiston
-hummel
-hummerst
-humphrey
-humphrie
-hundries
-huneault
-hunfredo
-hung
-hung-kan
-hung-win
-hungkai
-hungkang
-hungle
-hungquoc
-hungwing
-hunike
-hunnicut
-hunsberg
-hunsucke
-hunt
-hunter
-huntingt
-huntlee
-huntley
-huo-yen
-huong
-huor
-huot
-huoyen
-hupe
-huppert
-hurd
-huret
-hurf
-hurlee
-hurleigh
-hurley
-hurman
-hurst
-hurtado
-hurteau
-hurtubis
-hurwitz
-husain
-husam
-husarewy
-husein
-hussain
-hussam
-hussein
-husser
-hussey
-hussien
-hustin
-huston
-huszar
-huszarik
-hutchers
-hutchin
-hutching
-hutchins
-hutchiso
-hutson
-hutt
-hutter
-hutton
-huub
-huuliem
-huxley
-huy
-huyen
-huynh
-huyvan
-huzur
-hvezda
-hwa
-hwajin
-hwan
-hwang
-hwayong
-hwei-lin
-hy
-hyacinth
-hyatt
-hydar
-hyde
-hyen
-hyer
-hyerle
-hyers
-hyjek
-hylaride
-hyman
-hymie
-hynda
-hyndman
-hynek
-hyong-ju
-hyongjun
-hyonil
-hyoungju
-hyperspa
-hyrne
-hysler
-hyslop
-hyte
-hyun
-hyunchul
-hyung
-i-chao
-i-ching
-iacoviel
-iacovo
-iago
-iain
-ian
-ianace
-iannotti
-iannozzi
-iantaffi
-ianthe
-iaquinto
-iarocci
-ibach
-ibarra
-ibbie
-ibby
-ibntas
-ibrahim
-ibsen
-iburg
-ic
-iceman
-ichabod
-ichao
-iching
-ichiro
-ichizen
-icy
-icylyn
-id
-ida
-idalia
-idalina
-idaline
-ide
-idell
-idelle
-idette
-idris
-idt
-idus
-ie
-iem
-ientile
-iezzi
-if anyon
-ifact
-ifill
-iftekhar
-ifti
-igarashi
-iggie
-igglesde
-iggy
-ignace
-ignacio
-ignacius
-ignatius
-ignaz
-ignazio
-igor
-iguchi
-igusa
-ihnat
-ihor
-ijaz
-ijff
-ike
-ikeda
-ikey
-ikotin
-ikram
-ikuo
-ilaire
-ilan
-ilana
-ilario
-ilda
-ileana
-ileane
-ilene
-ilic
-ilise
-ilk
-ilka
-illa
-illamchi
-illidge
-illinois
-ilmberge
-ilona
-ilovich
-ilowski
-ilsa
-ilse
-ilsup
-ilwhan
-ilya
-ilyas
-ilyess
-ilysa
-ilyse
-ilyssa
-ima
-iman
-imbemba
-imelda
-imhof
-imi
-immanuel
-imming
-imogen
-imogene
-imojean
-impaglia
-imran
-imre
-imtaz
-imtiaz
-in-beum
-in-cheol
-in-hwan
-ina
-inam
-inamulla
-inan
-inanc
-inbeum
-ince
-incheol
-incze
-ind
-indahl
-indar
-independ
-inderjit
-indiana
-indianaj
-indira
-indra
-indy
-ineke
-ines
-inesita
-inessa
-inez
-info
-info-man
-infocent
-ing
-inga
-ingaberg
-ingaborg
-ingamar
-ingar
-inge
-ingeberg
-ingeborg
-ingelber
-ingell
-ingemar
-inger
-ingersol
-ingie
-ingle
-ingleber
-ingles
-ingling
-inglis
-ingmar
-ingo
-ingra
-ingram
-ingres
-ingrey
-ingrid
-ingrim
-ingunna
-ingvar
-inho
-inhulsen
-inhwan
-inigo
-inm
-inman
-inna
-innchyn
-innes
-inness
-innis
-inniss
-innocent
-inoue
-inquire
-inrig
-inscoe
-insp
-inspecti
-instal
-installe
-integ
-integrat
-intemann
-interact
-interfac
-intihar
-intplan
-intune
-inyoung
-ioan
-ioana
-ioannes
-ioannidi
-ioannis
-ioannou
-iocca
-iocntrl
-iola
-iolande
-iolanthe
-iona
-ione
-iorgo
-iorgos
-iormina
-iosep
-ioui
-ip
-ipadmin
-ipokrati
-ippolito
-iqbal
-ira
-iradj
-iraj
-irani
-irby
-irc
-ircbellc
-irccar
-ircinter
-ircmarke
-ircmer
-ircmtl
-ircstand
-irean
-ireland
-irena
-irene
-irfan
-irias
-iribarre
-irice
-irick
-irina
-iris
-irish
-irissou
-irita
-irma
-irv
-irvin
-irvine
-irving
-irwin
-irwinn
-is a cat
-isa
-isaac
-isaacs
-isaak
-isabeau
-isabel
-isabelit
-isabell
-isabella
-isabelle
-isac
-isacco
-isador
-isadora
-isadore
-isahella
-isaia
-isaiah
-isak
-isami
-isbister
-iseabal
-isenor
-isensee
-isert
-isfan
-ishak
-ishan
-ishee
-isherwoo
-ishii
-ishikida
-ishimoto
-isiahi
-isidor
-isidora
-isidore
-isidoro
-isidro
-isin
-isip
-isis
-iskandar
-iskender
-iskra
-isl
-islam
-isley
-ismael
-ismail
-isobel
-isoft
-isolde
-israel
-issa
-issam
-issi
-issiah
-issie
-issy
-itac
-itah
-italo
-italus
-itaru
-itas
-itaya
-itch
-iteam
-iteke
-ito
-its-eng
-iu
-iva
-ivan
-ivancevi
-ivancic
-ivanhoe
-ivanoff
-ivanyi
-ivar
-ive
-iver
-ivers
-iversen
-iverson
-ives
-ivett
-ivette
-ivey
-ivie
-ivo
-ivona
-ivonne
-ivor
-ivory
-ivy
-iwan
-iwanyk
-iwashita
-iwona
-iws
-iyad
-iyengar
-iyer
-iyun
-izaak
-izabel
-izak
-izbinsky
-izchak
-izique
-izora
-izumi
-izuru
-izzat
-izzo
-izzotti
-izzy
-j-franco
-jaakkola
-jaan
-jabbari
-jabez
-jabir
-jablonsk
-jabreen
-jacalyn
-jacek
-jacenta
-jachym
-jacinda
-jacinta
-jacintha
-jacinthe
-jack
-jackelyn
-jacki
-jackie
-jacklin
-jacklyn
-jackman
-jackquel
-jackson
-jacky
-jackye
-jaclin
-jaclyn
-jacob
-jacobo
-jacobs
-jacobsen
-jacobson
-jacque
-jacqueli
-jacquely
-jacquene
-jacques
-jacquett
-jacqui
-jacquie
-jacynth
-jacynthe
-jada
-jade
-jadwiga
-jae
-jae-koo
-jae-whan
-jaekoo
-jaenen
-jaewhang
-jaffer
-jag
-jagan
-jagat
-jagath
-jagatic
-jagdev
-jagdish
-jager
-jagernau
-jagjeet
-jagjit
-jagla
-jago
-jagodzin
-jagriti
-jags
-jahangir
-jahromi
-jai
-jaijeet
-jaikne
-jailyn
-jaime
-jaimie
-jaimin
-jain
-jaine
-jak
-jakab
-jakabffy
-jakb
-jake
-jakeman
-jaki
-jakie
-jakim
-jakob
-jakola
-jakstys
-jakubows
-jalaie
-jalal
-jalali
-jalaliza
-jalbert
-jalilvan
-jama
-jamaal
-jamal
-jamaly
-jaman
-jamel
-jamensky
-jamer
-james
-james_mi
-jamesett
-jameson
-jamesy
-jamey
-jami
-jamie
-jamieson
-jamil
-jamilah
-jamill
-jamima
-jamin
-jamison
-jammal
-jammie
-jammu
-jamnejad
-jamroz
-jamshed
-jamshid
-jamshidi
-jan
-jan-olof
-jan-robe
-jana
-janak
-janaki
-janaratn
-janaya
-janaye
-jancewic
-jancovic
-janczyn
-janda
-jande
-jandy
-jane
-janean
-janecka
-janeczka
-janeen
-janek
-janel
-janela
-janell
-janella
-janelle
-janene
-janenna
-janes
-janessa
-janet
-janeta
-janeth
-janetta
-janette
-janeva
-janey
-jang
-jang-hsu
-janghsue
-jani
-jania
-janice
-janick
-janie
-janifer
-janina
-janine
-janio
-janis
-janiszew
-janith
-janka
-janke
-jankowsk
-jann
-janna
-jannay
-jannel
-jannelle
-jannie
-janning
-janolof
-janos
-janot
-janovich
-janrober
-janseen
-jansen
-janson
-janssen
-jantz-le
-jantzi
-januario
-janusz
-jany
-jap
-japan
-japp
-jaquelin
-jaquelyn
-jaquenet
-jaques
-jaquith
-jarad
-jarboe
-jarchow
-jard
-jareb
-jared
-jarel
-jargon
-jarib
-jarid
-jarl
-jarlath
-jarmal
-jarman
-jarmo
-jarmoc
-jarmon
-jarmul
-jarnak
-jarrad
-jarred
-jarret
-jarrett
-jarrid
-jarrod
-jarvah
-jarvie
-jarvin
-jarvis
-jarzemsk
-jasbinde
-jase
-jasen
-jashvant
-jasmann
-jasmin
-jasmina
-jasmine
-jasny
-jason
-jasper
-jaspreet
-jasrotia
-jasti
-jastinde
-jasun
-jasver
-jaswal
-jatar
-jatin
-jatinder
-jau-min
-jau-yau
-jaumin
-jauvin
-jauyau
-java
-javad
-javallas
-javar
-javed
-javier
-javor
-jawad
-jawaid
-jawana
-jawanda
-jawor
-jaworski
-jaworsky
-jay
-jaya
-jayakuma
-jayamann
-jayant
-jayanta
-jayavant
-jaye
-jayendra
-jayesh
-jayjay
-jayme
-jaymee
-jaymie
-jayn
-jayne
-jaynell
-jaynie
-jayshree
-jayson
-jazanosk
-jazmin
-jcbach
-jcst
-jdavie
-jderek
-jean
-jean-ber
-jean-cla
-jean-den
-jean-fra
-jean-guy
-jean-jac
-jean-lou
-jean-luc
-jean-mar
-jean-mic
-jean-nor
-jean-pau
-jean-pie
-jean-rob
-jean-roc
-jean-yve
-jeana
-jeane
-jeanelle
-jeanes
-jeanette
-jeanhee
-jeanice
-jeanie
-jeanine
-jeanloui
-jeanna
-jeanne
-jeannett
-jeannie
-jeannine
-jeannot
-jeany
-jeavons
-jecho
-jed
-jedd
-jeddy
-jedediah
-jedidiah
-jedrysia
-jee
-jee-howe
-jeff
-jefferey
-jefferso
-jeffery
-jeffie
-jeffrey
-jeffreys
-jeffries
-jeffry
-jeffy
-jegland
-jehanna
-jehovah
-jehu
-jelen
-jelene
-jeleniew
-jelinek
-jelske
-jem
-jemczyk
-jemie
-jemima
-jemimah
-jemmie
-jemmy
-jen
-jen-chen
-jen-hua
-jena
-jenchen
-jenda
-jenelle
-jeng
-jenhua
-jeni
-jenica
-jeniece
-jenifer
-jeniffer
-jenilee
-jenine
-jenkins
-jenkinso
-jenn
-jenna
-jennee
-jenner
-jenness
-jennette
-jenni
-jennica
-jennie
-jennifer
-jennilee
-jennine
-jennings
-jenny
-jeno
-jens
-jensen
-jensenwo
-jenson
-jeong
-jephthah
-jepson
-jer-huan
-jerad
-jerald
-jeralee
-jeramey
-jeramie
-jere
-jereme
-jeremiah
-jeremias
-jeremie
-jeremy
-jerhuang
-jeri
-jermain
-jermaine
-jermayne
-jernigan
-jeroen
-jerome
-jeromy
-jeronimo
-jeroski
-jerreld
-jerri
-jerrie
-jerrilee
-jerrilyn
-jerrine
-jerrold
-jerrome
-jerry
-jerrylee
-jervis
-jerzy
-jeska
-jesper
-jess
-jessa
-jessalin
-jessalyn
-jessamin
-jessamyn
-jesse
-jessee
-jesselyn
-jessey
-jesshope
-jessi
-jessica
-jessie
-jessika
-jessup
-jessy
-jester
-jesty
-jesus
-jet
-jeter
-jeth
-jethro
-jeurene
-jew
-jewel
-jewell
-jewelle
-jewels
-jewett
-jey
-jeyarara
-jezioran
-jhingran
-ji
-ji-chuu
-jia
-jia-wen
-jiak-kwa
-jiakkwan
-jian
-jianchen
-jiang
-jianli
-jiann
-jiann-ya
-jiannyan
-jianou
-jianqi
-jianxing
-jianye
-jianyun
-jiawen
-jiayi
-jiayuan
-jichuu
-jie-yong
-jiejie
-jiethye
-jieyong
-jihad
-jihan
-jihyun
-jiin-shu
-jiinshuh
-jilann
-jilisa
-jill
-jillana
-jillane
-jillayne
-jilleen
-jillene
-jilli
-jillian
-jillie
-jilly
-jim
-jimenez
-jiming
-jiminy
-jimmie
-jimmy
-jims
-jimson
-jin
-jin-ho
-jin-nan
-jin-song
-jin-yuan
-jin-yun
-jinann
-jinchao
-jindal
-jing
-jing-ru
-jingbai
-jinglun
-jingru
-jinho
-jinhua
-jinlun
-jinn-kue
-jinnan
-jinnkuen
-jinny
-jinsheng
-jinsong
-jinsoo
-jinyuan
-jiri
-jirina
-jiro
-jisang
-jisheng
-jitendra
-jiuhuai
-jivan
-jiyuan
-jiyue
-jo
-jo ann
-jo-ann
-jo-anne
-jo-marie
-joachim
-joachimp
-joan
-joana
-joane
-joanie
-joann
-joanna
-joannah
-joanne
-joannes
-joannidi
-joannie
-joannis
-joao
-joaquin
-job
-jobe
-jobey
-jobi
-jobie
-jobina
-joby
-jobye
-jobyna
-jocelin
-joceline
-jocelyn
-jocelyne
-jochem
-jochen
-jock
-jocko
-jodee
-jodi
-jodie
-jodine
-jodoin
-jodoin-s
-jody
-joe
-joeann
-joel
-joela
-joelie
-joell
-joella
-joelle
-joellen
-joelly
-joellyn
-joelynn
-joeph
-joerg
-joeri
-joete
-joey
-joffe
-johan
-johan am
-johan ch
-johan se
-johanama
-johanchr
-johann
-johanna
-johannah
-johanne
-johannes
-johannse
-johanseb
-johansen
-johanson
-johathan
-john
-john-jr
-john-pau
-john-sr
-johna
-johnath
-johnatha
-johnatho
-johnette
-johni
-johnna
-johnni
-johnnie
-johnny
-johns
-johnsen
-johnson
-johnsson
-johnston
-johny
-joice
-joiner
-joji
-jojo
-joke
-jolanda
-jole
-jolee
-joleen
-jolene
-joletta
-joli
-jolicoeu
-jolie
-jolin
-joline
-jolitz
-joll
-jolliffe
-joly
-jolyn
-jolynn
-jon
-jonah
-jonas
-jonathan
-jonathon
-jonczak
-jone
-jonell
-jonelle
-jones
-jong
-jong-chi
-jong-woe
-jongchih
-jonghun
-jonghyuk
-jongsun
-jongwoei
-jongwoo
-joni
-jonie
-jonis
-jonkheer
-jonson
-jonthan
-joo
-joo-euin
-joo-geok
-joon
-joong
-jooran
-jooyul
-joplin
-jordain
-jordan
-jordana
-jordanna
-jordi
-jordon
-jorey
-jorgan
-jorge
-jorgense
-jori
-jorie
-joron
-jorrie
-jorry
-jory
-jos
-josanne
-joscelin
-jose
-josee
-josef
-josefa
-josefina
-joseito
-joselito
-joseph
-josepha
-josephin
-josephs
-josey
-josh
-joshi
-joshia
-joshua
-joshuah
-josi
-josiah
-josiane
-josias
-josie
-josine
-josip
-joslin
-joson
-josselyn
-jossine
-josy
-joubert
-joudrey
-jourdain
-jourdan
-jovo
-jowett
-joy
-joya
-joyan
-joyann
-joyce
-joycelin
-joydeep
-joye
-joyner
-joyous
-jozef
-jozsef
-jr
-jsandye
-jsbach
-juan
-juana
-juanita
-juarez
-jubainvi
-jubb
-jubenvil
-jubinvil
-juby
-jud
-judah
-judas
-judd
-jude
-judge
-judi
-judie
-judith
-juditha
-judithre
-judon
-judy
-judye
-judyresn
-juergen
-juers
-jugandi
-juh-shiu
-juha
-juhan
-juhshiun
-jui
-jui-fen
-juieta
-juifen
-juile
-jukka
-julayne
-jule
-julee
-jules
-juli
-julia
-julian
-juliana
-juliane
-juliann
-julianna
-julianne
-julianto
-julie
-julieann
-julien
-julienne
-juliet
-julieta
-julietta
-juliette
-julina
-juline
-julio
-julissa
-julita
-julius
-jun
-jun-li
-junaid
-june
-juneau
-juneho
-junette
-jung
-jung-hua
-junghua
-jungmeis
-juni
-junia
-junie
-junina
-junk
-junkie
-junkin
-junli
-junmeng
-junzo
-juozas
-jurafsky
-jurek
-jurevis
-jurewicz
-jurg
-jurgen
-jurgens
-jurgutis
-juri
-jurman
-juscesak
-juskevic
-jussi
-justen
-justin
-justina
-justine
-justinia
-justinn
-justino
-justis
-justo
-justus
-jusuf
-jutta
-jwahar
-jyh-dong
-jyh-doug
-jyhdong
-jyhdoug
-jyoti
-jyun-che
-jyunchen
-jyuo
-kaare
-kabe
-kabel
-kaboliza
-kabuli
-kac
-kacey
-kacie
-kacor
-kacsor
-kacy
-kaczmare
-kaczmars
-kaczynsk
-kadah
-kadamani
-kaden
-kadiyala
-kadlecik
-kaefer
-kaehler
-kaela
-kaete
-kagan
-kah-ming
-kahaleel
-kahan
-kahhale
-kahhan
-kahil
-kahkonen
-kahlil
-kahn
-kahneman
-kahnert
-kahtasia
-kai
-kai-bor
-kai-ming
-kai-wah
-kai-wai
-kaia
-kaibor
-kaiching
-kaid
-kaidanne
-kaigler
-kaila
-kaile
-kaileen
-kailey
-kain
-kaine
-kaiser
-kaitlin
-kaitlyn
-kaitlynn
-kaiwah
-kaiwen
-kaj
-kaja
-kajeejit
-kaji
-kakalina
-kaki
-kakou
-kaksonen
-kakuta
-kala
-kalab
-kalai
-kalaiche
-kalair
-kalappa
-kalash
-kale
-kaleb
-kalechst
-kaleena
-kales
-kaley
-kali
-kalie
-kalil
-kalila
-kalina
-kalinda
-kalindi
-kaliski
-kalitzku
-kalle
-kallewar
-kalli
-kallio
-kally
-kalman
-kalnitsk
-kalogera
-kalpak
-kalpit
-kalra
-kalsey
-kalt
-kalugdan
-kaluzny
-kalvin
-kalwa
-kalwarow
-kalyan
-kalyani
-kalyn
-kam
-kam-hung
-kam-suen
-kamal
-kaman
-kamas
-kambhamp
-kambiz
-kamboh
-kameko
-kamel
-kamerson
-kamhung
-kamie
-kamil
-kamila
-kamilah
-kamillah
-kaminsky
-kamiya
-kamiyama
-kamlesh
-kammerer
-kamminga
-kamol
-kamoun
-kamran
-kamyar
-kamyszek
-kan
-kan-hung
-kana
-kanagend
-kanani
-kanata
-kanchit
-kandace
-kandappa
-kandi
-kandra
-kandy
-kane
-kaneko
-kaneshir
-kang
-kang-gil
-kang-nin
-kang-yua
-kangelis
-kangkun
-kangning
-kanhung
-kania
-kanies
-kanika
-kannan
-kannel
-kanneman
-kanno
-kansara
-kant
-kanthan
-kantor
-kanu
-kanungo
-kanwalji
-kanwar
-kanya
-kao
-kaoru
-kaoud
-kapadia
-kapatou
-kapella
-kapil
-kaplan
-kapp
-kappos
-kaps
-kapsa
-kapsch
-kapuscin
-kara
-kara-lyn
-karaali
-karademi
-karalee
-karalynn
-karam
-karan
-karass
-karattup
-karchevs
-kardomat
-kardos
-kare
-karee
-kareem
-karel
-karels
-karen
-karena
-karhunie
-kari
-karia
-kariann
-karibian
-karie
-karil
-karilynn
-karim
-karin
-karina
-karine
-kariotta
-karisa
-karissa
-karita
-karkotsk
-karl
-karla
-karlan
-karlee
-karleen
-karlen
-karlene
-karlens
-karlette
-karlie
-karlik
-karlis
-karloff
-karlon
-karlotta
-karlotte
-karlson
-karly
-karlyn
-karmali
-karmen
-karmous-
-karn
-karna
-karnazes
-karney
-karol
-karola
-karole
-karolefs
-karolien
-karolina
-karoline
-karoly
-karon
-karp
-karr
-karrah
-karrie
-karry
-karsan
-karsner
-karsz
-kartik
-kartikey
-karunara
-karwowsk
-kary
-karyl
-karylin
-karyn
-kas
-kasbia
-kasbow
-kasdorf
-kasey
-kashani-
-kashef
-kashima
-kashul
-kasifa
-kaspar
-kasparia
-kasper
-kasprzak
-kass
-kassam
-kassandr
-kassem
-kassey
-kassi
-kassia
-kassie
-kassissi
-kast
-kastelbe
-kasten
-kastner
-kaston
-kasumovi
-kat
-kata
-katalin
-katarina
-kataryna
-katcher
-katchmar
-kate
-katee
-katerina
-katerine
-katey
-kath
-katha
-katharin
-katharyn
-kathe
-katherin
-katheryn
-kathi
-kathie
-kathleen
-kathlin
-kathnels
-kathreri
-kathrine
-kathryn
-kathryne
-kathy
-kathyb
-kathye
-kati
-katibian
-katie
-katina
-katine
-katinka
-katja
-katleen
-katlin
-kato
-katrin
-katrina
-katrine
-katrinka
-katsoura
-katsumi
-katsunor
-katti
-kattie
-katuscha
-katusha
-katy
-katya
-katz
-katzenel
-kaudel
-kauffeld
-kauffman
-kaufman
-kaufmann
-kaunas
-kaura
-kaus
-kausche
-kaushik
-kavaler
-kavanagh
-kavid
-kavis
-kawa
-kawabata
-kawaguch
-kawahara
-kawakami
-kawamura
-kawashim
-kawauchi
-kay
-kaya
-kayaliog
-kayar
-kaycee
-kaye
-kayla
-kayle
-kaylee
-kayley
-kaylil
-kaylyn
-kayne
-kaypour
-kayser
-kayvan
-kaz
-kazem
-kazimier
-kazmierc
-kazue
-kazuhiko
-kazuhiro
-kazuhito
-kazuko
-kazunori
-kazuo
-kazuyuki
-kea
-keala
-kealey
-kean
-keane
-kearney
-kearns
-keary
-keast
-keates
-keating
-keaton
-keats
-kebede
-kechichi
-keck
-kedah
-kedron
-kee
-keef
-keefe
-keefer
-keegstra
-keehan
-keehn
-keelan
-keelby
-keeler
-keeley
-keelia
-keels
-keely
-keen
-keenan
-keene
-keene-mo
-keep
-keer
-kees
-keever
-keffer
-kehler
-kehoe
-kehr
-kei
-keifer
-keighley
-keilholz
-keilty
-keim
-kein
-keinosuk
-keir
-keiser
-keish
-keisuke
-keitel
-keith
-kejing
-kelbe
-kelbee
-kelby
-kelcey
-kelci
-kelcie
-kelcy
-keldon
-kele
-kelemen
-kelessog
-kelila
-kelin
-kelkar
-kell
-kelland
-kellby
-kelleher
-kellen
-keller
-kellerma
-kellett
-kelley
-kelleye
-kelli
-kellia
-kellie
-kellina
-kellogg
-kellsie
-kellum
-kelly
-kelly-er
-kellyann
-kellyeri
-kelner
-kelsay
-kelsch
-kelsey
-kelsi
-kelso
-kelsy
-keltouma
-kelvin
-kelwin
-kely
-kem
-kemal
-kember
-kemish
-kemkeng
-kemme
-kemp
-kempf
-kempffer
-kempler
-kemppain
-kempski
-kempster
-ken
-kenda
-kendal
-kendall
-kendel
-kendell
-kendi
-kendra
-kendre
-kendrick
-kenedi
-kenik
-kenji
-kenkel
-kenlan
-kenmir
-kenn
-kenna
-kennaday
-kennan
-kennard
-kennedy
-kenneth
-kennett
-kenney
-kennie
-kennith
-kennon
-kenny
-kenol
-kenon
-kensinge
-kent
-kenta
-kentaro
-kenton
-kenworth
-kenyon
-keogh
-kepekci
-kepler
-ker
-kera
-kerby
-kerensa
-kerfoot
-keri
-keriakos
-keriann
-kerianne
-kerith
-kerk
-kerley
-kerlovic
-kermie
-kermit
-kermy
-kernahan
-kernan
-kerner
-kernodle
-kerns
-kerr
-kerri
-kerri-an
-kerrie
-kerrill
-kerrin
-kerry
-kerschen
-kerschne
-kerstin
-kerwin
-kerwinn
-keseris
-keshab
-keshav
-kesler
-kesley
-keslie
-kesling
-kessel
-kessia
-kessiah
-kessing
-kessler
-kessley
-kestelma
-kester
-kestutis
-ketan
-ketao
-ketcham
-ketcheso
-ketchum
-ketkar
-ketley
-ketsler
-ketterer
-ketti
-kettie
-kettles
-ketty
-keung
-keuning
-kev
-kevan
-keven
-keveny
-kevin
-kevina
-kevon
-kevyn
-keyes
-keynes
-keys
-keyvan
-khac
-khachatr
-khadbai
-khai
-khalaf
-khaled
-khalid
-khalil
-khalilza
-khamdy
-khanh
-khanna
-khanvali
-khariton
-khatib
-khatod
-khatri
-khawar
-khedkar
-khesin
-khezri
-khieu
-khim
-khimasia
-kho
-khoa
-khodosh
-khoinguy
-khon
-khorami
-khorrama
-khosla
-khosravi
-khosro
-khosrow
-khouderc
-khoury
-khouzam
-khue
-khueh-ho
-khuehhoc
-khuon
-khurana
-khurshid
-khyra
-ki
-kiah
-kial
-kiala
-kiam
-kian
-kiang
-kibler
-kidd
-kiebel
-kiecksee
-kiefer
-kiel
-kiele
-kielstra
-kiely
-kiem
-kien
-kien-ngh
-kienan
-kiennghi
-kiens
-kieran
-kiernan
-kieron
-kiersten
-kiet
-kieunga
-kiger
-kigyos
-kihyen
-kijin
-kikelia
-kiki
-kikki
-kiko
-kikuchi
-kikuta
-kilbank
-kilburn
-kilby
-kilcoin
-kilcoyne
-kile
-kiley
-kilgore
-kilian
-killam
-killeen
-killen
-killer
-killian
-killie
-killy
-kilner
-kilpatri
-kilsaas
-kilzer
-kim
-kim-elee
-kim-minh
-kim-stac
-kim-tram
-kimball
-kimbarov
-kimbell
-kimberle
-kimberli
-kimberly
-kimble
-kimbo
-kimbra
-kimbrell
-kimbroug
-kimeleen
-kimi
-kimihiko
-kimiko
-kimio
-kimler
-kimm
-kimma
-kimme
-kimmett
-kimmi
-kimmie
-kimmo
-kimmy
-kimoto
-kimstace
-kimura
-kin
-kin-wai
-kin-yee
-kinahan
-kinamon
-kincaid
-kinch
-kindel
-kindem
-kindra
-king
-king-hau
-kingaby
-kingan
-kingdon
-kingrey
-kingsbur
-kingshot
-kingslan
-kingsley
-kingsly
-kingston
-kingzett
-kinh
-kinley
-kinman
-kinna
-kinnaird
-kinney
-kinnibur
-kinnie
-kinny
-kinos
-kinoshit
-kinrys
-kinsella
-kinsey
-kinsley
-kinsman
-kinson
-kinstley
-kinstry
-kip
-kipling
-kipnis
-kipp
-kippar
-kipper
-kippie
-kippy
-kira
-kirady
-kirbee
-kirbie
-kirby
-kirchner
-kirchoff
-kirfman
-kiri
-kirit
-kirk
-kirkby
-kirkenda
-kirkham
-kirkland
-kirkley
-kirkpatr
-kirkwood
-kirley
-kirn
-kirouac
-kirsi
-kirsten
-kirsteni
-kirsti
-kirstie
-kirstin
-kirstyn
-kirt
-kirtikum
-kish
-kishi
-kishor
-kishore
-kissee
-kissiah
-kissie
-kistner
-kit
-kita
-kitajima
-kitrick
-kitson
-kitt
-kitti
-kittie
-kittinge
-kitty
-kitzmill
-kivell
-kiwon
-kiyohara
-kiyoharu
-kiyoon
-kizzee
-kizzie
-kjeld
-kjell
-klaas
-klaassen
-klammer
-klamner
-klapper
-klapphol
-klara
-klarika
-klarrisa
-klashins
-klasky
-klassen
-klatchko
-klaudia
-klaudiny
-klaudt
-klaus
-klavkaln
-klazien
-klazina
-klebsch
-klein
-klemens
-klement
-kleon
-klepping
-kletchko
-klett
-kleynenb
-klier
-klimas
-kliment
-klimon
-kline
-kling
-klingspo
-klink
-klod
-klodt
-klosterm
-kloth
-klotz
-klowak
-klug
-kluger
-kluke
-klutts
-kmem
-knapp
-knappe
-knapper
-knapton
-knecht
-kneedler
-kneese
-kneeshaw
-kneisel
-knes-max
-kness
-knickerb
-knieps
-knighten
-knighton
-knio
-knipe
-knitl
-knittel
-knobeloc
-knobloch
-knorp
-knorr
-knouse
-knowles
-knox
-knudsen
-knut
-knute
-ko
-ko-yang
-koa
-koang
-koay
-kobayash
-kobeski
-kobiersk
-koblitz
-kobreek
-koch
-kochansk
-kochis
-kodmur
-kodnar
-kodsi
-kody
-koelbl
-koeller
-koellner
-koeman
-koen
-koenraad
-koens
-koerner
-kogan
-kogelnik
-kohalmi
-kohalmi-
-kohl
-kohler
-kohm
-kohn
-kohnhors
-kohut
-koichi
-koiste
-koji
-kok
-kok-khia
-kokkat
-koko
-kokoska
-kokosopo
-kolahi
-kolappa
-kolavenn
-kolb
-kolbe
-koldinge
-kolek
-kolenda
-kolesnik
-koleyni
-kolk
-kolkka
-kollen
-koller
-kollman
-kollmorg
-kolodiej
-kolodzie
-kolos
-kolovson
-kolski
-kolton
-koman
-komaromi
-komatsu
-komenda
-komorows
-konarski
-konda
-kondagun
-konforti
-kong
-kong-que
-koning
-konno
-konomis
-konrad
-konradi
-konstan
-konstanc
-konstant
-konstanz
-koo
-koohgoli
-koohi
-koolstra
-koolwine
-koonce
-koontz
-kooyoung
-kopala
-kopell
-kopfman
-kopke
-koprulu
-kora
-koral
-koralle
-koran @
-koray
-korbe
-korbel
-korda
-kordik
-kordon
-kordula
-kore
-korea
-korean
-korek
-korella
-koren
-koressa
-korest
-korey
-korf
-kori
-korie
-korn
-kornachu
-kornegay
-korney
-kornitze
-korpela
-korrie
-korry
-kort
-kortekaa
-kortje
-kory
-kos
-kosarski
-kosasih
-kosiorsk
-kositpai
-koskie
-koskinen
-koslowsk
-kosman
-kosnaski
-kosowan
-koss
-kostas
-kosten
-koster
-kostowsk
-kosturik
-kostyniu
-kot
-kotamart
-kotaro
-kotler
-kotval
-kotyk
-kou
-kou-yuan
-kouba
-kouhi
-kouichir
-kouidis
-kouji
-kouyuan
-kovac
-kovacs
-koval
-kovarik
-kovats
-koverzin
-kowal
-kowalcze
-kowalesk
-kowalkow
-kowallec
-kowalski
-kowalsky
-koyang
-kozak
-kozelj
-koziol
-kozlowsk
-kozsukan
-kozuch
-kozyra
-kpodzo
-krabicka
-kraehenb
-krajacic
-krajesky
-krakowet
-kramar
-kramer
-kranenbu
-krater
-kratz
-krauel
-kraus
-krausbar
-krause
-krautle
-krawchuk
-krawec
-kreiger
-kreimer
-krenn
-krenos
-kresl
-kretsch
-krick
-kridle
-krieg
-kriegler
-krienke
-krier
-kriko
-krikoria
-krinda
-kring
-kris
-krisa
-krisha
-krishan
-krishin
-krishink
-krishna
-krishnah
-krishnam
-krishnan
-krishnas
-krispin
-krissie
-krissy
-krista
-kristal
-kristan
-kriste
-kristel
-kristen
-kristi
-kristian
-kristie
-kristien
-kristin
-kristina
-kristine
-kristjan
-kristo
-kristofe
-kristoff
-kristofo
-kriston
-kristoph
-kristos
-kristy
-kristyn
-kriton
-krivossi
-kriz
-krodel
-kroeger
-krogh
-krol
-kroman
-kromer
-krone
-krotish
-krousgri
-krowlek
-krozser
-krten
-krueger
-krug
-kruger
-krull
-krummell
-krumwied
-kruse
-kruuseme
-kruziak
-krym
-krysia
-kryski
-krysko
-krysta
-krystal
-krystall
-krystle
-krystn
-krystyna
-krzyszto
-ktusn
-ku
-kuan
-kuang
-kuang-ts
-kubash
-kube
-kubik
-kubitsch
-kuchelme
-kuchinsk
-kuchta
-kucirek
-kuczynsk
-kudas
-kudrewat
-kue
-kuechler
-kuehn
-kuehne
-kuhfus
-kuhlkamp
-kuhn
-kuhns
-kui
-kui-soon
-kuivinen
-kujanpaa
-kulachan
-kuldip
-kulhy
-kulik
-kulikows
-kulinski
-kulkarni
-kulman
-kum
-kum-meng
-kumagai
-kumamoto
-kumar
-kumares
-kumi
-kummer
-kun
-kun-ming
-kundanma
-kundel
-kundert
-kunecke
-kung
-kung-chi
-kungchia
-kunie
-kunihiko
-kunitaka
-kuniyasu
-kunjal
-kunkel
-kunming
-kuntova
-kunz
-kunze
-kuo
-kuo-chua
-kuo-feng
-kuo-lian
-kuochuan
-kuofeng
-kuoliang
-kupe
-kupfer
-kupferma
-kupfersc
-kupidy
-kupitz
-kuracina
-kurash
-kurauchi
-kurczak
-kurdas
-kurdziel
-kure
-kureshy
-kurian
-kurio
-kurita
-kurniawa
-kurolapn
-kurose
-kurowski
-kursell
-kurt
-kurth
-kurtis
-kurtz
-kuruppil
-kuryliak
-kurylyk
-kus
-kusan
-kushan
-kushner
-kushnir
-kushwaha
-kushwind
-kusmider
-kusum
-kusumaka
-kuswara
-kusyk
-kutac
-kutch
-kutger
-kutschke
-kutten
-kuykenda
-kuzbary
-kuzemka
-kuzyk
-kuzz
-kvochak
-kwa
-kwak
-kwan
-kwang
-kwang-ch
-kwang-lu
-kwangchi
-kwangchu
-kwanglu
-kwangsoo
-kwant
-kwast
-kwee
-kwei
-kwei-san
-kwiatkow
-kwing
-kwissa
-kwock
-kwok
-kwok-cho
-kwok-kin
-kwok-lan
-kwok-san
-kwok-wa
-kwokchoi
-kwokkin
-kwoksang
-kwong
-ky
-kydd
-kye-hong
-kyehong
-kyeong
-kyla
-kyle
-kylen
-kyler
-kylie
-kylila
-kylo
-kylynn
-kym
-kynthia
-kyoko
-kyomun
-kyoon
-kyoung
-kyrie
-kyrstin
-kyu
-kyu-sung
-kyung
-kyungchu
-kyungyoo
-kyusung
-kyzer
-l'anglai
-l'ecuyer
-l'heureu
-l;urette
-la
-la verne
-laale
-lab
-laba
-labarge
-labauve
-labelle
-labenek
-laberge
-labfive
-labiche
-labonte
-labossie
-labrador
-labranch
-labrie
-labrinos
-labuhn
-lac
-lacasse
-lacee
-lacelle
-lacey
-lachambr
-lachance
-lachine
-lachowsk
-lachu
-lacie
-lackenba
-lackie
-lackmann
-lacombe
-lacosse
-lacoste
-lacroix
-lacy
-ladan
-ladasky
-ladd
-ladean
-ladell
-ladet
-ladonna
-ladouceu
-ladva
-ladymon
-laetitia
-lafarge
-lafargue
-lafata
-lafayett
-laferrie
-lafever
-lafferty
-laflamme
-lafleur
-lafontai
-laforge
-laframbo
-lafrance
-lagace
-lagache
-lagarde
-lagrande
-lagrange
-lahaie
-lahaye
-lahey
-lahlum
-lahteenm
-lai
-laidlaw
-laila
-laina
-laine
-lainesse
-lainey
-laing
-laird
-laitinen
-lajzerow
-laker
-lakhani
-lakhian
-lakier
-lakins
-lakoff
-lakshan
-lakshmi
-lakshmin
-lalani
-lali
-lalibert
-lalit
-lalitha
-lalka
-lally
-lalo
-lalonde
-lalu
-lamar
-lamarche
-lamarque
-lamarre
-lambert
-lambregt
-lamedica
-lamers
-lamey
-lamia
-lamirand
-lamm
-lammond
-lamond
-lamonde
-lamont
-lamontag
-lamoreux
-lamothe
-lamotte
-lamouche
-lamoureu
-lampe
-lampert
-lamphier
-lampman
-lamport
-lamy
-lan
-lana
-lanae
-lanava
-lancaste
-lance
-lancelot
-lanctot
-land
-landaver
-landay
-lande
-lander
-landers
-landis
-landman
-landon
-landriau
-landry
-lane
-lanette
-laney
-lang
-langdon
-lange
-langelie
-langenbe
-langer
-langett
-langevin
-langford
-langlais
-langley
-langlois
-langner
-langsdon
-langstaf
-langston
-langton
-lani
-lanie
-laniel
-lanier
-lanita
-lankford
-lanna
-lannan
-lanni
-lannie
-lanny
-lanoe
-lanoszka
-lanoue
-lanouett
-lans
-lansuppo
-lanteign
-lanthier
-lantos
-lantto
-lantz
-lanunix
-lanwan
-lanz
-lanzkron
-lao
-lap
-lapchak
-lapierre
-lapkin
-laplace
-laplante
-lapointe
-laporte
-lapostol
-lappan
-laprade
-lapre
-laprise
-lapsley
-laquinta
-lar
-lara
-larabie
-laraia
-laraine
-larche
-lareine
-larese
-lari
-larimer
-larin
-larina
-larine
-larisa
-larissa
-larivier
-lark
-larkin
-larkins
-larmour
-larn
-larner
-laroche
-larock
-larocque
-larose
-larribea
-larrigan
-larry
-lars
-larsen
-larson
-larstone
-larue
-laruffa
-larus
-larwill
-lary
-larysa
-laryssa
-las
-lasch
-laschuk
-laser
-laserjet
-lash
-lashansk
-lasher
-lashmit
-lashonda
-lask
-laskaris
-laskin
-laslo
-lasserre
-lassig
-lassiter
-lasson
-lassonde
-laster
-latashia
-latchfor
-latella
-laten
-latessa
-latha
-lathangu
-lathrop
-latia
-latif
-latin
-latisha
-latonia
-latonya
-latorre
-latour
-latreill
-latrena
-latrina
-lattanzi
-latulipp
-lau
-laubenhe
-lauderda
-laufer
-laugher
-laughlin
-laughrid
-laughton
-launce
-laura
-lauraine
-laural
-lauralee
-lauramae
-laure
-laureano
-lauree
-laureen
-laurel
-laurella
-lauren
-laurena
-laurence
-laurene
-laurens
-laurent
-lauretta
-laurette
-lauri
-lauria
-lauriann
-lauriaul
-laurice
-laurich
-laurie
-laurier
-laurilyn
-laurin
-laurine
-lauris
-lauristo
-lauritz
-laurna
-lauro
-laursen
-lauruhn
-laury
-lauryn
-lauson
-lauten
-lauther
-laux
-lauze
-lauzon
-lavagno
-lavallee
-lavar
-lavarnwa
-lavecchi
-laveda
-lavelle
-lavena
-lavergne
-laverna
-laverne
-lavers
-laverty
-lavictoi
-lavictor
-lavigne
-laville
-lavina
-lavinia
-lavinie
-laviolet
-lavoie
-lavonda
-lavorata
-law
-lawbaugh
-lawler
-lawless
-lawlis
-lawlor
-lawrence
-lawrie
-lawry
-laws
-lawson
-lawther
-lawton
-lay
-layanand
-layer
-layla
-layne
-layney
-layton
-laz
-lazar
-lazare
-lazaro
-lazarou
-lazarowi
-lazarus
-lazer
-lazlo
-lazure
-lazzara
-lcarrol
-le
-lea
-leader
-leads
-leafloor
-leah
-leahy
-leander
-leandra
-leang
-leann
-leanna
-leanne
-leanor
-leanora
-leaphear
-leary
-leatham
-leathers
-leaton
-leatrice
-leavell
-leaver
-leavitt
-lebaron
-lebars
-lebbie
-lebeau
-lebel
-leblanc
-leblond
-lebo
-lebon
-lecandro
-lecien
-leckie
-leclair
-leclaire
-leclerc
-lecompte
-lecours
-lecouteu
-leda
-ledamun
-leddy
-leder
-lederman
-ledet
-ledford
-ledinh
-ledou
-ledoux
-ledu
-leduc
-ledwell
-lee
-lee-anne
-leeann
-leeanne
-leecia
-leela
-leelah
-leeland
-leena
-leendert
-leenher
-leesa
-leese
-leeson
-leeuwen
-lefebvre
-lefevre
-leffler
-leftwich
-lefty
-legeny
-leger
-legg
-leggett
-legolas
-legra
-legrandv
-legris
-legros
-legrove
-legrow
-legs
-leguen
-lehar
-lehman
-lehmann
-lehrbaum
-lehtinen
-lehtovaa
-lei-see
-leia
-leiba
-leibich
-leibovit
-leibowit
-leiceste
-leicht
-leidenfr
-leiding
-leif
-leigh
-leigha
-leighann
-leighton
-leiker
-leil
-leila
-leilah
-leima
-lein
-leinen
-leisa
-leisha
-leistico
-leita
-leitch
-leite
-leith
-leitman
-leitner
-leitrick
-leiwe
-lek
-lela
-lelah
-leland
-lelia
-lem
-lemaire
-lemar
-lemay
-lemieux
-lemky
-lemley
-lemmie
-lemmy
-lemuel
-lemyre
-len
-lena
-lenard
-lenathen
-lenci
-lendon
-lenee
-lenee'
-lenehan
-lenelle
-lenette
-leney
-lengel
-lenhard
-leni
-lenin
-lenior
-lenir
-lenka
-lenna
-lennard
-lennart
-lennie
-lennig
-lenny
-leno
-lenora
-lenore
-lenox
-lentz
-leny
-lenz
-lenzi
-leo
-leo-miza
-leocadio
-leodora
-leoine
-leola
-leoline
-leon
-leona
-leonanie
-leonard
-leonardo
-leonas
-leone
-leonelle
-leonerd
-leong
-leonhard
-leonid
-leonida
-leonidas
-leonie
-leonor
-leonora
-leonore
-leontine
-leontyne
-leopold
-leora
-leoutsar
-leow
-lepage
-lepine
-lepore
-leppert
-lepreau
-lerch
-leres
-leroi
-leroux
-leroy
-les
-lesa
-lesco
-lescot
-leshia
-leshowit
-lesia
-lesley
-lesli
-leslie
-lesly
-lesmeris
-lesniak
-lesourd
-lesperan
-lessard
-lessin
-lester
-lesway
-lesya
-leta
-letarte
-letchwor
-letendre
-leth
-letha
-lethbrid
-lethebin
-lethia
-leticia
-letisha
-letitia
-letizia
-letourne
-letsome
-lett
-letta
-lettang
-letti
-lettie
-letty
-letulle
-leuenber
-leung
-leupold
-leuty
-lev
-levac
-levasseu
-leveille
-levent
-levere
-levert
-levesque
-levey
-levi
-levin
-levine
-levis
-levisky
-levitin
-levo
-levon
-levy
-lew
-lewandow
-lewek
-lewellen
-lewes
-lewie
-lewinski
-lewis
-lewiss
-lewright
-lex
-lexi
-lexie
-lexine
-lexis
-lexy
-ley
-leyden
-leydig
-leyla
-leyton
-lezlee
-lezley
-lezlie
-lheureux
-li
-li-ming
-li-xi
-lia
-liad
-lial
-liam
-lian
-lian-hon
-liana
-liane
-liang
-liangchi
-lianna
-lianne
-liao
-lias
-liason
-liaurel
-liaw
-lib
-libadmin
-libbey
-libbi
-libbie
-libby
-liber
-libor
-libov
-libraria
-licandro
-licata
-lication
-licerio
-licha
-licht
-lichtenb
-lichtens
-lichum
-lichun
-licia
-lida
-liddell
-liddle
-lidia
-lidio
-lidster
-lidstone
-liduine
-lieberma
-liebrech
-liedl
-lief
-liem
-lien
-lieneman
-lienhard
-liepa
-liesa
-liesbeth
-liese
-liesel
-liesemer
-liesenbe
-liesie
-liesl
-lieure
-lievaart
-liew
-lifshey
-lightfie
-lightfoo
-lighthal
-lighthis
-lightowl
-ligon
-ligurs
-lijphart
-likert
-likourgi
-lil
-lila
-lilah
-lilas
-lili
-lilia
-lilian
-liliana
-liliane
-lilias
-lilin
-lilith
-lilla
-lillenii
-lilli
-lillian
-lillie
-lillien
-lillis
-lilllie
-lilly
-lily
-lilyan
-limeina
-limerick
-limin
-liming
-lin
-lin-chan
-lin-e
-lin-ni
-lina
-linas
-linaugh
-linback
-linberg
-linc
-linchang
-lincoln
-lind
-linda
-linda-jo
-lindamoo
-lindberg
-lindell
-lindemul
-linden
-lindenla
-linder
-lindholm
-lindi
-lindie
-lindler
-lindon
-lindow
-lindquis
-lindsay
-lindsey
-lindstro
-lindsy
-lindt
-lindy
-line
-linea
-linebarg
-linegar
-lineham
-linell
-linet
-lineth
-linette
-linfield
-ling
-ling-hui
-ling-yu
-ling-yue
-ling-zho
-lingafel
-linghui
-lingyan
-lingyu
-linh
-link
-linke
-linklett
-linley
-linn
-linnea
-linnell
-linnet
-linni
-linnie
-lino
-linoel
-linsley
-linton
-linus
-linwood
-linzie
-linzy
-lion
-lionel
-lionello
-liou
-lipari
-lipe
-liping
-lippens
-lippman
-lipschut
-lipscomb
-lipski
-lipton
-lira
-lisa
-lisabeth
-lisah
-lisak
-lisandro
-lisbeth
-lisch
-lischyns
-lise
-lisee
-lisenchu
-lisetta
-lisette
-lish
-lisha
-lishe
-liskoff
-lisle
-liss-mon
-lissa
-lissi
-lissie
-lissmoni
-lissy
-list
-lister
-liston
-listonic
-lita
-litherla
-litt
-littau
-littlewo
-litva
-litz
-litzenbe
-liu
-liuka
-liv
-liva
-livas
-livek
-livengoo
-liverman
-livermor
-lives
-livezey
-livia
-livingst
-livinsto
-livio
-liviu
-livnah
-livshits
-livvie
-livvy
-livvyy
-livy
-liwana
-liwen
-lixi
-liyuan
-liyun
-liz
-liza
-lizabeth
-lizak
-lizbeth
-lizette
-lizz
-lizzi
-lizzie
-lizzy
-ljiljana
-ljilyana
-ljubicic
-llacuna
-llaguno
-llanos
-llewelly
-llopart
-lloyd
-llywelly
-lo
-loa
-loadbuil
-loader
-loadsum
-loan
-loarie
-loay
-lobasso
-lobaugh
-lobello
-lober
-lobianco
-lobin
-lobue
-loc
-locicero
-lock
-lockard
-locke
-locken
-lockett
-lockhart
-lockwood
-lococo
-lodesert
-lodovico
-loe
-loeffler
-loeiz
-loel
-loella
-loes
-loesje
-loewen
-loftis
-logan
-logaraja
-loggins
-loghry
-logntp
-logue
-loh
-lohoar
-loi
-loire
-lois
-loise
-loiseau
-loisel
-lojewski
-loke
-loker
-lola
-loleta
-lolita
-lollis
-lolly
-lombard
-lombardo
-lombardy
-lombrink
-lommen
-lon
-lon-chan
-lona
-lonald
-lonchan
-londhe
-london
-lonee
-lonergan
-long
-long-chu
-longbott
-longcham
-longchun
-longdist
-longfiel
-longhenr
-longo
-longpre
-longsong
-longtin
-lonhyn
-loni
-lonidas
-lonn
-lonna
-lonnard
-lonneke
-lonni
-lonnie
-lonnman
-lonny
-lonsdale
-loo
-loon
-loong
-loos
-looyen
-lope
-loper
-loperena
-lopes
-lopez
-lopiano
-lopinski
-loponen
-loquerci
-lora
-lora-lee
-lorain
-loraine
-loralee
-loralie
-loralyn
-lorance
-lorant
-lorcan
-lord
-loree
-loreen
-lorelei
-lorelle
-lorelynn
-loren
-lorena
-lorenc
-lorene
-lorens
-lorenz
-lorenza
-lorenzen
-lorenzo
-loreta
-loretta
-lorettal
-lorette
-lorfano
-lori
-loria
-lorianna
-lorianne
-lorie
-lorien
-lorilee
-lorilyn
-lorimer
-lorin
-lorincz
-lorinda
-lorine
-loring
-lorint
-loris
-lorita
-lorletha
-lorli
-lormor
-lorna
-lorne
-loro
-lorrain
-lorraine
-lorrayne
-lorrel
-lorri
-lorrie
-lorrin
-lorrine
-lorry
-lortie
-lory
-loryn
-los
-losfeld
-losier
-loso
-losses
-lotan
-lote
-lotfalia
-lotfi
-lothaire
-lothar
-lothario
-lotochin
-lott
-lotta
-lotte
-lotti
-lottie
-lotty
-lotz
-lou
-lou-hell
-louann
-loucel
-loudiadi
-louella
-lough
-loughery
-loughran
-loughrin
-louhelle
-louie
-louiqa
-louis
-louis-ph
-louis-re
-louisa
-louise
-louisett
-louissei
-louk
-louka
-loukas
-louladak
-lourdes
-loutitia
-loux
-lovas
-lovatt
-loveday
-lovegrov
-lovejoy
-lovekin
-lovelace
-loveland
-loveless
-lovell
-lovett
-lovin
-lovina
-lovitt
-lowder
-lowe
-lowell
-lowery
-lowietje
-lowman
-lowrance
-lowrie
-lowry
-lowther
-loxton
-loy
-loyd
-loydie
-loyer
-loyola
-loyst
-loza
-lozier
-lozinski
-lpo
-lrc
-lrcrich
-lrcrtp
-lsi
-lsiunix
-lu
-luan
-luann
-luanne
-lubliner
-lubna
-lubomir
-lubomyr
-luc
-luca
-lucais
-lucas
-lucco
-luce
-lucente
-lucey
-lucho
-luci
-lucia
-lucian
-luciana
-luciani
-luciano
-lucias
-lucie
-lucien
-lucienne
-lucifer
-lucila
-lucile
-lucilia
-lucille
-lucina
-lucinda
-lucine
-lucio
-lucita
-lucius
-lucking
-lucky
-lucretia
-lucy
-ludchen
-ludovico
-ludovika
-ludvig
-ludvikse
-ludwick
-ludwig
-lue
-luella
-luelle
-luen
-luetchfo
-luetke
-luettcha
-luff
-lugsdin
-lugwig
-luh-maan
-luhcs
-luhmaan
-lui
-luigi
-luin
-luis
-luisa
-luise
-luiza
-lujanka
-luk
-luk-shun
-lukas
-lukassen
-lukaszew
-luke
-luker
-lukers
-lukic
-lukie
-lukshis
-lukshun
-lula
-lulita
-lulu
-lum
-lum-wah
-lumley
-lumsden
-lun
-luna
-lund
-lunde
-lundhild
-lundstro
-lundy
-lunk
-lunn
-luoedora
-luoma
-luong
-lupatin
-lupher
-lupien
-luping
-luquire
-lura
-lurette
-luria
-lurleen
-lurlene
-lurline
-lusa
-luscombe
-lussier
-luszczek
-lutan
-lutero
-luther
-luthin
-lutz
-luu
-luuk
-luwemba
-luxford
-luying
-luyten
-luz
-luzarrag
-luzine
-ly
-ly-khanh
-lyall
-lychak
-lyda
-lydda-ju
-lydia
-lydie
-lydon
-lyell
-lyle
-lyliston
-lyman
-lyn
-lynda
-lyndal
-lynde
-lyndel
-lyndell
-lyndia
-lyndon
-lyndsay
-lyndsey
-lyndsie
-lyndy
-lyne
-lynea
-lynelle
-lynett
-lynetta
-lynette
-lynham
-lynn
-lynna
-lynne
-lynnea
-lynnell
-lynnelle
-lynnet
-lynnett
-lynnette
-lynsey
-lynton
-lynwood
-lyon
-lyons
-lyse
-lysinger
-lyssa
-lystad
-lystiuk
-lystuik
-lysy
-lytle
-lzrd
-maahs
-maaike
-maala
-maan
-maarten
-maas
-mab
-mabel
-mabelle
-mabes
-mable
-mabson
-mabuchi
-mac
-mac maid
-macadams
-macalik
-macarthu
-macaulay
-macbride
-maccallu
-maccarth
-macchius
-maccombi
-macconai
-maccorma
-macderma
-macdonal
-macdonel
-macdouga
-macdowal
-macduff
-mace
-macelwee
-macfarla
-macgilli
-macgrego
-mach
-machan
-machatti
-machika
-machnick
-maciej
-maciejew
-maciel
-macinnes
-macinnis
-macisaac
-maciver
-mack
-mackay
-mackel
-mackenzi
-mackey
-mackin
-mackinno
-macklem
-macklin
-mackzum
-maclaren
-maclauri
-maclean
-maclella
-maclenna
-macleod
-macmarti
-macmeeki
-macmilla
-macmulli
-macnaugh
-macneil
-macneill
-macnicol
-macoosh
-macphail
-macphers
-macpost
-macquist
-macrae
-macreyno
-macsuppo
-mada
-madalena
-madalene
-madalyn
-madan
-madani
-maddalen
-maddi
-maddie
-maddix
-maddox
-maddy
-madel
-madelain
-madelein
-madelena
-madelene
-madelin
-madelina
-madeline
-madella
-madelle
-madelon
-madelyn
-mader
-madge
-madgett
-madhav
-madhavan
-madhu
-madhukar
-madigan
-madill
-madisett
-madison
-madl
-madlen
-madlin
-mado
-madonna
-madras
-madsen
-maduri
-mady
-mae
-maegan
-maennlin
-maenpaa
-maeya
-mag
-magbee
-magda
-magdaia
-magdale
-magdalen
-magdi
-magdiel
-magdy
-mage
-maged
-magee
-mages
-maggee
-maggi
-maggie
-maggy
-maghsood
-maginley
-maglione
-magnan
-magnolia
-magnum
-magnuson
-magnusse
-magnusso
-magrath
-magri
-mags
-maguire
-mah
-mahaffee
-mahala
-mahalia
-mahaling
-mahbeer
-mahboob
-mahendra
-maher
-mahesh
-maheu
-maheux
-mahfouz
-mahibur
-mahiger
-mahin
-mahlen
-mahlig
-mahlon
-mahmood
-mahmoud
-mahmud
-mahmut
-mahn
-mahon
-mahonen
-mahoney
-mahoney-
-mahshad
-mai
-maia
-maible
-maid
-maidenhe
-maidens
-maidisn
-maidlab
-maidsir
-maidxpm
-maier
-maiga
-maighdil
-maijala
-maika
-maikawa
-maikhanh
-mail
-mailroom
-mainardi
-maine
-mainoo
-maint
-mainvill
-mainwari
-mair
-maire
-maisey
-maisie
-maison
-maisonne
-maitilde
-maitland
-maitreya
-majd
-maje
-majeed
-majek
-majella
-majernik
-majid
-majmudar
-major
-majors
-majumdar
-majury
-mak
-makam
-makarand
-makarenk
-makary
-makeda
-makiko
-makino
-makinson
-makohoni
-makoid
-makoto
-maksoud
-maksuta
-mal
-mala
-malachi
-malaclyp
-malaher
-malaika
-malaivon
-malam
-malani
-malanie
-malanos
-malavia
-malaysia
-malchy
-malcolm
-malden
-malec
-malee
-malek
-malena
-maleski
-malethia
-malgorza
-malgosia
-malhi
-malhotra
-malia
-maliepaa
-malik
-malina
-malinda
-malinde
-malisic
-maliski
-malissa
-malissia
-malizia
-malkani
-malkiewi
-malkinso
-mallari
-malle
-mallejac
-maller
-mallett
-mallik
-mallissa
-mallorie
-mallory
-malloy
-mallozzi
-malmqvis
-malone
-maloney
-malorie
-malory
-malott
-malta
-maltby
-maltese
-maludzin
-malus
-malva
-malvin
-malvina
-malynda
-malynne
-malynows
-malyszka
-malzahn
-mame
-mami
-mamie
-mamikuni
-mamoru
-mamoulid
-man
-man-fai
-manageme
-manager
-manahil
-manalac
-manami
-manas
-manavend
-manceau
-manchest
-mancini
-mand
-manda
-mandana
-mandayam
-mandel
-mandevil
-mandi
-mandie
-mandrusi
-mandruso
-mandy
-maneatis
-manek
-maness
-manette
-manfred
-manfredo
-mang
-mangione
-mangum
-manh
-manhatte
-mani
-manica
-manickam
-manijeh
-manilal
-manimozh
-maninder
-manish
-manitius
-manitsas
-manjari
-manjeri
-manjinde
-manjit
-manjrike
-mankowsk
-manley
-manli
-manly
-manmohan
-mann
-manna
-manner
-manners
-mannie
-manning
-mannino
-mannion
-manno
-manny
-mano
-manoel
-manoharm
-manoj
-manol
-manolios
-manolis
-manolo
-manon
-manou
-manouch
-manoukia
-mansbrid
-mansell
-manshih
-mansi
-manson
-mansour
-mansoura
-mansouri
-mansukha
-mansum
-mantell
-manto
-manuel
-manuela
-manus
-manuszak
-manverse
-manwarin
-manya
-mao
-maohua
-mapes
-mapile
-mapp
-mar
-mara
-marabel
-maracle
-maragoud
-marano
-marasco
-marasliy
-marc
-marc-and
-marc-ant
-marcanti
-marcanto
-marce
-marceau
-marcel
-marcela
-marcelia
-marcelis
-marcella
-marcelle
-marcelli
-marcello
-marcellu
-marcelo
-marcey
-march
-marchall
-marchand
-marchant
-marcheck
-marchell
-marchese
-marchett
-marci
-marcia
-marcie
-marcile
-marcilie
-marcille
-marciniu
-marcio
-marco
-marcom
-marconi
-marcos
-marcotte
-marcoux
-marcum
-marcus
-marcy
-mardi
-marea
-mareah
-marek
-marella
-maren
-marena
-marenger
-maressa
-marette
-marg
-marga
-margalit
-margalo
-margaret
-margarie
-margarit
-margaux
-marge
-margeaux
-margery
-marget
-margetso
-margette
-margheri
-margheti
-margi
-margie
-margit
-margitta
-margo
-margot
-margret
-margriet
-margueri
-margy
-marhta
-mari
-maria
-mariabel
-mariaele
-mariaisa
-mariam
-marian
-mariana
-mariani
-mariann
-marianna
-marianne
-maribel
-maribell
-maribeth
-marice
-maridel
-marie
-marie-an
-marie-je
-marie-jo
-marie-lu
-marie-na
-marieann
-mariejea
-marieka
-marieke
-mariel
-mariela
-mariele
-marielle
-mariesar
-mariet
-marietta
-mariette
-marigold
-marijke
-marijn
-marijo
-marika
-mariland
-marilee
-marilin
-marillin
-marily
-marilyn
-marilynn
-marin
-marina
-marinaro
-marineau
-marinett
-marinna
-marino
-marinos
-mario
-marion
-mariotti
-mariou
-mariquil
-maris
-marisa
-marisca
-marisela
-mariska
-marissa
-marit
-marita
-maritan
-maritsa
-maritza
-marius
-mariya
-mariza
-marj
-marja
-marjan
-marje
-marjean
-marjet
-marji
-marjie
-marjo
-marjoke
-marjolei
-marjorie
-marjory
-marjy
-mark
-markell
-markes
-marketa
-marketin
-markham
-markiewi
-markins
-markland
-markle
-markm
-markmeye
-marko
-markos
-markovic
-marks
-markus
-marla
-marlaine
-marlane
-marleah
-marleau
-marlee
-marlee-j
-marleejo
-marleen
-marlena
-marlene
-marley
-marlie
-marlies
-marlin
-marline
-marling
-marlo
-marloes
-marlon
-marlow
-marlowe
-marlsela
-marlyn
-marlyne
-marmaduk
-marmen
-marmillo
-marmion
-marna
-marne
-marneris
-marney
-marni
-marnia
-marnie
-marnix
-maroucho
-maroun
-marples
-marquart
-marquez
-marquita
-marr
-marra
-marrec
-marren
-marrett
-marriet
-marrilee
-marriott
-marris
-marrissa
-marron
-marrone
-marryann
-mars
-marscha
-marschew
-marsden
-marsh
-marsha
-marshal
-marshall
-marshaus
-marshman
-marsie
-marsiell
-marson
-marston
-mart
-marta
-martainn
-martel
-martell
-martelle
-marten
-martens
-martenso
-martenst
-martguer
-martha
-marthe
-marthena
-marti
-martica
-martie
-martijn
-martin
-martina
-martince
-martinci
-martine
-martinea
-martinez
-marting
-martino
-martins
-martinus
-martita
-marttine
-marturan
-marty
-martyn
-martynne
-marui
-marum
-maruszak
-maruszew
-marv
-marve
-marvel
-marvell
-marven
-marvette
-marvin
-marwan
-marwin
-marx
-mary
-mary-ann
-mary-ell
-mary-jan
-mary-jo
-mary-mic
-mary-pat
-marya
-maryak
-maryam
-maryann
-maryanna
-maryanne
-marybell
-marybeth
-maryelle
-maryjane
-maryjo
-marykate
-marykay
-maryl
-marylee
-marylin
-marylind
-marylou
-marylynn
-marymarg
-maryn
-maryrose
-marys
-marysa
-maryse
-marysue
-maryvonn
-marzella
-marzullo
-masa
-masahiro
-masako
-masales
-masamich
-masanao
-masanobu
-masao
-masapati
-masaru
-masciare
-masha
-mashura
-masika
-masini
-maskell
-maskery
-maslen
-maso
-mason
-masood
-masooda
-masotti
-masoud
-masse
-massengi
-massey
-massicot
-massimil
-massimo
-massinga
-masson
-massone
-massonne
-massoud
-massoudi
-massumi
-mastella
-mastenbr
-masterpl
-masters
-masterso
-mastrang
-mastroma
-mastrona
-masty
-mat
-mata
-mataga
-matalon
-matatall
-matelda
-mateo
-materkow
-materna
-mathe
-mather
-matheson
-mathew
-mathews
-mathewso
-mathian
-mathias
-mathieso
-mathieu
-mathilda
-mathilde
-mathis
-mathiue
-mathur
-mathurin
-mathus
-matias
-matibag
-matilda
-matilde
-matlock
-matney
-matrin
-matrundo
-mats
-matson
-matsubar
-matsugu
-matsunag
-matsushi
-matsuzak
-matsuzaw
-matt
-matteau
-matteo
-mattes
-matthaeu
-mattheus
-matthew
-matthews
-matthias
-matthieu
-matthiew
-matthus
-matti
-mattias
-mattie
-mattiuss
-mattiuz
-matton
-mattson
-matty
-matusik
-mau
-mau-pin
-mauck
-maud
-maudalis
-maude
-maudie
-maudrie
-maudy
-mauer
-mauldin
-maund
-mauney
-maunu
-maupin
-maura
-maure
-maureen
-maureene
-maurene
-maurer
-maurice
-mauricio
-maurie
-maurijn
-maurine
-maurino
-maurise
-maurita
-maurits
-maurizia
-maurizio
-mauro
-maury
-maveety
-mavis
-mavra
-mavrou
-mawani
-mawji
-mawst
-max
-maxey
-maxi
-maxie
-maxim
-maximili
-maximo
-maxin
-maxine
-maxseine
-maxsom
-maxwell
-maxy
-may
-maya
-mayaram
-mayasand
-maybee
-maybelle
-maycel
-maycock
-maye
-mayea
-mayenbur
-mayer
-mayes
-mayeul
-mayfield
-mayhugh
-mayi
-maylynn
-mayman
-maynard
-mayne
-maynes
-maynie
-maynord
-mayo
-mayor
-mayoux
-mayr
-mayr-ste
-mays
-mayumi
-mayya
-mazahir
-mazanji
-mazarick
-mazen
-mazey
-mazlack
-mazurek
-mazyar
-mazzei
-mbrose
-mc
-mc alpin
-mc ginn
-mcadam
-mcadams
-mcadorey
-mcafee
-mcalear
-mcaleer
-mcaliste
-mcallist
-mcallum
-mcandrew
-mcarthur
-mcateer
-mcaulay
-mcauliff
-mcbeth
-mcbrayne
-mcbride
-mcbroom
-mcbryan
-mccabe
-mccaffer
-mccaffit
-mccaffre
-mccaig
-mccain
-mccall
-mccalla
-mccallen
-mccallum
-mccampbe
-mccandle
-mccann
-mccarrel
-mccarrol
-mccarron
-mccarthy
-mccartin
-mccartne
-mccarty
-mccaughe
-mccauley
-mccaw
-mcclain
-mcclarre
-mcclary
-mcclean
-mccleery
-mcclella
-mcclendo
-mcclenno
-mcclinto
-mccloske
-mcclough
-mcclure
-mccluske
-mcclymon
-mccoll
-mccollam
-mccollum
-mccolman
-mccomb
-mccombs
-mcconagh
-mcconkey
-mcconnel
-mcconney
-mccord
-mccorkel
-mccorkle
-mccormac
-mccormic
-mccorquo
-mccoy
-mccoy-ca
-mccracke
-mccrain
-mccraney
-mccray
-mccready
-mccreano
-mccrear
-mccreath
-mccreesh
-mccrimmo
-mccuaig
-mccue
-mccullen
-mcculloc
-mccullog
-mccullou
-mccully
-mccune
-mccurdy
-mccusker
-mcdade
-mcdaniel
-mcdavitt
-mcdermot
-mcdevitt
-mcdonald
-mcdonnel
-mcdonoug
-mcdoom
-mcdougal
-mcdowall
-mcdowell
-mcduffie
-mcdunn
-mceacher
-mcelderr
-mcelhone
-mcelligo
-mcellist
-mcelrea
-mcelroy
-mcevoy
-mcewan
-mcewen
-mcewen-r
-mcfadden
-mcfall
-mcfarlan
-mcfeely
-mcgallia
-mcgarry
-mcgaughe
-mcgee
-mcgehee
-mcgeown
-mcghee
-mcgill
-mcgillic
-mcgillvr
-mcgilly
-mcginley
-mcginn
-mcglynn
-mcgonagl
-mcgoniga
-mcgorman
-mcgough
-mcgovern
-mcgowan
-mcgracha
-mcgrath
-mcgregor
-mcgruder
-mcguigan
-mcguinne
-mcguire
-mcgurn
-mchale
-mchan
-mcharg
-mchugh
-mcilrath
-mcilroy
-mcinerne
-mcinnis
-mcintee
-mcintire
-mcintomn
-mcintosh
-mcintyre
-mcisaac
-mciver
-mckay
-mckeage
-mckeague
-mckearne
-mckechni
-mckee
-mckeegan
-mckeen
-mckeigha
-mckeitha
-mckenna
-mckenney
-mckenzie
-mckeone
-mckeown
-mckerrow
-mckibben
-mckibbin
-mckibbon
-mckie
-mckillop
-mckinlay
-mckinley
-mckinney
-mckinnon
-mcknelly
-mcknight
-mckusick
-mclachla
-mclaren
-mclauchl
-mclaughl
-mclawhon
-mclawhor
-mclean
-mclellan
-mclemore
-mclenagh
-mclendon
-mclennan
-mcleod
-mcluskie
-mcmahan
-mcmahon
-mcmanis
-mcmann
-mcmannen
-mcmanus
-mcmaster
-mcmeegan
-mcmenami
-mcmichae
-mcmillan
-mcmillen
-mcmillia
-mcmillio
-mcminn
-mcmonagl
-mcmullen
-mcmullin
-mcmurray
-mcnab
-mcnabb
-mcnair
-mcnally
-mcnamara
-mcnamee
-mcnaught
-mcneal
-mcnealy
-mcneely
-mcneese
-mcneil
-mcneill
-mcneilly
-mcnerlan
-mcnerney
-mcnichol
-mcnicol
-mcniel
-mcnitt
-mcnulty
-mcphaden
-mcphail
-mcphee
-mcpherso
-mcquaid
-mcquaig
-mcquarri
-mcqueen
-mcrae
-mcrann
-mcready
-mcritchi
-mcronald
-mcruvie
-mcshane
-mcsheffr
-mcsorley
-mcsween
-mctaggar
-mctavish
-mctierna
-mcturner
-mcvay
-mcveety
-mcveigh
-mcvey
-mcvicar
-mcvicker
-mcwalter
-mcwaters
-mcwherte
-mcwhinne
-mcwhorte
-mcwilton
-mdhazali
-mduduzi
-me
-meachum
-mead
-meade
-meadows
-meads
-meagan
-meaghan
-meagher
-mealin
-meany
-meara
-measures
-mebine
-mechael
-meche
-mechelle
-mecher
-meckler
-meckley
-mecteau
-medefess
-medeiros
-medel
-meder
-medill
-medioni
-medlin
-medlock
-mednick
-medria
-meehan
-meeks
-meena
-meenaksh
-meer
-meera
-meerveld
-meese
-meeting
-meffe
-meg
-megan
-megen
-meggi
-meggie
-meggitt
-meggo
-meggy
-meghan
-meghani
-meghann
-megumi
-mehboob
-mehd
-mehdi
-mehelis
-mehetabe
-mehlhaff
-mehmet
-mehmud
-mehrdad
-mehrez
-mehrzad
-mehta
-mehul
-mei
-mei-jywa
-meier
-meijer
-meijywan
-meikle
-meilleur
-mein
-meining
-meir
-meiser
-meisner
-meissner
-mejdal
-mejia
-mejury
-mel
-mela
-melamie
-melana
-melani
-melania
-melanie
-melanson
-melantha
-melany
-melaura
-melba
-melberta
-melbourn
-meldia
-meldrum
-melecio
-meleg
-melek
-melesa
-meleski
-meleskie
-melessa
-meletios
-melfi
-melford
-melhem
-meli
-melicent
-melina
-melinda
-melinde
-melinie
-melisa
-melisand
-melisend
-melisent
-melissa
-melisse
-melita
-melitta
-melkild
-mella
-melli
-mellicen
-mellie
-mellisa
-mellisen
-mello
-melloney
-mellor
-melly
-melnyk
-melodee
-melodie
-melody
-meloling
-meloney
-melonie
-melony
-melosa
-melton
-melucci
-melva
-melvin
-melvina
-melvyn
-melynda
-men-kae
-menaker
-menard
-menasce
-menashi
-menashia
-mencer
-mendel
-mendelso
-mendez
-mendie
-mendolia
-mendonca
-mendorf
-mendoza
-mendy
-menechia
-menendez
-meng
-mengly
-menkae
-menke
-menna
-mennie
-menon
-menqiong
-mensch
-mensinka
-mentor
-menyhart
-menzel
-menzies
-mer
-merat
-merb
-mercedes
-mercer
-merci
-mercie
-mercier
-mercilin
-mercy
-merdia
-meredeth
-meredith
-merell
-merelyn
-meres
-mereu
-meriann
-meridel
-meridew
-meridian
-meridith
-meriel
-merilee
-meriline
-merill
-merilyn
-merinder
-meris
-merissa
-meriweth
-merizzi
-merkling
-merl
-merla
-merle
-merlin
-merlina
-merline
-mermelst
-merna
-merola
-merralee
-merrel
-merrett
-merrick
-merridie
-merrie
-merriell
-merrile
-merrilee
-merrili
-merrill
-merrills
-merrils
-merrily
-merrithe
-merritt
-merry
-merryman
-merrywea
-mersch
-mersey
-mersinge
-merton
-merunix
-merv
-mervin
-mervyn
-merwin
-merworth
-merwyn
-meryl
-merylene
-meseberg
-mesirov
-meskimen
-mesko
-mesquita
-message
-messer
-messeria
-messersc
-messick
-messier
-messinge
-mesut
-meszaros
-meta
-metcalf
-metcalfe
-metelski
-meter
-metheny
-metherel
-methi
-methiwal
-methot
-methul
-metin
-metler
-metraile
-metrics
-mettrey
-metyn
-metz
-metzger
-metzler
-meubus
-meunier
-mevis
-mewa
-meyer
-meyerink
-meyers
-meza
-mezzano
-mezzoius
-mfgeng
-mgmt
-mia
-miao
-miasek
-mic
-micaela
-micah
-micahel
-miceli
-micgael
-micha
-michael
-michael-
-michaela
-michaeli
-michaell
-michaels
-michaez
-michail
-michailo
-michal
-michale
-michalos
-michaud
-micheal
-micheil
-michel
-michele
-michelin
-michell
-michella
-michelle
-michels
-michelse
-michelso
-michelus
-michi
-michial
-michie
-michiel
-michigan
-michihir
-michiko
-michiya
-mick
-mickens
-mickey
-micki
-mickie
-micklos
-micky
-mico
-micro
-microfab
-micucci
-mid
-middlebr
-middleto
-midge
-midha
-miek
-mielke
-miello
-miep
-miernik
-miers
-mierwa
-mietek
-miezitis
-migdalia
-mignault
-mignon
-mignonne
-miguel
-miguela
-miguelit
-mihaela
-mihai
-mihail
-mihan
-mihara
-mihir
-mihm
-miho
-mihran
-mika
-mikael
-mikaela
-mike
-mikel
-mikelis
-mikeloni
-mikey
-mikhail
-miki
-mikie
-mikihito
-mikkel
-miklos
-miko
-mikol
-miksik
-mikulka
-mil
-mila
-milaknis
-milakovi
-milan
-milanfar
-milanovi
-milar
-milary
-milburn
-mildred
-mildrid
-mile
-milena
-miles
-milford
-milian
-milicent
-milind
-milinkov
-milissen
-milka
-mill
-millaire
-millar
-millard
-millen
-miller
-millero
-millerwo
-millette
-milletti
-milli
-millicen
-millie
-milligan
-millisen
-millo
-milloy
-mills
-millspau
-millward
-milly
-milman
-milmine
-milne
-milner
-milo
-milor
-milotte
-milou
-milstead
-milston
-milt
-miltenbu
-miltie
-milton
-miltos
-milty
-milutino
-milway
-milzie
-mim
-mimi
-mims
-min
-min-jho
-mina
-minai
-minakata
-minako
-minami
-minard
-minas
-mincey
-minck
-minda
-mindy
-minegish
-miner
-minerva
-minesh
-minetola
-minetta
-minette
-ming
-ming-cha
-ming-chu
-ming-hue
-ming-min
-ming-pin
-ming-tzo
-ming-yua
-mingchu
-minghuei
-minghwan
-mingpin
-mingtzon
-mingyuan
-minh
-minh-phu
-minhwi
-minichil
-minjho
-minkus
-minna
-minnamin
-minne
-minnesot
-minni
-minniche
-minnie
-minnnie
-minny
-minor
-minority
-minoru
-minos
-minshall
-minsky
-minta
-minter
-minthorn
-minyard
-minzhu
-miodrag
-miof mel
-mior
-miotla
-mips
-miquela
-miquette
-mir
-mira
-mirabel
-mirabell
-miran
-miranda
-mirande
-mirarchi
-mireiell
-mireille
-mirek
-mirella
-mirelle
-mirenda
-miriam
-miriamne
-mirian
-mirilla
-mirin
-mirjam
-mirko
-mirna
-miro
-miron
-miroslav
-miroslaw
-mirza
-mis
-misbah
-mischa
-misczak
-misha
-mishina
-misium
-miskelly
-misko
-misra
-miss
-missagh
-missaili
-missie
-misslitz
-missy
-mister
-misti
-mistry
-mistulof
-misty
-misutka
-mitalas
-mitch
-mitchael
-mitchel
-mitchell
-mitchels
-mitchler
-mitesh
-mitra
-mitrani
-mitrou
-mitsui
-mitsuko
-mitsuru
-mitsuter
-mittleid
-mitzi
-mivehchi
-miwa
-miwako
-miyuki
-mizerk
-mkpwent
-mkt
-mlacak
-mlcoch
-mmail
-mmdf
-mnason
-mo
-moataz
-moazzami
-mobasher
-mobley
-mocock
-modaffer
-modesta
-modestia
-modestin
-modestos
-modestou
-modesty
-modh
-modi
-modigh
-modl
-modotto
-modula-2
-modula2
-moe
-moebes
-moel
-moen
-moening
-moeschet
-moetteli
-moffatt
-moffet
-moffett
-mofina
-moghe
-moghis
-mogridge
-moh
-moh'd
-mohajeri
-mohamad
-mohamed
-mohammad
-mohammed
-mohan
-mohandas
-mohandis
-moharram
-mohd
-mohideen
-mohler
-mohr
-mohrmann
-mohsen
-moina
-moira
-moise
-moises
-moishe
-moiz
-moizer
-moja
-mojgani
-mojtaba
-mok
-mok-fung
-mokbel
-mokhtar
-mokros
-molani
-moledina
-moleski
-moll
-mollee
-mollerus
-molli
-mollie
-molloy
-molly
-molnar
-molochko
-moloney
-molson
-molyneux
-mombourq
-mommy
-momon
-momtahan
-mona
-monachel
-monaco
-monaghan
-monah
-monahan
-monardo
-moncef
-moncion
-monck
-moncur
-mondher
-mondor
-monet
-monette
-moneypen
-monforto
-monfre
-mong
-mong-tse
-mongo
-mongtsen
-moni
-monica
-moniek
-monika
-monino
-monique
-moniter
-monling
-monn
-monro
-monroe
-monson
-montag
-montague
-montaldo
-montanez
-montange
-montanin
-montcalm
-monte
-monteene
-monteggi
-monteiro
-montelli
-montero
-monteros
-montgome
-monti
-montijo
-montmore
-montor
-montoute
-montoya
-montreal
-montreui
-montsion
-montsko
-montuno
-monty
-mony
-monzo
-moo-youn
-mooder
-moogk
-mooken
-moomey
-moon
-moondog
-mooney
-moonistt
-moorcrof
-moore
-moore-vi
-moorefie
-moorer
-moores
-moorhous
-moosavi
-mora
-moraetes
-morais
-morales
-moran
-moray
-morcinel
-mord
-mordecai
-mordecha
-morden
-mordy
-morearty
-moreau
-moree
-moreen
-morehead
-morek
-moreland
-morelli
-morena
-moreno
-moreton
-morettin
-morey
-morgan
-morgan-c
-morgana
-morganic
-morganne
-morgen
-morglan
-morgun
-mori
-moria
-moriarty
-morie
-morimoto
-morin
-morini
-morino
-moris
-morishig
-morissa
-morisset
-moritz
-moriyama
-morlee
-morley
-morly
-morna
-morneau
-morocz
-moroney
-moroz
-morra
-morreale
-morrie
-morrin
-morris
-morrison
-morrisse
-morry
-morse
-morson
-mort
-morten
-morteza
-mortie
-mortimer
-morton
-morty
-moschopo
-mose
-moseby
-moselle
-moser
-moses
-mosetta
-moshe
-moshinsk
-moshiri
-moshtagh
-moshy
-mosis
-moskalik
-mosley
-moss
-mostafa
-mostovac
-mosur
-mot
-motashaw
-motasim
-motaz
-mote
-motoko
-mototsun
-mott
-motwani
-mou
-moua
-mouat
-moubarak
-mougy
-mouillau
-moulds
-moulsoff
-moulton
-mouna
-mounir
-mountfor
-moussa
-mousseau
-moussett
-moveline
-movies
-mowat
-mowbray
-mowle
-moxham
-moxley
-moxon
-moy
-moya
-moyano
-moyce
-moyenda
-moyer
-moyers
-moyes
-moyna
-moynihan
-moyoli
-moyra
-mozart
-mozek
-mozelesk
-mozelle
-mozes
-mraz
-mrozinsk
-mrugesh
-msg
-mshia
-mtcbase
-mtl
-mtlipadm
-mtnview
-mu-cheng
-mucci
-mucheng
-muchow
-mucklow
-mudd
-mudge
-mudie
-mudry
-muehle
-mueller
-muenster
-muffin
-mufi
-mufinell
-mufti
-mugniot
-muh-cher
-muhammad
-muhammed
-muhchern
-mui
-muinck
-muir
-muire
-muise
-mujahed
-mukai
-mukhar
-mukharji
-mukherje
-mukhopad
-mukul
-mukund
-mulder
-mulders
-muldoon
-mulero
-mulherka
-mulholla
-mullaly
-mullaney
-mullarne
-mullen
-muller
-mullett
-mullin
-mullinix
-mullins
-mulmuley
-mulot
-mulqueen
-mulroney
-multispe
-mulumba
-mulvie
-mumford
-mumma
-mummy-cr
-mun-choo
-mun-hang
-munaz
-munchoon
-munden
-mundi
-mundy
-muni
-munikoti
-munir
-muniz
-munjal
-munmro
-munn
-munna
-munns
-munro
-munroe
-munsey
-munson
-munter
-munz
-munzer
-muqarrab
-muradia
-muralidh
-murash
-murat
-murawski
-murchiso
-murdaugh
-murdeshw
-murdoch
-murdock
-mureil
-murial
-muriel
-murielle
-murison
-murnagha
-muro
-murock
-murph
-murphin
-murphy
-murphy-k
-murray
-murrell
-murrill
-murrin
-murris
-murry
-murson
-murtagh
-murtaza
-murthy
-murton
-murty
-murveit
-murvyn
-musa
-musca
-musclow
-muselik
-musen
-musgrove
-musick
-mussalle
-mussar
-musselwh
-musser
-mustafa
-mustapha
-mustillo
-mutcher
-muth
-muthuswa
-mutikain
-mutsuo
-muttaqi
-muus
-muzio
-muzz
-mwa
-my
-mya
-myatt
-myca
-mycah
-mychal
-myer
-myers
-myers-pi
-myhill
-mykitysh
-myla
-myles
-mylne
-mylo
-mymryk
-myong
-myoung
-myra
-myrah
-myranda
-myre
-myriam
-myrick
-myrilla
-myrillas
-myrle
-myrlene
-myrna
-myron
-myroon
-myrta
-myrthill
-myrtia
-myrtice
-myrtie
-myrtille
-myrtle
-myrvyn
-myrwyn
-mysore
-mystkows
-myung
-myunghee
-myungho
-nabeel
-nabeil
-nabil
-nabisco
-nabors
-nace
-nachtshe
-nachum
-nad
-nada
-nadav
-nadean
-nadeau
-nadeau-d
-nadeem
-nadeen
-nadel
-nader
-nadezhda
-nadi
-nadia
-nadim
-nadine
-nadir
-nadiya
-nadler
-nadolny
-nadon
-nady
-nadya
-nae-ming
-naem
-naeming
-nafezi
-nafsika
-nagai
-nagaraj
-nagaraja
-nagaratn
-nagarur
-nagel
-nagendra
-nagenthi
-nagle
-naguib
-nagy
-nagys
-nahabedi
-nahas
-nahata
-nahid
-nahmias
-nahornia
-nahum
-naile
-naim
-naima
-naimpall
-nair
-nairn
-naismith
-najafi
-naji
-najib
-nakagome
-nakamura
-nakano
-nakatsu
-nakhla
-nakhoul
-nakina
-nakonecz
-nalani
-naldrett
-nalin
-nall
-nallenga
-nam
-nam-kiet
-nam-soo
-namasiva
-nambride
-namdar
-nami
-namiki
-namont
-namrata
-nan
-nana
-nanamiya
-nananne
-nance
-nancee
-nancey
-nanci
-nancie
-nancy
-nancyjea
-nanda
-nandakum
-nandan
-nandi
-nandita
-nando
-nanete
-nanette
-nang
-nani
-nanice
-nanine
-nannette
-nanni
-nannie
-nanny
-nanon
-naohiko
-naoko
-naolu
-naoma
-naomi
-naor
-naoto
-naoum
-nap
-naparst
-napert
-naphan
-naphtali
-napier-w
-napke
-napoleon
-napper
-nappie
-nappy
-nara
-narasimh
-narayan
-narayana
-narciso
-narda
-nardiell
-naren
-narendra
-naresh
-nari
-narida
-nariko
-narinder
-naro
-narraway
-narrima
-narron
-narsimha
-nasato
-naser
-nash
-nashib
-nashif
-nashir
-nashvill
-nasir
-nason
-nass
-nasser
-nassoy
-nassr
-nasvin
-nat
-nata
-natal
-natala
-natale
-natalee
-natalia
-natalie
-natalina
-nataline
-nataliya
-nataly
-natalya
-nataniel
-nataraja
-natascha
-natasha
-natasja
-natassia
-natassja
-natchez
-nate
-nath
-nathalia
-nathalie
-nathan
-nathanae
-nathania
-nathanie
-nathanil
-nathoo
-national
-natiuk
-nativida
-natka
-natkin
-natraj
-natty
-natver
-natvidad
-naufal
-naugle
-naujokas
-naujoks
-nault
-nava
-naval
-navalta
-navaratn
-navarre
-navarro
-naveda
-naveed
-naveen
-navid
-navneet
-nawa
-nawaby
-nayan
-naybor
-naylor
-nayman
-nayneshk
-nayyer
-nazanin
-nazardad
-nazeh
-nazi
-nazib
-nazli
-nazman
-ncc
-ndububa
-ne-regio
-neal
-neala
-neale
-neall
-nealon
-nealson
-nealy
-neamtu
-neander
-nearing
-nearyrat
-neate
-neault
-nebel
-ned
-neda
-nedda
-nedderma
-neddie
-neddy
-nedi
-needham
-neefs
-neel
-neely
-neena
-neene
-neeraj
-neetu
-nefen
-neff
-negandhi
-negar
-neghabat
-negrich
-nehemiah
-nehring
-neibauer
-neider
-neidy
-neifert
-neil
-neila
-neile
-neill
-neilla
-neille
-neilly
-neils
-neilsen
-neilson
-neisius
-neitzel
-nekueey
-nel
-nelda
-nelia
-nelie
-nelken
-nell
-nelle
-nelleke
-nelli
-nellie
-nellis
-nelly
-nelon
-nels
-nelsen
-nelson
-nemec
-nemes
-nemeth
-nemirovs
-nenad
-neng-chu
-nengchun
-nentwich
-neoh
-nerby
-nereida
-nerem
-nerissa
-nerita
-nermana
-nero
-neron
-nert
-nerta
-nerte
-nerti
-nertie
-nerty
-nesbitt
-nesralla
-ness
-nessa
-nessi
-nessie
-nessman
-nessy
-nesta
-neste
-nester
-nestor
-netas
-netdbs
-netdev
-netherso
-netick
-netlink
-neto
-netta
-netteam
-netti
-nettie
-nettle
-nettles
-netto
-netty
-network-
-networkr
-networks
-netzke
-neubauer
-neudeck
-neufeld
-neuman
-neumann
-neumeist
-neureuth
-neuschwa
-neustift
-neusy
-nev
-neva
-nevardau
-nevein
-nevil
-nevile
-neville
-nevin
-nevins
-nevison
-nevrela
-nevsa
-new
-newberry
-newbold
-newby
-newcomb
-newcombe
-newell
-newham
-newhook
-newkirk
-newlab
-newland
-newman
-newnam
-newport
-news
-newsom
-newsome
-newton
-neyer
-neyman
-neyra
-neysa
-neywick
-nezm
-nezon
-ng
-nga
-ngai
-ngai-nga
-ngaingai
-ngan
-nghia
-ngina
-ngo
-ngoc
-ngocquyn
-nguy
-nguyen
-nguyen-t
-nguyet
-nha
-nhan
-nhat
-nhien
-nhut
-nial
-niall
-niamh
-nic
-nicandro
-nicas
-niccolls
-niccolo
-nichael
-nichol
-nicholas
-nichole
-nicholl
-nicholle
-nichols
-nicholso
-nici
-nick
-nickell
-nickells
-nickels
-nickerso
-nickey
-nicki
-nickie
-nickle
-nicklin
-nicko
-nickola
-nickolai
-nickolas
-nickolau
-nickonov
-nicky
-nico
-nicol
-nicola
-nicolai
-nicolais
-nicolaou
-nicolas
-nicole
-nicolea
-nicoles
-nicolett
-nicoli
-nicolina
-nicoline
-nicolis
-nicolle
-nicolo
-nicolopu
-nicosia
-nie
-niebudek
-niedelma
-niedens
-niedra
-niedzwie
-niek
-niel
-nield
-niels
-nielsen
-nielson
-niemi
-nien
-nien-hwa
-nienhwa
-niepmann
-niepokuj
-niergart
-nigam
-nigel
-nihar
-nijen
-nik
-nikaniki
-nike
-nikfarja
-niki
-nikifori
-nikiforu
-nikita
-nikki
-nikkie
-nikky
-niklas
-niko
-nikola
-nikolai
-nikolaos
-nikolas
-nikolaus
-nikolett
-nikolia
-nikolopo
-nikolos
-nikos
-nil
-nilakant
-niles
-nilesh
-nill
-niloofar
-nils
-nilson
-nilsson
-nima
-nimesh
-nimish
-nimmo
-nimr
-nimzod
-nina
-ninetta
-ninette
-ninety-o
-ning
-ninja
-ninnetta
-ninnette
-ninno
-ninon
-nipper
-nir
-niraj
-niranjan
-nirmal
-niro
-nirwan
-nisa
-nisan
-nisbet
-nischuk
-nishan
-nishida
-nishiguc
-nishihar
-nishimot
-nishimur
-nishioka
-nishith
-nishiwak
-nishiyam
-nishizak
-nissa
-nisse
-nissie
-nissy
-nita
-nital
-nitin
-nitschky
-nitza
-nitzhe
-nitzhye
-niu
-niven
-nix
-nixie
-nixon
-nixxon
-niz
-nizam
-nizamudd
-nizar
-nizman
-nj
-njo
-nnamdi
-nnamudi
-no
-noach
-noah
-noak
-noam
-noami
-nobe
-nobel
-nobes
-nobie
-noble
-nobuko
-nobuo
-nobutaka
-nobuto
-nobuyuki
-noby
-nock
-noddin
-node
-noe
-noel
-noelani
-noell
-noella
-noelle
-noellyn
-noelyn
-noemi
-noeschka
-noffke
-noguchi
-nokes
-nola
-nolan
-nolan-mo
-nolana
-noland
-nolen
-noles
-nolet
-nolie
-noll
-nollie
-nolly
-nolter
-nomi
-nomura
-nona
-nonah
-noname
-nong
-nongqian
-noni
-nonie
-nonkes
-nonna
-nonnah
-noone
-noorani
-noorbehe
-noorbhai
-nooshin
-nopi
-nora
-norah
-noralie
-noraly
-norbert
-norberto
-norbie
-norby
-norcal
-norczen
-nordskog
-nordstro
-norean
-noreen
-norel
-norena
-norene
-norfleet
-norgaard
-norikats
-norikazu
-noriko
-norina
-norine
-norio
-noris
-norm
-norma
-norman
-normand
-normandi
-norment
-normie
-normy
-norndon
-noronha
-norri
-norrie
-norris
-norry
-norstar
-north
-northam
-northcot
-northrop
-northrup
-norton
-norval
-norvie
-norvig
-norwood
-nosewort
-noslab
-nosov
-nostrada
-notley
-nou
-noubar
-nouira
-noujeim
-nour
-nouri
-nova
-novak
-novelia
-novene
-novia
-novisedl
-novo
-novorols
-novotny
-nowak
-nowell
-nowina-k
-nowlin
-noy
-noye
-noyes
-npi
-nss
-ntelpac
-ntinash
-ntlc
-ntpadmin
-ntprel
-nttest
-nuber
-nuetzi
-nugent
-number
-nunes
-nunez
-nung
-nunn
-nunnally
-nuno
-nunold
-nuntel
-nurettin
-nurhan
-nuri
-nuria
-nurly
-nurmi
-nuttall
-nuvit
-nyaguthi
-nyberg
-nyce
-nydia
-nye
-nyeita
-nyenhuis
-nyland
-nyquist
-nyre
-nys
-nyssa
-o karina
-o'brecht
-o'brian
-o'brien
-o'carrol
-o'colmai
-o'connel
-o'conner
-o'connor
-o'dacre
-o'dale
-o'dea
-o'dell
-o'dohert
-o'donnel
-o'donova
-o'dwyer
-o'farrel
-o'grady
-o'hagan
-o'hara
-o'hearn
-o'heocha
-o'higgin
-o'keefe
-o'keeffe
-o'kelly
-o'leary
-o'malley
-o'meara
-o'murchu
-o'neal
-o'neall
-o'neil
-o'neill
-o'regan
-o'reilly
-o'rourke
-o'shaugh
-o'shea
-o'sulliv
-o'toole
-o_kelly
-oakland
-oakley
-oaks
-oam
-oanes
-oanh
-oastler
-oates
-oaul
-obadiah
-obadias
-obed
-obeda
-obediah
-obeidat
-obenauf
-ober
-oberhamm
-obermeie
-obermeye
-obermyer
-oberon
-oberpril
-obidiah
-obie
-oblak
-obrecht
-obrien
-obrusnia
-oby
-ocampo
-ochman
-ochoa
-ochs
-ocone
-oconnor
-octavia
-octavio
-octavius
-odac
-odden
-ode
-odecki
-oded
-odegaard
-odele
-odelia
-odelinda
-odell
-odella
-odelle
-oden
-odessa
-odetta
-odette
-odey
-odgers
-odie
-odile
-odilia
-odille
-odo
-odum
-ody
-oedipal
-oedipus
-oertelt
-oesterre
-oestreic
-oetting
-oey
-ofcparm
-ofcparms
-ofelia
-ofella
-ofer
-offers
-ofilia
-ogan
-ogborn
-ogburn
-ogdan
-ogden
-ogdon
-ogilvie
-oglesby
-ogrodnik
-ogua
-oguz
-ohala
-ohandley
-ohara
-ohare
-ohashi
-ohio
-ohmaru
-ohmayer
-ohn
-ohsone
-oingres
-oivind
-ojala
-ojerholm
-oka
-okada
-okafo
-okai
-okamoto
-okan
-okay
-oke
-okey
-okon
-okrafka
-oksana
-okseniuk
-oktar
-okun
-okura
-okuyama
-okuzawa
-ola
-olag
-olav
-old
-older
-oldfield
-oldham
-oldright
-ole
-oleesa
-oleksysh
-olenka
-olenolin
-olesen
-olesko
-olga
-olia
-olimpia
-olin
-olinger
-olinyk
-olivares
-olive
-oliveira
-oliver
-olivero
-olivette
-olivia
-olivie
-olivier
-oliviero
-oliy
-olken
-ollie
-olliff
-olly
-olmstead
-olness
-olof
-olsen
-olsheski
-olson
-olszewsk
-olusola
-olva
-olvan
-olwen
-olympe
-olympia
-olympie
-olynyk
-oma
-oman
-omar
-omayma
-omer
-omerine
-omero
-omid
-omori
-omura
-omyeabor
-onassis
-onder
-ondovcik
-ondrea
-oneida
-oneto
-onette
-onfre
-onfroi
-ong
-onge
-onida
-onofredo
-onsitete
-onsy
-onufrak-
-onyshko
-ooi
-oona
-oorschot
-oost
-op
-opal
-opalina
-opaline
-opalski
-open
-oper
-operatio
-operator
-ophelia
-ophelie
-oplinger
-opperman
-ops
-opsplng
-optimiza
-opto
-opus
-ora
-oral
-oralee
-oralia
-oralie
-oralla
-oralle
-oran
-orazio
-orbadiah
-orca
-ord
-ordas
-orden
-orders
-ordog
-ordway
-oreffice
-oreilly
-orel
-orelee
-orelia
-orelie
-orella
-orelle
-oren
-orenzo
-orfano
-orford
-organiza
-orgren-s
-oriana
-orie
-orin
-orion
-orla
-orlan
-orland
-orlando
-orly
-orlyn
-orme
-ormesher
-ormsby
-ornburn
-ornelas
-orol
-oros
-orpheus
-orr
-orran
-orren
-orrin
-orsa
-orser
-orsini
-orsola
-orson
-ortensia
-orth
-ortiz
-orton
-orv
-orville
-orvin
-orwell
-oryal
-osada
-osadciw
-osama
-osami
-osatuik
-osbert
-osborn
-osborne
-osbourn
-osbourne
-osburn
-oscar
-osgood
-oshinski
-oshiro
-osiakwan
-osiris
-oskar
-oskorep
-oslund
-osman
-osmond
-osmund
-osofsky
-ossama
-ossie
-ostapiw
-ostarell
-ostaszew
-oster
-osterber
-osterhou
-osterman
-ostifich
-osvaldo
-oswald
-oswalt
-oswell
-otakar
-otani
-otec
-otes
-otfried
-otha
-othelia
-othella
-othello
-othilia
-othilie
-otho
-othon
-otis
-otmar
-otsuka
-ott
-ottawa
-ottco
-ottcsr
-otter
-ottilie
-otto
-ottoman
-ottosson
-ottowa
-oturakli
-otway
-oucharek
-oue
-ouellet
-ouellett
-ouimet
-ousterho
-outage
-outhwait
-outram
-ouzas
-ovans
-ovas
-overby
-overcash
-overdyke
-overton
-oviedo
-ovila
-owen
-owens
-owensby
-owsiak
-oxendine
-oyama
-oyung
-ozalp
-ozan
-ozay
-ozer
-ozersky
-oziemblo
-oziskend
-ozkan
-ozlem
-ozmizrak
-ozmore
-ozselcuk
-ozyetis
-ozzie
-ozzy
-paar
-pablo
-pac
-pace
-pacey
-pachal
-pacheco
-pachek
-pachner
-pachulsk
-pacific
-packager
-packard
-packston
-paco
-pacon
-pacorro
-paczek
-paczynsk
-paddie
-paddon
-paddy
-paden
-padget
-padgett
-padiath
-padilla
-padiou
-padma
-padmanab
-padraic
-padraig
-padriac
-paerio
-paes
-paetsch
-pafilis
-pagani
-page
-pageau
-paget
-pagi
-paglia
-pagliaru
-pai
-paialung
-paige
-paik
-pail
-paine
-painter
-painters
-pak
-pak-jong
-pak-kin
-pakkin
-paksi
-pakulski
-pal
-palacek
-palamar
-palasek
-palczuk
-palermo
-paley
-palfreym
-palidwor
-paliga
-palik
-paliwal
-pall
-pallab
-pallen
-palm
-palme
-palmer
-paloma
-palomar
-paluso
-pam
-pambianc
-pamela
-pamelina
-pamella
-pammi
-pammie
-pammy
-pamperin
-pan
-panacea
-panagiot
-pancewic
-panch
-panchen
-panchito
-panchmat
-pancho
-pancholy
-pandey
-pandolfo
-pandora
-pandrang
-pandya
-panek
-panesar
-pang-chu
-pangchun
-panger
-pangia
-panizzi
-pankaj
-panke
-pankesh
-pankhurs
-pankiw
-panko
-pankratz
-pannell
-panolil
-panos
-panosh
-pansie
-pansy
-pantages
-pantalon
-pantas
-pantelis
-panter
-panton
-panzer
-pao
-pao-ta
-paola
-paoletti
-paolina
-paolo
-paone
-paota
-papa
-papadopu
-papagena
-papageno
-papageor
-papahadj
-papajani
-papalits
-papanton
-paparell
-pape
-paper
-paperno
-papers
-papiez
-papineau
-papp
-pappas
-papper
-pappu
-paprocki
-paqs
-paquette
-paquin
-paquito
-par
-para
-paracha
-paradis
-paradise
-parasili
-pardeep
-pardi
-pardip
-pardo
-parekh
-paresh
-parham
-parhi
-parichay
-parihar
-parikh
-paris
-parise
-parisen
-parisi
-parisien
-park
-parkash
-parke
-parker
-parker-s
-parkes
-parkhill
-parkin
-parkins
-parkinso
-parks
-parkson
-parlett
-parmakse
-parman
-parmar
-parmente
-parmigia
-parminde
-parn
-parnas
-parnell
-parniani
-parnigon
-parow
-parr
-parra
-parrilli
-parrillo
-parris
-parrish
-parrish-
-parrnell
-parrott
-parry
-pars
-parsifal
-parsloe
-parsons
-part
-partap
-partello
-partha
-parthasa
-partick
-partin
-partlo
-parton
-partovi
-paruleka
-parveen
-parvin
-parviz
-paryag
-parypa
-pas
-pascael
-pascal
-pascale
-pascali
-pascas
-paschall
-pasher
-pashia
-pashmine
-pasiedb
-pasquale
-passier
-passin
-pasterna
-pastore
-pastorek
-pastuszo
-pasvar
-pat
-patacki
-patadm
-patch
-patchcor
-patches
-patchett
-patching
-patchit
-patchor
-patchsqa
-patcor
-pate
-patel
-paten
-patenaud
-paterson
-patey
-pathak
-patience
-patin
-patner
-pato
-patoka
-paton
-patoskie
-patra
-patriarc
-patric
-patrica
-patrice
-patrice-
-patricem
-patrici
-patricia
-patricio
-patrick
-patrizia
-patrizio
-patriziu
-patry
-patsy
-patt
-patte
-patten
-patterso
-patteson
-patti
-pattie
-pattin
-pattison
-patton
-pattra
-pattullo
-patty
-patwardh
-pau
-paul
-paula
-paulas
-paule
-paulett
-pauletta
-paulette
-pauley
-paulhus
-pauli
-paulich
-paulie
-paulien
-paulin
-paulina
-pauline
-pauling
-paulinus
-paulita
-paulk
-paulo
-paulovic
-paulus
-pauly
-paunins
-pautenis
-pavan
-pavel
-pavia
-pavitt
-pavla
-pavlic
-pavlov
-pavlovic
-pawel
-pawelchu
-pawlikow
-pawliw
-paxon
-paxton
-paye
-payette
-paylor
-payn
-payne
-paynter
-payroll
-payton
-pazos
-pbkim
-pbx
-pcboards
-pcbtools
-pcsuppor
-pcta
-pde
-pdesuppo
-peabody
-peacemak
-peach
-peacocke
-peadar
-peake
-pearce
-pearcy
-pearl
-pearla
-pearle
-pearline
-pearse
-pearson
-peart
-peate
-peaugh
-peavoy
-pebrook
-pecic
-peckel
-peckett
-peder
-pederson
-pedigo
-pedley
-pedneaul
-pedram
-pedriana
-pedro
-peebles
-peedin
-peerman
-peers
-peeters
-peets
-peg
-pegasus
-pegeen
-peggi
-peggie
-peggy
-pegler
-pehong
-pei-chie
-pei-ling
-peiling
-peirce
-peiser
-peixoto
-peleato
-pelegri
-pelissie
-pelkie
-pell
-pelland
-pellegri
-pelletie
-pellizza
-pellizze
-pelly
-pelosi
-pelot
-pelton
-peluso
-pelz
-pembroke
-pen
-pen-mi
-pen-min
-pena
-pena-fer
-penang
-pendergr
-pendhark
-pendleto
-penelopa
-penelope
-penfield
-peng
-peng-dav
-penland
-penmi
-penmin
-penn
-pennebak
-pennell
-penner
-penney
-penni
-pennie
-penninge
-penningt
-penny
-penrod
-penrose
-pension
-peon
-peoples
-pepc
-pepe
-pepi
-pepillo
-pepin
-pepita
-pepito
-pepler
-pepper
-pepple
-peptis
-per
-pera
-peralta
-perazzin
-perceval
-perchtho
-percival
-percy
-peregrin
-pereira
-perenyi
-perez
-perfetti
-peri
-peria
-pericak
-perice
-pericles
-perina
-perkin
-perkins
-perkinso
-perl
-perla
-perle
-perleber
-perlmutt
-pernell
-perng
-perona
-peroxra
-perras
-perrault
-perreaul
-perrella
-perren
-perri
-perrier
-perrin
-perrine
-perron
-perrotta
-perry
-perryman
-perryno
-persaud
-perschke
-persechi
-pershing
-persis
-personna
-peschke
-pesik
-pesold
-pestill
-pet
-peta
-petar
-pete
-peter
-peterman
-peters
-petersen
-peterson
-peterus
-petey
-petillio
-petr
-petra
-petrakia
-petras
-petre
-petrea
-petree
-petrescu
-petretta
-petrey
-petri
-petrick
-petrie
-petrina
-petrinac
-petro
-petronel
-petronia
-petronil
-petrovic
-petruck
-petrunew
-petrunka
-petschen
-petter
-pettinge
-pettitt
-petunia
-petzold
-pevec
-pevzner
-pewitt
-pey-kee
-peyman
-peyter
-peyton
-pezzoli
-pezzoni
-pezzullo
-pfeffer
-pfeilsch
-pfieffer
-pfifferl
-pfitzner
-pflughau
-phaedra
-phagan
-phaidra
-phair
-phal
-phalen
-phalpher
-pham
-phan
-pharr
-pharris
-phat
-phebe
-phedra
-phelan
-phelia
-phelps
-phifer
-phil
-philbeck
-philbert
-philion
-philip
-philipa
-philippa
-philippe
-philippi
-philippo
-philips
-philis
-phill
-phillida
-phillie
-phillip
-phillipe
-phillipp
-phillips
-phillis
-philly
-philomen
-philp
-phineas
-phip
-phipps
-phiroze
-phoebe
-phoenix
-phonenet
-phong
-phoung
-phu
-phuc
-phung
-phuoc
-phuong
-phuong-l
-phuongli
-phyl
-phylis
-phyllida
-phyllis
-phyllys
-phylys
-physical
-pi-yu
-pia
-piasecki
-piatt
-pic
-picard
-piche
-pichocki
-pick
-pickens
-pickett
-pickles
-piecaiti
-piecowye
-piel
-pien
-pier
-piercarl
-pierce
-piercey
-piercy
-pierette
-piero
-pieron
-pierosar
-pieroway
-pierre
-pierre-a
-pierre-h
-pierre-m
-pierre-y
-pierret
-pierrett
-pierrick
-piersol
-pierson
-piete
-pieter
-pietra
-pietrek
-pietro
-pietromo
-pietropa
-pietrzak
-piette
-pifko
-piggott
-piggy
-pighin
-pigniczk
-piitz
-pilar
-pilch
-pilcher
-pilip
-pilipchu
-pilkingt
-pillars
-pillman
-pillswor
-pilmoor
-pilon
-pilot
-pilote
-pilotte
-piltz
-pim
-pimentel
-pimisker
-pimpare
-pimsiree
-pinakin
-pinalez
-pinar
-pincas
-pinchas
-pincheir
-pinchen
-pincus
-pinder
-pindur
-pineau
-pinecres
-pineda
-pinel
-ping
-ping-cha
-ping-kon
-ping-she
-pingchar
-pingkai
-pingshen
-pinizzot
-pinkerto
-pinnegar
-pinney
-pino
-pinren
-pinsonne
-pintado
-pinto-lo
-pintwala
-piotr
-piotto
-pip
-piper
-piperni
-piperno
-pipit
-pipkins
-pippa
-pippert
-pippin
-pippo
-pipponzi
-pippy
-piqueras
-piraino
-pircher
-pires
-pirkey
-pirkle
-pirolli
-pirooz
-piroska
-pirzada
-pisani
-pisheng
-piske
-pissot
-pister
-pistilli
-pit
-pitawas
-pitcairn
-pitcavag
-pitcher
-pitre
-pitt
-pittam
-pittges
-pittman
-pittner
-pitton
-pitts
-pittsbur
-pituley
-pivert
-piwkowsk
-pixie
-piyasena
-piyathad
-piyu
-piyush
-pizzanel
-pizzarel
-pizzimen
-pkdcd
-pkg
-placido
-plaic
-plaisanc
-plaisant
-plambeck
-plamondo
-planas
-planche
-plantamu
-plante
-planthar
-planting
-plaskie
-plasse
-plastic
-plastina
-plater-z
-plato
-platt
-platthy
-platts
-playatun
-please d
-plenderl
-plett
-plevyak
-pleydon
-plmcoop
-ploeg
-ploof
-plotter
-plouffe
-plourde
-plsntp
-plssup
-plucinsk
-plummer
-pluto
-plyler
-po
-po-rong
-po-yi
-podlesna
-podmarof
-podolski
-poe
-poettcke
-poff
-poh-soon
-pohlmann
-poincare
-poindext
-pointner
-poirier
-poissant
-poisson
-pojanart
-pokinko
-pokrifca
-pokrywa
-pokusay
-polak
-polakows
-polanco
-polashoc
-polder
-poldi
-poleretz
-poley
-poliwoda
-polk
-polla
-pollack
-pollard
-pollie
-pollinzi
-pollux
-polly
-pollyann
-pols
-polsha
-polson
-poluchow
-polulack
-pom
-poma
-pomerlea
-pomeroy
-pommainv
-pompeo
-pomposel
-pon
-ponamgi
-ponthieu
-pontus
-poobah
-pooh
-pookie
-poole
-poon
-poorman
-popa
-popadick
-popcorn
-popel
-popela
-popescu
-popierai
-popoff
-popovich
-popovics
-popowicz
-popowycz
-popp
-poppa
-popper
-poppy
-porebski
-porecha
-porfirio
-porong
-port
-portelan
-porter
-porterfi
-portia
-portie
-portigal
-porting
-portis
-portwood
-porty
-portz
-pory
-posavad
-poseidon
-poshiu
-pospisil
-posta
-postavsk
-posthumu
-postleth
-postolek
-potamian
-potesta
-potkonja
-potocki
-potter
-pottle
-potts
-potvin
-pouhyet
-poul
-poulin
-pouliot
-poulos
-poulsen
-poulter
-poustchi
-powell
-power
-powers
-powlick
-pownall
-powney
-poyer
-poyi
-poyner
-poynting
-pozzi
-ppaul
-prab
-prabaddh
-prabhaka
-prabhu
-prabir
-prachaya
-pracht
-prada
-pradeep
-pradip
-pradnyan
-prado
-pradyumn
-praeuner
-prafula
-pragna
-prakash
-pramod
-prams
-pranav
-prang
-prasad
-prasada
-prasanna
-prashad
-prashant
-prashaw
-pratap
-pratapwa
-pratibha
-pratt
-prattico
-pravato
-praveen
-pravin
-praxis
-praysner
-prayson
-prchal
-precoda
-predel
-predon
-preece
-prelims
-prem
-pren
-prent
-prentice
-prentiss
-preo
-prescott
-presgrov
-presley
-presner
-presotto
-pressbur
-presson
-presti
-prestia
-prestipi
-preston
-preston-
-prestrud
-presutti
-preuss
-prevatt
-preville
-previn
-prevost
-prewitt
-pria
-pribhu
-price
-prichard
-pricing
-prickett
-pridgen
-priede
-priestle
-prikkel
-primeau
-prince
-pringle
-print
-printers
-printing
-prints
-printsup
-prinz
-priore
-pris
-prisca
-priscell
-priscill
-prissie
-pritchar
-prithvi
-priti
-prity
-privett
-priviter
-priya
-probert
-problems
-probs
-procacci
-procca
-procner
-procter
-prodmfg
-prodmgmt
-producti
-prof
-proffit
-prog
-program
-program-
-proj
-projects
-projofc
-prokes
-prokop
-prokopen
-promac
-propes
-prosise
-prosperi
-pross
-prosyk
-prototyp
-proudfoo
-proulx
-provenca
-provench
-pru
-prudence
-prudi
-prudy
-prue
-pruett
-pruitt
-prunier
-prupis
-prybyla
-pryce
-prymack
-pryor
-prystie
-pryszlak
-przewloc
-przybyci
-psce
-pseudony
-psklib
-psutka
-ptefs
-ptolemy
-publicat
-pubs
-puchala
-puckett
-puddingt
-pue-gilc
-puelma
-puent
-puett
-puetz
-puff
-pufpaff
-pugas
-pugh
-puglia
-pui-wah
-pujara
-pulak
-pulcher
-pulcine
-pulitzer
-pullan
-pullum
-pulver
-punch
-pundyk
-puneet
-pung
-punsalan
-puran
-purcell
-purchasi
-purdy
-purgerso
-puringto
-purnam
-purnell
-purnima
-purohit
-purposes
-purshott
-purson
-puryear
-pushelbe
-pusun
-pusztai
-putman
-putnam
-putnem
-puukila
-pye
-pyle
-pyles
-pyng
-pyong
-pyotr
-pyron
-python
-qadir
-qadri
-qainfo
-qainsp
-qi-de
-qide
-qihan
-qiming
-qin
-qing
-qing-hui
-qinghui
-qingyan
-qiuyun
-qizhong
-qu
-quabidur
-quality
-quan
-quane
-quang
-quang-tr
-quante
-quantril
-quarles
-quarterm
-quattruc
-quayle
-queenie
-quek
-quelch
-quennevi
-quensett
-quent
-quentin
-querenge
-querida
-queries
-quesnel
-questell
-quevillo
-quigley
-quijano
-quill
-quillan
-quilty
-quincey
-quincy
-quinhon
-quinlan
-quinn
-quinones
-quint
-quinta
-quintana
-quintero
-quintill
-quintin
-quintina
-quinton
-quintus
-quinz
-quite a
-quixote
-quizmast
-quoc
-quoc-vu
-quocanh
-quoi
-quon
-qureshi
-quyen
-quynh
-raab
-raaf
-raaflaub
-raanan
-rab
-rabadi
-rabaglia
-rabatich
-rabbi
-rabecs
-rabenste
-rabi
-rabiasz
-rabie
-rabin
-rabipour
-rabjohn
-rabon
-rabzel
-racette
-rachael
-rached
-rachel
-rachele
-rachelle
-rachmani
-racicot
-racine
-racioppi
-racz
-rad
-radames
-radcliff
-raddalgo
-raddie
-raddy
-radek
-radford
-radha
-radick
-radio
-radko
-radojici
-radomir
-radoslav
-radovnik
-radulovi
-radvanyi
-rae
-raeann
-raejean
-raf
-rafa
-rafael
-rafaela
-rafaelia
-rafaelit
-rafaelll
-rafaello
-rafe
-rafek
-raff
-raffaell
-raffarty
-rafferty
-raffi
-rafflin
-rafi
-rafik
-rafiq
-rafol
-rafols
-rafter
-raftery
-ragan
-ragbir
-ragde
-raghav
-raghava
-raghavan
-ragheb
-raghu
-raghunat
-raghuvir
-ragland
-raglin
-ragnar
-ragsdale
-ragu
-ragui
-raha
-rahal
-rahardja
-rahdar
-rahel
-rahimtoo
-rahm
-rahman
-rahmani
-rahmany
-rahmatal
-rahn
-rahrer
-rahul
-raicu
-raif
-raigwell
-raila
-railey
-raimondo
-raimund
-raimundo
-raina
-raine
-rainer
-raines
-rainey
-raing
-rainmake
-rains
-rainsfor
-raissian
-raiswell
-raj
-raja
-rajadasa
-rajagopa
-rajala
-rajan
-rajani
-rajanika
-rajapaks
-rajarshi
-rajat
-rajcher
-rajchgod
-rajchwal
-rajczi
-rajeev
-rajen
-rajendra
-rajesh
-rajeswar
-rajguru
-rajinder
-rajini
-rajiv
-raju
-rajwani
-rakeim
-rakel
-raker
-rakesh
-rakhal
-rakhuma
-rakochy
-rakotoma
-raleigh
-raley
-ralf
-rali
-ralina
-ralph
-ralston
-ram
-rama
-ramachan
-ramadoss
-ramage
-ramah
-ramakant
-ramakesa
-ramakr
-ramakris
-ramamoor
-raman
-ramana
-ramanamu
-ramanan
-ramanand
-ramanath
-ramani
-ramaprak
-ramarao
-ramaswam
-rambo
-rambow
-ramee
-ramesh
-ramey
-ramez
-rami
-ramin
-ramirez
-ramirez-
-ramiro
-ramiz
-ramkisso
-ramkumar
-ramlogan
-ramnarin
-ramneek
-ramnikla
-ramon
-ramona
-ramonda
-ramondt
-ramos
-rampaul
-rampino
-ramroop
-ramsaran
-ramsay
-ramsayer
-ramsden
-ramses
-ramsey
-ramseyer
-ramzi
-ramzy
-ran
-ran-joo
-rana
-ranahan
-ranald
-ranbir
-rance
-rancell
-rand
-randa
-randal
-randall
-randecke
-randee
-randel
-randell
-randene
-randhawa
-randhir
-randi
-randie
-randolf
-randolph
-randy
-ranea
-ranee
-ranette
-raney
-ranga
-rangan
-ranganad
-ranganat
-rangasam
-rangaswa
-rangchen
-rangel
-ranger
-rangooni
-rani
-rania
-ranice
-ranieri
-ranique
-ranjan
-ranjit
-rank
-rankin
-ranna
-rannells
-ranney
-ranoa
-ranoska
-ransell
-ransom
-ranson
-rantala
-ranvir
-rao
-raouf
-raoul
-raphael
-raphaela
-rappopor
-raquel
-raquela
-rasberry
-raschig
-rashed
-rashedi
-rashid
-rashid-a
-rashidah
-rashidi
-rashmi
-rasia
-rasla
-rasmus
-rasmusse
-rasselas
-rassell
-rastelli
-rastogi
-ratcliff
-rathbun
-rathnaku
-ratko
-ratnam
-ratnayak
-rattanap
-rattray
-ratz
-rau
-raud
-raudres
-rauen
-raul
-rausa
-rausch
-raven
-raves
-ravi
-ravid
-ravinder
-ravindra
-raviv
-ravji
-rawley
-rawnoi
-raxter
-ray
-rayan
-raychel
-raye
-rayl
-rayleigh
-rayment
-raymona
-raymond
-raymund
-rayna
-raynald
-raynard
-raynell
-rayner
-raynor
-rayshell
-raz
-razavi
-rccl
-rch
-rchisn
-rchlab
-rea
-read
-reade
-reader
-readling
-readme 3
-reagan
-reagen
-real
-realtime
-reamonn
-rean
-reates
-reaume
-reaves
-reavis
-reba
-rebbecca
-rebe
-rebeca
-rebecca
-rebecka
-rebeka
-rebekah
-rebekkah
-rebel
-rec
-recabarr
-receivin
-rechelle
-reckhard
-recktenw
-records
-recsnik
-recyclin
-red
-reda
-redbeard
-redd
-reddick
-reddigan
-redding
-reddingt
-reddy
-redfoot
-redford
-redgie
-redinbo
-redish
-redman
-redmond
-redshaw
-redway
-ree
-reeba
-reece
-reed
-reeder
-reena
-rees
-reese
-reeta
-reetz
-reeva
-reeve
-reeves
-refat
-refuerzo
-reg
-rega
-regan
-rege
-regen
-reggi
-reggie
-reggis
-reggy
-regier
-regimbal
-regina
-reginald
-reginaul
-regine
-reginia
-regis
-register
-regnier
-rego
-rehbein
-rehder
-rehel
-reich
-reichenb
-reiching
-reichman
-reichow
-reid
-reidar
-reidelbe
-reider
-reif
-reifschn
-reijerke
-reiko
-reilly
-reiman
-reimann
-reimburs
-rein
-reina
-reinald
-reinaldo
-reinboth
-reind
-reine
-reiner
-reinhard
-reinhold
-reinink
-reinke
-reinlie
-reinman
-reinold
-reinwald
-reis
-reiser
-reiss
-reist
-reiter
-reitfort
-reith
-reitling
-rejean
-rejeanne
-reka
-rekowski
-relation
-reller
-rem
-rembecki
-rembish
-remedios
-remers
-remi
-remillar
-remingto
-remitha
-remo
-remon
-remrey
-remson
-remus
-remy
-ren
-rena
-renado
-renae
-renaldo
-renard
-renata
-renate
-renato
-renaud
-renault
-rendell
-rendon
-rene
-rene-ala
-reneau
-renee
-renell
-renelle
-renema
-renette
-renfro
-renfroe
-renganat
-renie
-renita
-renken
-renmarie
-renner
-rennie
-rennolds
-renny
-reno
-renoir
-renold
-renton
-renu
-renwick
-repair
-repeta
-reportin
-reports
-requel
-requests
-research
-resende
-resnick
-ress
-ressner
-rester
-restore
-restrepo
-results
-resve
-reta
-retallac
-retallic
-retha
-rettie
-reube
-reuben
-reubens
-reuss
-reuven
-reva
-revah
-revelle
-revill
-revis
-revkah
-rewitzer
-rex
-rexford
-rexroad
-rey
-reyad
-reyaud
-reydman
-reyes
-reyna
-reynaldo
-reynard
-reynold
-reynolds
-reza
-rezaian
-rezansof
-rezneche
-reznick
-reznik
-rezzik
-rfa
-rfeynman
-rff
-rhattiga
-rhea
-rheal
-rheault
-rheaume
-rheba
-rheta
-rhett
-rhetta
-rhew
-rhiamon
-rhianna
-rhianon
-rhine
-rhoades
-rhoads
-rhoda
-rhodeniz
-rhodes
-rhodia
-rhodie
-rhodri
-rhody
-rhona
-rhonda
-rhough
-rhyndres
-rhys
-rhyu
-ri
-ria
-riad
-rialland
-riane
-riannon
-rianon
-riaz
-ribakovs
-ribaldo
-ribi
-ribordy
-ribot
-ric
-rica
-ricard
-ricardo
-ricca
-riccardo
-riccitel
-ricciuto
-rice
-rich
-richad
-richard
-richardo
-richards
-richart
-richelle
-richer
-richey
-richie
-richlark
-richman
-richmond
-richmoun
-richter
-richy
-rici
-rick
-rick-jan
-rickard
-rickborn
-rickel
-ricker
-rickert
-ricketso
-ricketts
-rickey
-ricki
-rickie
-rickjan
-rickrd
-ricks
-ricky
-rico
-ricoriki
-riddall
-ridder
-riddick
-rider
-ridge
-ridgeway
-ridgewel
-ridgway
-ridha
-ridley
-riebl
-ried
-riedel
-riehle
-riekie
-rieko
-rieni
-rigby
-rigdon
-rigel
-riggins
-riggs
-riggsbee
-righter
-rightmir
-rigobert
-rigsbee
-rigstad
-rijn
-rijos
-rijswijk
-rik
-riki
-rikki
-rikley
-riley
-rilla
-rima
-rimantas
-rimey
-riml
-rimmler
-rimsa
-rina
-rinaldo
-rinawi
-ring
-ringo
-rini
-rintala
-rintel
-rintoul
-rio
-riobard
-riopel
-riopelle
-riordan
-rios
-riou
-rioux
-rip
-ripa
-ripley
-risa
-risdal
-risher
-rishy-ma
-risko
-risler
-rist
-risto
-rita
-ritalynn
-ritchey
-ritchie
-ritenour
-rittenho
-ritter
-rittmann
-ritz
-ritza
-ritzmann
-riva
-rivaherr
-rivalee
-rivard
-rivera
-rivers
-rivest
-rivi
-rivkah
-rivy
-rix
-riyad
-riyaz
-rizal
-rizewisk
-rizk
-rizky
-rizwan
-rizzardi
-rizzo
-rizzuti
-rk
-rnashcro
-ro
-roana
-roanna
-roanne
-roarke
-rob
-robann
-robart
-robb
-robbert
-robbi
-robbie
-robbin
-robbins
-robby
-robbyn
-robeling
-robena
-robenia
-roberge
-robers
-roberson
-robert
-roberta
-roberto
-roberts
-robertso
-robieux
-robillar
-robin
-robina
-robinet
-robinett
-robinia
-robins
-robinson
-robinwil
-robitail
-robles
-robling
-robney
-robson
-robustne
-roby
-robyn
-rocco
-roch
-roche
-rochell
-rochella
-rochelle
-rocheste
-rochette
-rochon
-rocio
-rock
-rocke
-rockey
-rockford
-rockie
-rockley
-rockly
-rockwell
-rocky
-rod
-roda
-rodd
-roddick
-roddie
-roddy
-rodely
-roden
-rodenfel
-rodenhui
-rodent
-roderic
-roderich
-roderick
-roderigo
-rodge
-rodger
-rodgers
-rodgin
-rodi
-rodie
-rodina
-rodkey
-rodney
-rodolfo
-rodolph
-rodolphe
-rodrick
-rodrigo
-rodrigue
-rodrigus
-rodrique
-rodschat
-roe
-roebling
-roedel
-roehl
-roehrig
-roel
-roelof
-roelofs
-roemer
-roerick
-roesler
-roeten
-rog
-rogan
-rogelio
-roger
-rogerio
-rogers
-roget.wo
-rogge
-rogne
-rogness
-rognlie
-rogoff
-rogue
-rohal
-rohan
-rohe
-rohit
-rohtert
-roi
-roieh
-roig
-rois
-roithmai
-roj
-rojas
-rojer
-rok
-rokas
-roland
-rolande
-rolando
-roldan
-roleson
-roley
-rolf
-rolfe
-rolfes
-rolland
-rollie
-rollin
-rollins
-rollinso
-rollo
-rolls
-rolly
-rolnick
-rolph
-rolston
-roly
-rolyn
-roma
-romagnin
-romain
-roman
-romanchu
-romani
-romano
-romanows
-rombeek
-romberg
-rombough
-romeo
-romero
-romi
-romina
-rommel
-rommell
-romola
-romolo
-romona
-romonda
-romulus
-romy
-ron
-rona
-ronaald
-ronak
-ronald
-ronalda
-ronaldo
-ronalds
-ronaldso
-ronan
-ronda
-rondeau
-ronen
-ronendra
-roney
-rong
-rong-che
-rong-chi
-rong-jen
-rong-jwy
-rongchei
-ronghui
-rongjen
-rongjwyn
-roni-jea
-ronica
-ronitt
-ronkus
-ronn
-ronna
-ronneke
-ronni
-ronnica
-ronnie
-ronny
-roob
-roobbie
-roohy-la
-rooney
-roosevel
-root
-roots
-roozbeh
-roper
-roque
-rora
-rori
-rorie
-rorke
-rory
-ros
-rosa
-rosabel
-rosabell
-rosado
-rosaleen
-rosalia
-rosalie
-rosalind
-rosaline
-rosalyn
-rosalynd
-rosamond
-rosamund
-rosana
-rosanna
-rosanne
-rosario
-rosch
-rosche
-rosco
-roscoe
-rose
-roseann
-roseanna
-roseanne
-rosebud
-roseland
-roselia
-roselin
-roseline
-rosella
-roselle
-rosemari
-rosemary
-rosemond
-rosen
-rosenbau
-rosenber
-rosenblu
-rosendal
-rosene
-rosenfel
-rosenqui
-rosentha
-roser
-rosetta
-rosette
-rosewell
-rosey
-roshelle
-rosie
-rosien
-rosina
-rosita
-roski
-rosko
-roslyn
-rosmunda
-rospars
-ross
-ross-ada
-ross-ros
-rossanes
-rosser
-rossi
-rossie
-rossigno
-rossingt
-rosson
-rossy
-rosvick
-rosy
-roszko
-rotenber
-roth
-rothamel
-rothey
-rothwell
-rotondo
-rotzjean
-rouer
-rouhad
-rouleau
-roulez
-roundy
-roupen
-rourk
-rourke
-rous
-rousseau
-rousset
-roussier
-roussin
-roussy
-routhier
-routing
-rouvin
-row
-rowan
-rowatt
-rowe
-rowell
-rowen
-rowena
-rowhani
-rowland
-rowlands
-rowley
-rowney
-rowsell
-roxana
-roxane
-roxanna
-roxanne
-roxi
-roxie
-roxine
-roxy
-roy
-roya
-royal
-royall
-royals
-royce
-roychowd
-royden
-royer
-royle
-royster
-roz
-rozaini
-rozalia
-rozalie
-rozalin
-rozamond
-rozanna
-rozanne
-roze
-rozele
-rozella
-rozelle
-rozen
-rozett
-rozier
-rozin
-rozina
-rozon
-rozumna
-rriocard
-rtingres
-rtp
-rtpbuild
-rtprel
-rtprelb
-ru
-ruane
-ruaud
-ruban
-rubanovi
-rube
-ruben
-rubens
-rubenste
-rubetta
-rubi
-rubia
-rubie
-rubin
-rubina
-rubinfel
-rubinov
-rubinste
-rubio
-ruby
-ruchel
-ruchi
-ruck
-ruckman
-rud
-rudd
-ruddell
-ruddick
-ruddie
-ruddle
-ruddy
-rudell
-rudi
-rudiak
-rudich
-rudie
-rudiger
-rudin
-rudis
-rudisill
-rudolf
-rudolfo
-rudolph
-rudy
-rudyard
-rudzinsk
-rudzitis
-rueben
-ruecha
-ruediger
-ruel
-ruest
-ruetz
-ruey
-rufe
-ruffolo
-rufino
-rufus
-rugg
-ruggiero
-rui
-rui-tao
-rui-yuan
-ruigrok
-ruitao
-ruiz
-rumley
-rummans
-rummel
-rummell
-runciman
-rundle
-rundstei
-rungroj
-runkel
-runnels
-running
-runyon
-ruoh-chy
-ruohchyu
-rupa
-rupert
-ruperta
-ruperto
-rupnow
-rupp
-ruppert
-ruprecht
-ruqiang
-rurick
-rurik
-rusch
-ruschmei
-rushing
-rushmore
-rushton
-rusin
-ruspini
-russ
-russel
-russell
-russett
-rustie
-rustin
-rustu
-rusty
-rutger
-ruth
-ruthann
-ruthanne
-ruthart
-ruthe
-rutherfo
-ruthi
-ruthie
-ruthy
-rutland
-rutledge
-rutt
-ruttan
-rutter
-ruttger
-rutulis
-rutyna
-ruud
-ruy
-ruyant
-ruyle
-ruzicka
-ruzycki
-ryall
-ryals
-ryan
-ryann
-rybczyns
-rycca
-ryce
-rychlick
-ryde
-ryder
-rydhan
-ryerson
-rygwalsk
-rykwalde
-ryley
-rylott
-ryman
-rymkiewi
-rynders
-rynties
-ryohei
-ryon
-ryoung
-ryszard
-ryun
-rzepczyn
-sa'id
-saad
-saake
-saal
-saatciog
-saavedra
-saba
-sabadash
-sabah
-sabanaya
-sabat
-sabatell
-sabatini
-sabatino
-sabbagh
-saber
-saberi
-sabety
-sabiha
-sabin
-sabina
-sabine
-sabo
-sabol
-sabooria
-sabourin
-sabra
-sabri
-sabrina
-sabry
-sabuson
-sabzali
-sacarell
-sacchett
-sacha
-sachidul
-sachiko
-sachindr
-sachs
-sacks
-sacto
-sada
-sadan
-sadath
-sadegh
-sadeghi
-sadella
-sadie
-sadler
-sadorra
-sadowska
-sadoyama
-sadri
-sadroudi
-sadru
-sadye
-saed
-saeed
-saeid
-safaa
-safah
-safinia
-sagan
-sage
-sager
-sagers
-sagris
-saha
-sahay
-sahib
-sahinalp
-sahli
-saibal
-saibun
-said
-saidee
-saidzade
-saied
-saifalla
-saifulla
-saify
-saiid
-saikaley
-sails
-saini
-sainsbur
-saisho
-sait
-saito
-saitoh
-saiyed
-sakaguch
-sakai
-sakamaki
-sakauye
-sakus
-sal
-salada
-saladna
-salah
-salaidh
-salam
-salamon
-salapek
-salazar
-salb
-salcudea
-saldanha
-saleem
-saleh
-salehi
-salem
-salembie
-salemi
-sales
-salgado
-salhany
-salibi
-salim
-salim-ya
-salimi
-salina
-salinas
-salis
-salkilld
-salkini
-salkok
-salladay
-salle
-sallee
-sallehud
-salli
-sallie
-sally
-sallyann
-salmon
-saloma
-salome
-salomi
-salomo
-salomon
-salomone
-salsbery
-saltamar
-salter
-saltside
-salva
-salvador
-salvato
-salvator
-salvidor
-salvin
-salwa
-salyer
-salyniuk
-salzillo
-sam
-samac
-samalot
-saman
-samantha
-samara
-samaratu
-samaria
-samaroo
-sambar
-sambi
-sambo
-sameh
-samhaber
-sami
-samia
-samieian
-samir
-sammie
-sammon
-sammons
-sammy
-samora
-sampalea
-sampat
-sampath
-samples
-sampson
-sampson-
-samshixu
-samson
-samsonen
-samual
-samuel
-samuele
-samy
-sanaa
-sanabria
-sanae
-sanand
-sanborn
-sanche
-sanchez
-sancho
-sanda
-sandberg
-sandburg
-sande
-sandeep
-sandell
-sander
-sanders
-sanderso
-sandford
-sandhar
-sandhu
-sandhya
-sandi
-sandie
-sandifor
-sandip
-sandison
-sandiway
-sandler
-sandlfor
-sandner
-sandness
-sandor
-sandra
-sandre
-sandrine
-sandro
-sandrock
-sandy
-sandye
-sanford
-sanford-
-sang
-sang-mau
-sang-woo
-sangbong
-sangha
-sanghami
-sangho
-sangiova
-sangman
-sangwook
-sanh
-sanity
-sanja
-sanjay
-sanjeet
-sanjeev
-sanjib
-sanjiv
-sanjiva
-sanjoy
-sankey
-sanks
-sanoy
-sanramon
-sanschag
-sansom
-sanson
-sansone
-santa
-santabar
-santella
-santi
-santiago
-santiest
-santitor
-santo
-santos
-santosh
-sanzone
-sapena
-saphir
-sapphira
-sapphire
-saqib
-sara
-sara-ann
-saraann
-sarah
-sarajane
-saran
-saran-br
-sarangar
-sarasina
-sarath
-saravano
-sarawath
-sarbutt
-saree
-sarena
-sarene
-sarette
-sarge
-sargent
-sargeson
-sari
-sarin
-sarina
-sarine
-sarioglu
-sarita
-sarkari
-sarlos
-sarma
-sarna
-saroj
-sarracin
-sarrasin
-sarrazin
-sarsh
-sarson
-sartin
-sartiran
-sarto
-sartor
-sarubbi
-sasaki
-sascha
-sasha
-sashenka
-sashi
-sasinows
-sask
-saskia
-sasore
-sassan
-sassine
-sasson
-sastry
-saswata
-sathe
-sati
-satin
-satis
-satish
-satkamp
-satkunas
-sato
-satoh
-satoshi
-satta
-sattar
-satterfi
-sattler
-satya
-satyajit
-satyanar
-saucerma
-sauck
-sauder
-saudra
-sauer
-saul
-saulnier
-sauls
-saumitra
-saumure
-saumya
-sauncho
-saunder
-saunderc
-saunders
-saundra
-saungika
-sauprobo
-sauvagea
-sauve
-sauveur
-savadkou
-savanh
-savard
-savarimu
-savaryeg
-savina
-savino
-savita
-savo
-savoie
-savoj
-savoula
-saw
-sawada
-saward
-sawaya
-sawchuk
-sawczyn
-sawita
-sawsan
-sawyer
-sawyere
-sawyers
-sax
-saxe
-saxena
-saxon
-say
-sayar
-sayed
-sayeeda
-sayegh
-sayer
-sayers
-sayla
-sayre
-sayres
-scalabri
-scalera
-scales
-scammerh
-scamurra
-scandret
-scanga
-scanlan
-scanlon
-scapin
-scarboro
-scarbrou
-scarface
-scarffe
-scarlet
-scarlett
-scarrow
-scatena
-scates
-schaap
-schacham
-schachtl
-schack
-schadan
-schaefer
-schafer
-schaffel
-schaffer
-schallen
-schaller
-schallio
-schanck
-schank
-schanne
-scharf
-schartma
-schatzbe
-schauer
-schavo
-schavone
-schechtm
-scheck
-scheckle
-schecter
-schedule
-scheduli
-scheer
-scheffle
-scheible
-scheidt
-scheifel
-schejbal
-schell
-schellen
-schembri
-schemena
-schenck
-schendel
-schenk
-schenkel
-schepps
-scherbin
-scherer
-schermer
-scherzin
-schesvol
-scheuerm
-schick
-schieber
-schiefer
-schiegl
-schierba
-schill
-schiller
-schillin
-schiltz
-schinkel
-schipper
-schireso
-schirmer
-schirtzi
-schissel
-schittl
-schlacht
-schlagen
-schlange
-schledwi
-schlegel
-schlemme
-schlicht
-schloboh
-schluter
-schmadtk
-schmeder
-schmeing
-schmeler
-schmelze
-schmidt
-schmitig
-schmitt
-schmitz
-schmoe
-schnacke
-schnaith
-schneide
-schnell
-schnirer
-schnob
-schnupp
-schnurma
-schober
-schoch
-schoen
-schoener
-schoenfe
-schoenin
-schoenli
-schoettl
-schofiel
-scholes
-scholey
-scholman
-scholtz
-schonber
-schooley
-schopenh
-schousbo
-schouwen
-schrader
-schrag
-schrage
-schram
-schraner
-schrang
-schreibe
-schreier
-schreife
-schreine
-schrier
-schroede
-schroer
-schroff
-schruefe
-schrupp
-schrybur
-schubert
-schuck
-schucker
-schuddeb
-schuett
-schuette
-schuld
-schulte
-schultz
-schultze
-schulz
-schulze
-schumach
-schumann
-schuster
-schute
-schutte
-schutz
-schuyler
-schvan
-schwab
-schwader
-schwalba
-schwane
-schwante
-schwartz
-schwarz
-schwenk
-schyndel
-schyving
-scibek
-scif
-scissons
-scodras
-scomello
-sconzo
-scooter
-scorpio
-scorziel
-scot
-scott
-scotti
-scottie
-scottjop
-scottt
-scotty
-scournea
-scovell
-scovill
-scp
-scpbuild
-scpiivo
-scptest
-scrantom
-scrbacic
-screener
-scribner
-scrivens
-scroger
-scss
-scssdev
-scully
-scurlock
-scythia
-se
-seabrook
-seager
-seagle
-seagrave
-seagrove
-seahawk
-seale
-sealy
-seamster
-seamus
-sean
-seana
-seang
-seanna
-seany
-searl
-searle
-searles
-sears
-seatter
-seawell
-seay
-sebastia
-sebastie
-sebata
-sebeh
-sechang
-sechen
-sechrest
-secrest
-security
-seda
-sedat
-sedayao
-seddigh
-seddon
-sedigheh
-sedovic
-sedran
-see
-seeds
-seegobin
-seelaend
-seelan
-seeler
-seeley
-seema
-seenu
-seery
-sees
-seethara
-segal
-segars
-seggie
-seguin
-sehat
-sehgal
-sehinson
-sehmbey
-sehyo
-sei
-seidel
-seiden
-seidl
-seidman
-seifers
-seifert
-seifried
-seiji
-seiko
-seiler
-seiple
-seipue
-seitz
-seiz
-sej
-sek-ming
-seka
-sekar
-sekhar
-seki
-sekiguch
-sekming
-sekuler
-sela
-selbrede
-selby
-selchow
-selcuk
-seldon
-selena
-selene
-selent
-selestin
-selia
-selic
-selie
-selig
-selim
-selime
-selina
-selinda
-seline
-seliske
-selisker
-selkirk
-sella
-sellars
-selle
-sellers
-sellgren
-sellis
-sells
-sellwood
-selma
-selva
-selvaraj
-selwyn
-sembi
-semeniuk
-semenzat
-semerau
-semler
-semmens
-semmler
-semoon
-sena
-senad
-senderow
-sendyk
-senecal
-senese
-sengoba
-sengupta
-seniuk
-senng
-senser
-senten
-sentner
-sentovic
-senyildi
-senyshyn
-seob
-seoju
-seok
-seong
-seoul
-sepe
-sepesi
-sephira
-sepko
-serack
-serafin
-seraphin
-serapin
-serazzi
-serban
-serber
-serbin
-serbus
-serdar
-serduke
-seregely
-serena
-serene
-serethia
-serge
-sergeant
-sergei
-sergent
-sergey
-sergi
-sergio
-sergiu
-sergo
-seroka
-serour
-serraf
-serrano
-serre
-servais
-servance
-services
-servidio
-serville
-seshadri
-seshan
-seth
-sethi
-sethian
-setiawan
-seto
-setsuko
-settels
-setterfi
-settles
-seufert
-seumas
-seung
-seungbin
-seungchu
-seungjun
-seuss
-seven
-severin
-severina
-severn
-severns
-sevigny
-sevilla
-seville
-seward
-sewell
-sey-ping
-seyar
-seyed
-seyfolla
-seyma
-seymour
-sezer
-sfiroudi
-sforza
-sgorniko
-sguigna
-sha-wen
-shabatur
-shabbir
-shabo
-shacham
-shackelf
-shacklef
-shacklet
-shackley
-shaddock
-shadow
-shae
-shafer
-shaffer
-shafik
-shafiq
-shafique
-shahab
-shahan
-shahani
-shahen
-shahid
-shahram
-shahriar
-shahrin
-shahrokh
-shahrood
-shai
-shaib
-shaibal
-shaida
-shaila
-shailan
-shailen
-shailend
-shailesh
-shailin
-shaina
-shaine
-shaji
-shaker
-shakeri
-shakib
-shakil
-shakoor
-shakor
-shalizi
-shalla
-shalmon
-shalna
-shalne
-shalom
-shama
-shamblin
-shames
-shamim
-shamir
-shamji
-shams
-shamshad
-shamshir
-shamsia
-shamus
-shan
-shan-min
-shan-pin
-shana
-shanahan
-shanan
-shanda
-shandee
-shandeig
-shandie
-shandra
-shandy
-shane
-shaner
-shang
-shang-ti
-shangi
-shangtia
-shani
-shanie
-shankar
-shanlin
-shanmin
-shanna
-shannah
-shannan
-shannen
-shannon
-shanon
-shanping
-shanta
-shantee
-shanti
-shantz
-shao
-shao-she
-shaoshen
-shapcott
-shapin
-shapiro
-shapland
-shappir
-shara
-sharad
-sharada
-sharae
-sharai
-sharan
-sharee
-shari
-sharia
-sharif
-shariff
-sharissa
-sharity
-sharkey
-sharky
-sharl
-sharla
-sharleen
-sharlene
-sharline
-sharma
-sharman
-sharmila
-sharnoff
-sharon
-sharona
-sharone
-sharpe
-sharratt
-sharri
-sharron
-sharry
-shary
-sharyl
-sharyn
-shashank
-shashi
-shastri
-shastry
-shatter
-shattuck
-shau
-shaughan
-shaughn
-shaughne
-shaukat
-shaumil
-shaun
-shauna
-shaupoh
-shaver
-shaw
-shaw-yun
-shawen
-shawn
-shawna
-shawnee
-shawyune
-shay
-shay-pin
-shayanpo
-shayla
-shaylah
-shaylyn
-shaylynn
-shayna
-shayne
-shayping
-shea
-sheaffer
-shealy
-shean
-sheara
-shearer
-shearin
-shearman
-shears
-sheba
-shebanow
-shechtma
-shedd
-shedman
-sheehan
-sheela
-sheelagh
-sheelah
-sheena
-sheeree
-sheergar
-sheets
-sheff
-sheffey
-sheffie
-sheffiel
-sheffy
-sheidafa
-sheikh
-sheikna
-sheila
-sheila-k
-sheilah
-sheilaka
-sheileag
-shein
-shek
-shekar
-shekhar
-shekwan
-shel
-shela
-shelagh
-shelba
-shelbi
-shelby
-shelden
-sheldon
-shelegey
-shelia
-shell
-shelley
-shelli
-shellie
-shellin
-shellman
-shelly
-shellysh
-shelton
-shem
-shemwell
-shen
-shen-zhi
-shena
-sheng
-sheng-fu
-shengfu
-shengru
-shengwen
-shengwu
-shennan
-shep
-shepard
-shepherd
-sheppard
-shepperd
-sher
-sherali
-sherard
-sheraton
-sherban
-shere
-sheree
-sheremet
-sheri
-sheri-ly
-sheridan
-sherie
-sherif
-sherill
-sherilyn
-sherin
-sherk
-sherline
-sherlock
-sherm
-sherman
-shermie
-shermy
-sherona
-sherow
-sherra
-sherrard
-sherrel
-sherrell
-sherrer
-sherri
-sherrie
-sherrill
-sherrily
-sherry
-sherrye
-sherryl
-sherwan
-sherwin
-sherwood
-sherwyn
-sherwynd
-sherye
-sheryl
-sheth
-sheu
-sheung
-shew
-shewchen
-shi
-shi-qin
-shi-wei
-shiang-y
-shiangyi
-shiao-mi
-shiaomin
-shibahar
-shibata
-shibberu
-shibo
-shieff
-shieh
-shiel
-shiela
-shields
-shiell
-shier
-shiffer
-shiflett
-shigeaki
-shigeki
-shigemur
-shigenao
-shigeo
-shigeru
-shih
-shih-dar
-shih-hai
-shih-hsi
-shih-kua
-shih-tie
-shihhai
-shihhsiu
-shihkuan
-shihtien
-shik
-shikui
-shila
-shiley
-shilla
-shilling
-shimada
-shimandl
-shimiz
-shimizu
-shimshon
-shin-dug
-shina
-shinder
-shindug
-shing
-shing-ch
-shing-mi
-shingche
-shingler
-shingmin
-shinichi
-shinji
-shinjo
-shinobu
-shinohar
-shinzo
-shiou
-shipe
-shipp
-shippen
-shiqin
-shiquan
-shir
-shirai
-shiranth
-shiratsu
-shiraz
-shireen
-shireman
-shirene
-shirey
-shirin
-shirinlo
-shirish
-shirl
-shirlee
-shirleen
-shirlene
-shirley
-shirley-
-shirline
-shirman
-shiroshi
-shirriff
-shishakl
-shishido
-shiu
-shiu-lin
-shiuan
-shiue
-shiuling
-shiun
-shiung
-shiv
-shiva
-shivaji
-shivapra
-shivchar
-shivdars
-shivnan
-shiwei
-shixian
-shlomo
-shmoys
-shnay
-shnider
-sho
-shoaf
-shobana
-shockley
-shoeb
-shoemake
-shoens
-shoji
-sholom
-shon
-shona
-shonda
-shonka
-shonuck
-shoou-yu
-shoouyu
-shop
-shoppel
-shorgan
-shorwan
-shoshana
-shoshann
-shostak
-shou
-shou-che
-shou-mei
-shoucher
-shoulars
-shouli
-shoun
-shouresh
-showers
-shreve
-shriberg
-shrieves
-shripad
-shriram
-shtivelm
-shtulman
-shu
-shu-chen
-shu-gong
-shu-mei
-shuang
-shuangli
-shubaly
-shuchen
-shue
-shuechia
-shuen
-shugong
-shuichi
-shuji
-shukor
-shukster
-shuler
-shull
-shultz
-shum
-shuman
-shumate
-shumei
-shunfeng
-shung
-shunhui
-shunmuga
-shunro
-shuo
-shupe
-shuqing
-shurlock
-shurtlef
-shurwood
-shuster
-shusuke
-shute
-shutler
-shutoku
-shutterb
-shuvra
-shuyen
-shwed
-shwu-chy
-shwuchyn
-shya-yun
-shyam
-shyan
-shyh-chi
-shyhchin
-shylo
-shyoko
-shypski
-shyu
-si
-siamack
-siamak
-siana
-sianna
-siaw
-sib
-sibbet
-sibbie
-sibby
-sibeal
-sibel
-sibella
-sibelle
-sibiga
-sibilla
-sibincic
-sibley
-sibyl
-sibylla
-sibylle
-sicard
-sich
-sichao
-sickle
-sickler
-sicotte
-sid
-siddall
-siddell
-siddiqui
-sides
-sidhu
-sidnee
-sidney
-sidone
-sidoney
-sidonia
-sidonnie
-sidor
-sidorovs
-sieben
-sieber
-siefert
-siegal
-siegel
-siegfrie
-siegle
-siegmund
-siegurd
-siehl
-sieling
-siemens
-siemer
-sienggo
-siew
-siew-kia
-siewert
-sifer
-siffre
-sig
-sigda
-sigfrid
-sigfried
-siggy
-sigismon
-sigismun
-sigmon
-sigmund
-signe
-sigrid
-sigurd
-sigurdso
-sigut
-sigvard
-siham
-sihem
-sik-yin
-sika
-sikander
-sikes
-sikita
-sikri
-sil
-silang
-silas
-silburt
-sile
-sileas
-silgardo
-silianu
-silieff
-silins
-sills
-sils
-silva
-silvain
-silvan
-silvana
-silvano
-silvanus
-silverma
-silverst
-silverth
-silveste
-silvestr
-silvia
-silvie
-silvio
-silwer
-sim
-simaan
-simanski
-simard
-simard-n
-simcha
-simcoe
-simcox
-sime
-simen
-simeon
-simeone
-simhan
-simion
-simkin
-simler
-simmonds
-simmons
-simms
-simon
-simon-ch
-simon-pu
-simona
-simone
-simonett
-simonian
-simonne
-simonovi
-simons
-simonsen
-simpkin
-simpson
-simren
-sims
-simser
-simson
-simulati
-simzer
-sina
-sinanan
-sinasac
-sinchak
-sinchau
-sinclair
-sinclare
-sindee
-sing
-sing-pin
-singbeil
-singer
-singh
-singhal
-singham
-singires
-singyu
-sinh
-sinha
-sinkfiel
-sinkovit
-sinnett
-sinnott
-sinoyann
-sinyor
-siobhan
-siomalas
-siotong
-sioux
-siouxie
-siperco
-sipes
-siping
-sipple
-sir
-sirevici
-siripong
-sirojith
-sisely
-sisile
-sisk
-siso
-sissela
-sissie
-sissy
-sist
-sitar
-sitch
-sitler
-siu
-siu-kwok
-siu-ling
-siu-man
-siusan
-siv
-siva
-sivaji
-sivasoth
-siward
-sizto
-sj
-sjaak
-sjerps
-sjouke
-skaff
-skaftaso
-skaggs
-skalski
-skanes
-skaret
-skariex
-skedelsk
-skeeter
-skef
-skell
-skelly
-skene
-skeoch
-skerlak
-skerry
-skeuse
-skiba
-skiclub
-skillen
-skillman
-skinner
-skip
-skipp
-skipper
-skippie
-skippy
-skipton
-sklower
-skoberne
-skof
-skopliak
-skrebels
-skriverv
-skrobans
-skrobeck
-skruber
-skuce
-skuratow
-skwarok
-sky
-skye
-skylar
-skyler
-slaa
-slabaugh
-slaby
-slade
-sladek
-slagel
-slartiba
-slatteng
-slattery
-slautter
-slavin
-sldisk
-sleeman
-sleeth
-slempers
-slick
-slinkard
-slinowsk
-sliter
-sloan
-sloane
-slobin
-sloboda
-slobodia
-slobodri
-slonosky
-slotnick
-slozil
-sluis
-slunder
-slusser
-sly
-slyteris
-smale
-smalltal
-smallwoo
-smecca
-smedema
-smeenk
-smelters
-smerdell
-smerek
-smid
-smine
-smit
-smita
-smith
-smithdea
-smithson
-smits
-smitty
-smolin
-smook
-smoot
-smothers
-smrke
-smrke-su
-smuda
-smulders
-smyrl
-smyth
-smythe
-snair
-snapper
-snarr
-snead
-snedden
-snedeker
-snehal
-snelgrov
-snelling
-snider
-sniderma
-snipes
-snips
-snodgras
-snoke
-snorri
-snowden
-snuggs
-snyder
-soard
-sobchuk
-sobczak
-sobeck
-sobel
-sobiesia
-sobitha
-sobkow
-sobolak
-sobolews
-sobon
-sochovka
-socorrit
-socrates
-sodano
-soderber
-sodhi
-soebowo
-soegiono
-sofeya
-soffa
-sofia
-sofie
-sofoklis
-soh
-sohaib
-sohail
-sohal
-sohale
-sohayla
-sohier
-sohni
-sohns
-sohota
-soiffer
-soin
-sojka
-sojkowsk
-sokolows
-sokyrko
-sol
-solai
-solange
-soldera
-solheim
-soliman
-solita
-solkoff
-sollee
-sollie
-sollman
-solly
-solman
-solodko
-solomon
-solovay
-solski
-soman
-somani
-somenzi
-somera
-somers
-somerset
-somervil
-somisett
-sommer
-sommerdo
-sommerfe
-sompong
-somppi
-somsak
-son
-sonbol
-sondra
-sondueim
-song-cha
-song-ho
-songchar
-songho
-songnian
-sonhing
-sonia
-sonier
-sonja
-sonne
-sonni
-sonnie
-sonnnie
-sonny
-sono
-sonoda
-sonoe
-sonya
-soo
-sood
-soohong
-soohoo
-sook
-sookdeo
-sooley
-soong
-soonhoi
-sophey
-sophi
-sophia
-sophie
-sophroni
-sorathia
-sorbi
-sorcha
-soreanu
-soren
-sorensen
-soriano
-sorin
-sorkin
-soroker
-sorrel
-sorrell
-sorrenti
-sos
-sosa
-sosanna
-sossaman
-sotelo
-sotiriad
-sotiris
-soto
-sotos
-souba
-soucie
-soucy
-sougata
-souheil
-soulef
-soules
-soullier
-soumis
-soumitra
-sounya
-souphala
-sources
-souren
-sourin
-sourisse
-sourour
-sousa
-soussa
-southard
-souther
-southon
-southwor
-souza
-sova
-soweidan
-sowry
-soyeh
-soyland
-soyong
-soyster
-soyuer
-space
-spallin
-spann
-spannbau
-sparacio
-sparkes
-sparks
-sparksma
-sparky
-spass
-spaugh
-speakec
-speaker
-spearman
-spearpoi
-spears
-specs
-speedy
-speer
-speers
-speight
-spejewsk
-spence
-spencer
-spense
-spenser
-sperman
-spessot
-spicer
-spickelm
-spieker
-spieler
-spight
-spike
-spilchak
-spillane
-spily
-spindler
-spinelli
-spingola
-spinks
-spirakis
-spirkovs
-spiros
-spisak
-spitzer
-spivey
-splitt
-spohn
-spolar
-sponagle
-sponchia
-spooner
-spragg
-spraggin
-sprague
-sprandel
-sprayber
-spriggs
-spriging
-springth
-sprott
-sproul
-sproule
-sprouse
-spruell
-sprules
-sprunger
-spudboy
-spurlin
-spurlock
-spurway
-spy
-spyridon
-spyros
-squires
-squizzat
-sr
-srawan
-src
-sreedhar
-sri
-sridaran
-sridevi
-sridhar
-sridhara
-srihari
-srikanth
-srikrish
-srimurti
-srinath
-srini
-sriniuas
-srinivas
-sriram
-sriranja
-srirupa
-sriv
-srivasta
-srivatsa
-sroczyns
-ssi
-ssington
-st
-st-amour
-st-denis
-st-louis
-st-marti
-st-onge
-st-pierr
-st.
-st.clair
-st.denis
-st.germa
-st.jacqu
-st.john
-st.laure
-st.louis
-st.pierr
-st.vil
-st_james
-staats
-stabilit
-stace
-stacee
-stacey
-stach
-stachowi
-staci
-stacia
-stacie
-stackpol
-stacy
-stadelme
-stadler
-stafani
-staffard
-staffeld
-staffing
-stafford
-staford
-stagger
-staggs
-stagmier
-stahl
-stahly
-stainbac
-staley
-stalin
-stallabr
-stallcup
-stalling
-stalter
-stamboul
-stampfl
-stampley
-stamps
-stan
-stanciu
-stanczyk
-standard
-standel
-standen
-standfor
-standrin
-stanfiel
-stanford
-stange
-stanisla
-stanke
-stanleig
-stanley
-stanly
-stansber
-stansbur
-stansby
-stansell
-stansfie
-stanton
-stanulis
-stanwood
-stapenho
-staples
-star
-starbuck
-staring
-starkaus
-starkeba
-starkes
-starks
-starla
-starlene
-starlet
-starlin
-starnes
-starowic
-starr
-stars
-starsdps
-starzman
-stasaski
-stasiak
-stasney
-stastny
-stasyszy
-stat
-staten
-stateson
-statile
-statisti
-staton
-stavro
-stavros
-stayton
-stclair
-stctest
-stds
-ste
-ste-mari
-stearn
-stearne
-stearns
-stebbing
-steckley
-steede
-steele
-steelman
-steen
-steenbur
-steene
-steeves
-stefa
-stefan
-stefana
-stefanac
-stefania
-stefanie
-stefano
-steffane
-steffen
-steffens
-steffes
-steffey
-steffi
-steffie
-steffy
-stegall
-steggall
-stegman
-stegmuel
-stehen
-stehr
-steidel
-steiert
-steinar
-steinbac
-steinber
-steinhar
-steip
-stejskal
-steklasa
-stelcner
-stella
-stellita
-stellwag
-stemmler
-stender
-stennett
-stenson
-stensrud
-stepchuk
-steph
-stepha
-stephan
-stephana
-stephane
-stephani
-stephann
-stephans
-stephanu
-stephany
-stephe
-stephen
-stepheni
-stephens
-stephi
-stephie
-stephine
-stepler
-stepp
-steranka
-stercyk
-sterczyk
-sterescu
-stergios
-sterian
-sterling
-stern
-sterne
-stesha
-steski
-stetner
-stetson
-stetter
-stettner
-stevan
-stevana
-stevanov
-steve
-steven
-stevena
-stevens
-stevenso
-stevie
-stevy
-stew
-steward
-stewart
-stewart-
-sticklan
-sticpewi
-stiglitz
-stiles
-stillman
-stillwel
-stimler
-stina
-sting
-stinky
-stinson
-stinzian
-stirling
-stirrett
-stites
-stjohn
-stobaugh
-stock
-stocker
-stocks
-stockton
-stockwel
-stodart
-stoddard
-stoelzle
-stoevsky
-stoffels
-stoker
-stokes
-stokker
-stokoe
-stokoski
-stolzle
-ston
-stone
-stonebra
-stonehou
-stoner
-stonos
-stooke
-storace
-storelli
-storey
-storm
-stormi
-stormie
-stormy
-storrie
-story
-stotts
-stotz
-stouder
-stough
-stovall
-stover
-stowe
-stoyles
-strachan
-strackho
-strader
-straka
-strandbe
-strandlu
-strannem
-strasser
-stratfor
-stratton
-straub
-strauch
-strauss
-strautma
-strawczy
-strayhor
-streater
-streatfi
-streibel
-streight
-streng
-strickla
-strider
-strober
-strock
-stroemer
-strohmey
-strom
-stronski
-stropp
-stroud
-stroupe
-strube
-struble
-strucche
-strudwic
-struzyns
-stu
-stuart
-stubblef
-stubbs
-stuckey
-stude
-student
-studer
-stults
-stumpf
-sturdiva
-sture
-sturrock
-stutts
-su
-su-xin
-suany
-suarez
-suat
-subasing
-subhash
-subhashi
-subhi
-subhra
-subhrans
-subi
-subick
-subissat
-subitha
-submital
-subodh
-subra
-subraman
-subroto
-subsara
-subu
-sucha
-suchitra
-suchocki
-suda
-sudabeh
-sudan
-sudbey
-sudbury
-suddarth
-sudeep
-sudesh
-sudha
-sudhakar
-sudhir
-sudip
-sue
-sue-joe
-sue-may
-sueanne
-suejoe
-sueling
-suellen
-suen
-suer
-suess
-sufcak
-suffern
-sugandi
-sugarbro
-sugarman
-sugih
-sugihara
-suh
-suha
-suhail
-suharly
-suhas
-suilin
-suiping
-suitt
-sujay
-suk-ho
-suk-jae
-suk-yin
-sukey
-sukhendu
-sukho
-sukhwant
-suki
-sukjae
-sukku
-sukumar
-sula
-sulatyck
-sule
-sulewski
-suliguin
-sullivan
-sully
-sultan
-suman
-sumanth
-sumaryan
-sume
-sumi
-sumit
-sumitro
-summach
-summerli
-summers
-sumner
-sumpter
-sunatori
-sundar
-sundaram
-sundares
-sunderla
-sundra
-sung
-sung-cho
-sung-sup
-sungchin
-sungchon
-sunghae
-sungki
-sungkyoo
-sungsup
-sunil
-sunjay
-sunnie
-sunning
-sunny
-sunshine
-sunstrum
-suomela
-supervis
-support
-suprick
-supriya
-supriyo
-sura
-surazski
-surber
-surendra
-suresh
-suria
-surinder
-surowani
-surray
-surreau
-surridge
-sursal
-survey
-surya
-susan
-susana
-susanett
-susann
-susanna
-susannah
-susanne
-susanto
-susette
-susi
-susick
-susie
-susil
-sussie
-susumu
-susy
-sutardja
-sutarja
-sutarwal
-sutcliff
-suter
-sutera
-sutherla
-suthers
-sutija
-sutphen
-sutter
-sutterfi
-sutterli
-sutton
-suu
-suvanee
-suwala
-suwanawo
-suwandi
-suxin
-suyama
-suykens
-suyog
-suzan
-suzane
-suzann
-suzanna
-suzanne
-suzette
-suzi
-suzie
-suzuki
-suzy
-svalesen
-svante
-sven
-svend
-svenn-er
-svensson
-sventek
-svetlana
-svilans
-svm-bnrm
-svo
-svr
-swact
-swaden
-swails
-swaine
-swamy
-swandi
-swann
-swanson
-swanston
-swaranji
-swartz
-swazey
-swd
-swearing
-swee-joo
-sweeney
-sweetnam
-swen
-swenberg
-swensen
-swenson
-swepston
-swiat
-swiatkow
-swick
-swidersk
-swinamer
-swinburn
-swinkels
-swinks
-swinney
-swinson
-swinwood
-swisher
-switchin
-switzer
-swope
-swr
-swyer
-sy
-syal
-syamala
-sybil
-sybila
-sybilla
-sybille
-sybyl
-sycha
-syd
-sydel
-sydelle
-sydeman
-sydney
-sydnor
-sydor
-sydoryk
-syed
-sykes
-syl
-sylas
-sylva
-sylvain
-sylvan
-sylveste
-sylvestr
-sylvia
-sylvie
-sylvio
-sym
-syman
-symen
-symon
-symons
-syndra
-synful
-synness
-syposz
-syres
-syrett
-sys
-sysadmin
-sysint
-syssuppo
-systems
-systest
-syun
-syyed
-szabo
-szamosi
-szaplonc
-szaran
-szeto
-sziladi
-szkarlat
-szopinsk
-szot
-szpakows
-szpilfog
-sztein
-szuminsk
-szura
-szymansk
-szypulsk
-ta
-ta-sung
-tab
-tabaja
-tabalba
-tabatha
-tabb
-tabbatha
-tabbert
-tabbi
-tabbie
-tabbitha
-tabby
-taber
-tabina
-tabitha
-tabl
-tabler
-tables
-tabor
-tac
-tachih
-tacitus
-tad
-tadayuki
-tadd
-taddeo
-taddeusz
-taddio
-tadeas
-tadeo
-tades
-tadeusz
-tadevich
-tadge
-tadio
-tadlock
-tae
-tae-ho
-tae-hwan
-taeho
-taehwan
-taffy
-taggart
-taghizad
-tague
-tahamont
-tahani
-taharudd
-taheri
-tahir
-tahsin
-tai
-tai-jen
-tailinh
-tailor
-taina
-tait
-taite
-taiwana
-tajbakhs
-tak
-tak-wai
-takagi
-takahash
-takahisa
-takako
-takao
-takashi
-takashim
-takata
-takayuki
-takefman
-takehiko
-takeo
-takeshim
-takeuchi
-taki
-takis
-takiyana
-tal
-talbert
-talbot
-talbott
-talcott
-talevi
-talia
-talis
-tallett
-tallia
-tallie
-tallou
-tallulah
-tally
-talmont
-talmy
-talton
-talya
-talyah
-tam
-tamar
-tamara
-tamarah
-tamarell
-tamaresi
-tamarra
-tamas
-tamasi
-tamer
-tamera
-tami
-tamiko
-tamir
-tamma
-tammara
-tammaro
-tammi
-tammie
-tammy
-tamqrah
-tamra
-tamrazia
-tamura
-tan
-tan-atic
-tana
-tanaka
-tanchak
-tancordo
-tandberg
-tandi
-tandie
-tandiono
-tandiwe
-tandy
-tanferna
-tanglao
-tangren
-tanhya
-tani
-tania
-tanio
-tanir
-tanitans
-tanja
-tann
-tanner
-tanney
-tannie
-tanniere
-tanny
-tansy
-tanya
-tao
-tap
-tapani
-tape
-tapner
-tapp
-tappende
-tappert
-tapsell
-tara
-tarah
-tarak
-taralp
-taraneh
-tarant
-taranto
-taraschu
-tarasewi
-tardif
-tardiff
-tardioli
-tarek
-taren
-tareq
-targosky
-tarik
-tariq
-tarlamis
-tarle
-tarmi
-tarnai
-tarng
-taro
-tarof
-tarquini
-tarra
-tarrah
-tarrance
-tarrant
-tarsky
-tarte
-tarus
-tarver
-taryn
-taryna
-tas
-taschere
-tash
-tasha
-tasia
-taskforc
-taspatch
-tassi
-tasso
-tassy
-tasuk
-tasung
-tat
-tata
-tatangsu
-tatar
-tate
-tatemich
-tates
-tateyama
-tatiana
-tatiania
-tats
-tatsdocn
-tatsman
-tatsugaw
-tatsuya
-tattenba
-tatum
-tatyana
-tauberg
-taul
-tauna
-taurus
-tauscher
-tauvia
-tavana
-tavares
-taverner
-tavis
-tawauna
-tawfik
-tawnya
-tawsha
-taxashi
-tay
-tayeb
-tayfun
-taylor
-taylor-h
-tayyab
-tc
-tchangid
-tchir
-td
-tdr
-te-chih
-te-hsiu
-te-wei
-teacher
-teador
-teague
-team
-teasley
-tebbe
-tebinka
-tec
-tech
-techih
-technica
-technoso
-teck
-tecklenb
-ted
-tedd
-tedda
-teddi
-teddie
-teddy
-teder
-tedi
-tedie
-tedman
-tedmund
-tedra
-tedrick
-teed
-teena
-teerdhal
-teetwo
-teh
-tehchi
-tehsiu
-teichman
-teiichi
-tein-min
-teinmin
-teirtza
-teitelba
-tej
-tejada
-tejal
-tejani
-tel
-telco
-tele
-telecom
-telesis
-telex
-telfer
-telidis
-telke
-tello
-tellup
-telos
-telva
-temp
-temple
-temple-d
-templeto
-ten-huei
-tena
-tencer
-teng
-tenhuei
-teniola
-tenna
-tennant
-tenney
-tennyson
-teo
-teodoor
-teodor
-teodora
-teodoric
-teodoro
-tera
-terakado
-teran
-terangue
-terence
-terencio
-teresa
-terese
-teresina
-teresita
-teressa
-terez
-teri
-teriann
-terminal
-terneus
-terr
-terra
-terrade
-terrance
-terranel
-terranov
-terrel
-terrell
-terrence
-terresa
-terri
-terri-jo
-terri-le
-terrie
-terrijo
-terrilei
-terrill
-terry
-terrye
-terryl
-tersina
-teruko
-teruo
-teruyuki
-terwey
-terwilli
-terza
-terzian
-tesa
-tesch
-tesfagab
-tesfamar
-tesh
-tesla
-tess
-tessa
-tessi
-tessie
-tessier
-tessler
-tessty
-tessy
-testa
-testagc
-tester
-testing
-testingp
-testntmv
-testsds
-testtool
-tetrault
-tetreaul
-tetsukaz
-tetsumo
-tetsuo
-tetsuya
-tetsuyuk
-teufel
-tevlin
-tewksbur
-tex
-teymour
-thabet
-thac
-thach
-thacher
-thacker
-thad
-thaddeus
-thaddus
-thadeus
-thai
-thain
-thaine
-thais
-thaker
-thakor
-thakur
-thaler
-thalia
-tham
-thames
-thane
-thang
-thanh
-thanh-ha
-thanh-ho
-thanh-hu
-thanh-qu
-thanh-so
-thanh-ti
-thanos
-thao
-tharby
-tharring
-thatch
-thatcher
-thatte
-thaxter
-thaxton
-thayer
-thayne
-the
-the worl
-thea
-theadora
-thebault
-theda
-thedford
-thedora
-thedric
-thedrick
-thege
-theis
-thekla
-thelma
-theloose
-themann
-theo
-theobald
-theochar
-theodor
-theodora
-theodore
-theodori
-theodosi
-theofani
-theohari
-theologo
-theoret
-thera
-theresa
-therese
-theresin
-theresit
-theressa
-theriaul
-therien
-therine
-theriot
-theron
-therrien
-thersa
-thevenar
-thewalt
-thi
-thi-cuc
-thia
-thibaud
-thibault
-thibaut
-thibeaul
-thibert
-thibodea
-thibon
-thiebaut
-thieken
-thiel
-thiem
-thien
-thierry
-thiery
-thies
-thiessen
-thieu
-thifault
-thill
-thimothy
-thinh
-think
-thirugna
-this dir
-thisdel
-thisner
-thoai
-thoi
-thom
-thoma
-thomaier
-thomalla
-thomas
-thomasa
-thomasi
-thomasia
-thomasin
-thomason
-thomasse
-thomassi
-thombors
-thomey
-thomlins
-thompson
-thoms
-thomsen
-thomson
-thon
-thondanu
-thor
-thoreau
-thorin
-thorley
-thorman
-thorn
-thornber
-thornbur
-thorndik
-thorne
-thornie
-thornley
-thornton
-thorny
-thorpe
-thorsen
-thorslun
-thorson
-thorstei
-thorsten
-thorvald
-those
-threader
-thrift
-throgmor
-thu
-thuan
-thuesen
-thum
-thumm
-thuong
-thurgood
-thurley
-thurman
-thurstan
-thurston
-thuswald
-thuthuy
-thuy
-thyagara
-ti
-ti-cheng
-ti-jeun
-tian
-tianbao
-tiberghi
-tibi
-tibold
-tibor
-tice
-ticheng
-ticzon
-tidball
-tidd
-tidwell
-tiebold
-tiebout
-tiedeman
-tiefenth
-tiegs
-tien
-tien-bue
-tien-chi
-tiena
-tienbuen
-tienchie
-tienyow
-tierney
-tiertza
-tieu
-tiff
-tiffani
-tiffanie
-tiffany
-tiffi
-tiffie
-tiffy
-tigg
-tigger
-tigran
-tihanyi
-tiina
-tijeun
-tilak
-tilbenny
-tilda
-tilden
-tildi
-tildie
-tildy
-tiler
-tilk
-tille
-tiller
-tilley
-tillie
-tillman
-tilly
-tilmon
-tilson
-tilton
-tim
-timeshee
-timi
-timleck
-timler
-timm
-timmer
-timmerma
-timmi
-timmie
-timmins
-timmons
-timms
-timmy
-timo
-timofei
-timos
-timoteo
-timothea
-timothee
-timotheu
-timothy
-timpson
-tims
-timsit
-timtsche
-tin
-tina
-tine
-tineke
-tiner
-ting
-ting-shu
-ting-tin
-ting-yu
-tingshuo
-tingting
-tingyu
-tingyue
-tini
-tinney
-tino
-tintor
-tiny
-tio
-tiong-ho
-tip
-tiphani
-tiphanie
-tiphany
-tippett
-tipping
-tippy
-tipton
-tirrell
-tischhau
-tischler
-tisdale
-tisdall
-tiseo
-tish
-tisha
-titian
-tito
-titos
-titus
-tiu
-tiwari
-tiziano
-tjahjadi
-tjia
-tjiong
-tjoe
-tjong
-toan
-toastmas
-toba
-tobe
-tobey
-tobi
-tobiah
-tobias
-tobie
-tobin
-tobit
-toby
-tobye
-tod
-todaro
-todd
-toddi
-toddie
-toddy
-todloski
-todo
-todorovi
-toerless
-toews
-toft
-togasaki
-tognoni
-tohama
-toi
-toiboid
-toinette
-tolar
-toles
-toletzka
-tolgyess
-tolle
-tollefse
-tolson
-tolstoy
-toly
-tom
-toma
-tomacic
-tomack
-tomacruz
-tomar
-tomas
-tomasett
-tomasina
-tomasine
-tomaso
-tomassi
-tomasz
-tomaszew
-tombul
-tome
-tomes
-tomi
-tomkin
-tomlin
-tomlinso
-tommaso
-tommi
-tommie
-tommy
-tomochek
-tomohiro
-tomoyosh
-tompkins
-tomy
-tonelli
-toney
-tong
-tongder
-toni
-tonia
-tonie
-tonkovic
-tonnie
-tonny
-tonogai
-tonu
-tony
-tonya
-tonye
-tookey
-toolbox
-toole
-tooley
-toolroom
-tools
-toolset
-toomer
-toone
-toop
-toothman
-tootsie
-tooyserk
-toperzer
-topgun
-toplis
-topo
-topol
-topp
-tor
-torain
-torbert
-torcac
-tordocs
-tore
-torey
-tori
-torian
-torie
-toril
-torin
-tornes
-tornqvis
-torok
-torr
-torrance
-torre
-torrealb
-torrell
-torrence
-torrens
-torres
-torrey
-torrie
-torrin
-torry
-torsten
-torunn
-tory
-tosca
-toscano
-tosczak
-toshach
-toshachn
-toshi
-toshiaki
-toshihir
-toshinar
-toss
-tostenso
-tota
-totaro
-toth
-totino
-totman
-totten
-totti
-touati
-touchett
-toufic
-tougas
-toulson
-toupin
-tousigna
-toussain
-tova
-tovah
-tove
-towaij
-towers
-towill
-towler
-towles
-town
-towney
-townie
-townley
-towns
-townsel
-townsend
-townson
-towny
-towsley
-toyanne
-toyoji
-toyooka
-tprl
-trace
-tracee
-traces
-tracey
-tracey-m
-trachsel
-traci
-tracie
-tracy
-tracz
-trader
-trae
-trafford
-trahan
-trainer
-training
-trainor
-trajan
-tramar
-trame
-tran
-tranfagl
-trang
-transki
-translat
-tranter
-trasmund
-traugott
-traulich
-traut
-trautman
-travel-p
-travelpe
-traver
-travers
-travis
-travus
-traxler
-trayer
-traylor
-traynor
-trecia
-tredenni
-tredway
-treen
-trees
-trefor
-trefry
-trefts
-tregenza
-treisman
-trek @
-tremain
-tremaine
-tremayne
-tremblay
-tremewan
-trenna
-trent
-trentadu
-trenton
-tres
-tres-sup
-tresa
-trescha
-trese
-tresrch
-tressa
-trev
-trevar
-trever
-trevetha
-trevitt
-trevor
-trey
-tri
-trial
-triantap
-tricci
-tricia
-trickett
-tricord
-trieu
-trif
-trifiro
-triggian
-trijanto
-trimble
-trina
-trindy
-trinh
-trinidad
-trink
-trip
-tripier
-tripleho
-tripp
-tripps
-tris
-trish
-trisha
-trisic
-trisko
-trista
-tristam
-tristan
-tristano
-trittler
-tritton
-trivedi
-trix
-trixi
-trixie
-trixy
-trocchi
-trochu
-troesch
-trojak
-tromm
-trong
-tropea
-tropeano
-trotsky
-trotter
-trottier
-troubors
-troup
-trowbrid
-troy
-troyvoi
-trpisovs
-trstram
-tru-fu
-truchon
-truda
-trude
-trudel
-trudell
-trudey
-trudi
-trudie
-trudy
-truebloo
-truelove
-trueman
-truesdal
-truffer
-trujillo
-trula
-trull
-truls
-trumaine
-truman
-trumann
-trumble
-trung
-trungy
-trunley
-truong
-truran
-trussler
-trutsche
-truus
-tryfon
-trying
-tsai
-tsai-hun
-tsaihung
-tsakalis
-tsalikis
-tsang
-tsao
-tsay
-tschaja
-tschann
-tse
-tse-lian
-tseliang
-tseng
-tsenter
-tsern
-tsiakas
-tsing
-tsitsior
-tsitsons
-tso
-tsolas
-tsong-li
-tsonglia
-tsonos
-tsortos
-tsoucas
-tsugio
-tsui
-tsuji
-tsuk
-tsun-kuo
-tsun-yuk
-tsuneo
-tsung
-tsunkuo
-tsunoda
-tsunyuk
-tsuyoshi
-ttisuppo
-tu
-tuan
-tubb
-tuck
-tucker
-tuckie
-tucky
-tudo
-tudor
-tue
-tuen
-tuesday
-tuffo
-tufford
-tuhina
-tuhr
-tulga
-tulio
-tulip
-tulk
-tull
-tulley
-tullius
-tullo
-tully
-tun-lin
-tuna
-tunali
-tung
-tung-min
-tunghsin
-tungming
-tunon
-tuoi
-tuok
-tuong
-tupas
-tupling
-turbes
-turbyfil
-turchan
-turcot
-turcotte
-turgay
-turing
-turkeer
-turkey
-turki
-turkki
-turkovic
-turnbull
-turner
-turney
-turpin
-turrubia
-turunen
-turus
-tushar
-tussey
-tusting
-tutt
-tuttle
-tuxford
-tuyen
-tuyetphu
-twa
-twana
-twarog
-tweddle
-tweetie
-twidale
-twiggy
-twila
-twiss
-twitty
-twolan
-twx
-twyla
-twyman
-twynham
-twyver
-txp
-ty
-tyack
-tybalt
-tybi
-tybie
-tyda
-tye
-tyke
-tyler
-tymchuk
-tymon
-tymothy
-tynan
-tyndall
-tyne
-tyner
-typer
-tyra
-tyrance
-tyroler
-tyron
-tyronda
-tyrone
-tyrrell
-tyrus
-tyson
-tzanetea
-tzeng
-tzong-sh
-tzong-ya
-tzongshi
-tzongyan
-tzou
-tzuang
-tzung
-uae
-uathavik
-uberig
-uchida
-uchiyama
-udale
-udall
-uday
-udaya
-udayasek
-ude
-udell
-uecker
-ueda
-uehara
-ueyama
-uffner
-ufomadu
-ugo
-uguccion
-ugwa
-uhl
-uhley
-uhlhorn
-uhlig
-ukena
-ula
-ulberto
-ulf
-ulgen
-uli
-ulick
-ulises
-ulla
-ully
-ulric
-ulrica
-ulrich
-ulrick
-ulrika
-ulrikaum
-ulrike
-ultrason
-uludamar
-ulysses
-umakanta
-umakanth
-umberto
-umeeda
-umeh
-umeko
-umesh
-umetsu
-umphres
-una
-una-mae
-unabr.di
-underwoo
-unger
-unitt
-unix
-unixsupp
-unkefer
-unkles
-unreg
-unsoy
-unxlb
-upchurch
-updt
-upen
-uppal
-upshaw
-upton
-urata
-urbain
-urban
-urbanic
-urbano
-urbanowi
-urbanus
-urbashi
-urbick
-urbielew
-urbshas
-uresh
-uri
-uriah
-uriel
-urnes
-urow
-urquhart
-urs
-ursa
-ursala
-ursola
-urson
-ursula
-ursulina
-ursuline
-urwin
-us
-usa
-useng
-user
-usman
-usrouter
-uswrsd
-usyk
-uszynski
-uta
-utah
-utas
-utilla
-utpal
-utpala
-utsumi
-uunko
-uvieghar
-uyar
-vachel
-vacher
-vachiran
-vachon
-vaclav
-vaculik
-vadala
-vadali
-vadi
-vadim
-vafaie
-vaglio-l
-vahary
-vahdat
-vahe
-vahedi
-vahid
-vaid
-vail
-vaillanc
-vaillant
-vairavan
-vajentic
-vajih
-vakhshoo
-vakili
-val
-valaree
-valaria
-valcourt
-valda
-valdemar
-valdez
-vale
-valeda
-valencia
-valene
-valenka
-valenta
-valente
-valentia
-valentij
-valentik
-valentin
-valenzia
-valera
-valeria
-valerie
-valerien
-valerio
-valerius
-valery
-valerye
-valia
-valida
-valin
-valina
-valinda
-valiquet
-valiveti
-valko
-valkyrie
-valla
-vallath
-valle
-vallee
-vallejos
-vallenty
-vallet
-valli
-valliani
-vallie
-vallier
-valliere
-vallipur
-vallozzi
-vally
-valma
-valois
-valorie
-valry
-valvasor
-van
-van alph
-van alst
-van atta
-van bake
-van bent
-van coon
-van den
-van der
-van dyke
-van es
-van eyk
-van flee
-van gaal
-van hast
-van hols
-van hoy
-van huls
-van kast
-van kess
-van klin
-van late
-van leeu
-van loon
-van mans
-van mete
-van nest
-van oors
-van orde
-van phil
-van rijn
-van rijs
-van scho
-van schy
-van sick
-van terr
-van veen
-van vrou
-van weri
-van-king
-vanaman
-vanasse
-vance
-vanda
-vandagri
-vandenbe
-vandenbo
-vandenhe
-vandenki
-vanderbi
-vanderbo
-vanderbu
-vanderge
-vanderhe
-vanderho
-vanderpo
-vanderve
-vanderwe
-vandeval
-vandevan
-vandeven
-vandewat
-vandewou
-vandomme
-vandoorn
-vandusen
-vanessa
-vangaste
-vania
-vanity
-vankoote
-vanlaar
-vanliew
-vann
-vanna
-vanni
-vannie
-vanny
-vanpatte
-vanstaal
-vanstory
-vanta
-vanter
-vanwormh
-vanwyche
-vanya
-vanzella
-varady
-varaiya
-varano
-varda
-vardy
-varennes
-vargas
-vargo
-varia
-varkel
-varkey
-varley
-varmazis
-varsava
-vartanes
-varughes
-varujan
-vasan
-vasantha
-vasarhel
-vaserfir
-vasil
-vasile
-vasili
-vasiliad
-vasiliki
-vasilis
-vasilopo
-vasily
-vason
-vasoufz
-vassili
-vassilik
-vassilis
-vassily
-vassos
-vastine
-vasu
-vasudeva
-vaswani
-vaterlau
-vaters
-vaughan
-vaughn
-vavarout
-vavroch
-vawter
-vax
-vazirani
-vea
-veale
-veals
-veciana
-veck
-ved
-veda
-vedant
-veedell
-veen
-veena
-vega
-vehling
-veillett
-veilleux
-veit
-vejar
-veklerov
-veksler
-vela
-velasque
-vele
-veleta
-velez
-veljko
-vella
-velline
-vellino
-velma
-veloria
-veloz
-velsher
-velvet
-vempati
-ven
-venbakm
-vendette
-veneice
-veness
-veng
-venger
-venguswa
-venier
-venita
-venjohn
-venkat
-venkata
-venkatak
-venkatar
-venkates
-venkatra
-venne
-venner
-venning
-vennos
-ventrone
-ventura
-venturin
-venus
-vera
-veradis
-verardi
-verch
-verde
-verdi
-verdonse
-vere
-verena
-verene
-verge
-verghese
-vergil
-verheyde
-verhoeve
-verhotz
-veriee
-verifica
-verile
-verina
-verinder
-verine
-verkroos
-verla
-verlyn
-verma
-vermeesc
-vermette
-vern
-verna
-verne
-vernen
-verney
-vernice
-verniece
-vernita
-vernon
-vernor
-verona
-veronica
-veronika
-veronike
-veroniqu
-verreau
-verrenne
-verrilli
-versace
-versteeg
-vertolli
-verville
-veryl
-verzilli
-veselko
-vesna
-vespa
-vester
-vesterda
-vetil
-vetrano
-vetrie
-vetter
-vettese
-vevay
-vexler
-vey
-veyrat
-vezeau
-vezina
-vi
-viano
-viau
-viavant
-vibeke
-vic
-vice
-vicente
-vicheara
-vick
-vickers
-vicki
-vickie
-vicky
-victoir
-victor
-victoria
-vicuong
-vida
-vidaurri
-videa
-vidhyana
-vidmer
-vidovic
-vidovik
-viduya
-vidya
-viegas
-vieger
-viehweg
-vieillar
-vieira
-vieiro
-viens
-viera
-vieregge
-vigeant
-viitanie
-vijai
-vijay
-vijaya
-vijayala
-vijya
-vik
-vikas
-viki
-vikki
-vikky
-vikram
-vikrant
-viktor
-viktoria
-vilas
-vilayil
-vilhan
-vilhelm
-vilhelmi
-vilis
-villanue
-villarea
-villella
-villeneu
-vilma
-vilmanse
-vilok
-vilozny
-vimal
-vimi
-vin
-vina
-vinas
-vinay
-vince
-vincent
-vincente
-vincents
-vincenty
-vincenz
-vincenzo
-vineet
-vinet
-viney
-vinh
-vinita
-vinnell
-vinni
-vinnie
-vinny
-vino
-vinod
-vinson
-viola
-violante
-viole
-violet
-violeta
-violetta
-violette
-vipi
-vipul
-viqar
-virani
-virant
-virchick
-virge
-virgie
-virgil
-virgilio
-virgina
-virginia
-virginie
-virgoe
-viriato
-viriya
-virk
-virko
-visentin
-vish
-vishal
-vishwa
-visiting
-viskanta
-visockis
-vispi
-vispy
-visser
-vistlik
-visvanat
-viswa
-viswamit
-vita
-vitacco
-vitaglia
-vital
-vite
-vithit
-vitia
-vito
-vitoria
-vittoria
-vittorio
-viv
-viva
-viveca
-vivek
-vivi
-vivia
-vivian
-viviana
-viviane
-vivianna
-vivianne
-vivie
-vivien
-viviene
-vivienne
-vivier
-viviyan
-vivyan
-vivyanne
-vlad
-vladamir
-vladdy
-vladica
-vladimir
-vladisla
-vlado
-vlahos
-vlanin
-vm
-vmbackup
-vmchange
-vmcord
-vmsuppor
-vmxa
-vo
-voadmin
-vodicka
-voduc
-voelcker
-vogel
-vogt
-voight
-voitel
-volchegu
-volfe
-volk
-volker
-volkmann
-volkmer
-vollmer
-volz
-von
-von ende
-von semm
-von zube
-voncanno
-vonck
-vonderha
-vondersc
-vonderwe
-vonlehmd
-vonni
-vonnie
-vonny
-vonreich
-vony
-vonzant
-voort
-vopalens
-vopni
-voros
-vosberg
-vosburg
-voss
-vosu
-vosup
-voula
-vowels
-vrabel
-vradmin
-vrbetic
-vreugden
-vries
-vrinda
-vrouwerf
-vu
-vucinich
-vuhoan
-vuignier
-vuncanno
-vuong
-vuquoc
-vyachesl
-vyaragav
-vyas
-vyjayant
-vyky
-vyza
-wa
-waals
-wacheski
-wachtste
-wacker
-wada
-wadasing
-waddell
-wadden
-waddick
-waddingt
-wade
-wadkins
-wadswort
-waespe
-waeyen
-wagage
-wager
-wagers
-waggoner
-waghorne
-waghray
-wagle
-wagner
-wagoner
-wahab
-wahbe
-wahju
-wai
-wai-bun
-wai-chau
-wai-chin
-wai-fah
-wai-hung
-wai-leun
-wai-man
-waichi
-waid
-waidler
-waifah
-waigh
-waihung
-wain
-waines
-wainwrig
-waissman
-wait
-waite
-waiter
-waitman
-waja
-wakabaya
-wakako
-wake
-wakefiel
-wakeham
-wakim
-walas
-walbridg
-walburga
-walchli
-wald
-waldemar
-walden
-waldick
-waldie
-waldo
-waldon
-waldron
-wales
-waletzky
-walford
-walia
-walid
-walker
-walkins
-walkley
-walkowia
-wallace
-wallache
-wallaert
-wallas
-wallbank
-waller
-walles
-walley
-wallgren
-wallie
-wallis
-walliw
-walls
-wally
-waloff
-walpole
-walrand
-walrond
-walser
-walsh
-walston
-walt
-walta
-waltdisn
-walter
-walters
-walther
-walton
-waltraud
-waly
-walz
-wambsgan
-wamozart
-wan
-wanda
-wandel
-wandie
-wandis
-wandojo
-wandsche
-waneta
-wang
-wanids
-wannell
-wanner
-wans
-wanzeck
-war
-warburg
-warburto
-ward
-warde
-warden
-wardle
-wardrop
-ware
-wares
-warfel
-wargnier
-warin
-waring
-wark
-warkenti
-warner
-warnock
-warnow
-warrello
-warren
-warriner
-warshaws
-wartman
-warun
-warwick
-waschuk
-waserman
-wash
-washburn
-washingt
-wasim
-wasitova
-wasley
-wasmeier
-wassel
-wasserma
-wassim
-wasson
-wasylenk
-wasylyk
-wat
-watanabe
-watchmak
-watchorn
-waterhou
-waterman
-waters
-watford
-watkins
-watkinso
-watmore
-watson
-watters
-wattier
-watts
-watznaue
-waucheul
-waugh
-waverley
-waverly
-way
-waybrigh
-wayez
-waylan
-wayland
-waylen
-wayler
-waylin
-wayling
-waylon
-wayman
-waymon
-wayne
-waytowic
-weagle
-weakley
-wealch
-weare
-wease
-weatherl
-weathers
-weaver
-web
-webb
-webber
-weber
-webster
-weckwert
-weddell
-wee-lin
-wee-seng
-wee-thon
-weedmark
-weeks
-wefald
-wefers
-wegener
-weger
-wegner
-wegrowic
-wehara
-wei
-wei-i
-wei-kun
-wei-tsig
-wei-yih
-weibust
-weicheng
-weichung
-weidar
-weidenbo
-weidenfe
-weider
-weidinge
-weidner
-weiguang
-weiheng
-weihs
-weihsing
-weii
-weijia
-weijie
-weikang
-weikuang
-weikun
-weil
-weilin
-weimin
-weimong
-weinbend
-weinberg
-weiner
-weingart
-weinkauf
-weiping
-weirich
-weisenbe
-weiser
-weiss
-weist
-weitsig
-weitz
-weitzel
-weiyih
-welbie
-welby
-welch
-weldon
-welham
-welker
-wellard
-welling
-wells
-wellstoo
-welsch
-welsford
-welsh
-welten
-wemple
-wen
-wen-chie
-wen-hann
-wen-juin
-wen-kai
-wen-lian
-wen-miin
-wen-shan
-wenbin
-wenchien
-wenchih
-wenda
-wendall
-wendel
-wendelin
-wendell
-wendi
-wendi-st
-wendie
-wendista
-wendling
-wendong
-wendt
-wendy
-wendye
-weng
-wenham
-wenhann
-wenjuin
-wenliang
-wenmiin
-wennan
-wennerst
-wenona
-wenonah
-wensel
-wenshan
-wensley
-wentwort
-wentzcov
-wenxi
-wenyon
-wenzel
-wepf
-weppler
-werewolf
-werick
-weringh
-werling
-werner
-wernher
-wernik
-werth
-wertz
-wery
-wes
-wesenber
-wesley
-wesolosk
-wesolows
-wessel
-wessell
-wesselma
-wesselow
-wessels
-wessenbe
-west
-westbroo
-westcott
-wester
-westfall
-westgart
-westlake
-westleig
-westley
-westmore
-weston
-weston-d
-westphal
-westwood
-wetherbe
-wettelan
-wetzel
-wever
-weyand
-weylin
-wga
-whalen
-whaley
-whang
-whatley
-wheatley
-wheaton
-wheeler
-wheelock
-whei-may
-wheimay
-whelan
-whelpdal
-whetston
-whetzel
-whey
-whey-min
-wheyming
-whidden
-whinnery
-whipple
-whipps
-whirpool
-whirter
-whisenhu
-whiskin
-whisler
-whit
-whitaker
-whitby
-whitcomb
-whited
-whitefor
-whitehur
-whiteman
-whitesid
-whitfiel
-whitfill
-whitford
-whiting
-whitlock
-whitman
-whitmore
-whitney
-whitsell
-whitt
-whittake
-whittam
-whitten
-whittier
-whitting
-whitton
-whitty
-whitwam
-whitwell
-whitwort
-whoi
-whyte
-wiatt
-wichers
-wichman
-wicht
-wichterl
-wickes
-wickham
-wickie
-widdicom
-widdis
-widdowso
-widener
-widianto
-widows
-widrig
-widuch
-wiebe
-wiebren
-wiederho
-wiedman
-wiedmann
-wiegand
-wieland
-wiele
-wienert
-wiens
-wiercioc
-wierzba
-wieser
-wiesje
-wieslaw
-wieslawa
-wiest
-wigderso
-wiggin
-wiggins
-wiggs
-wight
-wigle
-wignall
-wikkerin
-wiklund
-wil
-wilbert
-wilbur
-wilburt
-wilby
-wilcox
-wilczews
-wilde
-wildeman
-wilden
-wilder
-wilderma
-wildgen
-wildman
-wildon
-wileen
-wilek
-wilemon
-wilen
-wilenius
-wilensky
-wiley
-wilf
-wilford
-wilfred
-wilfrid
-wilgosh
-wilhelm
-wilhelmi
-wilhelms
-wilhelmu
-wilhoit
-wilie
-wilke
-wilken
-wilkerso
-wilkes
-wilkie
-wilkin
-wilkins
-wilkinso
-wilko
-wilks
-will
-willa
-willabel
-willamin
-willard
-willcock
-willcox
-willdon
-willeke
-willekes
-willem
-willemij
-willemse
-willenbr
-willets
-willett
-willetta
-willette
-willey
-willhoff
-willi
-william
-williams
-willie
-willifor
-willis
-willison
-willmore
-willmott
-willough
-willow
-willson
-willy
-willyt
-wilma
-wilmar
-wilmer
-wilmette
-wilmont
-wilmore
-wilnai
-wilona
-wilone
-wilow
-wilsey
-wilson
-wilt
-wilton
-wiltz
-wimberle
-wimbush
-wimmer
-win
-win-chyi
-wina
-winchest
-winchyi
-winde
-windham
-windom
-windowin
-windsor
-windy
-winerman
-winfield
-winfred
-wing
-wing-ki
-wing-man
-wing-tai
-wingar
-wingard
-wingate
-wingfiel
-wingo
-wingrove
-wingtai
-wini
-winicki
-winifiel
-winifred
-winje
-winklema
-winkler
-winlow
-winn
-winna
-winnah
-winne
-winni
-winnie
-winnifre
-winningh
-winningt
-winnipeg
-winny
-winona
-winonah
-winsberg
-winsborr
-winsky
-winslow
-winstead
-winston
-winterbe
-winters
-winthrop
-wintour
-wippel
-wiring
-wirth
-wiseman
-wishewan
-wisniews
-wissinge
-wissler
-wit
-witchlow
-witham
-withrow
-witkowsk
-witney
-witold
-witort
-wits
-witt
-witte
-wittich
-wittie
-wittik
-wittman
-witty
-witzel
-witzman
-witzmann
-wladysla
-woan
-wobbrock
-woei-pen
-woelffel
-woessner
-woinsky
-wojciech
-wojcik
-wojdylo
-wojnar
-wojtecki
-wokoma
-wolczans
-wolf
-wolfe
-wolfenba
-wolff
-wolfgang
-wolfie
-wolfman
-wolford
-wolfs
-wolfson
-wolfy
-wolk
-woll
-woloshko
-wolowidn
-wolska
-wolski
-wolter
-womack
-womble
-won
-won-uk
-wonda
-wong
-wonuk
-wood
-woodall
-woodford
-woodhall
-woodie
-woodley
-woodlief
-woodline
-woodman
-woodrow
-woods
-woodson
-woodward
-woody
-woodyer
-wooff
-woojin
-wook
-wookie
-woolery
-wooley
-woollam
-woolley
-woolwine
-woon
-wooster
-wooten
-wooters
-wootton
-worden
-words fr
-words in
-working
-world.fa
-wormald
-worms
-worobey
-woroszcz
-worpell
-worrall
-worsley
-worth
-worthing
-worthy
-wortman
-wozniak
-wpms
-wracher
-wragg
-wray
-wren
-wrennie
-wriggles
-wright
-wrigley
-writing
-wrobel
-wroblews
-wruck
-wsadmin
-wsbackup
-wu
-wuan
-wueppelm
-wuertele
-wun
-wunderli
-wurtz
-wyant
-wyatan
-wyatt
-wyble
-wycoff
-wydra
-wye
-wykoff
-wylie
-wyllie
-wylma
-wylo
-wyman
-wymard
-wyn
-wyndham
-wynes
-wynn
-wynne
-wynnie
-wynny
-wyrstiuk
-wyss
-wytenbur
-wyzga-ta
-xantippe
-xavier
-xaviera
-xayaraj
-xena
-xenia
-xenophon
-xenos
-xerxes
-xever
-xi-nam
-xi-xian
-xian
-xiang-se
-xiangsen
-xianjie
-xiao
-xiao-min
-xiaobing
-xiaofei
-xiaofeng
-xiaoguan
-xiaohui
-xiaojing
-xiaolei
-xiaolin
-xiaolong
-xiaomei
-xiaoping
-xiaowen
-xiaoxia
-xie
-xila
-ximenes
-ximenez
-xin
-xingchao
-xingdong
-xinlin
-xinyi
-xiong
-xiqing
-xixian
-xmssuppo
-xnew
-xongxong
-xpm
-xpmbld
-xpmbuild
-xu
-xuan
-xuan-lie
-xuefeng
-xueling
-xumin
-xuong
-xylia
-xylina
-xymenes
-ya-shu
-yabe
-yach
-yadollah
-yaeger
-yael
-yafa
-yaghutie
-yahia
-yahyapou
-yakibchu
-yakimovi
-yakir
-yalcin
-yale
-yali
-yalonda
-yamada
-yamamoto
-yamaoka
-yamashit
-yamato
-yamaura
-yamin
-yan
-yan-shek
-yan-zhen
-yanagida
-yanan
-yanaton
-yance
-yancey
-yancy
-yandell
-yanjun
-yank
-yankee
-yann
-yanna
-yannick
-yannis
-yano
-yanosik
-yanshek
-yansun
-yao
-yao-nan
-yaonan
-yaphet
-yaping
-yarber
-yarbroug
-yard
-yardley
-yardy
-yarlanda
-yarnell
-yaron
-yarosh
-yaroslav
-yasar
-yaser
-yashu
-yasmeen
-yasmin
-yassa
-yassar
-yassin
-yasuaki
-yasuhiro
-yasuko
-yasumasa
-yasuo
-yasushi
-yasuura
-yate
-yates
-yatin
-yatish
-yau
-yau-fun
-yau-mun
-yau-wu
-yaumun
-yaung
-yauwu
-yavar
-yavuz
-yawar
-yazdani
-yazdi
-yc
-ye-sho
-yea-ping
-yeager
-yeal
-yeaping
-yearwood
-yeaton
-yechezke
-yeck
-yedema
-yee
-yee-ning
-yeh
-yehuda
-yehudi
-yehudit
-yeirnie
-yelena
-yelvingt
-yemuna
-yen
-yen-heng
-yen-jhy
-yen-meng
-yendall
-yeng
-yenheng
-yenilmez
-yenjhy
-yenmeng
-yenor
-yeo
-yeo-hoon
-yeocheol
-yeohoon
-yeong-ch
-yeong-eo
-yeongchy
-yeongeon
-yerga
-yerigan
-yerneni
-yesho
-yetta
-yettie
-yetty
-yetung
-yeun
-yeun-jyr
-yeung
-yeunjyr
-yevette
-yew-shin
-yewshing
-yezheng
-yezi
-yhu-tin
-yhutin
-yi
-yi-min
-yiannis
-yie-tarn
-yietarng
-yifei
-yigal
-yih
-yihban
-yihchih
-yii-mei
-yiimei
-yijean
-yikhon
-yiliang
-yim
-yimin
-ying
-ying-cdi
-yingcdi
-yishun
-yitan
-yiu-kong
-yiukong
-yixia
-yixin
-ylaine
-yll-chen
-yllcheng
-ynes
-ynez
-yngvar
-yoakum
-yock
-yoda
-yodha
-yoe
-yogesh
-yogeswar
-yogi
-yohe
-yokan
-yoke
-yoke-kee
-yokeley
-yoko
-yokono
-yokoono
-yolanda
-yolande
-yolane
-yolanthe
-yon-chun
-yonchun
-yong
-yong-hyu
-yongdong
-yonghyun
-yongil
-yongli
-yongxin
-yonhong
-yonik
-yonk
-yoo
-yoon
-yoon-mo
-yoonjung
-yoonmo
-yoonsik
-yoram
-yorgo
-yorgos
-york
-yorke
-yorker
-yoshi
-yoshiaki
-yoshihit
-yoshikaw
-yoshiko
-yoshimi
-yoshimit
-yoshinob
-yoshio
-yoshioka
-yoshiyam
-yosi
-yossaria
-yost
-yosuf
-you-lian
-youel
-youji
-youliang
-youlin
-youn
-youn-jun
-younan
-younes
-young
-young-ba
-young-il
-young-ju
-youngbai
-youngblo
-younger
-youngill
-younglov
-youngman
-youngqui
-youngs
-younjung
-younkin
-yount
-youping
-yousef
-yousefpo
-youssef
-yousuf
-youwen
-yovonnda
-yowell
-ysabel
-ytshak
-yu
-yu-chen
-yu-chian
-yu-chung
-yu-hung
-yu-kai
-yu-pei
-yu-wei
-yuan
-yuan-cha
-yuan-shi
-yuanchao
-yuanjian
-yuanshin
-yuchen
-yuchiang
-yuchong
-yudin
-yudy
-yue
-yue-min
-yue-shun
-yuechu
-yueh
-yueh-min
-yueh-shi
-yuehming
-yuehshio
-yuehwern
-yueli
-yuen
-yuen-pui
-yuenglin
-yueping
-yueshun
-yugang
-yuh-dauh
-yuh-jiun
-yuh-tai
-yuhanna
-yuhdauh
-yuhjiun
-yuhn
-yuhtai
-yuill
-yuji
-yujie
-yuk-wha
-yuke
-yukihiko
-yukiko
-yukinaga
-yukinobu
-yuklung
-yuko
-yuksel
-yukuo
-yul
-yule
-yulia
-yulma
-yum
-yuma
-yumi
-yumurtac
-yun
-yun-sun
-yundt
-yung
-yung-chi
-yung-chu
-yung-fu
-yung-pin
-yung-yu
-yungchia
-yungchun
-yungfu
-yunghuoy
-yungmuh
-yungping
-yungyu
-yunn-tzu
-yunntzu
-yunsun
-yuon-kua
-yuonkuan
-yupei
-yupin
-yurach
-yurchuk
-yuri
-yurik
-yussuf
-yuste
-yutaka
-yuting
-yuval
-yuwei
-yuyi
-yuyu
-yvan
-yves
-yvet
-yvette
-yvon
-yvonne
-yvor
-yzerman
-z-80
-z80
-zabek
-zabokrzy
-zabransk
-zabrina
-zaccari
-zaccaria
-zach
-zacharia
-zacharie
-zachary
-zacherie
-zachery
-zack
-zackaria
-zadeh
-zadorozn
-zadow
-zafar
-zafarano
-zafarull
-zafer
-zaga
-zagorsek
-zagorski
-zagrodne
-zahara
-zaharoff
-zaharych
-zahid
-zahir
-zahirul
-zahn
-zahnley
-zahra
-zaia
-zaid
-zaidi
-zaihua
-zainab
-zajac
-zak
-zaka
-zakai
-zakarow
-zaker
-zalameda
-zalcstei
-zalee
-zaleski
-zalite
-zaliznya
-zalman
-zalokar
-zaloker
-zalzale
-zaman
-zampino
-zan
-zanariah
-zander
-zandra
-zane
-zanet
-zaneta
-zanetti
-zanga
-zani
-zanni
-zantiris
-zapach
-zappe
-zara
-zaragoza
-zarah
-zarate
-zared
-zarella
-zaretsky
-zargham
-zaria
-zarkel
-zarla
-zarlenga
-zarrabia
-zarrin
-zatkovic
-zatti
-zattiero
-zatylny
-zauhar
-zauner
-zavadiuk
-zaven
-zawadka
-zaydan
-zazulak
-zbib
-zbignew
-zbigniew
-zbuda
-zdenek
-zdenka
-zdenko
-zea
-zeb
-zebadiah
-zebedee
-zebulen
-zebulon
-zecharia
-zed
-zedekiah
-zedrick
-zee
-zeggil
-zegray
-zehir-ch
-zehra
-zeidler
-zeiger
-zeigler
-zeilinge
-zeimet
-zein
-zeina
-zeisler
-zeitler
-zejing
-zeke
-zelda
-zelenka
-zelig
-zeljko
-zelko
-zeller
-zellers
-zelma
-zelsmann
-zelwer
-zemanek
-zen
-zena
-zenaida
-zenar
-zeng
-zenghong
-zenia
-zenisek
-zenkevic
-zenkner
-zenon
-zere
-zerk
-zero
-zerriffi
-zetterlu
-zetts
-zexiang
-zhang
-zhanna
-zhao
-zhaohong
-zhaoqi
-zhaoxu
-zhelka
-zhen
-zheng
-zhengyu
-zhilan
-zhishun
-zhiwei
-zhixin
-zhiyong
-zhong
-zhongde
-zhongfu
-zhongjin
-zhongqua
-zhongxia
-zhou
-zhuezhi
-zhuolin
-zi-ping
-zi-qiang
-zia
-ziad
-ziai
-zicheng
-ziebarth
-zieber
-ziegler
-ziehn
-zielinsk
-ziemba
-zigrand
-zilaie
-zilberst
-zilla
-zilvia
-zimmer
-zimmerer
-zimmerly
-zimmerma
-zina
-zinati
-zingale
-zingeler
-zinkie
-zinn
-zino
-ziomek
-zipcodes
-ziping
-zippora
-ziqiang
-zirko
-zissis
-zisu
-zita
-zitella
-zitko
-zito
-zitzmann
-ziva
-zivanovi
-zivilik
-zivkovic
-ziyi
-ziyou
-zlatin
-zlotnick
-znack
-zoe
-zoehner
-zoel
-zoellner
-zoenka
-zoerb
-zofia
-zohair
-zohar
-zohman
-zohreh
-zola
-zollie
-zollman
-zolly
-zolmer
-zoltan
-zonda
-zondra
-zone-chi
-zonechin
-zongyi
-zonker
-zonner
-zonnya
-zonoun
-zoppel
-zora
-zorah
-zoran
-zorana
-zoratti
-zorina
-zorine
-zork
-zorn
-zorony
-zorzi
-zottola
-zou
-zouheir
-zrobok
-zsa zsa
-zsazsa
-zubair
-zubans
-zuben
-zubricki
-zuccarel
-zuckerma
-zug
-zuhua
-zuk
-zukas
-zukosky
-zukovsky
-zulema
-zulfikar
-zumel
-zumhagen
-zumpf
-zunuzi
-zuranato
-zurawlev
-zureik
-zurl
-zuzana
-zvonar
-zwi
-zwick
-zwicker
-zwierzch
-zybala
-zyg
-zygmunt
-zylstra
-zywiel
\ No newline at end of file
diff --git a/examples/factoryapp/README.rst b/examples/factoryapp/README.rst
deleted file mode 100644
index 1bbfa600ed..0000000000
--- a/examples/factoryapp/README.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-FactoryApp
-----------
-
-Simple example to show how to use a factory setup.
-
-Create an Admin user and insert test data::
-
- $ python testdata.py
-
-Run it::
-
- $ export FLASK_APP="app.app:create_app('config')"
- $ flask fab create-admin
- $ flask run
-
-Try it. Open a browser to http://localhost:5000.
-
-Using an alternate config::
-
- $ export FLASK_APP="app:create_app('config2')"
- $ flask fab create-admin
- $ flask run
-
diff --git a/examples/factoryapp/app/__init__.py b/examples/factoryapp/app/__init__.py
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/examples/factoryapp/app/app.py b/examples/factoryapp/app/app.py
deleted file mode 100644
index a573509e22..0000000000
--- a/examples/factoryapp/app/app.py
+++ /dev/null
@@ -1,36 +0,0 @@
-import logging
-
-from flask import Flask
-from flask_appbuilder import AppBuilder, SQLA
-
-logging.basicConfig(format="%(asctime)s:%(levelname)s:%(name)s:%(message)s")
-logging.getLogger().setLevel(logging.DEBUG)
-
-
-def create_app(config):
- app = Flask(__name__)
- db = SQLA()
- appbuilder = AppBuilder()
- with app.app_context():
- app.config.from_object(config)
- db.init_app(app)
- appbuilder.init_app(app, db.session)
-
- from .views import ContactModelView, GroupModelView, fill_gender
-
- appbuilder.add_view(
- ContactModelView,
- "List Contacts",
- icon="fa-envelope",
- category="Contacts",
- category_icon="fa-envelope",
- )
-
- appbuilder.add_view(
- GroupModelView, "List Groups", icon="fa-folder-open-o", category="Contacts"
- )
-
- db.create_all()
- appbuilder.post_init()
- fill_gender()
- return app
diff --git a/examples/factoryapp/app/models.py b/examples/factoryapp/app/models.py
deleted file mode 100644
index b505898585..0000000000
--- a/examples/factoryapp/app/models.py
+++ /dev/null
@@ -1,47 +0,0 @@
-import datetime
-
-from flask_appbuilder import Model
-from sqlalchemy import Column, Date, ForeignKey, Integer, String
-from sqlalchemy.orm import relationship
-
-mindate = datetime.date(datetime.MINYEAR, 1, 1)
-
-
-class ContactGroup(Model):
- id = Column(Integer, primary_key=True)
- name = Column(String(50), unique=True, nullable=False)
-
- def __repr__(self):
- return self.name
-
-
-class Gender(Model):
- id = Column(Integer, primary_key=True)
- name = Column(String(50), unique=True, nullable=False)
-
- def __repr__(self):
- return self.name
-
-
-class Contact(Model):
- id = Column(Integer, primary_key=True)
- name = Column(String(150), unique=True, nullable=False)
- address = Column(String(564))
- birthday = Column(Date, nullable=True)
- personal_phone = Column(String(20))
- personal_celphone = Column(String(20))
- contact_group_id = Column(Integer, ForeignKey("contact_group.id"), nullable=False)
- contact_group = relationship("ContactGroup")
- gender_id = Column(Integer, ForeignKey("gender.id"), nullable=False)
- gender = relationship("Gender")
-
- def __repr__(self):
- return self.name
-
- def month_year(self):
- date = self.birthday or mindate
- return datetime.datetime(date.year, date.month, 1) or mindate
-
- def year(self):
- date = self.birthday or mindate
- return datetime.datetime(date.year, 1, 1)
diff --git a/examples/factoryapp/app/translations/pt/LC_MESSAGES/messages.mo b/examples/factoryapp/app/translations/pt/LC_MESSAGES/messages.mo
deleted file mode 100644
index 7713f481f4..0000000000
Binary files a/examples/factoryapp/app/translations/pt/LC_MESSAGES/messages.mo and /dev/null differ
diff --git a/examples/factoryapp/app/translations/pt/LC_MESSAGES/messages.po b/examples/factoryapp/app/translations/pt/LC_MESSAGES/messages.po
deleted file mode 100644
index 3299f7099e..0000000000
--- a/examples/factoryapp/app/translations/pt/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,27 +0,0 @@
-# Portuguese translations for PROJECT.
-# Copyright (C) 2014 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
-# FIRST AUTHOR , 2014.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2014-01-13 00:29+0000\n"
-"PO-Revision-Date: 2014-01-13 00:18+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: pt \n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 1.3\n"
-
-#: app/views.py:42
-msgid "List Groups"
-msgstr "Lista de Grupos"
-
-#: app/views.py:43
-msgid "List Contacts"
-msgstr ""
-
diff --git a/examples/factoryapp/app/views.py b/examples/factoryapp/app/views.py
deleted file mode 100644
index 69e49f5a22..0000000000
--- a/examples/factoryapp/app/views.py
+++ /dev/null
@@ -1,80 +0,0 @@
-from flask import current_app
-from flask_appbuilder import ModelView, IndexView
-from flask_appbuilder.models.sqla.interface import SQLAInterface
-
-from .models import Contact, ContactGroup, Gender
-
-
-def fill_gender():
- try:
- current_app.appbuilder.session.add(Gender(name="Male"))
- current_app.appbuilder.session.add(Gender(name="Female"))
- current_app.appbuilder.session.commit()
- except Exception:
- current_app.appbuilder.session.rollback()
-
-
-class ContactModelView(ModelView):
- datamodel = SQLAInterface(Contact)
-
- label_columns = {"contact_group": "Contacts Group"}
- list_columns = ["name", "personal_celphone", "birthday", "contact_group.name"]
-
- base_order = ("name", "asc")
-
- show_fieldsets = [
- ("Summary", {"fields": ["name", "gender", "contact_group"]}),
- (
- "Personal Info",
- {
- "fields": [
- "address",
- "birthday",
- "personal_phone",
- "personal_celphone",
- ],
- "expanded": False,
- },
- ),
- ]
-
- add_fieldsets = [
- ("Summary", {"fields": ["name", "gender", "contact_group"]}),
- (
- "Personal Info",
- {
- "fields": [
- "address",
- "birthday",
- "personal_phone",
- "personal_celphone",
- ],
- "expanded": False,
- },
- ),
- ]
-
- edit_fieldsets = [
- ("Summary", {"fields": ["name", "gender", "contact_group"]}),
- (
- "Personal Info",
- {
- "fields": [
- "address",
- "birthday",
- "personal_phone",
- "personal_celphone",
- ],
- "expanded": False,
- },
- ),
- ]
-
-
-class GroupModelView(ModelView):
- datamodel = SQLAInterface(ContactGroup)
- related_views = [ContactModelView]
-
-
-class MyIndexView(IndexView):
- index_template = "my_index.html"
diff --git a/examples/factoryapp/babel/babel.cfg b/examples/factoryapp/babel/babel.cfg
deleted file mode 100644
index 70e23ac634..0000000000
--- a/examples/factoryapp/babel/babel.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-[python: **.py]
-[jinja2: **/templates/**.html]
-encoding = utf-8
diff --git a/examples/factoryapp/babel/messages.pot b/examples/factoryapp/babel/messages.pot
deleted file mode 100644
index 2e5a6fb97a..0000000000
--- a/examples/factoryapp/babel/messages.pot
+++ /dev/null
@@ -1,27 +0,0 @@
-# Translations template for PROJECT.
-# Copyright (C) 2014 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
-# FIRST AUTHOR , 2014.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2014-01-13 00:29+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 1.3\n"
-
-#: app/views.py:42
-msgid "List Groups"
-msgstr ""
-
-#: app/views.py:43
-msgid "List Contacts"
-msgstr ""
-
diff --git a/examples/factoryapp/config.py b/examples/factoryapp/config.py
deleted file mode 100644
index ee6285554c..0000000000
--- a/examples/factoryapp/config.py
+++ /dev/null
@@ -1,58 +0,0 @@
-import os
-
-basedir = os.path.abspath(os.path.dirname(__file__))
-
-CSRF_ENABLED = True
-SECRET_KEY = "\2\1thisismyscretkey\1\2\e\y\y\h"
-
-OPENID_PROVIDERS = [
- {"name": "Google", "url": "https://www.google.com/accounts/o8/id"},
- {"name": "Yahoo", "url": "https://me.yahoo.com"},
- {"name": "AOL", "url": "http://openid.aol.com/"},
- {"name": "Flickr", "url": "http://www.flickr.com/"},
- {"name": "MyOpenID", "url": "https://www.myopenid.com"},
-]
-
-SQLALCHEMY_DATABASE_URI = "sqlite:///" + os.path.join(basedir, "app.db")
-# SQLALCHEMY_DATABASE_URI = 'mysql://root:password@localhost/quickhowto'
-# SQLALCHEMY_DATABASE_URI = 'postgresql://scott:tiger@localhost:5432/myapp'
-# SQLALCHEMY_ECHO = True
-
-FAB_INDEX_VIEW = "app.views.MyIndexView"
-
-BABEL_DEFAULT_LOCALE = "en"
-BABEL_DEFAULT_FOLDER = "translations"
-LANGUAGES = {
- "en": {"flag": "gb", "name": "English"},
- "pt": {"flag": "pt", "name": "Portuguese"},
- "es": {"flag": "es", "name": "Spanish"},
- "de": {"flag": "de", "name": "German"},
- "zh": {"flag": "cn", "name": "Chinese"},
- "ru": {"flag": "ru", "name": "Russian"},
-}
-
-
-# ------------------------------
-# GLOBALS FOR GENERAL APP's
-# ------------------------------
-UPLOAD_FOLDER = basedir + "/app/static/uploads/"
-IMG_UPLOAD_FOLDER = basedir + "/app/static/uploads/"
-IMG_UPLOAD_URL = "/static/uploads/"
-AUTH_TYPE = 1
-# AUTH_LDAP_SERVER = "ldap://dc.domain.net"
-# AUTH_LDAP_USE_TLS = False
-AUTH_ROLE_ADMIN = "Admin"
-AUTH_ROLE_PUBLIC = "Public"
-APP_NAME = "F.A.B. Example"
-APP_THEME = "" # default
-# APP_THEME = "cerulean.css" # COOL
-# APP_THEME = "amelia.css"
-# APP_THEME = "cosmo.css"
-# APP_THEME = "cyborg.css" # COOL
-# APP_THEME = "flatly.css"
-# APP_THEME = "journal.css"
-# APP_THEME = "readable.css"
-# APP_THEME = "simplex.css"
-# APP_THEME = "slate.css" # COOL
-# APP_THEME = "spacelab.css" # NICE
-# APP_THEME = "united.css"
diff --git a/examples/factoryapp/config2.py b/examples/factoryapp/config2.py
deleted file mode 100644
index 27c9978982..0000000000
--- a/examples/factoryapp/config2.py
+++ /dev/null
@@ -1,56 +0,0 @@
-import os
-
-basedir = os.path.abspath(os.path.dirname(__file__))
-
-CSRF_ENABLED = True
-SECRET_KEY = "\2\1thisismyscretkey\1\2\e\y\y\h"
-
-OPENID_PROVIDERS = [
- {"name": "Google", "url": "https://www.google.com/accounts/o8/id"},
- {"name": "Yahoo", "url": "https://me.yahoo.com"},
- {"name": "AOL", "url": "http://openid.aol.com/"},
- {"name": "Flickr", "url": "http://www.flickr.com/"},
- {"name": "MyOpenID", "url": "https://www.myopenid.com"},
-]
-
-SQLALCHEMY_DATABASE_URI = "sqlite:///" + os.path.join(basedir, "app.db")
-# SQLALCHEMY_DATABASE_URI = 'mysql://root:password@localhost/quickhowto'
-# SQLALCHEMY_DATABASE_URI = 'postgresql://scott:tiger@localhost:5432/myapp'
-# SQLALCHEMY_ECHO = True
-
-BABEL_DEFAULT_LOCALE = "en"
-BABEL_DEFAULT_FOLDER = "translations"
-LANGUAGES = {
- "en": {"flag": "gb", "name": "English"},
- "pt": {"flag": "pt", "name": "Portuguese"},
- "es": {"flag": "es", "name": "Spanish"},
- "de": {"flag": "de", "name": "German"},
- "zh": {"flag": "cn", "name": "Chinese"},
- "ru": {"flag": "ru", "name": "Russian"},
-}
-
-
-# ------------------------------
-# GLOBALS FOR GENERAL APP's
-# ------------------------------
-UPLOAD_FOLDER = basedir + "/app/static/uploads/"
-IMG_UPLOAD_FOLDER = basedir + "/app/static/uploads/"
-IMG_UPLOAD_URL = "/static/uploads/"
-AUTH_TYPE = 1
-# AUTH_LDAP_SERVER = "ldap://dc.domain.net"
-# AUTH_LDAP_USE_TLS = False
-AUTH_ROLE_ADMIN = "Admin"
-AUTH_ROLE_PUBLIC = "Public"
-APP_NAME = "F.A.B. Example"
-# APP_THEME = "" # default
-# APP_THEME = "cerulean.css" # COOL
-# APP_THEME = "amelia.css"
-APP_THEME = "cosmo.css"
-# APP_THEME = "cyborg.css" # COOL
-# APP_THEME = "flatly.css"
-# APP_THEME = "journal.css"
-# APP_THEME = "readable.css"
-# APP_THEME = "simplex.css"
-# APP_THEME = "slate.css" # COOL
-# APP_THEME = "spacelab.css" # NICE
-# APP_THEME = "united.css"
diff --git a/examples/factoryapp/testdata.py b/examples/factoryapp/testdata.py
deleted file mode 100644
index 2bdc202a6c..0000000000
--- a/examples/factoryapp/testdata.py
+++ /dev/null
@@ -1,59 +0,0 @@
-from datetime import datetime
-import random
-
-from flask import current_app
-from app.app import create_app
-from app.models import Contact, ContactGroup, Gender
-
-app = create_app("config")
-app.app_context().push()
-
-
-def get_random_name(names_list, size=1):
- name_lst = [
- names_list[random.randrange(0, len(names_list))].decode("utf-8").capitalize()
- for i in range(0, size)
- ]
- return " ".join(name_lst)
-
-
-try:
- current_app.appbuilder.session.add(ContactGroup(name="Friends"))
- current_app.appbuilder.session.add(ContactGroup(name="Family"))
- current_app.appbuilder.session.add(ContactGroup(name="Work"))
- current_app.appbuilder.session.commit()
-except Exception:
- current_app.appbuilder.session.rollback()
-
-try:
- current_app.appbuilder.session.add(Gender(name="Male"))
- current_app.appbuilder.session.add(Gender(name="Female"))
- current_app.appbuilder.session.commit()
-except Exception:
- current_app.appbuilder.session.rollback()
-
-f = open("NAMES.DIC", "rb")
-names_list = [x.strip() for x in f.readlines()]
-
-f.close()
-
-for i in range(1, 50):
- c = Contact()
- c.name = get_random_name(names_list, random.randrange(2, 6))
- c.address = "Street " + names_list[random.randrange(0, len(names_list))].decode(
- "utf-8"
- )
- c.personal_phone = random.randrange(1111111, 9999999)
- c.personal_celphone = random.randrange(1111111, 9999999)
- c.contact_group_id = random.randrange(1, 4)
- c.gender_id = random.randrange(1, 3)
- year = random.choice(range(1900, 2012))
- month = random.choice(range(1, 12))
- day = random.choice(range(1, 28))
- c.birthday = datetime(year, month, day)
- current_app.appbuilder.session.add(c)
- try:
- current_app.appbuilder.session.commit()
- print("inserted {0}".format(c))
- except Exception:
- current_app.appbuilder.session.rollback()
diff --git a/examples/issue_789/README.rst b/examples/issue_789/README.rst
deleted file mode 100644
index 020e2f36f2..0000000000
--- a/examples/issue_789/README.rst
+++ /dev/null
@@ -1,48 +0,0 @@
-==========
-Issue #789
-==========
-
-Description
------------
-
-Although Flask-AppBuilder supported many-to-many relationships between objects
-this was not reflected in the list view when searching on such relationships as
-described in issue_789_
-
-.. _issue_789: https://github.com/dpgaspar/Flask-AppBuilder/issues/789
-
-The 'enhancement' contributed in branch single_filter_multiple_values patches
-the Search functionality of the list view such that it takes into account all
-values supplied in the 'relationship' field rather than ignoring those beyond
-the first.
-
-This demo illustrates the issue and the fix for it.
-
-Running the Demo
-----------------
-
-To illustrate the issue described in issue_789:
-
-1. run app.py in an environment that has Flask-AppBuilder <= 1.12.3 installed.
-#. open http://localhost:5000 in a web browser
-#. login using the username ```admin``` with password ```admin```
-#. navigate to the 'Students' view (note that there are 3 Students)
-#. open the 'Search' panel
-#. click 'Add filter'
-#. select 'Courses'
-#. select both Courses in the filter box
-#. click the 'Search' button
-#. note that all three Students remain even though Freddy is not enrolled in
- the course 'Mathematics I'
-#. open the 'Search' panel and note that only the first course remains in the
- filter box even though both values are present in the page URI
-
-
-To verify the fix:
-
-1. Run this version of Flask-AppBuilder
-#. repeat steps 2 ~ 8 above
-#. note that Freddy is no longer visible as he is not enrolled in the 'Mathematics I' course
-#. open the 'Search' panel
-#. note that both courses remain in the filter box
-
diff --git a/examples/issue_789/app.py b/examples/issue_789/app.py
deleted file mode 100644
index 4f1c750bec..0000000000
--- a/examples/issue_789/app.py
+++ /dev/null
@@ -1,163 +0,0 @@
-import sys
-from flask_appbuilder import SQLA, AppBuilder, ModelView, Model
-from flask_appbuilder.models.sqla.interface import SQLAInterface
-from sqlalchemy import Column, Integer, String, ForeignKey, Table
-from sqlalchemy.orm import relationship
-from flask import Flask
-from flask_appbuilder.actions import action
-
-config = {
- 'SQLALCHEMY_DATABASE_URI': 'sqlite:///test.db',
- 'CSRF_ENABLED': True,
- 'SECRET_KEY': '\2\1thisismyscretkey\1\2\e\y\y\h',
- 'APP_NAME': 'Example of Filtering Many-to-many Relationships on a single field.'
-}
-
-app = Flask('single_filter_multi_value')
-app.config.update(config)
-db = SQLA(app)
-appbuilder = AppBuilder(app, db.session)
-
-
-program_registration = Table(
- 'program_registration',
- Model.metadata,
- Column('program_id', Integer, ForeignKey('program.id')),
- Column('student_id', Integer, ForeignKey('student.id')))
-
-
-course_registration = Table(
- 'course_registration',
- Model.metadata,
- Column('course_id', Integer, ForeignKey('course.id')),
- Column('student_id', Integer, ForeignKey('student.id')))
-
-
-class Teacher(Model):
- id = Column(Integer, primary_key=True)
- name = Column(String, nullable=False)
-
- def __repr__(self):
- return self.name
-
-
-class Program(Model):
- id = Column(Integer, primary_key=True)
- name = Column(String, nullable=False)
-
- def __repr__(self):
- return self.name
-
-
-class Student(Model):
- id = Column(Integer, primary_key=True)
- name = Column(String, nullable=False)
- program = relationship(Program, secondary=program_registration,
- backref='students')
-
- def __repr__(self):
- return self.name
-
-
-class Course(Model):
- id = Column(Integer, primary_key=True)
- title = Column(String, nullable=False)
- teacher_id = Column(Integer, ForeignKey('teacher.id'), nullable=False)
- teacher = relationship(Teacher, backref='courses')
- students = relationship(Student, secondary=course_registration,
- backref='courses')
-
- def __repr__(self):
- return self.title
-
-
-class CourseView(ModelView):
- datamodel = SQLAInterface(Course)
-
- list_columns = ['title', 'teacher']
- show_columns = ['title', 'teacher']
-
- @action("muldelete", "Delete", "Delete all Really?", "fa-rocket",
- single=False)
- def muldelete(self, items):
- self.datamodel.delete_all(items)
- self.update_redirect()
- return redirect(self.get_redirect())
-
-
-class ProgramView(ModelView):
- datamodel = SQLAInterface(Program)
- list_columns = ['name']
- show_columns = ['name', 'students']
- add_columns = ['name']
-
- @action("muldelete", "Delete", "Delete all Really?", "fa-rocket",
- single=False)
- def muldelete(self, items):
- self.datamodel.delete_all(items)
- self.update_redirect()
- return redirect(self.get_redirect())
-
-
-class StudentView(ModelView):
- datamodel = SQLAInterface(Student)
- related_views = [CourseView, ProgramView]
-
- list_columns = ['name', 'courses']
-
- @action("muldelete", "Delete", "Delete all Really?", "fa-rocket",
- single=False)
- def muldelete(self, items):
- self.datamodel.delete_all(items)
- self.update_redirect()
- return redirect(self.get_redirect())
-
-
-class TeacherView(ModelView):
- datamodel = SQLAInterface(Teacher)
- related_views = [StudentView]
-
- list_columns = ['name']
-
- @action("muldelete", "Delete", "Delete all Really?", "fa-rocket",
- single=False)
- def muldelete(self, items):
- self.datamodel.delete_all(items)
- self.update_redirect()
- return redirect(self.get_redirect())
-
-
-db.create_all()
-
-appbuilder.add_view(TeacherView, 'Teachers')
-appbuilder.add_view(CourseView, 'Courses')
-appbuilder.add_view(StudentView, 'Students')
-appbuilder.add_view(ProgramView, 'Programs')
-
-def add_data():
-
- db.session.add(Program(name="Bachelor of Science IT"))
- db.session.add(Program(name="Bachelor of Science Computer Science"))
- mr_smith = Teacher(name='Jonathan Smith')
- db.session.add(mr_smith)
- rod = Student(name='Rod')
- jane = Student(name='Jane')
- freddy = Student(name='Freddy')
- db.session.add(rod)
- db.session.add(jane)
- db.session.add(freddy)
-
- db.session.add(Course(title="Introduction to Programming using Pyhon",
- teacher=mr_smith,
- students=[rod, jane, freddy]))
- db.session.add(Course(title="Mathematics I",
- teacher=mr_smith,
- students=[rod, jane]))
- db.session.commit()
-
-
-if __name__ == '__main__':
- if len(sys.argv) > 1 and sys.argv[1] == '--add_data':
- add_data()
- else:
- app.run(debug=True)
diff --git a/examples/quickhowto/app/__init__.py b/examples/quickhowto/app/__init__.py
index d393b9ff67..da2c510fe0 100644
--- a/examples/quickhowto/app/__init__.py
+++ b/examples/quickhowto/app/__init__.py
@@ -1,14 +1,37 @@
import logging
from flask import Flask
-from flask_appbuilder import AppBuilder, SQLA
+from flask_appbuilder.extensions import db
+from .views import ContactModelView, ContactTimeChartView, GroupModelView
+from .extensions import appbuilder
+from .utils import fill_gender
+
logging.basicConfig(format="%(asctime)s:%(levelname)s:%(name)s:%(message)s")
logging.getLogger().setLevel(logging.DEBUG)
-app = Flask(__name__)
-app.config.from_object("config")
-db = SQLA(app)
-appbuilder = AppBuilder(app, db.session)
-
-from . import models, views # noqa
+def create_app() -> Flask:
+ app = Flask(__name__)
+ app.config.from_object("config")
+ with app.app_context():
+ appbuilder.init_app(app)
+ db.create_all()
+ fill_gender()
+ appbuilder.add_view(
+ GroupModelView,
+ "List Groups",
+ icon="fa-folder-open-o",
+ category="Contacts",
+ category_icon="fa-envelope",
+ )
+ appbuilder.add_view(
+ ContactModelView, "List Contacts", icon="fa-envelope", category="Contacts"
+ )
+ appbuilder.add_separator("Contacts")
+ appbuilder.add_view(
+ ContactTimeChartView,
+ "Contacts Birth Chart",
+ icon="fa-dashboard",
+ category="Contacts",
+ )
+ return app
diff --git a/examples/quickhowto/app/extensions.py b/examples/quickhowto/app/extensions.py
new file mode 100644
index 0000000000..cda8f08716
--- /dev/null
+++ b/examples/quickhowto/app/extensions.py
@@ -0,0 +1,4 @@
+from flask_appbuilder import AppBuilder
+
+
+appbuilder = AppBuilder()
diff --git a/examples/quickhowto/app/models.py b/examples/quickhowto/app/models.py
index b505898585..1876a84430 100644
--- a/examples/quickhowto/app/models.py
+++ b/examples/quickhowto/app/models.py
@@ -1,39 +1,47 @@
+from __future__ import annotations
+
import datetime
+from typing import Optional
from flask_appbuilder import Model
-from sqlalchemy import Column, Date, ForeignKey, Integer, String
+from sqlalchemy import Date, ForeignKey, Integer, String
+from sqlalchemy.orm import Mapped
+from sqlalchemy.orm import mapped_column
from sqlalchemy.orm import relationship
+
mindate = datetime.date(datetime.MINYEAR, 1, 1)
class ContactGroup(Model):
- id = Column(Integer, primary_key=True)
- name = Column(String(50), unique=True, nullable=False)
+ id: Mapped[int] = mapped_column(Integer, primary_key=True)
+ name: Mapped[str] = mapped_column(String(50), unique=True, nullable=False)
def __repr__(self):
return self.name
class Gender(Model):
- id = Column(Integer, primary_key=True)
- name = Column(String(50), unique=True, nullable=False)
+ id: Mapped[int] = mapped_column(Integer, primary_key=True)
+ name: Mapped[str] = mapped_column(String(50), unique=True, nullable=False)
def __repr__(self):
return self.name
class Contact(Model):
- id = Column(Integer, primary_key=True)
- name = Column(String(150), unique=True, nullable=False)
- address = Column(String(564))
- birthday = Column(Date, nullable=True)
- personal_phone = Column(String(20))
- personal_celphone = Column(String(20))
- contact_group_id = Column(Integer, ForeignKey("contact_group.id"), nullable=False)
- contact_group = relationship("ContactGroup")
- gender_id = Column(Integer, ForeignKey("gender.id"), nullable=False)
- gender = relationship("Gender")
+ id: Mapped[int] = mapped_column(Integer, primary_key=True)
+ name: Mapped[str] = mapped_column(String(150), unique=True, nullable=False)
+ address: Mapped[Optional[str]] = mapped_column(String(564))
+ birthday: Mapped[Optional[datetime.date]] = mapped_column(Date)
+ personal_phone: Mapped[Optional[str]] = mapped_column(String(20))
+ personal_celphone: Mapped[Optional[str]] = mapped_column(String(20))
+ contact_group_id: Mapped[int] = mapped_column(
+ Integer, ForeignKey("contact_group.id"), nullable=False
+ )
+ contact_group: Mapped[ContactGroup] = relationship("ContactGroup")
+ gender_id: Mapped[int] = mapped_column(Integer, ForeignKey("gender.id"), nullable=False)
+ gender: Mapped[Gender] = relationship("Gender")
def __repr__(self):
return self.name
diff --git a/examples/quickhowto/app/utils.py b/examples/quickhowto/app/utils.py
new file mode 100644
index 0000000000..663ed8a2a7
--- /dev/null
+++ b/examples/quickhowto/app/utils.py
@@ -0,0 +1,13 @@
+from flask_appbuilder.extensions import db
+from sqlalchemy.exc import SQLAlchemyError
+
+from .models import Gender
+
+
+def fill_gender():
+ try:
+ db.session.add(Gender(name="Male"))
+ db.session.add(Gender(name="Female"))
+ db.session.commit()
+ except SQLAlchemyError:
+ db.session.rollback()
diff --git a/examples/quickhowto/app/views.py b/examples/quickhowto/app/views.py
index 5b63c81004..b3834907e6 100644
--- a/examples/quickhowto/app/views.py
+++ b/examples/quickhowto/app/views.py
@@ -5,17 +5,7 @@
from flask_appbuilder.models.group import aggregate_count
from flask_appbuilder.models.sqla.interface import SQLAInterface
-from . import appbuilder, db
-from .models import Contact, ContactGroup, Gender
-
-
-def fill_gender():
- try:
- db.session.add(Gender(name="Male"))
- db.session.add(Gender(name="Female"))
- db.session.commit()
- except Exception:
- db.session.rollback()
+from .models import Contact, ContactGroup
class ContactModelView(ModelView):
@@ -104,24 +94,3 @@ class ContactTimeChartView(GroupByChartView):
"series": [(aggregate_count, "group")],
},
]
-
-
-db.create_all()
-fill_gender()
-appbuilder.add_view(
- GroupModelView,
- "List Groups",
- icon="fa-folder-open-o",
- category="Contacts",
- category_icon="fa-envelope",
-)
-appbuilder.add_view(
- ContactModelView, "List Contacts", icon="fa-envelope", category="Contacts"
-)
-appbuilder.add_separator("Contacts")
-appbuilder.add_view(
- ContactTimeChartView,
- "Contacts Birth Chart",
- icon="fa-dashboard",
- category="Contacts",
-)
diff --git a/examples/quickhowto/config.py b/examples/quickhowto/config.py
index c813f2e723..5745ebd3e3 100644
--- a/examples/quickhowto/config.py
+++ b/examples/quickhowto/config.py
@@ -51,7 +51,7 @@ def custom_password_validator(password: str) -> None:
# FAB_PASSWORD_COMPLEXITY_VALIDATOR = custom_password_validator
-FAB_PASSWORD_COMPLEXITY_ENABLED = True
+FAB_PASSWORD_COMPLEXITY_ENABLED = False
# ------------------------------
# GLOBALS FOR GENERAL APP's
diff --git a/examples/quickhowto/testdata.py b/examples/quickhowto/testdata.py
index e99380168e..76d3259e1e 100644
--- a/examples/quickhowto/testdata.py
+++ b/examples/quickhowto/testdata.py
@@ -1,5 +1,5 @@
import logging
-from app import db
+from app import create_app, db
from app.models import ContactGroup, Gender, Contact
import random
from datetime import datetime
@@ -7,6 +7,9 @@
log = logging.getLogger(__name__)
+app = create_app()
+
+
def get_random_name(names_list, size=1):
name_lst = [
names_list[random.randrange(0, len(names_list))].decode("utf-8").capitalize()
@@ -15,62 +18,67 @@ def get_random_name(names_list, size=1):
return " ".join(name_lst)
-try:
- db.session.query(Contact).delete()
- db.session.query(Gender).delete()
- db.session.query(ContactGroup).delete()
- db.session.commit()
-except:
- db.session.rollback()
-
-try:
- groups = []
- groups.append(ContactGroup(name="Friends"))
- groups.append(ContactGroup(name="Family"))
- groups.append(ContactGroup(name="Work"))
- db.session.add(groups[0])
- db.session.add(groups[1])
- db.session.add(groups[2])
- print(groups[0].id)
- db.session.commit()
-except Exception as e:
- log.error("Creating Groups: %s", e)
- db.session.rollback()
-
-try:
- genders = list()
- genders.append(Gender(name="Male"))
- genders.append(Gender(name="Female"))
- db.session.add(genders[0])
- db.session.add(genders[1])
- db.session.commit()
-except Exception as e:
- log.error("Creating Genders: %s", e)
- db.session.rollback()
-
-f = open("NAMES.DIC", "rb")
-names_list = [x.strip() for x in f.readlines()]
+def insert_test_data():
+ try:
+ db.session.query(Contact).delete()
+ db.session.query(Gender).delete()
+ db.session.query(ContactGroup).delete()
+ db.session.commit()
+ except:
+ db.session.rollback()
-f.close()
+ try:
+ groups = []
+ groups.append(ContactGroup(name="Friends"))
+ groups.append(ContactGroup(name="Family"))
+ groups.append(ContactGroup(name="Work"))
+ db.session.add(groups[0])
+ db.session.add(groups[1])
+ db.session.add(groups[2])
+ print(groups[0].id)
+ db.session.commit()
+ except Exception as e:
+ log.error("Creating Groups: %s", e)
+ db.session.rollback()
-for i in range(1, 1000):
- c = Contact()
- c.name = get_random_name(names_list, random.randrange(2, 6))
- c.address = "Street " + names_list[random.randrange(0, len(names_list))].decode(
- "utf-8"
- )
- c.personal_phone = random.randrange(1111111, 9999999)
- c.personal_celphone = random.randrange(1111111, 9999999)
- c.contact_group = groups[random.randrange(0, 3)]
- c.gender = genders[random.randrange(0, 2)]
- year = random.choice(range(1900, 2012))
- month = random.choice(range(1, 12))
- day = random.choice(range(1, 28))
- c.birthday = datetime(year, month, day)
- db.session.add(c)
try:
+ genders = list()
+ genders.append(Gender(name="Male"))
+ genders.append(Gender(name="Female"))
+ db.session.add(genders[0])
+ db.session.add(genders[1])
db.session.commit()
- print("inserted", c)
except Exception as e:
- log.error("Creating Contact: %s", e)
+ log.error("Creating Genders: %s", e)
db.session.rollback()
+
+ f = open("NAMES.DIC", "rb")
+ names_list = [x.strip() for x in f.readlines()]
+
+ f.close()
+
+ for i in range(1, 1000):
+ c = Contact()
+ c.name = get_random_name(names_list, random.randrange(2, 6))
+ c.address = "Street " + names_list[random.randrange(0, len(names_list))].decode(
+ "utf-8"
+ )
+ c.personal_phone = random.randrange(1111111, 9999999)
+ c.personal_celphone = random.randrange(1111111, 9999999)
+ c.contact_group = groups[random.randrange(0, 3)]
+ c.gender = genders[random.randrange(0, 2)]
+ year = random.choice(range(1900, 2012))
+ month = random.choice(range(1, 12))
+ day = random.choice(range(1, 28))
+ c.birthday = datetime(year, month, day)
+ db.session.add(c)
+ try:
+ db.session.commit()
+ print("inserted", c)
+ except Exception as e:
+ log.error("Creating Contact: %s", e)
+ db.session.rollback()
+
+
+with app.app_context():
+ insert_test_data()
diff --git a/flask_appbuilder/__init__.py b/flask_appbuilder/__init__.py
index 99ed0d1861..7ab4e8ff52 100644
--- a/flask_appbuilder/__init__.py
+++ b/flask_appbuilder/__init__.py
@@ -1,5 +1,5 @@
__author__ = "Daniel Vaz Gaspar"
-__version__ = "4.5.0"
+__version__ = "5.0.0a1"
from .actions import action # noqa: F401
from .api import ModelRestApi # noqa: F401
@@ -7,7 +7,7 @@
from .baseviews import BaseView, expose # noqa: F401
from .charts.views import DirectByChartView, GroupByChartView # noqa: F401
from .models.group import aggregate_avg, aggregate_count, aggregate_sum # noqa: F401
-from .models.sqla import Base, Model, SQLA # noqa: F401
+from .models.sqla import Model # noqa: F401
from .security.decorators import has_access, permission_name # noqa: F401
from .views import ( # noqa: F401
CompactCRUDMixin,
diff --git a/flask_appbuilder/api/__init__.py b/flask_appbuilder/api/__init__.py
index 1fba66f627..9baf9d786c 100644
--- a/flask_appbuilder/api/__init__.py
+++ b/flask_appbuilder/api/__init__.py
@@ -20,23 +20,15 @@
from apispec import APISpec, yaml_utils
from apispec.exceptions import DuplicateComponentNameError
from flask import Blueprint, current_app, jsonify, make_response, request, Response
-from flask_appbuilder.models.sqla import Model
-from flask_appbuilder.models.sqla.interface import SQLAInterface
-from flask_babel import lazy_gettext as _
-import jsonschema
-from marshmallow import Schema, ValidationError
-from marshmallow.fields import Field
-from marshmallow_sqlalchemy.fields import Related, RelatedList
-import prison
-from sqlalchemy.exc import IntegrityError
-from werkzeug.exceptions import BadRequest
-import yaml
-
-from .convert import Model2SchemaConverter
-from .schemas import get_info_schema, get_item_schema, get_list_schema
-from .._compat import as_unicode
-from ..baseviews import AbstractViewApi
-from ..const import (
+from flask_appbuilder._compat import as_unicode
+from flask_appbuilder.api.convert import Model2SchemaConverter
+from flask_appbuilder.api.schemas import (
+ get_info_schema,
+ get_item_schema,
+ get_list_schema,
+)
+from flask_appbuilder.baseviews import AbstractViewApi
+from flask_appbuilder.const import (
API_ADD_COLUMNS_RES_KEY,
API_ADD_COLUMNS_RIS_KEY,
API_ADD_TITLE_RES_KEY,
@@ -73,11 +65,29 @@
API_URI_RIS_KEY,
PERMISSION_PREFIX,
)
-from ..exceptions import FABException, InvalidOrderByColumnFABException
-from ..hooks import get_before_request_hooks, wrap_route_handler_with_hooks
-from ..models.filters import Filters
-from ..security.decorators import permission_name, protect
-from ..utils.limit import Limit
+from flask_appbuilder.exceptions import (
+ DatabaseException,
+ FABException,
+ InvalidOrderByColumnFABException,
+)
+from flask_appbuilder.hooks import (
+ get_before_request_hooks,
+ wrap_route_handler_with_hooks,
+)
+from flask_appbuilder.models.filters import Filters
+from flask_appbuilder.models.sqla import Model
+from flask_appbuilder.models.sqla.interface import SQLAInterface
+from flask_appbuilder.security.decorators import permission_name, protect
+from flask_appbuilder.utils.limit import Limit
+from flask_babel import lazy_gettext as _
+import jsonschema
+from marshmallow import Schema, ValidationError
+from marshmallow.fields import Field
+from marshmallow_sqlalchemy.fields import Related, RelatedList
+import prison
+from werkzeug.exceptions import BadRequest
+import yaml
+
if TYPE_CHECKING:
from flask_appbuilder import AppBuilder
@@ -156,7 +166,7 @@ def rison_json(self, **kwargs):
def _rison(f: Callable[..., Any]) -> Callable[..., Any]:
def wraps(self: "BaseApi", *args: Any, **kwargs: Any) -> Response:
value = request.args.get(API_URI_RIS_KEY, None)
- kwargs["rison"] = dict()
+ kwargs["rison"] = {}
if value:
try:
kwargs["rison"] = prison.loads(value)
@@ -179,7 +189,10 @@ def wraps(self: "BaseApi", *args: Any, **kwargs: Any) -> Response:
try:
jsonschema.validate(instance=kwargs["rison"], schema=schema)
except jsonschema.ValidationError as e:
- return self.response_400(message=f"Not a valid rison schema {e}")
+ validation_message = str(e).split("\n")[0]
+ return self.response_400(
+ message=f"Not a valid rison schema {validation_message}"
+ )
return f(self, *args, **kwargs)
return functools.update_wrapper(wraps, f)
@@ -547,7 +560,7 @@ def create_blueprint(
self.blueprint = Blueprint(self.endpoint, __name__, url_prefix=self.route_base)
# Exempt API from CSRF protect
if self.csrf_exempt:
- csrf = self.appbuilder.app.extensions.get("csrf")
+ csrf = current_app.extensions.get("csrf")
if csrf:
csrf.exempt(self.blueprint)
@@ -833,8 +846,8 @@ def response_500(self, message: str = None) -> Response:
return self.response(500, **{"message": message})
-class BaseModelApi(BaseApi):
- datamodel: Optional[SQLAInterface] = None
+class ModelRestApi(BaseApi):
+ datamodel: SQLAInterface
"""
Your sqla model you must initialize it like::
@@ -906,55 +919,6 @@ class MyView(ModelRestApi):
Filters object will calculate all possible filter types
based on search_columns
"""
-
- def __init__(self, **kwargs: Any) -> None:
- datamodel = kwargs.get("datamodel", None)
- if datamodel:
- self.datamodel = datamodel
- self._init_properties()
- self._init_titles()
- super(BaseModelApi, self).__init__()
-
- def _gen_labels_columns(self, list_columns: List[str]) -> None:
- """
- Auto generates pretty label_columns from list of columns
- """
- for col in list_columns:
- if not self.label_columns.get(col):
- self.label_columns[col] = self._prettify_column(col)
-
- def _label_columns_json(self, cols: Optional[List[str]] = None) -> Dict[str, Any]:
- """
- Prepares dict with labels to be JSON serializable
- """
- ret = {}
- cols = cols or []
- d = {k: v for (k, v) in self.label_columns.items() if k in cols}
- for key, value in d.items():
- ret[key] = as_unicode(_(value).encode("UTF-8"))
- return ret
-
- def _init_properties(self) -> None:
- self.label_columns = self.label_columns or {}
- self.base_filters = self.base_filters or []
- self.search_exclude_columns = self.search_exclude_columns or []
- self.search_columns = self.search_columns or []
-
- self._base_filters = self.datamodel.get_filters().add_filter_list(
- self.base_filters
- )
- search_columns = self.datamodel.get_search_columns_list()
- if not self.search_columns:
- self.search_columns = [
- x for x in search_columns if x not in self.search_exclude_columns
- ]
- self._gen_labels_columns(self.datamodel.get_columns_list())
-
- def _init_titles(self) -> None:
- pass
-
-
-class ModelRestApi(BaseModelApi):
list_title = ""
"""
List Title, if not configured the default is
@@ -1054,9 +1018,8 @@ class override for the FAB_API_MAX_SIZE, use special -1 to allow for any page
"""
Dictionary with column descriptions that will be shown on the forms::
- class MyView(ModelView):
- datamodel = SQLAModel(MyTable, db.session)
-
+ class MyView(ModelRestApi):
+ datamodel = SQLAModel(Model1)
description_columns = {'name':'your models name column',
'address':'the address column'}
"""
@@ -1087,7 +1050,7 @@ class ContactModelView(ModelRestApi):
Add a custom filter to form related fields::
class ContactModelView(ModelRestApi):
- datamodel = SQLAModel(Contact, db.session)
+ datamodel = SQLAModel(Contact)
edit_query_rel_fields = {'group':[['name',FilterStartsWith,'W']]}
"""
@@ -1135,7 +1098,9 @@ class ContactModelView(ModelRestApi):
}
def __init__(self) -> None:
- super(ModelRestApi, self).__init__()
+ super().__init__()
+ self._init_properties()
+ self._init_titles()
self.validators_columns = self.validators_columns or {}
self.model2schemaconverter = self.model2schemaconverter(
self.datamodel, self.validators_columns
@@ -1145,7 +1110,7 @@ def create_blueprint(
self, appbuilder: "AppBuilder", *args: Any, **kwargs: Any
) -> Blueprint:
self._init_model_schemas()
- return super(ModelRestApi, self).create_blueprint(appbuilder, *args, **kwargs)
+ return super().create_blueprint(appbuilder, *args, **kwargs)
@property
def list_model_schema_name(self) -> str:
@@ -1164,7 +1129,7 @@ def edit_model_schema_name(self) -> str:
return f"{self.__class__.__name__}.put"
def add_apispec_components(self, api_spec: APISpec) -> None:
- super(ModelRestApi, self).add_apispec_components(api_spec)
+ super().add_apispec_components(api_spec)
api_spec.components.schema(
self.list_model_schema_name, schema=self.list_model_schema
)
@@ -1178,6 +1143,25 @@ def add_apispec_components(self, api_spec: APISpec) -> None:
self.show_model_schema_name, schema=self.show_model_schema
)
+ def _gen_labels_columns(self, list_columns: List[str]) -> None:
+ """
+ Auto generates pretty label_columns from list of columns
+ """
+ for col in list_columns:
+ if not self.label_columns.get(col):
+ self.label_columns[col] = self._prettify_column(col)
+
+ def _label_columns_json(self, cols: Optional[List[str]] = None) -> Dict[str, Any]:
+ """
+ Prepares dict with labels to be JSON serializable
+ """
+ ret = {}
+ cols = cols or []
+ d = {k: v for (k, v) in self.label_columns.items() if k in cols}
+ for key, value in d.items():
+ ret[key] = as_unicode(_(value).encode("UTF-8"))
+ return ret
+
def _init_model_schemas(self) -> None:
# Create Marshmalow schemas if one is not specified
if self.list_model_schema is None:
@@ -1205,7 +1189,6 @@ def _init_titles(self) -> None:
"""
Init Titles if not defined
"""
- super(ModelRestApi, self)._init_titles()
class_name = self.datamodel.model_name
if not self.list_title:
self.list_title = "List " + self._prettify_name(class_name)
@@ -1221,7 +1204,21 @@ def _init_properties(self) -> None:
"""
Initializes all properties
"""
- super(ModelRestApi, self)._init_properties()
+ self.label_columns = self.label_columns or {}
+ self.base_filters = self.base_filters or []
+ self.search_exclude_columns = self.search_exclude_columns or []
+ self.search_columns = self.search_columns or []
+
+ self._base_filters = self.datamodel.get_filters().add_filter_list(
+ self.base_filters
+ )
+ search_columns = self.datamodel.get_search_columns_list()
+ if not self.search_columns:
+ self.search_columns = [
+ x for x in search_columns if x not in self.search_exclude_columns
+ ]
+ self._gen_labels_columns(self.datamodel.get_columns_list())
+
# Reset init props
self.description_columns = self.description_columns or {}
self.list_exclude_columns = self.list_exclude_columns or []
@@ -1739,7 +1736,7 @@ def post_headless(self) -> Response:
# This validates custom Schema with custom validations
self.pre_add(item)
try:
- self.datamodel.add(item, raise_exception=True)
+ self.datamodel.add(item)
self.post_add(item)
return self.response(
201,
@@ -1748,8 +1745,10 @@ def post_headless(self) -> Response:
"id": self.datamodel.get_pk_value(item),
},
)
- except IntegrityError as e:
- return self.response_422(message=str(e.orig))
+ except DatabaseException as e:
+ return self.response_422(
+ message=f"Database exception occurred: {e.__cause__}"
+ )
@expose("/", methods=["POST"])
@protect()
@@ -1805,14 +1804,16 @@ def put_headless(self, pk: ModelKeyType) -> Response:
return self.response_422(message=err.messages)
self.pre_update(item)
try:
- self.datamodel.edit(item, raise_exception=True)
+ self.datamodel.edit(item)
self.post_update(item)
return self.response(
200,
**{API_RESULT_RES_KEY: self.edit_model_schema.dump(item, many=False)},
)
- except IntegrityError as e:
- return self.response_422(message=str(e.orig))
+ except DatabaseException as e:
+ return self.response_422(
+ message=f"Database exception occurred: {e.__cause__}"
+ )
@expose("/", methods=["PUT"])
@protect()
@@ -1866,11 +1867,13 @@ def delete_headless(self, pk: ModelKeyType) -> Response:
return self.response_404()
self.pre_delete(item)
try:
- self.datamodel.delete(item, raise_exception=True)
+ self.datamodel.delete(item)
self.post_delete(item)
return self.response(200, message="OK")
- except IntegrityError as e:
- return self.response_422(message=str(e.orig))
+ except DatabaseException as e:
+ return self.response_422(
+ message=f"Database exception occurred: {e.__cause__}"
+ )
@expose("/", methods=["DELETE"])
@protect()
diff --git a/flask_appbuilder/api/convert.py b/flask_appbuilder/api/convert.py
index f3def78b53..f0a6ec5162 100644
--- a/flask_appbuilder/api/convert.py
+++ b/flask_appbuilder/api/convert.py
@@ -1,6 +1,6 @@
from typing import Any, Callable, Dict, List, Optional, Type
-from flask_appbuilder.models.sqla import Model
+from flask_appbuilder.models.sqla import db, Model
from flask_appbuilder.models.sqla.interface import SQLAInterface
from marshmallow import fields, Schema
from marshmallow.fields import Field
@@ -123,7 +123,7 @@ class Meta:
model = _model
fields = columns
load_instance = True
- sqla_session = self.datamodel.session
+ sqla_session = db.session
# The parent_schema_name is useful to humanize nested schema names
# This name comes from ModelRestApi
parent_schema_name = _parent_schema_name
@@ -134,7 +134,7 @@ class MetaSchema(SQLAlchemyAutoSchema, class_mixin): # type: ignore
class Meta:
model = _model
load_instance = True
- sqla_session = self.datamodel.session
+ sqla_session = db.session
# The parent_schema_name is useful to humanize nested schema names
# This name comes from ModelRestApi
parent_schema_name = _parent_schema_name
diff --git a/flask_appbuilder/api/manager.py b/flask_appbuilder/api/manager.py
index 6999a9e401..182aebc23b 100644
--- a/flask_appbuilder/api/manager.py
+++ b/flask_appbuilder/api/manager.py
@@ -88,7 +88,7 @@ class SwaggerView(BaseView):
@has_access
def show(self, version):
return self.render_template(
- self.appbuilder.app.config.get(
+ current_app.config.get(
"FAB_API_SWAGGER_TEMPLATE", "appbuilder/swagger/swagger.html"
),
openapi_uri=self.openapi_uri.format(version),
@@ -97,8 +97,8 @@ def show(self, version):
class OpenApiManager(BaseManager):
def register_views(self):
- if not self.appbuilder.app.config.get("FAB_ADD_OPENAPI_VIEWS", True):
+ if not current_app.config.get("FAB_ADD_OPENAPI_VIEWS", True):
return
- if self.appbuilder.get_app.config.get("FAB_API_SWAGGER_UI", False):
+ if current_app.config.get("FAB_API_SWAGGER_UI", False):
self.appbuilder.add_api(OpenApi)
self.appbuilder.add_view_no_menu(SwaggerView)
diff --git a/flask_appbuilder/babel/manager.py b/flask_appbuilder/babel/manager.py
index f3df0c7a72..880f40bcdb 100644
--- a/flask_appbuilder/babel/manager.py
+++ b/flask_appbuilder/babel/manager.py
@@ -1,6 +1,6 @@
import os
-from flask import has_request_context, request, session
+from flask import current_app, has_request_context, request, session
from flask_appbuilder.babel.views import LocaleView
from flask_appbuilder.basemanager import BaseManager
from flask_babel import Babel
@@ -12,18 +12,17 @@ class BabelManager(BaseManager):
def __init__(self, appbuilder):
super(BabelManager, self).__init__(appbuilder)
- app = appbuilder.get_app
- app.config.setdefault("BABEL_DEFAULT_LOCALE", "en")
- if not app.config.get("LANGUAGES"):
- app.config["LANGUAGES"] = {"en": {"flag": "us", "name": "English"}}
+ current_app.config.setdefault("BABEL_DEFAULT_LOCALE", "en")
+ if not current_app.config.get("LANGUAGES"):
+ current_app.config["LANGUAGES"] = {"en": {"flag": "us", "name": "English"}}
appbuilder_parent_dir = os.path.join(
os.path.dirname(os.path.abspath(__file__)), os.pardir
)
appbuilder_translations_path = os.path.join(
appbuilder_parent_dir, "translations"
)
- if "BABEL_TRANSLATION_DIRECTORIES" in app.config:
- current_translation_directories = app.config.get(
+ if "BABEL_TRANSLATION_DIRECTORIES" in current_app.config:
+ current_translation_directories = current_app.config.get(
"BABEL_TRANSLATION_DIRECTORIES"
)
translations_path = (
@@ -31,8 +30,8 @@ def __init__(self, appbuilder):
)
else:
translations_path = appbuilder_translations_path + ";translations"
- app.config["BABEL_TRANSLATION_DIRECTORIES"] = translations_path
- self.babel = Babel(app)
+ current_app.config["BABEL_TRANSLATION_DIRECTORIES"] = translations_path
+ self.babel = Babel(current_app)
self.babel.locale_selector_func = self.get_locale
def register_views(self):
@@ -41,11 +40,11 @@ def register_views(self):
@property
def babel_default_locale(self):
- return self.appbuilder.get_app.config["BABEL_DEFAULT_LOCALE"]
+ return current_app.config["BABEL_DEFAULT_LOCALE"]
@property
def languages(self):
- return self.appbuilder.get_app.config["LANGUAGES"]
+ return current_app.config["LANGUAGES"]
def get_locale(self):
if has_request_context():
diff --git a/flask_appbuilder/base.py b/flask_appbuilder/base.py
index 14aedfc6d0..fda18dcce1 100644
--- a/flask_appbuilder/base.py
+++ b/flask_appbuilder/base.py
@@ -1,14 +1,14 @@
+from __future__ import annotations
+
from functools import reduce
import logging
from typing import Any, Callable, cast, Dict, List, Optional, Type, TYPE_CHECKING, Union
from flask import Blueprint, current_app, Flask, url_for
-from sqlalchemy.orm.session import Session as SessionBase
-
-from . import __version__
-from .api.manager import OpenApiManager
-from .babel.manager import BabelManager
-from .const import (
+from flask_appbuilder import __version__
+from flask_appbuilder.api.manager import OpenApiManager
+from flask_appbuilder.babel.manager import BabelManager
+from flask_appbuilder.const import (
LOGMSG_ERR_FAB_ADD_PERMISSION_MENU,
LOGMSG_ERR_FAB_ADD_PERMISSION_VIEW,
LOGMSG_ERR_FAB_ADDON_IMPORT,
@@ -17,9 +17,11 @@
LOGMSG_INF_FAB_ADDON_ADDED,
LOGMSG_WAR_FAB_VIEW_EXISTS,
)
-from .filters import TemplateFilters
-from .menu import Menu, MenuApiManager
-from .views import IndexView, UtilView
+from flask_appbuilder.extensions import db
+from flask_appbuilder.filters import TemplateFilters
+from flask_appbuilder.menu import Menu, MenuApiManager
+from flask_appbuilder.views import IndexView, UtilView
+from sqlalchemy.orm.session import Session as SessionBase
if TYPE_CHECKING:
from flask_appbuilder.basemanager import BaseManager
@@ -49,7 +51,7 @@ def dynamic_class_import(class_path: str) -> Optional[DynamicImportType]:
tmp = class_path.split(".")
module_path = ".".join(tmp[0:-1])
package = __import__(module_path)
- return reduce(getattr, tmp[1:], package)
+ return reduce(getattr, tmp[1:], package) # type: ignore
except Exception as e:
log.exception(e)
log.error(LOGMSG_ERR_FAB_ADDON_IMPORT, class_path, e)
@@ -65,12 +67,11 @@ class AppBuilder:
initialize your application like this for SQLAlchemy::
from flask import Flask
- from flask_appbuilder import SQLA, AppBuilder
+ from flask_appbuilder import AppBuilder
app = Flask(__name__)
app.config.from_object('config')
- db = SQLA(app)
- appbuilder = AppBuilder(app, db.session)
+ appbuilder = AppBuilder(app)
When using MongoEngine::
@@ -94,7 +95,6 @@ class AppBuilder:
def __init__(
self,
app: Optional[Flask] = None,
- session: Optional[SessionBase] = None,
menu: Optional[Menu] = None,
indexview: Optional[Type["AbstractViewApi"]] = None,
base_template: str = "appbuilder/baselayout.html",
@@ -136,7 +136,6 @@ def __init__(
self.indexview = indexview
self.static_folder = static_folder
self.static_url_path = static_url_path
- self.app = app
self.update_perms = update_perms
# Security Manager Class
@@ -147,9 +146,9 @@ def __init__(
self.menuapi_manager: MenuApiManager = None # type: ignore
if app is not None:
- self.init_app(app, session)
+ self.init_app(app)
- def init_app(self, app: Flask, session: SessionBase) -> None:
+ def init_app(self, app: Flask) -> None:
"""
Will initialize the Flask app, supporting the app factory pattern.
@@ -168,7 +167,10 @@ def init_app(self, app: Flask, session: SessionBase) -> None:
app.config.setdefault("FAB_STATIC_FOLDER", self.static_folder)
app.config.setdefault("FAB_STATIC_URL_PATH", self.static_url_path)
- self.app = app
+ self._init_extension(app)
+ # init flask-sqlalchemy if needed
+ if "sqlalchemy" not in app.extensions:
+ db.init_app(app)
self.base_template = app.config.get("FAB_BASE_TEMPLATE", self.base_template)
self.static_folder = app.config.get("FAB_STATIC_FOLDER", self.static_folder)
@@ -207,7 +209,6 @@ def init_app(self, app: Flask, session: SessionBase) -> None:
self.security_manager_class = SecurityManager
self._addon_managers = app.config["ADDON_MANAGERS"]
- self.session = session
self.sm = self.security_manager_class(self)
self.bm = BabelManager(self)
self.openapi_manager = OpenApiManager(self)
@@ -217,16 +218,15 @@ def init_app(self, app: Flask, session: SessionBase) -> None:
app.before_request(self.sm.before_request)
self._add_admin_views()
self._add_addon_views()
- if self.app:
- self._add_menu_permissions()
- else:
- self.post_init()
- self._init_extension(app)
+ self._add_menu_permissions()
def _init_extension(self, app: Flask) -> None:
app.appbuilder = self
- if not hasattr(app, "extensions"):
- app.extensions = {}
+ if "appbuilder" in app.extensions:
+ raise RuntimeError(
+ "A 'Flask-AppBuilder' instance has"
+ " already been registered on this Flask app."
+ )
app.extensions["appbuilder"] = self
def post_init(self) -> None:
@@ -234,31 +234,27 @@ def post_init(self) -> None:
# instantiate the views and add session
baseview = self._check_and_init(baseview)
# Register the views has blueprints
- if baseview.__class__.__name__ not in self.get_app.blueprints.keys():
+ if baseview.__class__.__name__ not in current_app.blueprints.keys():
self.register_blueprint(baseview)
# Add missing permissions where needed
self.add_permissions()
@property
- def get_app(self) -> Flask:
- """
- Get current or configured flask app
-
- :return: Flask App
- """
- if self.app:
- return self.app
- else:
- return current_app
+ def app(self) -> Flask:
+ log.warning(
+ "appbuilder.app will be deprecated in future versions, "
+ "use current_app instead"
+ )
+ return current_app
@property
- def get_session(self) -> SessionBase:
+ def session(self) -> SessionBase:
"""
Get the current sqlalchemy session.
:return: SQLAlchemy Session
"""
- return self.session
+ return db.session
@property
def app_name(self) -> str:
@@ -267,7 +263,7 @@ def app_name(self) -> str:
:return: String with app name
"""
- return self.get_app.config["APP_NAME"]
+ return current_app.config["APP_NAME"]
@property
def app_theme(self) -> str:
@@ -276,7 +272,7 @@ def app_theme(self) -> str:
:return: String app theme name
"""
- return self.get_app.config["APP_THEME"]
+ return current_app.config["APP_THEME"]
@property
def app_icon(self) -> str:
@@ -285,11 +281,11 @@ def app_icon(self) -> str:
:return: String with relative app icon location
"""
- return self.get_app.config["APP_ICON"]
+ return current_app.config["APP_ICON"]
@property
def languages(self) -> Dict[str, Any]:
- return self.get_app.config["LANGUAGES"]
+ return current_app.config["LANGUAGES"]
@property
def version(self) -> str:
@@ -301,7 +297,7 @@ def version(self) -> str:
return __version__
def _add_global_filters(self) -> None:
- self.template_filters = TemplateFilters(self.get_app, self.sm)
+ self.template_filters = TemplateFilters(current_app, self.sm)
def _add_global_static(self) -> None:
bp = Blueprint(
@@ -312,7 +308,7 @@ def _add_global_static(self) -> None:
static_folder=self.static_folder,
static_url_path=self.static_url_path,
)
- self.get_app.register_blueprint(bp)
+ current_app.register_blueprint(bp)
def _add_admin_views(self) -> None:
"""
@@ -349,11 +345,6 @@ def _add_addon_views(self) -> None:
def _check_and_init(
self, baseview: Union[Type["AbstractViewApi"], "AbstractViewApi"]
) -> "AbstractViewApi":
- # If class if not instantiated, instantiate it
- # and add db session from security models.
- if hasattr(baseview, "datamodel"):
- if getattr(baseview, "datamodel").session is None:
- getattr(baseview, "datamodel").session = self.session
if isinstance(baseview, type):
baseview = baseview()
return baseview
@@ -444,10 +435,9 @@ def add_view(
baseview.appbuilder = self
self.baseviews.append(baseview)
self._process_inner_views()
- if self.app:
- self.register_blueprint(baseview)
- self._add_permission(baseview)
- self.add_limits(baseview)
+ self.register_blueprint(baseview)
+ self._add_permission(baseview)
+ self.add_limits(baseview)
self.add_link(
name=name,
href=href,
@@ -515,10 +505,9 @@ def add_link(
baseview=baseview,
cond=cond,
)
- if self.app:
- self._add_permissions_menu(name)
- if category:
- self._add_permissions_menu(category)
+ self._add_permissions_menu(name)
+ if category:
+ self._add_permissions_menu(category)
def add_separator(
self, category: str, cond: Optional[Callable[..., bool]] = None
@@ -561,12 +550,11 @@ def add_view_no_menu(
baseview.appbuilder = self
self.baseviews.append(baseview)
self._process_inner_views()
- if self.app:
- self.register_blueprint(
- baseview, endpoint=endpoint, static_folder=static_folder
- )
- self._add_permission(baseview)
- self.add_limits(baseview)
+ self.register_blueprint(
+ baseview, endpoint=endpoint, static_folder=static_folder
+ )
+ self._add_permission(baseview)
+ self.add_limits(baseview)
else:
log.warning(LOGMSG_WAR_FAB_VIEW_EXISTS, baseview.__class__.__name__)
return baseview
@@ -613,7 +601,7 @@ def security_converge(self, dry: bool = False) -> Dict[str, Any]:
return {}
return self.sm.security_converge(self.baseviews, self.menu.menu, dry)
- def get_url_for_login_with(self, next_url: str = None) -> str:
+ def get_url_for_login_with(self, next_url: str | None = None) -> str:
if self.sm.auth_view is None:
return ""
return url_for("%s.%s" % (self.sm.auth_view.endpoint, "login"), next=next_url)
@@ -702,7 +690,7 @@ def register_blueprint(
endpoint: Optional[str] = None,
static_folder: Optional[str] = None,
) -> None:
- self.get_app.register_blueprint(
+ current_app.register_blueprint(
baseview.create_blueprint(
self, endpoint=endpoint, static_folder=static_folder
)
diff --git a/flask_appbuilder/baseviews.py b/flask_appbuilder/baseviews.py
index ad1dc73795..6acef70ea3 100644
--- a/flask_appbuilder/baseviews.py
+++ b/flask_appbuilder/baseviews.py
@@ -15,20 +15,23 @@
session,
url_for,
)
-
-from ._compat import as_unicode
-from .actions import ActionItem
-from .const import PERMISSION_PREFIX
-from .forms import GeneralModelConverter
-from .hooks import get_before_request_hooks, wrap_route_handler_with_hooks
-from .urltools import (
+from flask_appbuilder._compat import as_unicode
+from flask_appbuilder.actions import ActionItem
+from flask_appbuilder.const import PERMISSION_PREFIX
+from flask_appbuilder.forms import GeneralModelConverter
+from flask_appbuilder.hooks import (
+ get_before_request_hooks,
+ wrap_route_handler_with_hooks,
+)
+from flask_appbuilder.urltools import (
get_filter_args,
get_order_args,
get_page_args,
get_page_size_args,
Stack,
)
-from .widgets import FormWidget, ListWidget, SearchWidget, ShowWidget
+from flask_appbuilder.widgets import FormWidget, ListWidget, SearchWidget, ShowWidget
+from flask_babel import lazy_gettext
if TYPE_CHECKING:
from flask_appbuilder.base import AppBuilder
@@ -73,8 +76,8 @@ def wrap(f):
class AbstractViewApi:
appbuilder: "AppBuilder"
base_permissions: Optional[List[str]]
- class_permission_name: str
- endpoint: str
+ class_permission_name: Optional[str]
+ endpoint: Optional[str]
default_view: str
def create_blueprint(
@@ -667,6 +670,21 @@ class BaseCRUDView(BaseModelView):
Customize ModelView overriding this properties
"""
+ """ Messages to display on CRUD Events """
+ add_row_message = lazy_gettext("Added Row")
+ edit_row_message = lazy_gettext("Changed Row")
+ delete_row_message = lazy_gettext("Deleted Row")
+ delete_integrity_error_message = lazy_gettext(
+ "Associated data exists, please delete them first"
+ )
+ add_integrity_error_message = lazy_gettext(
+ "Integrity error, probably unique constraint"
+ )
+ edit_integrity_error_message = lazy_gettext(
+ "Integrity error, probably unique constraint"
+ )
+ database_error_message = lazy_gettext("Database Error")
+
related_views = None
"""
List with ModelView classes
@@ -1227,9 +1245,12 @@ def _add(self):
except Exception as e:
flash(str(e), "danger")
else:
- if self.datamodel.add(item):
+ try:
+ self.datamodel.add(item)
self.post_add(item)
- flash(*self.datamodel.message)
+ flash(self.add_row_message, "success")
+ except Exception as e:
+ flash(str(e))
finally:
return None
else:
@@ -1271,9 +1292,12 @@ def _edit(self, pk):
except Exception as e:
flash(str(e), "danger")
else:
- if self.datamodel.edit(item):
+ try:
+ self.datamodel.edit(item)
self.post_update(item)
- flash(*self.datamodel.message)
+ flash(self.edit_row_message, "success")
+ except Exception:
+ flash(self.database_error_message, "danger")
finally:
return None
else:
@@ -1313,9 +1337,12 @@ def _delete(self, pk):
except Exception as e:
flash(str(e), "danger")
else:
- if self.datamodel.delete(item):
+ try:
+ self.datamodel.delete(item)
self.post_delete(item)
- flash(*self.datamodel.message)
+ flash(self.delete_row_message, "success")
+ except Exception as e:
+ flash(str(e))
self.update_redirect()
"""
@@ -1376,9 +1403,7 @@ def is_get_mutation_allowed(self) -> bool:
"""
if current_app.config.get("FAB_ALLOW_GET_UNSAFE_MUTATIONS", False):
return True
- return not (
- request.method == "GET" and self.appbuilder.app.extensions.get("csrf")
- )
+ return not (request.method == "GET" and current_app.extensions.get("csrf"))
def prefill_form(self, form, pk):
"""
diff --git a/flask_appbuilder/cli.py b/flask_appbuilder/cli.py
index 5823039bfa..e1134bd5fe 100644
--- a/flask_appbuilder/cli.py
+++ b/flask_appbuilder/cli.py
@@ -1,7 +1,9 @@
+from __future__ import annotations
+
from io import BytesIO
import os
import shutil
-from typing import Optional, Union
+from typing import Any, Optional, Union
from urllib.request import urlopen
from zipfile import ZipFile
@@ -14,7 +16,7 @@
SQLA_REPO_URL = (
- "https://github.com/dpgaspar/Flask-AppBuilder-Skeleton/archive/master.zip"
+ "https://github.com/dpgaspar/Flask-AppBuilder-Skeleton/archive/refs/heads/v5.zip"
)
MONGOENGIE_REPO_URL = (
"https://github.com/dpgaspar/Flask-AppBuilder-Skeleton-me/archive/master.zip"
@@ -26,18 +28,18 @@
MIN_SECRET_KEY_SIZE = 20
-def validate_secret_key(ctx, param, value):
+def validate_secret_key(ctx: click.Context, param: click.Option, value: str) -> str:
if len(value) < MIN_SECRET_KEY_SIZE:
raise click.BadParameter(f"SECRET_KEY size is less then {MIN_SECRET_KEY_SIZE}")
return value
-def echo_header(title):
+def echo_header(title: str) -> None:
click.echo(click.style(title, fg="green"))
click.echo(click.style("-" * len(title), fg="green"))
-def cast_int_like_to_int(cli_arg: Union[None, str, int]) -> Union[None, str, int]:
+def cast_int_like_to_int(cli_arg: Any) -> Union[None, str, int]:
"""Cast int-like objects to int if possible
If the arg cannot be cast to an integer, return the unmodified object instead."""
@@ -53,7 +55,7 @@ def cast_int_like_to_int(cli_arg: Union[None, str, int]) -> Union[None, str, int
@click.group()
-def fab():
+def fab() -> None:
"""FAB flask group commands"""
pass
@@ -65,7 +67,9 @@ def fab():
@click.option("--email", default="admin@fab.org", prompt="Email")
@click.password_option()
@with_appcontext
-def create_admin(username, firstname, lastname, email, password):
+def create_admin(
+ username: str, firstname: str, lastname: str, email: str, password: str
+) -> None:
"""
Creates an admin user
"""
@@ -101,7 +105,7 @@ def create_admin(username, firstname, lastname, email, password):
if user:
click.echo(click.style("Admin User {0} created.".format(username), fg="green"))
else:
- click.echo(click.style("No user created an error occured", fg="red"))
+ click.echo(click.style("No user created an error occurred", fg="red"))
@fab.command("create-user")
@@ -112,7 +116,9 @@ def create_admin(username, firstname, lastname, email, password):
@click.option("--email", prompt="Email")
@click.password_option()
@with_appcontext
-def create_user(role, username, firstname, lastname, email, password):
+def create_user(
+ role: str, username: str, firstname: str, lastname: str, email: str, password: str
+) -> None:
"""
Create a user
"""
@@ -146,7 +152,7 @@ def create_user(role, username, firstname, lastname, email, password):
)
@click.password_option()
@with_appcontext
-def reset_password(username, password):
+def reset_password(username: str, password: str) -> None:
"""
Resets a user's password
"""
@@ -160,13 +166,13 @@ def reset_password(username, password):
@fab.command("create-db")
@with_appcontext
-def create_db():
+def create_db() -> None:
"""
Create all your database objects (SQLAlchemy specific).
"""
from flask_appbuilder.models.sqla import Model
- engine = current_app.appbuilder.get_session.get_bind(mapper=None, clause=None)
+ engine = current_app.appbuilder.session.get_bind(mapper=None, clause=None)
Model.metadata.create_all(engine)
click.echo(click.style("DB objects created", fg="green"))
@@ -196,7 +202,7 @@ def import_roles(path: str) -> None:
@fab.command("version")
@with_appcontext
-def version():
+def version() -> None:
"""
Flask-AppBuilder package version
"""
@@ -211,7 +217,7 @@ def version():
@fab.command("security-cleanup")
@with_appcontext
-def security_cleanup():
+def security_cleanup() -> None:
"""
Cleanup unused permissions from views and roles.
"""
@@ -224,7 +230,7 @@ def security_cleanup():
"--dry-run", "-d", is_flag=True, help="Dry run & print state transitions."
)
@with_appcontext
-def security_converge(dry_run=False):
+def security_converge(dry_run: bool = False) -> None:
"""
Converges security deletes previous_class_permission_name
"""
@@ -249,7 +255,7 @@ def security_converge(dry_run=False):
@fab.command("create-permissions")
@with_appcontext
-def create_permissions():
+def create_permissions() -> None:
"""
Creates all permissions and add them to the ADMIN Role.
"""
@@ -259,7 +265,7 @@ def create_permissions():
@fab.command("list-views")
@with_appcontext
-def list_views():
+def list_views() -> None:
"""
List all registered views
"""
@@ -274,7 +280,7 @@ def list_views():
@fab.command("list-users")
@with_appcontext
-def list_users():
+def list_users() -> None:
"""
List all users on the database
"""
@@ -316,7 +322,7 @@ def create_app(name: str, engine: str, secret_key: str) -> None:
try:
if engine.lower() == "sqlalchemy":
url = urlopen(SQLA_REPO_URL)
- dirname = "Flask-AppBuilder-Skeleton-master"
+ dirname = "Flask-AppBuilder-Skeleton-5"
elif engine.lower() == "mongoengine":
url = urlopen(MONGOENGIE_REPO_URL)
dirname = "Flask-AppBuilder-Skeleton-me-master"
@@ -332,7 +338,6 @@ def create_app(name: str, engine: str, secret_key: str) -> None:
fd.write(rendered_template)
click.echo(click.style("Downloaded the skeleton app, good coding!", fg="green"))
- return True
except Exception as e:
click.echo(click.style("Something went wrong {0}".format(e), fg="red"))
if engine.lower() == "sqlalchemy":
@@ -347,7 +352,6 @@ def create_app(name: str, engine: str, secret_key: str) -> None:
"Try downloading from {0}".format(MONGOENGIE_REPO_URL), fg="green"
)
)
- return False
@fab.command("create-addon")
@@ -356,7 +360,7 @@ def create_app(name: str, engine: str, secret_key: str) -> None:
prompt="Your new addon name",
help="Your addon name will be prefixed by fab_addon_, directory will have this name",
)
-def create_addon(name):
+def create_addon(name: str) -> None:
"""
Create a Skeleton AddOn (needs internet connection to github)
"""
@@ -376,17 +380,15 @@ def create_addon(name):
click.echo(
click.style("Downloaded the skeleton addon, good coding!", fg="green")
)
- return True
except Exception as e:
click.echo(click.style("Something went wrong {0}".format(e), fg="red"))
- return False
@fab.command("collect-static")
@click.option(
"--static_folder", default="app/static", help="Your projects static folder"
)
-def collect_static(static_folder):
+def collect_static(static_folder: str) -> None:
"""
Copies flask-appbuilder static files to your projects static folder
"""
@@ -422,7 +424,9 @@ def collect_static(static_folder):
@click.option(
"--keywords", "-k", multiple=True, default=["lazy_gettext", "gettext", "_", "__"]
)
-def babel_extract(config, input, output, target, keywords):
+def babel_extract(
+ config: str, input: str, output: str, target: str, keywords: list[str]
+) -> None:
"""
Babel, Extracts and updates all messages marked for translation
"""
@@ -434,10 +438,10 @@ def babel_extract(config, input, output, target, keywords):
fg="green",
)
)
- keywords = " -k ".join(keywords)
+ keywords_args = " -k ".join(keywords)
os.popen(
"pybabel extract -F {0} -k {1} -o {2} {3}".format(
- config, keywords, output, input
+ config, keywords_args, output, input
)
)
click.echo(click.style("Starting Update target:{0}".format(target), fg="green"))
@@ -451,7 +455,7 @@ def babel_extract(config, input, output, target, keywords):
default="app/translations",
help="The target directory where translations reside",
)
-def babel_compile(target):
+def babel_compile(target: str) -> None:
"""
Babel, Compiles all translations
"""
diff --git a/flask_appbuilder/console.py b/flask_appbuilder/console.py
deleted file mode 100644
index cd10679778..0000000000
--- a/flask_appbuilder/console.py
+++ /dev/null
@@ -1,426 +0,0 @@
-"""
- Console utility to help manage F.A.B's apps
-
- use:
-
- $ fabmanager --help
-"""
-from io import BytesIO
-import os
-import shutil
-import sys
-from zipfile import ZipFile
-
-import click
-
-from . import const as c
-
-try:
- # For Python 3.0 and later
- from urllib.request import urlopen
-except ImportError:
- # Fall back to Python 2's urllib2
- from urllib2 import urlopen
-
-click.echo(
- click.style(
- "fabmanager is going to be deprecated in 2.2.X, you can use "
- "the same commands on the improved 'flask fab '",
- fg="red",
- )
-)
-
-SQLA_REPO_URL = (
- "https://github.com/dpgaspar/Flask-AppBuilder-Skeleton/archive/master.zip"
-)
-MONGOENGIE_REPO_URL = (
- "https://github.com/dpgaspar/Flask-AppBuilder-Skeleton-me/archive/master.zip"
-)
-ADDON_REPO_URL = (
- "https://github.com/dpgaspar/Flask-AppBuilder-Skeleton-AddOn/archive/master.zip"
-)
-
-
-def import_application(app_package, appbuilder):
- sys.path.append(os.getcwd())
- try:
- _app = __import__(app_package)
- except Exception as e:
- click.echo(
- click.style(
- "Was unable to import {0} Error: {1}".format(app_package, e), fg="red"
- )
- )
- exit(3)
- if hasattr(_app, appbuilder):
- return getattr(_app, appbuilder)
- else:
- click.echo(
- click.style(
- "There is no appbuilder var on your package, "
- "you can use appbuilder parameter to config",
- fg="red",
- )
- )
- exit(3)
-
-
-def echo_header(title):
- click.echo(click.style(title, fg="green"))
- click.echo(click.style("-" * len(title), fg="green"))
-
-
-@click.group()
-def cli_app():
- """
- This is a set of commands to ease the creation and maintenance
- of your flask-appbuilder applications.
-
- All commands that import your app will assume by default that
- you're running on your projects directory just before the app directory.
- They will also assume that __init__.py initializes AppBuilder
- like this (using a var named appbuilder) just like the skeleton app::
-
- appbuilder = AppBuilder(......)
-
- If you're using different namings use app and appbuilder parameters.
- """
- pass
-
-
-@cli_app.command("reset-password")
-@click.option("--app", default="app", help="Your application init directory (package)")
-@click.option("--appbuilder", default="appbuilder", help="your AppBuilder object")
-@click.option(
- "--username",
- default="admin",
- prompt="The username",
- help="Resets the password for a particular user.",
-)
-@click.password_option()
-def reset_password(app, appbuilder, username, password):
- """
- Resets a user's password
- """
- _appbuilder = import_application(app, appbuilder)
- user = _appbuilder.sm.find_user(username=username)
- if not user:
- click.echo("User {0} not found.".format(username))
- else:
- _appbuilder.sm.reset_password(user.id, password)
- click.echo(click.style("User {0} reseted.".format(username), fg="green"))
-
-
-@cli_app.command("create-admin")
-@click.option("--app", default="app", help="Your application init directory (package)")
-@click.option("--appbuilder", default="appbuilder", help="your AppBuilder object")
-@click.option("--username", default="admin", prompt="Username")
-@click.option("--firstname", default="admin", prompt="User first name")
-@click.option("--lastname", default="user", prompt="User last name")
-@click.option("--email", default="admin@fab.org", prompt="Email")
-@click.password_option()
-def create_admin(app, appbuilder, username, firstname, lastname, email, password):
- """
- Creates an admin user
- """
- auth_type = {
- c.AUTH_DB: "Database Authentications",
- c.AUTH_OID: "OpenID Authentication",
- c.AUTH_LDAP: "LDAP Authentication",
- c.AUTH_REMOTE_USER: "WebServer REMOTE_USER Authentication",
- c.AUTH_OAUTH: "OAuth Authentication",
- }
- _appbuilder = import_application(app, appbuilder)
- click.echo(
- click.style(
- "Recognized {0}.".format(
- auth_type.get(_appbuilder.sm.auth_type, "No Auth method")
- ),
- fg="green",
- )
- )
- role_admin = _appbuilder.sm.find_role(_appbuilder.sm.auth_role_admin)
- user = _appbuilder.sm.add_user(
- username, firstname, lastname, email, role_admin, password
- )
- if user:
- click.echo(click.style("Admin User {0} created.".format(username), fg="green"))
- else:
- click.echo(click.style("No user created an error occured", fg="red"))
-
-
-@cli_app.command("create-user")
-@click.option("--app", default="app", help="Your application init directory (package)")
-@click.option("--appbuilder", default="appbuilder", help="your AppBuilder object")
-@click.option("--role", default="Public", prompt="Role")
-@click.option("--username", prompt="Username")
-@click.option("--firstname", prompt="User first name")
-@click.option("--lastname", prompt="User last name")
-@click.option("--email", prompt="Email")
-@click.password_option()
-def create_user(app, appbuilder, role, username, firstname, lastname, email, password):
- """
- Create a user
- """
- _appbuilder = import_application(app, appbuilder)
- role_object = _appbuilder.sm.find_role(role)
- user = _appbuilder.sm.add_user(
- username, firstname, lastname, email, role_object, password
- )
- if user:
- click.echo(click.style("User {0} created.".format(username), fg="green"))
- else:
- click.echo(click.style("Error! No user created", fg="red"))
-
-
-@cli_app.command("run")
-@click.option("--app", default="app", help="Your application init directory (package)")
-@click.option("--appbuilder", default="appbuilder", help="your AppBuilder object")
-@click.option("--host", default="0.0.0.0")
-@click.option("--port", default=8080)
-@click.option("--debug", default=True)
-def run(app, appbuilder, host, port, debug):
- """
- Runs Flask dev web server.
- """
- _appbuilder = import_application(app, appbuilder)
- _appbuilder.get_app.run(host=host, port=port, debug=debug)
-
-
-@cli_app.command("create-db")
-@click.option("--app", default="app", help="Your application init directory (package)")
-@click.option("--appbuilder", default="appbuilder", help="your AppBuilder object")
-def create_db(app, appbuilder):
- """
- Create all your database objects (SQLAlchemy specific).
- """
- from flask_appbuilder.models.sqla import Base
-
- _appbuilder = import_application(app, appbuilder)
- engine = _appbuilder.get_session.get_bind(mapper=None, clause=None)
- Base.metadata.create_all(engine)
- click.echo(click.style("DB objects created", fg="green"))
-
-
-@cli_app.command("version")
-@click.option("--app", default="app", help="Your application init directory (package)")
-@click.option("--appbuilder", default="appbuilder", help="your AppBuilder object")
-def version(app, appbuilder):
- """
- Flask-AppBuilder package version
- """
- _appbuilder = import_application(app, appbuilder)
- click.echo(
- click.style(
- "F.A.B Version: {0}.".format(_appbuilder.version), bg="blue", fg="white"
- )
- )
-
-
-@cli_app.command("security-cleanup")
-@click.option("--app", default="app", help="Your application init directory (package)")
-@click.option("--appbuilder", default="appbuilder", help="your AppBuilder object")
-def security_cleanup(app, appbuilder):
- """
- Cleanup unused permissions from views and roles.
- """
- _appbuilder = import_application(app, appbuilder)
- _appbuilder.security_cleanup()
- click.echo(click.style("Finished security cleanup", fg="green"))
-
-
-@cli_app.command("list-views")
-@click.option("--app", default="app", help="Your application init directory (package)")
-@click.option("--appbuilder", default="appbuilder", help="your AppBuilder object")
-def list_views(app, appbuilder):
- """
- List all registered views
- """
- _appbuilder = import_application(app, appbuilder)
- echo_header("List of registered views")
- for view in _appbuilder.baseviews:
- click.echo(
- "View:{0} | Route:{1} | Perms:{2}".format(
- view.__class__.__name__, view.route_base, view.base_permissions
- )
- )
-
-
-@cli_app.command("list-users")
-@click.option("--app", default="app", help="Your application init directory (package)")
-@click.option("--appbuilder", default="appbuilder", help="your AppBuilder object")
-def list_users(app, appbuilder):
- """
- List all users on the database
- """
- _appbuilder = import_application(app, appbuilder)
- echo_header("List of users")
- for user in _appbuilder.sm.get_all_users():
- click.echo(
- "username:{0} | email:{1} | role:{2}".format(
- user.username, user.email, user.roles
- )
- )
-
-
-@cli_app.command("babel-extract")
-@click.option("--config", default="./babel/babel.cfg")
-@click.option("--input", default=".")
-@click.option("--output", default="./babel/messages.pot")
-@click.option("--target", default="app/translations")
-@click.option(
- "--keywords", "-k", multiple=True, default=["lazy_gettext", "gettext", "_", "__"]
-)
-def babel_extract(config, input, output, target, keywords):
- """
- Babel, Extracts and updates all messages marked for translation
- """
- click.echo(
- click.style(
- "Starting Extractions config:{0} input:{1} output:{2} keywords:{3}".format(
- config, input, output, keywords
- ),
- fg="green",
- )
- )
- keywords = " -k ".join(keywords)
- os.popen(
- "pybabel extract -F {0} -k {1} -o {2} {3}".format(
- config, keywords, output, input
- )
- )
- click.echo(click.style("Starting Update target:{0}".format(target), fg="green"))
- os.popen("pybabel update -N -i {0} -d {1}".format(output, target))
- click.echo(click.style("Finish, you can start your translations", fg="green"))
-
-
-@cli_app.command("babel-compile")
-@click.option(
- "--target",
- default="app/translations",
- help="The target directory where translations reside",
-)
-def babel_compile(target):
- """
- Babel, Compiles all translations
- """
- click.echo(click.style("Starting Compile target:{0}".format(target), fg="green"))
- os.popen("pybabel compile -f -d {0}".format(target))
-
-
-@cli_app.command("create-app")
-@click.option(
- "--name",
- prompt="Your new app name",
- help="Your application name, directory will have this name",
-)
-@click.option(
- "--engine",
- prompt="Your engine type, SQLAlchemy or MongoEngine",
- type=click.Choice(["SQLAlchemy", "MongoEngine"]),
- default="SQLAlchemy",
- help="Write your engine type",
-)
-def create_app(name, engine):
- """
- Create a Skeleton application (needs internet connection to github)
- """
- try:
- if engine.lower() == "sqlalchemy":
- url = urlopen(SQLA_REPO_URL)
- dirname = "Flask-AppBuilder-Skeleton-master"
- elif engine.lower() == "mongoengine":
- url = urlopen(MONGOENGIE_REPO_URL)
- dirname = "Flask-AppBuilder-Skeleton-me-master"
- zipfile = ZipFile(BytesIO(url.read()))
- zipfile.extractall()
- os.rename(dirname, name)
- click.echo(click.style("Downloaded the skeleton app, good coding!", fg="green"))
- return True
- except Exception as e:
- click.echo(click.style("Something went wrong {0}".format(e), fg="red"))
- if engine.lower() == "sqlalchemy":
- click.echo(
- click.style(
- "Try downloading from {0}".format(SQLA_REPO_URL), fg="green"
- )
- )
- elif engine.lower() == "mongoengine":
- click.echo(
- click.style(
- "Try downloading from {0}".format(MONGOENGIE_REPO_URL), fg="green"
- )
- )
- return False
-
-
-@cli_app.command("create-addon")
-@click.option(
- "--name",
- prompt="Your new addon name",
- help="Your addon name will be prefixed by fab_addon_, directory will have this name",
-)
-def create_addon(name):
- """
- Create a Skeleton AddOn (needs internet connection to github)
- """
- try:
- full_name = "fab_addon_" + name
- dirname = "Flask-AppBuilder-Skeleton-AddOn-master"
- url = urlopen(ADDON_REPO_URL)
- zipfile = ZipFile(BytesIO(url.read()))
- zipfile.extractall()
- os.rename(dirname, full_name)
- addon_path = os.path.join(full_name, full_name)
- os.rename(os.path.join(full_name, "fab_addon"), addon_path)
- f = open(os.path.join(full_name, "config.py"), "w")
- f.write("ADDON_NAME='" + name + "'\n")
- f.write("FULL_ADDON_NAME='fab_addon_' + ADDON_NAME\n")
- f.close()
- click.echo(
- click.style("Downloaded the skeleton addon, good coding!", fg="green")
- )
- return True
- except Exception as e:
- click.echo(click.style("Something went wrong {0}".format(e), fg="red"))
- return False
-
-
-@cli_app.command("collect-static")
-@click.option(
- "--static_folder", default="app/static", help="Your projects static folder"
-)
-def collect_static(static_folder):
- """
- Copies flask-appbuilder static files to your projects static folder
- """
- appbuilder_static_path = os.path.join(
- os.path.dirname(os.path.abspath(__file__)), "static/appbuilder"
- )
- app_static_path = os.path.join(os.getcwd(), static_folder)
- if not os.path.isdir(app_static_path):
- click.echo(
- click.style(
- "Static folder does not exist creating: %s" % app_static_path,
- fg="green",
- )
- )
- os.makedirs(app_static_path)
- try:
- shutil.copytree(
- appbuilder_static_path, os.path.join(app_static_path, "appbuilder")
- )
- except Exception:
- click.echo(
- click.style(
- "Appbuilder static folder already exists on your project", fg="red"
- )
- )
-
-
-def cli():
- cli_app()
-
-
-if __name__ == "__main__":
- cli_app()
diff --git a/flask_appbuilder/const.py b/flask_appbuilder/const.py
index 3216be0c04..5b8eae8dc8 100644
--- a/flask_appbuilder/const.py
+++ b/flask_appbuilder/const.py
@@ -102,12 +102,6 @@
LOGMSG_ERR_FAB_ADD_PERMISSION_VIEW = "Add Permission on View Error: %s"
""" Error when adding a permission to a menu, format with err """
-LOGMSG_ERR_DBI_ADD_GENERIC = "Add record error: %s"
-""" Database add generic error, format with err message """
-LOGMSG_ERR_DBI_EDIT_GENERIC = "Edit record error: %s"
-""" Database edit generic error, format with err message """
-LOGMSG_ERR_DBI_DEL_GENERIC = "Delete record error: %s"
-""" Database delete generic error, format with err message """
LOGMSG_WAR_DBI_AVG_ZERODIV = "Zero division on aggregate_avg"
LOGMSG_WAR_FAB_VIEW_EXISTS = "View already exists %s ignoring"
diff --git a/flask_appbuilder/exceptions.py b/flask_appbuilder/exceptions.py
index 9a34d174e7..51b79337b6 100644
--- a/flask_appbuilder/exceptions.py
+++ b/flask_appbuilder/exceptions.py
@@ -16,6 +16,10 @@ def __str__(self):
)
+class DatabaseException(FABException):
+ """Database related exception"""
+
+
class InvalidColumnFilterFABException(FABException):
"""Invalid column for filter"""
@@ -34,12 +38,6 @@ class InvalidOrderByColumnFABException(FABException):
...
-class InterfaceQueryWithoutSession(FABException):
- """You need to setup a session on the interface to perform queries"""
-
- ...
-
-
class PasswordComplexityValidationError(FABException):
"""Raise this when implementing your own password complexity function"""
diff --git a/flask_appbuilder/extensions.py b/flask_appbuilder/extensions.py
new file mode 100644
index 0000000000..3d28bd5abc
--- /dev/null
+++ b/flask_appbuilder/extensions.py
@@ -0,0 +1,3 @@
+from flask_appbuilder.models.sqla.base import SQLA
+
+db = SQLA()
diff --git a/flask_appbuilder/forms.py b/flask_appbuilder/forms.py
index 578b4a7230..62d002f131 100644
--- a/flask_appbuilder/forms.py
+++ b/flask_appbuilder/forms.py
@@ -39,7 +39,7 @@
log = logging.getLogger(__name__)
-class FieldConverter(object):
+class FieldConverter:
"""
Helper class that converts model fields into WTForm fields
@@ -107,7 +107,7 @@ def convert(self):
log.error("Column %s Type not supported", self.colname)
-class GeneralModelConverter(object):
+class GeneralModelConverter:
"""
Returns a form from a model only one public exposed
method 'create_form'
diff --git a/flask_appbuilder/menu.py b/flask_appbuilder/menu.py
index 9c86be9b96..f537d3cd70 100644
--- a/flask_appbuilder/menu.py
+++ b/flask_appbuilder/menu.py
@@ -238,5 +238,5 @@ def get_menu_data(self):
class MenuApiManager(BaseManager):
def register_views(self):
- if self.appbuilder.app.config.get("FAB_ADD_MENU_API", True):
+ if current_app.config.get("FAB_ADD_MENU_API", True):
self.appbuilder.add_api(MenuApi)
diff --git a/flask_appbuilder/models/base.py b/flask_appbuilder/models/base.py
index 3d42730382..d87e3ad9be 100644
--- a/flask_appbuilder/models/base.py
+++ b/flask_appbuilder/models/base.py
@@ -3,9 +3,7 @@
import logging
from typing import Any, Type
-from flask_babel import lazy_gettext
-
-from .filters import BaseFilterConverter, Filters
+from flask_appbuilder.models.filters import BaseFilterConverter, Filters
try:
import enum
@@ -26,26 +24,6 @@ class BaseInterface:
filter_converter_class = Type[BaseFilterConverter]
""" when sub classing override with your own custom filter converter """
- """ Messages to display on CRUD Events """
- add_row_message = lazy_gettext("Added Row")
- edit_row_message = lazy_gettext("Changed Row")
- delete_row_message = lazy_gettext("Deleted Row")
- delete_integrity_error_message = lazy_gettext(
- "Associated data exists, please delete them first"
- )
- add_integrity_error_message = lazy_gettext(
- "Integrity error, probably unique constraint"
- )
- edit_integrity_error_message = lazy_gettext(
- "Integrity error, probably unique constraint"
- )
- general_error_message = lazy_gettext("General Error")
-
- database_error_message = lazy_gettext("Database Error")
-
- """ Tuple with message and text with severity type ex: ("Added Row", "info") """
- message = ()
-
def __init__(self, obj: Type[Any]):
self.obj = obj
@@ -264,25 +242,25 @@ def get_min_length(self, col_name):
-----------------------------------------
"""
- def add(self, item):
+ def add(self, item: Any, commit: bool = True) -> None:
"""
Adds object
"""
raise NotImplementedError
- def edit(self, item):
+ def edit(self, item: Any, commit: bool = True) -> None:
"""
Edit (change) object
"""
raise NotImplementedError
- def delete(self, item):
+ def delete(self, item: Any, commit: bool = True) -> None:
"""
Deletes object
"""
raise NotImplementedError
- def get_col_default(self, col_name):
+ def get_col_default(self, col_name: str):
pass
def get_keys(self, lst):
diff --git a/flask_appbuilder/models/filters.py b/flask_appbuilder/models/filters.py
index 5aaaf6b75e..4c4effc54f 100644
--- a/flask_appbuilder/models/filters.py
+++ b/flask_appbuilder/models/filters.py
@@ -14,7 +14,7 @@
""" private map for arg_name and child Filter classes """
-class BaseFilter(object):
+class BaseFilter:
"""
Base class for all data filters.
Sub class to implement your own custom filters
diff --git a/flask_appbuilder/models/mixins.py b/flask_appbuilder/models/mixins.py
index 21684837d5..4559ce66a1 100644
--- a/flask_appbuilder/models/mixins.py
+++ b/flask_appbuilder/models/mixins.py
@@ -33,7 +33,7 @@ def __init__(self, thumbnail_size=(20, 20, True), size=(100, 100, True), **kw):
self.size = size
-class AuditMixin(object):
+class AuditMixin:
"""
AuditMixin
Mixin for models, adds 4 columns to stamp,
@@ -62,8 +62,10 @@ def created_by_fk(cls):
@declared_attr
def created_by(cls):
+ from flask_appbuilder.security.sqla.models import User
+
return relationship(
- "User",
+ User,
primaryjoin="%s.created_by_fk == User.id" % cls.__name__,
enable_typechecks=False,
)
@@ -80,8 +82,10 @@ def changed_by_fk(cls):
@declared_attr
def changed_by(cls):
+ from flask_appbuilder.security.sqla.models import User
+
return relationship(
- "User",
+ User,
primaryjoin="%s.changed_by_fk == User.id" % cls.__name__,
enable_typechecks=False,
)
diff --git a/flask_appbuilder/models/sqla/__init__.py b/flask_appbuilder/models/sqla/__init__.py
index c8838ddd58..19ba98e861 100644
--- a/flask_appbuilder/models/sqla/__init__.py
+++ b/flask_appbuilder/models/sqla/__init__.py
@@ -1,109 +1,16 @@
-import datetime
-import logging
-import re
-
-from flask_sqlalchemy import (
- _QueryProperty,
- DefaultMeta,
- get_state,
- SessionBase,
- SignallingSession,
- SQLAlchemy,
-)
-from sqlalchemy import orm
-
-try:
- from sqlalchemy.ext.declarative import as_declarative
-except ImportError:
- from sqlalchemy.ext.declarative.api import as_declarative
-
-try:
- from sqlalchemy.orm.util import identity_key # noqa
-
- has_identity_key = True
-except ImportError:
- has_identity_key = False
-
-log = logging.getLogger(__name__)
-
-_camelcase_re = re.compile(r"([A-Z]+)(?=[a-z0-9])")
-
+from __future__ import annotations
-class CustomSignallingSession(SignallingSession):
- """
- Custom Signaling Session to support SQLALchemy>=1.4 with flask-sqlalchemy 2.X
- https://github.com/pallets/flask-sqlalchemy/issues/953
- """
-
- def get_bind(self, mapper=None, *args, **kwargs):
- """Return the engine or connection for a given model or
- table, using the ``__bind_key__`` if it is set.
-
- Patch from https://github.com/pallets/flask-sqlalchemy/pull/1001
- """
- # mapper is None if someone tries to just get a connection
- if mapper is not None:
- try:
- # SA >= 1.3
- persist_selectable = mapper.persist_selectable
- except AttributeError:
- # SA < 1.3
- persist_selectable = mapper.mapped_table
- info = getattr(persist_selectable, "info", {})
- bind_key = info.get("bind_key")
- if bind_key is not None:
- state = get_state(self.app)
- return state.db.get_engine(self.app, bind=bind_key)
- return SessionBase.get_bind(self, mapper, *args, **kwargs)
-
-
-class SQLA(SQLAlchemy):
- """
- This is a child class of flask_SQLAlchemy
- It's purpose is to override the declarative base of the original
- package. So that it is bound to F.A.B. Model class allowing the dev
- to be in the same namespace of the security tables (and others)
- and can use AuditMixin class alike.
-
- Use it and configure it just like flask_SQLAlchemy
- """
-
- def make_declarative_base(self, model, metadata=None):
- base = Model
- base.query = _QueryProperty(self)
- return base
-
- def get_tables_for_bind(self, bind=None):
- """Returns a list of all tables relevant for a bind."""
- result = []
- tables = Model.metadata.tables
- for key in tables:
- if tables[key].info.get("bind_key") == bind:
- result.append(tables[key])
- return result
-
- def create_session(self, options):
- """
- Custom Session factory to support SQLALchemy>=1.4 with flask-sqlalchemy 2.X
-
- https://github.com/pallets/flask-sqlalchemy/issues/953
+import datetime
+from typing import Any
- :param options: dict of keyword arguments passed to session class
- """
+from flask_appbuilder.extensions import db
+from sqlalchemy.orm import DeclarativeMeta
- return orm.sessionmaker(class_=CustomSignallingSession, db=self, **options)
+BaseModel: DeclarativeMeta = db.Model
-class ModelDeclarativeMeta(DefaultMeta):
- """
- Base Model declarative meta for all Models definitions.
- Setups bind_keys to support multiple databases.
- Setup the table name based on the class camelcase name.
- """
-
-
-@as_declarative(name="Model", metaclass=ModelDeclarativeMeta)
-class Model(object):
+class Model(BaseModel):
+ __abstract__ = True
"""
Use this class has the base for your models,
it will define your table names automatically
@@ -122,17 +29,11 @@ class MyModel(Model):
__table_args__ = {"extend_existing": True}
- def to_json(self):
- result = dict()
+ def to_json(self) -> dict[str, Any]:
+ result = {}
for key in self.__mapper__.c.keys():
col = getattr(self, key)
- if isinstance(col, datetime.datetime) or isinstance(col, datetime.date):
+ if isinstance(col, (datetime.datetime, datetime.date)):
col = col.isoformat()
result[key] = col
return result
-
-
-"""
- This is for retro compatibility
-"""
-Base = Model
diff --git a/flask_appbuilder/models/sqla/base.py b/flask_appbuilder/models/sqla/base.py
new file mode 100644
index 0000000000..ae4c8058bb
--- /dev/null
+++ b/flask_appbuilder/models/sqla/base.py
@@ -0,0 +1,31 @@
+from __future__ import annotations
+
+from flask import Flask
+from flask_sqlalchemy import SQLAlchemy
+from sqlalchemy.engine import Connection, Engine
+from sqlalchemy.sql.schema import Table
+
+
+class SQLA(SQLAlchemy):
+ """
+ This is a child class of flask_SQLAlchemy
+ It's purpose is to override the declarative base of the original
+ package. So that it is bound to F.A.B. Model class allowing the dev
+ to be in the same namespace of the security tables (and others)
+ and can use AuditMixin class alike.
+
+ Configure just like flask_sqlalchemy SQLAlchemy
+ """
+
+ def init_app(self, app: Flask) -> None:
+ session_options = app.config.get("SQLALCHEMY_SESSION_OPTIONS", {})
+ if session_options:
+ self.session = self._make_scoped_session(session_options)
+ super().init_app(app)
+
+ def get_tables_for_bind(self, bind: Engine | Connection) -> list[Table]:
+ """Returns a list of all tables relevant for a bind."""
+ tables = self.metadata.tables
+ return [
+ table for key, table in tables.items() if table.info.get("bind_key") == bind
+ ]
diff --git a/flask_appbuilder/models/sqla/filters.py b/flask_appbuilder/models/sqla/filters.py
index bf7c9a1ba3..c7ff1e78e5 100644
--- a/flask_appbuilder/models/sqla/filters.py
+++ b/flask_appbuilder/models/sqla/filters.py
@@ -3,6 +3,7 @@
from dateutil import parser
from flask_appbuilder.exceptions import ApplyFilterException
+from flask_appbuilder.extensions import db
from flask_appbuilder.models.filters import (
BaseFilter,
BaseFilterConverter,
@@ -192,11 +193,9 @@ def apply(self, query, value):
try:
rel_obj = self.datamodel.get_related_obj(self.column_name, value)
except SQLAlchemyError as exc:
- logging.warning(
- "Filter exception for %s with value %s, will not apply", field, value
- )
+ logging.warning("Filter exception for %s will not apply", field)
try:
- self.datamodel.session.rollback()
+ db.session.rollback()
except SQLAlchemyError:
# on MSSQL a rollback would fail here
pass
@@ -213,11 +212,9 @@ def apply(self, query, value):
try:
rel_obj = self.datamodel.get_related_obj(self.column_name, value)
except SQLAlchemyError as exc:
- logging.warning(
- "Filter exception for %s with value %s, will not apply", field, value
- )
+ log.warning("Filter exception for %s will not apply", field)
try:
- self.datamodel.session.rollback()
+ db.session.rollback()
except SQLAlchemyError:
# on MSSQL a rollback would fail here
pass
@@ -243,7 +240,7 @@ def apply_item(self, query, field, value_item):
value_item,
)
try:
- self.datamodel.session.rollback()
+ db.session.rollback()
except SQLAlchemyError:
# on MSSQL a rollback would fail here
pass
@@ -252,10 +249,9 @@ def apply_item(self, query, field, value_item):
if rel_obj:
return query.filter(field.contains(rel_obj))
else:
- log.error(
- "Related object for column: %s, value: %s return Null",
+ log.warning(
+ "Related object for column: %s returned Null",
self.column_name,
- value_item,
)
return query
diff --git a/flask_appbuilder/models/sqla/interface.py b/flask_appbuilder/models/sqla/interface.py
index eea96fcc9e..cbbed21032 100644
--- a/flask_appbuilder/models/sqla/interface.py
+++ b/flask_appbuilder/models/sqla/interface.py
@@ -1,16 +1,12 @@
-# -*- coding: utf-8 -*-
+from __future__ import annotations
+
from contextlib import suppress
import logging
-from typing import Any, Dict, List, Optional, Tuple, Type, Union
-
-from flask_appbuilder._compat import as_unicode
-from flask_appbuilder.const import (
- LOGMSG_ERR_DBI_DEL_GENERIC,
- LOGMSG_WAR_DBI_ADD_INTEGRITY,
- LOGMSG_WAR_DBI_DEL_INTEGRITY,
- LOGMSG_WAR_DBI_EDIT_INTEGRITY,
-)
-from flask_appbuilder.exceptions import InterfaceQueryWithoutSession
+from typing import Any, Iterable, Optional, Tuple, Type
+
+from flask import Request
+from flask_appbuilder.exceptions import DatabaseException, FABException
+from flask_appbuilder.extensions import db
from flask_appbuilder.filemanager import FileManager, ImageManager
from flask_appbuilder.models.base import BaseInterface
from flask_appbuilder.models.filters import Filters
@@ -24,15 +20,15 @@
)
from sqlalchemy import asc, desc
from sqlalchemy import types as sa_types
-from sqlalchemy.exc import IntegrityError
+from sqlalchemy.exc import SQLAlchemyError
from sqlalchemy.orm import aliased, class_mapper, ColumnProperty, contains_eager, Load
from sqlalchemy.orm.descriptor_props import SynonymProperty
from sqlalchemy.orm.properties import RelationshipProperty
from sqlalchemy.orm.query import Query
-from sqlalchemy.orm.session import Session as SessionBase
from sqlalchemy.orm.util import AliasedClass
from sqlalchemy.sql import visitors
from sqlalchemy.sql.elements import BinaryExpression
+from sqlalchemy.sql.schema import Column
from sqlalchemy.sql.sqltypes import TypeEngine
from sqlalchemy_utils.types.uuid import UUIDType
@@ -55,11 +51,10 @@ class SQLAInterface(BaseInterface):
filter_converter_class = filters.SQLAFilterConverter
- def __init__(self, obj: Type[Model], session: Optional[SessionBase] = None) -> None:
+ def __init__(self, obj: Type[Model]) -> None:
_include_filters(self)
- self.list_columns = dict()
- self.list_properties = dict()
- self.session = session
+ self.list_columns = {}
+ self.list_properties = {}
# Collect all SQLA columns and properties
for prop in class_mapper(obj).iterate_properties:
if type(prop) != SynonymProperty:
@@ -67,10 +62,10 @@ def __init__(self, obj: Type[Model], session: Optional[SessionBase] = None) -> N
for col_name in obj.__mapper__.columns.keys():
if col_name in self.list_properties:
self.list_columns[col_name] = obj.__mapper__.columns[col_name]
- super(SQLAInterface, self).__init__(obj)
+ super().__init__(obj)
@property
- def model_name(self):
+ def model_name(self) -> str:
"""
Returns the models class name
useful for auto title on views
@@ -112,8 +107,12 @@ def is_model_already_joined(query: Query, model: Type[Model]) -> bool:
return False
def _get_base_query(
- self, query=None, filters=None, order_column="", order_direction=""
- ):
+ self,
+ query: Query,
+ filters: Filters | None = None,
+ order_column: str = "",
+ order_direction: str = "",
+ ) -> str:
if filters:
query = filters.apply_all(query)
return self.apply_order_by(query, order_column, order_direction)
@@ -122,7 +121,7 @@ def _query_join_relation(
self,
query: Query,
root_relation: str,
- aliases_mapping: Dict[str, AliasedClass] = None,
+ aliases_mapping: dict[str, AliasedClass] | None = None,
) -> Query:
"""
Helper function that applies necessary joins for dotted columns on a
@@ -166,7 +165,7 @@ def apply_engine_specific_hack(
page
and page_size
and not order_column
- and self.session.bind.dialect.name == "mssql"
+ and db.session.get_bind().name == "mssql"
):
pk_name = self.get_pk_name()
return query.order_by(pk_name)
@@ -177,7 +176,7 @@ def apply_order_by(
query: Query,
order_column: str,
order_direction: str,
- aliases_mapping: Dict[str, AliasedClass] = None,
+ aliases_mapping: dict[str, AliasedClass] | None = None,
) -> Query:
if order_column != "":
# if Model has custom decorator **renders('')**
@@ -221,23 +220,27 @@ def apply_filters(self, query: Query, filters: Optional[Filters]) -> Query:
def _apply_normal_col_select_option(self, query: Query, column: str) -> Query:
if not self.is_relation(column) and not self.is_property_or_function(column):
- return query.options(Load(self.obj).load_only(column))
+ return query.options(Load(self.obj).load_only(getattr(self.obj, column)))
return query
- def _apply_relation_fks_select_options(self, query: Query, relation_name) -> Query:
+ def _apply_relation_fks_select_options(
+ self, query: Query, relation_name: str
+ ) -> Query:
relation = getattr(self.obj, relation_name)
if hasattr(relation, "property"):
local_cols = getattr(self.obj, relation_name).property.local_columns
for local_fk in local_cols:
- query = query.options(Load(self.obj).load_only(local_fk.name))
+ query = query.options(
+ Load(self.obj).load_only(getattr(self.obj, local_fk.name))
+ )
return query
return query
def apply_inner_select_joins(
self,
query: Query,
- select_columns: List[str] = None,
- aliases_mapping: Dict[str, AliasedClass] = None,
+ select_columns: list[str] | None = None,
+ aliases_mapping: dict[str, AliasedClass] | None = None,
) -> Query:
"""
Add select load options to query. The goal
@@ -286,17 +289,33 @@ def apply_inner_select_joins(
# https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html
query = query.options(
contains_eager(relation.of_type(related_model)).load_only(
- leaf_column
+ getattr(related_model, leaf_column)
)
)
- query = query.options(Load(related_model).load_only(leaf_column))
+ query = query.options(
+ Load(related_model).load_only(getattr(related_model, leaf_column))
+ )
return query
+ def get_outer_query_from_inner_query(
+ self, query: Query, inner_query: Query
+ ) -> Query:
+ subquery = inner_query.subquery()
+ pk = self.get_pk()
+ pk_name = self.get_pk_name()
+ if isinstance(pk_name, str):
+ subquery_pk = getattr(subquery.c, pk_name)
+ return query.join(subquery, pk == subquery_pk)
+ if isinstance(pk_name, Iterable):
+ raise FABException("Composite primary key not supported")
+ raise FABException("No primary key found")
+
def apply_outer_select_joins(
self,
query: Query,
- select_columns: List[str] = None,
+ select_columns: list[str] | None = None,
outer_default_load: bool = False,
+ aliases_mapping: dict[str, AliasedClass] | None = None,
) -> Query:
if not select_columns:
return query
@@ -307,22 +326,30 @@ def apply_outer_select_joins(
continue
root_relation = get_column_root_relation(column)
- leaf_column = get_column_leaf(column)
+ related_model = self.get_related_model(root_relation)
+ leaf_column = getattr(related_model, get_column_leaf(column))
if self.is_relation_many_to_many(
root_relation
) or self.is_relation_one_to_many(root_relation):
if outer_default_load:
query = query.options(
- Load(self.obj).defaultload(root_relation).load_only(leaf_column)
+ Load(self.obj)
+ .defaultload(self.obj, root_relation)
+ .load_only(leaf_column)
)
else:
query = query.options(
- Load(self.obj).joinedload(root_relation).load_only(leaf_column)
+ Load(self.obj)
+ .joinedload(getattr(self.obj, root_relation))
+ .load_only(leaf_column)
)
else:
- related_model = self.get_related_model(root_relation)
- query = query.options(Load(related_model).load_only(leaf_column))
+ query = query.options(
+ Load(self.obj)
+ .joinedload(getattr(self.obj, root_relation))
+ .load_only(leaf_column)
+ )
return query
@@ -349,19 +376,20 @@ def get_inner_filters(self, filters: Optional[Filters]) -> Filters:
inner_filters.add_filter_list(_filters)
return inner_filters
- def exists_col_to_many(self, select_columns: List[str]) -> bool:
+ def exists_col_to_many(self, select_columns: list[str]) -> bool:
for column in select_columns:
- if is_column_dotted(column):
- root_relation = get_column_root_relation(column)
- if self.is_relation_many_to_many(
- root_relation
- ) or self.is_relation_one_to_many(root_relation):
- return True
+ if not is_column_dotted(column):
+ continue
+ root_relation = get_column_root_relation(column)
+ if self.is_relation_many_to_many(
+ root_relation
+ ) or self.is_relation_one_to_many(root_relation):
+ return True
return False
def get_alias_mapping(
- self, model_name: str, aliases_mapping: Dict[str, AliasedClass]
- ) -> Union[AliasedClass, Type[Model]]:
+ self, model_name: str, aliases_mapping: dict[str, AliasedClass] | None
+ ) -> AliasedClass | Type[Model]:
if aliases_mapping is None:
return self.get_related_model(model_name)
return aliases_mapping.get(model_name, self.get_related_model(model_name))
@@ -369,13 +397,13 @@ def get_alias_mapping(
def _apply_inner_all(
self,
query: Query,
- filters: Optional[Filters] = None,
+ filters: Filters | None = None,
order_column: str = "",
order_direction: str = "",
- page: Optional[int] = None,
- page_size: Optional[int] = None,
- select_columns: Optional[List[str]] = None,
- aliases_mapping: Dict[str, AliasedClass] = None,
+ page: int | None = None,
+ page_size: int | None = None,
+ select_columns: list[str] | None = None,
+ aliases_mapping: dict[str, AliasedClass] | None = None,
) -> Query:
inner_filters = self.get_inner_filters(filters)
query = self.apply_inner_select_joins(query, select_columns, aliases_mapping)
@@ -391,7 +419,7 @@ def query_count(
self,
query: Query,
filters: Optional[Filters] = None,
- select_columns: Optional[List[str]] = None,
+ select_columns: Optional[list[str]] = None,
) -> int:
return self._apply_inner_all(
query, filters, select_columns=select_columns, aliases_mapping={}
@@ -405,7 +433,7 @@ def apply_all(
order_direction: str = "",
page: Optional[int] = None,
page_size: Optional[int] = None,
- select_columns: Optional[List[str]] = None,
+ select_columns: Optional[list[str]] = None,
outer_default_load: bool = False,
) -> Query:
"""
@@ -432,7 +460,7 @@ def apply_all(
https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.defaultload
:return: A SQLAlchemy Query with all the applied logic
"""
- aliases_mapping = {}
+ aliases_mapping: dict[str, AliasedClass] = {}
inner_query = self._apply_inner_all(
query,
filters,
@@ -447,9 +475,12 @@ def apply_all(
if select_columns and self.exists_col_to_many(select_columns):
if select_columns and order_column:
select_columns = select_columns + [order_column]
- outer_query = inner_query.from_self()
+ outer_query = self.get_outer_query_from_inner_query(query, inner_query)
outer_query = self.apply_outer_select_joins(
- outer_query, select_columns, outer_default_load=outer_default_load
+ outer_query,
+ select_columns,
+ outer_default_load=outer_default_load,
+ aliases_mapping=aliases_mapping,
)
return self.apply_order_by(outer_query, order_column, order_direction)
else:
@@ -462,9 +493,9 @@ def query(
order_direction: str = "",
page: Optional[int] = None,
page_size: Optional[int] = None,
- select_columns: Optional[List[str]] = None,
+ select_columns: Optional[list[str]] = None,
outer_default_load: bool = False,
- ) -> Tuple[int, List[Model]]:
+ ) -> Tuple[int, list[Model]]:
"""
Returns the results for a model query, applies filters, sorting and pagination
@@ -482,9 +513,7 @@ def query(
https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.defaultload
:return: A tuple with the query count (non paginated) and the results
"""
- if not self.session:
- raise InterfaceQueryWithoutSession()
- query = self.session.query(self.obj)
+ query = db.session.query(self.obj)
count = self.query_count(query, filters, select_columns)
query = self.apply_all(
@@ -507,23 +536,27 @@ def query(
return count, result
def query_simple_group(
- self, group_by="", aggregate_func=None, aggregate_col=None, filters=None
- ):
- query = self.session.query(self.obj)
+ self, group_by: str | None = None, filters: Filters | None = None
+ ) -> list[list[Any]]:
+ query = db.session.query(self.obj)
query = self._get_base_query(query=query, filters=filters)
query_result = query.all()
group = GroupByCol(group_by, "Group by")
return group.apply(query_result)
- def query_month_group(self, group_by="", filters=None):
- query = self.session.query(self.obj)
+ def query_month_group(
+ self, group_by: str | None = None, filters: Filters | None = None
+ ) -> list[list[Any]]:
+ query = db.session.query(self.obj)
query = self._get_base_query(query=query, filters=filters)
query_result = query.all()
group = GroupByDateMonth(group_by, "Group by Month")
return group.apply(query_result)
- def query_year_group(self, group_by="", filters=None):
- query = self.session.query(self.obj)
+ def query_year_group(
+ self, group_by: str | None = None, filters: Filters | None = None
+ ) -> list[list[Any]]:
+ query = db.session.query(self.obj)
query = self._get_base_query(query=query, filters=filters)
query_result = query.all()
group_year = GroupByDateYear(group_by, "Group by Year")
@@ -719,88 +752,47 @@ def get_max_length(self, col_name: str) -> int:
-------------------------------
"""
- def add(self, item: Model, raise_exception: bool = False) -> bool:
+ def add(self, item: Model, commit: bool = True) -> None:
try:
- self.session.add(item)
- self.session.commit()
- self.message = (as_unicode(self.add_row_message), "success")
- return True
- except IntegrityError as e:
- self.message = (as_unicode(self.add_integrity_error_message), "warning")
- log.warning(LOGMSG_WAR_DBI_ADD_INTEGRITY, e)
- self.session.rollback()
- if raise_exception:
- raise e
- return False
- except Exception as e:
- self.message = (as_unicode(self.database_error_message), "danger")
- log.exception("Database error")
- self.session.rollback()
- if raise_exception:
- raise e
- return False
-
- def edit(self, item: Model, raise_exception: bool = False) -> bool:
+ db.session.add(item)
+ if commit:
+ db.session.commit()
+ except SQLAlchemyError as ex:
+ log.exception("Add item database error")
+ db.session.rollback()
+ raise ex
+
+ def edit(self, item: Model, commit: bool = True) -> None:
try:
- self.session.merge(item)
- self.session.commit()
- self.message = (as_unicode(self.edit_row_message), "success")
- return True
- except IntegrityError as e:
- self.message = (as_unicode(self.edit_integrity_error_message), "warning")
- log.warning(LOGMSG_WAR_DBI_EDIT_INTEGRITY, e)
- self.session.rollback()
- if raise_exception:
- raise e
- return False
- except Exception as e:
- self.message = (as_unicode(self.database_error_message), "danger")
- log.exception("Database error")
- self.session.rollback()
- if raise_exception:
- raise e
- return False
-
- def delete(self, item: Model, raise_exception: bool = False) -> bool:
+ db.session.merge(item)
+ if commit:
+ db.session.commit()
+ except SQLAlchemyError as ex:
+ log.exception("Edit item database error")
+ db.session.rollback()
+ raise DatabaseException from ex
+
+ def delete(self, item: Model, commit: bool = True) -> None:
try:
self._delete_files(item)
- self.session.delete(item)
- self.session.commit()
- self.message = (as_unicode(self.delete_row_message), "success")
- return True
- except IntegrityError as e:
- self.message = (as_unicode(self.delete_integrity_error_message), "warning")
- log.warning(LOGMSG_WAR_DBI_DEL_INTEGRITY, e)
- self.session.rollback()
- if raise_exception:
- raise e
- return False
- except Exception as e:
- self.message = (as_unicode(self.database_error_message), "danger")
- log.exception("Database error")
- self.session.rollback()
- if raise_exception:
- raise e
- return False
-
- def delete_all(self, items: List[Model]) -> bool:
+ db.session.delete(item)
+ if commit:
+ db.session.commit()
+ except SQLAlchemyError as ex:
+ log.exception("Delete item database error")
+ db.session.rollback()
+ raise DatabaseException from ex
+
+ def delete_all(self, items: list[Model]) -> None:
try:
for item in items:
self._delete_files(item)
- self.session.delete(item)
- self.session.commit()
- self.message = (as_unicode(self.delete_row_message), "success")
- return True
- except IntegrityError as e:
- self.message = (as_unicode(self.delete_integrity_error_message), "warning")
- log.warning(LOGMSG_WAR_DBI_DEL_INTEGRITY, e)
- self.session.rollback()
- return False
- except Exception as e:
- self.message = (as_unicode(self.database_error_message), "danger")
- log.exception(LOGMSG_ERR_DBI_DEL_GENERIC, e)
- self.session.rollback()
- return False
+ db.session.delete(item)
+ db.session.commit()
+ except SQLAlchemyError as ex:
+ log.exception("Delete items database error")
+ db.session.rollback()
+ raise DatabaseException from ex
"""
-----------------------
@@ -808,17 +800,16 @@ def delete_all(self, items: List[Model]) -> bool:
-----------------------
"""
- def _add_files(self, this_request, item: Model):
+ def _add_files(self, this_request: Request, item: Model) -> None:
fm = FileManager()
im = ImageManager()
for file_col in this_request.files:
if self.is_file(file_col):
fm.save_file(this_request.files[file_col], getattr(item, file_col))
- for file_col in this_request.files:
- if self.is_image(file_col):
+ elif self.is_image(file_col):
im.save_file(this_request.files[file_col], getattr(item, file_col))
- def _delete_files(self, item: Model):
+ def _delete_files(self, item: Model) -> None:
for file_col in self.get_file_column_list():
if self.is_file(file_col) and getattr(item, file_col):
fm = FileManager()
@@ -856,7 +847,7 @@ def get_related_model(self, col_name: str) -> Type[Model]:
def get_related_model_and_join(
self, col_name: str
- ) -> List[Tuple[Type[Model], object]]:
+ ) -> list[Tuple[Type[Model], BinaryExpression]]:
relation = self.list_properties[col_name]
if relation.direction.name == "MANYTOMANY":
return [
@@ -865,16 +856,14 @@ def get_related_model_and_join(
]
return [(relation.mapper.class_, relation.primaryjoin)]
- def get_related_interface(self, col_name: str):
- return self.__class__(self.get_related_model(col_name), self.session)
+ def get_related_interface(self, col_name: str) -> BaseInterface:
+ return self.__class__(self.get_related_model(col_name))
def get_related_obj(self, col_name: str, value: Any) -> Optional[Type[Model]]:
rel_model = self.get_related_model(col_name)
- if self.session:
- return self.session.query(rel_model).get(value)
- return None
+ return db.session.query(rel_model).get(value)
- def get_related_fks(self, related_views) -> List[str]:
+ def get_related_fks(self, related_views: Any) -> list[str]:
return [view.datamodel.get_related_fk(self.obj) for view in related_views]
def get_related_fk(self, model: Type[Model]) -> Optional[str]:
@@ -884,7 +873,7 @@ def get_related_fk(self, model: Type[Model]) -> Optional[str]:
return col_name
return None
- def get_info(self, col_name: str):
+ def get_info(self, col_name: str) -> dict[str, Any]:
if col_name in self.list_properties:
return self.list_properties[col_name].info
return {}
@@ -895,13 +884,13 @@ def get_info(self, col_name: str):
-------------
"""
- def get_columns_list(self) -> List[str]:
+ def get_columns_list(self) -> list[str]:
"""
Returns all model's columns on SQLA properties
"""
return list(self.list_properties.keys())
- def get_user_columns_list(self) -> List[str]:
+ def get_user_columns_list(self) -> list[str]:
"""
Returns all model's columns except pk or fk
"""
@@ -912,7 +901,7 @@ def get_user_columns_list(self) -> List[str]:
]
# TODO get different solution, more integrated with filters
- def get_search_columns_list(self) -> List[str]:
+ def get_search_columns_list(self) -> list[str]:
ret_lst = []
for col_name in self.get_columns_list():
if not self.is_relation(col_name):
@@ -928,7 +917,7 @@ def get_search_columns_list(self) -> List[str]:
ret_lst.append(col_name)
return ret_lst
- def get_order_columns_list(self, list_columns: List[str] = None) -> List[str]:
+ def get_order_columns_list(self, list_columns: list[str] = None) -> list[str]:
"""
Returns the columns that can be ordered.
@@ -951,14 +940,14 @@ def get_order_columns_list(self, list_columns: List[str] = None) -> List[str]:
return ret_lst
- def get_file_column_list(self) -> List[str]:
+ def get_file_column_list(self) -> list[str]:
return [
i.name
for i in self.obj.__mapper__.columns
if isinstance(i.type, FileColumn)
]
- def get_image_column_list(self) -> List[str]:
+ def get_image_column_list(self) -> list[str]:
return [
i.name
for i in self.obj.__mapper__.columns
@@ -969,15 +958,15 @@ def get_property_first_col(self, col_name: str) -> ColumnProperty:
# support for only one col for pk and fk
return self.list_properties[col_name].columns[0]
- def get_relation_fk(self, col_name: str) -> str:
+ def get_relation_fk(self, col_name: str) -> Column:
# support for only one col for pk and fk
return list(self.list_properties[col_name].local_columns)[0]
def get(
self,
- id,
+ id: Any,
filters: Optional[Filters] = None,
- select_columns: Optional[List[str]] = None,
+ select_columns: Optional[list[str]] = None,
outer_default_load: bool = False,
) -> Optional[Model]:
"""
@@ -996,12 +985,12 @@ def get(
else:
_filters = Filters(self.filter_converter_class, self)
- if self.is_pk_composite():
+ if self.is_pk_composite() and isinstance(pk, Iterable):
for _pk, _id in zip(pk, id):
_filters.add_filter(_pk, self.FilterEqual, _id)
else:
_filters.add_filter(pk, self.FilterEqual, id)
- query = self.session.query(self.obj)
+ query = db.session.query(self.obj)
item = self.apply_all(
query,
_filters,
@@ -1013,13 +1002,13 @@ def get(
return getattr(item, self.obj.__name__)
return item
- def get_pk_name(self) -> Optional[Union[List[str], str]]:
+ def get_pk_name(self) -> Optional[list[str] | str]:
"""
Get the model primary key column name.
"""
return self._get_pk_name(self.obj)
- def get_pk(self, model: Optional[Type[Model]] = None):
+ def get_pk(self, model: Optional[Type[Model]] = None) -> Model | None:
"""
Get the model primary key SQLAlchemy column.
Will not support composite keys
@@ -1030,7 +1019,7 @@ def get_pk(self, model: Optional[Type[Model]] = None):
return getattr(model_, pk_name)
return None
- def _get_pk_name(self, model: Type[Model]) -> Optional[Union[List[str], str]]:
+ def _get_pk_name(self, model: Type[Model]) -> Optional[list[str] | str]:
pk = [pk.name for pk in model.__mapper__.primary_key]
if pk:
return pk if self.is_pk_composite() else pk[0]
diff --git a/flask_appbuilder/security/manager.py b/flask_appbuilder/security/manager.py
index 82423cfa4c..f67df6f86d 100644
--- a/flask_appbuilder/security/manager.py
+++ b/flask_appbuilder/security/manager.py
@@ -1,9 +1,11 @@
+from __future__ import annotations
+
import datetime
import logging
import re
from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Union
-from flask import Flask, g, session, url_for
+from flask import current_app, Flask, g, session, url_for
from flask_appbuilder.exceptions import InvalidLoginAttempt, OAuthProviderUnknown
from flask_babel import lazy_gettext as _
from flask_jwt_extended import current_user as current_user_jwt
@@ -215,55 +217,56 @@ class BaseSecurityManager(AbstractSecurityManager):
permissionviewmodelview = PermissionViewModelView
def __init__(self, appbuilder):
- super(BaseSecurityManager, self).__init__(appbuilder)
- app = self.appbuilder.get_app
+ super().__init__(appbuilder)
# Base Security Config
- app.config.setdefault("AUTH_ROLE_ADMIN", "Admin")
- app.config.setdefault("AUTH_ROLE_PUBLIC", "Public")
- app.config.setdefault("AUTH_TYPE", AUTH_DB)
+ current_app.config.setdefault("AUTH_ROLE_ADMIN", "Admin")
+ current_app.config.setdefault("AUTH_ROLE_PUBLIC", "Public")
+ current_app.config.setdefault("AUTH_TYPE", AUTH_DB)
# Self Registration
- app.config.setdefault("AUTH_USER_REGISTRATION", False)
- app.config.setdefault("AUTH_USER_REGISTRATION_ROLE", self.auth_role_public)
- app.config.setdefault("AUTH_USER_REGISTRATION_ROLE_JMESPATH", None)
+ current_app.config.setdefault("AUTH_USER_REGISTRATION", False)
+ current_app.config.setdefault(
+ "AUTH_USER_REGISTRATION_ROLE", self.auth_role_public
+ )
+ current_app.config.setdefault("AUTH_USER_REGISTRATION_ROLE_JMESPATH", None)
# Role Mapping
- app.config.setdefault("AUTH_ROLES_MAPPING", {})
- app.config.setdefault("AUTH_ROLES_SYNC_AT_LOGIN", False)
- app.config.setdefault("AUTH_API_LOGIN_ALLOW_MULTIPLE_PROVIDERS", False)
+ current_app.config.setdefault("AUTH_ROLES_MAPPING", {})
+ current_app.config.setdefault("AUTH_ROLES_SYNC_AT_LOGIN", False)
+ current_app.config.setdefault("AUTH_API_LOGIN_ALLOW_MULTIPLE_PROVIDERS", False)
# LDAP Config
if self.auth_type == AUTH_LDAP:
- if "AUTH_LDAP_SERVER" not in app.config:
+ if "AUTH_LDAP_SERVER" not in current_app.config:
raise Exception(
"No AUTH_LDAP_SERVER defined on config"
" with AUTH_LDAP authentication type."
)
- app.config.setdefault("AUTH_LDAP_SEARCH", "")
- app.config.setdefault("AUTH_LDAP_SEARCH_FILTER", "")
- app.config.setdefault("AUTH_LDAP_APPEND_DOMAIN", "")
- app.config.setdefault("AUTH_LDAP_USERNAME_FORMAT", "")
- app.config.setdefault("AUTH_LDAP_BIND_USER", "")
- app.config.setdefault("AUTH_LDAP_BIND_PASSWORD", "")
+ current_app.config.setdefault("AUTH_LDAP_SEARCH", "")
+ current_app.config.setdefault("AUTH_LDAP_SEARCH_FILTER", "")
+ current_app.config.setdefault("AUTH_LDAP_APPEND_DOMAIN", "")
+ current_app.config.setdefault("AUTH_LDAP_USERNAME_FORMAT", "")
+ current_app.config.setdefault("AUTH_LDAP_BIND_USER", "")
+ current_app.config.setdefault("AUTH_LDAP_BIND_PASSWORD", "")
# TLS options
- app.config.setdefault("AUTH_LDAP_USE_TLS", False)
- app.config.setdefault("AUTH_LDAP_ALLOW_SELF_SIGNED", False)
- app.config.setdefault("AUTH_LDAP_TLS_DEMAND", False)
- app.config.setdefault("AUTH_LDAP_TLS_CACERTDIR", "")
- app.config.setdefault("AUTH_LDAP_TLS_CACERTFILE", "")
- app.config.setdefault("AUTH_LDAP_TLS_CERTFILE", "")
- app.config.setdefault("AUTH_LDAP_TLS_KEYFILE", "")
+ current_app.config.setdefault("AUTH_LDAP_USE_TLS", False)
+ current_app.config.setdefault("AUTH_LDAP_ALLOW_SELF_SIGNED", False)
+ current_app.config.setdefault("AUTH_LDAP_TLS_DEMAND", False)
+ current_app.config.setdefault("AUTH_LDAP_TLS_CACERTDIR", "")
+ current_app.config.setdefault("AUTH_LDAP_TLS_CACERTFILE", "")
+ current_app.config.setdefault("AUTH_LDAP_TLS_CERTFILE", "")
+ current_app.config.setdefault("AUTH_LDAP_TLS_KEYFILE", "")
# Mapping options
- app.config.setdefault("AUTH_LDAP_UID_FIELD", "uid")
- app.config.setdefault("AUTH_LDAP_GROUP_FIELD", "memberOf")
- app.config.setdefault("AUTH_LDAP_FIRSTNAME_FIELD", "givenName")
- app.config.setdefault("AUTH_LDAP_LASTNAME_FIELD", "sn")
- app.config.setdefault("AUTH_LDAP_EMAIL_FIELD", "mail")
+ current_app.config.setdefault("AUTH_LDAP_UID_FIELD", "uid")
+ current_app.config.setdefault("AUTH_LDAP_GROUP_FIELD", "memberOf")
+ current_app.config.setdefault("AUTH_LDAP_FIRSTNAME_FIELD", "givenName")
+ current_app.config.setdefault("AUTH_LDAP_LASTNAME_FIELD", "sn")
+ current_app.config.setdefault("AUTH_LDAP_EMAIL_FIELD", "mail")
if self.auth_type == AUTH_REMOTE_USER:
- app.config.setdefault("AUTH_REMOTE_USER_ENV_VAR", "REMOTE_USER")
+ current_app.config.setdefault("AUTH_REMOTE_USER_ENV_VAR", "REMOTE_USER")
# Rate limiting
- app.config.setdefault("AUTH_RATE_LIMITED", False)
- app.config.setdefault("AUTH_RATE_LIMIT", "10 per 20 second")
+ current_app.config.setdefault("AUTH_RATE_LIMITED", False)
+ current_app.config.setdefault("AUTH_RATE_LIMIT", "10 per 20 second")
if self.auth_type == AUTH_OID:
from flask_openid import OpenID
@@ -272,12 +275,12 @@ def __init__(self, appbuilder):
"AUTH_OID is deprecated and will be removed in version 5. "
"Migrate to other authentication methods."
)
- self.oid = OpenID(app)
+ self.oid = OpenID(current_app)
if self.auth_type == AUTH_OAUTH:
from authlib.integrations.flask_client import OAuth
- self.oauth = OAuth(app)
+ self.oauth = OAuth(current_app)
self.oauth_remotes = {}
for _provider in self.oauth_providers:
provider_name = _provider["name"]
@@ -295,13 +298,13 @@ def __init__(self, appbuilder):
self._builtin_roles = self.create_builtin_roles()
# Setup Flask-Login
- self.lm = self.create_login_manager(app)
+ self.lm = self.create_login_manager(current_app)
# Setup Flask-Jwt-Extended
- self.jwt_manager = self.create_jwt_manager(app)
+ self.jwt_manager = self.create_jwt_manager(current_app)
# Setup Flask-Limiter
- self.limiter = self.create_limiter(app)
+ self.limiter = self.create_limiter(current_app)
def create_limiter(self, app: Flask) -> Limiter:
limiter = Limiter(key_func=get_remote_address)
@@ -330,8 +333,9 @@ def create_jwt_manager(self, app) -> JWTManager:
jwt_manager.user_lookup_loader(self.load_user_jwt)
return jwt_manager
- def create_builtin_roles(self):
- return self.appbuilder.get_app.config.get("FAB_ROLES", {})
+ @staticmethod
+ def create_builtin_roles():
+ return current_app.config.get("FAB_ROLES", {})
def get_roles_from_keys(self, role_keys: List[str]) -> Set[role_model]:
"""
@@ -385,143 +389,143 @@ def builtin_roles(self) -> Dict[str, Any]:
@property
def api_login_allow_multiple_providers(self):
- return self.appbuilder.get_app.config["AUTH_API_LOGIN_ALLOW_MULTIPLE_PROVIDERS"]
+ return current_app.config["AUTH_API_LOGIN_ALLOW_MULTIPLE_PROVIDERS"]
@property
def auth_type(self) -> int:
- return self.appbuilder.get_app.config["AUTH_TYPE"]
+ return current_app.config["AUTH_TYPE"]
@property
def auth_username_ci(self) -> str:
- return self.appbuilder.get_app.config.get("AUTH_USERNAME_CI", True)
+ return current_app.config.get("AUTH_USERNAME_CI", True)
@property
def auth_role_admin(self) -> str:
- return self.appbuilder.get_app.config["AUTH_ROLE_ADMIN"]
+ return current_app.config["AUTH_ROLE_ADMIN"]
@property
def auth_role_public(self) -> str:
- return self.appbuilder.get_app.config["AUTH_ROLE_PUBLIC"]
+ return current_app.config["AUTH_ROLE_PUBLIC"]
@property
def auth_ldap_server(self) -> str:
- return self.appbuilder.get_app.config["AUTH_LDAP_SERVER"]
+ return current_app.config["AUTH_LDAP_SERVER"]
@property
def auth_ldap_use_tls(self) -> bool:
- return self.appbuilder.get_app.config["AUTH_LDAP_USE_TLS"]
+ return current_app.config["AUTH_LDAP_USE_TLS"]
@property
def auth_user_registration(self) -> bool:
- return self.appbuilder.get_app.config["AUTH_USER_REGISTRATION"]
+ return current_app.config["AUTH_USER_REGISTRATION"]
@property
def auth_user_registration_role(self) -> str:
- return self.appbuilder.get_app.config["AUTH_USER_REGISTRATION_ROLE"]
+ return current_app.config["AUTH_USER_REGISTRATION_ROLE"]
@property
def auth_user_registration_role_jmespath(self) -> str:
- return self.appbuilder.get_app.config["AUTH_USER_REGISTRATION_ROLE_JMESPATH"]
+ return current_app.config["AUTH_USER_REGISTRATION_ROLE_JMESPATH"]
@property
def auth_remote_user_env_var(self) -> str:
- return self.appbuilder.get_app.config["AUTH_REMOTE_USER_ENV_VAR"]
+ return current_app.config["AUTH_REMOTE_USER_ENV_VAR"]
@property
def auth_roles_mapping(self) -> Dict[str, List[str]]:
- return self.appbuilder.get_app.config["AUTH_ROLES_MAPPING"]
+ return current_app.config["AUTH_ROLES_MAPPING"]
@property
def auth_roles_sync_at_login(self) -> bool:
- return self.appbuilder.get_app.config["AUTH_ROLES_SYNC_AT_LOGIN"]
+ return current_app.config["AUTH_ROLES_SYNC_AT_LOGIN"]
@property
def auth_ldap_search(self):
- return self.appbuilder.get_app.config["AUTH_LDAP_SEARCH"]
+ return current_app.config["AUTH_LDAP_SEARCH"]
@property
def auth_ldap_search_filter(self):
- return self.appbuilder.get_app.config["AUTH_LDAP_SEARCH_FILTER"]
+ return current_app.config["AUTH_LDAP_SEARCH_FILTER"]
@property
def auth_ldap_bind_user(self):
- return self.appbuilder.get_app.config["AUTH_LDAP_BIND_USER"]
+ return current_app.config["AUTH_LDAP_BIND_USER"]
@property
def auth_ldap_bind_password(self):
- return self.appbuilder.get_app.config["AUTH_LDAP_BIND_PASSWORD"]
+ return current_app.config["AUTH_LDAP_BIND_PASSWORD"]
@property
def auth_ldap_append_domain(self):
- return self.appbuilder.get_app.config["AUTH_LDAP_APPEND_DOMAIN"]
+ return current_app.config["AUTH_LDAP_APPEND_DOMAIN"]
@property
def auth_ldap_username_format(self):
- return self.appbuilder.get_app.config["AUTH_LDAP_USERNAME_FORMAT"]
+ return current_app.config["AUTH_LDAP_USERNAME_FORMAT"]
@property
def auth_ldap_uid_field(self):
- return self.appbuilder.get_app.config["AUTH_LDAP_UID_FIELD"]
+ return current_app.config["AUTH_LDAP_UID_FIELD"]
@property
def auth_ldap_group_field(self) -> str:
- return self.appbuilder.get_app.config["AUTH_LDAP_GROUP_FIELD"]
+ return current_app.config["AUTH_LDAP_GROUP_FIELD"]
@property
def auth_ldap_firstname_field(self):
- return self.appbuilder.get_app.config["AUTH_LDAP_FIRSTNAME_FIELD"]
+ return current_app.config["AUTH_LDAP_FIRSTNAME_FIELD"]
@property
def auth_ldap_lastname_field(self):
- return self.appbuilder.get_app.config["AUTH_LDAP_LASTNAME_FIELD"]
+ return current_app.config["AUTH_LDAP_LASTNAME_FIELD"]
@property
def auth_ldap_email_field(self):
- return self.appbuilder.get_app.config["AUTH_LDAP_EMAIL_FIELD"]
+ return current_app.config["AUTH_LDAP_EMAIL_FIELD"]
@property
def auth_ldap_bind_first(self):
- return self.appbuilder.get_app.config["AUTH_LDAP_BIND_FIRST"]
+ return current_app.config["AUTH_LDAP_BIND_FIRST"]
@property
def auth_ldap_allow_self_signed(self):
- return self.appbuilder.get_app.config["AUTH_LDAP_ALLOW_SELF_SIGNED"]
+ return current_app.config["AUTH_LDAP_ALLOW_SELF_SIGNED"]
@property
def auth_ldap_tls_demand(self):
- return self.appbuilder.get_app.config["AUTH_LDAP_TLS_DEMAND"]
+ return current_app.config["AUTH_LDAP_TLS_DEMAND"]
@property
def auth_ldap_tls_cacertdir(self):
- return self.appbuilder.get_app.config["AUTH_LDAP_TLS_CACERTDIR"]
+ return current_app.config["AUTH_LDAP_TLS_CACERTDIR"]
@property
def auth_ldap_tls_cacertfile(self):
- return self.appbuilder.get_app.config["AUTH_LDAP_TLS_CACERTFILE"]
+ return current_app.config["AUTH_LDAP_TLS_CACERTFILE"]
@property
def auth_ldap_tls_certfile(self):
- return self.appbuilder.get_app.config["AUTH_LDAP_TLS_CERTFILE"]
+ return current_app.config["AUTH_LDAP_TLS_CERTFILE"]
@property
def auth_ldap_tls_keyfile(self):
- return self.appbuilder.get_app.config["AUTH_LDAP_TLS_KEYFILE"]
+ return current_app.config["AUTH_LDAP_TLS_KEYFILE"]
@property
def openid_providers(self):
- return self.appbuilder.get_app.config["OPENID_PROVIDERS"]
+ return current_app.config["OPENID_PROVIDERS"]
@property
def oauth_providers(self):
- return self.appbuilder.get_app.config["OAUTH_PROVIDERS"]
+ return current_app.config["OAUTH_PROVIDERS"]
@property
def is_auth_limited(self) -> bool:
- return self.appbuilder.get_app.config["AUTH_RATE_LIMITED"]
+ return current_app.config["AUTH_RATE_LIMITED"]
@property
def auth_rate_limit(self) -> str:
- return self.appbuilder.get_app.config["AUTH_RATE_LIMIT"]
+ return current_app.config["AUTH_RATE_LIMIT"]
@property
def current_user(self):
@@ -773,7 +777,7 @@ def _get_authentik_token_info(self, id_token):
raise InvalidLoginAttempt("OAuth signature verify failed")
def register_views(self):
- if not self.appbuilder.app.config.get("FAB_ADD_SECURITY_VIEWS", True):
+ if not current_app.config.get("FAB_ADD_SECURITY_VIEWS", True):
return
# Security APIs
self.appbuilder.add_api(self.security_api)
@@ -859,7 +863,7 @@ def register_views(self):
category="Security",
)
self.appbuilder.menu.add_separator("Security")
- if self.appbuilder.app.config.get("FAB_ADD_SECURITY_PERMISSION_VIEW", True):
+ if current_app.config.get("FAB_ADD_SECURITY_PERMISSION_VIEW", True):
self.appbuilder.add_view(
self.permissionmodelview,
"Base Permissions",
@@ -867,7 +871,7 @@ def register_views(self):
label=_("Base Permissions"),
category="Security",
)
- if self.appbuilder.app.config.get("FAB_ADD_SECURITY_VIEW_MENU_VIEW", True):
+ if current_app.config.get("FAB_ADD_SECURITY_VIEW_MENU_VIEW", True):
self.appbuilder.add_view(
self.viewmenumodelview,
"Views/Menus",
@@ -875,9 +879,7 @@ def register_views(self):
label=_("Views/Menus"),
category="Security",
)
- if self.appbuilder.app.config.get(
- "FAB_ADD_SECURITY_PERMISSION_VIEWS_VIEW", True
- ):
+ if current_app.config.get("FAB_ADD_SECURITY_PERMISSION_VIEWS_VIEW", True):
self.appbuilder.add_view(
self.permissionviewmodelview,
"Permission on Views/Menus",
@@ -890,7 +892,7 @@ def create_db(self):
"""
Setups the DB, creates admin and public roles if they don't exist.
"""
- roles_mapping = self.appbuilder.get_app.config.get("FAB_ROLES_MAPPING", {})
+ roles_mapping = current_app.config.get("FAB_ROLES_MAPPING", {})
for pk, name in roles_mapping.items():
self.update_role(pk, name)
for role_name, permission_view_menus in self.builtin_roles.items():
@@ -1606,9 +1608,9 @@ def has_access(self, permission_name: str, view_name: str) -> bool:
"""
Check if current user or public has access to view or menu
"""
- if current_user.is_authenticated:
+ if current_user.is_authenticated and current_user.active:
return self._has_view_access(g.user, permission_name, view_name)
- elif current_user_jwt:
+ elif current_user_jwt and current_user_jwt.active:
return self._has_view_access(current_user_jwt, permission_name, view_name)
else:
return self.is_item_public(permission_name, view_name)
@@ -2158,15 +2160,15 @@ def import_roles(self, path: str) -> None:
"""Imports roles from JSON file."""
raise NotImplementedError
- def load_user(self, pk):
+ def load_user(self, pk: int) -> Any | None:
user = self.get_user_by_id(int(pk))
- if user.is_active:
+ if user and user.is_active:
return user
def load_user_jwt(self, _jwt_header, jwt_data):
identity = jwt_data["sub"]
user = self.load_user(identity)
- if user.is_active:
+ if user and user.is_active:
# Set flask g.user to JWT user, we can't do it on before request
g.user = user
return user
diff --git a/flask_appbuilder/security/registerviews.py b/flask_appbuilder/security/registerviews.py
index a6ca01307c..63dfd85c8c 100644
--- a/flask_appbuilder/security/registerviews.py
+++ b/flask_appbuilder/security/registerviews.py
@@ -2,7 +2,7 @@
import logging
-from flask import flash, redirect, request, session, url_for
+from flask import current_app, flash, redirect, request, session, url_for
from flask_babel import lazy_gettext
from .forms import LoginForm_oid, RegisterUserDBForm, RegisterUserOIDForm
@@ -76,7 +76,7 @@ def send_email(self, register_user):
except Exception:
log.error("Install Flask-Mail to use User registration")
return False
- mail = Mail(self.appbuilder.get_app)
+ mail = Mail(current_app)
msg = Message()
msg.subject = self.email_subject
url = url_for(
diff --git a/flask_appbuilder/security/sqla/apis/role/api.py b/flask_appbuilder/security/sqla/apis/role/api.py
index dd69824e03..2ced75b6af 100644
--- a/flask_appbuilder/security/sqla/apis/role/api.py
+++ b/flask_appbuilder/security/sqla/apis/role/api.py
@@ -130,7 +130,7 @@ def add_role_permissions(self, role_id):
permissions = []
for id in item["permission_view_menu_ids"]:
permission = (
- current_app.appbuilder.get_session.query(PermissionView)
+ current_app.appbuilder.session.query(PermissionView)
.filter_by(id=id)
.one_or_none()
)
@@ -138,7 +138,7 @@ def add_role_permissions(self, role_id):
permissions.append(permission)
role.permissions = permissions
- self.datamodel.edit(role, raise_exception=True)
+ self.datamodel.edit(role)
return self.response(
200,
**{
diff --git a/flask_appbuilder/security/sqla/apis/user/api.py b/flask_appbuilder/security/sqla/apis/user/api.py
index 94f250123d..efcbab00c4 100644
--- a/flask_appbuilder/security/sqla/apis/user/api.py
+++ b/flask_appbuilder/security/sqla/apis/user/api.py
@@ -4,6 +4,7 @@
from flask_appbuilder import ModelRestApi
from flask_appbuilder.api import expose, safe
from flask_appbuilder.const import API_RESULT_RES_KEY
+from flask_appbuilder.extensions import db
from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_appbuilder.security.decorators import permission_name, protect
from flask_appbuilder.security.sqla.apis.user.schema import (
@@ -120,7 +121,7 @@ def post(self):
else:
for role_id in item[key]:
role = (
- self.datamodel.session.query(Role)
+ db.session.query(Role)
.filter(Role.id == role_id)
.one_or_none()
)
@@ -133,7 +134,7 @@ def post(self):
model.roles = roles
self.pre_add(model)
- self.datamodel.add(model, raise_exception=True)
+ self.datamodel.add(model)
return self.response(201, id=model.id)
except ValidationError as error:
return self.response_400(message=error.messages)
@@ -192,7 +193,7 @@ def put(self, pk):
else:
for role_id in item[key]:
role = (
- self.datamodel.session.query(Role)
+ db.session.query(Role)
.filter(Role.id == role_id)
.one_or_none()
)
@@ -205,7 +206,7 @@ def put(self, pk):
model.roles = roles
self.pre_update(model)
- self.datamodel.edit(model, raise_exception=True)
+ self.datamodel.edit(model)
return self.response(
200,
**{API_RESULT_RES_KEY: self.edit_model_schema.dump(item, many=False)},
diff --git a/flask_appbuilder/security/sqla/manager.py b/flask_appbuilder/security/sqla/manager.py
index 550cf8a72e..fcc44f4997 100755
--- a/flask_appbuilder/security/sqla/manager.py
+++ b/flask_appbuilder/security/sqla/manager.py
@@ -1,17 +1,23 @@
+from __future__ import annotations
+
from datetime import datetime
import json
import logging
from typing import Dict, List, Optional, Tuple, Union
import uuid
-from sqlalchemy import and_, func, literal, update
-from sqlalchemy.engine.reflection import Inspector
-from sqlalchemy.orm import contains_eager
-from sqlalchemy.orm.exc import MultipleResultsFound
-from werkzeug.security import generate_password_hash
-
-from .apis import PermissionApi, PermissionViewMenuApi, RoleApi, UserApi, ViewMenuApi
-from .models import (
+from flask import current_app, has_app_context
+from flask_appbuilder import const as c
+from flask_appbuilder.models.sqla.interface import SQLAInterface
+from flask_appbuilder.security.manager import BaseSecurityManager
+from flask_appbuilder.security.sqla.apis import (
+ PermissionApi,
+ PermissionViewMenuApi,
+ RoleApi,
+ UserApi,
+ ViewMenuApi,
+)
+from flask_appbuilder.security.sqla.models import (
assoc_permissionview_role,
Permission,
PermissionView,
@@ -20,10 +26,12 @@
User,
ViewMenu,
)
-from ..manager import BaseSecurityManager
-from ... import const as c
-from ...models.sqla import Base
-from ...models.sqla.interface import SQLAInterface
+from sqlalchemy import and_, func, literal, update
+from sqlalchemy import inspect
+from sqlalchemy.orm import contains_eager
+from sqlalchemy.orm.exc import MultipleResultsFound
+from werkzeug.security import generate_password_hash
+
log = logging.getLogger(__name__)
@@ -88,42 +96,58 @@ def __init__(self, appbuilder):
self.create_db()
@property
- def get_session(self):
- return self.appbuilder.get_session
+ def session(self):
+ return self.appbuilder.session
- def register_views(self):
- super(SecurityManager, self).register_views()
+ def register_views(self) -> None:
+ super().register_views()
- if self.appbuilder.app.config.get("FAB_ADD_SECURITY_API", False):
- self.appbuilder.add_api(self.permission_api)
- self.appbuilder.add_api(self.role_api)
- self.appbuilder.add_api(self.user_api)
- self.appbuilder.add_api(self.view_menu_api)
- self.appbuilder.add_api(self.permission_view_menu_api)
+ if not current_app.config.get("FAB_ADD_SECURITY_API", False):
+ return
- def create_db(self):
- try:
- engine = self.get_session.get_bind(mapper=None, clause=None)
- inspector = Inspector.from_engine(engine)
- if "ab_user" not in inspector.get_table_names():
- log.info(c.LOGMSG_INF_SEC_NO_DB)
- Base.metadata.create_all(engine)
- log.info(c.LOGMSG_INF_SEC_ADD_DB)
- super(SecurityManager, self).create_db()
- except Exception as e:
- log.error(c.LOGMSG_ERR_SEC_CREATE_DB, e)
- exit(1)
+ self.appbuilder.add_api(self.permission_api)
+ self.appbuilder.add_api(self.role_api)
+ self.appbuilder.add_api(self.user_api)
+ self.appbuilder.add_api(self.view_menu_api)
+ self.appbuilder.add_api(self.permission_view_menu_api)
+
+ def create_db(self) -> None:
+ if not current_app.config.get("FAB_CREATE_DB", True):
+ return
+ # Check if an application context does not exist
+ if not has_app_context():
+ # Create a new application context
+ with self.appbuilder.app.app_context():
+ self._create_db()
+ else:
+ self._create_db()
- def find_register_user(self, registration_hash):
+ def _create_db(self) -> None:
+ from flask_appbuilder.extensions import db
+
+ inspector = inspect(db.engine)
+ if "ab_user" not in inspector.get_table_names():
+ log.info(c.LOGMSG_INF_SEC_NO_DB)
+ db.create_all()
+ log.info(c.LOGMSG_INF_SEC_ADD_DB)
+ super().create_db()
+
+ def find_register_user(self, registration_hash: str) -> Optional[RegisterUser]:
return (
- self.get_session.query(self.registeruser_model)
+ self.appbuilder.session.query(self.registeruser_model)
.filter(self.registeruser_model.registration_hash == registration_hash)
.scalar()
)
def add_register_user(
- self, username, first_name, last_name, email, password="", hashed_password=""
- ):
+ self,
+ username: str,
+ first_name: str,
+ last_name: str,
+ email: str,
+ password: str = "",
+ hashed_password: str = "",
+ ) -> User:
"""
Add a registration request for the user.
@@ -140,12 +164,12 @@ def add_register_user(
register_user.password = generate_password_hash(password)
register_user.registration_hash = str(uuid.uuid1())
try:
- self.get_session.add(register_user)
- self.get_session.commit()
+ self.appbuilder.session.add(register_user)
+ self.appbuilder.session.commit()
return register_user
except Exception as e:
log.error(c.LOGMSG_ERR_SEC_ADD_REGISTER_USER, e)
- self.appbuilder.get_session.rollback()
+ self.appbuilder.session.rollback()
return None
def del_register_user(self, register_user):
@@ -155,12 +179,12 @@ def del_register_user(self, register_user):
:param register_user: RegisterUser object to delete
"""
try:
- self.get_session.delete(register_user)
- self.get_session.commit()
+ self.appbuilder.session.delete(register_user)
+ self.appbuilder.session.commit()
return True
except Exception as e:
log.error(c.LOGMSG_ERR_SEC_DEL_REGISTER_USER, e)
- self.get_session.rollback()
+ self.appbuilder.session.rollback()
return False
def find_user(self, username=None, email=None):
@@ -171,7 +195,7 @@ def find_user(self, username=None, email=None):
try:
if self.auth_username_ci:
return (
- self.get_session.query(self.user_model)
+ self.appbuilder.session.query(self.user_model)
.filter(
func.lower(self.user_model.username) == func.lower(username)
)
@@ -179,7 +203,7 @@ def find_user(self, username=None, email=None):
)
else:
return (
- self.get_session.query(self.user_model)
+ self.appbuilder.session.query(self.user_model)
.filter(self.user_model.username == username)
.one_or_none()
)
@@ -189,7 +213,7 @@ def find_user(self, username=None, email=None):
elif email:
try:
return (
- self.get_session.query(self.user_model)
+ self.appbuilder.session.query(self.user_model)
.filter_by(email=email)
.one_or_none()
)
@@ -198,15 +222,15 @@ def find_user(self, username=None, email=None):
return None
def get_all_users(self):
- return self.get_session.query(self.user_model).all()
+ return self.appbuilder.session.query(self.user_model).all()
def add_user(
self,
- username,
- first_name,
- last_name,
- email,
- role,
+ username: str,
+ first_name: str,
+ last_name: str,
+ email: str,
+ role: Role | list[Role],
password="",
hashed_password="",
):
@@ -225,33 +249,33 @@ def add_user(
user.password = hashed_password
else:
user.password = generate_password_hash(password)
- self.get_session.add(user)
- self.get_session.commit()
+ self.appbuilder.session.add(user)
+ self.appbuilder.session.commit()
log.info(c.LOGMSG_INF_SEC_ADD_USER, username)
return user
except Exception as e:
log.error(c.LOGMSG_ERR_SEC_ADD_USER, e)
- self.get_session.rollback()
+ self.appbuilder.session.rollback()
return False
def count_users(self):
- return self.get_session.query(func.count(self.user_model.id)).scalar()
+ return self.appbuilder.session.query(func.count(self.user_model.id)).scalar()
def update_user(self, user):
try:
- self.get_session.merge(user)
- self.get_session.commit()
+ self.appbuilder.session.merge(user)
+ self.appbuilder.session.commit()
log.info(c.LOGMSG_INF_SEC_UPD_USER, user)
except Exception as e:
log.error(c.LOGMSG_ERR_SEC_UPD_USER, e)
- self.get_session.rollback()
+ self.appbuilder.session.rollback()
return False
def get_user_by_id(self, pk):
- return self.get_session.query(self.user_model).get(pk)
+ return self.appbuilder.session.get(self.user_model, pk)
def get_first_user(self) -> "User":
- return self.get_session.query(self.user_model).first()
+ return self.appbuilder.session.query(self.user_model).first()
def noop_user_update(self, user: "User") -> None:
stmt = (
@@ -259,8 +283,8 @@ def noop_user_update(self, user: "User") -> None:
.where(self.user_model.id == user.id)
.values(login_count=user.login_count)
)
- self.get_session.execute(stmt)
- self.get_session.commit()
+ self.appbuilder.session.execute(stmt)
+ self.appbuilder.session.commit()
"""
-----------------------
@@ -280,40 +304,42 @@ def add_role(
role = self.role_model()
role.name = name
role.permissions = permissions
- self.get_session.add(role)
- self.get_session.commit()
+ self.appbuilder.session.add(role)
+ self.appbuilder.session.commit()
log.info(c.LOGMSG_INF_SEC_ADD_ROLE, name)
return role
except Exception as e:
log.error(c.LOGMSG_ERR_SEC_ADD_ROLE, e)
- self.get_session.rollback()
+ self.appbuilder.session.rollback()
return role
def update_role(self, pk, name: str) -> Optional[Role]:
- role = self.get_session.query(self.role_model).get(pk)
+ role = self.appbuilder.session.query(self.role_model).get(pk)
if not role:
return
try:
role.name = name
- self.get_session.merge(role)
- self.get_session.commit()
+ self.appbuilder.session.merge(role)
+ self.appbuilder.session.commit()
log.info(c.LOGMSG_INF_SEC_UPD_ROLE, role)
except Exception as e:
log.error(c.LOGMSG_ERR_SEC_UPD_ROLE, e)
- self.get_session.rollback()
+ self.appbuilder.session.rollback()
return
def find_role(self, name):
return (
- self.get_session.query(self.role_model).filter_by(name=name).one_or_none()
+ self.appbuilder.session.query(self.role_model)
+ .filter_by(name=name)
+ .one_or_none()
)
def get_all_roles(self):
- return self.get_session.query(self.role_model).all()
+ return self.appbuilder.session.query(self.role_model).all()
def get_public_role(self):
return (
- self.get_session.query(self.role_model)
+ self.appbuilder.session.query(self.role_model)
.filter_by(name=self.auth_role_public)
.one_or_none()
)
@@ -329,7 +355,7 @@ def find_permission(self, name):
Finds and returns a Permission by name
"""
return (
- self.get_session.query(self.permission_model)
+ self.appbuilder.session.query(self.permission_model)
.filter_by(name=name)
.one_or_none()
)
@@ -347,7 +373,7 @@ def exist_permission_on_roles(
:return: Boolean
"""
q = (
- self.appbuilder.get_session.query(self.permissionview_model)
+ self.appbuilder.session.query(self.permissionview_model)
.join(
assoc_permissionview_role,
and_(
@@ -368,15 +394,15 @@ def exist_permission_on_roles(
.exists()
)
# Special case for MSSQL/Oracle (works on PG and MySQL > 8)
- if self.appbuilder.get_session.bind.dialect.name in ("mssql", "oracle"):
- return self.appbuilder.get_session.query(literal(True)).filter(q).scalar()
- return self.appbuilder.get_session.query(q).scalar()
+ if self.appbuilder.session.get_bind().name in ("mssql", "oracle"):
+ return self.appbuilder.session.query(literal(True)).filter(q).scalar()
+ return self.appbuilder.session.query(q).scalar()
def find_roles_permission_view_menus(
self, permission_name: str, role_ids: List[int]
):
return (
- self.appbuilder.get_session.query(self.permissionview_model)
+ self.appbuilder.session.query(self.permissionview_model)
.join(
assoc_permissionview_role,
and_(
@@ -425,7 +451,7 @@ def get_user_roles_permissions(self, user) -> Dict[str, List[Tuple[str, str]]]:
db_roles_ids.append(role.id)
permission_views = (
- self.appbuilder.get_session.query(PermissionView)
+ self.appbuilder.session.query(PermissionView)
.join(Permission)
.join(ViewMenu)
.join(PermissionView.role)
@@ -451,7 +477,7 @@ def get_db_role_permissions(self, role_id: int) -> List[PermissionView]:
Get all DB permissions from a role (one single query)
"""
return (
- self.appbuilder.get_session.query(PermissionView)
+ self.appbuilder.session.query(PermissionView)
.join(Permission)
.join(ViewMenu)
.join(PermissionView.role)
@@ -473,12 +499,12 @@ def add_permission(self, name):
try:
perm = self.permission_model()
perm.name = name
- self.get_session.add(perm)
- self.get_session.commit()
+ self.appbuilder.session.add(perm)
+ self.appbuilder.session.commit()
return perm
except Exception as e:
log.error(c.LOGMSG_ERR_SEC_ADD_PERMISSION, e)
- self.get_session.rollback()
+ self.appbuilder.session.rollback()
return perm
def del_permission(self, name: str) -> bool:
@@ -494,19 +520,19 @@ def del_permission(self, name: str) -> bool:
return False
try:
pvms = (
- self.get_session.query(self.permissionview_model)
+ self.appbuilder.session.query(self.permissionview_model)
.filter(self.permissionview_model.permission == perm)
.all()
)
if pvms:
log.warning(c.LOGMSG_WAR_SEC_DEL_PERM_PVM, perm, pvms)
return False
- self.get_session.delete(perm)
- self.get_session.commit()
+ self.appbuilder.session.delete(perm)
+ self.appbuilder.session.commit()
return True
except Exception as e:
log.error(c.LOGMSG_ERR_SEC_DEL_PERMISSION, e)
- self.get_session.rollback()
+ self.appbuilder.session.rollback()
return False
"""
@@ -520,13 +546,13 @@ def find_view_menu(self, name):
Finds and returns a ViewMenu by name
"""
return (
- self.get_session.query(self.viewmenu_model)
+ self.appbuilder.session.query(self.viewmenu_model)
.filter_by(name=name)
.one_or_none()
)
def get_all_view_menu(self):
- return self.get_session.query(self.viewmenu_model).all()
+ return self.appbuilder.session.query(self.viewmenu_model).all()
def add_view_menu(self, name):
"""
@@ -539,12 +565,12 @@ def add_view_menu(self, name):
try:
view_menu = self.viewmenu_model()
view_menu.name = name
- self.get_session.add(view_menu)
- self.get_session.commit()
+ self.appbuilder.session.add(view_menu)
+ self.appbuilder.session.commit()
return view_menu
except Exception as e:
log.error(c.LOGMSG_ERR_SEC_ADD_VIEWMENU, e)
- self.get_session.rollback()
+ self.appbuilder.session.rollback()
return view_menu
def del_view_menu(self, name: str) -> bool:
@@ -560,19 +586,19 @@ def del_view_menu(self, name: str) -> bool:
return False
try:
pvms = (
- self.get_session.query(self.permissionview_model)
+ self.appbuilder.session.query(self.permissionview_model)
.filter(self.permissionview_model.view_menu == view_menu)
.all()
)
if pvms:
log.warning(c.LOGMSG_WAR_SEC_DEL_VIEWMENU_PVM, view_menu, pvms)
return False
- self.get_session.delete(view_menu)
- self.get_session.commit()
+ self.appbuilder.session.delete(view_menu)
+ self.appbuilder.session.commit()
return True
except Exception as e:
log.error(c.LOGMSG_ERR_SEC_DEL_PERMISSION, e)
- self.get_session.rollback()
+ self.appbuilder.session.rollback()
return False
"""
@@ -589,7 +615,7 @@ def find_permission_view_menu(self, permission_name, view_menu_name):
view_menu = self.find_view_menu(view_menu_name)
if permission and view_menu:
return (
- self.get_session.query(self.permissionview_model)
+ self.appbuilder.session.query(self.permissionview_model)
.filter_by(permission=permission, view_menu=view_menu)
.one_or_none()
)
@@ -602,7 +628,7 @@ def find_permissions_view_menu(self, view_menu):
:return: list of PermissionView objects
"""
return (
- self.get_session.query(self.permissionview_model)
+ self.appbuilder.session.query(self.permissionview_model)
.filter_by(view_menu_id=view_menu.id)
.all()
)
@@ -626,13 +652,13 @@ def add_permission_view_menu(self, permission_name, view_menu_name):
pv = self.permissionview_model()
pv.view_menu, pv.permission = vm, perm
try:
- self.get_session.add(pv)
- self.get_session.commit()
+ self.appbuilder.session.add(pv)
+ self.appbuilder.session.commit()
log.info(c.LOGMSG_INF_SEC_ADD_PERMVIEW, pv)
return pv
except Exception as e:
log.error(c.LOGMSG_ERR_SEC_ADD_PERMVIEW, e)
- self.get_session.rollback()
+ self.appbuilder.session.rollback()
def del_permission_view_menu(self, permission_name, view_menu_name, cascade=True):
if not (permission_name and view_menu_name):
@@ -641,7 +667,7 @@ def del_permission_view_menu(self, permission_name, view_menu_name, cascade=True
if not pv:
return
roles_pvs = (
- self.get_session.query(self.role_model)
+ self.appbuilder.session.query(self.role_model)
.filter(self.role_model.permissions.contains(pv))
.first()
)
@@ -655,13 +681,13 @@ def del_permission_view_menu(self, permission_name, view_menu_name, cascade=True
return
try:
# delete permission on view
- self.get_session.delete(pv)
- self.get_session.commit()
+ self.appbuilder.session.delete(pv)
+ self.appbuilder.session.commit()
# if no more permission on permission view, delete permission
if not cascade:
return
if (
- not self.get_session.query(self.permissionview_model)
+ not self.appbuilder.session.query(self.permissionview_model)
.filter_by(permission=pv.permission)
.all()
):
@@ -669,7 +695,7 @@ def del_permission_view_menu(self, permission_name, view_menu_name, cascade=True
log.info(c.LOGMSG_INF_SEC_DEL_PERMVIEW, permission_name, view_menu_name)
except Exception as e:
log.error(c.LOGMSG_ERR_SEC_DEL_PERMVIEW, e)
- self.get_session.rollback()
+ self.appbuilder.session.rollback()
def exist_permission_on_views(self, lst, item):
for i in lst:
@@ -695,12 +721,12 @@ def add_permission_role(self, role, perm_view):
if perm_view and perm_view not in role.permissions:
try:
role.permissions.append(perm_view)
- self.get_session.merge(role)
- self.get_session.commit()
+ self.appbuilder.session.merge(role)
+ self.appbuilder.session.commit()
log.info(c.LOGMSG_INF_SEC_ADD_PERMROLE, perm_view, role.name)
except Exception as e:
log.error(c.LOGMSG_ERR_SEC_ADD_PERMROLE, e)
- self.get_session.rollback()
+ self.appbuilder.session.rollback()
def del_permission_role(self, role, perm_view):
"""
@@ -714,12 +740,12 @@ def del_permission_role(self, role, perm_view):
if perm_view in role.permissions:
try:
role.permissions.remove(perm_view)
- self.get_session.merge(role)
- self.get_session.commit()
+ self.appbuilder.session.merge(role)
+ self.appbuilder.session.commit()
log.info(c.LOGMSG_INF_SEC_DEL_PERMROLE, perm_view, role.name)
except Exception as e:
log.error(c.LOGMSG_ERR_SEC_DEL_PERMROLE, e)
- self.get_session.rollback()
+ self.appbuilder.session.rollback()
def export_roles(
self, path: Optional[str] = None, indent: Optional[Union[int, str]] = None
@@ -748,7 +774,7 @@ def export_roles(
def import_roles(self, path: str) -> None:
"""Imports roles from JSON file."""
- session = self.get_session()
+ session = self.appbuilder.session()
with open(path, "r") as fd:
roles_json = json.loads(fd.read())
diff --git a/flask_appbuilder/security/sqla/models.py b/flask_appbuilder/security/sqla/models.py
index 680aff6a5f..4bd2abc044 100755
--- a/flask_appbuilder/security/sqla/models.py
+++ b/flask_appbuilder/security/sqla/models.py
@@ -1,6 +1,10 @@
import datetime
+from typing import List, Optional
from flask import g
+from flask_appbuilder import Model
+from flask_appbuilder._compat import as_unicode
+from flask_appbuilder.extensions import db
from sqlalchemy import (
Boolean,
Column,
@@ -9,22 +13,24 @@
Integer,
Sequence,
String,
- Table,
UniqueConstraint,
)
from sqlalchemy.ext.declarative import declared_attr
-from sqlalchemy.orm import backref, relationship
+from sqlalchemy.orm import backref, Mapped, mapped_column, relationship
-from ... import Model
-from ..._compat import as_unicode
_dont_audit = False
class Permission(Model):
__tablename__ = "ab_permission"
- id = Column(Integer, Sequence("ab_permission_id_seq"), primary_key=True)
- name = Column(String(100), unique=True, nullable=False)
+
+ id: Mapped[int] = mapped_column(
+ Integer,
+ Sequence("ab_permission_id_seq", start=1, increment=1, minvalue=1, cycle=False),
+ primary_key=True,
+ )
+ name: Mapped[str] = mapped_column(String(100), unique=True, nullable=False)
def __repr__(self):
return self.name
@@ -32,8 +38,13 @@ def __repr__(self):
class ViewMenu(Model):
__tablename__ = "ab_view_menu"
- id = Column(Integer, Sequence("ab_view_menu_id_seq"), primary_key=True)
- name = Column(String(250), unique=True, nullable=False)
+
+ id: Mapped[int] = mapped_column(
+ Integer,
+ Sequence("ab_view_menu_id_seq", start=1, increment=1, minvalue=1, cycle=False),
+ primary_key=True,
+ )
+ name: Mapped[str] = mapped_column(String(250), unique=True, nullable=False)
def __eq__(self, other):
return (isinstance(other, self.__class__)) and (self.name == other.name)
@@ -45,26 +56,57 @@ def __repr__(self):
return self.name
-assoc_permissionview_role = Table(
+assoc_permissionview_role = db.Table(
"ab_permission_view_role",
- Model.metadata,
- Column("id", Integer, Sequence("ab_permission_view_role_id_seq"), primary_key=True),
+ Column(
+ "id",
+ Integer,
+ Sequence(
+ "ab_permission_view_role_id_seq",
+ start=1,
+ increment=1,
+ minvalue=1,
+ cycle=False,
+ ),
+ primary_key=True,
+ ),
Column("permission_view_id", Integer, ForeignKey("ab_permission_view.id")),
Column("role_id", Integer, ForeignKey("ab_role.id")),
UniqueConstraint("permission_view_id", "role_id"),
)
+assoc_user_role = db.Table(
+ "ab_user_role",
+ Column(
+ "id",
+ Integer,
+ Sequence("ab_user_role_id_seq", start=1, increment=1, minvalue=1, cycle=False),
+ primary_key=True,
+ ),
+ Column("user_id", Integer, ForeignKey("ab_user.id")),
+ Column("role_id", Integer, ForeignKey("ab_role.id")),
+ UniqueConstraint("user_id", "role_id"),
+)
+
+
class Role(Model):
__tablename__ = "ab_role"
- id = Column(Integer, Sequence("ab_role_id_seq"), primary_key=True)
- name = Column(String(64), unique=True, nullable=False)
- permissions = relationship(
+ id: Mapped[int] = mapped_column(
+ Integer,
+ Sequence("ab_role_id_seq", start=1, increment=1, minvalue=1, cycle=False),
+ primary_key=True,
+ )
+ name: Mapped[str] = mapped_column(String(64), unique=True, nullable=False)
+ permissions: Mapped[List["PermissionView"]] = relationship(
"PermissionView",
secondary=assoc_permissionview_role,
backref="role",
)
+ user: Mapped[List["User"]] = relationship(
+ "User", secondary=assoc_user_role, backref="roles", enable_typechecks=False
+ )
def __repr__(self):
return self.name
@@ -73,66 +115,67 @@ def __repr__(self):
class PermissionView(Model):
__tablename__ = "ab_permission_view"
__table_args__ = (UniqueConstraint("permission_id", "view_menu_id"),)
- id = Column(Integer, Sequence("ab_permission_view_id_seq"), primary_key=True)
- permission_id = Column(Integer, ForeignKey("ab_permission.id"))
- permission = relationship("Permission", lazy="joined")
- view_menu_id = Column(Integer, ForeignKey("ab_view_menu.id"))
- view_menu = relationship("ViewMenu", lazy="joined")
+ id: Mapped[int] = mapped_column(
+ Integer,
+ Sequence(
+ "ab_permission_view_id_seq", start=1, increment=1, minvalue=1, cycle=False
+ ),
+ primary_key=True,
+ )
+ permission_id: Mapped[int] = mapped_column(Integer, ForeignKey("ab_permission.id"))
+ permission: Mapped[Permission] = relationship("Permission", lazy="joined")
+ view_menu_id: Mapped[int] = mapped_column(Integer, ForeignKey("ab_view_menu.id"))
+ view_menu: Mapped[ViewMenu] = relationship("ViewMenu", lazy="joined")
def __repr__(self):
return str(self.permission).replace("_", " ") + " on " + str(self.view_menu)
-assoc_user_role = Table(
- "ab_user_role",
- Model.metadata,
- Column("id", Integer, Sequence("ab_user_role_id_seq"), primary_key=True),
- Column("user_id", Integer, ForeignKey("ab_user.id")),
- Column("role_id", Integer, ForeignKey("ab_role.id")),
- UniqueConstraint("user_id", "role_id"),
-)
-
-
class User(Model):
__tablename__ = "ab_user"
- id = Column(Integer, Sequence("ab_user_id_seq"), primary_key=True)
- first_name = Column(String(64), nullable=False)
- last_name = Column(String(64), nullable=False)
- username = Column(String(64), unique=True, nullable=False)
- password = Column(String(256))
- active = Column(Boolean)
- email = Column(String(320), unique=True, nullable=False)
- last_login = Column(DateTime)
- login_count = Column(Integer)
- fail_login_count = Column(Integer)
- roles = relationship("Role", secondary=assoc_user_role, backref="user")
- created_on = Column(
+ id: Mapped[int] = mapped_column(
+ Integer,
+ Sequence("ab_user_id_seq", start=1, increment=1, minvalue=1, cycle=False),
+ primary_key=True,
+ )
+ first_name: Mapped[str] = mapped_column(String(64), nullable=False)
+ last_name: Mapped[str] = mapped_column(String(64), nullable=False)
+ username: Mapped[str] = mapped_column(String(64), unique=True, nullable=False)
+ password: Mapped[Optional[str]] = mapped_column(String(256))
+ active: Mapped[Optional[bool]] = mapped_column(Boolean, default=True)
+ email: Mapped[str] = mapped_column(String(320), unique=True, nullable=False)
+ last_login: Mapped[Optional[datetime.datetime]] = mapped_column(
+ DateTime, nullable=True
+ )
+ login_count: Mapped[Optional[int]] = mapped_column(Integer, nullable=True)
+ fail_login_count: Mapped[Optional[int]] = mapped_column(Integer, nullable=True)
+ created_on: Mapped[Optional[datetime.datetime]] = mapped_column(
DateTime, default=lambda: datetime.datetime.now(), nullable=True
)
- changed_on = Column(
+ changed_on: Mapped[Optional[datetime.datetime]] = mapped_column(
DateTime, default=lambda: datetime.datetime.now(), nullable=True
)
@declared_attr
- def created_by_fk(self):
+ def created_by_fk(self) -> Column:
return Column(
Integer, ForeignKey("ab_user.id"), default=self.get_user_id, nullable=True
)
@declared_attr
- def changed_by_fk(self):
+ def changed_by_fk(self) -> Column:
return Column(
Integer, ForeignKey("ab_user.id"), default=self.get_user_id, nullable=True
)
- created_by = relationship(
+ created_by: Mapped["User"] = relationship(
"User",
backref=backref("created", uselist=True),
remote_side=[id],
primaryjoin="User.created_by_fk == User.id",
uselist=False,
)
- changed_by = relationship(
+ changed_by: Mapped["User"] = relationship(
"User",
backref=backref("changed", uselist=True),
remote_side=[id],
@@ -171,11 +214,19 @@ def __repr__(self):
class RegisterUser(Model):
__tablename__ = "ab_register_user"
- id = Column(Integer, Sequence("ab_register_user_id_seq"), primary_key=True)
- first_name = Column(String(64), nullable=False)
- last_name = Column(String(64), nullable=False)
- username = Column(String(64), unique=True, nullable=False)
- password = Column(String(256))
- email = Column(String(64), nullable=False)
- registration_date = Column(DateTime, default=datetime.datetime.now, nullable=True)
- registration_hash = Column(String(256))
+ id = mapped_column(
+ Integer,
+ Sequence(
+ "ab_register_user_id_seq", start=1, increment=1, minvalue=1, cycle=False
+ ),
+ primary_key=True,
+ )
+ first_name: Mapped[str] = mapped_column(String(64), nullable=False)
+ last_name: Mapped[str] = mapped_column(String(64), nullable=False)
+ username: Mapped[str] = mapped_column(String(64), unique=True, nullable=False)
+ password: Mapped[Optional[str]] = mapped_column(String(256))
+ email: Mapped[str] = mapped_column(String(320), unique=True, nullable=False)
+ registration_date: Mapped[Optional[datetime.datetime]] = mapped_column(
+ DateTime, default=lambda: datetime.datetime.now(), nullable=True
+ )
+ registration_hash: Mapped[Optional[str]] = mapped_column(String(256))
diff --git a/flask_appbuilder/security/views.py b/flask_appbuilder/security/views.py
index 86fa1021fe..dbda5cdf40 100644
--- a/flask_appbuilder/security/views.py
+++ b/flask_appbuilder/security/views.py
@@ -510,7 +510,7 @@ def login(self):
def logout(self):
logout_user()
return redirect(
- self.appbuilder.app.config.get(
+ current_app.config.get(
"LOGOUT_REDIRECT_URL", self.appbuilder.get_url_for_index
)
)
diff --git a/flask_appbuilder/views.py b/flask_appbuilder/views.py
index 3c2ba0aff4..7bc16bcf04 100644
--- a/flask_appbuilder/views.py
+++ b/flask_appbuilder/views.py
@@ -5,6 +5,7 @@
from flask import (
abort,
+ current_app,
flash,
jsonify,
make_response,
@@ -14,17 +15,32 @@
session,
url_for,
)
+from flask_appbuilder._compat import as_unicode, string_types
+from flask_appbuilder.baseviews import (
+ BaseCRUDView,
+ BaseFormView,
+ BaseView,
+ expose,
+ expose_api,
+)
+from flask_appbuilder.const import FLAMSG_ERR_SEC_ACCESS_DENIED, PERMISSION_PREFIX
from flask_appbuilder.exceptions import FABException
+from flask_appbuilder.filemanager import uuid_originalname
+from flask_appbuilder.security.decorators import (
+ has_access,
+ has_access_api,
+ permission_name,
+)
+from flask_appbuilder.urltools import (
+ get_filter_args,
+ get_order_args,
+ get_page_args,
+ get_page_size_args,
+)
+from flask_appbuilder.widgets import GroupFormListWidget, ListMasterWidget
+from sqlalchemy.exc import SQLAlchemyError
-from ._compat import as_unicode, string_types
-from .baseviews import BaseCRUDView, BaseFormView, BaseView, expose, expose_api
-from .const import FLAMSG_ERR_SEC_ACCESS_DENIED, PERMISSION_PREFIX
-from .filemanager import uuid_originalname
-from .security.decorators import has_access, has_access_api, permission_name
-from .urltools import get_filter_args, get_order_args, get_page_args, get_page_size_args
-from .widgets import GroupFormListWidget, ListMasterWidget
-
log = logging.getLogger(__name__)
@@ -332,16 +348,22 @@ def api_create(self):
item = self.datamodel.obj()
form.populate_obj(item)
self.pre_add(item)
- if self.datamodel.add(item):
+ try:
+ self.datamodel.add(item)
self.post_add(item)
http_return_code = 200
- else:
+ payload = {
+ "message": self.add_row_message,
+ "item": self.show_item_dict(item),
+ "severity": "success",
+ }
+ except SQLAlchemyError:
http_return_code = 500
- payload = {
- "message": self.datamodel.message[0],
- "item": self.show_item_dict(item),
- "severity": self.datamodel.message[1],
- }
+ payload = {
+ "message": self.database_error_message,
+ "item": self.show_item_dict(item),
+ "severity": "danger",
+ }
else:
payload = {"message": "Validation error", "error_details": form.errors}
http_return_code = 500
@@ -377,14 +399,22 @@ def api_update(self, pk):
form.populate_obj(item)
self.pre_update(item)
- if self.datamodel.edit(item):
+ try:
+ self.datamodel.edit(item)
self.post_update(item)
http_return_code = 200
- payload = {
- "message": self.datamodel.message[0],
- "severity": self.datamodel.message[1],
- "item": self.show_item_dict(item),
- }
+ payload = {
+ "message": self.edit_row_message,
+ "severity": "success",
+ "item": self.show_item_dict(item),
+ }
+ except SQLAlchemyError:
+ http_return_code = 500
+ payload = {
+ "message": self.database_error_message,
+ "severity": "danger",
+ "item": self.show_item_dict(item),
+ }
else:
payload = {
"message": "Validation error",
@@ -402,18 +432,22 @@ def api_delete(self, pk):
if not item:
abort(404)
self.pre_delete(item)
- if self.datamodel.delete(item):
+ try:
+ self.datamodel.delete(item)
self.post_delete(item)
http_return_code = 200
- else:
+ payload = {
+ "message": self.delete_row_message,
+ "severity": "success",
+ }
+ except SQLAlchemyError:
http_return_code = 500
+ payload = {
+ "message": self.database_error_message,
+ "severity": "danger",
+ }
response = make_response(
- jsonify(
- {
- "message": self.datamodel.message[0],
- "severity": self.datamodel.message[1],
- }
- ),
+ jsonify(payload),
http_return_code,
)
response.headers["Content-Type"] = "application/json"
@@ -635,7 +669,7 @@ def delete(self, pk):
@has_access
def download(self, filename):
return send_file(
- op.join(self.appbuilder.app.config["UPLOAD_FOLDER"], filename),
+ op.join(current_app.config["UPLOAD_FOLDER"], filename),
download_name=uuid_originalname(filename),
as_attachment=True,
)
diff --git a/requirements/base.txt b/requirements/base.txt
index a7cd7822e9..de72a1d2e6 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -43,7 +43,7 @@ flask-limiter==3.5.0
# via flask-appbuilder
flask-login==0.6.3
# via flask-appbuilder
-flask-sqlalchemy==2.5.1
+flask-sqlalchemy==3.1.1
# via flask-appbuilder
flask-wtf==1.2.1
# via flask-appbuilder
@@ -76,8 +76,8 @@ marshmallow==3.20.1
# via
# flask-appbuilder
# marshmallow-sqlalchemy
-marshmallow-sqlalchemy==0.28.2
- # via Flask-AppBuilder (setup.py)
+marshmallow-sqlalchemy==0.30.0
+ # via flask-appbuilder
mdurl==0.1.2
# via markdown-it-py
ordered-set==4.1.0
@@ -87,6 +87,7 @@ packaging==23.2
# apispec
# limits
# marshmallow
+ # marshmallow-sqlalchemy
prison==0.2.1
# via flask-appbuilder
pygments==2.16.1
@@ -115,7 +116,7 @@ six==1.16.0
# via
# prison
# python-dateutil
-sqlalchemy==1.4.49
+sqlalchemy==2.0.30
# via
# flask-appbuilder
# flask-sqlalchemy
@@ -127,6 +128,7 @@ typing-extensions==4.8.0
# via
# flask-limiter
# limits
+ # sqlalchemy
werkzeug==3.0.3
# via
# flask
diff --git a/setup.cfg b/setup.cfg
index 51ce984b4e..59252b17fb 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -18,17 +18,52 @@ ignore_errors = True
[mypy-flask_appbuilder.validators]
ignore_errors = False
-check_untyped_defs = true
-disallow_untyped_calls = false
-disallow_untyped_defs = true
-warn_unused_ignores = false
+check_untyped_defs = True
+disallow_untyped_calls = False
+disallow_untyped_defs = True
+warn_unused_ignores = False
[mypy-flask_appbuilder.base]
ignore_errors = False
-check_untyped_defs = true
-disallow_untyped_calls = false
-disallow_untyped_defs = true
-warn_unused_ignores = false
+check_untyped_defs = True
+disallow_untyped_calls = False
+disallow_untyped_defs = True
+warn_unused_ignores = False
+
+[mypy-flask_appbuilder.cli]
+ignore_errors = False
+check_untyped_defs = True
+disallow_untyped_calls = False
+disallow_untyped_defs = True
+warn_unused_ignores = False
+
+[mypy-flask_appbuilder.models.sqla]
+ignore_errors = False
+check_untyped_defs = True
+disallow_untyped_calls = False
+disallow_untyped_defs = True
+warn_unused_ignores = False
+
+[mypy-flask_appbuilder.models.sqla.interface]
+ignore_errors = False
+check_untyped_defs = True
+disallow_untyped_calls = False
+disallow_untyped_defs = True
+warn_unused_ignores = False
+
+;[mypy-flask_appbuilder.api]
+;ignore_errors = False
+;check_untyped_defs = True
+;disallow_untyped_calls = False
+;disallow_untyped_defs = True
+;warn_unused_ignores = False
+
+[mypy-flask_appbuilder.models.sqla.base]
+ignore_errors = False
+check_untyped_defs = True
+disallow_untyped_calls = False
+disallow_untyped_defs = True
+warn_unused_ignores = False
[mypy-flask_appbuilder.api.convert]
ignore_errors = False
diff --git a/setup.py b/setup.py
index 0fed7cbf7c..c8cede3843 100644
--- a/setup.py
+++ b/setup.py
@@ -39,7 +39,6 @@ def desc():
package_data={"": ["LICENSE"]},
entry_points={
"flask.commands": ["fab=flask_appbuilder.cli:fab"],
- "console_scripts": ["fabmanager = flask_appbuilder.console:cli"],
},
include_package_data=True,
zip_safe=False,
@@ -53,17 +52,17 @@ def desc():
"Flask-Babel>=1, <3",
"Flask-Limiter>3,<4",
"Flask-Login>=0.3, <0.7",
- "Flask-SQLAlchemy>=2.4, <3",
+ "Flask-SQLAlchemy>=3",
"Flask-WTF>=0.14.2, <2",
"Flask-JWT-Extended>=4.0.0, <5.0.0",
"jsonschema>=3, <5",
"marshmallow>=3.18.0, <4",
- "marshmallow-sqlalchemy>=0.22.0, <0.29.0",
+ "marshmallow-sqlalchemy>=0.29.0, <1",
"python-dateutil>=2.3, <3",
"prison>=0.2.1, <1.0.0",
"PyJWT>=2.0.0, <3.0.0",
# Cautious cap
- "SQLAlchemy<1.5",
+ "SQLAlchemy>=2.0",
"sqlalchemy-utils>=0.32.21, <1",
"WTForms<4",
"werkzeug<4",
diff --git a/tests/base.py b/tests/base.py
index 8fda65a9b2..143c694f50 100644
--- a/tests/base.py
+++ b/tests/base.py
@@ -4,9 +4,9 @@
from typing import Any, Dict, List, Optional, Set
import unittest
-from flask import Flask, Response
+from flask import Flask
from flask.testing import FlaskClient
-from flask_appbuilder import AppBuilder, SQLA
+from flask_appbuilder import AppBuilder
from flask_appbuilder.const import (
API_SECURITY_PASSWORD_KEY,
API_SECURITY_PROVIDER_KEY,
@@ -23,6 +23,7 @@
USERNAME_ADMIN,
USERNAME_READONLY,
)
+from werkzeug.test import TestResponse
class FABTestCase(unittest.TestCase):
@@ -75,7 +76,7 @@ def browser_login(
password: str,
next_url: Optional[str] = None,
follow_redirects: bool = True,
- ) -> Response:
+ ) -> TestResponse:
login_url = "/login/"
if next_url:
login_url = f"{login_url}?next={next_url}"
@@ -105,11 +106,11 @@ def browser_logout(client):
def create_default_users(self, appbuilder) -> None:
with Timeline(start=datetime(2020, 1, 1), scale=0).freeze():
- self.create_admin_user(self.appbuilder, USERNAME_ADMIN, PASSWORD_ADMIN)
+ self.create_admin_user(appbuilder, USERNAME_ADMIN, PASSWORD_ADMIN)
with Timeline(start=datetime(2020, 1, 1), scale=0).freeze():
self.create_user(
- self.appbuilder,
+ appbuilder,
USERNAME_READONLY,
PASSWORD_READONLY,
"ReadOnly",
@@ -153,10 +154,17 @@ def setUp(self):
self.app.config.from_object("tests.config_api")
logging.basicConfig(level=logging.ERROR)
- self.db = SQLA(self.app)
- self.appbuilder = AppBuilder(self.app, self.db.session)
+ self.ctx = self.app.app_context()
+ self.ctx.push()
+ self.appbuilder = AppBuilder(self.app)
self.create_default_users(self.appbuilder)
+ def tearDown(self):
+ self.ctx.pop()
+ self.appbuilder = None
+ self.ctx = None
+ self.app = None
+
@property
def registered_endpoints(self) -> Set:
return {item.endpoint for item in self.app.url_map.iter_rules()}
diff --git a/tests/config_security_api.py b/tests/config_security_api.py
index 53261d4176..6fe7158b0e 100644
--- a/tests/config_security_api.py
+++ b/tests/config_security_api.py
@@ -2,10 +2,10 @@
basedir = os.path.abspath(os.path.dirname(__file__))
-SQLALCHEMY_DATABASE_URI = (
- os.environ.get("SQLALCHEMY_DATABASE_URI")
- or "postgresql+psycopg2://pguser:pguserpassword@127.0.0.1:5432/app"
-)
+SQLALCHEMY_DATABASE_URI = os.environ.get(
+ "SQLALCHEMY_DATABASE_URI"
+) or "sqlite:///" + os.path.join(basedir, "app.db")
+
FAB_ADD_SECURITY_API = True
SECRET_KEY = "thisismyscretkey"
diff --git a/tests/fixtures/data_models.py b/tests/fixtures/data_models.py
index 8a3cf71035..942a79c3fc 100644
--- a/tests/fixtures/data_models.py
+++ b/tests/fixtures/data_models.py
@@ -45,7 +45,7 @@ def model1_data(session: Session, count: int = MODEL1_DATA_SIZE) -> List[Model1]
yield model1_collection
finally:
for model_id in model_ids:
- model = session.query(Model1).get(model_id)
+ model = session.get(Model1, model_id)
if model:
session.delete(model)
session.commit()
diff --git a/tests/security/test_auth_ldap.py b/tests/security/test_auth_ldap.py
index f5596e2ec2..4167391baf 100644
--- a/tests/security/test_auth_ldap.py
+++ b/tests/security/test_auth_ldap.py
@@ -5,7 +5,7 @@
from unittest.mock import Mock
from flask import Flask
-from flask_appbuilder import AppBuilder, SQLA
+from flask_appbuilder import AppBuilder
from flask_appbuilder.security.manager import AUTH_LDAP
from flask_appbuilder.security.sqla.models import User
import jinja2
@@ -35,29 +35,20 @@ def setUp(self):
self.app.config["AUTH_LDAP_LASTNAME_FIELD"] = "sn"
self.app.config["AUTH_LDAP_EMAIL_FIELD"] = "mail"
- # start Database
- self.db = SQLA(self.app)
-
def tearDown(self):
- # Remove test user
- user_alice = self.appbuilder.sm.find_user("alice")
- if user_alice:
- self.db.session.delete(user_alice)
- self.db.session.commit()
- user_natalie = self.appbuilder.sm.find_user("natalie")
- if user_natalie:
- self.db.session.delete(user_natalie)
- self.db.session.commit()
-
- # stop Flask
- self.app = None
+ from flask_appbuilder.extensions import db
- # stop Flask-AppBuilder
- self.appbuilder = None
-
- # stop Database
- self.db.session.remove()
- self.db = None
+ # Remove test user
+ with self.app.app_context():
+ # Remove test user
+ user_alice = self.appbuilder.sm.find_user("alice")
+ if user_alice:
+ db.session.delete(user_alice)
+ db.session.commit()
+ user_natalie = self.appbuilder.sm.find_user("natalie")
+ if user_natalie:
+ db.session.delete(user_natalie)
+ db.session.commit()
def assertOnlyDefaultUsers(self):
users = self.appbuilder.sm.get_all_users()
@@ -78,22 +69,23 @@ def test___search_ldap(self):
self.app.config["AUTH_LDAP_BIND_USER"] = "cn=admin,dc=example,dc=org"
self.app.config["AUTH_LDAP_BIND_PASSWORD"] = "admin_password"
self.app.config["AUTH_LDAP_SEARCH"] = "ou=users,dc=example,dc=org"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # prepare `con` object
- con = ldap.initialize("ldap://localhost:1389/")
- sm._ldap_bind_indirect(ldap, con)
+ # prepare `con` object
+ con = ldap.initialize("ldap://localhost:1389/")
+ sm._ldap_bind_indirect(ldap, con)
- # run `_search_ldap` method
- user_dn, user_attributes = sm._search_ldap(ldap, con, "alice")
+ # run `_search_ldap` method
+ user_dn, user_attributes = sm._search_ldap(ldap, con, "alice")
- # validate - search returned expected data
- self.assertEqual(user_dn, "cn=alice,ou=users,dc=example,dc=org")
- self.assertEqual(user_attributes["givenName"], [b"Alice"])
- self.assertEqual(user_attributes["sn"], [b"Doe"])
- self.assertEqual(user_attributes["mail"], [b"alice@example.org"])
+ # validate - search returned expected data
+ self.assertEqual(user_dn, "cn=alice,ou=users,dc=example,dc=org")
+ self.assertEqual(user_attributes["givenName"], [b"Alice"])
+ self.assertEqual(user_attributes["sn"], [b"Doe"])
+ self.assertEqual(user_attributes["mail"], [b"alice@example.org"])
def test___search_ldap_filter(self):
"""
@@ -108,22 +100,23 @@ def test___search_ldap_filter(self):
self.app.config[
"AUTH_LDAP_SEARCH_FILTER"
] = "(memberOf=cn=staff,ou=groups,dc=example,dc=org)"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # prepare `con` object
- con = ldap.initialize("ldap://localhost:1389/")
- sm._ldap_bind_indirect(ldap, con)
+ # prepare `con` object
+ con = ldap.initialize("ldap://localhost:1389/")
+ sm._ldap_bind_indirect(ldap, con)
- # run `_search_ldap` method
- user_dn, user_attributes = sm._search_ldap(ldap, con, "alice")
+ # run `_search_ldap` method
+ user_dn, user_attributes = sm._search_ldap(ldap, con, "alice")
- # validate - search returned expected data
- self.assertEqual(user_dn, "cn=alice,ou=users,dc=example,dc=org")
- self.assertEqual(user_attributes["givenName"], [b"Alice"])
- self.assertEqual(user_attributes["sn"], [b"Doe"])
- self.assertEqual(user_attributes["mail"], [b"alice@example.org"])
+ # validate - search returned expected data
+ self.assertEqual(user_dn, "cn=alice,ou=users,dc=example,dc=org")
+ self.assertEqual(user_attributes["givenName"], [b"Alice"])
+ self.assertEqual(user_attributes["sn"], [b"Doe"])
+ self.assertEqual(user_attributes["mail"], [b"alice@example.org"])
def test___search_ldap_with_search_referrals(self):
"""
@@ -132,71 +125,73 @@ def test___search_ldap_with_search_referrals(self):
self.app.config["AUTH_LDAP_BIND_USER"] = "uid=admin,ou=users,dc=example,dc=org"
self.app.config["AUTH_LDAP_BIND_PASSWORD"] = "admin_password"
self.app.config["AUTH_LDAP_SEARCH"] = "ou=users,dc=example,dc=org"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
-
- user_alice = (
- "cn=alice,ou=users,dc=example,dc=org",
- {
- "uid": ["alice"],
- "userPassword": ["alice_password"],
- "memberOf": [b"cn=staff,ou=groups,o=test"],
- "givenName": [b"Alice"],
- "sn": [b"Doe"],
- "mail": [b"alice@example.org"],
- },
- )
- # run `_search_ldap` method w/mocked ldap connection
- mock_con = Mock()
- mock_con.search_s.return_value = [
- (
- None,
- [
- "ldap://ForestDnsZones.mycompany.com/"
- "DC=ForestDnsZones,DC=mycompany,DC=com"
- ],
- ),
- user_alice,
- (None, ["ldap://mycompany.com/CN=Configuration,DC=mycompany,DC=com"]),
- ]
- user_dn, user_attributes = sm._search_ldap(ldap, mock_con, "alice")
-
- # validate - search returned expected data
- self.assertEqual(user_dn, user_alice[0])
- self.assertEqual(user_attributes["givenName"], user_alice[1]["givenName"])
- self.assertEqual(user_attributes["sn"], user_alice[1]["sn"])
- self.assertEqual(user_attributes["mail"], user_alice[1]["mail"])
-
- mock_con.search_s.assert_called()
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
+
+ user_alice = (
+ "cn=alice,ou=users,dc=example,dc=org",
+ {
+ "uid": ["alice"],
+ "userPassword": ["alice_password"],
+ "memberOf": [b"cn=staff,ou=groups,o=test"],
+ "givenName": [b"Alice"],
+ "sn": [b"Doe"],
+ "mail": [b"alice@example.org"],
+ },
+ )
+ # run `_search_ldap` method w/mocked ldap connection
+ mock_con = Mock()
+ mock_con.search_s.return_value = [
+ (
+ None,
+ [
+ "ldap://ForestDnsZones.mycompany.com/"
+ "DC=ForestDnsZones,DC=mycompany,DC=com"
+ ],
+ ),
+ user_alice,
+ (None, ["ldap://mycompany.com/CN=Configuration,DC=mycompany,DC=com"]),
+ ]
+ user_dn, user_attributes = sm._search_ldap(ldap, mock_con, "alice")
+
+ # validate - search returned expected data
+ self.assertEqual(user_dn, user_alice[0])
+ self.assertEqual(user_attributes["givenName"], user_alice[1]["givenName"])
+ self.assertEqual(user_attributes["sn"], user_alice[1]["sn"])
+ self.assertEqual(user_attributes["mail"], user_alice[1]["mail"])
+
+ mock_con.search_s.assert_called()
def test__missing_credentials(self):
"""
LDAP: test login flow for - missing credentials
"""
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # validate - login failure (missing username)
- self.assertIsNone(sm.auth_user_ldap(None, "password"))
- self.assertIsNone(sm.auth_user_ldap("", "password"))
+ # validate - login failure (missing username)
+ self.assertIsNone(sm.auth_user_ldap(None, "password"))
+ self.assertIsNone(sm.auth_user_ldap("", "password"))
- # validate - login failure (missing password)
- self.assertIsNone(sm.auth_user_ldap("username", None))
- self.assertIsNone(sm.auth_user_ldap("username", ""))
+ # validate - login failure (missing password)
+ self.assertIsNone(sm.auth_user_ldap("username", None))
+ self.assertIsNone(sm.auth_user_ldap("username", ""))
- # validate - login failure (missing username/password)
- self.assertIsNone(sm.auth_user_ldap(None, None))
- self.assertIsNone(sm.auth_user_ldap("", None))
- self.assertIsNone(sm.auth_user_ldap("", ""))
- self.assertIsNone(sm.auth_user_ldap(None, ""))
+ # validate - login failure (missing username/password)
+ self.assertIsNone(sm.auth_user_ldap(None, None))
+ self.assertIsNone(sm.auth_user_ldap("", None))
+ self.assertIsNone(sm.auth_user_ldap("", ""))
+ self.assertIsNone(sm.auth_user_ldap(None, ""))
- # validate - no users were created
- self.assertOnlyDefaultUsers()
+ # validate - no users were created
+ self.assertOnlyDefaultUsers()
def test__active_user(self):
"""
@@ -206,33 +201,34 @@ def test__active_user(self):
"AUTH_LDAP_USERNAME_FORMAT"
] = "cn=%s,ou=users,dc=example,dc=org"
self.app.config["AUTH_LDAP_SEARCH"] = "ou=users,dc=example,dc=org"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
-
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
-
- # register a user
- new_user = sm.add_user(
- username="alice",
- first_name="Alice",
- last_name="Doe",
- email="alice@example.com",
- role=[],
- )
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
+
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
+
+ # register a user
+ new_user = sm.add_user(
+ username="alice",
+ first_name="Alice",
+ last_name="Doe",
+ email="alice@example.com",
+ role=[],
+ )
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # set user inactive
- new_user.active = True
+ # set user inactive
+ new_user.active = True
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
- # validate - user was not allowed to log in
- self.assertIsNotNone(user)
+ # validate - user was not allowed to log in
+ self.assertIsNotNone(user)
def test__inactive_user(self):
"""
@@ -242,33 +238,34 @@ def test__inactive_user(self):
"AUTH_LDAP_USERNAME_FORMAT"
] = "cn=%s,ou=users,dc=example,dc=org"
self.app.config["AUTH_LDAP_SEARCH"] = "ou=users,dc=example,dc=org"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
-
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
-
- # register a user
- new_user = sm.add_user(
- username="alice",
- first_name="Alice",
- last_name="Doe",
- email="alice@example.com",
- role=[],
- )
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
+
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # register a user
+ new_user = sm.add_user(
+ username="alice",
+ first_name="Alice",
+ last_name="Doe",
+ email="alice@example.com",
+ role=[],
+ )
- # set user inactive
- new_user.active = False
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # set user inactive
+ new_user.active = False
- # validate - user was not allowed to log in
- self.assertIsNone(user)
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
+
+ # validate - user was not allowed to log in
+ self.assertIsNone(user)
def test__multi_group_user_mapping_to_same_role(self):
"""
@@ -284,32 +281,33 @@ def test__multi_group_user_mapping_to_same_role(self):
self.app.config["AUTH_LDAP_SEARCH"] = "ou=users,dc=example,dc=org"
self.app.config["AUTH_USER_REGISTRATION"] = True
self.app.config["AUTH_USER_REGISTRATION_ROLE"] = "Public"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # add User role
- sm.add_role("User")
+ # add User role
+ sm.add_role("User")
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # attempt login
- user = sm.auth_user_ldap("natalie", "natalie_password")
+ # attempt login
+ user = sm.auth_user_ldap("natalie", "natalie_password")
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # validate - user was given the correct roles
- self.assertUserContainsRoles(user, ["Public", "User"])
+ # validate - user was given the correct roles
+ self.assertUserContainsRoles(user, ["Public", "User"])
- # validate - user was given the correct attributes (read from LDAP)
- self.assertEqual(user.first_name, "Natalie")
- self.assertEqual(user.last_name, "Smith")
- self.assertEqual(user.email, "natalie@example.org")
+ # validate - user was given the correct attributes (read from LDAP)
+ self.assertEqual(user.first_name, "Natalie")
+ self.assertEqual(user.last_name, "Smith")
+ self.assertEqual(user.email, "natalie@example.org")
def test__direct_bind__unregistered(self):
"""
@@ -321,29 +319,30 @@ def test__direct_bind__unregistered(self):
] = "cn=%s,ou=users,dc=example,dc=org"
self.app.config["AUTH_USER_REGISTRATION"] = True
self.app.config["AUTH_USER_REGISTRATION_ROLE"] = "Public"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # validate - user was given the AUTH_USER_REGISTRATION_ROLE role
- self.assertEqual(user.roles, [sm.find_role("Public")])
+ # validate - user was given the AUTH_USER_REGISTRATION_ROLE role
+ self.assertEqual(user.roles, [sm.find_role("Public")])
- # validate - user was given the correct attributes (read from LDAP)
- self.assertEqual(user.first_name, "Alice")
- self.assertEqual(user.last_name, "Doe")
- self.assertEqual(user.email, "alice@example.org")
+ # validate - user was given the correct attributes (read from LDAP)
+ self.assertEqual(user.first_name, "Alice")
+ self.assertEqual(user.last_name, "Doe")
+ self.assertEqual(user.email, "alice@example.org")
def test__direct_bind__unregistered__no_self_register(self):
"""
@@ -354,21 +353,22 @@ def test__direct_bind__unregistered__no_self_register(self):
"AUTH_LDAP_USERNAME_FORMAT"
] = "cn=%s,ou=users,dc=example,dc=org"
self.app.config["AUTH_USER_REGISTRATION"] = False
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
- # validate - user was not allowed to log in
- self.assertIsNone(user)
+ # validate - user was not allowed to log in
+ self.assertIsNone(user)
- # validate - no users were registered
- self.assertOnlyDefaultUsers()
+ # validate - no users were registered
+ self.assertOnlyDefaultUsers()
def test__direct_bind__unregistered__no_search(self):
"""
@@ -379,18 +379,20 @@ def test__direct_bind__unregistered__no_search(self):
"AUTH_LDAP_USERNAME_FORMAT"
] = "cn=%s,ou=users,dc=example,dc=org"
self.app.config["AUTH_USER_REGISTRATION"] = True
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
- # validate - user was NOT allowed to log in (because registration requires search)
- self.assertIsNone(user)
+ # validate - user was NOT allowed to log in
+ # (because registration requires search)
+ self.assertIsNone(user)
def test__direct_bind__registered(self):
"""
@@ -400,30 +402,31 @@ def test__direct_bind__registered(self):
self.app.config[
"AUTH_LDAP_USERNAME_FORMAT"
] = "cn=%s,ou=users,dc=example,dc=org"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
-
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
-
- # register a user
- new_user = sm.add_user( # noqa
- username="alice",
- first_name="Alice",
- last_name="Doe",
- email="alice@example.org",
- role=[],
- )
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
+
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # register a user
+ new_user = sm.add_user( # noqa
+ username="alice",
+ first_name="Alice",
+ last_name="Doe",
+ email="alice@example.org",
+ role=[],
+ )
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
+
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
def test__direct_bind__registered__no_search(self):
"""
@@ -433,30 +436,31 @@ def test__direct_bind__registered__no_search(self):
self.app.config[
"AUTH_LDAP_USERNAME_FORMAT"
] = "cn=%s,ou=users,dc=example,dc=org"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
-
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
-
- # register a user
- new_user = sm.add_user( # noqa
- username="alice",
- first_name="Alice",
- last_name="Doe",
- email="alice@example.org",
- role=[],
- )
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
+
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # register a user
+ new_user = sm.add_user( # noqa
+ username="alice",
+ first_name="Alice",
+ last_name="Doe",
+ email="alice@example.org",
+ role=[],
+ )
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # validate - user was allowed to log in (because they are already registered)
- self.assertIsInstance(user, sm.user_model)
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
+
+ # validate - user was allowed to log in (because they are already registered)
+ self.assertIsInstance(user, sm.user_model)
def test__indirect_bind__unregistered(self):
"""
@@ -467,29 +471,30 @@ def test__indirect_bind__unregistered(self):
self.app.config["AUTH_LDAP_BIND_PASSWORD"] = "admin_password"
self.app.config["AUTH_USER_REGISTRATION"] = True
self.app.config["AUTH_USER_REGISTRATION_ROLE"] = "Public"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # validate - user was given the AUTH_USER_REGISTRATION_ROLE role
- self.assertListEqual(user.roles, [sm.find_role("Public")])
+ # validate - user was given the AUTH_USER_REGISTRATION_ROLE role
+ self.assertListEqual(user.roles, [sm.find_role("Public")])
- # validate - user was given the correct attributes (read from LDAP)
- self.assertEqual(user.first_name, "Alice")
- self.assertEqual(user.last_name, "Doe")
- self.assertEqual(user.email, "alice@example.org")
+ # validate - user was given the correct attributes (read from LDAP)
+ self.assertEqual(user.first_name, "Alice")
+ self.assertEqual(user.last_name, "Doe")
+ self.assertEqual(user.email, "alice@example.org")
def test__indirect_bind__unregistered__no_self_register(self):
"""
@@ -499,21 +504,22 @@ def test__indirect_bind__unregistered__no_self_register(self):
self.app.config["AUTH_LDAP_BIND_USER"] = "cn=admin,dc=example,dc=org"
self.app.config["AUTH_LDAP_BIND_PASSWORD"] = "admin_password"
self.app.config["AUTH_USER_REGISTRATION"] = False
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
- # validate - user was not allowed to log in
- self.assertIsNone(user)
+ # validate - user was not allowed to log in
+ self.assertIsNone(user)
- # validate - no users were registered
- self.assertOnlyDefaultUsers()
+ # validate - no users were registered
+ self.assertOnlyDefaultUsers()
def test__indirect_bind__unregistered__no_search(self):
"""
@@ -524,19 +530,20 @@ def test__indirect_bind__unregistered__no_search(self):
self.app.config["AUTH_LDAP_BIND_PASSWORD"] = "admin_password"
self.app.config["AUTH_USER_REGISTRATION"] = True
self.app.config["AUTH_USER_REGISTRATION_ROLE"] = "Public"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
- # validate - user was NOT allowed to log in
- # (because indirect bind requires search)
- self.assertIsNone(user)
+ # validate - user was NOT allowed to log in
+ # (because indirect bind requires search)
+ self.assertIsNone(user)
def test__indirect_bind__registered(self):
"""
@@ -545,30 +552,31 @@ def test__indirect_bind__registered(self):
self.app.config["AUTH_LDAP_SEARCH"] = "ou=users,dc=example,dc=org"
self.app.config["AUTH_LDAP_BIND_USER"] = "cn=admin,dc=example,dc=org"
self.app.config["AUTH_LDAP_BIND_PASSWORD"] = "admin_password"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
-
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
-
- # register a user
- new_user = sm.add_user( # noqa
- username="alice",
- first_name="Alice",
- last_name="Doe",
- email="alice@example.org",
- role=[],
- )
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
+
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # register a user
+ new_user = sm.add_user( # noqa
+ username="alice",
+ first_name="Alice",
+ last_name="Doe",
+ email="alice@example.org",
+ role=[],
+ )
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
+
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
def test__indirect_bind__registered__no_search(self):
"""
@@ -577,31 +585,32 @@ def test__indirect_bind__registered__no_search(self):
self.app.config["AUTH_LDAP_SEARCH"] = None
self.app.config["AUTH_LDAP_BIND_USER"] = "cn=admin,dc=example,dc=org"
self.app.config["AUTH_LDAP_BIND_PASSWORD"] = "admin_password"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
-
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
-
- # register a user
- new_user = sm.add_user( # noqa
- username="alice",
- first_name="Alice",
- last_name="Doe",
- email="alice@example.org",
- role=[],
- )
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # register a user
+ new_user = sm.add_user( # noqa
+ username="alice",
+ first_name="Alice",
+ last_name="Doe",
+ email="alice@example.org",
+ role=[],
+ )
- # validate - user was NOT allowed to log in
- # (because indirect bind requires search)
- self.assertIsNone(user)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
+
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
+
+ # validate - user was NOT allowed to log in
+ # (because indirect bind requires search)
+ self.assertIsNone(user)
def test__direct_bind__unregistered__single_role(self):
"""
@@ -616,32 +625,33 @@ def test__direct_bind__unregistered__single_role(self):
] = "cn=%s,ou=users,dc=example,dc=org"
self.app.config["AUTH_USER_REGISTRATION"] = True
self.app.config["AUTH_USER_REGISTRATION_ROLE"] = "Public"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # add User role
- sm.add_role("User")
+ # add User role
+ sm.add_role("User")
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # validate - user was given the correct roles
- self.assertUserContainsRoles(user, ["Admin", "Public"])
+ # validate - user was given the correct roles
+ self.assertUserContainsRoles(user, ["Admin", "Public"])
- # validate - user was given the correct attributes (read from LDAP)
- self.assertEqual(user.first_name, "Alice")
- self.assertEqual(user.last_name, "Doe")
- self.assertEqual(user.email, "alice@example.org")
+ # validate - user was given the correct attributes (read from LDAP)
+ self.assertEqual(user.first_name, "Alice")
+ self.assertEqual(user.last_name, "Doe")
+ self.assertEqual(user.email, "alice@example.org")
def test__direct_bind__unregistered__multi_role(self):
"""
@@ -656,32 +666,33 @@ def test__direct_bind__unregistered__multi_role(self):
] = "cn=%s,ou=users,dc=example,dc=org"
self.app.config["AUTH_USER_REGISTRATION"] = True
self.app.config["AUTH_USER_REGISTRATION_ROLE"] = "Public"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # add User role
- sm.add_role("User")
+ # add User role
+ sm.add_role("User")
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # validate - user was given the correct roles
- self.assertUserContainsRoles(user, ["Admin", "Public", "User"])
+ # validate - user was given the correct roles
+ self.assertUserContainsRoles(user, ["Admin", "Public", "User"])
- # validate - user was given the correct attributes (read from LDAP)
- self.assertEqual(user.first_name, "Alice")
- self.assertEqual(user.last_name, "Doe")
- self.assertEqual(user.email, "alice@example.org")
+ # validate - user was given the correct attributes (read from LDAP)
+ self.assertEqual(user.first_name, "Alice")
+ self.assertEqual(user.last_name, "Doe")
+ self.assertEqual(user.email, "alice@example.org")
def test__direct_bind__registered__multi_role__no_role_sync(self):
"""
@@ -695,36 +706,37 @@ def test__direct_bind__registered__multi_role__no_role_sync(self):
"AUTH_LDAP_USERNAME_FORMAT"
] = "cn=%s,ou=users,dc=example,dc=org"
self.app.config["AUTH_LDAP_SEARCH"] = "ou=users,dc=example,dc=org"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
-
- # add User role
- sm.add_role("User")
-
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
-
- # register a user
- new_user = sm.add_user( # noqa
- username="alice",
- first_name="Alice",
- last_name="Doe",
- email="alice@example.org",
- role=[],
- )
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
+
+ # add User role
+ sm.add_role("User")
+
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
+
+ # register a user
+ new_user = sm.add_user( # noqa
+ username="alice",
+ first_name="Alice",
+ last_name="Doe",
+ email="alice@example.org",
+ role=[],
+ )
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
- # validate - user was given no roles
- self.assertListEqual(user.roles, [])
+ # validate - user was given no roles
+ self.assertListEqual(user.roles, [])
def test__direct_bind__registered__multi_role__with_role_sync(self):
"""
@@ -738,36 +750,37 @@ def test__direct_bind__registered__multi_role__with_role_sync(self):
"AUTH_LDAP_USERNAME_FORMAT"
] = "cn=%s,ou=users,dc=example,dc=org"
self.app.config["AUTH_LDAP_SEARCH"] = "ou=users,dc=example,dc=org"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
-
- # add User role
- sm.add_role("User")
-
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
-
- # register a user
- new_user = sm.add_user( # noqa
- username="alice",
- first_name="Alice",
- last_name="Doe",
- email="alice@example.org",
- role=[],
- )
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
+
+ # add User role
+ sm.add_role("User")
+
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # register a user
+ new_user = sm.add_user( # noqa
+ username="alice",
+ first_name="Alice",
+ last_name="Doe",
+ email="alice@example.org",
+ role=[],
+ )
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
- # validate - user was given the correct roles
- self.assertUserContainsRoles(user, ["Admin", "User"])
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
+
+ # validate - user was given the correct roles
+ self.assertUserContainsRoles(user, ["Admin", "User"])
def test__indirect_bind__unregistered__single_role(self):
"""
@@ -781,32 +794,33 @@ def test__indirect_bind__unregistered__single_role(self):
self.app.config["AUTH_LDAP_BIND_PASSWORD"] = "admin_password"
self.app.config["AUTH_USER_REGISTRATION"] = True
self.app.config["AUTH_USER_REGISTRATION_ROLE"] = "Public"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # add User role
- sm.add_role("User")
+ # add User role
+ sm.add_role("User")
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # validate - user was given the correct roles
- self.assertUserContainsRoles(user, ["Public", "User"])
+ # validate - user was given the correct roles
+ self.assertUserContainsRoles(user, ["Public", "User"])
- # validate - user was given the correct attributes (read from LDAP)
- self.assertEqual(user.first_name, "Alice")
- self.assertEqual(user.last_name, "Doe")
- self.assertEqual(user.email, "alice@example.org")
+ # validate - user was given the correct attributes (read from LDAP)
+ self.assertEqual(user.first_name, "Alice")
+ self.assertEqual(user.last_name, "Doe")
+ self.assertEqual(user.email, "alice@example.org")
def test__indirect_bind__unregistered__multi_role(self):
"""
@@ -820,32 +834,33 @@ def test__indirect_bind__unregistered__multi_role(self):
self.app.config["AUTH_LDAP_BIND_PASSWORD"] = "admin_password"
self.app.config["AUTH_USER_REGISTRATION"] = True
self.app.config["AUTH_USER_REGISTRATION_ROLE"] = "Public"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # add User role
- sm.add_role("User")
+ # add User role
+ sm.add_role("User")
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # validate - user was given the correct roles
- self.assertUserContainsRoles(user, ["User", "Public", "Admin"])
+ # validate - user was given the correct roles
+ self.assertUserContainsRoles(user, ["User", "Public", "Admin"])
- # validate - user was given the correct attributes (read from LDAP)
- self.assertEqual(user.first_name, "Alice")
- self.assertEqual(user.last_name, "Doe")
- self.assertEqual(user.email, "alice@example.org")
+ # validate - user was given the correct attributes (read from LDAP)
+ self.assertEqual(user.first_name, "Alice")
+ self.assertEqual(user.last_name, "Doe")
+ self.assertEqual(user.email, "alice@example.org")
def test__indirect_bind__registered__multi_role__no_role_sync(self):
"""
@@ -858,36 +873,37 @@ def test__indirect_bind__registered__multi_role__no_role_sync(self):
self.app.config["AUTH_LDAP_SEARCH"] = "ou=users,dc=example,dc=org"
self.app.config["AUTH_LDAP_BIND_USER"] = "cn=admin,dc=example,dc=org"
self.app.config["AUTH_LDAP_BIND_PASSWORD"] = "admin_password"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
-
- # add User role
- sm.add_role("User")
-
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
-
- # register a user
- new_user = sm.add_user( # noqa
- username="alice",
- first_name="Alice",
- last_name="Doe",
- email="alice@example.org",
- role=[],
- )
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # add User role
+ sm.add_role("User")
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # register a user
+ new_user = sm.add_user( # noqa
+ username="alice",
+ first_name="Alice",
+ last_name="Doe",
+ email="alice@example.org",
+ role=[],
+ )
- # validate - user was given no roles
- self.assertListEqual(user.roles, [])
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
+
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
+
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
+
+ # validate - user was given no roles
+ self.assertListEqual(user.roles, [])
def test__indirect_bind__registered__multi_role__with_role_sync(self):
"""
@@ -900,36 +916,37 @@ def test__indirect_bind__registered__multi_role__with_role_sync(self):
self.app.config["AUTH_LDAP_SEARCH"] = "ou=users,dc=example,dc=org"
self.app.config["AUTH_LDAP_BIND_USER"] = "cn=admin,dc=example,dc=org"
self.app.config["AUTH_LDAP_BIND_PASSWORD"] = "admin_password"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
-
- # add User role
- sm.add_role("User")
-
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
-
- # register a user
- new_user = sm.add_user( # noqa
- username="alice",
- first_name="Alice",
- last_name="Doe",
- email="alice@example.org",
- role=[],
- )
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
+
+ # add User role
+ sm.add_role("User")
+
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # register a user
+ new_user = sm.add_user( # noqa
+ username="alice",
+ first_name="Alice",
+ last_name="Doe",
+ email="alice@example.org",
+ role=[],
+ )
- # attempt login
- user = sm.auth_user_ldap("alice", "alice_password")
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # attempt login
+ user = sm.auth_user_ldap("alice", "alice_password")
- # validate - user was given the correct roles
- self.assertUserContainsRoles(user, ["User", "Admin"])
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
+
+ # validate - user was given the correct roles
+ self.assertUserContainsRoles(user, ["User", "Admin"])
def test_login_failed_keep_next_url(self):
"""
@@ -943,19 +960,19 @@ def test_login_failed_keep_next_url(self):
self.app.config["AUTH_USER_REGISTRATION_ROLE"] = "Public"
self.app.config["WTF_CSRF_ENABLED"] = False
self.app.config["SECRET_KEY"] = "thisismyscretkey"
-
- self.appbuilder = AppBuilder(self.app, self.db.session)
- client = self.app.test_client()
- client.get("/logout/")
-
- response = client.post(
- "/login/?next=/users/userinfo/",
- data=dict(username="natalie", password="wrong_natalie_password"),
- follow_redirects=False,
- )
- response = client.post(
- response.location,
- data=dict(username="natalie", password="natalie_password"),
- follow_redirects=False,
- )
- assert response.location == "/users/userinfo/"
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ client = self.app.test_client()
+ client.get("/logout/")
+
+ response = client.post(
+ "/login/?next=/users/userinfo/",
+ data=dict(username="natalie", password="wrong_natalie_password"),
+ follow_redirects=False,
+ )
+ response = client.post(
+ response.location,
+ data=dict(username="natalie", password="natalie_password"),
+ follow_redirects=False,
+ )
+ assert response.location == "/users/userinfo/"
diff --git a/tests/security/test_auth_oauth.py b/tests/security/test_auth_oauth.py
index 4c815eb571..2ab7774fd4 100644
--- a/tests/security/test_auth_oauth.py
+++ b/tests/security/test_auth_oauth.py
@@ -5,7 +5,6 @@
from authlib.jose.errors import BadSignatureError
from flask import Flask
from flask_appbuilder import AppBuilder
-from flask_appbuilder import SQLA
from flask_appbuilder.const import AUTH_OAUTH
from flask_appbuilder.exceptions import InvalidLoginAttempt
from flask_appbuilder.exceptions import OAuthProviderUnknown
@@ -65,25 +64,22 @@ def setUp(self):
},
]
- # start Database
- self.db = SQLA(self.app)
-
def tearDown(self):
- # Remove test user
- user_alice = self.appbuilder.sm.find_user("alice")
- if user_alice:
- self.db.session.delete(user_alice)
- self.db.session.commit()
-
- # stop Flask
- self.app = None
-
- # stop Flask-AppBuilder
- self.appbuilder = None
+ from flask_appbuilder.extensions import db
- # stop Database
- self.db.session.remove()
- self.db = None
+ # Remove test user
+ with self.app.app_context():
+ user_alice = self.appbuilder.sm.find_user("alice")
+ if user_alice:
+ db.session.delete(user_alice)
+ db.session.commit()
+
+ # stop Flask
+ self.app = None
+ # stop Flask-AppBuilder
+ self.appbuilder = None
+ # stop Database
+ db.session.remove()
def assertOnlyDefaultUsers(self):
users = self.appbuilder.sm.get_all_users()
@@ -108,56 +104,62 @@ def test__inactive_user(self):
"""
OAUTH: test login flow for - inactive user
"""
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
-
- # register a user
- new_user = sm.add_user(
- username="alice",
- first_name="Alice",
- last_name="Doe",
- email="alice@example.com",
- role=[],
- )
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ users = self.appbuilder.session.query(sm.user_model).all()
+ for user in users:
+ self.appbuilder.session.delete(user)
+ self.appbuilder.session.commit()
+ create_default_users(self.appbuilder.session)
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
+
+ # register a user
+ new_user = sm.add_user(
+ username="alice",
+ first_name="Alice",
+ last_name="Doe",
+ email="alice@example.com",
+ role=[],
+ )
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # set user inactive
- new_user.active = False
+ # set user inactive
+ new_user.active = False
- # attempt login
- user = sm.auth_user_oauth(self.userinfo_alice)
+ # attempt login
+ user = sm.auth_user_oauth(self.userinfo_alice)
- # validate - user was not allowed to log in
- self.assertIsNone(user)
+ # validate - user was not allowed to log in
+ self.assertIsNone(user)
def test__missing_username(self):
"""
OAUTH: test login flow for - missing credentials
"""
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # create userinfo with missing info
- userinfo_missing = self.userinfo_alice.copy()
- userinfo_missing["username"] = ""
+ # create userinfo with missing info
+ userinfo_missing = self.userinfo_alice.copy()
+ userinfo_missing["username"] = ""
- # attempt login
- user = sm.auth_user_oauth(userinfo_missing)
+ # attempt login
+ user = sm.auth_user_oauth(userinfo_missing)
- # validate - login failure (missing username)
- self.assertIsNone(user)
+ # validate - login failure (missing username)
+ self.assertIsNone(user)
- # validate - no users were created
- self.assertOnlyDefaultUsers()
+ # validate - no users were created
+ self.assertOnlyDefaultUsers()
def test__unregistered(self):
"""
@@ -165,50 +167,52 @@ def test__unregistered(self):
"""
self.app.config["AUTH_USER_REGISTRATION"] = True
self.app.config["AUTH_USER_REGISTRATION_ROLE"] = "Public"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # attempt login
- user = sm.auth_user_oauth(self.userinfo_alice)
+ # attempt login
+ user = sm.auth_user_oauth(self.userinfo_alice)
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # validate - user was given the AUTH_USER_REGISTRATION_ROLE role
- self.assertEqual(user.roles, [sm.find_role("Public")])
+ # validate - user was given the AUTH_USER_REGISTRATION_ROLE role
+ self.assertEqual(user.roles, [sm.find_role("Public")])
- # validate - user was given the correct attributes
- self.assertEqual(user.first_name, "Alice")
- self.assertEqual(user.last_name, "Doe")
- self.assertEqual(user.email, "alice@example.com")
+ # validate - user was given the correct attributes
+ self.assertEqual(user.first_name, "Alice")
+ self.assertEqual(user.last_name, "Doe")
+ self.assertEqual(user.email, "alice@example.com")
def test__unregistered__no_self_register(self):
"""
OAUTH: test login flow for - unregistered user - no self-registration
"""
self.app.config["AUTH_USER_REGISTRATION"] = False
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # attempt login
- user = sm.auth_user_oauth(self.userinfo_alice)
+ # attempt login
+ user = sm.auth_user_oauth(self.userinfo_alice)
- # validate - user was not allowed to log in
- self.assertIsNone(user)
+ # validate - user was not allowed to log in
+ self.assertIsNone(user)
- # validate - no users were registered
- self.assertOnlyDefaultUsers()
+ # validate - no users were registered
+ self.assertOnlyDefaultUsers()
def test__unregistered__single_role(self):
"""
@@ -221,34 +225,35 @@ def test__unregistered__single_role(self):
}
self.app.config["AUTH_USER_REGISTRATION"] = True
self.app.config["AUTH_USER_REGISTRATION_ROLE"] = "Public"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # add User role
- sm.add_role("User")
+ # add User role
+ sm.add_role("User")
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # attempt login
- user = sm.auth_user_oauth(self.userinfo_alice)
+ # attempt login
+ user = sm.auth_user_oauth(self.userinfo_alice)
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # validate - user was given the correct roles
- self.assertIn(sm.find_role("Admin"), user.roles)
- self.assertIn(sm.find_role("User"), user.roles)
- self.assertIn(sm.find_role("Public"), user.roles)
+ # validate - user was given the correct roles
+ self.assertIn(sm.find_role("Admin"), user.roles)
+ self.assertIn(sm.find_role("User"), user.roles)
+ self.assertIn(sm.find_role("Public"), user.roles)
- # validate - user was given the correct attributes (read from LDAP)
- self.assertEqual(user.first_name, "Alice")
- self.assertEqual(user.last_name, "Doe")
- self.assertEqual(user.email, "alice@example.com")
+ # validate - user was given the correct attributes (read from LDAP)
+ self.assertEqual(user.first_name, "Alice")
+ self.assertEqual(user.last_name, "Doe")
+ self.assertEqual(user.email, "alice@example.com")
def test__unregistered__multi_role(self):
"""
@@ -257,34 +262,35 @@ def test__unregistered__multi_role(self):
self.app.config["AUTH_ROLES_MAPPING"] = {"GROUP_1": ["Admin", "User"]}
self.app.config["AUTH_USER_REGISTRATION"] = True
self.app.config["AUTH_USER_REGISTRATION_ROLE"] = "Public"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # add User role
- sm.add_role("User")
+ # add User role
+ sm.add_role("User")
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # attempt login
- user = sm.auth_user_oauth(self.userinfo_alice)
+ # attempt login
+ user = sm.auth_user_oauth(self.userinfo_alice)
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # validate - user was given the correct roles
- self.assertIn(sm.find_role("Admin"), user.roles)
- self.assertIn(sm.find_role("Public"), user.roles)
- self.assertIn(sm.find_role("User"), user.roles)
+ # validate - user was given the correct roles
+ self.assertIn(sm.find_role("Admin"), user.roles)
+ self.assertIn(sm.find_role("Public"), user.roles)
+ self.assertIn(sm.find_role("User"), user.roles)
- # validate - user was given the correct attributes (read from LDAP)
- self.assertEqual(user.first_name, "Alice")
- self.assertEqual(user.last_name, "Doe")
- self.assertEqual(user.email, "alice@example.com")
+ # validate - user was given the correct attributes (read from LDAP)
+ self.assertEqual(user.first_name, "Alice")
+ self.assertEqual(user.last_name, "Doe")
+ self.assertEqual(user.email, "alice@example.com")
def test__unregistered__jmespath_role(self):
"""
@@ -294,32 +300,33 @@ def test__unregistered__jmespath_role(self):
self.app.config[
"AUTH_USER_REGISTRATION_ROLE_JMESPATH"
] = "contains(['alice'], username) && 'User' || 'Public'"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
- # add User role
- sm.add_role("User")
+ # add User role
+ sm.add_role("User")
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
- # attempt login
- user = sm.auth_user_oauth(self.userinfo_alice)
+ # attempt login
+ user = sm.auth_user_oauth(self.userinfo_alice)
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # validate - user was given the correct roles
- self.assertListEqual(user.roles, [sm.find_role("User")])
+ # validate - user was given the correct roles
+ self.assertListEqual(user.roles, [sm.find_role("User")])
- # validate - user was given the correct attributes (read from LDAP)
- self.assertEqual(user.first_name, "Alice")
- self.assertEqual(user.last_name, "Doe")
- self.assertEqual(user.email, "alice@example.com")
+ # validate - user was given the correct attributes (read from LDAP)
+ self.assertEqual(user.first_name, "Alice")
+ self.assertEqual(user.last_name, "Doe")
+ self.assertEqual(user.email, "alice@example.com")
def test__registered__multi_role__no_role_sync(self):
"""
@@ -327,36 +334,37 @@ def test__registered__multi_role__no_role_sync(self):
""" # noqa
self.app.config["AUTH_ROLES_MAPPING"] = {"GROUP_1": ["Admin", "User"]}
self.app.config["AUTH_ROLES_SYNC_AT_LOGIN"] = False
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
-
- # add User role
- sm.add_role("User")
-
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
-
- # register a user
- new_user = sm.add_user( # noqa
- username="alice",
- first_name="Alice",
- last_name="Doe",
- email="alice@example.com",
- role=[],
- )
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
+
+ # add User role
+ sm.add_role("User")
+
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
+
+ # register a user
+ new_user = sm.add_user( # noqa
+ username="alice",
+ first_name="Alice",
+ last_name="Doe",
+ email="alice@example.com",
+ role=[],
+ )
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # attempt login
- user = sm.auth_user_oauth(self.userinfo_alice)
+ # attempt login
+ user = sm.auth_user_oauth(self.userinfo_alice)
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
- # validate - user was given no roles
- self.assertListEqual(user.roles, [])
+ # validate - user was given no roles
+ self.assertListEqual(user.roles, [])
def test__registered__multi_role__with_role_sync(self):
"""
@@ -364,38 +372,39 @@ def test__registered__multi_role__with_role_sync(self):
""" # noqa
self.app.config["AUTH_ROLES_MAPPING"] = {"GROUP_1": ["Admin", "User"]}
self.app.config["AUTH_ROLES_SYNC_AT_LOGIN"] = True
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
-
- # add User role
- sm.add_role("User")
-
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
-
- # register a user
- new_user = sm.add_user( # noqa
- username="alice",
- first_name="Alice",
- last_name="Doe",
- email="alice@example.com",
- role=[],
- )
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
+
+ # add User role
+ sm.add_role("User")
+
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
+
+ # register a user
+ new_user = sm.add_user( # noqa
+ username="alice",
+ first_name="Alice",
+ last_name="Doe",
+ email="alice@example.com",
+ role=[],
+ )
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # attempt login
- user = sm.auth_user_oauth(self.userinfo_alice)
+ # attempt login
+ user = sm.auth_user_oauth(self.userinfo_alice)
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
- # validate - user was given the correct roles
- self.assertSetEqual(
- set(user.roles), {sm.find_role("Admin"), sm.find_role("User")}
- )
+ # validate - user was given the correct roles
+ self.assertSetEqual(
+ set(user.roles), {sm.find_role("Admin"), sm.find_role("User")}
+ )
def test__registered__jmespath_role__no_role_sync(self):
"""
@@ -406,36 +415,37 @@ def test__registered__jmespath_role__no_role_sync(self):
self.app.config[
"AUTH_USER_REGISTRATION_ROLE_JMESPATH"
] = "contains(['alice'], username) && 'User' || 'Public'"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
-
- # add User role
- sm.add_role("User")
-
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
-
- # register a user
- new_user = sm.add_user( # noqa
- username="alice",
- first_name="Alice",
- last_name="Doe",
- email="alice@example.com",
- role=[],
- )
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
+
+ # add User role
+ sm.add_role("User")
+
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
+
+ # register a user
+ new_user = sm.add_user( # noqa
+ username="alice",
+ first_name="Alice",
+ last_name="Doe",
+ email="alice@example.com",
+ role=[],
+ )
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # attempt login
- user = sm.auth_user_oauth(self.userinfo_alice)
+ # attempt login
+ user = sm.auth_user_oauth(self.userinfo_alice)
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
- # validate - user was given no roles
- self.assertListEqual(user.roles, [])
+ # validate - user was given no roles
+ self.assertListEqual(user.roles, [])
def test__registered__jmespath_role__with_role_sync(self):
"""
@@ -446,125 +456,130 @@ def test__registered__jmespath_role__with_role_sync(self):
self.app.config[
"AUTH_USER_REGISTRATION_ROLE_JMESPATH"
] = "contains(['alice'], username) && 'User' || 'Public'"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
- create_default_users(self.appbuilder.session)
-
- # add User role
- sm.add_role("User")
-
- # validate - no users are registered
- self.assertOnlyDefaultUsers()
-
- # register a user
- new_user = sm.add_user( # noqa
- username="alice",
- first_name="Alice",
- last_name="Doe",
- email="alice@example.com",
- role=[],
- )
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+ create_default_users(self.appbuilder.session)
+
+ # add User role
+ sm.add_role("User")
+
+ # validate - no users are registered
+ self.assertOnlyDefaultUsers()
+
+ # register a user
+ new_user = sm.add_user( # noqa
+ username="alice",
+ first_name="Alice",
+ last_name="Doe",
+ email="alice@example.com",
+ role=[],
+ )
- # validate - user was registered
- self.assertEqual(len(sm.get_all_users()), 3)
+ # validate - user was registered
+ self.assertEqual(len(sm.get_all_users()), 3)
- # attempt login
- user = sm.auth_user_oauth(self.userinfo_alice)
+ # attempt login
+ user = sm.auth_user_oauth(self.userinfo_alice)
- # validate - user was allowed to log in
- self.assertIsInstance(user, sm.user_model)
+ # validate - user was allowed to log in
+ self.assertIsInstance(user, sm.user_model)
- # validate - user was given the correct roles
- self.assertListEqual(user.roles, [sm.find_role("User")])
+ # validate - user was given the correct roles
+ self.assertListEqual(user.roles, [sm.find_role("User")])
def test_oauth_user_info_getter(self):
- self.appbuilder = AppBuilder(self.app, self.db.session)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
- @self.appbuilder.sm.oauth_user_info_getter
- def user_info_getter(sm, provider, response):
- return {"username": "test"}
+ @self.appbuilder.sm.oauth_user_info_getter
+ def user_info_getter(sm, provider, response):
+ return {"username": "test"}
- self.assertEqual(self.appbuilder.sm.oauth_user_info, user_info_getter)
- self.assertEqual(
- self.appbuilder.sm.oauth_user_info("azure", {"claim": 1}),
- {"username": "test"},
- )
+ self.assertEqual(self.appbuilder.sm.oauth_user_info, user_info_getter)
+ self.assertEqual(
+ self.appbuilder.sm.oauth_user_info("azure", {"claim": 1}),
+ {"username": "test"},
+ )
def test_oauth_user_info_unknown_provider(self):
- self.appbuilder = AppBuilder(self.app, self.db.session)
- with self.assertRaises(OAuthProviderUnknown):
- self.appbuilder.sm.oauth_user_info("unknown", {})
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ with self.assertRaises(OAuthProviderUnknown):
+ self.appbuilder.sm.oauth_user_info("unknown", {})
def test_oauth_user_info_azure_email_upn(self):
- self.appbuilder = AppBuilder(self.app, self.db.session)
- claims = {
- "aud": "test-aud",
- "iss": "https://sts.windows.net/test/",
- "iat": 7282182129,
- "nbf": 7282182129,
- "exp": 1000000000,
- "amr": ["pwd"],
- "email": "test@gmail.com",
- "upn": "test@upn.com",
- "family_name": "user",
- "given_name": "test",
- "idp": "live.com",
- "name": "Test user",
- "oid": "b1a54a40-8dfa-4a6d-a2b8-f90b84d4b1df",
- "unique_name": "live.com#test@gmail.com",
- "ver": "1.0",
- }
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ claims = {
+ "aud": "test-aud",
+ "iss": "https://sts.windows.net/test/",
+ "iat": 7282182129,
+ "nbf": 7282182129,
+ "exp": 1000000000,
+ "amr": ["pwd"],
+ "email": "test@gmail.com",
+ "upn": "test@upn.com",
+ "family_name": "user",
+ "given_name": "test",
+ "idp": "live.com",
+ "name": "Test user",
+ "oid": "b1a54a40-8dfa-4a6d-a2b8-f90b84d4b1df",
+ "unique_name": "live.com#test@gmail.com",
+ "ver": "1.0",
+ }
- # Create an unsigned JWT
- unsigned_jwt = jwt.encode(claims, key=None, algorithm="none")
- user_info = self.appbuilder.sm.get_oauth_user_info(
- "azure", {"access_token": "", "id_token": unsigned_jwt}
- )
- self.assertEqual(
- user_info,
- {
- "email": "test@upn.com",
- "first_name": "test",
- "last_name": "user",
- "role_keys": [],
- "username": "b1a54a40-8dfa-4a6d-a2b8-f90b84d4b1df",
- },
- )
+ # Create an unsigned JWT
+ unsigned_jwt = jwt.encode(claims, key=None, algorithm="none")
+ user_info = self.appbuilder.sm.get_oauth_user_info(
+ "azure", {"access_token": "", "id_token": unsigned_jwt}
+ )
+ self.assertEqual(
+ user_info,
+ {
+ "email": "test@upn.com",
+ "first_name": "test",
+ "last_name": "user",
+ "role_keys": [],
+ "username": "b1a54a40-8dfa-4a6d-a2b8-f90b84d4b1df",
+ },
+ )
def test_oauth_user_info_azure(self):
- self.appbuilder = AppBuilder(self.app, self.db.session)
- claims = {
- "aud": "test-aud",
- "iss": "https://sts.windows.net/test/",
- "iat": 7282182129,
- "nbf": 7282182129,
- "exp": 1000000000,
- "amr": ["pwd"],
- "email": "test@gmail.com",
- "family_name": "user",
- "given_name": "test",
- "idp": "live.com",
- "name": "Test user",
- "oid": "b1a54a40-8dfa-4a6d-a2b8-f90b84d4b1df",
- "unique_name": "live.com#test@gmail.com",
- "ver": "1.0",
- }
-
- # Create an unsigned JWT
- unsigned_jwt = jwt.encode(claims, key=None, algorithm="none")
- user_info = self.appbuilder.sm.get_oauth_user_info(
- "azure", {"access_token": "", "id_token": unsigned_jwt}
- )
- self.assertEqual(
- user_info,
- {
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ claims = {
+ "aud": "test-aud",
+ "iss": "https://sts.windows.net/test/",
+ "iat": 7282182129,
+ "nbf": 7282182129,
+ "exp": 1000000000,
+ "amr": ["pwd"],
"email": "test@gmail.com",
- "first_name": "test",
- "last_name": "user",
- "role_keys": [],
- "username": "b1a54a40-8dfa-4a6d-a2b8-f90b84d4b1df",
- },
- )
+ "family_name": "user",
+ "given_name": "test",
+ "idp": "live.com",
+ "name": "Test user",
+ "oid": "b1a54a40-8dfa-4a6d-a2b8-f90b84d4b1df",
+ "unique_name": "live.com#test@gmail.com",
+ "ver": "1.0",
+ }
+
+ # Create an unsigned JWT
+ unsigned_jwt = jwt.encode(claims, key=None, algorithm="none")
+ user_info = self.appbuilder.sm.get_oauth_user_info(
+ "azure", {"access_token": "", "id_token": unsigned_jwt}
+ )
+ self.assertEqual(
+ user_info,
+ {
+ "email": "test@gmail.com",
+ "first_name": "test",
+ "last_name": "user",
+ "role_keys": [],
+ "username": "b1a54a40-8dfa-4a6d-a2b8-f90b84d4b1df",
+ },
+ )
def test_oauth_user_info_azure_with_jwt_validation(self):
self.app.config["OAUTH_PROVIDERS"] = [
@@ -591,27 +606,27 @@ def test_oauth_user_info_azure_with_jwt_validation(self):
},
}
]
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ claims = {
+ "aud": "test-aud",
+ "iss": "https://sts.windows.net/test/",
+ "iat": 1696601585,
+ "nbf": 1696601585,
+ "exp": 7282182129, # 100 years from now ;)
+ "amr": ["pwd"],
+ "email": "test@gmail.com",
+ "family_name": "user",
+ "given_name": "test",
+ "idp": "live.com",
+ "name": "Test user",
+ "oid": "b1a54a40-8dfa-4a6d-a2b8-f90b84d4b1df",
+ "unique_name": "live.com#test@gmail.com",
+ "ver": "1.0",
+ }
+ from unittest.mock import MagicMock
- self.appbuilder = AppBuilder(self.app, self.db.session)
- claims = {
- "aud": "test-aud",
- "iss": "https://sts.windows.net/test/",
- "iat": 1696601585,
- "nbf": 1696601585,
- "exp": 7282182129, # 100 years from now ;)
- "amr": ["pwd"],
- "email": "test@gmail.com",
- "family_name": "user",
- "given_name": "test",
- "idp": "live.com",
- "name": "Test user",
- "oid": "b1a54a40-8dfa-4a6d-a2b8-f90b84d4b1df",
- "unique_name": "live.com#test@gmail.com",
- "ver": "1.0",
- }
- from unittest.mock import MagicMock
-
- private_key = """-----BEGIN PRIVATE KEY-----
+ private_key = """-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALeDojEka93XZ/J8
bDGgn2MIHykafgCx2D6wTZgmmhzpRH7/k7J/WSsqG6eSFg38mGJukPCa4dcG8dCL
meajEf2g4IoaYiE55yXs0ou/tixBJI8wRY+NfCluxgIcHdKhZISVO6CkR5r7diN/
@@ -627,73 +642,74 @@ def test_oauth_user_info_azure_with_jwt_validation(self):
8m+N5G/MppasppHLJmXhnFeQsnBX7XcdYiCqHikuBlIzoQ0Cj5xbkfgMMCVORO64
r9+EFRsxA5GNYA==
-----END PRIVATE KEY-----"""
- # Create an unsigned JWT
- unsigned_jwt = jwt.encode(
- claims, key=private_key, algorithm="RS256", headers={"kid": "1"}
- )
- self.appbuilder.sm._get_microsoft_jwks = MagicMock(
- return_value={
- "keys": [
- {
- "alg": "RS256",
- "e": "AQAB",
- "kid": "1",
- "kty": "RSA",
- "n": "t4OiMSRr3ddn8nxsMaCfYwgfKRp-ALHYPrBNmCaaHOlEfv-"
- "Tsn9ZKyobp5IWDfyYYm6Q8Jrh1wbx0IuZ5qMR_aDgihpiITnnJezSi7-"
- "2LEEkjzBFj418KW7GAhwd0qFkhJU7oKRHmvt2I39Isc-wWcN3RSIwnlz"
- "jxSwnCTxPlPs",
- "use": "sig",
- "x5c": [
- "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3g6IxJGvd12fyfGwxoJ9"
- "jCB8pGn4Asdg+sE2YJpoc6UR+/5Oyf1krKhunkhYN/JhibpDwmuHXBvHQi5n"
- "moxH9oOCKGmIhOecl7NKLv7YsQSSPMEWPjXwpbsYCHB3SoWSElTugpEea+3Y"
- "jf0ixz7BZw3dFIjCeXOPFLCcJPE+U+wIDAQAB"
- ],
- }
- ]
- }
- )
- user_info = self.appbuilder.sm.get_oauth_user_info(
- "azure", {"access_token": "", "id_token": unsigned_jwt}
- )
- self.assertEqual(
- user_info,
- {
- "email": "test@gmail.com",
- "first_name": "test",
- "last_name": "user",
- "role_keys": [],
- "username": "b1a54a40-8dfa-4a6d-a2b8-f90b84d4b1df",
- },
- )
+ # Create an unsigned JWT
+ unsigned_jwt = jwt.encode(
+ claims, key=private_key, algorithm="RS256", headers={"kid": "1"}
+ )
+ self.appbuilder.sm._get_microsoft_jwks = MagicMock(
+ return_value={
+ "keys": [
+ {
+ "alg": "RS256",
+ "e": "AQAB",
+ "kid": "1",
+ "kty": "RSA",
+ "n": "t4OiMSRr3ddn8nxsMaCfYwgfKRp-ALHYPrBNmCaaHOlEfv-"
+ "Tsn9ZKyobp5IWDfyYYm6Q8Jrh1wbx0IuZ5qMR_aDgihpiITnnJezSi7-"
+ "2LEEkjzBFj418KW7GAhwd0qFkhJU7oKRHmvt2I39Isc-wWcN3RSIwnlz"
+ "jxSwnCTxPlPs",
+ "use": "sig",
+ "x5c": [
+ "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3g6IxJGvd12fyfGwx"
+ "oJ9jCB8pGn4Asdg+sE2YJpoc6UR+/5Oyf1krKhunkhYN/JhibpDwmuHX"
+ "BvHQi5nmoxH9oOCKGmIhOecl7NKLv7YsQSSPMEWPjXwpbsYCHB3SoWSE"
+ "lTugpEea+3Yjf0ixz7BZw3dFIjCeXOPFLCcJPE+U+wIDAQAB"
+ ],
+ }
+ ]
+ }
+ )
+ user_info = self.appbuilder.sm.get_oauth_user_info(
+ "azure", {"access_token": "", "id_token": unsigned_jwt}
+ )
+ self.assertEqual(
+ user_info,
+ {
+ "email": "test@gmail.com",
+ "first_name": "test",
+ "last_name": "user",
+ "role_keys": [],
+ "username": "b1a54a40-8dfa-4a6d-a2b8-f90b84d4b1df",
+ },
+ )
def test_oauth_user_info_auth0(self):
- self.appbuilder = AppBuilder(self.app, self.db.session)
-
- self.appbuilder.sm.oauth_remotes["auth0"].userinfo = MagicMock(
- return_value={
- "email": "test@gmail.com",
- "given_name": "test",
- "family_name": "user",
- "role_keys": [],
- "sub": "test-sub",
- }
- )
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+
+ self.appbuilder.sm.oauth_remotes["auth0"].userinfo = MagicMock(
+ return_value={
+ "email": "test@gmail.com",
+ "given_name": "test",
+ "family_name": "user",
+ "role_keys": [],
+ "sub": "test-sub",
+ }
+ )
- user_info = self.appbuilder.sm.get_oauth_user_info(
- "auth0", {"access_token": "", "id_token": ""}
- )
- self.assertEqual(
- user_info,
- {
- "email": "test@gmail.com",
- "first_name": "test",
- "last_name": "user",
- "role_keys": [],
- "username": "auth0_test-sub",
- },
- )
+ user_info = self.appbuilder.sm.get_oauth_user_info(
+ "auth0", {"access_token": "", "id_token": ""}
+ )
+ self.assertEqual(
+ user_info,
+ {
+ "email": "test@gmail.com",
+ "first_name": "test",
+ "last_name": "user",
+ "role_keys": [],
+ "username": "auth0_test-sub",
+ },
+ )
class OAuthAuthentikTestCase(unittest.TestCase):
@@ -730,63 +746,55 @@ def setUp(self):
},
]
- # start Database
- self.db = SQLA(self.app)
-
def tearDown(self):
- # Remove test user
- user_alice = self.appbuilder.sm.find_user("alice")
- if user_alice:
- self.db.session.delete(user_alice)
- self.db.session.commit()
+ from flask_appbuilder.extensions import db
- # stop Flask
- self.app = None
-
- # stop Flask-AppBuilder
- self.appbuilder = None
-
- # stop Database
- self.db.session.remove()
- self.db = None
+ # Remove test user
+ with self.app.app_context():
+ user_alice = self.appbuilder.sm.find_user("alice")
+ if user_alice:
+ db.session.delete(user_alice)
+ db.session.commit()
# ----------------
# Unit Tests
# ----------------
def test_oauth_user_info_authentik(self):
- self.appbuilder = AppBuilder(self.app, self.db.session)
- claims = {
- "iss": "https://authentik.mydomain.com/application/o/flask-appbuilder-test/",
- "sub": "2ac1102e7cf5a4b1cb2dd5adbe4761c551691ecd88991f78d0195d4d3d0cfcfa",
- "aud": "CLIENT_ID",
- "exp": 1703257941,
- "iat": 1700665941,
- "auth_time": 7282182129, # 100 years from now ;)
- "acr": "goauthentik.io/providers/oauth2/default",
- "at_hash": "cAydO2DJMi_ZL6opx3eUdw",
- "email": "alice@example.com",
- "email_verified": True,
- "name": "Alice",
- "given_name": "Alice Doe",
- "preferred_username": "alice@example.com",
- "nickname": "alice",
- "groups": ["GROUP_1", "GROUP_2"],
- }
-
- # Create an unsigned JWT
- unsigned_jwt = jwt.encode(claims, key=None, algorithm="none")
- user_info = self.appbuilder.sm.get_oauth_user_info(
- "authentik", {"access_token": "", "id_token": unsigned_jwt}
- )
- self.assertEqual(
- user_info,
- {
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ claims = {
+ "iss": "https://authentik.mydomain.com/application/o/"
+ "flask-appbuilder-test/",
+ "sub": "2ac1102e7cf5a4b1cb2dd5adbe4761c551691ecd88991f78d0195d4d3d0cfcfa",
+ "aud": "CLIENT_ID",
+ "exp": 1703257941,
+ "iat": 1700665941,
+ "auth_time": 7282182129, # 100 years from now ;)
+ "acr": "goauthentik.io/providers/oauth2/default",
+ "at_hash": "cAydO2DJMi_ZL6opx3eUdw",
"email": "alice@example.com",
- "first_name": "Alice Doe",
- "role_keys": ["GROUP_1", "GROUP_2"],
- "username": "alice",
- },
- )
+ "email_verified": True,
+ "name": "Alice",
+ "given_name": "Alice Doe",
+ "preferred_username": "alice@example.com",
+ "nickname": "alice",
+ "groups": ["GROUP_1", "GROUP_2"],
+ }
+
+ # Create an unsigned JWT
+ unsigned_jwt = jwt.encode(claims, key=None, algorithm="none")
+ user_info = self.appbuilder.sm.get_oauth_user_info(
+ "authentik", {"access_token": "", "id_token": unsigned_jwt}
+ )
+ self.assertEqual(
+ user_info,
+ {
+ "email": "alice@example.com",
+ "first_name": "Alice Doe",
+ "role_keys": ["GROUP_1", "GROUP_2"],
+ "username": "alice",
+ },
+ )
def test_oauth_user_info_authentik_with_jwt_validation(self):
self.app.config["OAUTH_PROVIDERS"] = [
@@ -816,28 +824,29 @@ def test_oauth_user_info_authentik_with_jwt_validation(self):
},
},
]
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ claims = {
+ "iss": "https://authentik.mydomain.com/application/o/"
+ "flask-appbuilder-test/",
+ "sub": "2ac1102e7cf5a4b1cb2dd5adbe4761c551691ecd88991f78d0195d4d3d0cfcfa",
+ "aud": "CLIENT_ID",
+ "exp": 3203257941,
+ "iat": 1700665941,
+ "auth_time": 7282182129, # 100 years from now ;)
+ "acr": "goauthentik.io/providers/oauth2/default",
+ "at_hash": "cAydO2DJMi_ZL6opx3eUdw",
+ "email": "alice@example.com",
+ "email_verified": True,
+ "name": "Alice",
+ "given_name": "Alice Doe",
+ "preferred_username": "alice@example.com",
+ "nickname": "alice",
+ "groups": ["GROUP_1", "GROUP_2"],
+ }
+ from unittest.mock import MagicMock
- self.appbuilder = AppBuilder(self.app, self.db.session)
- claims = {
- "iss": "https://authentik.mydomain.com/application/o/flask-appbuilder-test/",
- "sub": "2ac1102e7cf5a4b1cb2dd5adbe4761c551691ecd88991f78d0195d4d3d0cfcfa",
- "aud": "CLIENT_ID",
- "exp": 3203257941,
- "iat": 1700665941,
- "auth_time": 7282182129, # 100 years from now ;)
- "acr": "goauthentik.io/providers/oauth2/default",
- "at_hash": "cAydO2DJMi_ZL6opx3eUdw",
- "email": "alice@example.com",
- "email_verified": True,
- "name": "Alice",
- "given_name": "Alice Doe",
- "preferred_username": "alice@example.com",
- "nickname": "alice",
- "groups": ["GROUP_1", "GROUP_2"],
- }
- from unittest.mock import MagicMock
-
- private_key = """-----BEGIN PRIVATE KEY-----
+ private_key = """-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALeDojEka93XZ/J8
bDGgn2MIHykafgCx2D6wTZgmmhzpRH7/k7J/WSsqG6eSFg38mGJukPCa4dcG8dCL
meajEf2g4IoaYiE55yXs0ou/tixBJI8wRY+NfCluxgIcHdKhZISVO6CkR5r7diN/
@@ -853,45 +862,45 @@ def test_oauth_user_info_authentik_with_jwt_validation(self):
8m+N5G/MppasppHLJmXhnFeQsnBX7XcdYiCqHikuBlIzoQ0Cj5xbkfgMMCVORO64
r9+EFRsxA5GNYA==
-----END PRIVATE KEY-----"""
- # Create a signed JWT
- signed_jwt = jwt.encode(
- claims, key=private_key, algorithm="RS256", headers={"kid": "1"}
- )
- self.appbuilder.sm._get_authentik_jwks = MagicMock(
- return_value={
- "keys": [
- {
- "alg": "RS256",
- "e": "AQAB",
- "kid": "1",
- "kty": "RSA",
- "n": "t4OiMSRr3ddn8nxsMaCfYwgfKRp-ALHYPrBNmCaaHOlEfv-"
- "Tsn9ZKyobp5IWDfyYYm6Q8Jrh1wbx0IuZ5qMR_aDgihpiITnnJezSi7-"
- "2LEEkjzBFj418KW7GAhwd0qFkhJU7oKRHmvt2I39Isc-wWcN3RSIwnlz"
- "jxSwnCTxPlPs",
- "use": "sig",
- "x5c": [
- "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3g6IxJGvd12fyfGwxoJ9"
- "jCB8pGn4Asdg+sE2YJpoc6UR+/5Oyf1krKhunkhYN/JhibpDwmuHXBvHQi5n"
- "moxH9oOCKGmIhOecl7NKLv7YsQSSPMEWPjXwpbsYCHB3SoWSElTugpEea+3Y"
- "jf0ixz7BZw3dFIjCeXOPFLCcJPE+U+wIDAQAB"
- ],
- }
- ]
- }
- )
- user_info = self.appbuilder.sm.get_oauth_user_info(
- "authentik", {"access_token": "", "id_token": signed_jwt}
- )
- self.assertEqual(
- user_info,
- {
- "email": "alice@example.com",
- "first_name": "Alice Doe",
- "role_keys": ["GROUP_1", "GROUP_2"],
- "username": "alice",
- },
- )
+ # Create a signed JWT
+ signed_jwt = jwt.encode(
+ claims, key=private_key, algorithm="RS256", headers={"kid": "1"}
+ )
+ self.appbuilder.sm._get_authentik_jwks = MagicMock(
+ return_value={
+ "keys": [
+ {
+ "alg": "RS256",
+ "e": "AQAB",
+ "kid": "1",
+ "kty": "RSA",
+ "n": "t4OiMSRr3ddn8nxsMaCfYwgfKRp-ALHYPrBNmCaaHOlEfv-"
+ "Tsn9ZKyobp5IWDfyYYm6Q8Jrh1wbx0IuZ5qMR_aDgihpiITnnJezSi7-"
+ "2LEEkjzBFj418KW7GAhwd0qFkhJU7oKRHmvt2I39Isc-wWcN3RSIwnlz"
+ "jxSwnCTxPlPs",
+ "use": "sig",
+ "x5c": [
+ "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3g6IxJGvd12fyfGwx"
+ "oJ9jCB8pGn4Asdg+sE2YJpoc6UR+/5Oyf1krKhunkhYN/JhibpDwmuHX"
+ "BvHQi5nmoxH9oOCKGmIhOecl7NKLv7YsQSSPMEWPjXwpbsYCHB3SoWSE"
+ "lTugpEea+3Yjf0ixz7BZw3dFIjCeXOPFLCcJPE+U+wIDAQAB"
+ ],
+ }
+ ]
+ }
+ )
+ user_info = self.appbuilder.sm.get_oauth_user_info(
+ "authentik", {"access_token": "", "id_token": signed_jwt}
+ )
+ self.assertEqual(
+ user_info,
+ {
+ "email": "alice@example.com",
+ "first_name": "Alice Doe",
+ "role_keys": ["GROUP_1", "GROUP_2"],
+ "username": "alice",
+ },
+ )
def test_oauth_user_info_authentik_with_jwt_validation_wrong_signature(self):
"""
@@ -925,28 +934,29 @@ def test_oauth_user_info_authentik_with_jwt_validation_wrong_signature(self):
},
},
]
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ claims = {
+ "iss": "https://authentik.mydomain.com/application/o/"
+ "flask-appbuilder-test/",
+ "sub": "2ac1102e7cf5a4b1cb2dd5adbe4761c551691ecd88991f78d0195d4d3d0cfcfa",
+ "aud": "CLIENT_ID",
+ "exp": 1703257941,
+ "iat": 1700665941,
+ "auth_time": 7282182129, # 100 years from now ;)
+ "acr": "goauthentik.io/providers/oauth2/default",
+ "at_hash": "cAydO2DJMi_ZL6opx3eUdw",
+ "email": "alice@example.com",
+ "email_verified": True,
+ "name": "Alice",
+ "given_name": "Alice Doe",
+ "preferred_username": "alice@example.com",
+ "nickname": "alice",
+ "groups": ["GROUP_1", "GROUP_2"],
+ }
+ from unittest.mock import MagicMock
- self.appbuilder = AppBuilder(self.app, self.db.session)
- claims = {
- "iss": "https://authentik.mydomain.com/application/o/flask-appbuilder-test/",
- "sub": "2ac1102e7cf5a4b1cb2dd5adbe4761c551691ecd88991f78d0195d4d3d0cfcfa",
- "aud": "CLIENT_ID",
- "exp": 1703257941,
- "iat": 1700665941,
- "auth_time": 7282182129, # 100 years from now ;)
- "acr": "goauthentik.io/providers/oauth2/default",
- "at_hash": "cAydO2DJMi_ZL6opx3eUdw",
- "email": "alice@example.com",
- "email_verified": True,
- "name": "Alice",
- "given_name": "Alice Doe",
- "preferred_username": "alice@example.com",
- "nickname": "alice",
- "groups": ["GROUP_1", "GROUP_2"],
- }
- from unittest.mock import MagicMock
-
- private_key = """-----BEGIN PRIVATE KEY-----
+ private_key = """-----BEGIN PRIVATE KEY-----
MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqPfgaTEWEP3S9w0t
gsicURfo+nLW09/0KfOPinhYZ4ouzU+3xC4pSlEp8Ut9FgL0AgqNslNaK34Kq+NZ
jO9DAQIDAQABAkAgkuLEHLaqkWhLgNKagSajeobLS3rPT0Agm0f7k55FXVt743hw
@@ -956,37 +966,37 @@ def test_oauth_user_info_authentik_with_jwt_validation_wrong_signature(self):
/bDRPrtlRUDDx44wHoEhSDRdy77eiQIgE6z/k6I+ChN1LLttwX0galITxmAYrOBh
BVl433tgTTQ=
-----END PRIVATE KEY-----"""
- # Create a signed JWT
- wrong_signed_jwt = jwt.encode(
- claims, key=private_key, algorithm="RS256", headers={"kid": "1"}
- )
- self.appbuilder.sm._get_authentik_jwks = MagicMock(
- return_value={
- "keys": [
- {
- "alg": "RS256",
- "e": "AQAB",
- "kid": "1",
- "kty": "RSA",
- "n": "t4OiMSRr3ddn8nxsMaCfYwgfKRp-ALHYPrBNmCaaHOlEfv-"
- "Tsn9ZKyobp5IWDfyYYm6Q8Jrh1wbx0IuZ5qMR_aDgihpiITnnJezSi7-"
- "2LEEkjzBFj418KW7GAhwd0qFkhJU7oKRHmvt2I39Isc-wWcN3RSIwnlz"
- "jxSwnCTxPlPs",
- "use": "sig",
- "x5c": [
- "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3g6IxJGvd12fyfGwxoJ9"
- "jCB8pGn4Asdg+sE2YJpoc6UR+/5Oyf1krKhunkhYN/JhibpDwmuHXBvHQi5n"
- "moxH9oOCKGmIhOecl7NKLv7YsQSSPMEWPjXwpbsYCHB3SoWSElTugpEea+3Y"
- "jf0ixz7BZw3dFIjCeXOPFLCcJPE+U+wIDAQAB"
- ],
- }
- ]
- }
- )
- with self.assertRaises(BadSignatureError):
- self.appbuilder.sm.get_oauth_user_info(
- "authentik", {"access_token": "", "id_token": wrong_signed_jwt}
+ # Create a signed JWT
+ wrong_signed_jwt = jwt.encode(
+ claims, key=private_key, algorithm="RS256", headers={"kid": "1"}
+ )
+ self.appbuilder.sm._get_authentik_jwks = MagicMock(
+ return_value={
+ "keys": [
+ {
+ "alg": "RS256",
+ "e": "AQAB",
+ "kid": "1",
+ "kty": "RSA",
+ "n": "t4OiMSRr3ddn8nxsMaCfYwgfKRp-ALHYPrBNmCaaHOlEfv-"
+ "Tsn9ZKyobp5IWDfyYYm6Q8Jrh1wbx0IuZ5qMR_aDgihpiITnnJezSi7-"
+ "2LEEkjzBFj418KW7GAhwd0qFkhJU7oKRHmvt2I39Isc-wWcN3RSIwnlz"
+ "jxSwnCTxPlPs",
+ "use": "sig",
+ "x5c": [
+ "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3g6IxJGvd12fyfGwx"
+ "oJ9jCB8pGn4Asdg+sE2YJpoc6UR+/5Oyf1krKhunkhYN/JhibpDwmuHX"
+ "BvHQi5nmoxH9oOCKGmIhOecl7NKLv7YsQSSPMEWPjXwpbsYCHB3SoWSE"
+ "lTugpEea+3Yjf0ixz7BZw3dFIjCeXOPFLCcJPE+U+wIDAQAB"
+ ],
+ }
+ ]
+ }
)
+ with self.assertRaises(BadSignatureError):
+ self.appbuilder.sm.get_oauth_user_info(
+ "authentik", {"access_token": "", "id_token": wrong_signed_jwt}
+ )
def test_oauth_user_info_authentik_with_jwt_validation_without_signature(self):
"""
@@ -1019,30 +1029,31 @@ def test_oauth_user_info_authentik_with_jwt_validation_without_signature(self):
},
},
]
-
- self.appbuilder = AppBuilder(self.app, self.db.session)
- claims = {
- "iss": "https://authentik.mydomain.com/application/o/flask-appbuilder-test/",
- "sub": "2ac1102e7cf5a4b1cb2dd5adbe4761c551691ecd88991f78d0195d4d3d0cfcfa",
- "aud": "CLIENT_ID",
- "exp": 1703257941,
- "iat": 1700665941,
- "auth_time": 7282182129, # 100 years from now ;)
- "acr": "goauthentik.io/providers/oauth2/default",
- "at_hash": "cAydO2DJMi_ZL6opx3eUdw",
- "email": "alice@example.com",
- "email_verified": True,
- "name": "Alice",
- "given_name": "Alice Doe",
- "preferred_username": "alice@example.com",
- "nickname": "alice",
- "groups": ["GROUP_1", "GROUP_2"],
- }
- from unittest.mock import MagicMock
-
- unsigned_jwt = jwt.encode(claims, key=None, algorithm="none")
- self.appbuilder.sm._get_authentik_jwks = MagicMock(return_value={})
- with self.assertRaises(InvalidLoginAttempt):
- self.appbuilder.sm.get_oauth_user_info(
- "authentik", {"access_token": "", "id_token": unsigned_jwt}
- )
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ claims = {
+ "iss": "https://authentik.mydomain.com/application/o/"
+ "flask-appbuilder-test/",
+ "sub": "2ac1102e7cf5a4b1cb2dd5adbe4761c551691ecd88991f78d0195d4d3d0cfcfa",
+ "aud": "CLIENT_ID",
+ "exp": 1703257941,
+ "iat": 1700665941,
+ "auth_time": 7282182129, # 100 years from now ;)
+ "acr": "goauthentik.io/providers/oauth2/default",
+ "at_hash": "cAydO2DJMi_ZL6opx3eUdw",
+ "email": "alice@example.com",
+ "email_verified": True,
+ "name": "Alice",
+ "given_name": "Alice Doe",
+ "preferred_username": "alice@example.com",
+ "nickname": "alice",
+ "groups": ["GROUP_1", "GROUP_2"],
+ }
+ from unittest.mock import MagicMock
+
+ unsigned_jwt = jwt.encode(claims, key=None, algorithm="none")
+ self.appbuilder.sm._get_authentik_jwks = MagicMock(return_value={})
+ with self.assertRaises(InvalidLoginAttempt):
+ self.appbuilder.sm.get_oauth_user_info(
+ "authentik", {"access_token": "", "id_token": unsigned_jwt}
+ )
diff --git a/tests/security/test_auth_remote_user.py b/tests/security/test_auth_remote_user.py
index ff5a851e60..729d0503a8 100644
--- a/tests/security/test_auth_remote_user.py
+++ b/tests/security/test_auth_remote_user.py
@@ -1,75 +1,75 @@
import unittest
from flask import Flask
-from flask_appbuilder import AppBuilder, SQLA
+from flask_appbuilder import AppBuilder
from flask_appbuilder.const import AUTH_REMOTE_USER
class AuthRemoteUserTestCase(unittest.TestCase):
def setUp(self):
- # start Flask
self.app = Flask(__name__)
self.app.config["AUTH_TYPE"] = AUTH_REMOTE_USER
-
- # start Database
- self.db = SQLA(self.app)
+ self.app.config.from_object("tests.config_api")
def tearDown(self):
- # Remove test user
- user_alice = self.appbuilder.sm.find_user("alice")
- if user_alice:
- self.db.session.delete(user_alice)
- self.db.session.commit()
+ from flask_appbuilder.extensions import db
- # stop Flask
- self.app = None
+ with self.app.app_context():
+ # Remove test user
+ user_alice = self.appbuilder.sm.find_user("alice")
+ if user_alice:
+ db.session.delete(user_alice)
+ db.session.commit()
- # stop Flask-AppBuilder
- self.appbuilder = None
+ # stop Flask
+ self.app = None
- # stop Database
- self.db.session.remove()
- self.db = None
+ # stop Flask-AppBuilder
+ self.appbuilder = None
def test_unset_remote_user_env_var(self):
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
- self.assertEqual(sm.auth_remote_user_env_var, "REMOTE_USER")
+ self.assertEqual(sm.auth_remote_user_env_var, "REMOTE_USER")
def test_set_remote_user_env_var(self):
- self.app.config["AUTH_REMOTE_USER_ENV_VAR"] = "HTTP_REMOTE_USER"
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
+ with self.app.app_context():
+ self.app.config["AUTH_REMOTE_USER_ENV_VAR"] = "HTTP_REMOTE_USER"
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
- self.assertEqual(sm.auth_remote_user_env_var, "HTTP_REMOTE_USER")
+ self.assertEqual(sm.auth_remote_user_env_var, "HTTP_REMOTE_USER")
def test_normal_login(self):
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
- # register a user
- _ = sm.add_user(
- username="alice",
- first_name="Alice",
- last_name="Doe",
- email="alice@example.com",
- role=[],
- )
+ # register a user
+ _ = sm.add_user(
+ username="alice",
+ first_name="Alice",
+ last_name="Doe",
+ email="alice@example.com",
+ role=[],
+ )
- self.assertTrue(sm.auth_user_remote_user("alice"))
+ self.assertTrue(sm.auth_user_remote_user("alice"))
def test_inactive_user_login(self):
- self.appbuilder = AppBuilder(self.app, self.db.session)
- sm = self.appbuilder.sm
-
- # register a user
- alice_user = sm.add_user(
- username="alice",
- first_name="Alice",
- last_name="Doe",
- email="alice@example.com",
- role=[],
- )
- alice_user.active = False
- self.assertFalse(sm.auth_user_remote_user("alice"))
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ sm = self.appbuilder.sm
+
+ # register a user
+ alice_user = sm.add_user(
+ username="alice",
+ first_name="Alice",
+ last_name="Doe",
+ email="alice@example.com",
+ role=[],
+ )
+ alice_user.active = False
+ self.assertFalse(sm.auth_user_remote_user("alice"))
diff --git a/tests/security/test_mvc_security.py b/tests/security/test_mvc_security.py
index d7adea63fc..4ae47430e4 100644
--- a/tests/security/test_mvc_security.py
+++ b/tests/security/test_mvc_security.py
@@ -97,6 +97,7 @@ def test_login_invalid_user(self):
"""
Test Security Login, Logout, invalid login, invalid access
"""
+ self.browser_logout(self.client)
test_username = "testuser"
test_password = "password"
test_user = self.create_user(
@@ -116,13 +117,13 @@ def test_login_invalid_user(self):
# Using the same session make sure the user is not allowed to access when
# the user is deactivated
test_user.active = False
- self.db.session.merge(test_user)
- self.db.session.commit()
+ self.appbuilder.session.merge(test_user)
+ self.appbuilder.session.commit()
rv = self.client.get("/model1view/list/")
self.assertEqual(rv.status_code, 302)
- self.db.session.delete(test_user)
- self.db.session.commit()
+ self.appbuilder.session.delete(test_user)
+ self.appbuilder.session.commit()
def test_db_login_no_next_url(self):
"""
@@ -457,12 +458,12 @@ def test_register_user(self):
self.browser_logout(client)
user = (
- self.db.session.query(User)
+ self.appbuilder.session.query(User)
.filter(User.username == "from test 1-1")
.one_or_none()
)
- self.db.session.delete(user)
- self.db.session.commit()
+ self.appbuilder.session.delete(user)
+ self.appbuilder.session.commit()
def test_edit_user(self):
"""
@@ -501,14 +502,14 @@ def test_edit_user(self):
self.assertIn("Changed Row", data)
user = (
- self.db.session.query(User)
+ self.appbuilder.session.query(User)
.filter(User.username == _tmp_user.username)
.one_or_none()
)
assert user.email == "changed@changed.org"
- self.db.session.delete(user)
- self.db.session.commit()
+ self.appbuilder.session.delete(user)
+ self.appbuilder.session.commit()
def test_edit_user_email_validation(self):
"""
@@ -518,7 +519,7 @@ def test_edit_user_email_validation(self):
_ = self.browser_login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
read_ony_user: User = (
- self.db.session.query(User)
+ self.appbuilder.session.query(User)
.filter(User.username == USERNAME_READONLY)
.one_or_none()
)
@@ -549,7 +550,7 @@ def test_edit_user_db_fail(self):
_ = self.browser_login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
read_ony_user: User = (
- self.db.session.query(User)
+ self.appbuilder.session.query(User)
.filter(User.username == USERNAME_READONLY)
.one_or_none()
)
diff --git a/tests/security/test_rate_limiter.py b/tests/security/test_rate_limiter.py
index 554c353ebd..8e6e058ca0 100644
--- a/tests/security/test_rate_limiter.py
+++ b/tests/security/test_rate_limiter.py
@@ -1,14 +1,13 @@
import logging
from flask import Flask
-from flask_appbuilder import AppBuilder, BaseView, SQLA
+from flask_appbuilder import AppBuilder, BaseView
from flask_appbuilder.api import BaseApi, expose
from flask_appbuilder.security.decorators import limit
import hiro
import jinja2
from tests.base import FABTestCase
-
-from ..const import INVALID_LOGIN_STRING, PASSWORD_ADMIN, USERNAME_ADMIN
+from tests.const import INVALID_LOGIN_STRING, PASSWORD_ADMIN, USERNAME_ADMIN
class LimiterTestCase(FABTestCase):
@@ -21,8 +20,10 @@ def setUp(self):
self.app.config["AUTH_RATE_LIMIT"] = "2 per 5 second"
logging.basicConfig(level=logging.ERROR)
- self.db = SQLA(self.app)
- self.appbuilder = AppBuilder(self.app, self.db.session)
+ self.ctx = self.app.app_context()
+ self.ctx.push()
+
+ self.appbuilder = AppBuilder(self.app)
class Base1Api(BaseApi):
@limit("2 per second")
diff --git a/tests/test_addon.py b/tests/test_addon.py
index 5c17b98339..2afb391585 100644
--- a/tests/test_addon.py
+++ b/tests/test_addon.py
@@ -1,11 +1,9 @@
import logging
import os
-from flask_appbuilder import SQLA
+from tests.base import FABTestCase
from tests.fixtures.addon_manager import DummyAddOnManager
-from .base import FABTestCase
-
log = logging.getLogger(__name__)
@@ -21,11 +19,12 @@ def setUp(self):
self.app.config["ADDON_MANAGERS"] = [
"tests.fixtures.addon_manager.DummyAddOnManager"
]
-
- self.db = SQLA(self.app)
- self.appbuilder = AppBuilder(self.app, self.db.session)
+ self.ctx = self.app.app_context()
+ self.ctx.push()
+ self.appbuilder = AppBuilder(self.app)
def tearDown(self):
+ self.ctx.pop()
self.appbuilder = None
self.app = None
self.db = None
diff --git a/tests/test_api.py b/tests/test_api.py
index 9e38c4b8c3..ad292c018d 100644
--- a/tests/test_api.py
+++ b/tests/test_api.py
@@ -2,7 +2,7 @@
import logging
import os
-from flask_appbuilder import ModelRestApi, SQLA
+from flask_appbuilder import ModelRestApi
from flask_appbuilder.const import (
API_ADD_COLUMNS_RES_KEY,
API_ADD_COLUMNS_RIS_KEY,
@@ -86,12 +86,18 @@ def setUp(self):
self.app.config.from_object("tests.config_api")
self.app.config["WTF_CSRF_ENABLED"] = True
+ self.ctx = self.app.app_context()
+ self.ctx.push()
self.csrf = CSRFProtect(self.app)
- self.db = SQLA(self.app)
- self.appbuilder = AppBuilder(self.app, self.db.session)
-
+ self.appbuilder = AppBuilder(self.app)
self.create_default_users(self.appbuilder)
+ def tearDown(self):
+ self.appbuilder = None
+ self.ctx.pop()
+ self.ctx = None
+ self.app = None
+
def test_auth_login(self):
"""
REST Api: Test auth login CSRF
@@ -123,15 +129,21 @@ def setUp(self):
self.app = Flask(__name__)
self.app.config.from_object("tests.config_api")
self.app.config["FAB_ADD_SECURITY_VIEWS"] = False
+ self.ctx = self.app.app_context()
+ self.ctx.push()
+ self.appbuilder = AppBuilder(self.app)
- self.db = SQLA(self.app)
- self.appbuilder = AppBuilder(self.app, self.db.session)
+ def tearDown(self):
+ self.appbuilder = None
+ self.ctx.pop()
+ self.ctx = None
+ self.app = None
def test_disabled_security_views(self):
"""
REST Api: Test disabled security views
"""
- for rule in self.appbuilder.get_app.url_map.iter_rules():
+ for rule in self.app.url_map.iter_rules():
self.assertIn(rule.endpoint, self.base_fab_endpoint)
@@ -146,14 +158,21 @@ def setUp(self):
self.app.config.from_object("tests.config_api")
self.app.config["FAB_ADD_OPENAPI_VIEWS"] = False
- self.db = SQLA(self.app)
- self.appbuilder = AppBuilder(self.app, self.db.session)
+ self.ctx = self.app.app_context()
+ self.ctx.push()
+ self.appbuilder = AppBuilder(self.app)
+
+ def tearDown(self):
+ self.appbuilder = None
+ self.ctx.pop()
+ self.ctx = None
+ self.app = None
def test_disabled_security_views(self):
"""
REST Api: Test disabled OpenApi views
"""
- for rule in self.appbuilder.get_app.url_map.iter_rules():
+ for rule in self.app.url_map.iter_rules():
self.assertNotIn(rule.endpoint, self.openapi_fab_endpoint)
@@ -177,8 +196,9 @@ def setUp(self):
self.app.config.from_object("tests.config_api")
self.app.config["FAB_API_MAX_PAGE_SIZE"] = MAX_PAGE_SIZE
- self.db = SQLA(self.app)
- self.appbuilder = AppBuilder(self.app, self.db.session)
+ self.ctx = self.app.app_context()
+ self.ctx.push()
+ self.appbuilder = AppBuilder(self.app)
rison_schema = {
"type": "object",
@@ -477,9 +497,11 @@ def update(self):
self.appbuilder.add_api(Model1BeforeRequest)
def tearDown(self):
- self.appbuilder.get_session.close()
- engine = self.db.session.get_bind(mapper=None, clause=None)
- engine.dispose()
+ self.appbuilder.session.close()
+ self.appbuilder = None
+ self.ctx.pop()
+ self.ctx = None
+ self.app = None
def test_babel(self):
"""
@@ -674,7 +696,7 @@ def test_auth_authorization(self):
# Test authorized GET
with model1_data(self.appbuilder.session, 1):
- model = self.appbuilder.get_session.query(Model1).first()
+ model = self.appbuilder.session.query(Model1).first()
model_id = model.id
uri = f"api/v1/model1apirestrictedpermissions/{model_id}"
rv = self.auth_client_get(client, token, uri)
@@ -1611,7 +1633,7 @@ def test_get_list_filters_m_m(self):
"""
REST Api: Test get list filter params with many to many
"""
- session = self.appbuilder.get_session
+ session = self.appbuilder.session
child = ModelMMChild()
child.field_string = "test_child_tmp"
@@ -1737,7 +1759,7 @@ def test_get_list_multiple_search_filters(self):
"""
REST Api: Test get list multiple search filters
"""
- session = self.appbuilder.get_session
+ session = self.appbuilder.session
model1_1 = Model1(field_string="abc", field_integer=6)
session.add(model1_1)
session.commit()
@@ -1783,7 +1805,7 @@ def test_get_list_custom_search_filters(self):
"""
REST Api: Test get list custom filters
"""
- session = self.appbuilder.get_session
+ session = self.appbuilder.session
model1_1 = Model1(field_string="abc", field_integer=2)
# Custom filter will get this next model (not like 'test' and field_integer=1)
model1_2 = Model1(field_string="abcd", field_integer=1)
@@ -2186,7 +2208,7 @@ def test_delete_item(self):
with model2_data(self.appbuilder.session, 3):
model = (
- self.appbuilder.get_session.query(Model2)
+ self.appbuilder.session.query(Model2)
.filter_by(field_string="test2")
.one_or_none()
)
@@ -2194,7 +2216,7 @@ def test_delete_item(self):
uri = f"api/v1/model2api/{model_id}"
rv = self.auth_client_delete(client, token, uri)
self.assertEqual(rv.status_code, 200)
- model = self.db.session.query(Model2).get(model_id)
+ model = self.appbuilder.session.query(Model2).get(model_id)
self.assertEqual(model, None)
def test_delete_item_integrity(self):
@@ -2202,7 +2224,7 @@ def test_delete_item_integrity(self):
REST Api: Test delete item integrity
"""
# SQLLite does not support constraints by default
- engine_type = self.appbuilder.get_session.bind.dialect.name
+ engine_type = self.appbuilder.session.get_bind().name
if engine_type == "sqlite":
return
client = self.app.test_client()
@@ -2210,7 +2232,7 @@ def test_delete_item_integrity(self):
with model2_data(self.appbuilder.session, 1):
model = (
- self.appbuilder.get_session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string="test0")
.one_or_none()
)
@@ -2219,7 +2241,7 @@ def test_delete_item_integrity(self):
rv = self.auth_client_delete(client, token, uri)
self.assertEqual(rv.status_code, 422)
- model = self.db.session.query(Model1).get(pk)
+ model = self.appbuilder.session.query(Model1).get(pk)
self.assertIsNotNone(model)
def test_delete_item_not_found(self):
@@ -2230,7 +2252,7 @@ def test_delete_item_not_found(self):
token = self.login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
with model1_data(self.appbuilder.session, 2):
- max_id = self.appbuilder.get_session.query(func.max(Model1.id)).scalar()
+ max_id = self.appbuilder.session.query(func.max(Model1.id)).scalar()
pk = max_id + 1
uri = f"api/v1/model1api/{pk}"
rv = self.auth_client_delete(client, token, uri)
@@ -2245,7 +2267,7 @@ def test_delete_item_base_filters(self):
with model1_data(self.appbuilder.session, 4):
model = (
- self.appbuilder.get_session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_integer=2)
.one_or_none()
)
@@ -2264,7 +2286,7 @@ def test_update_item(self):
token = self.login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
with model1_data(self.appbuilder.session, 3):
model1 = (
- self.appbuilder.get_session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string="test2")
.one_or_none()
)
@@ -2273,7 +2295,7 @@ def test_update_item(self):
uri = f"api/v1/model1api/{model_id}"
rv = self.auth_client_put(client, token, uri, item)
self.assertEqual(rv.status_code, 200)
- model = self.db.session.query(Model1).get(model_id)
+ model = self.appbuilder.session.get(Model1, model_id)
self.assertEqual(model.field_string, "test_Put")
self.assertEqual(model.field_integer, 0)
self.assertEqual(model.field_float, 0.0)
@@ -2286,7 +2308,7 @@ def test_update_custom_validation(self):
token = self.login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
with model1_data(self.appbuilder.session, 3):
model1 = (
- self.appbuilder.get_session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string="test2")
.one_or_none()
)
@@ -2304,7 +2326,7 @@ def test_update_item_custom_schema(self):
"""
REST Api: Test update item custom schema
"""
- from .sqla.models import Model1CustomSchema
+ from tests.sqla.models import Model1CustomSchema
class Model1ApiCustomSchema(self.model1api):
edit_model_schema = Model1CustomSchema()
@@ -2342,7 +2364,7 @@ class Model1ApiCustomSchema(self.model1api):
self.assertEqual(rv.status_code, 200)
model = (
- self.db.session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string="Atest{}".format(MODEL1_DATA_SIZE + 1))
.first()
)
@@ -2358,7 +2380,7 @@ def test_update_item_base_filters(self):
token = self.login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
with model1_data(self.appbuilder.session, 4):
model1 = (
- self.appbuilder.get_session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_integer=3)
.one_or_none()
)
@@ -2367,14 +2389,14 @@ def test_update_item_base_filters(self):
uri = f"api/v1/model1apifiltered/{model_id}"
rv = self.auth_client_put(client, token, uri, item)
self.assertEqual(rv.status_code, 200)
- model = self.db.session.query(Model1).get(model_id)
+ model = self.appbuilder.session.query(Model1).get(model_id)
self.assertEqual(model.field_string, "test_Put")
self.assertEqual(model.field_integer, 3)
self.assertEqual(model.field_float, 3.0)
# We can't update an item that is base filtered
model1 = (
- self.appbuilder.get_session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_integer=1)
.one_or_none()
)
@@ -2391,7 +2413,7 @@ def test_update_item_not_found(self):
token = self.login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
with model1_data(self.appbuilder.session, 2):
- max_id = self.appbuilder.get_session.query(func.max(Model1.id)).scalar()
+ max_id = self.appbuilder.session.query(func.max(Model1.id)).scalar()
model_id = max_id + 1
item = dict(field_string="test_Put", field_integer=0, field_float=0.0)
uri = f"api/v1/model1api/{model_id}"
@@ -2407,7 +2429,7 @@ def test_update_val_size(self):
with model1_data(self.appbuilder.session, 2):
model1 = (
- self.appbuilder.get_session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string="test0")
.one_or_none()
)
@@ -2426,7 +2448,7 @@ def test_update_mm_field(self):
"""
REST Api: Test update m-m field
"""
- session = self.appbuilder.get_session
+ session = self.appbuilder.session
with model_mm_parent_data(session, 1):
model_id = session.query(ModelMMParent).first().id
@@ -2462,7 +2484,7 @@ def test_update_item_val_type(self):
with model1_data(self.appbuilder.session, 2):
model1 = (
- self.appbuilder.get_session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string="test0")
.one_or_none()
)
@@ -2495,7 +2517,7 @@ def test_update_item_excluded_cols(self):
with model1_data(self.appbuilder.session, 2):
model1 = (
- self.appbuilder.get_session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string="test0")
.one_or_none()
)
@@ -2504,7 +2526,7 @@ def test_update_item_excluded_cols(self):
uri = f"api/v1/model1apiexcludecols/{model_id}"
rv = self.auth_client_put(client, token, uri, item)
self.assertEqual(rv.status_code, 200)
- model = self.db.session.query(Model1).get(model_id)
+ model = self.appbuilder.session.query(Model1).get(model_id)
self.assertEqual(model.field_integer, 0)
self.assertEqual(model.field_float, 0.0)
self.assertEqual(model.field_date, None)
@@ -2534,7 +2556,9 @@ def test_create_item(self):
self.assertEqual(rv.status_code, 201)
self.assertEqual(data[API_RESULT_RES_KEY], item)
model = (
- self.db.session.query(Model1).filter_by(field_string="test4").first()
+ self.appbuilder.session.query(Model1)
+ .filter_by(field_string="test4")
+ .first()
)
self.assertEqual(model.field_string, "test4")
self.assertEqual(model.field_integer, 4)
@@ -2591,16 +2615,16 @@ def test_create_item_custom_validation(self):
self.assertEqual(rv.status_code, 201)
# Revert test data
- self.appbuilder.get_session.query(Model1).filter_by(
+ self.appbuilder.session.query(Model1).filter_by(
field_string=f"A{MODEL1_DATA_SIZE + 1}"
).delete()
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.commit()
def test_create_item_custom_schema(self):
"""
REST Api: Test create item custom schema
"""
- from .sqla.models import Model1CustomSchema
+ from tests.sqla.models import Model1CustomSchema
class Model1ApiCustomSchema(self.model1api):
add_model_schema = Model1CustomSchema()
@@ -2636,7 +2660,7 @@ class Model1ApiCustomSchema(self.model1api):
self.assertEqual(rv.status_code, 201)
model = (
- self.db.session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string="Atest{}".format(MODEL1_DATA_SIZE + 1))
.first()
)
@@ -2645,8 +2669,8 @@ class Model1ApiCustomSchema(self.model1api):
self.assertEqual(model.field_float, float(MODEL1_DATA_SIZE + 1))
# Revert data changes
- self.appbuilder.get_session.delete(model)
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.delete(model)
+ self.appbuilder.session.commit()
def test_create_item_val_size(self):
"""
@@ -2707,7 +2731,7 @@ def test_create_item_excluded_cols(self):
rv = self.auth_client_post(client, token, uri, item)
self.assertEqual(rv.status_code, 201)
model = (
- self.db.session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string=f"test{MODEL1_DATA_SIZE + 1}")
.first()
)
@@ -2726,13 +2750,13 @@ def test_create_item_excluded_cols(self):
self.assertEqual(data, expected_response)
# Revert test data
- self.appbuilder.get_session.query(Model1).filter_by(
+ self.appbuilder.session.query(Model1).filter_by(
field_string=f"test{MODEL1_DATA_SIZE + 1}"
).delete()
- self.appbuilder.get_session.query(Model1).filter_by(
+ self.appbuilder.session.query(Model1).filter_by(
field_string=f"test{MODEL1_DATA_SIZE + 2}"
).delete()
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.commit()
def test_list_items_with_enum(self):
"""
@@ -2757,7 +2781,7 @@ def test_get_item_with_enums(self):
"""
with model_with_enums_data(self.appbuilder.session, 1):
model1 = (
- self.appbuilder.get_session.query(ModelWithEnums)
+ self.appbuilder.session.query(ModelWithEnums)
.filter(ModelWithEnums.enum1 == "e1")
.first()
)
@@ -2811,15 +2835,13 @@ def test_create_item_with_enum(self):
rv = self.auth_client_post(client, token, uri, item)
data = json.loads(rv.data.decode("utf-8"))
self.assertEqual(rv.status_code, 201)
- model = self.db.session.query(ModelWithEnums).get(data["id"])
+ model = self.appbuilder.session.query(ModelWithEnums).get(data["id"])
self.assertEqual(model.enum1, "e1")
self.assertEqual(model.enum2, TmpEnum.e1)
# Revert test data
- self.appbuilder.get_session.query(ModelWithEnums).filter_by(
- id=data["id"]
- ).delete()
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.query(ModelWithEnums).filter_by(id=data["id"]).delete()
+ self.appbuilder.session.commit()
def test_create_item_with_enum_validation(self):
"""
@@ -2888,18 +2910,18 @@ def test_create_item_mm_field(self):
# Rollback data changes
model1 = (
- self.appbuilder.get_session.query(ModelMMParent)
+ self.appbuilder.session.query(ModelMMParent)
.filter_by(field_string="new1")
.one_or_none()
)
model2 = (
- self.appbuilder.get_session.query(ModelMMParent)
+ self.appbuilder.session.query(ModelMMParent)
.filter_by(field_string="new2")
.one_or_none()
)
- self.appbuilder.get_session.delete(model1)
- self.appbuilder.get_session.delete(model2)
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.delete(model1)
+ self.appbuilder.session.delete(model2)
+ self.appbuilder.session.commit()
def test_create_item_om_field(self):
"""
@@ -2909,9 +2931,9 @@ def test_create_item_om_field(self):
token = self.login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
child1 = ModelOMChild(field_string="child1")
child2 = ModelOMChild(field_string="child2")
- self.appbuilder.get_session.add(child1)
- self.appbuilder.get_session.add(child2)
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.add(child1)
+ self.appbuilder.session.add(child2)
+ self.appbuilder.session.commit()
item = dict(field_string="new1", children=[child1.id, child2.id])
uri = "api/v1/modelomparentapi/"
@@ -2924,13 +2946,13 @@ def test_create_item_om_field(self):
)
# Rollback data changes
model1 = (
- self.appbuilder.get_session.query(ModelOMParent)
+ self.appbuilder.session.query(ModelOMParent)
.filter_by(field_string="new1")
.one_or_none()
)
- self.appbuilder.get_session.delete(model1)
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.delete(model1)
+ self.appbuilder.session.commit()
def test_get_list_col_function(self):
"""
@@ -3106,10 +3128,10 @@ class Model2PermOverride2(ModelRestApi):
self.assertEqual(rv.status_code, 403)
# Revert test data
- self.db.session.delete(user)
- self.db.session.commit()
- self.appbuilder.get_session.delete(self.appbuilder.sm.find_role("Test"))
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.delete(user)
+ self.appbuilder.session.commit()
+ self.appbuilder.session.delete(self.appbuilder.sm.find_role("Test"))
+ self.appbuilder.session.commit()
def test_base_permission_override(self):
"""
@@ -3201,9 +3223,9 @@ class Model1PermConverge(ModelRestApi):
self.assertEqual(len(role.permissions), 1)
# Revert test data
- self.appbuilder.get_session.delete(user)
- self.appbuilder.get_session.delete(self.appbuilder.sm.find_role("Test"))
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.delete(user)
+ self.appbuilder.session.delete(self.appbuilder.sm.find_role("Test"))
+ self.appbuilder.session.commit()
def test_permission_converge_expand(self):
"""
@@ -3263,8 +3285,8 @@ class Model1PermConverge(ModelRestApi):
role = self.appbuilder.sm.find_role("Test")
self.assertEqual(len(role.permissions), 5)
- self.db.session.delete(user)
- self.db.session.commit()
+ self.appbuilder.session.delete(user)
+ self.appbuilder.session.commit()
def test_before_request(self):
"""
diff --git a/tests/test_custom_indexview.py b/tests/test_custom_indexview.py
index a575bebac5..5ced2a18eb 100644
--- a/tests/test_custom_indexview.py
+++ b/tests/test_custom_indexview.py
@@ -1,9 +1,8 @@
import logging
import os
-from flask_appbuilder import IndexView, SQLA
-
-from .base import FABTestCase
+from flask_appbuilder import AppBuilder, IndexView
+from tests.base import FABTestCase
log = logging.getLogger(__name__)
@@ -15,7 +14,6 @@ class CustomIndexView(IndexView):
class FlaskTestCase(FABTestCase):
def setUp(self):
from flask import Flask
- from flask_appbuilder import AppBuilder
self.app = Flask(__name__, template_folder=".")
self.basedir = os.path.abspath(os.path.dirname(__file__))
@@ -24,23 +22,16 @@ def setUp(self):
"FAB_INDEX_VIEW"
] = "tests.test_custom_indexview.CustomIndexView"
- self.db = SQLA(self.app)
- self.appbuilder = AppBuilder(self.app, self.db.session)
-
- def tearDown(self):
- self.appbuilder = None
- self.app = None
- self.db = None
- log.debug("TEAR DOWN")
-
def test_custom_indexview(self):
"""
Test custom index view.
"""
uri = "/"
- client = self.app.test_client()
- rv = client.get(uri)
-
- self.assertEqual(rv.status_code, 200)
- data = rv.data.decode("utf-8")
- self.assertIn("This is a custom index view.", data)
+ with self.app.app_context():
+ self.appbuilder = AppBuilder(self.app)
+ client = self.app.test_client()
+ rv = client.get(uri)
+
+ self.assertEqual(rv.status_code, 200)
+ data = rv.data.decode("utf-8")
+ self.assertIn("This is a custom index view.", data)
diff --git a/tests/test_fab_cli.py b/tests/test_fab_cli.py
index 2691d936dd..28bc214b74 100644
--- a/tests/test_fab_cli.py
+++ b/tests/test_fab_cli.py
@@ -7,7 +7,7 @@
from click.testing import CliRunner
from flask import Flask
-from flask_appbuilder import AppBuilder, SQLA
+from flask_appbuilder import AppBuilder
from flask_appbuilder.cli import (
cast_int_like_to_int,
create_app,
@@ -16,11 +16,10 @@
export_roles,
import_roles,
list_users,
- list_views,
+ # list_views,
reset_password,
)
-
-from .base import FABTestCase
+from tests.base import FABTestCase
logging.basicConfig(format="%(asctime)s:%(levelname)s:%(name)s:%(message)s")
logging.getLogger().setLevel(logging.DEBUG)
@@ -92,18 +91,29 @@ def test_create_app(self):
test_create_app.needs_inet = True
- def test_list_views(self):
- """
- CLI: Test list views
- """
- os.environ["FLASK_APP"] = "app:app"
- runner = CliRunner()
- with runner.isolated_filesystem():
- result = runner.invoke(list_views, [])
- self.assertIn("List of registered views", result.output)
- self.assertIn(" Route:/api/v1/security", result.output)
-
- test_list_views.needs_inet = True
+ # def test_list_views(self):
+ # """
+ # CLI: Test list views
+ # """
+ # os.environ["FLASK_APP"] = "app:app"
+ # runner = CliRunner()
+ # with runner.isolated_filesystem():
+ # result = runner.invoke(
+ # create_app,
+ # [
+ # f"--name={APP_DIR}",
+ # "--engine=SQLAlchemy",
+ # f"--secret-key={10*'SECRET'}",
+ # ],
+ # )
+ # self.assertIn("Downloaded the skeleton app, good coding!", result.output)
+ # os.chdir(APP_DIR)
+ #
+ # result = runner.invoke(list_views, [])
+ # self.assertIn("List of registered views", result.output)
+ # self.assertIn(" Route:/api/v1/security", result.output)
+ #
+ # test_list_views.needs_inet = True
def test_cast_int_like_to_int(self):
scenarii = {
@@ -136,38 +146,38 @@ def test_export_roles(self):
app.config[
"SQLALCHEMY_DATABASE_URI"
] = f"sqlite:///{os.path.join(tmp_dir, 'src.db')}"
- db = SQLA(app)
- app_builder = AppBuilder(app, db.session) # noqa: F841
- cli_runner = app.test_cli_runner()
-
- path = os.path.join(tmp_dir, "roles.json")
-
- export_result = cli_runner.invoke(export_roles, [f"--path={path}"])
-
- self.assertEqual(export_result.exit_code, 0)
- self.assertTrue(os.path.exists(path))
-
- with open(path, "r") as fd:
- resulting_roles = json.loads(fd.read())
-
- for expected_role in self.expected_roles:
- match = [
- r for r in resulting_roles if r["name"] == expected_role["name"]
- ]
- self.assertTrue(match)
- resulting_role = match[0]
- resulting_role_permission_view_menus = {
- (pvm["permission"]["name"], pvm["view_menu"]["name"])
- for pvm in resulting_role["permissions"]
- }
- expected_role_permission_view_menus = {
- (pvm["permission"]["name"], pvm["view_menu"]["name"])
- for pvm in expected_role["permissions"]
- }
- self.assertEqual(
- resulting_role_permission_view_menus,
- expected_role_permission_view_menus,
- )
+ with app.app_context():
+ app_builder = AppBuilder(app) # noqa: F841
+ cli_runner = app.test_cli_runner()
+
+ path = os.path.join(tmp_dir, "roles.json")
+
+ export_result = cli_runner.invoke(export_roles, [f"--path={path}"])
+
+ self.assertEqual(export_result.exit_code, 0)
+ self.assertTrue(os.path.exists(path))
+
+ with open(path, "r") as fd:
+ resulting_roles = json.loads(fd.read())
+
+ for expected_role in self.expected_roles:
+ match = [
+ r for r in resulting_roles if r["name"] == expected_role["name"]
+ ]
+ self.assertTrue(match)
+ resulting_role = match[0]
+ resulting_role_permission_view_menus = {
+ (pvm["permission"]["name"], pvm["view_menu"]["name"])
+ for pvm in resulting_role["permissions"]
+ }
+ expected_role_permission_view_menus = {
+ (pvm["permission"]["name"], pvm["view_menu"]["name"])
+ for pvm in expected_role["permissions"]
+ }
+ self.assertEqual(
+ resulting_role_permission_view_menus,
+ expected_role_permission_view_menus,
+ )
def test_export_roles_filename(self):
with tempfile.TemporaryDirectory() as tmp_dir:
@@ -177,19 +187,19 @@ def test_export_roles_filename(self):
app.config[
"SQLALCHEMY_DATABASE_URI"
] = f"sqlite:///{os.path.join(tmp_dir, 'src.db')}"
- db = SQLA(app)
- app_builder = AppBuilder(app, db.session) # noqa: F841
-
- owd = os.getcwd()
- os.chdir(tmp_dir)
- cli_runner = app.test_cli_runner()
- export_result = cli_runner.invoke(export_roles)
- os.chdir(owd)
-
- self.assertEqual(export_result.exit_code, 0)
- self.assertGreater(
- len(glob.glob(os.path.join(tmp_dir, "roles_export_*"))), 0
- )
+ with app.app_context():
+ app_builder = AppBuilder(app) # noqa: F841
+
+ owd = os.getcwd()
+ os.chdir(tmp_dir)
+ cli_runner = app.test_cli_runner()
+ export_result = cli_runner.invoke(export_roles)
+ os.chdir(owd)
+
+ self.assertEqual(export_result.exit_code, 0)
+ self.assertGreater(
+ len(glob.glob(os.path.join(tmp_dir, "roles_export_*"))), 0
+ )
@patch("json.dumps")
def test_export_roles_indent(self, mock_json_dumps):
@@ -200,57 +210,59 @@ def test_export_roles_indent(self, mock_json_dumps):
app.config[
"SQLALCHEMY_DATABASE_URI"
] = f"sqlite:///{os.path.join(tmp_dir, 'src.db')}"
- db = SQLA(app)
- app_builder = AppBuilder(app, db.session) # noqa: F841
- cli_runner = app.test_cli_runner()
-
- cli_runner.invoke(export_roles)
- mock_json_dumps.assert_called_with(ANY, indent=None)
- mock_json_dumps.reset_mock()
-
- example_cli_args = ["", "foo", -1, 0, 1]
- for arg in example_cli_args:
- cli_runner.invoke(export_roles, [f"--indent={arg}"])
- mock_json_dumps.assert_called_with(ANY, indent=arg)
+ with app.app_context():
+ app_builder = AppBuilder(app) # noqa: F841
+ cli_runner = app.test_cli_runner()
+
+ cli_runner.invoke(export_roles)
+ mock_json_dumps.assert_called_with(ANY, indent=None)
mock_json_dumps.reset_mock()
+ example_cli_args = ["", "foo", -1, 0, 1]
+ for arg in example_cli_args:
+ cli_runner.invoke(export_roles, [f"--indent={arg}"])
+ mock_json_dumps.assert_called_with(ANY, indent=arg)
+ mock_json_dumps.reset_mock()
+
def test_import_roles(self):
with tempfile.TemporaryDirectory() as tmp_dir:
app = Flask("dst_app")
app.config[
"SQLALCHEMY_DATABASE_URI"
] = f"sqlite:///{os.path.join(tmp_dir, 'dst.db')}"
- db = SQLA(app)
- app_builder = AppBuilder(app, db.session)
- cli_runner = app.test_cli_runner()
-
- path = os.path.join(tmp_dir, "roles.json")
-
- with open(path, "w") as fd:
- fd.write(json.dumps(self.expected_roles))
-
- # before import roles on dst app include only Admin and Public
- self.assertEqual(len(app_builder.sm.get_all_roles()), 2)
-
- import_result = cli_runner.invoke(import_roles, [f"--path={path}"])
- self.assertEqual(import_result.exit_code, 0)
-
- resulting_roles = app_builder.sm.get_all_roles()
-
- for expected_role in self.expected_roles:
- match = [r for r in resulting_roles if r.name == expected_role["name"]]
- self.assertTrue(match)
- resulting_role = match[0]
-
- expected_role_permission_view_menus = {
- (pvm["permission"]["name"], pvm["view_menu"]["name"])
- for pvm in expected_role["permissions"]
- }
- resulting_role_permission_view_menus = {
- (pvm.permission.name, pvm.view_menu.name)
- for pvm in resulting_role.permissions
- }
- self.assertEqual(
- resulting_role_permission_view_menus,
- expected_role_permission_view_menus,
- )
+ with app.app_context():
+ app_builder = AppBuilder(app)
+ cli_runner = app.test_cli_runner()
+
+ path = os.path.join(tmp_dir, "roles.json")
+
+ with open(path, "w") as fd:
+ fd.write(json.dumps(self.expected_roles))
+
+ # before import roles on dst app include only Admin and Public
+ self.assertEqual(len(app_builder.sm.get_all_roles()), 2)
+
+ import_result = cli_runner.invoke(import_roles, [f"--path={path}"])
+ self.assertEqual(import_result.exit_code, 0)
+
+ resulting_roles = app_builder.sm.get_all_roles()
+
+ for expected_role in self.expected_roles:
+ match = [
+ r for r in resulting_roles if r.name == expected_role["name"]
+ ]
+ self.assertTrue(match)
+ resulting_role = match[0]
+
+ expected_role_permission_view_menus = {
+ (pvm["permission"]["name"], pvm["view_menu"]["name"])
+ for pvm in expected_role["permissions"]
+ }
+ resulting_role_permission_view_menus = {
+ (pvm.permission.name, pvm.view_menu.name)
+ for pvm in resulting_role.permissions
+ }
+ self.assertEqual(
+ resulting_role_permission_view_menus,
+ expected_role_permission_view_menus,
+ )
diff --git a/tests/test_menu.py b/tests/test_menu.py
index a92e80e080..e0538d9310 100644
--- a/tests/test_menu.py
+++ b/tests/test_menu.py
@@ -1,12 +1,10 @@
import logging
import os
-from flask_appbuilder import SQLA
from flask_appbuilder.models.sqla.interface import SQLAInterface
-
-from .base import FABTestCase
-from .const import MAX_PAGE_SIZE, PASSWORD_ADMIN, USERNAME_ADMIN
-from .sqla.models import Model1
+from tests.base import FABTestCase
+from tests.const import MAX_PAGE_SIZE, PASSWORD_ADMIN, USERNAME_ADMIN
+from tests.sqla.models import Model1
log = logging.getLogger(__name__)
@@ -22,8 +20,9 @@ def setUp(self):
self.app.config.from_object("tests.config_api")
self.app.config["FAB_API_MAX_PAGE_SIZE"] = MAX_PAGE_SIZE
- self.db = SQLA(self.app)
- self.appbuilder = AppBuilder(self.app, self.db.session)
+ self.ctx = self.app.app_context()
+ self.ctx.push()
+ self.appbuilder = AppBuilder(self.app)
self.create_default_users(self.appbuilder)
class Model1View(ModelView):
@@ -44,6 +43,7 @@ class Model1ViewDynamic(ModelView):
)
def tearDown(self):
+ self.ctx.pop()
self.appbuilder = None
self.app = None
self.db = None
@@ -127,11 +127,11 @@ def test_menu_api_limited(self):
self.browser_logout(client)
# Revert test data
- self.appbuilder.get_session.delete(
+ self.appbuilder.session.delete(
self.appbuilder.sm.find_user(username=limited_user)
)
- self.appbuilder.get_session.delete(self.appbuilder.sm.find_role(limited_role))
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.delete(self.appbuilder.sm.find_role(limited_role))
+ self.appbuilder.session.commit()
def test_menu_api_public(self):
"""
@@ -172,7 +172,7 @@ def test_menu_api_public(self):
# Revert test data
role = self.appbuilder.sm.find_role("Public")
role.permissions = []
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.commit()
def test_redirect_after_logout(self):
"""
diff --git a/tests/test_mvc.py b/tests/test_mvc.py
index 27dc831706..cc114ee10b 100644
--- a/tests/test_mvc.py
+++ b/tests/test_mvc.py
@@ -4,7 +4,7 @@
from typing import Set
from flask import Flask, make_response, redirect, session
-from flask_appbuilder import AppBuilder, SQLA
+from flask_appbuilder import AppBuilder
from flask_appbuilder.actions import action
from flask_appbuilder.baseviews import expose
from flask_appbuilder.charts.views import (
@@ -66,16 +66,17 @@ def test_babel_empty_languages(self):
app = Flask(__name__)
app.config.from_object("tests.config_api")
app.config["LANGUAGES"] = {}
- db = SQLA(app)
- AppBuilder(app, db.session)
+ with app.app_context():
+ appbuilder = AppBuilder(app)
+ self.create_default_users(appbuilder)
- client = app.test_client()
- self.browser_login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
- rv = client.get("/users/list/")
- self.assertEqual(rv.status_code, 200)
+ client = app.test_client()
+ self.browser_login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
+ rv = client.get("/users/list/")
+ self.assertEqual(rv.status_code, 200)
- data = rv.data.decode("utf-8")
- self.assertNotIn('class="f16', data)
+ data = rv.data.decode("utf-8")
+ self.assertNotIn('class="f16', data)
def test_babel_languages(self):
"""
@@ -87,19 +88,20 @@ def test_babel_languages(self):
"en": {"flag": "gb", "name": "English"},
"pt": {"flag": "pt", "name": "Portuguese"},
}
- db = SQLA(app)
- AppBuilder(app, db.session)
+ with app.app_context():
+ appbuilder = AppBuilder(app)
+ self.create_default_users(appbuilder)
- client = app.test_client()
- self.browser_login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
- rv = client.get("/users/list/")
- self.assertEqual(rv.status_code, 200)
- data = rv.data.decode("utf-8")
- self.assertIn('href="/lang/pt"', data)
+ client = app.test_client()
+ self.browser_login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
+ rv = client.get("/users/list/")
+ self.assertEqual(rv.status_code, 200)
+ data = rv.data.decode("utf-8")
+ self.assertIn('href="/lang/pt"', data)
- # Test babel language switch endpoint
- rv = client.get("/lang/pt")
- self.assertEqual(rv.status_code, 302)
+ # Test babel language switch endpoint
+ rv = client.get("/lang/pt")
+ self.assertEqual(rv.status_code, 302)
class ListFilterTestCase(BaseMVCTestCase):
@@ -170,13 +172,9 @@ def test_list_filter_m_m_invalid_object(self):
"""
with self.app.test_client() as c:
self.browser_login(c, USERNAME_ADMIN, PASSWORD_ADMIN)
-
# Roles doesn't exists
rv = c.get("/users/list/?_flt_0_roles=aaaa", follow_redirects=True)
self.assertEqual(rv.status_code, 200)
- if self.db.session.bind.dialect.name != "mysql":
- data = rv.data.decode("utf-8")
- self.assertIn("An error occurred", data)
def test_list_filter_o_m_invalid_object_type(self):
"""
@@ -187,9 +185,6 @@ def test_list_filter_o_m_invalid_object_type(self):
rv = c.get("/model2view/list/?_flt_0_group=aaaa", follow_redirects=True)
self.assertEqual(rv.status_code, 200)
- if self.db.session.bind.dialect.name != "mysql":
- data = rv.data.decode("utf-8")
- self.assertIn("An error occurred", data)
def test_list_filter_not_o_m_invalid_object_type(self):
"""
@@ -201,9 +196,6 @@ def test_list_filter_not_o_m_invalid_object_type(self):
# Roles doesn't exists
rv = c.get("/model2view/list/?_flt_1_group=aaaa", follow_redirects=True)
self.assertEqual(rv.status_code, 200)
- if self.db.session.bind.dialect.name != "mysql":
- data = rv.data.decode("utf-8")
- self.assertIn("An error occurred", data)
def test_list_filter_unknown_column(self):
"""
@@ -270,13 +262,14 @@ def setUp(self):
self.app.config.from_object("tests.config_api")
self.app.config["WTF_CSRF_ENABLED"] = True
- self.csrf = CSRFProtect(self.app)
- self.db = SQLA(self.app)
- self.appbuilder = AppBuilder(self.app, self.db.session)
-
class Model2View(ModelView):
datamodel = SQLAInterface(Model1)
+ self.ctx = self.app.app_context()
+ self.ctx.push()
+ self.csrf = CSRFProtect(self.app)
+ self.appbuilder = AppBuilder(self.app)
+
self.appbuilder.add_view(Model2View, "Model2", category="Model2")
def test_a_csrf_delete_not_allowed(self):
@@ -288,7 +281,7 @@ def test_a_csrf_delete_not_allowed(self):
with model2_data(self.appbuilder.session, 1):
model = (
- self.appbuilder.get_session.query(Model2)
+ self.appbuilder.session.query(Model2)
.filter_by(field_string="test0")
.one_or_none()
)
@@ -297,7 +290,7 @@ def test_a_csrf_delete_not_allowed(self):
self.assertEqual(rv.status_code, 302)
model = (
- self.appbuilder.get_session.query(Model2)
+ self.appbuilder.session.query(Model2)
.filter_by(field_string="test0")
.one_or_none()
)
@@ -311,7 +304,7 @@ def test_a_csrf_delete_protected(self):
self.browser_login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
with model2_data(self.appbuilder.session, 1):
model = (
- self.appbuilder.get_session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string="test0")
.one_or_none()
)
@@ -571,7 +564,7 @@ class Model1Filtered2View(ModelView):
def get_model1_by_name(datamodel, name):
model = (
- datamodel.session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string=name)
.one_or_none()
)
@@ -733,12 +726,6 @@ def enabled(self):
self.appbuilder.add_view(ModelBeforeRequest, "ModelBeforeRequest")
- def tearDown(self):
- self.appbuilder = None
- self.app = None
- self.db = None
- log.debug("TEAR DOWN")
-
def test_fab_views(self):
"""
Test views creation and registration
@@ -765,7 +752,7 @@ def test_model_creation(self):
"""
from sqlalchemy.engine.reflection import Inspector
- engine = self.db.session.get_bind(mapper=None, clause=None)
+ engine = self.appbuilder.session.get_bind(mapper=None, clause=None)
inspector = Inspector.from_engine(engine)
# Check if tables exist
self.assertIn("model1", inspector.get_table_names())
@@ -849,7 +836,7 @@ def test_model_crud_add(self):
self.assertEqual(rv.status_code, 200)
model = (
- self.db.session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string=field_string)
.one_or_none()
)
@@ -857,8 +844,8 @@ def test_model_crud_add(self):
self.assertEqual(model.field_integer, MODEL1_DATA_SIZE)
# Revert data changes
- self.appbuilder.get_session.delete(model)
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.delete(model)
+ self.appbuilder.session.commit()
def test_model_crud_edit(self):
"""
@@ -876,7 +863,11 @@ def test_model_crud_edit(self):
)
self.assertEqual(rv.status_code, 200)
- model = self.db.session.query(Model1).filter_by(id=model_id).one_or_none()
+ model = (
+ self.appbuilder.session.query(Model1)
+ .filter_by(id=model_id)
+ .one_or_none()
+ )
self.assertEqual(model.field_string, "test_edit")
self.assertEqual(model.field_integer, 200)
@@ -889,7 +880,7 @@ def test_model_crud_delete(self):
with model2_data(self.appbuilder.session, 2):
model = (
- self.appbuilder.get_session.query(Model2)
+ self.appbuilder.session.query(Model2)
.filter_by(field_string="test0")
.one_or_none()
)
@@ -897,7 +888,7 @@ def test_model_crud_delete(self):
rv = client.get(f"/model2view/delete/{pk}", follow_redirects=True)
self.assertEqual(rv.status_code, 200)
- model = self.db.session.query(Model2).get(pk)
+ model = self.appbuilder.session.query(Model2).get(pk)
self.assertEqual(model, None)
def test_model_delete_integrity(self):
@@ -905,8 +896,7 @@ def test_model_delete_integrity(self):
Test Model CRUD delete integrity validation
"""
# SQLLite does not support constraints by default
- engine_type = self.appbuilder.get_session.bind.dialect.name
- if engine_type == "sqlite":
+ if self.appbuilder.session.get_bind().name == "sqlite":
return
client = self.app.test_client()
@@ -914,7 +904,7 @@ def test_model_delete_integrity(self):
with model2_data(self.appbuilder.session, 2):
model1 = (
- self.appbuilder.get_session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string="test1")
.one_or_none()
)
@@ -922,7 +912,7 @@ def test_model_delete_integrity(self):
rv = client.get(f"/model1view/delete/{pk}", follow_redirects=True)
self.assertEqual(rv.status_code, 200)
- model = self.db.session.query(Model1).filter_by(id=pk).one_or_none()
+ model = self.appbuilder.session.query(Model1).filter_by(id=pk).one_or_none()
self.assertNotEqual(model, None)
def test_model_crud_composite_pk(self):
@@ -945,9 +935,7 @@ def test_model_crud_composite_pk(self):
)
self.assertEqual(rv.status_code, 200)
- model = (
- self.appbuilder.get_session.query(Model3).filter_by(pk1="1").one_or_none()
- )
+ model = self.appbuilder.session.query(Model3).filter_by(pk1="1").one_or_none()
self.assertEqual(model.pk1, 1)
self.assertEqual(model.pk2, datetime.datetime(2017, 1, 1))
self.assertEqual(model.field_string, "foo2")
@@ -964,8 +952,8 @@ def test_model_crud_composite_pk(self):
self.assertEqual(rv.status_code, 200)
model = (
- self.appbuilder.get_session.query(Model3)
- .filter_by(pk1="2", pk2="2017-02-02 00:00:00")
+ self.appbuilder.session.query(Model3)
+ .filter_by(pk1=2, pk2=datetime.datetime(2017, 2, 2))
.one_or_none()
)
self.assertEqual(model.pk1, 2)
@@ -975,14 +963,14 @@ def test_model_crud_composite_pk(self):
pk = '[2, {"_type": "datetime", "value": "2017-02-02T00:00:00.000000"}]'
rv = client.get("/model3view/delete/" + quote(pk), follow_redirects=True)
self.assertEqual(rv.status_code, 200)
- model = self.db.session.query(Model3).filter_by(pk1=2).one_or_none()
+ model = self.appbuilder.session.query(Model3).filter_by(pk1=2).one_or_none()
self.assertEqual(model, None)
# Add it back, then delete via muldelete
- self.appbuilder.get_session.add(
+ self.appbuilder.session.add(
Model3(pk1=1, pk2=datetime.datetime(2017, 1, 1), field_string="baz")
)
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.commit()
rv = client.post(
"/model3view/action_post",
data=dict(
@@ -1002,7 +990,7 @@ def test_model_crud_composite_pk(self):
follow_redirects=True,
)
self.assertEqual(rv.status_code, 200)
- model = self.db.session.query(Model3).filter_by(pk1=1).one_or_none()
+ model = self.appbuilder.session.query(Model3).filter_by(pk1=1).one_or_none()
self.assertEqual(model, None)
def test_model_crud_add_with_enum(self):
@@ -1020,7 +1008,7 @@ def test_model_crud_add_with_enum(self):
self.assertEqual(rv.status_code, 200)
model = (
- self.appbuilder.get_session.query(ModelWithEnums)
+ self.appbuilder.session.query(ModelWithEnums)
.filter_by(enum1="e3")
.one_or_none()
)
@@ -1029,12 +1017,12 @@ def test_model_crud_add_with_enum(self):
# Revert data changes
model = (
- self.appbuilder.get_session.query(ModelWithEnums)
+ self.appbuilder.session.query(ModelWithEnums)
.filter_by(enum1="e3")
.one_or_none()
)
- self.appbuilder.get_session.delete(model)
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.delete(model)
+ self.appbuilder.session.commit()
def test_model_crud_edit_with_enum(self):
"""
@@ -1052,7 +1040,7 @@ def test_model_crud_edit_with_enum(self):
self.assertEqual(rv.status_code, 200)
model = (
- self.appbuilder.get_session.query(ModelWithEnums)
+ self.appbuilder.session.query(ModelWithEnums)
.filter_by(enum1="e3")
.one_or_none()
)
@@ -1060,7 +1048,7 @@ def test_model_crud_edit_with_enum(self):
self.assertEqual(model.enum2, TmpEnum.e3)
model.enum2 = TmpEnum.e2
model.enum1 = "e1"
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.commit()
def test_formatted_cols(self):
"""
@@ -1096,12 +1084,12 @@ def test_modelview_add_redirects(self):
# Revert data changes
model1 = (
- self.appbuilder.get_session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string="test_redirect")
.one_or_none()
)
- self.appbuilder.get_session.delete(model1)
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.delete(model1)
+ self.appbuilder.session.commit()
def test_modelview_edit_redirects(self):
"""
@@ -1111,7 +1099,7 @@ def test_modelview_edit_redirects(self):
self.browser_login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
with model1_data(self.appbuilder.session, 3):
model_id = (
- self.db.session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string="test0")
.one_or_none()
.id
@@ -1132,7 +1120,10 @@ def test_modelview_delete_redirects(self):
with model1_data(self.appbuilder.session, 1):
model_id = (
- self.db.session.query(Model1).filter_by(field_string="test0").first().id
+ self.appbuilder.session.query(Model1)
+ .filter_by(field_string="test0")
+ .first()
+ .id
)
rv = client.get(f"/model1viewwithredirects/delete/{model_id}")
self.assertEqual(rv.status_code, 302)
@@ -1161,7 +1152,7 @@ def test_edit_excluded_cols(self):
self.browser_login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
with model2_data(self.appbuilder.session, 2):
model = (
- self.appbuilder.get_session.query(Model2)
+ self.appbuilder.session.query(Model2)
.filter_by(field_string="test0")
.one_or_none()
)
@@ -1182,7 +1173,7 @@ def test_show_excluded_cols(self):
self.browser_login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
with model2_data(self.appbuilder.session, 3):
model = (
- self.appbuilder.get_session.query(Model2)
+ self.appbuilder.session.query(Model2)
.filter_by(field_string="test0")
.one_or_none()
)
@@ -1210,7 +1201,7 @@ def test_query_rel_fields(self):
self.assertNotIn("test1", data)
model2 = (
- self.appbuilder.get_session.query(Model2)
+ self.appbuilder.session.query(Model2)
.filter_by(field_string="test0")
.one_or_none()
)
@@ -1273,7 +1264,7 @@ def test_model_add_unique_validation(self):
data = rv.data.decode("utf-8")
self.assertIn(UNIQUE_VALIDATION_STRING, data)
- model = self.db.session.query(Model1).all()
+ model = self.appbuilder.session.query(Model1).all()
self.assertEqual(len(model), 2)
def test_model_add_required_validation(self):
@@ -1294,7 +1285,7 @@ def test_model_add_required_validation(self):
data = rv.data.decode("utf-8")
self.assertIn(NOTNULL_VALIDATION_STRING, data)
- model = self.db.session.query(Model1).all()
+ model = self.appbuilder.session.query(Model1).all()
self.assertEqual(len(model), 2)
def test_model_edit_unique_validation(self):
@@ -1340,7 +1331,7 @@ def test_model_base_filter(self):
client = self.app.test_client()
self.browser_login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
with model1_data(self.appbuilder.session, MODEL1_DATA_SIZE):
- models = self.db.session.query(Model1).all()
+ models = self.appbuilder.session.query(Model1).all()
self.assertEqual(len(models), MODEL1_DATA_SIZE)
# Base filter string starts with
@@ -1406,14 +1397,14 @@ def test_compactCRUDMixin(self):
follow_redirects=True,
)
self.assertEqual(rv.status_code, 200)
- model = self.db.session.query(Model3).first()
+ model = self.appbuilder.session.query(Model3).first()
self.assertEqual(model.field_string, "bar")
rv = client.get(
"/model3compactview/delete/" + quote(pk), follow_redirects=True
)
self.assertEqual(rv.status_code, 200)
- model = self.db.session.query(Model3).first()
+ model = self.appbuilder.session.query(Model3).first()
self.assertEqual(model, None)
def test_edit_add_form_action_prefix_for_compactCRUDMixin(self):
@@ -1481,7 +1472,7 @@ def test_api_read(self):
"""
client = self.app.test_client()
self.browser_login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
- with model1_data(self.appbuilder.get_session):
+ with model1_data(self.appbuilder.session):
rv = client.get("/model1formattedview/api/read")
self.assertEqual(rv.status_code, 200)
data = json.loads(rv.data.decode("utf-8"))
@@ -1526,15 +1517,15 @@ def test_api_create(self):
)
self.assertEqual(rv.status_code, 200)
model1 = (
- self.db.session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string="zzz")
.one_or_none()
)
self.assertIsNotNone(model1)
# Revert data changes
- self.appbuilder.get_session.delete(model1)
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.delete(model1)
+ self.appbuilder.session.commit()
def test_api_update(self):
"""
@@ -1545,7 +1536,7 @@ def test_api_update(self):
self.browser_login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
with model1_data(self.appbuilder.session, 1) as models:
model_id = models[0].id
- item = self.db.session.query(Model1).get(model_id)
+ item = self.appbuilder.session.query(Model1).get(model_id)
field_integer_before = item.field_integer
rv = client.put(
f"/model1view/api/update/{model_id}",
@@ -1553,7 +1544,7 @@ def test_api_update(self):
follow_redirects=True,
)
self.assertEqual(rv.status_code, 200)
- item = self.db.session.query(Model1).get(model_id)
+ item = self.appbuilder.session.query(Model1).get(model_id)
self.assertEqual(item.field_string, "zzz")
self.assertEqual(item.field_integer, field_integer_before)
@@ -1613,15 +1604,17 @@ class Model1PermOverride(ModelView):
self.assertEqual(rv.status_code, 200)
model = (
- self.db.session.query(Model1).filter_by(field_string="test1").one_or_none()
+ self.appbuilder.session.query(Model1)
+ .filter_by(field_string="test1")
+ .one_or_none()
)
self.assertEqual(model.field_string, "test1")
self.assertEqual(model.field_integer, 1)
# Cleanup
- self.db.session.delete(model)
- self.db.session.delete(user)
- self.db.session.commit()
+ self.appbuilder.session.delete(model)
+ self.appbuilder.session.delete(user)
+ self.appbuilder.session.commit()
def test_method_permission_override(self):
"""
@@ -1682,15 +1675,15 @@ class Model1PermOverride(ModelView):
)
self.assertEqual(rv.status_code, 200)
model1 = (
- self.appbuilder.get_session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string="tmp_test")
.one_or_none()
)
self.assertIsNotNone(model1)
# Revert data changes
- self.appbuilder.get_session.delete(model1)
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.delete(model1)
+ self.appbuilder.session.commit()
with model1_data(self.appbuilder.session, 2) as models:
model_id = models[0].id
@@ -1712,14 +1705,14 @@ class Model1PermOverride(ModelView):
# Unauthorized delete
model1 = (
- self.appbuilder.get_session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string="test1")
.one_or_none()
)
pk = model1.id
rv = client.get(f"/model1permoverride/delete/{pk}")
self.assertEqual(rv.status_code, 302)
- model = self.db.session.query(Model1).filter_by(id=pk).one_or_none()
+ model = self.appbuilder.session.query(Model1).filter_by(id=pk).one_or_none()
self.assertEqual(model.field_string, "test1")
# Verify write links are gone from UI
@@ -1732,9 +1725,9 @@ class Model1PermOverride(ModelView):
self.assertIn(f"/model1permoverride/show/{model_id}", data)
# Revert data changes
- self.db.session.delete(self.appbuilder.sm.find_role("Test"))
- self.db.session.delete(user)
- self.db.session.commit()
+ self.appbuilder.session.delete(self.appbuilder.sm.find_role("Test"))
+ self.appbuilder.session.delete(user)
+ self.appbuilder.session.commit()
def test_action_permission_override(self):
"""
@@ -1790,7 +1783,7 @@ def action_one(self, item):
with model1_data(self.appbuilder.session, 1):
model1 = (
- self.appbuilder.get_session.query(Model1)
+ self.appbuilder.session.query(Model1)
.filter_by(field_string="test0")
.one_or_none()
)
@@ -1809,8 +1802,8 @@ def action_one(self, item):
self.assertEqual(rv.status_code, 302)
# cleanup
- self.db.session.delete(user)
- self.db.session.commit()
+ self.appbuilder.session.delete(user)
+ self.appbuilder.session.commit()
def test_permission_converge_compress(self):
"""
@@ -1882,8 +1875,8 @@ class Model1PermConverge(ModelView):
role = self.appbuilder.sm.find_role("Test")
self.assertEqual(len(role.permissions), 1)
# cleanup
- self.db.session.delete(user)
- self.db.session.commit()
+ self.appbuilder.session.delete(user)
+ self.appbuilder.session.commit()
def test_before_request(self):
"""
diff --git a/tests/test_mvc_oauth.py b/tests/test_mvc_oauth.py
index 6e9a5227b6..1b0a9f6a92 100644
--- a/tests/test_mvc_oauth.py
+++ b/tests/test_mvc_oauth.py
@@ -1,6 +1,6 @@
from urllib.parse import quote
-from flask_appbuilder import SQLA
+from flask_appbuilder.extensions import db
from flask_appbuilder.security.sqla.models import User
from flask_login import current_user
import jwt
@@ -36,19 +36,20 @@ def setUp(self):
self.app.config.from_object("tests.config_oauth")
self.app.config["WTF_CSRF_ENABLED"] = True
+ self.ctx = self.app.app_context()
+ self.ctx.push()
self.csrf = CSRFProtect(self.app)
- self.db = SQLA(self.app)
- self.appbuilder = AppBuilder(self.app, self.db.session)
+ self.appbuilder = AppBuilder(self.app)
def tearDown(self):
self.cleanup()
def cleanup(self):
- session = self.appbuilder.get_session
- users = session.query(User).filter(User.username.ilike("google%")).all()
+ users = db.session.query(User).filter(User.username.ilike("google%")).all()
for user in users:
- session.delete(user)
- session.commit()
+ db.session.delete(user)
+ db.session.commit()
+ self.ctx.pop()
def test_oauth_login(self):
"""
diff --git a/tests/test_mvc_oid.py b/tests/test_mvc_oid.py
index d49f655f38..96d2583d0f 100644
--- a/tests/test_mvc_oid.py
+++ b/tests/test_mvc_oid.py
@@ -1,6 +1,5 @@
from unittest.mock import MagicMock
-from flask_appbuilder import SQLA
from tests.base import FABTestCase
@@ -13,8 +12,9 @@ def setUp(self):
self.app = Flask(__name__)
self.app.config.from_object("tests.config_oid")
- self.db = SQLA(self.app)
- self.appbuilder = AppBuilder(self.app, self.db.session)
+ self.ctx = self.app.app_context()
+ self.ctx.push()
+ self.appbuilder = AppBuilder(self.app)
def test_oid_login_get(self):
"""
diff --git a/tests/test_security_api.py b/tests/test_security_api.py
index 18606e9f60..0874a264cc 100644
--- a/tests/test_security_api.py
+++ b/tests/test_security_api.py
@@ -5,7 +5,8 @@
from flask import Flask
from flask_appbuilder import AppBuilder
-from flask_appbuilder import SQLA
+from flask_appbuilder.exceptions import PasswordComplexityValidationError
+from flask_appbuilder.extensions import db
from flask_appbuilder.security.sqla.models import Permission, Role, User, ViewMenu
import prison
from tests.base import FABTestCase
@@ -21,20 +22,20 @@ def setUp(self) -> None:
self.app = Flask(__name__)
self.basedir = os.path.abspath(os.path.dirname(__file__))
self.app.config.from_object("tests.config_security_api")
- self.db = SQLA(self.app)
- self.session = self.db.session
- self.appbuilder = AppBuilder(self.app, self.session)
- self.user_model = User
- self.role_model = Role
+ self.ctx = self.app.app_context()
+ self.ctx.push()
+ self.appbuilder = AppBuilder(self.app)
+ self.create_default_users(self.appbuilder)
def tearDown(self):
- self.appbuilder.session.close()
- engine = self.appbuilder.session.get_bind(mapper=None, clause=None)
- for baseview in self.appbuilder.baseviews:
- if hasattr(baseview, "datamodel"):
- baseview.datamodel.session = None
- engine.dispose()
+ # self.appbuilder.session.close()
+ # engine = self.appbuilder.session.get_bind(mapper=None, clause=None)
+ # for baseview in self.appbuilder.baseviews:
+ # if hasattr(baseview, "datamodel"):
+ # baseview.datamodel.session = None
+ # engine.dispose()
+ self.ctx.pop()
def _create_test_user(
self,
@@ -45,14 +46,16 @@ def _create_test_user(
first_name="first-name",
last_name="last-name",
):
- user = User()
- user.first_name = first_name
- user.last_name = last_name
- user.username = username
- user.email = email
- user.roles = roles
- user.password = generate_password_hash(password)
- self.session.commit()
+ user = User(
+ username=username,
+ first_name=first_name,
+ last_name=last_name,
+ email=email,
+ roles=roles,
+ password=generate_password_hash(password),
+ )
+ db.session.add(user)
+ db.session.commit()
return user
def test_user_info(self):
@@ -188,8 +191,8 @@ def test_get_single_user(self):
token = self.login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
role = Role(name="test-role")
- self.session.add(role)
- self.session.commit()
+ db.session.add(role)
+ db.session.commit()
role_id = role.id
user = self._create_test_user(
"test-get-single-user", "password", [role], "test-get-single-user@fab.com"
@@ -207,20 +210,11 @@ def test_get_single_user(self):
self.assertEqual(result["email"], "test-get-single-user@fab.com")
self.assertEqual(result["roles"], [{"id": role_id, "name": "test-role"}])
- user = (
- self.session.query(self.user_model)
- .filter(self.user_model.id == user.id)
- .first()
- )
- self.session.delete(user)
- role = (
- self.session.query(self.role_model)
- .filter(self.role_model.id == role_id)
- .first()
- )
- self.session.delete(role)
-
- self.session.commit()
+ user = db.session.query(User).filter(User.id == user.id).first()
+ db.session.delete(user)
+ role = db.session.query(Role).filter(Role.id == role_id).first()
+ db.session.delete(role)
+ db.session.commit()
def test_get_single_not_found(self):
client = self.app.test_client()
@@ -238,8 +232,8 @@ def test_create_user(self):
client = self.app.test_client()
token = self.login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
role = Role(name="test-create-user-api")
- self.session.add(role)
- self.session.commit()
+ db.session.add(role)
+ db.session.commit()
uri = "api/v1/security/users/"
create_user_payload = {
@@ -257,7 +251,7 @@ def test_create_user(self):
assert "id" in add_user_response
user = (
- self.session.query(User)
+ db.session.query(User)
.filter(User.id == add_user_response["id"])
.one_or_none()
)
@@ -269,13 +263,10 @@ def test_create_user(self):
self.assertEqual(len(user.roles), 1)
self.assertEqual(user.roles[0].name, "test-create-user-api")
- user = (
- self.session.query(self.user_model)
- .filter(self.user_model.id == user.id)
- .first()
- )
- self.session.delete(user)
- self.session.commit()
+ user = db.session.query(User).filter(User.id == user.id).first()
+ db.session.delete(user)
+ db.session.delete(role)
+ db.session.commit()
def test_create_user_without_role(self):
client = self.app.test_client()
@@ -327,13 +318,9 @@ def test_create_user_with_invalid_role(self):
self.assertEqual(user.username, create_user_payload["username"])
self.assertEqual(len(user.roles), 0)
- user = (
- self.session.query(self.user_model)
- .filter(self.user_model.id == user.id)
- .first()
- )
- self.session.delete(user)
- self.session.commit()
+ user = db.session.query(User).filter(User.id == user.id).first()
+ db.session.delete(user)
+ db.session.commit()
def test_edit_user(self):
client = self.app.test_client()
@@ -344,10 +331,10 @@ def test_edit_user(self):
role_1 = Role(name="test-role1")
role_2 = Role(name="test-role2")
role_3 = Role(name="test-role3")
- self.session.add(role_1)
- self.session.add(role_2)
- self.session.add(role_3)
- self.session.commit()
+ db.session.add(role_1)
+ db.session.add(role_2)
+ db.session.add(role_3)
+ db.session.commit()
user = self._create_test_user(
"edit-user-1", "password", [role_1], "test-edit-user1@fab.com"
)
@@ -364,36 +351,31 @@ def test_edit_user(self):
{"email": updated_email, "roles": [role_2.id, role_3.id]},
)
self.assertEqual(rv.status_code, 200)
- updated_user = self.session.query(self.user_model).get(user_id)
+ updated_user = db.session.query(User).get(user_id)
self.assertEqual(len(updated_user.roles), 2)
- self.assertEqual(updated_user.roles[0].name, "test-role2")
- self.assertEqual(updated_user.roles[1].name, "test-role3")
+ update_use_roles = sorted([role.name for role in updated_user.roles])
+ self.assertEqual(update_use_roles, ["test-role2", "test-role3"])
self.assertEqual(updated_user.email, updated_email)
roles = (
- self.session.query(self.role_model)
- .filter(self.role_model.id.in_([role_1_id, role_2_id, role_3_id]))
+ db.session.query(Role)
+ .filter(Role.id.in_([role_1_id, role_2_id, role_3_id]))
.all()
)
- user = (
- self.session.query(self.user_model)
- .filter(self.user_model.id == user_id)
- .first()
- )
- self.session.delete(user)
+ user = db.session.query(User).filter(User.id == user_id).first()
+ db.session.delete(user)
for r in roles:
- self.session.delete(r)
- self.session.commit()
+ db.session.delete(r)
+ db.session.commit()
def test_delete_user(self):
client = self.app.test_client()
token = self.login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
- session = self.appbuilder.session
role = Role(name="delete-user-role")
- session.add(role)
- session.commit()
+ db.session.add(role)
+ db.session.commit()
user = self._create_test_user(
"delete-user", "password", [role], "delete-user@fab.com"
)
@@ -407,13 +389,9 @@ def test_delete_user(self):
updated_user = self.appbuilder.sm.get_user_by_id(user_id)
assert not updated_user
- role = (
- session.query(self.role_model)
- .filter(self.role_model.id == role_id)
- .one_or_none()
- )
- session.delete(role)
- session.commit()
+ role = db.session.query(Role).filter(Role.id == role_id).one_or_none()
+ db.session.delete(role)
+ db.session.commit()
def test_delete_user_not_found(self):
client = self.app.test_client()
@@ -433,17 +411,14 @@ def setUp(self):
self.basedir = os.path.abspath(os.path.dirname(__file__))
self.app.config.from_object("tests.config_api")
self.app.config["FAB_ADD_SECURITY_API"] = True
- self.db = SQLA(self.app)
- self.session = self.db.session
- self.appbuilder = AppBuilder(self.app, self.db.session)
+
+ self.ctx = self.app.app_context()
+ self.ctx.push()
+ self.appbuilder = AppBuilder(self.app)
self.permission_model = Permission
self.viewmenu_model = ViewMenu
self.role_model = Role
- for b in self.appbuilder.baseviews:
- if hasattr(b, "datamodel") and b.datamodel.session is not None:
- b.datamodel.session = self.db.session
-
self.create_default_users(self.appbuilder)
def tearDown(self):
@@ -453,12 +428,13 @@ def tearDown(self):
if hasattr(baseview, "datamodel"):
baseview.datamodel.session = None
engine.dispose()
+ self.ctx.pop()
def test_list_permission_api(self):
client = self.app.test_client()
token = self.login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
- count = self.session.query(self.permission_model).count()
+ count = db.session.query(self.permission_model).count()
uri = "api/v1/security/permissions/"
rv = self.auth_client_get(client, token, uri)
@@ -487,7 +463,7 @@ def test_get_permission_api(self):
self.assertEqual(response["id"], permission_id)
self.assertEqual(response["result"]["name"], permission_name)
- self.session.delete(permission)
+ db.session.delete(permission)
def test_get_invalid_permission_api(self):
client = self.app.test_client()
@@ -552,7 +528,7 @@ def test_list_view_api(self):
client = self.app.test_client()
token = self.login(client, USERNAME_ADMIN, PASSWORD_ADMIN)
- count = self.session.query(self.viewmenu_model).count()
+ count = db.session.query(self.viewmenu_model).count()
uri = "api/v1/security/resources/"
rv = self.auth_client_get(client, token, uri)
@@ -579,7 +555,7 @@ def test_get_view_api(self):
self.assertEqual(response["id"], view_id)
self.assertEqual(response["result"]["name"], view_name)
- self.session.delete(view)
+ db.session.delete(view)
def test_get_invalid_view_api(self):
client = self.app.test_client()
@@ -791,8 +767,8 @@ def test_get_role_api(self):
assert "id" and "result" in response
self.assertEqual(response["result"].get("name", ""), role_name)
- self.session.delete(role)
- self.session.commit()
+ db.session.delete(role)
+ db.session.commit()
def test_create_role_api(self):
client = self.app.test_client()
@@ -807,9 +783,9 @@ def test_create_role_api(self):
assert "id" and "result" in add_role_response
self.assertEqual(create_user_payload, add_role_response["result"])
- role = self.session.query(self.role_model).filter_by(name=role_name).first()
- self.session.delete(role)
- self.session.commit()
+ role = db.session.query(self.role_model).filter_by(name=role_name).first()
+ db.session.delete(role)
+ db.session.commit()
def test_edit_role_api(self):
client = self.app.test_client()
@@ -846,8 +822,8 @@ def test_edit_role_api(self):
role = self.appbuilder.sm.find_role(role_2_name)
- self.session.delete(role)
- self.session.commit()
+ db.session.delete(role)
+ db.session.commit()
def test_add_view_menu_permissions_to_role(self):
client = self.app.test_client()
@@ -896,12 +872,12 @@ def test_add_view_menu_permissions_to_role(self):
self.assertEqual(len(role.permissions), 2)
self.assertEqual(
- [p.id for p in role.permissions],
+ sorted([p.id for p in role.permissions]),
[permission_1_view_menu_id, permission_2_view_menu_id],
)
role = self.appbuilder.sm.find_role(role_name)
- self.session.delete(role)
+ db.session.delete(role)
self.appbuilder.sm.del_permission_view_menu(
permission_1_name, view_menu_name, cascade=True
@@ -925,7 +901,7 @@ def test_add_invalid_view_menu_permissions_to_role(self):
self.assertEqual(rv.status_code, 400)
role = self.appbuilder.sm.find_role(role_name)
- self.session.delete(role)
+ db.session.delete(role)
def test_add_view_menu_permissions_to_invalid_role(self):
client = self.app.test_client()
@@ -1013,7 +989,7 @@ def test_list_view_menu_permissions_of_role(self):
)
role = self.appbuilder.sm.find_role(role_name)
- self.session.delete(role)
+ db.session.delete(role)
def test_list_view_menu_permissions_of_invalid_role(self):
client = self.app.test_client()
@@ -1053,16 +1029,19 @@ def setUp(self):
self.app = Flask(__name__)
self.basedir = os.path.abspath(os.path.dirname(__file__))
self.app.config.from_object("tests.config_api")
- self.db = SQLA(self.app)
- self.appbuilder = AppBuilder(self.app, self.db.session)
+
+ self.ctx = self.app.app_context()
+ self.ctx.push()
+ self.appbuilder = AppBuilder(self.app)
def tearDown(self):
- self.appbuilder.session.close()
- engine = self.appbuilder.session.get_bind(mapper=None, clause=None)
- for baseview in self.appbuilder.baseviews:
- if hasattr(baseview, "datamodel"):
- baseview.datamodel.session = None
- engine.dispose()
+ # self.appbuilder.session.close()
+ # engine = self.appbuilder.session.get_bind(mapper=None, clause=None)
+ # for baseview in self.appbuilder.baseviews:
+ # if hasattr(baseview, "datamodel"):
+ # baseview.datamodel.session = None
+ # engine.dispose()
+ self.ctx.pop()
def test_user_role_permission(self):
client = self.app.test_client()
@@ -1090,33 +1069,32 @@ def test_user_role_permission(self):
class UserCustomPasswordComplexityValidatorTestCase(FABTestCase):
- def setUp(self):
- from flask import Flask
- from flask_appbuilder import AppBuilder
- from flask_appbuilder.exceptions import PasswordComplexityValidationError
- from flask_appbuilder.security.sqla.models import User
-
- def passwordValidator(password):
- if len(password) < 5:
- raise PasswordComplexityValidationError
+ @staticmethod
+ def password_validator(password):
+ if len(password) < 5:
+ raise PasswordComplexityValidationError
+ def setUp(self):
self.app = Flask(__name__)
self.basedir = os.path.abspath(os.path.dirname(__file__))
self.app.config.from_object("tests.config_api")
self.app.config["FAB_ADD_SECURITY_API"] = True
self.app.config["FAB_PASSWORD_COMPLEXITY_ENABLED"] = True
- self.app.config["FAB_PASSWORD_COMPLEXITY_VALIDATOR"] = passwordValidator
- self.db = SQLA(self.app)
- self.appbuilder = AppBuilder(self.app, self.db.session)
- self.user_model = User
+ self.app.config["FAB_PASSWORD_COMPLEXITY_VALIDATOR"] = self.password_validator
+ self.ctx = self.app.app_context()
+ self.ctx.push()
+
+ self.appbuilder = AppBuilder(self.app)
+ self.create_default_users(self.appbuilder)
def tearDown(self):
- self.appbuilder.session.close()
- engine = self.appbuilder.session.get_bind(mapper=None, clause=None)
- for baseview in self.appbuilder.baseviews:
- if hasattr(baseview, "datamodel"):
- baseview.datamodel.session = None
- engine.dispose()
+ # self.appbuilder.session.close()
+ # engine = self.appbuilder.session.get_bind(mapper=None, clause=None)
+ # for baseview in self.appbuilder.baseviews:
+ # if hasattr(baseview, "datamodel"):
+ # baseview.datamodel.session = None
+ # engine.dispose()
+ self.ctx.pop()
def test_password_complexity(self):
client = self.app.test_client()
@@ -1139,43 +1117,36 @@ def test_password_complexity(self):
rv = self.auth_client_post(client, token, uri, create_user_payload)
self.assertEqual(rv.status_code, 201)
- session = self.appbuilder.get_session
user = (
- session.query(self.user_model)
- .filter(self.user_model.username == "password complexity test user 10")
+ db.session.query(User)
+ .filter(User.username == "password complexity test user 10")
.one_or_none()
)
- session.delete(user)
- session.commit()
+ db.session.delete(user)
+ db.session.commit()
class UserDefaultPasswordComplexityValidatorTestCase(FABTestCase):
def setUp(self):
- from flask import Flask
- from flask_appbuilder import AppBuilder
- from flask_appbuilder.exceptions import PasswordComplexityValidationError
- from flask_appbuilder.security.sqla.models import User
-
- def passwordValidator(password):
- if len(password) < 5:
- raise PasswordComplexityValidationError
-
self.app = Flask(__name__)
self.basedir = os.path.abspath(os.path.dirname(__file__))
self.app.config.from_object("tests.config_api")
self.app.config["FAB_ADD_SECURITY_API"] = True
self.app.config["FAB_PASSWORD_COMPLEXITY_ENABLED"] = True
- self.db = SQLA(self.app)
- self.appbuilder = AppBuilder(self.app, self.db.session)
- self.user_model = User
+
+ self.ctx = self.app.app_context()
+ self.ctx.push()
+ self.appbuilder = AppBuilder(self.app)
+ self.create_default_users(self.appbuilder)
def tearDown(self):
- self.appbuilder.session.close()
- engine = self.appbuilder.session.get_bind(mapper=None, clause=None)
- for baseview in self.appbuilder.baseviews:
- if hasattr(baseview, "datamodel"):
- baseview.datamodel.session = None
- engine.dispose()
+ # self.appbuilder.session.close()
+ # engine = self.appbuilder.session.get_bind(mapper=None, clause=None)
+ # for baseview in self.appbuilder.baseviews:
+ # if hasattr(baseview, "datamodel"):
+ # baseview.datamodel.session = None
+ # engine.dispose()
+ self.ctx.pop()
def test_password_complexity(self):
client = self.app.test_client()
@@ -1198,11 +1169,10 @@ def test_password_complexity(self):
rv = self.auth_client_post(client, token, uri, create_user_payload)
self.assertEqual(rv.status_code, 201)
- session = self.appbuilder.get_session
user = (
- session.query(self.user_model)
- .filter(self.user_model.username == "password complexity test user")
+ db.session.query(User)
+ .filter(User.username == "password complexity test user")
.one_or_none()
)
- session.delete(user)
- session.commit()
+ db.session.delete(user)
+ db.session.commit()
diff --git a/tests/test_security_permissions.py b/tests/test_security_permissions.py
index af5191f169..05cf7d4289 100644
--- a/tests/test_security_permissions.py
+++ b/tests/test_security_permissions.py
@@ -1,4 +1,3 @@
-from flask_appbuilder import SQLA
from flask_login import AnonymousUserMixin
from tests.base import FABTestCase
@@ -12,8 +11,9 @@ def setUp(self):
self.app.config.from_object("tests.config_security")
self.app.config["FAB_ADD_SECURITY_VIEWS"] = False
- self.db = SQLA(self.app)
- self.appbuilder = AppBuilder(self.app, self.db.session)
+ self.ctx = self.app.app_context()
+ self.ctx.push()
+ self.appbuilder = AppBuilder(self.app)
self._db_role_1 = self.appbuilder.sm.add_role("DB_ROLE1")
self._pvm1 = self.appbuilder.sm.add_permission_view_menu(
@@ -71,14 +71,18 @@ def setUp(self):
)
def tearDown(self):
- self.appbuilder.get_session.delete(self._user01)
- self.appbuilder.get_session.delete(self._user02)
- self.appbuilder.get_session.delete(self._user03)
- self.appbuilder.get_session.delete(self._user04)
- self.appbuilder.get_session.delete(self._pvm1)
- self.appbuilder.get_session.delete(self._pvm2)
- self.appbuilder.get_session.delete(self._db_role_1)
- self.appbuilder.get_session.commit()
+ self.appbuilder.session.delete(self._user01)
+ self.appbuilder.session.delete(self._user02)
+ self.appbuilder.session.delete(self._user03)
+ self.appbuilder.session.delete(self._user04)
+ self.appbuilder.session.delete(self._pvm1)
+ self.appbuilder.session.delete(self._pvm2)
+ self.appbuilder.session.delete(self._db_role_1)
+ self.appbuilder.session.commit()
+ self.appbuilder = None
+ self.ctx.pop()
+ self.ctx = None
+ self.app = None
def test_get_user_permissions_mixed(self):
"""
diff --git a/tests/test_urltools.py b/tests/test_urltools.py
index 47ff41d79e..a746e7eb1e 100644
--- a/tests/test_urltools.py
+++ b/tests/test_urltools.py
@@ -1,35 +1,35 @@
import os
from flask import Flask
-from flask_appbuilder import AppBuilder, SQLA
+from flask_appbuilder import AppBuilder
from flask_appbuilder.models.sqla.interface import SQLAInterface
from flask_appbuilder.urltools import get_filter_args
+from tests.base import FABTestCase
from tests.sqla.models import Model1
-from .base import FABTestCase
-
class FlaskTestCase(FABTestCase):
def setUp(self):
self.app = Flask(__name__)
self.basedir = os.path.abspath(os.path.dirname(__file__))
self.app.config.from_object("tests.config_api")
+ self.ctx = self.app.app_context()
+ self.ctx.push()
+ self.appbuilder = AppBuilder(self.app)
- self.db = SQLA(self.app)
- self.appbuilder = AppBuilder(self.app, self.db.session)
+ def tearDown(self):
+ self.ctx.pop()
def test_get_filter_args_allow_one(self):
datamodel = SQLAInterface(Model1)
- with self.appbuilder.get_app.test_request_context(
- "/users/list?_flt_1_field_string=a"
- ):
+ with self.app.test_request_context("/users/list?_flt_1_field_string=a"):
filters = datamodel.get_filters(["field_string", "field_integer"])
get_filter_args(filters)
assert filters.values == [["a"]]
def test_get_filter_args_allow_multiple(self):
datamodel = SQLAInterface(Model1)
- with self.appbuilder.get_app.test_request_context(
+ with self.app.test_request_context(
"/users/list?_flt_1_field_string=a&_flt_1_field_integer=2"
):
filters = datamodel.get_filters(["field_string", "field_integer"])
@@ -38,27 +38,21 @@ def test_get_filter_args_allow_multiple(self):
def test_get_filter_args_disallow(self):
datamodel = SQLAInterface(Model1)
- with self.appbuilder.get_app.test_request_context(
- "/users/list?_flt_1_field_float=1.0"
- ):
+ with self.app.test_request_context("/users/list?_flt_1_field_float=1.0"):
filters = datamodel.get_filters(["field_string", "field_integer"])
get_filter_args(filters)
assert filters.values == []
def test_get_filter_args_disallow_off(self):
datamodel = SQLAInterface(Model1)
- with self.appbuilder.get_app.test_request_context(
- "/users/list?_flt_1_field_float=1.0"
- ):
+ with self.app.test_request_context("/users/list?_flt_1_field_float=1.0"):
filters = datamodel.get_filters(["field_string", "field_integer"])
get_filter_args(filters, disallow_if_not_in_search=False)
assert filters.values == [["1.0"]]
def test_get_filter_args_invalid_index(self):
datamodel = SQLAInterface(Model1)
- with self.appbuilder.get_app.test_request_context(
- "/users/list?_flt_a_field_string=a"
- ):
+ with self.app.test_request_context("/users/list?_flt_a_field_string=a"):
filters = datamodel.get_filters(["field_string", "field_integer"])
get_filter_args(filters)
assert filters.values == []